Translations update from [Weblate](https://weblate.tusky.app) for
[Tusky/Tusky](https://weblate.tusky.app/projects/tusky/tusky/).
Current translation status:

---------
Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Connyduck <weblate@connyduck.at>
Co-authored-by: Anna (cybertailor) Vyalkova <cyber@sysrq.in>
Co-authored-by: Eric <alchemillatruth@users.noreply.weblate.tusky.app>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Co-authored-by: Hồ Nhất Duy <mastoduy@gmail.com>
Co-authored-by: Quentí <quentinantonin@free.fr>
Co-authored-by: José M <xosem@disroot.org>
`UnifiedPush.registerAppWithDialog` will show a dialog when there are 2
or more distributors, for that it needs an activity context but we
passed an application one. I think this is improved in a newer Unified
push library version, will upgrade soon. In the meantime this change
fixes the crash.
```
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:1314)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:421)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:149)
at android.app.Dialog.show(Dialog.java:352)
at org.unifiedpush.android.connector.UnifiedPush.registerAppWithDialog(UnifiedPush.kt:139)
at org.unifiedpush.android.connector.UnifiedPush.registerAppWithDialog$default(UnifiedPush.kt:67)
at com.keylesspalace.tusky.components.systemnotifications.NotificationService.setupPushNotificationsForAccount(NotificationService.kt:775)
at com.keylesspalace.tusky.components.systemnotifications.NotificationService.access$setupPushNotificationsForAccount(NotificationService.kt:76)
at com.keylesspalace.tusky.components.systemnotifications.NotificationService$setupPushNotificationsForAccount$1.invokeSuspend(Unknown Source:15)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7932)
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:942)
```
Currently translated at 100.0% (701 of 701 strings)
Co-authored-by: Anna (cybertailor) Vyalkova <cyber@sysrq.in>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/ru/
Translation: Tusky/Tusky
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[androidx.media3:media3-ui](https://redirect.github.com/androidx/media)
| `1.5.1` -> `1.6.0` |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-datasource-okhttp](https://redirect.github.com/androidx/media)
| `1.5.1` -> `1.6.0` |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
|
[androidx.media3:media3-exoplayer](https://redirect.github.com/androidx/media)
| `1.5.1` -> `1.6.0` |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
---
### Release Notes
<details>
<summary>androidx/media (androidx.media3:media3-ui)</summary>
###
[`v1.6.0`](https://redirect.github.com/androidx/media/blob/HEAD/RELEASENOTES.md#160-2025-03-26)
[Compare
Source](https://redirect.github.com/androidx/media/compare/1.5.1...1.6.0)
This release includes the following changes since the
[1.5.1 release](#​151-2024-12-19):
- Common Library:
- Add `AudioManagerCompat` and `AudioFocusRequestCompat` to replace the
equivalent classes in `androidx.media`.
- Upgrade Kotlin from 1.9.20 to 2.0.20 and use Compose Compiler Gradle
plugin. Upgrade KotlinX Coroutines library from 1.8.1 to 1.9.0.
- Remove `Format.toBundle(boolean excludeMetadata)` method, use
`Format.toBundle()` instead.
- Fix bug in `SimpleBasePlayer` where setting a new
`currentMediaItemIndex` in `State` after `setPlaylist` with `null`
`MediaMetadata` does not reevaluate the metadata
([#​1940](https://redirect.github.com/androidx/media/issues/1940)).
- Change `SimpleBasePlayer.State` access from protected to public to
make
it easier to handle updates in other classes
([#​2128](https://redirect.github.com/androidx/media/issues/2128)).
- ExoPlayer:
- Add `MediaExtractorCompat`, a new class that provides equivalent
features to platform `MediaExtractor`.
- Add experimental 'ExoPlayer' pre-warming support for playback using
`MediaCodecVideoRenderer`. You can configure `DefaultRenderersFactory`
through `experimentalSetEnableMediaCodecVideoRendererPrewarming` to
provide a secondary `MediaCodecVideoRenderer` to `ExoPlayer`. If
enabled, `ExoPlayer` pre-processes the video of consecutive media items
during playback to reduce media item transition latency.
- Reduce default values for `bufferForPlaybackMs` and
`bufferForPlaybackAfterRebufferMs` in `DefaultLoadControl` to 1000 and
2000 ms respectively.
- Initialize `DeviceInfo` and device volume asynchronously (if enabled
using `setDeviceVolumeControlEnabled`). These values aren't available
instantly after `ExoPlayer.Builder.build()`, and `Player.Listener`
notifies changes through `onDeviceInfoChanged` and
`onDeviceVolumeChanged`.
- Initial audio session id is no longer immediately available after
creating the player. You can use
`AnalyticsListener.onAudioSessionIdChanged` to listen to the initial
update if required.
- Consider language when selecting a video track. By default, select a
'main' video track that matches the language of the selected audio
track, if available. Explicit video language preferences can be
expressed with
`TrackSelectionParameters.Builder.setPreferredVideoLanguage(s)`.
- Add `selectedAudioLanguage` parameter to
`DefaultTrackSelector.selectVideoTrack()` method.
- Add `retryCount` parameter to `MediaSourceEventListener.onLoadStarted`
and corresponding `MediaSourceEventListener.EventDispatcher` methods.
- Fix bug where playlist items or periods in multi-period DASH streams
with durations that don't match the actual content could cause frame
freezes at the end of the item
([#​1698](https://redirect.github.com/androidx/media/issues/1698)).
- Move `BasePreloadManager.Listener` to a top-level
`PreloadManagerListener`.
- `RenderersFactory.createSecondaryRenderer` can be implemented to
provide
secondary renderers for pre-warming. Pre-warming enables quicker media
item transitions during playback.
- Enable sending `CmcdData` for manifest requests in adaptive streaming
formats DASH, HLS, and SmoothStreaming
([#​1951](https://redirect.github.com/androidx/media/issues/1951)).
- Provide `MediaCodecInfo` of the codec that will be initialized in
`MediaCodecRenderer.onReadyToInitializeCodec`
([#​1963](https://redirect.github.com/androidx/media/pull/1963)).
- Change `AdsMediaSource` to allow the `AdPlaybackStates` to grow by
appending ad groups. Invalid modifications are detected and throw an
exception.
- Fix issue where additional decode-only frames may be displayed in
quick
succession when transitioning to content media after a mid-roll ad.
- Make `DefaultRenderersFactory` add two `MetadataRenderer` instances to
enable apps to receive two different schemes of metadata by default.
- Reevaluate whether the ongoing load of a chunk should be cancelled
when
playback is paused
([#​1785](https://redirect.github.com/androidx/media/pull/1785)).
- Add option to `ClippingMediaSource` to allow clipping in unseekable
media.
- Fix bug where seeking with pre-warming could block following media
item
transition.
- Fix a bug where `ExoPlayer.isLoading()` remains `true` while it has
transitioned to `STATE_IDLE` or `STATE_ENDED`
([#​2133](https://redirect.github.com/androidx/media/issues/2133)).
- Add `lastRebufferRealtimeMs` to `LoadControl.Parameter`
([#​2113](https://redirect.github.com/androidx/media/pull/2113)).
- Transformer:
- Add support for transmuxing into alternative backward compatible
formats.
- Add support for transcoding and transmuxing Dolby Vision (profile 8)
format.
- Update parameters of `VideoFrameProcessor.registerInputStream` and
`VideoFrameProcessor.Listener.onInputStreamRegistered` to use `Format`.
- Generate HDR static metadata when using `DefaultEncoderFactory`.
- Enable support for Android platform diagnostics using
`MediaMetricsManager`. Transformer forwards editing events and
performance data to the platform, which helps to provide system
performance and debugging information on the device. This data may also
be collected by Google
[if sharing usage and diagnostics data is
enabled](https://support.google.com/accounts/answer/6078260)
by the user of the device. Apps can opt-out of contributing to platform
diagnostics for Transformer with
`Transformer.Builder.setUsePlatformDiagnostics(false)`.
- Split `InAppMuxer` into `InAppMp4Muxer` and `InAppFragmentedMp4Muxer`.
You use `InAppMp4Muxer` to produce a non-fragmented MP4 file, while
`InAppFragmentedMp4Muxer` is for producing a fragmented MP4 file.
- Move `Muxer` interface from `media3-muxer` to `media3-transformer`.
- Add `MediaProjectionAssetLoader`, which provides media from a
`MediaProjection` for screen recording, and add support for screen
recording to the Transformer demo app.
- Add `#getInputFormat()` to `Codec` interface.
- Shift the responsibility to release the `GlObjectsProvider` onto the
caller in `DefaultVideoFrameProcessor` and `DefaultVideoCompositor` when
possible.
- Extractors:
- AVI: Fix handling of files with constant bitrate compressed audio
where
the stream header stores the number of bytes instead of the number of
chunks.
- Fix handling of NAL units with lengths expressed in 1 or 2 bytes
(rather
than 4).
- Fix `ArrayIndexOutOfBoundsException` in MP4 edit lists when the edit
list starts at a non-sync frame with no preceding sync frame
([#​2062](https://redirect.github.com/androidx/media/issues/2062)).
- Fix issue where TS streams can get stuck on some devices
([#​2069](https://redirect.github.com/androidx/media/issues/2069)).
- FLAC: Add support for 32-bit FLAC files. Previously these would fail
to
play with `IllegalStateException: Playback stuck buffering and not
loading`
([#​2197](https://redirect.github.com/androidx/media/issues/2197)).
- Audio:
- Fix `onAudioPositionAdvancing` to be called when playback resumes
(previously it was called when playback was paused).
- Don't bypass `SonicAudioProcessor` when `SpeedChangingAudioProcessor`
is
configured with default parameters.
- Fix underflow in `Sonic#getOutputSize()` that could cause
`DefaultAudioSink` to stall.
- Fix `MediaCodecAudioRenderer.getDurationToProgressUs()` and
`DecoderAudioRenderer.getDurationToProgressUs()` so that seeks correctly
reset the provided durations.
- Make `androidx.media3.common.audio.SonicAudioProcessor` final.
- Add support for float PCM to `ChannelMappingAudioProcessor` and
`TrimmingAudioProcessor`.
- Video:
- Change `MediaCodecVideoRenderer.shouldUsePlaceholderSurface` to
protected so that applications can override to block usage of
placeholder surfaces
([#​1905](https://redirect.github.com/androidx/media/pull/1905)).
- Add experimental `ExoPlayer` AV1 sample dependency parsing to speed up
seeking. Enable it with the new
`DefaultRenderersFactory.experimentalSetParseAv1SampleDependencies` API.
- Add experimental `ExoPlayer` API to drop late
`MediaCodecVideoRenderer`
decoder input buffers that are not depended on. Enable it with
`DefaultRenderersFactory.experimentalSetLateThresholdToDropDecoderInputUs`.
- Fix issue where a player without a surface was ready immediately and
very slow decoding any pending frames
([#​1973](https://redirect.github.com/androidx/media/issues/1973)).
- Exclude Xiaomi and OPPO devices from detached surface mode to avoid
screen flickering
([#​2059](https://redirect.github.com/androidx/media/issues/2059)).
- Text:
- Add support for VobSub subtitles
([#​8260](https://redirect.github.com/google/ExoPlayer/issues/8260)).
- Stop eagerly loading all subtitle files configured with
`MediaItem.Builder.setSubtitleConfigurations`, and instead only load one
if it is selected by track selection
([#​1721](https://redirect.github.com/androidx/media/issues/1721)).
- TTML: Add support for referencing `tts:origin` and `tts:extent` using
`style`
([#​2953](https://redirect.github.com/google/ExoPlayer/issues/2953)).
- Restrict WebVTT and SubRip timestamps to exactly 3 decimal places.
Previously we incorrectly parsed any number of decimal places but always
assumed the value was in milliseconds, leading to incorrect timestamps
([#​1997](https://redirect.github.com/androidx/media/issues/1997)).
- Fix playback hanging when a playlist contains clipped items with
CEA-608
or CEA-708 captions.
- Fix `IllegalStateException` when an SSA file contains a cue with zero
duration (start and end time equal)
([#​2052](https://redirect.github.com/androidx/media/issues/2052)).
- Suppress (and log) subtitle parsing errors when subtitles are muxed
into
the same container as audio and video
([#​2052](https://redirect.github.com/androidx/media/issues/2052)).
- Fix handling of multi-byte UTF-8 characters in WebVTT files using CR
line endings
([#​2167](https://redirect.github.com/androidx/media/issues/2167)).
- DRM:
- Fix `MediaCodec$CryptoException: Operation not supported in this
configuration` error when playing ClearKey content on API < 27 devices
([#​1732](https://redirect.github.com/androidx/media/issues/1732)).
- Effect:
- Moved the functionality of `OverlaySettings` into
`StaticOverlaySettings`. `OverlaySettings` can be subclassed to allow
dynamic overlay settings.
- Muxers:
- Moved `MuxerException` out of `Muxer` interface to avoid a very long
fully qualified name.
- Renamed `setSampleCopyEnabled()` method to `setSampleCopyingEnabled()`
in both `Mp4Muxer.Builder` and `FragmentedMp4Muxer.Builder`.
- `Mp4Muxer.addTrack()` and `FragmentedMp4Muxer.addTrack()` now return
an
`int` track ID instead of a `TrackToken`.
- `Mp4Muxer` and `FragmentedMp4Muxer` no longer implement `Muxer`
interface.
- Disable `Mp4Muxer` sample batching and copying by default.
- Fix a bug in `FragmentedMp4Muxer` that creates a lot of fragments when
only audio track is written.
- Session:
- Keep foreground service state for an additional 10 minutes when
playback
pauses, stops or fails. This allows users to resume playback within this
timeout without risking foreground service restrictions on various
devices. Note that simply calling `player.pause()` can no longer be used
to stop the foreground service before `stopSelf()` when overriding
`onTaskRemoved`, use `MediaSessionService.pauseAllPlayersAndStopSelf()`
instead.
- Keep notification visible when playback enters an error or stopped
state. The notification is only removed if the playlist is cleared or
the player is released.
- Improve handling of Android platform MediaSession actions ACTION_PLAY
and ACTION_PAUSE to only set one of them according to the available
commands and also accept if only one of them is set.
- Add `Context` as a parameter to
`MediaButtonReceiver.shouldStartForegroundService`
([#​1887](https://redirect.github.com/androidx/media/issues/1887)).
- Fix bug where calling a `Player` method on a `MediaController`
connected
to a legacy session dropped changes from a pending update.
- Make `MediaSession.setSessionActivity(PendingIntent)` accept null
([#​2109](https://redirect.github.com/androidx/media/issues/2109)).
- Fix bug where a stale notification stays visible when the playlist is
cleared
([#​2211](https://redirect.github.com/androidx/media/issues/2211)).
- UI:
- Add state holders and composables to the `media3-ui-compose` module
for
`PlayerSurface`, `PresentationState`, `PlayPauseButtonState`,
`NextButtonState`, `PreviousButtonState`, `RepeatButtonState`,
`ShuffleButtonState` and `PlaybackSpeedState`.
- Downloads:
- Fix bug in `CacheWriter` that leaves data sources open and cache areas
locked in case the data source throws an `Exception` other than
`IOException`
([#​9760](https://redirect.github.com/google/ExoPlayer/issues/9760)).
- HLS extension:
- Add a first version of `HlsInterstitialsAdsLoader`. The ads loader
reads
the HLS interstitials of an HLS media playlist and maps them to the
`AdPlaybackState` that is passed to the `AdsMediaSource`. This initial
version only supports HLS VOD streams with `X-ASSET-URI` attributes.
- Add `HlsInterstitialsAdsLoader.AdsMediaSourceFactory`. Apps can use it
to create `AdsMediaSource` instances that use an
`HlsInterstitialsAdsLoader` in a convenient and safe way.
- Parse `SUPPLEMENTAL-CODECS` tag from HLS playlist to detect Dolby
Vision
formats
([#​1785](https://redirect.github.com/androidx/media/pull/1785)).
- Loosen the condition for seeking to sync positions in an HLS stream
([#​2209](https://redirect.github.com/androidx/media/issues/2209)).
- DASH extension:
- Add AC-4 Level-4 format support for DASH
([#​1898](https://redirect.github.com/androidx/media/pull/1898)).
- Fix issue when calculating the update interval for ad insertion in
multi-period live streams
([#​1698](https://redirect.github.com/androidx/media/issues/1698)).
- Parse `scte214:supplementalCodecs` attribute from DASH manifest to
detect Dolby Vision formats
([#​1785](https://redirect.github.com/androidx/media/pull/1785)).
- Improve handling of period transitions in live streams where the
period
contains media samples beyond the declared period duration
([#​1698](https://redirect.github.com/androidx/media/issues/1698)).
- Fix issue where adaptation sets marked with `adaptation-set-switching`
but different languages or role flags are merged together
([#​2222](https://redirect.github.com/androidx/media/issues/2222)).
- Decoder extensions (FFmpeg, VP9, AV1, etc.):
- Add the MPEG-H decoder module which uses the native MPEG-H decoder
module to decode MPEG-H audio
([#​1826](https://redirect.github.com/androidx/media/pull/1826)).
- MIDI extension:
- Plumb custom `AudioSink` and `AudioRendererEventListener` instances
into
`MidiRenderer`.
- Cast extension:
- Bump the `play-services-cast-framework` dependency to 21.5.0 to fix a
`FLAG_MUTABLE` crash in apps targeting API 34+ on devices with Google
Play services installed but disabled
([#​2178](https://redirect.github.com/androidx/media/issues/2178)).
- Demo app:
- Extend `demo-compose` with additional buttons and enhance
`PlayerSurface` integration with scaling and shutter support.
- Remove deprecated symbols:
- Remove deprecated `AudioMixer.create()` method. Use
`DefaultAudioMixer.Factory().create()` instead.
- Remove the following deprecated `Transformer.Builder` methods:
- `setTransformationRequest()`, use `setAudioMimeType()`,
`setVideoMimeType()`, and `setHdrMode()` instead.
- `setAudioProcessors()`, set the audio processor in an
`EditedMediaItem.Builder.setEffects()`, and pass it to
`Transformer.start()` instead.
- `setVideoEffects()`, set video effect in an
`EditedMediaItem.Builder.setEffects()`, and pass it to
`Transformer.start()` instead.
- `setRemoveAudio()`, use `EditedMediaItem.Builder.setRemoveAudio()`
to remove the audio from the `EditedMediaItem` passed to
`Transformer.start()` instead.
- `setRemoveVideo()`, use `EditedMediaItem.Builder.setRemoveVideo()`
to remove the video from the `EditedMediaItem` passed to
`Transformer.start()` instead.
- `setFlattenForSlowMotion()`, use
`EditedMediaItem.Builder.setFlattenForSlowMotion()` to flatten the
`EditedMediaItem` passed to `Transformer.start()` instead.
- `setListener()`, use `addListener()`, `removeListener()` or
`removeAllListeners()` instead.
- Remove the following deprecated `Transformer.Listener` methods:
- `onTransformationCompleted(MediaItem)`, use
`onCompleted(Composition, ExportResult)` instead.
- `onTransformationCompleted(MediaItem, TransformationResult)`, use
`onCompleted(Composition, ExportResult)` instead.
- `onTransformationError(MediaItem, Exception)`, use
`onError(Composition, ExportResult, ExportException)` instead.
- `onTransformationError(MediaItem, TransformationException)`, use
`onError(Composition, ExportResult, ExportException)` instead.
- `onTransformationError(MediaItem, TransformationResult,
TransformationException)`, use `onError(Composition, ExportResult,
ExportException)` instead.
- `onFallbackApplied(MediaItem, TransformationRequest,
TransformationRequest)`, use `onFallbackApplied(Composition,
TransformationRequest, TransformationRequest)` instead.
- Remove deprecated `TransformationResult` class. Use `ExportResult`
instead.
- Remove deprecated `TransformationException` class. Use
`ExportException`
instead.
- Remove deprecated `Transformer.PROGRESS_STATE_NO_TRANSFORMATION`. Use
`Transformer.PROGRESS_STATE_NOT_STARTED` instead.
- Remove deprecated `Transformer.setListener()`. Use
`Transformer.addListener()`, `Transformer.removeListener()` or
`Transformer.removeAllListeners()` instead.
- Remove deprecated `Transformer.startTransformation()`. Use
`Transformer.start(MediaItem, String)` instead.
- Remove deprecated `SingleFrameGlShaderProgram`. Use
`BaseGlShaderProgram` instead.
- Remove `Transformer.flattenForSlowMotion`. Use
`EditedMediaItem.flattenForSlowMotion` instead.
- Removed `ExoPlayer.VideoComponent`, `ExoPlayer.AudioComponent`,
`ExoPlayer.TextComponent` and `ExoPlayer.DeviceComponent`.
- Removed `androidx.media3.exoplayer.audio.SonicAudioProcessor`.
- Removed the following deprecated `DownloadHelper` methods:
- Constructor `DownloadHelper(MediaItem, @​Nullable MediaSource,
TrackSelectionParameters, RendererCapabilities[])`, use
`DownloadHelper(MediaItem, @​Nullable MediaSource,
TrackSelectionParameters, RendererCapabilitiesList)` instead.
- `getRendererCapabilities(RenderersFactory)`, equivalent
functionality can be achieved by creating a
`DefaultRendererCapabilitiesList` with a `RenderersFactory`, and
calling `DefaultRendererCapabilitiesList.getRendererCapabilities()`.
- Removed
`PlayerNotificationManager.setMediaSessionToken(MediaSessionCompat)`
method. Use
`PlayerNotificationManager.setMediaSessionToken(MediaSession.Token)` and
pass in `(MediaSession.Token) compatToken.getToken()` instead.
</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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/tuskyapp/Tusky).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCIsImxhYmVscyI6W119-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sometimes a tab is just empty after switching to it, but content appears
as soon as you interact with it.
I found that setting a `offscreenPageLimit` on the `ViewPager2` makes
that issue go away.
This also has the side effect that the content of more tabs is
preloaded, which makes tab switching *feel* different, one does not see
so many loading spinners, content is just there instantly. I'm not sure
if that is desireable but I would like to try it out for a while. If it
happens to be a problem we can still move tab initialization to when it
is actually visible.
When opening the conversations tab with empty cache (i.e. after a frash
login), it would sometimes start with 6 year old messages for me, which
I find very annoying. The issue is that the loading footer is shown
first and the RecyclerView tries to keep it visible when new items are
added. This works around the issue. Note that it does not happen when
there are already some conversations in the cache.
This fixes#5001
- I added some symmetry in views where I thought it is appropriate.
- Then I added some 0 paddings in views where the warning was a false
positive.
- I also moved paddings to another view in the hierarchy in some places.
I think it makes the view more correct for the following textview to
have a start and endpadding instead of the view before that to have only
an end padding.
In the end I recreated the baseline file.
It seems that two issues that I did not work on where fixed previously
that is why not only RtlSymmetry warnings are removed from the file.
---------
Co-authored-by: Janusz Leidgens <>
Currently translated at 100.0% (701 of 701 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (701 of 701 strings)
Co-authored-by: Eric <alchemillatruth@users.noreply.weblate.tusky.app>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/zh_Hans/
Translation: Tusky/Tusky
Translations update from [Weblate](https://weblate.tusky.app) for
[Tusky/Tusky](https://weblate.tusky.app/projects/tusky/tusky/).
Current translation status:

---------
Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Co-authored-by: Manuel <mannivuwiki@gmail.com>
Co-authored-by: Eric <alchemillatruth@users.noreply.weblate.tusky.app>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Co-authored-by: Hồ Nhất Duy <mastoduy@gmail.com>
Co-authored-by: José M <xosem@disroot.org>
I just made the dialog non-cancellable. Actually I don't know why it was
cancellable when there also is
```kotlin
dialog?.setCanceledOnTouchOutside(false)
```
Fixes#4939