Fix memory leak and calling listener when disabled in AudioBecomingNoisyManager.

PiperOrigin-RevId: 277030401
This commit is contained in:
samrobinson 2019-10-28 10:18:49 +00:00 committed by Oliver Woodman
parent ff82a13279
commit e025371429
2 changed files with 10 additions and 2 deletions

View file

@ -55,7 +55,7 @@ import android.os.Handler;
}
}
private static final class AudioBecomingNoisyReceiver extends BroadcastReceiver {
private final class AudioBecomingNoisyReceiver extends BroadcastReceiver implements Runnable {
private final EventListener listener;
private final Handler eventHandler;
@ -67,7 +67,14 @@ import android.os.Handler;
@Override
public void onReceive(Context context, Intent intent) {
if (AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(intent.getAction())) {
eventHandler.post(listener::onAudioBecomingNoisy);
eventHandler.post(this);
}
}
@Override
public void run() {
if (receiverRegistered) {
listener.onAudioBecomingNoisy();
}
}
}

View file

@ -1265,6 +1265,7 @@ public class SimpleExoPlayer extends BasePlayer
@Override
public void release() {
verifyApplicationThread();
audioBecomingNoisyManager.setEnabled(false);
audioFocusManager.handleStop();
wakeLockManager.setStayAwake(false);
player.release();