private final H mHandler;
private final long mShowDelayMs;
private final long mPanicThresholdMs;
- private final SparseBooleanArray mUserPanicResets = new SparseBooleanArray();
private boolean mConfirmed;
private ClingWindowView mClingWindow;
public void loadSetting(int currentUserId) {
mConfirmed = false;
mCurrentUserId = currentUserId;
- if (DEBUG) Slog.d(TAG, String.format("loadSetting() mCurrentUserId=%d resetForPanic=%s",
- mCurrentUserId, mUserPanicResets.get(mCurrentUserId, false)));
+ if (DEBUG) Slog.d(TAG, String.format("loadSetting() mCurrentUserId=%d", mCurrentUserId));
String value = null;
try {
value = Settings.Secure.getStringForUser(mContext.getContentResolver(),
public boolean onPowerKeyDown(boolean isScreenOn, long time, boolean inImmersiveMode) {
if (!isScreenOn && (time - mPanicTime < mPanicThresholdMs)) {
// turning the screen back on within the panic threshold
- mHandler.sendEmptyMessage(H.PANIC);
return mClingWindow == null;
}
if (isScreenOn && inImmersiveMode) {
}
}
- private void handlePanic() {
- if (DEBUG) Slog.d(TAG, "handlePanic()");
- if (mUserPanicResets.get(mCurrentUserId, false)) return; // already reset for panic
- mUserPanicResets.put(mCurrentUserId, true);
- mConfirmed = false;
- saveSetting();
- }
-
private void handleHide() {
if (mClingWindow != null) {
if (DEBUG) Slog.d(TAG, "Hiding immersive mode confirmation");
private final class H extends Handler {
private static final int SHOW = 1;
private static final int HIDE = 2;
- private static final int PANIC = 3;
@Override
public void handleMessage(Message msg) {
case HIDE:
handleHide();
break;
- case PANIC:
- handlePanic();
- break;
}
}
}