Commit Graph

5822 Commits

Author SHA1 Message Date
renovate[bot] 9146292656
fix(deps): update dependency org.jetbrains:markdown to v0.6.1 (#299)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [org.jetbrains:markdown](https://togithub.com/JetBrains/markdown) |
`0.5.2` -> `0.6.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains:markdown/0.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains:markdown/0.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains:markdown/0.5.2/0.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains:markdown/0.5.2/0.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>JetBrains/markdown (org.jetbrains:markdown)</summary>

###
[`v0.6.1`](https://togithub.com/JetBrains/markdown/blob/HEAD/CHANGELOG.md#061)

- \[[#&#8203;141](https://togithub.com/JetBrains/markdown/issues/141)]
Add support for cancellation of the parsing process

###
[`v0.6.0`](https://togithub.com/JetBrains/markdown/blob/HEAD/CHANGELOG.md#060)

- \[[#&#8203;135](https://togithub.com/JetBrains/markdown/issues/135)]
Fixed node creation for zero-length table cells

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/pachli/pachli-android).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuMTAzLjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 12:17:54 +01:00
Nik Clayton 51c2ef0607
chore: Prepare release 2.1.1 (versionCode 10) (#331) 2023-12-17 07:15:46 +01:00
Nik Clayton cc0be0318f
fix: Prevent crash if a trending tab is present (#330)
Old versions of the preference value could have been serialised without
the `_` in the name, so handle those specially.

Fixes #329
2023-12-17 07:01:56 +01:00
Nik Clayton 88466373b3
chore: Prepare release 2.1.0 (versionCode 9) (#327) 2023-12-15 15:50:20 +01:00
Nik Clayton 25dccdfee3
docs: Use larger fonts in screenshots, adjust descriptions (#325) 2023-12-15 11:39:49 +01:00
bittin1ddc447d824349b2 c555f25366 fix(l10n): Update Swedish translations
Currently translated at 100.0% (11 of 11 strings)

Translation: Pachli/Fastlane Metadata
Translate-URL: https://hosted.weblate.org/projects/pachli/fastlane-metadata/sv/
2023-12-15 11:38:09 +01:00
bittin1ddc447d824349b2 49a31dd80b fix(l10n): Update Swedish translations
Currently translated at 100.0% (650 of 650 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/sv/
2023-12-15 11:38:09 +01:00
Kalle Kniivilä 4db3b35023 fix(l10n): Update Finnish translations
Currently translated at 72.3% (470 of 650 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/fi/
2023-12-15 11:38:09 +01:00
Nik Clayton fe8f84847b
fix: Prevent a crash if trending tags, links, or statuses are added to tabs (#323)
The previous code was serialising the `TabKind` enum without the `_`, so
when it was converted back to the enum name (which has a `_`) it failed
and immediately crashed.

Fixes #306
2023-12-14 12:25:03 +01:00
Nik Clayton b294a3bace
fix: Correctly show if an account is a bot or not (#322)
e35fa1db inadvertently contained some left over debug code that treats
non-bot accounts as bots (for displaying the bot badge) and vice versa.

Fixes #321
2023-12-14 11:27:49 +01:00
Nik Clayton 29f9273c01
fix: Show translated content when viewing a thread (#320)
If a status was part of a thread, and it was not the "detailed" status,
and it had been translated, then the view data was marked as "show the
translation". But the translation was not loaded, so the status content
appeared as empty.

Fix that by loading the translated content of all statuses in the thead
and ensure that the translated content is rendered.

Throw an `IllegalStateException` in debug builds to catch any future
occurrences of this.

Fixes #281
2023-12-13 17:18:07 +01:00
Nik Clayton e24ef0b52d
refactor: Use @MapColumn instead of @MapInfo (#319)
`@MapInfo` is deprecated, migrate to `@MapColumn`.
2023-12-13 16:44:50 +01:00
Nik Clayton 341415bc1e
docs: Update app screenshots (#318)
Demonstrate:

- Light, dark, and black themes
- Different fonts and sizes
- Translation
- Trending posts, links, and hashtags
- Scheduling posts
- Profile
- Posting polls etc

Fixes #304
2023-12-13 13:10:46 +01:00
Nik Clayton bf36837b04
feat: Allow the user to report crashes in orange builds (#317)
Add a dependency on ACRA (in orange builds only), and catch crashes.

The user is given the option to e-mail the crash report data to the
support address, and can view and edit/redact the data before doing so.
2023-12-12 23:25:09 +01:00
Nik Clayton 098983f401
fix: Calculate length of posts and polls with emojis correctly (#315)
Mastodon counts post lengths by considering emojis to be single
characters, no matter how many unicode code points they are composed of.
So "😜" has length 1.

Pachli was using `String.length`, which considers "😜" as length 2.

Correct the calculation by using a BreakIterator to count the characters
in the string, which treats multi-character emojis as a length 1.

Poll options had a similar problem, exacerbated by the Mastodon web UI
also having the same problem, see
https://github.com/mastodon/mastodon/issues/28336.

Fix that by creating `MastodonLengthFilter`, an `InputFilter` that does
the right thing for regular text that may contain emojis.

See also https://github.com/tuskyapp/Tusky/pull/4152, which has the fix
for status length but not polls.

---------

Co-authored-by: Konrad Pozniak <opensource@connyduck.at>
2023-12-12 16:53:09 +01:00
Nik Clayton 239f5cb274
build: Publish Gradle buildscans when CI variable is non-empty (#316)
This should allow for periodic tracking of improvements (or regressions)
in the build performance.

Fixes #314
2023-12-12 15:17:47 +01:00
Kalle Kniivilä 07e1d4c760 fix(l10n): Update Finnish translations
Currently translated at 60.2% (390 of 647 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/fi/
2023-12-12 14:09:35 +01:00
Nik Clayton cbecfa3117
feat: Show roles on profiles (#312)
Roles for the logged in user appeared in Mastodon 4.0.0 and can be
displayed on the user's profile screen.

Show them as chips, adjusting the display of the existing "Follows you"
and "Bot" indicators to make allowances for this.

Roles can have a custom colour assigned by the server admin. This is
blended with the app colour so it is not too jarring in the display.

See also https://github.com/tuskyapp/Tusky/pull/4029

Co-authored-by: Konrad Pozniak <opensource@connyduck.at>
2023-12-11 20:57:11 +01:00
Nik Clayton 60cfa99f17
refactor: Use AppTheme enum exclusively (#311)
Previous code treated the app theme as a mix of strings and enums.
Convert to exclusively use the `AppTheme` enum to improve type safety.
2023-12-11 14:41:36 +01:00
Nik Clayton 2a7eda667b fix: Prevent crash if a preview card does not have an author 2023-12-09 22:49:21 +01:00
Nik Clayton 4f65321a9d fix: Prevent crash if an error is shown in a timeline without a FAB 2023-12-09 22:49:21 +01:00
Nik Clayton df45c0cd96 fix: Prevent crash showing profile if account has null `createdAt` field 2023-12-09 22:49:21 +01:00
Nik Clayton d4eed2fbf8
fix: Prevent memory leak in CompositeWithOpaqueBackground (#309)
Quoting @connyduck in https://github.com/tuskyapp/Tusky/pull/4150:

"""
The transformation ends up in Glide's memory cache and leaks whole
Activities through the view -> context reference.

This fixes the problem by removing the background detection logic (so
the view reference is no longer needed) and setting the background
directly instead. Looks exactly as before.
"""

Co-authored-by: Konrad Pozniak <opensource@connyduck.at>
2023-12-09 18:36:49 +01:00
Nik Clayton 6ee41177cd
build: Install LeakCanary in debug builds (#308) 2023-12-09 18:06:01 +01:00
Kalle Kniivilä 0251801d7e fix(l10n): Update Finnish translations
Currently translated at 60.1% (389 of 647 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/fi/
2023-12-09 17:49:16 +01:00
Nik Clayton 1214cf7c8a
refactor: Break navigation dependency cycles with :core:navigation (#305)
The previous code generally started an activity by having the activity
provide a method in a companion object that returns the relevant intent,
possibly taking additional parameters that will be included in the
intent as extras.

E.g., if A wants to start B, B provides the method that returns the
intent that starts B.

This introduces a dependency between A and B.

This is worse if B also wants to start A.

For example, if A is `StatusListActivity` and B is`ViewThreadActivity`.
The user might click a status in `StatusListActivity` to view the
thread, starting `ViewThreadActivity`. But from the thread they might
click a hashtag to view the list of statuses with that hashtag. Now
`StatusListActivity` and `ViewThreadActivity` have a circular
dependency.

Even if that doesn't happen the dependency means that any changes to B
will trigger a rebuild of A, even if the changes to B are not relevant.

Break this dependency by adding a `:core:navigation` module with an
`app.pachli.core.navigation` package that contains `Intent` subclasses
that should be used instead. The `quadrant` plugin is used to generate
constants that can be used to launch activities by name instead of by
class, breaking the dependency chain.

The plugin uses the `Activity` names from the manifest, so when an
activity is moved in the future the constant will automatically update
to reflect the new package name.

If the activity's intent requires specific extras those are passed via
the constructor, with companion object methods to extract them from the
intent.

Using the intent classes from this package is enforced by a lint
`IntentDetector` which will warn if any intents are created using a
class literal.

See #291
2023-12-07 18:36:00 +01:00
renovate[bot] b14972cb73
chore(deps): update actions/setup-java action to v4 (#301)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-java](https://togithub.com/actions/setup-java) | action
| major | `v3` -> `v4` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>actions/setup-java (actions/setup-java)</summary>

### [`v4`](https://togithub.com/actions/setup-java/compare/v3...v4)

[Compare
Source](https://togithub.com/actions/setup-java/compare/v3...v4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/pachli/pachli-android).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-06 12:21:14 +01:00
renovate[bot] f1e7ed0618
fix(deps): update dependency org.mockito.kotlin:mockito-kotlin to v5.2.1 (#300)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[org.mockito.kotlin:mockito-kotlin](https://togithub.com/mockito/mockito-kotlin)
| `5.1.0` -> `5.2.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.mockito.kotlin:mockito-kotlin/5.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.mockito.kotlin:mockito-kotlin/5.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.mockito.kotlin:mockito-kotlin/5.1.0/5.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.mockito.kotlin:mockito-kotlin/5.1.0/5.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>mockito/mockito-kotlin
(org.mockito.kotlin:mockito-kotlin)</summary>

###
[`v5.2.1`](https://togithub.com/mockito/mockito-kotlin/releases/tag/5.2.1)

[Compare
Source](https://togithub.com/mockito/mockito-kotlin/compare/5.2.0...5.2.1)

<sup><sup>*Changelog generated by [Shipkit Changelog Gradle
Plugin](https://togithub.com/shipkit/shipkit-changelog)*</sup></sup>

##### 5.2.1

- 2023-12-02 - [1
commit(s)](https://togithub.com/mockito/mockito-kotlin/compare/5.2.0...5.2.1)
by Róbert Papp
- Increase visibility of Mockito dependency
[(#&#8203;498)](https://togithub.com/mockito/mockito-kotlin/pull/498)

###
[`v5.2.0`](https://togithub.com/mockito/mockito-kotlin/releases/tag/5.2.0)

[Compare
Source](https://togithub.com/mockito/mockito-kotlin/compare/5.1.0...5.2.0)

<sup><sup>*Changelog generated by [Shipkit Changelog Gradle
Plugin](https://togithub.com/shipkit/shipkit-changelog)*</sup></sup>

##### 5.2.0

- 2023-12-01 - [1
commit(s)](https://togithub.com/mockito/mockito-kotlin/compare/5.1.0...5.2.0)
by Sergei
- Main dependencies updated
[(#&#8203;496)](https://togithub.com/mockito/mockito-kotlin/pull/496)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/pachli/pachli-android).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-06 12:20:51 +01:00
Nik Clayton 2ce80c6a32
refactor: Use the correct package for TimelineKind (#303)
The package wasn't renamed when it was moved, so was still
`app.pachli.components.timeline`, instead of the new location,
`app.pachli.core.network.model`.
2023-12-06 12:20:36 +01:00
Nik Clayton e749b362ca
refactor: Start creating core modules (#286)
The existing code base is a single monolithic module. This is relatively
simple to configure, but many of the tasks to compile the module and
produce the final app have to run in series.

This is unnecessarily slow.

This change starts to split the code in to multiple modules, which are:

- :core:account - AccountManager, to break a dependency cycle
- :core:common - low level types or utilities used in many other modules
- :core:database - database types, DAOs, and DI infrastructure
- :core:network - network types, API definitions, and DI infrastructure
- :core:preferences - shared preferences definitions and DI
infrastructure
- :core:testing - fakes and rules used across different modules

Benchmarking with gradle-profiler shows a ~ 17% reduction in incremental
build times after an ABI change. That will improve further as more code
is moved to modules.

The rough mechanics of the changes are:

- Create the modules, and move existing files in to them. This causes a
  lot of churn in import arguments.

- Convert build.gradle files to build.gradle.kts

- Separate out the data required to display a tab (`TabViewData`) from
  the data required to configure a tab (`TabData`) to avoid circular
  dependencies.

- Abstract the repeated build logic shared between the modules in to
  a set of plugins under `build-logic/`, to simplify configuration of
  the application and library builds.

- Be explicit that some nullable types are non-null at time of use.
  Nullable properties in types imported from modules generally can't be
  smart cast to non-null. There's a detailed discussion of why this
restriction exists at
https://discuss.kotlinlang.org/t/what-is-the-reason-behind-smart-cast-being-impossible-to-perform-when-referenced-class-is-in-another-module/2201.

The changes highlight design problems with the current code, including:

- The main application code is too tightly coupled to the network types
- Too many values are declared unnecessarily nullable
- Dependency cycles between code that make modularisation difficult

Future changes will add more modules.

See #291.
2023-12-04 16:58:36 +01:00
sanao a7533b3f08
feat: Display compose button when viewing lists (#279)
Fixes #231
2023-12-04 16:42:32 +01:00
sanao fbbb6249cc
feat: Display compose button when viewing bookmarks list (#278)
Fixes #230
2023-12-04 16:29:14 +01:00
renovate[bot] 02b17f4144
fix(deps): update dependency com.android.tools.build:gradle to v8.2.0 (#257)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[com.android.tools.build:gradle](https://developer.android.com/studio/build)
([source](https://android.googlesource.com/platform/tools/base)) |
`8.1.2` -> `8.2.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.tools.build:gradle/8.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.tools.build:gradle/8.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.tools.build:gradle/8.1.2/8.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.tools.build:gradle/8.1.2/8.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [com.android.tools.lint:lint-tests](http://tools.android.com/) |
`31.1.3` -> `31.2.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.tools.lint:lint-tests/31.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.tools.lint:lint-tests/31.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.tools.lint:lint-tests/31.1.3/31.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.tools.lint:lint-tests/31.1.3/31.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [com.android.tools.lint:lint](http://tools.android.com/) | `31.1.3` ->
`31.2.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.tools.lint:lint/31.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.tools.lint:lint/31.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.tools.lint:lint/31.1.3/31.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.tools.lint:lint/31.1.3/31.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [com.android.tools.lint:lint-checks](http://tools.android.com/) |
`31.1.3` -> `31.2.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.tools.lint:lint-checks/31.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.tools.lint:lint-checks/31.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.tools.lint:lint-checks/31.1.3/31.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.tools.lint:lint-checks/31.1.3/31.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [com.android.tools.lint:lint-api](http://tools.android.com/) |
`31.1.3` -> `31.2.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.tools.lint:lint-api/31.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.tools.lint:lint-api/31.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.tools.lint:lint-api/31.1.3/31.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.tools.lint:lint-api/31.1.3/31.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/pachli/pachli-android).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nik Clayton <nik@ngo.org.uk>
2023-12-02 14:34:34 +01:00
Nik Clayton f9fb0e87b4
fix: Prevent UnsupportedOperationException in PachliTileService (#288)
Previous code always called `startActivityAndCollapse()` with a regular
intent, which triggers an `UnsupportedOperationException` at API 34.

Use the non-deprecated variant that uses pending intents when
appropriate.

While looking at this I noticed the icon for the tile was incorrect, so
replaced that with the notification icon.
2023-12-02 14:24:29 +01:00
Jener Gomes d2ef0b0713 fix(l10n): Update English (United Kingdom) translations
Currently translated at 12.3% (80 of 647 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/en_GB/
2023-12-01 17:00:58 +01:00
sköldpadda 96d6c3bed3 fix(l10n): Update Swedish translations
Currently translated at 99.8% (646 of 647 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/sv/
2023-12-01 17:00:58 +01:00
Jener Gomes abc7a180bf fix(l10n): Update Portuguese (Brazil) translations
Currently translated at 100.0% (647 of 647 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/pt_BR/
2023-12-01 17:00:58 +01:00
Jener Gomes ad8d689165 fix(l10n): Update Spanish translations
Currently translated at 100.0% (647 of 647 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/es/
2023-12-01 17:00:58 +01:00
Jener Gomes ef6db89665 fix(l10n): Update English translations
Currently translated at 100.0% (647 of 647 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/en/
2023-12-01 17:00:58 +01:00
Jener Gomes a097b09af6 fix(l10n): Update Portuguese (Brazil) translations
Currently translated at 99.8% (646 of 647 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/pt_BR/
2023-12-01 17:00:58 +01:00
sanao bfdd8c943f fix(l10n): Update Japanese translations
Currently translated at 100.0% (647 of 647 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/ja/
2023-12-01 17:00:58 +01:00
Nik Clayton 3827c09165
chore: Prepare release 2.0.0 (versionCode 8) (#277) 2023-11-23 12:53:58 +01:00
sanao 06f2fa27e2
feat: Display compose button when viewing favorites list (#276)
Display the "compose" FAB when viewing the favourite list. 

Fixes #229
2023-11-23 11:32:08 +01:00
Nik Clayton 4992aa9c52
feat: Increase the amount of information in link previews (#275)
Show up to two lines of the link's title and three lines of the link's
description in link preview cards. This provides additional useful
context to the user, especially when many links bury the important
information at the end of the title.
2023-11-21 20:06:29 +01:00
Nik Clayton 123c251fc9
feat: Warn the user about an Android animation bug (#274)
Upgrading to this version of Pachli may trigger an Android bug where
cached animation specifications are not cleared, resulting in incorrect
animations (e.g., when navigating between activities).

This is an Android bug triggered by the Android Material library,
https://github.com/material-components/material-components-android/issues/3644.

Show the user a dialog (once) when launching after an upgrade, so they
know to restart their device if necessary.
2023-11-21 16:05:42 +01:00
Nik Clayton 806991f8a8
fix: Prevent a ClassCastException when handling timeline errors (#273) 2023-11-21 13:48:41 +01:00
Nik Clayton a6a68f1384
fix: Use transparent system bar on all Android versions (#272)
Previous code use transparent system bars on v29, resulting in the wrong
colours in preferences and other activities on some devices.

Fixes #267
2023-11-21 00:02:52 +01:00
vinz e72431d15c fix(l10n): Update German translations
Currently translated at 99.6% (643 of 645 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/de/
2023-11-20 21:41:23 +01:00
renovate[bot] 8043f9fe1c
fix(deps): update material.drawer to v9 (major) (#127)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[com.mikepenz:materialdrawer-iconics](https://togithub.com/mikepenz/MaterialDrawer)
| `8.4.5` -> `9.0.2` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.mikepenz:materialdrawer-iconics/9.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.mikepenz:materialdrawer-iconics/9.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.mikepenz:materialdrawer-iconics/8.4.5/9.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.mikepenz:materialdrawer-iconics/8.4.5/9.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[com.mikepenz:materialdrawer](https://togithub.com/mikepenz/MaterialDrawer)
| `8.4.5` -> `9.0.2` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.mikepenz:materialdrawer/9.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.mikepenz:materialdrawer/9.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.mikepenz:materialdrawer/8.4.5/9.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.mikepenz:materialdrawer/8.4.5/9.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>mikepenz/MaterialDrawer
(com.mikepenz:materialdrawer-iconics)</summary>

###
[`v9.0.2`](https://togithub.com/mikepenz/MaterialDrawer/releases/tag/v9.0.2)

##### 🚀 Features

-   Update to Gradle 7.5.1
- PR:
[#&#8203;2788](https://togithub.com/mikepenz/MaterialDrawer/issues/2788)
-   Bump git from 1.11.0 to 1.13.0
- PR:
[#&#8203;2792](https://togithub.com/mikepenz/MaterialDrawer/issues/2792)
-   Upgrade all dependencies to the latest version
- PR:
[#&#8203;2798](https://togithub.com/mikepenz/MaterialDrawer/issues/2798)

##### 🐛 Fixes

-   fix getColorStateList for API22 and below
- PR:
[#&#8203;2797](https://togithub.com/mikepenz/MaterialDrawer/issues/2797)
    -   Thanks [@&#8203;bmx666](https://togithub.com/bmx666)

##### 💬 Other

-   Dependency Submission API
- PR:
[#&#8203;2782](https://togithub.com/mikepenz/MaterialDrawer/issues/2782)
-   Update CI pipeline for dependency submission API
- PR:
[#&#8203;2783](https://togithub.com/mikepenz/MaterialDrawer/issues/2783)
-   Run dependency submission action on dev branch
- PR:
[#&#8203;2784](https://togithub.com/mikepenz/MaterialDrawer/issues/2784)
-   Update Dependency submission for all modules
- PR:
[#&#8203;2787](https://togithub.com/mikepenz/MaterialDrawer/issues/2787)

###
[`v9.0.1`](https://togithub.com/mikepenz/MaterialDrawer/releases/tag/v9.0.1)

##### 🚀 Features

-   Upgrade dependencies 2022.06.24
- PR:
[#&#8203;2780](https://togithub.com/mikepenz/MaterialDrawer/issues/2780)

##### 🐛 Fixes

-   Enhance selected color selection MiniDrawerItem
- PR:
[#&#8203;2779](https://togithub.com/mikepenz/MaterialDrawer/issues/2779)
    -   Thanks [@&#8203;hamedgramzi](https://togithub.com/hamedgramzi)

###
[`v9.0.0`](https://togithub.com/mikepenz/MaterialDrawer/releases/tag/v9.0.0)

##### 🚀 Features

-   Material 3 theme
- PR:
[#&#8203;2756](https://togithub.com/mikepenz/MaterialDrawer/issues/2756)
- PR:
[#&#8203;2757](https://togithub.com/mikepenz/MaterialDrawer/issues/2757)
-   Upgrade environment | Kotlin 1.6 | Material 1.5.0-beta01
- PR:
[#&#8203;2758](https://togithub.com/mikepenz/MaterialDrawer/issues/2758)
-   Kotlin 1.6.10 | Material Components 1.5.0
- PR:
[#&#8203;2762](https://togithub.com/mikepenz/MaterialDrawer/issues/2762)
-   Upgrade to Navigation 2.4.x
- PR:
[#&#8203;2770](https://togithub.com/mikepenz/MaterialDrawer/issues/2770)
-   Upgrade dependencies | Kotlin 1.6.20
- PR:
[#&#8203;2774](https://togithub.com/mikepenz/MaterialDrawer/issues/2774)
-   Add successListener to setupWithNavController()
- PR:
[#&#8203;2773](https://togithub.com/mikepenz/MaterialDrawer/issues/2773)
- Thanks [@&#8203;shmueldabomb441](https://togithub.com/shmueldabomb441)

##### 🐛 Fixes

-   Do not set `selectOnLongClick` on `multiSelect=false`
- PR:
[#&#8203;2771](https://togithub.com/mikepenz/MaterialDrawer/issues/2771)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/pachli/pachli-android).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMDcuMiIsInVwZGF0ZWRJblZlciI6IjM3LjU5LjgiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nik Clayton <nik@ngo.org.uk>
2023-11-20 20:37:56 +01:00
sanao adb9fcf468
feat: Display compose button when viewing hashtags (#254)
Display the "compose" FAB when viewing a hashtag list. Tapping the
button will open `ComposeActivity` prepopulated with the hashtag at the
end of the post with the cursor at the start.

Fixes #228
2023-11-20 19:19:51 +01:00