Commit Graph

5206 Commits

Author SHA1 Message Date
Zongle Wang 83cbbe9ada
Retrofit 2.10.0 (#4330)
https://github.com/square/retrofit/releases/tag/2.10.0
2024-03-19 08:32:14 +01:00
renovate[bot] be8140d628
chore(deps): update dependency com.android.application to v8.3.1 (#4328)
[![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.application](https://developer.android.com/studio/build)
([source](https://android.googlesource.com/platform/tools/base)) |
`8.3.0` -> `8.3.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.application/8.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.application/8.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.application/8.3.0/8.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.application/8.3.0/8.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

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

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

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

---

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

---

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

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNDUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjI0NS4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-19 07:57:26 +01:00
Konrad Pozniak d4c8d6213c
Translations update from Weblate (#4325)
Translations update from [Weblate](https://weblate.tusky.app) for
[Tusky/Tusky](https://weblate.tusky.app/projects/tusky/tusky/).



Current translation status:

![Weblate translation
status](https://weblate.tusky.app/widget/tusky/tusky/horizontal-auto.svg)
2024-03-18 14:07:49 +01:00
Deleted User 010a3ed5fb Translated using Weblate (German)
Currently translated at 100.0% (639 of 639 strings)

Co-authored-by: Deleted User <noreply+314@weblate.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/de/
Translation: Tusky/Tusky
2024-03-18 04:45:01 +00:00
fin-w 08f1525b6e Translated using Weblate (Welsh)
Currently translated at 100.0% (639 of 639 strings)

Co-authored-by: fin-w <fin-w@tutanota.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2024-03-18 04:45:00 +00:00
Ihor Hordiichuk fa43d7738f Translated using Weblate (Ukrainian)
Currently translated at 100.0% (639 of 639 strings)

Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/uk/
Translation: Tusky/Tusky
2024-03-18 04:45:00 +00:00
Sveinn í Felli d516c6e3a1 Translated using Weblate (Icelandic)
Currently translated at 100.0% (639 of 639 strings)

Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/is/
Translation: Tusky/Tusky
2024-03-18 04:45:00 +00:00
fin-w fd78cc7355 Translated using Weblate (Welsh)
Currently translated at 100.0% (639 of 639 strings)

Co-authored-by: fin-w <puffinux@tutanota.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2024-03-18 04:45:00 +00:00
Konrad Pozniak d0e6e4ba39
Translations update from Weblate (#4324)
Translations update from [Weblate](https://weblate.tusky.app) for
[Tusky/Tusky](https://weblate.tusky.app/projects/tusky/tusky/).



Current translation status:

![Weblate translation
status](https://weblate.tusky.app/widget/tusky/tusky/horizontal-auto.svg)
2024-03-13 15:21:21 +01:00
fin-w 594b89408f Translated using Weblate (Welsh)
Currently translated at 100.0% (639 of 639 strings)

Co-authored-by: fin-w <puffinux@tutanota.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2024-03-13 06:33:19 +00:00
Gera, Zoltan 55e763a34b Translated using Weblate (Hungarian)
Currently translated at 100.0% (639 of 639 strings)

Co-authored-by: Gera, Zoltan <gerazo@manioka.hu>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/hu/
Translation: Tusky/Tusky
2024-03-13 06:33:19 +00:00
cuithon 6d7a66a441
chore: fix typo (#4321) 2024-03-12 08:50:55 +01:00
Konrad Pozniak 5396452e1c
provide more space for debug information in bug reports (#4318) 2024-03-11 17:18:52 +01:00
Konrad Pozniak 0b87ba2031
prevent media visibility from changing when refreshing timelines (#4319)
classic operator precendence issue

closes #4317
2024-03-11 17:18:43 +01:00
Konrad Pozniak d5eb37595c
Translations update from Weblate (#4320)
Translations update from [Weblate](https://weblate.tusky.app) for
[Tusky/Tusky](https://weblate.tusky.app/projects/tusky/tusky/).



Current translation status:

![Weblate translation
status](https://weblate.tusky.app/widget/tusky/tusky/horizontal-auto.svg)
2024-03-11 17:18:32 +01:00
Hồ Nhất Duy 23dd0d447c Translated using Weblate (Vietnamese)
Currently translated at 100.0% (639 of 639 strings)

Co-authored-by: Hồ Nhất Duy <mastoduy@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/vi/
Translation: Tusky/Tusky
2024-03-10 04:45:01 +00:00
fin-w b05965923d Translated using Weblate (Welsh)
Currently translated at 100.0% (639 of 639 strings)

Co-authored-by: fin-w <puf@users.noreply.weblate.tusky.app>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2024-03-10 04:45:01 +00:00
Willow fbb22799dc
Machine translation of posts (#4307) 2024-03-09 16:12:18 +01:00
renovate[bot] 80982d061e
Update androidx.media3 to v1.3.0 (#4313)
[![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](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/)
|

---

### 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/tuskyapp/Tusky).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIzMC4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-09 13:33:13 +01:00
renovate[bot] bcde8ea8be
Update Kotlin (#4312)
[![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.18` ->
`1.9.23-1.0.19` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.devtools.ksp/1.9.23-1.0.19?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.19?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.18/1.9.23-1.0.19?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.18/1.9.23-1.0.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| org.jetbrains.kotlin.plugin.parcelize | `1.9.22` -> `1.9.23` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlin.plugin.parcelize/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlin.plugin.parcelize/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlin.plugin.parcelize/1.9.22/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlin.plugin.parcelize/1.9.22/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| org.jetbrains.kotlin.kapt | `1.9.22` -> `1.9.23` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlin.kapt/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlin.kapt/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlin.kapt/1.9.22/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlin.kapt/1.9.22/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| org.jetbrains.kotlin.android | `1.9.22` -> `1.9.23` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlin.android/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlin.android/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlin.android/1.9.22/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlin.android/1.9.22/1.9.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>google/ksp (com.google.devtools.ksp)</summary>

###
[`v1.9.23-1.0.19`](https://togithub.com/google/ksp/releases/tag/1.9.23-1.0.19)

##### New APIs

- [#&#8203;1708](https://togithub.com/google/ksp/issues/1708)
`SymbolProcessorEnvironment.kspVersion`
- [#&#8203;1707](https://togithub.com/google/ksp/issues/1707)
`CodeGenerator.associateWithFunctions` and
`CodeGenerator.associateWithProperties`

##### Issues fixed in KSP2

- [#&#8203;1691](https://togithub.com/google/ksp/issues/1691)
IllegalStateException: Value type not found for value
- [#&#8203;1719](https://togithub.com/google/ksp/issues/1719) The order
of symbols returned from Resolver.getSymbolsWithAnnotation() is
different
- [#&#8203;1718](https://togithub.com/google/ksp/issues/1718) Getting
packageName of Kotlin types returns empty String
- [#&#8203;1721](https://togithub.com/google/ksp/issues/1721)
KSAnnotation packageName is an empty String for a type from a different
module
- [#&#8203;1722](https://togithub.com/google/ksp/issues/1722)
Resolver.getDeclarationsFromPackage() returns declarations from the
default package when passing in an unknown package
- [#&#8203;1717](https://togithub.com/google/ksp/issues/1717)
Resolver.getJvmName() returns different results for annotation args
- [#&#8203;1725](https://togithub.com/google/ksp/issues/1725)
asMemberOf() throws exception with a generic type without arguments
- [#&#8203;1728](https://togithub.com/google/ksp/issues/1728)
ClassCastException when calling KSType.replace() with empty list
- [#&#8203;1713](https://togithub.com/google/ksp/issues/1713)
NoClassDefFoundError for LZ4Factory when trying KSP2
- [#&#8203;1665](https://togithub.com/google/ksp/issues/1665)
NoClassDefFound in ksp.useKSP2=true mode
- [#&#8203;1733](https://togithub.com/google/ksp/issues/1733) ABI
incompatibility with kotlin-compiler-embeddable in 2.0.0-Beta4
- [#&#8203;1714](https://togithub.com/google/ksp/issues/1714) Generated
resources are not added to KotlinCompilation inputs
- [#&#8203;1747](https://togithub.com/google/ksp/issues/1747)
isCompanionObject is false for companion objects from KOTLIN_LIB
- [#&#8203;1743](https://togithub.com/google/ksp/issues/1743) Incorrect
type parameter variances
- [#&#8203;1759](https://togithub.com/google/ksp/issues/1759)
IllegalStateException when getting the modifiers from properties in a
Java annotation declaration

##### Issues fixed in KSP Gradle Plugin

- [#&#8203;1712](https://togithub.com/google/ksp/issues/1712) Analysis
API artifacts have the wrong common-deps dependency
- [#&#8203;1775](https://togithub.com/google/ksp/issues/1775) 1.0.18
creates circular dependencies with kapt tasks
- [#&#8203;1772](https://togithub.com/google/ksp/issues/1772) Update
plugin com.google.devtools.ksp to v1.9.22-1.0.18 BUILD FAILED

##### Known issues

- [#&#8203;1776](https://togithub.com/google/ksp/issues/1776) KSP2 has
higher memory usage when the compile classpath is very large.

</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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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/tuskyapp/Tusky).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIzMC4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-09 13:33:03 +01:00
renovate[bot] 06a896e755
Update dependency androidx.browser:browser to v1.8.0 (#4311)
[![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.browser:browser](https://developer.android.com/jetpack/androidx/releases/browser#1.8.0)
([source](https://cs.android.com/androidx/platform/frameworks/support))
| `1.7.0` -> `1.8.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/androidx.browser:browser/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/androidx.browser:browser/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/androidx.browser:browser/1.7.0/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/androidx.browser:browser/1.7.0/1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

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

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

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

---

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

---

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

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjcuMiIsInVwZGF0ZWRJblZlciI6IjM3LjIyNy4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-09 13:32:42 +01:00
renovate[bot] 8e435aaea2
Update dependency app.cash.turbine:turbine to v1.1.0 (#4310)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [app.cash.turbine:turbine](https://togithub.com/cashapp/turbine) |
`1.0.0` -> `1.1.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/app.cash.turbine:turbine/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/app.cash.turbine:turbine/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/app.cash.turbine:turbine/1.0.0/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/app.cash.turbine:turbine/1.0.0/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>cashapp/turbine (app.cash.turbine:turbine)</summary>

###
[`v1.1.0`](https://togithub.com/cashapp/turbine/blob/HEAD/CHANGELOG.md#110---2024-03-06)

[Compare
Source](https://togithub.com/cashapp/turbine/compare/1.0.0...1.1.0)

[1.1.0]: https://togithub.com/cashapp/turbine/releases/tag/1.1.0

##### Changed

-   Add `wasmJs` target, remove `iosArm32` and `watchosX86` targets.
-   Throw unconsumed events if scope is externally canceled.

</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/tuskyapp/Tusky).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjcuMiIsInVwZGF0ZWRJblZlciI6IjM3LjIyNy4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-09 13:32:30 +01:00
Konrad Pozniak f4782489ff
Translations update from Weblate (#4315)
Translations update from [Weblate](https://weblate.tusky.app) for
[Tusky/Tusky
description](https://weblate.tusky.app/projects/tusky/tusky-app/).



Current translation status:

![Weblate translation
status](https://weblate.tusky.app/widget/tusky/tusky-app/horizontal-auto.svg)
2024-03-09 13:32:17 +01:00
Konrad Pozniak ce196738bf
Translations update from Weblate (#4314)
Translations update from [Weblate](https://weblate.tusky.app) for
[Tusky/Tusky](https://weblate.tusky.app/projects/tusky/tusky/).



Current translation status:

![Weblate translation
status](https://weblate.tusky.app/widget/tusky/tusky/horizontal-auto.svg)
2024-03-09 13:32:03 +01:00
Ümit Solmaz e47ae6e71f Translated using Weblate (Turkish)
Currently translated at 100.0% (33 of 33 strings)

Translation: Tusky/Tusky description
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky-app/tr/
2024-03-09 11:56:11 +00:00
Konrad Pozniak be8b7c3a31
improve MainActivity / LoginActivity transitions (#4301)
I overlooked those in https://github.com/tuskyapp/Tusky/pull/4224
2024-03-09 11:04:29 +01:00
Christophe Beyls 9901376d38
Move ExoPlayer initialization to a Dagger module and optimize its dependencies (#4296)
Currently, ExoPlayer is initialized explicitly in `ViewMediaFragment`
with all its dependencies, including many that are not useful for
viewing Mastodon media attachments.

This pull request moves most ExoPlayer initialization and configuration
to a new Dagger module, and instead a `Provider<ExoPlayer>` factory is
injected in the Fragment so it can create new instances when needed.

The following ExoPlayer components will be configured:

- **Renderers**: all of them (audio, video, metadata, subtitles) except
for the `CameraMotionRenderer`.
- **Extractors**: FLAC, Wav, Mp4, Ogg, Matroska/WebM and MP3 containers,
to provide the same support as Firefox or Chrome browsers. Other
container formats that are either image formats (already covered by
Glide), not web-friendly or reserved for live streaming are skipped.
- **MediaSource**: only progressive download (through OkHttp) is
provided. Live streaming support using protocols like RTSP, MPEG/Dash or
HLS is skipped, because Mastodon servers don't use these protocols to
download attachments.

The Mastodon documentation mentions the [supported media formats for
attachments](https://docs.joinmastodon.org/user/posting/#media) and this
covers them and even more. The docs also mentions that the video and
audio files are transcoded to MP4 and MP3 upon upload but that was not
the case in the past (for example WebM was used) and it could change
again in the future.

Specifying these components manually allows reducing the APK size by
about 200 KB thanks to R8 shrinking.

There are also a few extra code changes:
- Remove the code specific to API < 24 since the min SDK of the app is
now 24.
- Add support for pausing a video when unplugging headphones.
- Specify the audio attributes according to content type to help the
Android audio mixer.
2024-03-09 11:04:04 +01:00
Ümit Solmaz 071ae0bed2 Translated using Weblate (Turkish)
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: Ümit Solmaz <usnotv@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/tr/
Translation: Tusky/Tusky
2024-03-09 09:28:37 +00:00
Konrad Pozniak f09a5b00e0
fix boost/reply filters not working correctly in home timelines (#4308)
closes #4306
2024-03-06 13:21:29 +01:00
Konrad Pozniak 109abc5ac3
Translations update from Weblate (#4302)
Translations update from [Weblate](https://weblate.tusky.app) for
[Tusky/Tusky](https://weblate.tusky.app/projects/tusky/tusky/).



Current translation status:

![Weblate translation
status](https://weblate.tusky.app/widget/tusky/tusky/horizontal-auto.svg)
2024-03-06 13:08:34 +01:00
renovate[bot] 69938c7de9
Update dependency com.android.application to v8.3.0 (#4295)
[![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.application](https://developer.android.com/studio/build)
([source](https://android.googlesource.com/platform/tools/base)) |
`8.2.2` -> `8.3.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.application/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.application/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.application/8.2.2/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.application/8.2.2/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

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

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

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

---

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

---

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

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjAuMiIsInVwZGF0ZWRJblZlciI6IjM3LjIyMC4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-06 13:07:26 +01:00
renovate[bot] 3d5dfeb1c3
Update plugin google-ksp to v1.9.22-1.0.18 (#4294)
[![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.17` ->
`1.9.22-1.0.18` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.devtools.ksp/1.9.22-1.0.18?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.18?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.17/1.9.22-1.0.18?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.17/1.9.22-1.0.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

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

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

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

---

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

---

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

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjAuMiIsInVwZGF0ZWRJblZlciI6IjM3LjIyMC4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-06 13:07:16 +01:00
XoseM 0132b758af Translated using Weblate (Galician)
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: XoseM <xosem@disroot.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gl/
Translation: Tusky/Tusky
2024-03-06 11:31:48 +00:00
Hồ Nhất Duy c4bc15c04f Translated using Weblate (Vietnamese)
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: Hồ Nhất Duy <mastoduy@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/vi/
Translation: Tusky/Tusky
2024-03-06 11:31:48 +00:00
Ümit Solmaz df75dd61c9 Translated using Weblate (Turkish)
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: Ümit Solmaz <usnotv@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/tr/
Translation: Tusky/Tusky
2024-03-06 11:31:48 +00:00
Konrad Pozniak 7a05530359
put r8 rules for enums back in to fix crash in AccountListActivity (#4299)
Regression from #4291 // cc @cbeyls 

<details>
  <summary>Stacktrace</summary>
  
  ```
Process: com.keylesspalace.tusky, PID: 31230
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.keylesspalace.tusky/com.keylesspalace.tusky.components.accountlist.AccountListActivity}:
java.lang.RuntimeException: java.lang.NoSuchMethodException: h4.a.values
[]
at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3635)
at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3792)
at
android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
at
android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at
android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2210)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:201)
	at android.os.Looper.loop(Looper.java:288)
	at android.app.ActivityThread.main(ActivityThread.java:7839)
	at java.lang.reflect.Method.invoke(Native Method)
at
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodException:
h4.a.values []
	at java.lang.Enum.enumValues(Enum.java:270)
	at java.lang.Enum.access$000(Enum.java:61)
	at java.lang.Enum$1.create(Enum.java:277)
	at java.lang.Enum$1.create(Enum.java:275)
	at libcore.util.BasicLruCache.get(BasicLruCache.java:63)
	at java.lang.Enum.getSharedConstants(Enum.java:289)
	at java.lang.Enum.valueOf(Enum.java:243)
	at java.io.ObjectInputStream.readEnum(ObjectInputStream.java:1841)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1409)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:427)
	at android.os.Parcel.readSerializable(Parcel.java:3507)
	at android.os.Parcel.readValue(Parcel.java:3277)
	at android.os.Parcel.readArrayMapInternal(Parcel.java:3623)
at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:292)
	at android.os.BaseBundle.unparcel(BaseBundle.java:236)
	at android.os.BaseBundle.getSerializable(BaseBundle.java:1268)
	at android.os.Bundle.getSerializable(Bundle.java:1104)
	at android.content.Intent.getSerializableExtra(Intent.java:8575)
at
com.keylesspalace.tusky.components.accountlist.AccountListActivity.onCreate(SourceFile:23)
	at android.app.Activity.performCreate(Activity.java:8051)
	at android.app.Activity.performCreate(Activity.java:8031)
at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329)
at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3608)
at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3792) 
at
android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) 
at
android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
at
android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2210) 
	at android.os.Handler.dispatchMessage(Handler.java:106) 
	at android.os.Looper.loopOnce(Looper.java:201) 
	at android.os.Looper.loop(Looper.java:288) 
	at android.app.ActivityThread.main(ActivityThread.java:7839) 
	at java.lang.reflect.Method.invoke(Native Method) 
at
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) 
Caused by: java.lang.NoSuchMethodException: h4.a.values []
	at java.lang.Class.getMethod(Class.java:2103)
	at java.lang.Class.getDeclaredMethod(Class.java:2081)
	at java.lang.Enum.enumValues(Enum.java:267)
	at java.lang.Enum.access$000(Enum.java:61) 
	at java.lang.Enum$1.create(Enum.java:277) 
	at java.lang.Enum$1.create(Enum.java:275) 
	at libcore.util.BasicLruCache.get(BasicLruCache.java:63) 
	at java.lang.Enum.getSharedConstants(Enum.java:289) 
	at java.lang.Enum.valueOf(Enum.java:243) 
	at java.io.ObjectInputStream.readEnum(ObjectInputStream.java:1841) 
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1409) 
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:427) 
	at android.os.Parcel.readSerializable(Parcel.java:3507) 
	at android.os.Parcel.readValue(Parcel.java:3277) 
	at android.os.Parcel.readArrayMapInternal(Parcel.java:3623) 
at
android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:292) 
	at android.os.BaseBundle.unparcel(BaseBundle.java:236) 
	at android.os.BaseBundle.getSerializable(BaseBundle.java:1268) 
	at android.os.Bundle.getSerializable(Bundle.java:1104) 
	at android.content.Intent.getSerializableExtra(Intent.java:8575) 
at
com.keylesspalace.tusky.components.accountlist.AccountListActivity.onCreate(SourceFile:23) 
	at android.app.Activity.performCreate(Activity.java:8051) 
	at android.app.Activity.performCreate(Activity.java:8031) 
at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329) 
at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3608) 
at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3792) 
at
android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) 
at
android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
at
android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2210) 
	at android.os.Handler.dispatchMessage(Handler.java:106) 
	at android.os.Looper.loopOnce(Looper.java:201) 
	at android.os.Looper.loop(Looper.java:288) 
	at android.app.ActivityThread.main(ActivityThread.java:7839) 
	at java.lang.reflect.Method.invoke(Native Method) 
at
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) 
  ```
</details>

closes #4297
2024-03-04 06:54:09 +01:00
Konrad Pozniak fd8d7db343
Translations update from Weblate (#4284)
Translations update from [Weblate](https://weblate.tusky.app) for
[Tusky/Tusky](https://weblate.tusky.app/projects/tusky/tusky/).



Current translation status:

![Weblate translation
status](https://weblate.tusky.app/widget/tusky/tusky/horizontal-auto.svg)
2024-03-01 08:35:18 +01:00
renovate[bot] 7c15f5e8b0
Update dependency com.google.truth:truth to v1.4.2 (#4298)
[![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.4.1`
-> `1.4.2` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.truth:truth/1.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.truth:truth/1.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.truth:truth/1.4.1/1.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.truth:truth/1.4.1/1.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>google/truth (com.google.truth:truth)</summary>

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

This release is the final step of copying all our methods from `Truth8`
to `Truth`. If you have not already migrated your usages from `Truth8`
to `Truth`, you may see build errors:

OptionalSubjectTest.java:39: error: reference to assertThat is ambiguous
        assertThat(Optional.of("foo")).isPresent();
        ^
both method
assertThat(@&#8203;org.checkerframework.checker.nullness.qual.Nullable
Optional<?>) in Truth8 and method
assertThat(@&#8203;org.checkerframework.checker.nullness.qual.Nullable
Optional<?>) in Truth match

In most cases, you can migrate your whole project mechanically: `git
grep -l Truth8 | xargs perl -pi -e 's/\bTruth8\b/Truth/g;'`. (You can
make that change before upgrading to Truth 1.4.2 or as part of the same
commit.)

If you instead need to migrate your project incrementally (for example,
because it is very large), you may want to upgrade your version of Truth
incrementally, too, following our instructions for
[1.3.0](https://togithub.com/google/truth/releases/tag/v1.3.0) and
[1.4.0](https://togithub.com/google/truth/releases/tag/v1.4.0).

#### For help

Please feel welcome to [open an
issue](https://togithub.com/google/truth/issues/new) to report problems
or request help.

#### Changelog

- Removed temporary type parameters from `Truth.assertThat(Stream)` and
`Truth.assertThat(Optional)`. This can create build errors, which you
can fix by replacing all your references to `Truth8` with references to
`Truth`.
([`45782bd`](https://togithub.com/google/truth/commit/45782bd0e))

</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/tuskyapp/Tusky).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjAuMiIsInVwZGF0ZWRJblZlciI6IjM3LjIyMC4yIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-01 08:07:49 +01:00
Sveinn í Felli 9084116305 Translated using Weblate (Icelandic)
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/is/
Translation: Tusky/Tusky
2024-03-01 06:32:34 +00:00
Luna Jernberg f083c463a0 Translated using Weblate (Swedish)
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: Luna Jernberg <droidbittin@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/sv/
Translation: Tusky/Tusky
2024-03-01 06:32:34 +00:00
Ihor Hordiichuk b1ac7e587d Translated using Weblate (Ukrainian)
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/uk/
Translation: Tusky/Tusky
2024-03-01 06:32:34 +00:00
XoseM 4aa1980033 Translated using Weblate (Galician)
Currently translated at 99.6% (632 of 634 strings)

Co-authored-by: XoseM <xosem@disroot.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gl/
Translation: Tusky/Tusky
2024-03-01 06:32:34 +00:00
fin-w 21e97faf78 Translated using Weblate (Welsh)
Currently translated at 100.0% (634 of 634 strings)

Co-authored-by: fin-w <puf@users.noreply.weblate.tusky.app>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/cy/
Translation: Tusky/Tusky
2024-03-01 06:32:34 +00:00
Christophe Beyls 722b75e5c2
Optimize Proguard rules (#4291)
Using saner defaults for R8 while reducing the app size even further.
- Add Kotlin compiler options to skip adding assertions in release
builds
- Remove `optimizations`, `optimizationpasses` and `dontpreverify` rules
that are ignored by R8
- Only keep runtime annotations by default. If other attributes are
needed by a specific library, these will already be provided by the
library rules (for example Retrofit or coroutines)
- Remove the obsolete rule allowing a View to reflectively call any
arbitrary public Activity method accepting a View as argument. This has
always been a bad practice and is not used in this project anyway
- Remove the rules related to enums. R8 already optimizes enums properly
out-of-the-box and keeping these rules may prevent some of these
optimizations
- Add support for the `@Keep` annotation. Even if it's not currently
used in the code base, it can be handy in the future
- Add a missing rule to prevent generic signature of `NetworkResult`
class from being removed in `MastodonApi` so Retrofit works
- Allow obfuscation and shrinking of `kotlin.coroutines.Continuation`,
matching the rule defined in the next release of Retrofit
- Remove the rule forcing the removal of `String.format()`. This method
is actually used in the code (and in third-party libraries) for other
things than logging so forcing its removal can do more harm than good.
2024-02-29 15:29:05 +01:00
Christophe Beyls 40fde54e0b
Replace RxJava3 code with coroutines (#4290)
This pull request removes the remaining RxJava code and replaces it with
coroutine-equivalent implementations.

- Remove all duplicate methods in `MastodonApi`:
- Methods returning a RxJava `Single` have been replaced by suspending
methods returning a `NetworkResult` in order to be consistent with the
new code.
- _sync_/_async_ method variants are replaced with the _async_ version
only (suspending method), and `runBlocking{}` is used to make the async
variant synchronous.
- Create a custom coroutine-based implementation of `Single` for usage
in Java code where launching a coroutine is not possible. This class can
be deleted after remaining Java code has been converted to Kotlin.
- `NotificationsFragment.java` can subscribe to `EventHub` events by
calling the new lifecycle-aware `EventHub.subscribe()` method. This
allows using the `SharedFlow` as single source of truth for all events.
- Rx Autodispose is replaced by `lifecycleScope.launch()` which will
automatically cancel the coroutine when the Fragment view/Activity is
destroyed.
- Background work is launched in the existing injectable
`externalScope`, since using `GlobalScope` is discouraged.
`externalScope` has been changed to be a `@Singleton` and to use the
main dispatcher by default.
- Transform `ShareShortcutHelper` to an injectable utility class so it
can use the application `Context` and `externalScope` as provided
dependencies to launch a background coroutine.
- Implement a custom Glide extension method
`RequestBuilder.submitAsync()` to do the same thing as
`RequestBuilder.submit().get()` in a non-blocking way. This way there is
no need to switch to a background dispatcher and block a background
thread, and cancellation is supported out-of-the-box.
- An utility method `Fragment.updateRelativeTimePeriodically()` has been
added to remove duplicate logic in `TimelineFragment` and
`NotificationsFragment`, and the logic is now implemented using a simple
coroutine instead of `Observable.interval()`. Note that the periodic
update now happens between onStart and onStop instead of between
onResume and onPause, since the Fragment is not interactive but is still
visible in the started state.
- Rewrite `BottomSheetActivityTest` using coroutines tests.
- Remove all RxJava library dependencies.
2024-02-29 15:28:48 +01:00
renovate[bot] 91fe7a51cc
Update dagger to v2.51 (#4289)
[![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:dagger](https://togithub.com/google/dagger) |
`2.50` -> `2.51` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.dagger:dagger/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.dagger:dagger/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.dagger:dagger/2.50/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.dagger:dagger/2.50/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[com.google.dagger:dagger-compiler](https://togithub.com/google/dagger)
| `2.50` -> `2.51` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.dagger:dagger-compiler/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.dagger:dagger-compiler/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.dagger:dagger-compiler/2.50/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.dagger:dagger-compiler/2.50/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[com.google.dagger:dagger-android-support](https://togithub.com/google/dagger)
| `2.50` -> `2.51` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.dagger:dagger-android-support/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.dagger:dagger-android-support/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.dagger:dagger-android-support/2.50/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.dagger:dagger-android-support/2.50/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[com.google.dagger:dagger-android-processor](https://togithub.com/google/dagger)
| `2.50` -> `2.51` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.dagger:dagger-android-processor/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.dagger:dagger-android-processor/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.dagger:dagger-android-processor/2.50/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.dagger:dagger-android-processor/2.50/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [com.google.dagger:dagger-android](https://togithub.com/google/dagger)
| `2.50` -> `2.51` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.dagger:dagger-android/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.dagger:dagger-android/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.dagger:dagger-android/2.50/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.dagger:dagger-android/2.50/2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

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

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

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

🔕 **Ignore**: Close this PR and you won't be reminded about 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/tuskyapp/Tusky).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMTIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIxMi4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-29 15:10:57 +01:00
Konrad Pozniak 7448fd2416
change SendStatusService type to shortService (#4292)
This way the `FOREGROUND_SERVICE_REMOTE_MESSAGING` permission is not
needed and we should be able to publish on Google Play again. Drawback:
The service can get killed after a while (usually 3 mins) on Android 14.
I also tried using [user initiated data transfer
jobs](https://developer.android.com/about/versions/14/changes/user-initiated-data-transfers),
but that is not available on all api levels, and `WorkManager`, but that
is a huge refactoring and sending would probably work differently than
before.
2024-02-29 12:21:15 +01:00
renovate[bot] 1fab0b8460
Update dependency at.connyduck:networkresult-calladapter to v1.1.0 (#4286)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[at.connyduck:networkresult-calladapter](https://togithub.com/connyduck/networkresult-calladapter)
| `1.0.0` -> `1.1.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/at.connyduck:networkresult-calladapter/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/at.connyduck:networkresult-calladapter/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/at.connyduck:networkresult-calladapter/1.0.0/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/at.connyduck:networkresult-calladapter/1.0.0/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>connyduck/networkresult-calladapter
(at.connyduck:networkresult-calladapter)</summary>

###
[`v1.1.0`](https://togithub.com/connyduck/networkresult-calladapter/releases/tag/v1.1.0):
NetworkResult Calladapter 1.1.0

-   `NetworkResult` is now `Serializable`
-   The library is now build with Java 17
-   Dependency updates:
    -   Kotlin 1.9.22
    -   Kotlin Coroutines 1.8.0
    -   OkHttp 4.12.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/tuskyapp/Tusky).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMTIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIxMi4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-25 20:40:17 +01:00
Konrad Pozniak 6249b53718
Fix some warnings & recreate lint-baseline.xml (#4278) 2024-02-25 16:20:26 +01:00
Willow c666a6b534
Better screen transitions (#4285)
I mostly took Android 13 transitions and removed the sliding for the
"deeper"/background one because "extend" animations are not available
until Android 13.

Here are the original ones:
https://cs.android.com/android/platform/superproject/+/android-13.0.0_r8:frameworks/base/core/res/res/anim/;bpv=1

Initially I've made separate versions fro Android 13+ that are close to
the original but I think it's not worth it to keep both.



https://github.com/tuskyapp/Tusky/assets/3099142/616fc40c-f944-45b4-bf6f-167f62d30493
2024-02-25 16:20:15 +01:00