Commit Graph

5586 Commits

Author SHA1 Message Date
Nik Clayton b0d63e4243
fix: Update PageCache to handle non-chronological ordering (#633)
The PageCache implementation wasn't properly dealing with timelines that
could return statuses in non-chronological order.

For example, if you bookmark a recent status, then go back in the
timeline and bookmark an older status; the bookmarks timeline is ordered
by the time of the bookmark event, not the creation time of the status
that was bookmarked.

If a sufficiently old status was bookmarked so it straddled a page
boundary you could have a situation where the range of status IDs in two
different cached pages overlapped.

E.g., this log extract:

```
0: k: 110912736679636090, prev: 3521487, next: 3057175, size: 40, range: 112219564107059218..110912736679636090
1: k: 111651744569170291, prev: 3049659, next: 2710596, size: 40, range: 111926741634665808..111651744569170291
```

The range of IDs in page 0 overlaps with the range of IDs in page 1.

The previous `PageCache` assumed this couldn't happen, and broke in
various interesting ways when it did.

E.g., you can't find the page that contains a given status by looking
for the largest key less than the needle's status id. Given the pages
above looking for ID 112219564107059218 (first status in page 0) would
suggest page 1 as having the greatest key less than that ID. This
manifested as the correct page briefly appearing in the UI (page 0),
then being completely replaced with page 1.

Rewrite PageCache to fix this. The previous implementation used a single
`TreeMap` assuming items were always sorted by ID. The new code keeps an
unordered map from status IDs to the page that contains that status, and
a separate `LinkedList` that contains the pages in order they're
provided by the API. This decouples the ordering of pages in the cache
with the overall ordering of items within the pages.
2024-04-22 20:34:16 +02:00
Nik Clayton b8939dd2cf
fix: Ensure actionbar title is set correctly (#628)
https://github.com/pachli/pachli-android/pull/589 changed the initial
setting of the action bar title to use `binding.mainToolbar.title`
instead of `supportActionBar?.title`.

Not sure why, but this doesn't work on first use, and was showing
"Pachli Current" until the user changes tabs. Swap one usage back to
`supportActionBar?.title` to fix this, and update the other to do the
same thing to keep the code consistent.
2024-04-15 22:42:22 +02:00
Nik Clayton 8a2ba4167f
chore(deps): update agp to v8.3.2, lint to v31.3.2 (#627)
Remove unused autodispose, rxandroid3, and rxkotlin3 definitions.
2024-04-15 21:56:42 +02:00
renovate[bot] a7ba5febda
fix(deps): update dependency ch.qos.logback:logback-classic to v1.5.5 (#622)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ch.qos.logback:logback-classic](http://logback.qos.ch)
([source](https://togithub.com/qos-ch/logback),
[changelog](https://logback.qos.ch/news.html)) | `1.5.3` -> `1.5.5` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/ch.qos.logback:logback-classic/1.5.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/ch.qos.logback:logback-classic/1.5.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/ch.qos.logback:logback-classic/1.5.3/1.5.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/ch.qos.logback:logback-classic/1.5.3/1.5.5?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:eyJjcmVhdGVkSW5WZXIiOiIzNy4yOTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI5My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 21:41:34 +02:00
renovate[bot] b0468b762c
fix(deps): update androidx.media3 to v1.3.1 (#621)
[![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.3.0` -> `1.3.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-ui/1.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-ui/1.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.media3:media3-ui/1.3.0/1.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.media3:media3-ui/1.3.0/1.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-datasource-okhttp](https://togithub.com/androidx/media)
| `1.3.0` -> `1.3.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-datasource-okhttp/1.3.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.3.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.3.0/1.3.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.3.0/1.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer-rtsp](https://togithub.com/androidx/media)
| `1.3.0` -> `1.3.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-exoplayer-rtsp/1.3.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.3.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.3.0/1.3.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.3.0/1.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer-hls](https://togithub.com/androidx/media)
| `1.3.0` -> `1.3.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-exoplayer-hls/1.3.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.3.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.3.0/1.3.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.3.0/1.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer-dash](https://togithub.com/androidx/media)
| `1.3.0` -> `1.3.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-exoplayer-dash/1.3.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.3.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.3.0/1.3.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.3.0/1.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer](https://togithub.com/androidx/media)
| `1.3.0` -> `1.3.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-exoplayer/1.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-exoplayer/1.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.media3:media3-exoplayer/1.3.0/1.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.media3:media3-exoplayer/1.3.0/1.3.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.3.1`](https://togithub.com/androidx/media/blob/HEAD/RELEASENOTES.md#131-2024-04-11)

[Compare
Source](https://togithub.com/androidx/media/compare/1.3.0...1.3.1)

This release includes the following changes since the
[1.3.0 release](#&#8203;130-2024-03-06):

-   Common Library:
- Add `Format.labels` to allow localized or other alternative labels.
-   ExoPlayer:
- Fix issue where `PreloadMediaPeriod` cannot retain the streams when it
        is preloaded again.
- Apply the correct corresponding `TrackSelectionResult` to the playing
        period in track reselection.
- Start early-enabled renderers only after advancing the playing period
        when transitioning between media items
([#&#8203;1017](https://togithub.com/androidx/media/issues/1017)).
- Add missing return type to proguard `-keepclasseswithmembers` rule for
        `DefaultVideoFrameProcessor.Factory.Builder.build()`
([#&#8203;1187](https://togithub.com/androidx/media/issues/1187)).
-   Transformer:
- Add workaround for exception thrown due to `MediaMuxer` not supporting
        negative presentation timestamps before API 30.
-   Track Selection:
- `DefaultTrackSelector`: Prefer video tracks with a 'reasonable' frame
rate (>=10fps) over those with a lower or unset frame rate. This ensures
the player selects the 'real' video track in MP4s extracted from motion
        photos that can contain two HEVC tracks where one has a higher
        resolution but a very small number of frames
([#&#8203;1051](https://togithub.com/androidx/media/issues/1051)).
-   Extractors:
- Fix issue where padding was not skipped when reading odd-sized chunks
from WAV files
([#&#8203;1117](https://togithub.com/androidx/media/pull/1117)).
- MP3: Populate `Format.averageBitrate` from metadata frames such as
        `XING` and `VBRI`.
- MPEG-TS: Revert a change that aimed to ensure the last frame is
rendered
        by passing the last access unit of a stream to the sample queue
([#&#8203;7909](https://togithub.com/google/ExoPlayer/issues/7909)).
This is due
        to the change causing new problems with I-frame only HLS streams
([#&#8203;1150](https://togithub.com/google/ExoPlayer/issues/1150)) and
H.262 HLS
streams
([#&#8203;1126](https://togithub.com/google/ExoPlayer/issues/1126)).
-   Audio:
- Allow renderer recovery by disabling offload if audio track fails to
        initialize in offload mode.
-   Video:
- Add workaround for a device issue on Galaxy Tab S7 FE, Chromecast with
Google TV, and Lenovo M10 FHD Plus that causes 60fps H265 streams to be
        marked as unsupported
- Add workaround that ensures the first frame is always rendered while
tunneling even if the device does not do this automatically as required
by the API
([#&#8203;1169](https://togithub.com/androidx/media/issues/1169)).
        ([#&#8203;966](https://togithub.com/androidx/media/issues/966)).
- Fix issue where HDR color info handling causes codec misbehavior and
        prevents adaptive format switches for SDR video tracks
([#&#8203;1158](https://togithub.com/androidx/media/issues/1158)).
-   Text:
    -   WebVTT: Prevent directly consecutive cues from creating spurious
        additional `CuesWithTiming` instances from `WebvttParser.parse`
([#&#8203;1177](https://togithub.com/androidx/media/issues/1177)).
-   DRM:
- Work around a `NoSuchMethodError` which can be thrown by the
`MediaDrm`
        framework instead of `ResourceBusyException` or
        `NotProvisionedException` on some Android 14 devices
([#&#8203;1145](https://togithub.com/androidx/media/issues/1145)).
-   Effect:
    -   Improved PQ to SDR tone-mapping by converting color spaces.
-   Session:
- Fix issue where the current position jumps back when the controller
        replaces the current item
        ([#&#8203;951](https://togithub.com/androidx/media/issues/951)).
- Fix issue where `MediaMetadata` with just non-null `extras` is not
        transmitted between media controllers and sessions
([#&#8203;1176](https://togithub.com/androidx/media/issues/1176)).
-   UI:
    -   Fallback to include audio track language name if `Locale` cannot
        identify a display name
        ([#&#8203;988](https://togithub.com/androidx/media/issues/988)).
-   DASH Extension:
- Populate all `Label` elements from the manifest into `Format.labels`
        ([#&#8203;1054](https://togithub.com/androidx/media/pull/1054)).
-   RTSP Extension:
    -   Skip empty session information values (i-tags) in SDP parsing
([#&#8203;1087](https://togithub.com/androidx/media/issues/1087)).
-   Decoder Extensions (FFmpeg, VP9, AV1, MIDI, etc.):
- Disable the MIDI extension as a local dependency by default because it
requires an additional Maven repository to be configured. Users who need
        this module from a local dependency
[can re-enable
it](https://togithub.com/androidx/media/blob/main/README.md#midi-module).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 21:41:15 +02:00
renovate[bot] e2222d75ae
fix(deps): update dependency io.github.oshai:kotlin-logging-jvm to v6.0.9 (#623)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

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

###
[`v6.0.9`](https://togithub.com/oshai/kotlin-logging/releases/tag/6.0.9)

[Compare
Source](https://togithub.com/oshai/kotlin-logging/compare/6.0.8...6.0.9)

#### What's Changed

- Bump gradle/wrapper-validation-action from 1 to 3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/oshai/kotlin-logging/pull/422](https://togithub.com/oshai/kotlin-logging/pull/422)

**Full Changelog**:
https://github.com/oshai/kotlin-logging/compare/6.0.8...6.0.9

###
[`v6.0.8`](https://togithub.com/oshai/kotlin-logging/releases/tag/6.0.8)

[Compare
Source](https://togithub.com/oshai/kotlin-logging/compare/6.0.7...6.0.8)

#### What's Changed

- Bump com.android.library from 8.2.2 to 8.3.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/oshai/kotlin-logging/pull/421](https://togithub.com/oshai/kotlin-logging/pull/421)
- Bump io.github.gradle-nexus.publish-plugin from 1.3.0 to 2.0.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/oshai/kotlin-logging/pull/417](https://togithub.com/oshai/kotlin-logging/pull/417)

**Full Changelog**:
https://github.com/oshai/kotlin-logging/compare/6.0.7...6.0.8

###
[`v6.0.7`](https://togithub.com/oshai/kotlin-logging/releases/tag/6.0.7)

[Compare
Source](https://togithub.com/oshai/kotlin-logging/compare/6.0.4...6.0.7)

**Full Changelog**:
https://github.com/oshai/kotlin-logging/compare/6.0.5...6.0.7

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 21:35:06 +02:00
renovate[bot] 4c86862f81
fix(deps): update dependency org.mockito.kotlin:mockito-kotlin to v5.3.1 (#625)
[![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.2.1` -> `5.3.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.mockito.kotlin:mockito-kotlin/5.3.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.3.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.2.1/5.3.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.2.1/5.3.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.3.1`](https://togithub.com/mockito/mockito-kotlin/releases/tag/5.3.1)

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

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

##### 5.3.1

- 2024-04-09 - [3
commit(s)](https://togithub.com/mockito/mockito-kotlin/compare/5.3.0...5.3.1)
by Oscar Guillén, Róbert Papp
- Follow-up on
[#&#8203;508](https://togithub.com/mockito/mockito-kotlin/issues/508):
add tests and remove unnecessary methods
[(#&#8203;516)](https://togithub.com/mockito/mockito-kotlin/pull/516)
- Fix broken release
([#&#8203;509](https://togithub.com/mockito/mockito-kotlin/issues/509))
[(#&#8203;514)](https://togithub.com/mockito/mockito-kotlin/pull/514)
- Add support for destructured parameters in answers
[(#&#8203;512)](https://togithub.com/mockito/mockito-kotlin/pull/512)
- Release is broken
[(#&#8203;509)](https://togithub.com/mockito/mockito-kotlin/issues/509)
- Port AdditionalMatchers matchers
[(#&#8203;508)](https://togithub.com/mockito/mockito-kotlin/pull/508)

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 21:34:56 +02:00
Nik Clayton c171980e28
ci: Cancel in-progress CI runs if a new commit is pushed to the branch (#626) 2024-04-15 21:34:12 +02:00
renovate[bot] 016eedef0b
chore(deps): update plugin com.gradle.develocity to v3.17.1 (#620)
[![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.develocity | `3.17` -> `3.17.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.gradle.develocity/3.17.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.gradle.develocity/3.17.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.gradle.develocity/3.17/3.17.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.gradle.develocity/3.17/3.17.1?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:eyJjcmVhdGVkSW5WZXIiOiIzNy4yOTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI5My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-15 16:38:10 +02:00
Nik Clayton 189b441042
ci: Run normal CI workflow on pushes to main (#618)
This should ensure that everything that is built as part of regular CI
can be saved to the build cache after the PR is merged.
2024-04-15 16:02:01 +02:00
Nik Clayton 71df384378
chore(deps): update gradle/actions digest to 6cec5d4 (#617)
The new version bundles the wrapper validation action, so switch to
that.
2024-04-15 15:52:40 +02:00
Nik Clayton b9e8fc6e57
ci: Use setup-build-env in the apk-on-comment workflow (#616) 2024-04-15 15:40:30 +02:00
Nik Clayton cc9efbfa7a
ci: Simplify and improve CI speed (#615)
Abstract common CI setup tasks (setting up Java, Gradle, etc) in to a
single action that can be used by all CI workflows.

Run the lint, test, and assemble CI tasks in parallel for each variant
rather than in series, which cuts ~ 7 minutes (approx. 50%) off the CI
runtime.

Update code in checks and core/navigation to fix new tests.
2024-04-15 15:24:07 +02:00
Nik Clayton 5f198b0d90
build: Simplify build infrastructure for command line tools (#613)
Provide a build convention plugin for command line tools, and use
`libs.versions.toml` for command line tool dependencies. Adjust the
individual tool `build.gradle.kts` files accordingly.

Remove unnecessary `gradle.properties` and `settings.gradle` files for
projects that are included as subprojects, not included builds.

Add a trivial test for each command line tool so there are tests to run
and provide some confidence that automated library upgrades don't break
command line tool compilation.
2024-04-15 15:06:55 +02:00
renovate[bot] 4d7f8d4682
fix(deps): update dependency com.github.ajalt.clikt:clikt to v4.3.0 (#574)
[![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.github.ajalt.clikt:clikt](https://togithub.com/ajalt/clikt) |
`4.2.2` -> `4.3.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.github.ajalt.clikt:clikt/4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.github.ajalt.clikt:clikt/4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.github.ajalt.clikt:clikt/4.2.2/4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.github.ajalt.clikt:clikt/4.2.2/4.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>ajalt/clikt (com.github.ajalt.clikt:clikt)</summary>

###
[`v4.3.0`](https://togithub.com/ajalt/clikt/blob/HEAD/CHANGELOG.md#430)

[Compare Source](https://togithub.com/ajalt/clikt/compare/4.2.2...4.3.0)

##### Added

- Added `limit` parameter to `option().counted()` to limit the number of
times the option can be used. You can either clamp the value to the
limit, or throw an error if the limit is exceeded.
([#&#8203;483](https://togithub.com/ajalt/clikt/issues/483))
- Added `Context.registerClosable` and `Context.callOnClose` to allow
you to register cleanup actions that will be called when the command
exits. ([#&#8203;395](https://togithub.com/ajalt/clikt/issues/395))

##### Fixed

- Fixed `unrecognized modifier 'i'` that happened on tab-completion when
using sub command aliases. Thanks to
[@&#8203;hick209](https://togithub.com/hick209) for the contribution.
([#&#8203;500](https://togithub.com/ajalt/clikt/pull/500))
- Make sure auto complete script works on zsh, fixing the error
`complete:13: command not found: compdef`. Thanks to
[@&#8203;hick209](https://togithub.com/hick209) for the contribution.
([#&#8203;499](https://togithub.com/ajalt/clikt/pull/499))

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-10 20:03:45 +02:00
renovate[bot] f33d12213f
fix(deps): update dependency io.github.oshai:kotlin-logging-jvm to v6.0.4 (#605)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

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

###
[`v6.0.4`](https://togithub.com/oshai/kotlin-logging/releases/tag/6.0.4)

[Compare
Source](https://togithub.com/oshai/kotlin-logging/compare/6.0.3...6.0.4)

#### What's Changed

- Bump actions/cache from 3.3.3 to 4.0.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/oshai/kotlin-logging/pull/395](https://togithub.com/oshai/kotlin-logging/pull/395)
- Fluent Logging: Allow nullable values by
[@&#8203;Zack-Freedman-Thoughtworks](https://togithub.com/Zack-Freedman-Thoughtworks)
in
[https://github.com/oshai/kotlin-logging/pull/402](https://togithub.com/oshai/kotlin-logging/pull/402)
- Bump multiplatform from 1.9.22 to 1.9.23 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/oshai/kotlin-logging/pull/405](https://togithub.com/oshai/kotlin-logging/pull/405)
- Bump org.jetbrains.dokka from 1.9.10 to 1.9.20 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/oshai/kotlin-logging/pull/406](https://togithub.com/oshai/kotlin-logging/pull/406)
- Bump actions/cache from 4.0.0 to 4.0.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/oshai/kotlin-logging/pull/403](https://togithub.com/oshai/kotlin-logging/pull/403)
- Bump com.diffplug.spotless from 6.24.0 to 6.25.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/oshai/kotlin-logging/pull/397](https://togithub.com/oshai/kotlin-logging/pull/397)
- allow only markers being supplied by
[@&#8203;ewoelfel](https://togithub.com/ewoelfel) in
[https://github.com/oshai/kotlin-logging/pull/408](https://togithub.com/oshai/kotlin-logging/pull/408)
- Upgrade ktfmt to version 0.47 by
[@&#8203;mlewe](https://togithub.com/mlewe) in
[https://github.com/oshai/kotlin-logging/pull/415](https://togithub.com/oshai/kotlin-logging/pull/415)
- Allow supplying org.slf4j.Marker by
[@&#8203;mlewe](https://togithub.com/mlewe) in
[https://github.com/oshai/kotlin-logging/pull/414](https://togithub.com/oshai/kotlin-logging/pull/414)

#### New Contributors

-
[@&#8203;Zack-Freedman-Thoughtworks](https://togithub.com/Zack-Freedman-Thoughtworks)
made their first contribution in
[https://github.com/oshai/kotlin-logging/pull/402](https://togithub.com/oshai/kotlin-logging/pull/402)
- [@&#8203;ewoelfel](https://togithub.com/ewoelfel) made their first
contribution in
[https://github.com/oshai/kotlin-logging/pull/408](https://togithub.com/oshai/kotlin-logging/pull/408)
- [@&#8203;mlewe](https://togithub.com/mlewe) made their first
contribution in
[https://github.com/oshai/kotlin-logging/pull/415](https://togithub.com/oshai/kotlin-logging/pull/415)

**Full Changelog**:
https://github.com/oshai/kotlin-logging/compare/6.0.3...6.0.4

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-10 20:03:26 +02:00
Nik Clayton add5f214c9
chore(deps): update plugin com.gradle.enterprise to com.gradle.develocity (#612) 2024-04-10 20:03:06 +02:00
renovate[bot] 5d95425706
chore(deps): update aboutlibraries to v11.1.3 (#567)
[![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.mikepenz.aboutlibraries.plugin | `11.1.0` -> `11.1.3` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.mikepenz.aboutlibraries.plugin/11.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.mikepenz.aboutlibraries.plugin/11.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.mikepenz.aboutlibraries.plugin/11.1.0/11.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.mikepenz.aboutlibraries.plugin/11.1.0/11.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[com.mikepenz:aboutlibraries](https://togithub.com/mikepenz/AboutLibraries)
| `11.1.0` -> `11.1.3` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.mikepenz:aboutlibraries/11.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.mikepenz:aboutlibraries/11.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.mikepenz:aboutlibraries/11.1.0/11.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.mikepenz:aboutlibraries/11.1.0/11.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[com.mikepenz:aboutlibraries-core](https://togithub.com/mikepenz/AboutLibraries)
| `11.1.0` -> `11.1.3` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.mikepenz:aboutlibraries-core/11.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.mikepenz:aboutlibraries-core/11.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.mikepenz:aboutlibraries-core/11.1.0/11.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.mikepenz:aboutlibraries-core/11.1.0/11.1.3?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>mikepenz/AboutLibraries (com.mikepenz:aboutlibraries)</summary>

###
[`v11.1.3`](https://togithub.com/mikepenz/AboutLibraries/releases/tag/v11.1.3)

#### 🚀 Features

-   Ignore case for name of new `allowedLicensesMap`
- PR:
[#&#8203;976](https://togithub.com/mikepenz/AboutLibraries/issues/976)

###
[`v11.1.2`](https://togithub.com/mikepenz/AboutLibraries/releases/tag/v11.1.2)

#### 🚀 Features

-   New API to allow some licenses only for specific libraries
- PR:
[#&#8203;972](https://togithub.com/mikepenz/AboutLibraries/issues/972)

#### 💬 Other

-   Protect from problems collecting all dependencies
- PR:
[#&#8203;971](https://togithub.com/mikepenz/AboutLibraries/issues/971)

###
[`v11.1.1`](https://togithub.com/mikepenz/AboutLibraries/releases/tag/v11.1.1)

##### 🚀 Features

-   Library Serializer
- PR:
[#&#8203;963](https://togithub.com/mikepenz/AboutLibraries/issues/963)
    -   Thanks [@&#8203;DatL4g](https://togithub.com/DatL4g)
-   Update major dependencies | Compose 1.6.4 | Compose-MP 1.6.1
- PR:
[#&#8203;968](https://togithub.com/mikepenz/AboutLibraries/issues/968)

##### 🐛 Fixes

- Set onclick listener of SimpleLibraryItem to null if no license is
known
- PR:
[#&#8203;966](https://togithub.com/mikepenz/AboutLibraries/issues/966)
    -   Thanks [@&#8203;alexbakker](https://togithub.com/alexbakker)
-   Sort a copy of the list of libraries to prevent a crash
- PR:
[#&#8203;967](https://togithub.com/mikepenz/AboutLibraries/issues/967)
    -   Thanks [@&#8203;alexbakker](https://togithub.com/alexbakker)

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-10 09:43:51 +02:00
renovate[bot] 4d1d913859
fix(deps): update dependency io.github.z4kn4fein:semver to v2 (#609)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[io.github.z4kn4fein:semver](https://z4kn4fein.github.io/kotlin-semver)
([source](https://togithub.com/z4kn4fein/kotlin-semver)) | `1.4.2` ->
`2.0.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/io.github.z4kn4fein:semver/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.github.z4kn4fein:semver/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.github.z4kn4fein:semver/1.4.2/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.github.z4kn4fein:semver/1.4.2/2.0.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>z4kn4fein/kotlin-semver (io.github.z4kn4fein:semver)</summary>

###
[`v2.0.0`](https://togithub.com/z4kn4fein/kotlin-semver/blob/HEAD/CHANGELOG.md#200---2024-04-05)

[Compare
Source](https://togithub.com/z4kn4fein/kotlin-semver/compare/1.4.2...2.0.0)

##### Changed

-   Kotlin version to `1.9.23`.

##### Added

- `wasmJs`, `wasmWasi`, `androidNativeArm32`, `androidNativeArm64`,
`androidNativeX86`, `androidNativeX64`, `watchosDeviceArm64` targets.

##### Removed

-   Not supported `mingwX86`, `watchosX86`, `iosArm32` targets.

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-10 09:36:44 +02:00
renovate[bot] 62517036b4
fix(deps): update dependency org.jetbrains:markdown to v0.7.0 (#607)
[![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.6.1` -> `0.7.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains:markdown/0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains:markdown/0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains:markdown/0.6.1/0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains:markdown/0.6.1/0.7.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>JetBrains/markdown (org.jetbrains:markdown)</summary>

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

- \[[#&#8203;133](https://togithub.com/JetBrains/markdown/issues/133)]
Added support for mathematical expressions in GFM
- \[[#&#8203;140](https://togithub.com/JetBrains/markdown/issues/140)]
Added wasmJs target
- \[[#&#8203;146](https://togithub.com/JetBrains/markdown/issues/146)]
Added linuxArm64 target
- \[[#&#8203;149](https://togithub.com/JetBrains/markdown/issues/149)]
Fixed parsing of code spans with backslashes and spaces

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-10 09:36:15 +02:00
renovate[bot] 3bbfbbe39a
chore(deps): update kotlin to v1.9.23-1.0.20 (#603)
[![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.23-1.0.19` ->
`1.9.23-1.0.20` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.devtools.ksp/1.9.23-1.0.20?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.devtools.ksp/1.9.23-1.0.20?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.devtools.ksp/1.9.23-1.0.19/1.9.23-1.0.20?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.devtools.ksp/1.9.23-1.0.19/1.9.23-1.0.20?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.23-1.0.19` ->
`1.9.23-1.0.20` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/1.9.23-1.0.20?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.23-1.0.20?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.23-1.0.19/1.9.23-1.0.20?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.23-1.0.19/1.9.23-1.0.20?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.23-1.0.20`](https://togithub.com/google/ksp/releases/tag/1.9.23-1.0.20)

[Compare
Source](https://togithub.com/google/ksp/compare/1.9.23-1.0.19...1.9.23-1.0.20)

#### KSP1 issues fixed

- performance optimization for certain workload consists of heavy Java
files, including
- Replace IdKey's impl with identityHashCode
[#&#8203;1804](https://togithub.com/google/ksp/issues/1804)
- Cache enclosed descriptors by name
[#&#8203;1808](https://togithub.com/google/ksp/issues/1808)
- Add excludedSources to the KSP extension object
[#&#8203;1793](https://togithub.com/google/ksp/issues/1793) thanks to
[@&#8203;bitspittle](https://togithub.com/bitspittle)

#### KSP2 issues fixed

- NoClassDefFoundError for LZ4Factory when trying KSP2
[#&#8203;1713](https://togithub.com/google/ksp/issues/1713)
- Calling KSType.replace() with original arguments results in <ERROR
TYPE> [#&#8203;1807](https://togithub.com/google/ksp/issues/1807)
- Static fields in base class appear in derived classes
[#&#8203;1744](https://togithub.com/google/ksp/issues/1744)
-   fix backing field checking for top level callables
-   support sealed inheritors lookup.
-   support type alias for getSymbolsWithAnnotation
-   support more types for reference elements

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-10 09:18:32 +02:00
renovate[bot] 0a67f7e9f7
chore(deps): update dependency gradle to v8.7 (#563)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [gradle](https://gradle.org)
([source](https://togithub.com/gradle/gradle)) | minor | `8.6` -> `8.7`
|

---

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

---

### Release Notes

<details>
<summary>gradle/gradle (gradle)</summary>

### [`v8.7`](https://togithub.com/gradle/gradle/compare/v8.6.0...v8.7.0)

[Compare
Source](https://togithub.com/gradle/gradle/compare/v8.6.0...v8.7.0)

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-10 09:18:08 +02:00
renovate[bot] 0dfeed4c4d
fix(deps): update dependency org.robolectric:robolectric to v4.12.1 (#608)
[![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.robolectric:robolectric](http://robolectric.org)
([source](https://togithub.com/robolectric/robolectric)) | `4.11.1` ->
`4.12.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.robolectric:robolectric/4.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.robolectric:robolectric/4.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.robolectric:robolectric/4.11.1/4.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.robolectric:robolectric/4.11.1/4.12.1?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:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-10 09:17:30 +02:00
Nik Clayton dd2efe9795
feat: Disable filters for accounts on servers running Sharkey (#610)
Fixes #600.
2024-04-09 16:23:04 +02:00
Nik Clayton 7752cf9210
fix: Set correct text direction for localised error messages (#601)
Use `unicodeWrap` when inserting placeholders in error messages so they
set the correct text direction.

Update some strings with formatting directives to (a) include `_fmt`
in the name, and (b) use `%1$s` instead of `%s`.
2024-04-09 14:26:15 +02:00
renovate[bot] 59c75358e9
chore(deps): update gradle/actions digest to 1168cd3 (#602)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [gradle/actions](https://togithub.com/gradle/actions) | action |
digest | `417ae3c` -> `1168cd3` |

---

> [!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:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-09 13:00:20 +02:00
renovate[bot] c8693ec08c
chore(deps): update hilt to v2.51.1 (#573)
[![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.dagger.hilt.android](https://togithub.com/google/dagger) |
`2.51` -> `2.51.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.dagger.hilt.android/2.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.dagger.hilt.android/2.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.dagger.hilt.android/2.51/2.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.dagger.hilt.android/2.51/2.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[com.google.dagger:hilt-android-testing](https://togithub.com/google/dagger)
| `2.51` -> `2.51.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.dagger:hilt-android-testing/2.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.dagger:hilt-android-testing/2.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.dagger:hilt-android-testing/2.51/2.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.dagger:hilt-android-testing/2.51/2.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [com.google.dagger:hilt-compiler](https://togithub.com/google/dagger)
| `2.51` -> `2.51.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.dagger:hilt-compiler/2.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.dagger:hilt-compiler/2.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.dagger:hilt-compiler/2.51/2.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.dagger:hilt-compiler/2.51/2.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [com.google.dagger:hilt-android](https://togithub.com/google/dagger) |
`2.51` -> `2.51.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.dagger:hilt-android/2.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.dagger:hilt-android/2.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.dagger:hilt-android/2.51/2.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.dagger:hilt-android/2.51/2.51.1?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:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-05 18:19:27 +02:00
renovate[bot] 17b202ed59
fix(deps): update retrofit to v2.11.0 (#575)
[![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.squareup.retrofit2:retrofit](https://togithub.com/square/retrofit)
| `2.10.0` -> `2.11.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.squareup.retrofit2:retrofit/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.squareup.retrofit2:retrofit/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.squareup.retrofit2:retrofit/2.10.0/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.squareup.retrofit2:retrofit/2.10.0/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[com.squareup.retrofit2:converter-moshi](https://togithub.com/square/retrofit)
| `2.10.0` -> `2.11.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.squareup.retrofit2:converter-moshi/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.squareup.retrofit2:converter-moshi/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.squareup.retrofit2:converter-moshi/2.10.0/2.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.squareup.retrofit2:converter-moshi/2.10.0/2.11.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>square/retrofit (com.squareup.retrofit2:retrofit)</summary>

###
[`v2.11.0`](https://togithub.com/square/retrofit/blob/HEAD/CHANGELOG.md#2110---2024-03-28)

[Compare
Source](https://togithub.com/square/retrofit/compare/2.10.0...2.11.0)

**New**

- The built-in `OptionalConverterFactory` is now public to allow
installing it before other converters which consume all types (e.g.,
Moshi, Gson, Jackson, etc.).

**Fixed**

- Ensure that exceptions thrown from failure to parse method annotations
can be observed by multiple threads/callers. Previously only the first
caller would see the actual parsing exception and other callers would
get a cryptic `ClassCastException`.

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-05 18:19:18 +02:00
Weblate (bot) 9e35147658
fix(l10n): Translations update from Hosted Weblate (#588)
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/Core/Network :
Main](https://hosted.weblate.org/projects/pachli/corenetwork-main/)

* [Pachli/App :
Main](https://hosted.weblate.org/projects/pachli/app-main/)

* [Pachli/Feature/About :
Main](https://hosted.weblate.org/projects/pachli/featureabout-main/)

* [Pachli/Feature/Lists :
Main](https://hosted.weblate.org/projects/pachli/featurelists-main/)

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

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

* [Pachli/Core/Designsystem :
Main](https://hosted.weblate.org/projects/pachli/coredesignsystem-main/)

* [Pachli/Core/Activity :
Orange](https://hosted.weblate.org/projects/pachli/coreactivity-orange/)

* [Pachli/Core/Activity :
Main](https://hosted.weblate.org/projects/pachli/coreactivity-main/)

* [Pachli/App :
Fdroid](https://hosted.weblate.org/projects/pachli/app-fdroid/)

* [Pachli/Core/Ui :
Main](https://hosted.weblate.org/projects/pachli/coreui-main/)



Current translation status:

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

---------

Co-authored-by: ButterflyOfFire <boffire@users.noreply.hosted.weblate.org>
Co-authored-by: Kalle Kniivilä <kalle.kniivila@gmail.com>
Co-authored-by: Nik Clayton <nik@ngo.org.uk>
2024-04-05 17:52:39 +02:00
Nik Clayton b52ec248b0
refactor: Remove unnecessary whitespace in poll_info_format resource (#595) 2024-04-05 16:46:38 +02:00
Nik Clayton 30b803f673
docs: Restructure README, link to screenshots (#596) 2024-04-05 16:44:52 +02:00
Nik Clayton c89f91d058
feat: Show any errors when registering the app during login (#594)
Should make it easier for users to figure out what's gone wrong and
either fix it on their end, or provide more detailed bug reports.
2024-04-05 12:27:12 +02:00
Angelo Suzuki 6507e2bec1
fix: Setup compose button when creating MainActivity (#589)
The compose button isn't initially working on `MainActivity`. It is only
properly setup after changing tabs.

Fix by calling `MainActivity.refreshComposeButtonState(TabViewData)` on
creation.
2024-04-04 13:33:43 +02:00
Nik Clayton 6bef6f2fae
feat: Simplify adding/removing timelines from tabs (#587)
Previously, modifying any tabs meant opening the left-side nav, opening
Account preferences > Tabs, and then adding / removing tabs. This is
time consuming, and difficult for new users to discover.

In addition, it was possible to remove the Home tab, and there was a
hardcoded minimum of at least two tabs.

Fix this.

When viewing a timeline that is not already in a tab an "Add to tab"
menu item is enabled, which appends the timeline to the list of existing
tabs.

When viewing a timeline in a tab (that is not the Home timeline) a
"Remove tab" menu item is enabled, which removes the tab from the list
of existing tabs.

If the user removes the active tab (either with this menu item, or
through preferences) the tab to the left of the active tab becomes the
new active tab.

A new "Manage tabs" menu item is also provided, as a shortcut to the
existing Account preferences > Tabs screen.

When managing tabs the Home timeline can not be removed; the button to
remove it is removed, and swiping is disabled on that list item. The
restriction of "at least two tabs" has also been removed.

`NotificationsActivity` has been removed, as `TimelineActivity` can
display `NotificationsFragment`.

To make the three "Trending" types (hashtags, links, and posts) more
visually distinct add two new icons for links (ic_newspaper) and posts
(ic_whatshot).

Fixes #572, #584, #585, #569
2024-04-03 00:10:09 +02:00
Nik Clayton 0829d91989
fix: Stop crash in FollowedTagsActivity when view is not created (#586) 2024-04-02 17:51:46 +02:00
Nik Clayton 4ea42f4a2c
feat: Add left-nav entries for Local, Federated, and Direct Messages (#583)
Fixes #570
2024-04-01 21:42:28 +02:00
Nik Clayton d65d969257
fix: Allow filter expiration to be set to "indefinite" (#582)
Mastodon API uses an "empty" `expires_in` value for a filter to mean
"Does not expire" (i.e., indefinite).

This was modelled as a null. Which doesn't work, because Retrofit does
not send name/value pairs in encoded forms if the value is null.

Fix this by making the API type a `String?`, and explicitly using the
empty string when indefinite expiry is used. This has to be converted
back to an Int? in a few places.

See
https://github.com/mastodon/documentation/issues/1216#issuecomment-2030222940
2024-04-01 20:48:11 +02:00
Nik Clayton c45408088a
refactor: Use the `minutes` helper to create the duration (#581) 2024-04-01 20:14:19 +02:00
Nik Clayton 55c12dde44
refactor: Improve show/hide FAB logic (#580)
Previous code was inconsistent about how and when the FAB was hidden if
the user had set the relevant preference.

- Sometimes the FAB has hidden by setting the visibility to false, which
removed it with no animation.

- Sometimes the value of the preference was checked once, when the
fragment or activity was created.

- Some timelines didn't show the FAB (Hashtags, Favourites, Bookmarks,
TrendingLinks, TrendingStatuses).

- Logic for figuring out which `ComposeActivity` intent to use was
scattered across different files.

Improve this by:

- Expose changes to the `FAB_HIDE` preference in the relevant viewmodels
as a flow the UI component can collect.

- Centralise the show/hide logic in a new `ActionButtonScrollListener`
class, and always using `show()`/`hide()` to animate the transition.

- Centralise the logic for creating the `ComposeActivity` intent in
`TabViewData`.
2024-04-01 19:57:46 +02:00
Nik Clayton 53fa56bbb4
feat: Support adding "Favourites" to a tab (#578) 2024-03-31 00:03:32 +01:00
Nik Clayton 64fae0ceb6
refactor: Rename `StatusListActivity` to `TimelineActivity` (#577)
More accurately reflects what it does, and simplies the diffs for
upcoming work.
2024-03-30 23:48:04 +01:00
Nik Clayton 8257ded395
refactor: Remove `TabData` type (#576)
`TabData` recorded the type of the timeline the user had added to a tab.
`TimelineKind` is another type that records general information about
configured timelines, with identical properties.

There's no need for both, so remove `TabData` and use `TimelineKind` in
its place.

`TimelineKind` is itself mis-named; it's not just the timeline's kind
but also holds data necessary to display that timeline (e.g., the list
ID if it's a `.UserList`, or the hashtags if it's a `.Hashtags`) so
rename to `Timeline` to better reflect its usage. Move it to a new
`core.model` module.
2024-03-30 23:27:25 +01:00
Nik Clayton 09ca6ae0a8
fix: Create a dedicated menu for NotificationsActivity (#571)
Previous code (probably copy/paste error) used R.menu.activity_trending.
2024-03-29 21:37:45 +01:00
Nik Clayton 2fd9828747
chore: Shrink changelog to < 500 characters 2024-03-28 12:08:35 +01:00
Nik Clayton c2db3dfbcc
chore: Prepare release 2.4.0 (versionCode 13) (#568) 2024-03-28 11:46:06 +01:00
Nik Clayton 0bb269a37d
fix: Don't crash on invalid avatars (#566)
Workaround a Glide bug where the error() handler is not always called,
in this case when the URL does not resolve to an image; for example, a
misconfigured server that redirects requests for the image to an HTML
page.

Catch the exception and use the default avatar image in these cases.
2024-03-24 19:32:28 +01:00
Nik Clayton d3c7c7c89a
fix: Surface all exceptions to the user instead of crashing (#565)
Previous code would handle some expected exceptions (IO, HTTP) when
fetching a timeline, and show them to the user. Any other exception
would crash.

Now, surface all exceptions. Treat IO and HTTP exceptions as retryable
and show the "Retry" option, all others are considered non-retryable.

Provide a specific error string for exceptions caused by bad JSON.
2024-03-24 18:36:28 +01:00
Nik Clayton 2a4126a542
fix: Improve URL / tag / mention extraction when composing (#564)
Previous code used custom regular expressions to extract URLs, hashtags,
and mentions from text while the user was writing a post. These were
inconsistent with the ones that Mastodon uses so the derived character
count could be wrong.

As well as being visually incorrect this could prevent the user from
posting a status that was within the length limit, or allow them to
attempt to post a status that was over the length limit (which would
then fail).

Fix this by dropping the homegrown regular expressions and using the
same text parsing library that Mastodon users; twitter-text. This has
been converted to Kotlin and the functionality related to Twitter
specific features has been removed.

The hashtag handling has been adjusted, as Mastodon is more permissive
about the positions where hashtags can appear than Twitter is, in
particular, a hashtag does not need to be preceded with whitespace if
the tag appears after some scripts, such as Hirigana.
2024-03-23 14:14:07 +01:00
renovate[bot] 62fd47e862
chore(deps): update gradle/wrapper-validation-action digest to b231772 (#561)
[![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 | digest | `699bb18` -> `b231772` |

---

> [!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:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI2MS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-22 08:48:27 +01:00
renovate[bot] 81e54732aa
fix(deps): update androidx.media3 to v1.3.0 (#510)
[![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.1` -> `1.3.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-ui/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-ui/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.media3:media3-ui/1.2.1/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.media3:media3-ui/1.2.1/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-datasource-okhttp](https://togithub.com/androidx/media)
| `1.2.1` -> `1.3.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-datasource-okhttp/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-datasource-okhttp/1.3.0?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.1/1.3.0?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.1/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer-rtsp](https://togithub.com/androidx/media)
| `1.2.1` -> `1.3.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-exoplayer-rtsp/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-exoplayer-rtsp/1.3.0?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.1/1.3.0?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.1/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer-hls](https://togithub.com/androidx/media)
| `1.2.1` -> `1.3.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-exoplayer-hls/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-exoplayer-hls/1.3.0?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.1/1.3.0?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.1/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer-dash](https://togithub.com/androidx/media)
| `1.2.1` -> `1.3.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-exoplayer-dash/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-exoplayer-dash/1.3.0?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.1/1.3.0?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.1/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer](https://togithub.com/androidx/media)
| `1.2.1` -> `1.3.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.media3:media3-exoplayer/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.media3:media3-exoplayer/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.media3:media3-exoplayer/1.2.1/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.media3:media3-exoplayer/1.2.1/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>androidx/media (androidx.media3:media3-ui)</summary>

###
[`v1.3.0`](https://togithub.com/androidx/media/blob/HEAD/RELEASENOTES.md#130-2024-03-06)

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

This release includes the following changes since the
[1.2.1 release](#&#8203;121-2024-01-09):

-   Common Library:
- Implement support for `android.resource://package/[type/]name` raw
resource URIs where `package` is different to the package of the current
        application. This has always been documented to work, but wasn't
        correctly implemented until now.
- Normalize MIME types set by app code or read from media to be fully
        lower-case.
    -   Define ads with a full `MediaItem` instead of a single `Uri` in
        `AdPlaybackState`.
    -   Increase `minSdk` to 19 (Android KitKat). This is
[aligned with all other AndroidX
libraries](https://android-developers.googleblog.com/2023/10/androidx-minsdkversion-19.html),
and is required for us to upgrade to the latest versions of our AndroidX
        dependencies.
    -   Populate both `artworkUri` and `artworkData` in
`MediaMetadata.Builder.populate(MediaMetadata)` when at least one of
them is non-null
([#&#8203;964](https://togithub.com/androidx/media/issues/964)).
-   ExoPlayer:
- Add `PreloadMediaSource` and `PreloadMediaPeriod` that allows apps to
preload a content media source at a specific start position before
playback. `PreloadMediaSource` takes care of preparing the content media
source to receive the `Timeline`, preparing and caching the period at
the given start position, selecting tracks and loading media data for
        the period. Apps control the preload progress by implementing
`PreloadMediaSource.PreloadControl` and set the preloaded source to the
        player for playback.
    -   Add `ExoPlayer.setImageOutput` that allows apps to set
        `ImageRenderer.ImageOutput`.
- `DefaultRenderersFactory` now provides an `ImageRenderer` to the
player
by default with null `ImageOutput` and `ImageDecoder.Factory.DEFAULT`.
- Emit `Player.Listener.onPositionDiscontinuity` event when silence is
skipped ([#&#8203;765](https://togithub.com/androidx/media/issues/765)).
- Add experimental support for parsing subtitles during extraction. You
        can enable this using
`MediaSource.Factory.experimentalParseSubtitlesDuringExtraction()`.
    -   Support adaptive media sources with `PreloadMediaSource`.
    -   Implement `HttpEngineDataSource`, an `HttpDataSource` using the

[HttpEngine](https://developer.android.com/reference/android/net/http/HttpEngine)
        API.
- Prevent subclassing `CompositeSequenceableLoader`. This component was
[previously made
extensible](0de57cbfae)
but was never subclassed within the library. Customizations can be done
        by wrapping an instance using the
[decorator pattern](https://en.wikipedia.org/wiki/Decorator_pattern) and
        implementing a custom `CompositeSequenceableLoaderFactory`.
- Fix issue where repeating the same time causes metadata from this item
to be cleared
([#&#8203;1007](https://togithub.com/androidx/media/issues/1007)).
    -   Rename `experimentalSetSubtitleParserFactory` methods on
`BundledChunkExtractor.Factory` and `DefaultHlsExtractorFactory` to
`setSubtitleParserFactory` and disallow passing `null`. Use the new
`experimentalParseSubtitlesDuringExtraction(boolean)` methods to control
        parsing behaviour.
- Add support for customising the `SubtitleParser.Factory` used during
        extraction. This can be achieved with
        `MediaSource.Factory.setSubtitleParserFactory()`.
    -   Add source prefix to all `Format.id` fields generated from
`MergingMediaSource`. This helps to identify which source produced a
`Format`
([#&#8203;883](https://togithub.com/androidx/media/issues/883)).
- Fix the regex used for validating custom Common Media Client Data
(CMCD)
        key names by modifying it to only check for hyphen
([#&#8203;1028](https://togithub.com/androidx/media/issues/1028)).
    -   Stop double-encoding CMCD query parameters
([#&#8203;1075](https://togithub.com/androidx/media/issues/1075)).
-   Transformer:
    -   Add support for flattening H.265/HEVC SEF slow motion videos.
    -   Increase transmuxing speed, especially for 'remove video' edits.
- Add API to ensure that the output file starts on a video frame. This
can
make the output of trimming operations more compatible with player
        implementations that don't show the first video frame until its
        presentation timestamp
        ([#&#8203;829](https://togithub.com/androidx/media/issues/829)).
    -   Add support for optimizing single asset mp4 trim operations.
- Add support to ensure a video frame has the first timestamp in the
output file. Fixes output files beginning with black frame on iOS based
players ([#&#8203;829](https://togithub.com/androidx/media/issues/829)).
-   Track Selection:
- Add `DefaultTrackSelector.selectImageTrack` to enable image track
        selection.
- Add `TrackSelectionParameters.isPrioritizeImageOverVideoEnabled` to
determine whether to select an image track if both an image track and a
video track are available. The default value is `false` which means
        selecting a video track is prioritized.
-   Extractors:
    -   Add additional AV1C parsing to MP4 extractor to retrieve
        `ColorInfo.colorSpace`, `ColorInfo.colorTransfer`, and
        `ColorInfo.colorRange` values
        ([#&#8203;692](https://togithub.com/androidx/media/pull/692)).
- MP3: Use constant bitrate (CBR) seeking for files with an `Info`
header
(the CBR equivalent of the `Xing` header). Previously we used the seek
table from the `Info` header, but this results in less precise seeking
        than if we ignore it and assume the file is CBR.
    -   MPEG2-TS: Add DTS, DTS-LBR and DTS:X Profile2 support
        ([#&#8203;275](https://togithub.com/androidx/media/pull/275)).
- Extract audio types from TS descriptors and map them to role flags,
        allowing users to make better-informed audio track selections
        ([#&#8203;973](https://togithub.com/androidx/media/pull/973)).
-   Audio:
- Improve silence skipping algorithm with smooth volume ramp; retained
        minimal silence and more natural silence durations
([#&#8203;7423](https://togithub.com/google/ExoPlayer/issues/7423)).
    -   Report the skipped silence more deterministically
([#&#8203;1035](https://togithub.com/androidx/media/issues/1035)).
-   Video:
    -   Change the `MediaCodecVideoRenderer` constructor that takes a
`VideoFrameProcessor.Factory` argument and replace it with a constructor
that takes a `VideoSinkProvider` argument. Apps that want to inject a
        custom `VideoFrameProcessor.Factory` can instantiate a
        `CompositingVideoSinkProvider` that uses the custom
`VideoFrameProcessor.Factory` and pass the video sink provider to
        `MediaCodecVideoRenderer`.
-   Text:
- Fix serialization of bitmap cues to resolve `Tried to marshall a
Parcel
        that contained Binder objects` error when using
        `DefaultExtractorsFactory.setTextTrackTranscodingEnabled`
        ([#&#8203;836](https://togithub.com/androidx/media/issues/836)).
- CEA-708: Ignore `rowLock` value. The CEA-708-E S-2023 spec states that
`rowLock` and `columnLock` should both be assumed to be true, regardless
        of the values present in the stream (`columnLock` support is not
        implemented, so it's effectively assumed to always be false).
-   Image:
- Add support for DASH thumbnails. Grid images are cropped and
individual
thumbnails are provided to `ImageOutput` close to their presentation
        times.
-   DRM:
- Play 'clear lead' unencrypted samples in DRM content immediately by
default, even if the keys for the later encrypted samples aren't ready
yet. This may lead to mid-playback stalls if the keys still aren't ready
when the playback position reaches the encrypted samples (but previously
playback wouldn't have started at all by this point). This behavior can
        be disabled with

[`MediaItem.DrmConfiguration.Builder.setPlayClearContentWithoutKey`](https://developer.android.com/reference/androidx/media3/common/MediaItem.DrmConfiguration.Builder#setPlayClearContentWithoutKey\(boolean\))
        or

[`DefaultDrmSessionManager.Builder.setPlayClearSamplesWithoutKeys`](https://developer.android.com/reference/androidx/media3/exoplayer/drm/DefaultDrmSessionManager.Builder#setPlayClearSamplesWithoutKeys\(boolean\)).
-   IMA extension:
- Fix issue where DASH and HLS ads without the appropriate file
extension
        can't be played.
-   Session:
    -   Disable double-click detection for TV apps
        ([#&#8203;962](https://togithub.com/androidx/media/issues/962)).
- Fix issue where `MediaItem.RequestMetadata` with just non-null extras
is
        not transmitted between media controllers and sessions.
- Add constructor to `MediaLibrarySession.Builder` that only takes a
        `Context` instead of a `MediaLibraryService`.
-   HLS Extension:
    -   Reduce `HlsMediaPeriod` to package-private visibility. This type
        shouldn't be directly depended on from outside the HLS package.
    -   Resolve seeks to beginning of a segment more efficiently
        ([#&#8203;1031](https://togithub.com/androidx/media/pull/1031)).
-   Decoder Extensions (FFmpeg, VP9, AV1, MIDI, etc.):
    -   MIDI decoder: Ignore SysEx event messages
        ([#&#8203;710](https://togithub.com/androidx/media/pull/710)).
-   Test Utilities:
- Don't pause playback in `TestPlayerRunHelper.playUntilPosition`. The
test keeps the playback in a playing state, but suspends progress until
        the test is able to add assertions and further actions.
-   Demo app:
- Add a shortform demo module to demo the usage of `PreloadMediaSource`
        with the short-form content use case.

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-21 22:29:09 +01:00