Fix lifecycle of VoiceNoteProximityWakeLockManager.

fork-5.53.8
Alex Hart 2021-11-01 11:56:00 -03:00 zatwierdzone przez Greyson Parrelli
rodzic 314ea98393
commit e02c8b9db7
2 zmienionych plików z 13 dodań i 0 usunięć

Wyświetl plik

@ -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;
} }
} }

Wyświetl plik

@ -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 ||