We don't need to call ``updateRelativeTimeViews`` when the activity is paused, because the user likely won't notice it.
Despite that onResume already calls ``updateRelativeTimeViews`` so there is no need to do that twice.
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (671 of 672 strings)
Translated using Weblate (Polish)
Currently translated at 99.8% (671 of 672 strings)
Translated using Weblate (Bavarian)
Currently translated at 8.7% (59 of 672 strings)
Translated using Weblate (Bavarian)
Currently translated at 1.8% (1 of 53 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (672 of 672 strings)
Co-authored-by: Agnieszka C <aga_04@o2.pl>
Co-authored-by: Bert <robert@it-aicher.de>
Co-authored-by: Evo <weblate@verahawk.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/bar/
Translation: NewPipe/Metadata
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Somali)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (672 of 672 strings)
Co-authored-by: Agnieszka C <aga_04@o2.pl>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Nadir Nour <dudethatwascool2@gmail.com>
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Bavarian)
Currently translated at 6.6% (45 of 672 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (672 of 672 strings)
Added translation using Weblate (Bavarian)
Translated using Weblate (Somali)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (German)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (French)
Currently translated at 67.9% (36 of 53 strings)
Translated using Weblate (Polish)
Currently translated at 49.0% (26 of 53 strings)
Translated using Weblate (Ukrainian)
Currently translated at 52.8% (28 of 53 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (672 of 672 strings)
Translated using Weblate (Ukrainian)
Currently translated at 18.8% (10 of 53 strings)
Co-authored-by: Agnieszka C <aga_04@o2.pl>
Co-authored-by: Bert <robert@it-aicher.de>
Co-authored-by: Evo <weblate@verahawk.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Igor Nedoboy <i.nedoboy@mail.ru>
Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Co-authored-by: Nadir Nour <dudethatwascool2@gmail.com>
Co-authored-by: Terry Louwers <t.louwers@gmail.com>
Co-authored-by: VfBFan <drop0815@posteo.de>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: translator <yasinoc375@advew.com>
Co-authored-by: webweblate <webweblate@riseup.net>
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pl/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/uk/
Translation: NewPipe/Metadata
See https://github.com/TeamNewPipe/NewPipe/issues/6577#issuecomment-876095378
java.lang.ClassCastException: android.widget.ImageButton cannot be cast to androidx.appcompat.widget.AppCompatImageButton
at org.schabi.newpipe.player.Player.onRepeatModeChanged(Player.java:2263)
at com.google.android.exoplayer2.ExoPlayerImpl.lambda$setRepeatMode$2(ExoPlayerImpl.java:564)
at com.google.android.exoplayer2.-$$Lambda$ExoPlayerImpl$rgrcbaqP9Y8LgzdByBnAfUO4ydU.invokeListener(lambda)
at com.google.android.exoplayer2.BasePlayer$ListenerHolder.invoke(BasePlayer.java:279)
at com.google.android.exoplayer2.ExoPlayerImpl.invokeAll(ExoPlayerImpl.java:1498)
at com.google.android.exoplayer2.ExoPlayerImpl.lambda$notifyListeners$6(ExoPlayerImpl.java:1318)
at com.google.android.exoplayer2.-$$Lambda$ExoPlayerImpl$b59raXxaB-trjwE5bgpZInm1QnU.run(lambda)
at com.google.android.exoplayer2.ExoPlayerImpl.notifyListeners(ExoPlayerImpl.java:1328)
at com.google.android.exoplayer2.ExoPlayerImpl.notifyListeners(ExoPlayerImpl.java:1318)
at com.google.android.exoplayer2.ExoPlayerImpl.setRepeatMode(ExoPlayerImpl.java:564)
at com.google.android.exoplayer2.SimpleExoPlayer.setRepeatMode(SimpleExoPlayer.java:1636)
at org.schabi.newpipe.player.Player.setRepeatMode(Player.java:2253)
at org.schabi.newpipe.player.Player.onRepeatClicked(Player.java:2232)
at org.schabi.newpipe.player.Player.onBroadcastReceived(Player.java:1123)
at org.schabi.newpipe.player.Player.access$200(Player.java:190)
at org.schabi.newpipe.player.Player$3.onReceive(Player.java:1060)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:1185)
... 7 more
Playing a video in VideoDetailFragment and rotating the screen to landscape (back and forth more often)
can trigger this error message. Especially if rotation for whatever reason takes long or
playing a high resolution (1080p) video.
The underlying logcat error messages:
05-12 16:38:38.251 24920 26037 E Surface : getSlotFromBufferLocked: unknown buffer: 0x923fc810
05-12 16:38:38.251 24920 26037 W ACodec : [OMX.qcom.video.decoder.avc] can not return buffer 35 to native window
The problem is that that Exoplayer is trying to write to our -- during rotation -- no longer existant
(VideoDetailFragment) SurfaceView.
Solution:
Implementing SurfaceHolder.Callback and using DummySurface we can now handle the lifecycle of the Surface.
How?: In case we are no longer able to write to the Surface eg. through rotation/putting in
background we can set a DummySurface. Although it only works on API >= 23.
Result: we get a little video interruption (audio is still fine) but we won't get the
'Unrecoverable player error occurred' error message.
This implementation is based on and more background information:
'ExoPlayer stuck in buffering after re-adding the surface view a few time 2703'
-> exoplayer fix suggestion link
https://github.com/google/ExoPlayer/issues/2703#issuecomment-300599981
- bugfix: have ServiceConnection created only once!
- select the context within the PlayerHolder to start, stop, bind or unbind the service
-> we have to make sure the Service is started AND stopped within the same context
-> so let PlayerHolder be the one to select the context
- remove removeListener() and replace the call with setListener(null)
- Compatibility: use ContextCompat.startForegroundService instead of startService()