Commit Graph

5230 Commits

Author SHA1 Message Date
bittin1ddc447d824349b2 e5bbb71661 fix(l10n): Update Swedish translations
Currently translated at 100.0% (2 of 2 strings)

Translation: Pachli/App : Google
Translate-URL: https://hosted.weblate.org/projects/pachli/app-google/sv/
2024-02-03 15:26:43 +01:00
bittin1ddc447d824349b2 53ce9d90e6 fix(l10n): Update Swedish translations
Currently translated at 100.0% (2 of 2 strings)

Translation: Pachli/App : Fdroid
Translate-URL: https://hosted.weblate.org/projects/pachli/app-fdroid/sv/
2024-02-03 15:26:43 +01:00
bittin1ddc447d824349b2 0c4d182b2b fix(l10n): Update Swedish translations
Currently translated at 100.0% (4 of 4 strings)

Translation: Pachli/Core/Network : Main
Translate-URL: https://hosted.weblate.org/projects/pachli/corenetwork-main/sv/
2024-02-03 15:26:43 +01:00
bittin1ddc447d824349b2 c0c6c0b343 fix(l10n): Update Swedish translations
Currently translated at 100.0% (14 of 14 strings)

Translation: Pachli/Fastlane Metadata
Translate-URL: https://hosted.weblate.org/projects/pachli/fastlane-metadata/sv/
2024-02-03 15:26:43 +01:00
Nik Clayton b1c388e9b4
chore(deps): update dependency gradle to v8.6 (#411)
Use new simple property assignment syntax in build files where
appropriate.
2024-02-03 15:05:43 +01:00
Nik Clayton b572029ba7
ci: Enable Gradle configuration cache on CI (#409)
Gradle configuration currently takes ~ 25s per invocation on CI, this
should hopefully reduce that significantly.
2024-02-02 16:07:03 +01:00
Nik Clayton 1488c13c42
feat: Allow the user to send an error report without a crash (#406)
Getting error reports with logs of strange behaviour is useful even if
the app doesn't crash.

Move crash reporting in to `core.activity`, and provide a menu option
(in orange builds) to trigger a non-fatal crash report that is handled
the same way (i.e., sent by e-mail) as a regular crash report.

`BaseActivity` has to be able to create and handle menus, so adjust
subclasses to call the superclass when necessary.

Update `tools/mvstring` to be able to move strings between different
flavour directories, not just `main`.
2024-02-02 15:34:31 +01:00
Nik Clayton 86d800b1c8
refactor: Modularise "about" activities (#405)
Continue modularisation by moving activities in the "About" feature to a
new `feature.about` module.

Implement `feature.about:
- Move `AboutActivity`, `LicenseActivity`, and `PrivacyPolicyActivity`
here.
- Update `markdown2resource` plugin to work with libraries

Implement `core.data`:
- Types and repositories used through the app
- Move `InstanceInfo` and `InstanceInfoRepository` here so they are
available to `feature.about`.

Implement `core.ui`:
- App-specific views, spans, and other UI content
- Move `ClickableSpanTextView` and `NoUnderlineURLSpan` here so they are
available to `feature.about`.
2024-02-02 15:14:31 +01:00
Nik Clayton 7bf015432d
refactor: Remove unnecesary parcelize plugin import (#407) 2024-02-02 15:12:55 +01:00
Nik Clayton 7116c8e0c3
test: Mock searchSync to prevent crash in ComposeActivityTest (#404)
Without the mock the code-under-test was getting a null value where none
should have been possible, and crashing.
2024-02-01 15:50:40 +01:00
ButterflyOfFire ce21b3b9f8 fix(l10n): Update Arabic translations
Currently translated at 94.8% (604 of 637 strings)

Translation: Pachli/App : Main
Translate-URL: https://hosted.weblate.org/projects/pachli/app-main/ar/
2024-01-31 20:19:19 +01:00
renovate[bot] c9b7877a7f
chore(deps): update gradle/wrapper-validation-action action to v2 (#402)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[gradle/wrapper-validation-action](https://togithub.com/gradle/wrapper-validation-action)
| action | major | `v1` -> `v2` |

---

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

---

### Release Notes

<details>
<summary>gradle/wrapper-validation-action
(gradle/wrapper-validation-action)</summary>

###
[`v2`](https://togithub.com/gradle/wrapper-validation-action/compare/v1...v2)

[Compare
Source](https://togithub.com/gradle/wrapper-validation-action/compare/v1...v2)

</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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-30 22:15:05 +01:00
Nik Clayton fa41838316
docs: Update translation instructions with new modules (#398)
The Weblate UI now includes components for the different Pachli modules,
update the translation instructions to account for this.
2024-01-30 16:40:43 +01:00
Nik Clayton 4750ad78a7
chore(deps): update dependency com.gaelmarhic.quadrant to v1.9 (#400)
1.9 no longer needs the hardcoded "app.pachli" in the class names.
2024-01-30 16:40:11 +01:00
Weblate (bot) 1925860731
fix(l10n): Translations update from Hosted Weblate (#397)
Translations update from [Hosted Weblate](https://hosted.weblate.org)
for [Pachli/Fastlane
Metadata](https://hosted.weblate.org/projects/pachli/fastlane-metadata/).


It also includes following components:

* [Pachli/App](https://hosted.weblate.org/projects/pachli/ui-strings/)

* [Pachli/Feature -
Login](https://hosted.weblate.org/projects/pachli/feature-login/)

* [Pachli/F-Droid](https://hosted.weblate.org/projects/pachli/f-droid/)

* [Pachli/Core -
Network](https://hosted.weblate.org/projects/pachli/core-network/)

* [Pachli/Core - Design
System](https://hosted.weblate.org/projects/pachli/core-design-system/)

* [Pachli/Core -
Activity](https://hosted.weblate.org/projects/pachli/core-activity/)

* [Pachli/Google](https://hosted.weblate.org/projects/pachli/google/)

* [Pachli/GitHub](https://hosted.weblate.org/projects/pachli/github/)



Current translation status:

![Weblate translation
status](https://hosted.weblate.org/widget/pachli/fastlane-metadata/horizontal-auto.svg)

---------

Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
2024-01-30 16:39:45 +01:00
Nik Clayton 358af13dfb
chore: Remove obsolete LicenseCard code (#399)
Unnecessary since the use of `aboutlibraries`
2024-01-30 16:39:19 +01:00
Nik Clayton 74ca756323 Update Crowdin configuration file 2024-01-30 12:29:47 +01:00
Nik Clayton f0fc0fd530
refactor: Modularise core activity classes, (#393)
Continue modularisation by moving core activity classes that almost all
activities depende on to a `core.activity` module. This includes
core "helper" classes as well.

Implement core.activity:
- Contains BaseActivity, BottomSheetActivity
- Contains LinkHelper and other utility classes used by activities

Implement core.common.extensions:
- Move ViewBindingExtensions and ViewExtensions here

Implement core.common.util:
- Move BlurHashDecoder and VersionName here

Implement core.designsystem:
- Holds common resources (animations, colours, drawables, etc) used
  through the app
- Import "core.designsystem.R as DR" through the app to distinguish
  from the module's own resources

Implement feature.login:
- Move the LoginActivity and related code/resources to its own module

Implement tools/mvstring
- Moves string resources (and all translations) from one module to
  another
2024-01-30 11:37:00 +01:00
Nik Clayton f744cbc102
chore: Migrate from gradle-build-action to setup-gradle (#394)
gradle-build-action is deprecated, setup-gradle replaces it. Enable the
new support for the configuration cache.
2024-01-30 00:08:39 +01:00
Nik Clayton 741bf56f38
chore: Prepare release 2.2.0 (versionCode 11) (#392) 2024-01-29 10:09:57 +01:00
Nik Clayton b454fdceb9
fix: Allow users to retry errors when fetching server info (#391)
Previous code would show errors when fetching server info but with no
mechanism to retry the operation, so it would "stick" until the user
restarted the app.

Fix this with a retry action.

While I'm here use styles to ensure that all snackbars are 5 lines max
length and remove code that sets the length.
2024-01-28 20:13:39 +01:00
renovate[bot] 9242c7d98d
chore(deps): update plugin com.gradle.enterprise to v3.16.2 (#389)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| com.gradle.enterprise | `3.16.1` -> `3.16.2` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.gradle.enterprise/3.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.gradle.enterprise/3.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.gradle.enterprise/3.16.1/3.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.gradle.enterprise/3.16.1/3.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### 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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-26 16:52:08 +01:00
renovate[bot] 59d2cb684f
fix(deps): update dependency com.android.tools.build:gradle to v8.2.2 (#384)
[![Mend
Renovate](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.2.1` -> `8.2.2` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.tools.build:gradle/8.2.2?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.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.tools.build:gradle/8.2.1/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.tools.build:gradle/8.2.1/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### 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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-26 12:33:33 +01:00
Nik Clayton 355244a8e2
refactor: Destructure maps for more idiomatic code (#388) 2024-01-26 12:32:45 +01:00
Nik Clayton fc81e8bad7
fix: Ensure actions happen against the correct status (#373)
Previously when the user interacted with a status the operation (reblog,
favourite, etc) travels through multiple layers of code, carrying with
it the position of the item in the list that the user operated on.

At some point the status is retrieved from the list using its position
so that the correct status ID can be used in the network operation.

If this happens while the list is also refreshing there's a possible
race condition, and the original status' position may have changed in
the list. Looking up the status by position to determine which status to
perform the action on may cause the action to happen on the wrong
status.

Fix this by passing the status' viewdata to any actions instead of its
position. This includes all the information necessary to make the API
call, so there is no chance of a race.

This is quite an involved change because there are three types of
viewdata:

- `StatusViewData`, used for regular timelines
- `NotificationViewData`, used for notifications, may wrap a status that
can be operated on
- `ConversationViewData`, used for conversations, does wrap a status

The previous code treated them all differently, which is probably why it
operated by position instead of type.

The high level fix is to:

1. Create an interface, `IStatusViewData`, that contains the data
exposed by any viewdata that contains a status.

2. Implement the interface in `StatusViewData`, `NotificationViewData`,
and `ConversationViewData`.

3. Change the code that operates on viewdata (`SFragment`,
`StatusActionListener`, etc) to be generic over anything that implements
`IStatusViewData`.

4. Change the code that handles actions to pass the viewdata instead of
the position.

Fixes #370
2024-01-26 12:15:27 +01:00
renovate[bot] 947e5c215c
fix(deps): update dependency com.google.truth:truth to v1.3.0 (#387)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [com.google.truth:truth](https://togithub.com/google/truth) | `1.2.0`
-> `1.3.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.truth:truth/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.truth:truth/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.truth:truth/1.2.0/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.truth:truth/1.2.0/1.3.0?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>google/truth (com.google.truth:truth)</summary>

### [`v1.3.0`](https://togithub.com/google/truth/releases/tag/v1.3.0):
1.3.0

In this release, our assertions on Java 8 types begin to move from the
`truth-java8-extensions` artifact and the `Truth8` class to the main
`truth` artifact and the `Truth` class. This change should not break
compatibility for anyone, even users who test under old versions of
Android without [API
desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring).
Additionally, we will never break binary compatibility, though some
users will have to make changes to their source code in order for it to
compile against newer versions.

This change will be routine for most users, but we're providing as much
information as we can for any users who do encounter problems.

We will post fuller instructions for migration later on, once we've
learned more from our internal migration efforts. For now, you may find
that you need to make one kind of change, and you may elect to make
others. (If we missed anything, please [open an
issue](https://togithub.com/google/truth/issues/new) to report problems
or request help.)

The change you might need to make:

- By adding new overloads of `Truth.assertThat`, we cause some code to
fail to compile because of an overload ambiguity. This is rare, but it
can happen if you static import both `Truth.assertThat` and some other
`assertThat` method that includes overloads for `Optional` or `Stream`.
(It does *not* happen for `Truth8.assertThat`, though, except with the
Eclipse compiler. Nor it does *necessarily* happen for other
`assertThat(Stream)` and `assertThat(Optional)` methods.) If this
happens to you, you'll need to remove one of the static imports,
changing the corresponding call sites from "`assertThat`" to
"`FooSubject.assertThat`."
- Alternatively, you may choose to wait until we make further changes to
the new `Truth.assertThat` overloads. Once we make those further
changes, you may be able to simultaneously replace all your imports of
`Truth8.assertThat` with imports of `Truth.assertThat` as you upgrade to
the new version, likely without introducing overload ambiguities.

The changes you might elect to make:

- If you use `Truth8.assertThat(Stream)` or
`Truth8.assertThat(Optional)`, you can migrate to the new overloads in
`Truth`. If you static import `Truth8.assertThat`, you can usually make
this change simply by replacing that static import with a static import
of `Truth.assertThat`—or, if you already have an import of
`Truth.assertThat`, by just removing the import of `Truth8.assertThat`.
(If you additionally use less common assertion methods, like
`assertThat(OptionalInt)`, you'll want to use *both* imports for now.
Later, we'll move `assertThat(OptionalInt)` and friends, too.) We
recommend making this change now, since your calls to
`Truth8.assertThat` will fail to compile against some future version of
Truth, unless you plan to wait to update your Truth dependency until
we've made all our changes for Java 8 types.

- If you use `assertWithMessage(...).about(streams()).that(...)`,
`expect.about(optionals()).that(...)`, or similar, you can remove your
call to `about`. This change will never be necessary; it is just a
simplification.

- If you depend on `truth-java8-extension`, you may remove it. All its
classes are now part of the main `truth` artifact. This change, too, is
not necessary; it is just a simplification. (OK, if your build system
has a concept of [strict
deps](https://blog.bazel.build/2017/06/28/sjd-unused_deps.html), there
is a chance that you'll *need* to add deps on `truth` to replace your
deps on `truth-java8-extension`.)

Finally, the changelog for this release:

- Made `StreamSubject` avoid collecting the `Stream` until necessary,
and made its `isEqualTo` and `isNotEqualTo` methods no longer always
throw. ([`f8ecaec`](https://togithub.com/google/truth/commit/f8ecaec69))
- Added `assertThat` overloads for `Optional` and `Stream` to the main
`Truth` class.
([`37fd8be`](https://togithub.com/google/truth/commit/37fd8bea9))
- Added `that` overloads to make it possible to write type-specific
assertions when using `expect.that(optional)` and `expect.that(stream)`.
([`ca7e8f4`](https://togithub.com/google/truth/commit/ca7e8f4c5))
- Moved the `truth-java8-extension` classes into the main `truth`
artifact. There is no longer any need to depend on
`truth-java8-extension`, which is now empty. (We've also removed the
`Truth8` [GWT](https://www.gwtproject.org/) module.)
([`eb0426e`](https://togithub.com/google/truth/commit/eb0426eb7))

Again, if you have any problems, please [let us
know](https://togithub.com/google/truth/issues/new).

</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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-25 18:38:23 +01:00
renovate[bot] 53e0c90d01
chore(deps): update agp to v8.2.2, lint to 31.2.2 (#383)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [com.android.lint](https://developer.android.com/studio/build)
([source](https://android.googlesource.com/platform/tools/base)) |
`8.2.1` -> `8.2.2` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.lint/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.lint/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.lint/8.2.1/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.lint/8.2.1/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [com.android.library](https://developer.android.com/studio/build)
([source](https://android.googlesource.com/platform/tools/base)) |
`8.2.1` -> `8.2.2` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.library/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.library/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.library/8.2.1/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.library/8.2.1/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [com.android.application](https://developer.android.com/studio/build)
([source](https://android.googlesource.com/platform/tools/base)) |
`8.2.1` -> `8.2.2` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.application/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.application/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.application/8.2.1/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.application/8.2.1/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[com.android.tools.build:gradle](https://developer.android.com/studio/build)
([source](https://android.googlesource.com/platform/tools/base)) |
`8.2.1` -> `8.2.2` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.tools.build:gradle/8.2.2?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.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.tools.build:gradle/8.2.1/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.tools.build:gradle/8.2.1/8.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

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

---

### 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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Nik Clayton <nik@ngo.org.uk>
2024-01-25 18:27:50 +01:00
renovate[bot] 056e03e9c4
fix(deps): update androidx.media3 to v1.2.1 (#363)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [androidx.media3:media3-ui](https://togithub.com/androidx/media) |
`1.2.0` -> `1.2.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-ui/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-ui/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.media3:media3-ui/1.2.0/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.media3:media3-ui/1.2.0/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-datasource-okhttp](https://togithub.com/androidx/media)
| `1.2.0` -> `1.2.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-datasource-okhttp/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-datasource-okhttp/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.media3:media3-datasource-okhttp/1.2.0/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.media3:media3-datasource-okhttp/1.2.0/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer-rtsp](https://togithub.com/androidx/media)
| `1.2.0` -> `1.2.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-exoplayer-rtsp/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-exoplayer-rtsp/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.media3:media3-exoplayer-rtsp/1.2.0/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.media3:media3-exoplayer-rtsp/1.2.0/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer-hls](https://togithub.com/androidx/media)
| `1.2.0` -> `1.2.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-exoplayer-hls/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-exoplayer-hls/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.media3:media3-exoplayer-hls/1.2.0/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.media3:media3-exoplayer-hls/1.2.0/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer-dash](https://togithub.com/androidx/media)
| `1.2.0` -> `1.2.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-exoplayer-dash/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-exoplayer-dash/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.media3:media3-exoplayer-dash/1.2.0/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.media3:media3-exoplayer-dash/1.2.0/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer](https://togithub.com/androidx/media)
| `1.2.0` -> `1.2.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-exoplayer/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-exoplayer/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.media3:media3-exoplayer/1.2.0/1.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.media3:media3-exoplayer/1.2.0/1.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>androidx/media (androidx.media3:media3-ui)</summary>

###
[`v1.2.1`](https://togithub.com/androidx/media/blob/HEAD/RELEASENOTES.md#121-2024-01-09)

[Compare
Source](https://togithub.com/androidx/media/compare/1.2.0...1.2.1)

This release includes the following changes since the
[1.2.0 release](#&#8203;120-2023-11-15):

-   ExoPlayer:
    -   Fix issue where manual seeks outside of the
`LiveConfiguration.min/maxOffset` range keep adjusting the offset back
        to `min/maxOffset`.
- Fix issue that OPUS and VORBIS channel layouts are wrong for 3, 5, 6,
7
        and 8 channels
([#&#8203;8396](https://togithub.com/google/ExoPlayer/issues/8396)).
- Fix issue where track selections after seek to zero in a live stream
        incorrectly let the stream start at its default position
([#&#8203;9347](https://togithub.com/google/ExoPlayer/issues/9347)).
- Fix the issue where new instances of `CmcdData.Factory` were receiving
negative values for `bufferedDurationUs` from chunk sources, resulting
        in an `IllegalArgumentException`
        ([#&#8203;888](https://togithub.com/androidx/media/issues/888)).
-   Transformer:
- Work around an issue where the encoder would throw at configuration
time
        due to setting a high operating rate.
-   Extractors:
    -   Mark secondary (unplayable) HEVC tracks in JPEG motion photos as
`ROLE_FLAG_ALTERNATE` to prevent them being automatically selected for
        playback because of their higher resolution.
    -   Fix wrong keyframe detection for TS H264 streams
        ([#&#8203;864](https://togithub.com/androidx/media/pull/864)).
- Fix duration estimation of TS streams that are longer than 47721
seconds
        ([#&#8203;855](https://togithub.com/androidx/media/issues/855)).
-   Audio:
- Fix handling of EOS for `SilenceSkippingAudioProcessor` when called
multiple times
([#&#8203;712](https://togithub.com/androidx/media/issues/712)).
-   Video:
- Add workaround for a device issue on Galaxy Tab S7 FE, Chromecast with
Google TV, and Lenovo M10 FHD Plus that causes 60fps AVC streams to be
        marked as unsupported
        ([#&#8203;693](https://togithub.com/androidx/media/issues/693)).
-   Metadata:
- Fix bug where `MediaMetadata` was only populated from Vorbis comments
        with upper-case keys
        ([#&#8203;876](https://togithub.com/androidx/media/issues/876)).
- Catch `OutOfMemoryError` when parsing very large ID3 frames, meaning
playback can continue without the tag info instead of playback failing
        completely.
-   DRM:
- Extend workaround for spurious ClearKey `https://default.url` license
        URL to API 33+ (previously the workaround only applied on API 33
exactly) ([#&#8203;837](https://togithub.com/androidx/media/pull/837)).
- Fix `ERROR_DRM_SESSION_NOT_OPENED` when switching from encrypted to
clear content without a surface attached to the player. The error was
due to incorrectly using a secure decoder to play the clear content.
-   Session:
    -   Put the custom keys and values in `MediaMetadataCompat` to
        `MediaMetadata.extras` and `MediaMetadata.extras` to
        `MediaMetadataCompat`
        ([#&#8203;756](https://togithub.com/androidx/media/issues/756),
        [#&#8203;802](https://togithub.com/androidx/media/issues/802)).
    -   Fix broadcasting `notifyChildrenChanged` for legacy controllers
        ([#&#8203;644](https://togithub.com/androidx/media/issues/644)).
- Fix a bug where setting a negative time for a disabled `setWhen` timer
        of the notification caused a crash on some devices
        ([#&#8203;903](https://togithub.com/androidx/media/issues/903)).
- Fix `IllegalStateException` when the media notification controller
hasn't completed connecting when the first notification update is
requested
([#&#8203;917](https://togithub.com/androidx/media/issues/917)).
-   UI:
- Fix issue where forward and rewind buttons are not visible when used
        with Material Design in a BottomSheetDialogFragment
        ([#&#8203;511](https://togithub.com/androidx/media/issues/511)).
    -   Fix issue where the numbers in the fast forward button of the
        `PlayerControlView` were misaligned
        ([#&#8203;547](https://togithub.com/androidx/media/issues/547)).
-   DASH Extension:
    -   Parse "f800" as channel count of 5 for Dolby in DASH manifest
        ([#&#8203;688](https://togithub.com/androidx/media/issues/688)).
-   Decoder Extensions (FFmpeg, VP9, AV1, MIDI, etc.):
- MIDI: Fix issue where seeking forward skips the Program Change events
        ([#&#8203;704](https://togithub.com/androidx/media/issues/704)).
    -   Migrate to FFmpeg 6.0 and update supported NDK to `r26b`
        ([#&#8203;707](https://togithub.com/androidx/media/pull/707),
        [#&#8203;867](https://togithub.com/androidx/media/pull/867)).
-   Cast Extension:
- Sanitize creation of a `Timeline` to not crash the app when loading
        media fails on the cast device
        ([#&#8203;708](https://togithub.com/androidx/media/issues/708)).

</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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-25 18:06:58 +01:00
renovate[bot] a78cd96d21
chore(deps): update kotlin to v1.9.22-1.0.17 (#368)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [com.google.devtools.ksp](https://goo.gle/ksp)
([source](https://togithub.com/google/ksp)) | `1.9.22-1.0.16` ->
`1.9.22-1.0.17` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.devtools.ksp/1.9.22-1.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.devtools.ksp/1.9.22-1.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.devtools.ksp/1.9.22-1.0.16/1.9.22-1.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.devtools.ksp/1.9.22-1.0.16/1.9.22-1.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin](https://goo.gle/ksp)
([source](https://togithub.com/google/ksp)) | `1.9.22-1.0.16` ->
`1.9.22-1.0.17` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/1.9.22-1.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/1.9.22-1.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/1.9.22-1.0.16/1.9.22-1.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/1.9.22-1.0.16/1.9.22-1.0.17?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>google/ksp (com.google.devtools.ksp)</summary>

###
[`v1.9.22-1.0.17`](https://togithub.com/google/ksp/releases/tag/1.9.22-1.0.17)

[Compare
Source](https://togithub.com/google/ksp/compare/1.9.22-1.0.16...1.9.22-1.0.17)

##### Issues fixed

- Annotations missing on KSTypeArgument of typealias
[#&#8203;1679](https://togithub.com/google/ksp/issues/1679)
- unhandled visibility: private to this
[#&#8203;1515](https://togithub.com/google/ksp/issues/1515)
- `Resolver#getJvmCheckedException` results in `<ERROR TYPE>` when
throwing type variable.
[#&#8203;1460](https://togithub.com/google/ksp/issues/1460)
- Class annotation values with `$` in name are `null` when used in
Kotlin source
[#&#8203;1671](https://togithub.com/google/ksp/issues/1671)
- KSP 1.9.21-1.0.15 leaking memory and causing OOMs
[#&#8203;1653](https://togithub.com/google/ksp/issues/1653)
- KSP processing fails with Java enum
[#&#8203;1482](https://togithub.com/google/ksp/issues/1482)
- \[KSP2] Support Package annotations
[#&#8203;1641](https://togithub.com/google/ksp/issues/1641)

</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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-25 17:46:20 +01:00
Nik Clayton c48b8bf545
fix: Don't leak MainActivity in DrawerImageLoader (#382)
Previous code created the drawer image loader as an anonymous inner
class that kept a reference to `glide`, which had a reference to `this`
and could leak.

Fix that by create a separate class that takes these as constructor
parameters.
2024-01-25 17:45:20 +01:00
bittin1ddc447d824349b2 928955e886 fix(l10n): Update Swedish translations
Currently translated at 100.0% (658 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/sv/
2024-01-25 11:28:08 +01:00
bittin1ddc447d824349b2 8dc56be8b6 fix(l10n): Update Swedish translations
Currently translated at 100.0% (658 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/sv/
2024-01-25 11:28:08 +01:00
Reza Almanda 1fc306d890 fix(l10n): Update Indonesian translations
Currently translated at 44.2% (291 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/id/
2024-01-25 11:28:08 +01:00
Anonymous 092a91312a fix(l10n): Update Chinese (Simplified) (zh_MO) translations
Currently translated at 51.5% (339 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/zh_MO/
2024-01-25 11:28:08 +01:00
Anonymous 1e638af89e fix(l10n): Update Chinese (Simplified) translations
Currently translated at 92.0% (606 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/zh_Hans/
2024-01-25 11:28:08 +01:00
Anonymous 28b34aee64 fix(l10n): Update Vietnamese translations
Currently translated at 92.0% (606 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/vi/
2024-01-25 11:28:08 +01:00
Anonymous ec8666edc5 fix(l10n): Update Ukrainian translations
Currently translated at 91.6% (603 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/uk/
2024-01-25 11:28:08 +01:00
Anonymous 0857f3d61d fix(l10n): Update Turkish translations
Currently translated at 91.7% (604 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/tr/
2024-01-25 11:28:08 +01:00
Anonymous 7fb2cd9af1 fix(l10n): Update Thai translations
Currently translated at 66.4% (437 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/th/
2024-01-25 11:28:08 +01:00
Anonymous 6ef6ac15df fix(l10n): Update Slovenian translations
Currently translated at 58.0% (382 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/sl/
2024-01-25 11:28:08 +01:00
Anonymous 92c94ae2b9 fix(l10n): Update Sinhala translations
Currently translated at 36.4% (240 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/si/
2024-01-25 11:28:08 +01:00
Anonymous 9a17096f8d fix(l10n): Update Sanskrit translations
Currently translated at 78.1% (514 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/sa/
2024-01-25 11:28:08 +01:00
Anonymous 11a8429327 fix(l10n): Update Portuguese (Portugal) translations
Currently translated at 78.5% (517 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/pt_PT/
2024-01-25 11:28:08 +01:00
Anonymous b36eba9092 fix(l10n): Update Occitan translations
Currently translated at 91.1% (600 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/oc/
2024-01-25 11:28:08 +01:00
Anonymous b3427f823e fix(l10n): Update Norwegian Bokmål translations
Currently translated at 90.5% (596 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/nb_NO/
2024-01-25 11:28:08 +01:00
Anonymous 73c80825f1 fix(l10n): Update Latvian translations
Currently translated at 83.2% (548 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/lv/
2024-01-25 11:28:08 +01:00
Anonymous 3829e8bd31 fix(l10n): Update Korean translations
Currently translated at 57.2% (377 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/ko/
2024-01-25 11:28:08 +01:00
Anonymous 9a68df58f6 fix(l10n): Update Kabyle translations
Currently translated at 37.3% (246 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/kab/
2024-01-25 11:28:08 +01:00
Anonymous 978f1fccee fix(l10n): Update Icelandic translations
Currently translated at 90.5% (596 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/is/
2024-01-25 11:28:08 +01:00
Anonymous 612043d3fe fix(l10n): Update Hungarian translations
Currently translated at 90.5% (596 of 658 strings)

Translation: Pachli/UI strings
Translate-URL: https://hosted.weblate.org/projects/pachli/ui-strings/hu/
2024-01-25 11:28:08 +01:00