summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com/android
diff options
context:
space:
mode:
authorJohn Spurlock <jspurlock@google.com>2014-07-11 11:07:53 -0400
committerJohn Spurlock <jspurlock@google.com>2014-07-11 11:07:53 -0400
commit1dad272337db57d72d9158dc77f64798810f62e7 (patch)
tree5bdd9e2c506682fb69acc8ba19a3239305219ae8 /packages/SystemUI/src/com/android
parentd05f67f9721e1f9194a1f57cf7481b4be65366b3 (diff)
downloadframeworks_base-1dad272337db57d72d9158dc77f64798810f62e7.zip
frameworks_base-1dad272337db57d72d9158dc77f64798810f62e7.tar.gz
frameworks_base-1dad272337db57d72d9158dc77f64798810f62e7.tar.bz2
Volume: delay dismissing panel when starting settings.
Bug:16211952 Change-Id: I067721d932076dafb35c6afd99583301acff9bea
Diffstat (limited to 'packages/SystemUI/src/com/android')
-rw-r--r--packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java12
-rw-r--r--packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java30
2 files changed, 26 insertions, 16 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java b/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java
index 08216c4..3570257 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java
@@ -263,7 +263,7 @@ public class VolumePanel extends Handler {
synchronized (sConfirmSafeVolumeLock) {
sConfirmSafeVolumeDialog = null;
}
- mVolumePanel.forceTimeout();
+ mVolumePanel.forceTimeout(0);
mVolumePanel.updateStates();
}
}
@@ -293,7 +293,7 @@ public class VolumePanel extends Handler {
public boolean onTouchEvent(MotionEvent event) {
if (isShowing() && event.getAction() == MotionEvent.ACTION_OUTSIDE &&
sConfirmSafeVolumeDialog == null) {
- forceTimeout();
+ forceTimeout(0);
return true;
}
return false;
@@ -718,8 +718,8 @@ public class VolumePanel extends Handler {
obtainMessage(MSG_DISPLAY_SAFE_VOLUME_WARNING, flags, 0).sendToTarget();
}
- public void postDismiss() {
- forceTimeout();
+ public void postDismiss(long delay) {
+ forceTimeout(delay);
}
public void postLayoutDirection(int layoutDirection) {
@@ -1205,9 +1205,9 @@ public class VolumePanel extends Handler {
sendEmptyMessage(MSG_USER_ACTIVITY);
}
- private void forceTimeout() {
+ private void forceTimeout(long delay) {
removeMessages(MSG_TIMEOUT);
- sendEmptyMessage(MSG_TIMEOUT);
+ sendEmptyMessageDelayed(MSG_TIMEOUT, delay);
}
public ZenModeController getZenController() {
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java
index 51be833..e4f5870 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeUI.java
@@ -11,12 +11,14 @@ import android.media.session.ISessionController;
import android.media.session.MediaController;
import android.media.session.MediaSessionManager;
import android.net.Uri;
+import android.os.AsyncTask;
import android.os.Handler;
import android.os.RemoteException;
import android.os.UserHandle;
import android.provider.Settings;
import android.util.Log;
+import com.android.systemui.R;
import com.android.systemui.SystemUI;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.statusbar.policy.ZenModeController;
@@ -45,6 +47,7 @@ public class VolumeUI extends SystemUI {
private static final int DEFAULT = 1; // enabled by default
private final Handler mHandler = new Handler();
+
private AudioManager mAudioManager;
private MediaSessionManager mMediaSessionManager;
private VolumeController mVolumeController;
@@ -52,6 +55,7 @@ public class VolumeUI extends SystemUI {
private VolumePanel mDialogPanel;
private VolumePanel mPanel;
+ private int mDismissDelay;
@Override
public void start() {
@@ -79,6 +83,7 @@ public class VolumeUI extends SystemUI {
}
private void initPanel() {
+ mDismissDelay = mContext.getResources().getInteger(R.integer.volume_panel_dismiss_delay);
mPanel = new VolumePanel(mContext, null, new ZenModeControllerImpl(mContext, mHandler));
mPanel.setCallback(new VolumePanel.Callback() {
@Override
@@ -109,15 +114,20 @@ public class VolumeUI extends SystemUI {
private final Runnable mStartZenSettings = new Runnable() {
@Override
public void run() {
- mDialogPanel.postDismiss();
- try {
- // Dismiss the lock screen when Settings starts.
- ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity();
- } catch (RemoteException e) {
- }
- final Intent intent = ZenModePanel.ZEN_SETTINGS;
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
- mContext.startActivityAsUser(intent, new UserHandle(UserHandle.USER_CURRENT));
+ AsyncTask.execute(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ // Dismiss the lock screen when Settings starts.
+ ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity();
+ } catch (RemoteException e) {
+ }
+ final Intent intent = ZenModePanel.ZEN_SETTINGS;
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ mContext.startActivityAsUser(intent, new UserHandle(UserHandle.USER_CURRENT));
+ }
+ });
+ mDialogPanel.postDismiss(mDismissDelay);
}
};
@@ -153,7 +163,7 @@ public class VolumeUI extends SystemUI {
@Override
public void dismiss() throws RemoteException {
- mPanel.postDismiss();
+ mPanel.postDismiss(0);
}
@Override