Merge "Have volume UI dismiss on home button press."
This commit is contained in:
committed by
Android (Google) Code Review
commit
d98f4e4b05
@@ -25,8 +25,11 @@ import android.app.Dialog;
|
||||
import android.app.KeyguardManager;
|
||||
import android.car.Car;
|
||||
import android.car.media.CarAudioManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.res.TypedArray;
|
||||
import android.content.res.XmlResourceParser;
|
||||
import android.graphics.Color;
|
||||
@@ -38,6 +41,7 @@ import android.os.Debug;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.os.UserHandle;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.util.SparseArray;
|
||||
@@ -171,6 +175,17 @@ public class CarVolumeDialogImpl implements VolumeDialog {
|
||||
mCarAudioManager.registerCarVolumeCallback(mVolumeChangeCallback);
|
||||
};
|
||||
|
||||
private final BroadcastReceiver mHomeButtonPressedBroadcastReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (!intent.getAction().equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
|
||||
return;
|
||||
}
|
||||
|
||||
dismissH(Events.DISMISS_REASON_VOLUME_CONTROLLER);
|
||||
}
|
||||
};
|
||||
|
||||
public CarVolumeDialogImpl(Context context) {
|
||||
mContext = context;
|
||||
mKeyguard = (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE);
|
||||
@@ -204,12 +219,18 @@ public class CarVolumeDialogImpl implements VolumeDialog {
|
||||
@Override
|
||||
public void init(int windowType, Callback callback) {
|
||||
initDialog();
|
||||
|
||||
mContext.registerReceiverAsUser(mHomeButtonPressedBroadcastReceiver, UserHandle.CURRENT,
|
||||
new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS), /* broadcastPermission= */
|
||||
null, /* scheduler= */ null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
mHandler.removeCallbacksAndMessages(/* token= */ null);
|
||||
|
||||
mContext.unregisterReceiver(mHomeButtonPressedBroadcastReceiver);
|
||||
|
||||
cleanupAudioManager();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user