kopia lustrzana https://github.com/ryukoposting/Signal-Android
Fix lifecycle of VoiceNoteProximityWakeLockManager.
rodzic
314ea98393
commit
e02c8b9db7
|
@ -124,6 +124,12 @@ public class VoiceNoteMediaController implements DefaultLifecycleObserver {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy(@NonNull LifecycleOwner owner) {
|
public void onDestroy(@NonNull LifecycleOwner owner) {
|
||||||
|
if (voiceNoteProximityWakeLockManager != null) {
|
||||||
|
voiceNoteProximityWakeLockManager.unregisterCallbacksAndRelease();
|
||||||
|
voiceNoteProximityWakeLockManager.unregisterFromLifecycle();
|
||||||
|
voiceNoteProximityWakeLockManager = null;
|
||||||
|
}
|
||||||
|
|
||||||
activity.getLifecycle().removeObserver(this);
|
activity.getLifecycle().removeObserver(this);
|
||||||
activity = null;
|
activity = null;
|
||||||
}
|
}
|
||||||
|
@ -294,6 +300,7 @@ public class VoiceNoteMediaController implements DefaultLifecycleObserver {
|
||||||
if (voiceNoteProximityWakeLockManager != null) {
|
if (voiceNoteProximityWakeLockManager != null) {
|
||||||
Log.d(TAG, "Session reconnected, cleaning up old wake lock manager");
|
Log.d(TAG, "Session reconnected, cleaning up old wake lock manager");
|
||||||
voiceNoteProximityWakeLockManager.unregisterCallbacksAndRelease();
|
voiceNoteProximityWakeLockManager.unregisterCallbacksAndRelease();
|
||||||
|
voiceNoteProximityWakeLockManager.unregisterFromLifecycle();
|
||||||
voiceNoteProximityWakeLockManager = null;
|
voiceNoteProximityWakeLockManager = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,6 +66,12 @@ class VoiceNoteProximityWakeLockManager(
|
||||||
cleanUpWakeLock()
|
cleanUpWakeLock()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun unregisterFromLifecycle() {
|
||||||
|
if (proximitySensor != null) {
|
||||||
|
activity.lifecycle.removeObserver(this)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun isActivityResumed() = activity.lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)
|
private fun isActivityResumed() = activity.lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)
|
||||||
|
|
||||||
private fun isPlayerActive() = mediaController.playbackState.state == PlaybackStateCompat.STATE_BUFFERING ||
|
private fun isPlayerActive() = mediaController.playbackState.state == PlaybackStateCompat.STATE_BUFFERING ||
|
||||||
|
|
Ładowanie…
Reference in New Issue