Merge "Fix issue with disable flags being set for the wrong user" into tm-qpr-dev
This commit is contained in:
@@ -58,6 +58,7 @@ import android.hardware.biometrics.BiometricSourceType;
|
|||||||
import android.media.AudioAttributes;
|
import android.media.AudioAttributes;
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
import android.media.SoundPool;
|
import android.media.SoundPool;
|
||||||
|
import android.os.Binder;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.DeadObjectException;
|
import android.os.DeadObjectException;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@@ -66,6 +67,7 @@ import android.os.Looper;
|
|||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
|
import android.os.ServiceManager;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
import android.os.Trace;
|
import android.os.Trace;
|
||||||
@@ -101,6 +103,7 @@ import com.android.internal.policy.IKeyguardDismissCallback;
|
|||||||
import com.android.internal.policy.IKeyguardExitCallback;
|
import com.android.internal.policy.IKeyguardExitCallback;
|
||||||
import com.android.internal.policy.IKeyguardStateCallback;
|
import com.android.internal.policy.IKeyguardStateCallback;
|
||||||
import com.android.internal.policy.ScreenDecorationsUtils;
|
import com.android.internal.policy.ScreenDecorationsUtils;
|
||||||
|
import com.android.internal.statusbar.IStatusBarService;
|
||||||
import com.android.internal.util.LatencyTracker;
|
import com.android.internal.util.LatencyTracker;
|
||||||
import com.android.internal.widget.LockPatternUtils;
|
import com.android.internal.widget.LockPatternUtils;
|
||||||
import com.android.keyguard.KeyguardConstants;
|
import com.android.keyguard.KeyguardConstants;
|
||||||
@@ -269,6 +272,8 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
|||||||
private AlarmManager mAlarmManager;
|
private AlarmManager mAlarmManager;
|
||||||
private AudioManager mAudioManager;
|
private AudioManager mAudioManager;
|
||||||
private StatusBarManager mStatusBarManager;
|
private StatusBarManager mStatusBarManager;
|
||||||
|
private final IStatusBarService mStatusBarService;
|
||||||
|
private final IBinder mStatusBarDisableToken = new Binder();
|
||||||
private final UserTracker mUserTracker;
|
private final UserTracker mUserTracker;
|
||||||
private final SysuiStatusBarStateController mStatusBarStateController;
|
private final SysuiStatusBarStateController mStatusBarStateController;
|
||||||
private final Executor mUiBgExecutor;
|
private final Executor mUiBgExecutor;
|
||||||
@@ -1211,6 +1216,8 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
|||||||
mPM = powerManager;
|
mPM = powerManager;
|
||||||
mTrustManager = trustManager;
|
mTrustManager = trustManager;
|
||||||
mUserSwitcherController = userSwitcherController;
|
mUserSwitcherController = userSwitcherController;
|
||||||
|
mStatusBarService = IStatusBarService.Stub.asInterface(
|
||||||
|
ServiceManager.getService(Context.STATUS_BAR_SERVICE));
|
||||||
mKeyguardDisplayManager = keyguardDisplayManager;
|
mKeyguardDisplayManager = keyguardDisplayManager;
|
||||||
mShadeController = shadeControllerLazy;
|
mShadeController = shadeControllerLazy;
|
||||||
dumpManager.registerDumpable(getClass().getName(), this);
|
dumpManager.registerDumpable(getClass().getName(), this);
|
||||||
@@ -2931,7 +2938,12 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
|||||||
// TODO (b/155663717) After restart, status bar will not properly hide home button
|
// TODO (b/155663717) After restart, status bar will not properly hide home button
|
||||||
// unless disable is called to show un-hide it once first
|
// unless disable is called to show un-hide it once first
|
||||||
if (forceClearFlags) {
|
if (forceClearFlags) {
|
||||||
mStatusBarManager.disable(flags);
|
try {
|
||||||
|
mStatusBarService.disableForUser(flags, mStatusBarDisableToken,
|
||||||
|
mContext.getPackageName(), mUserTracker.getUserId());
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.d(TAG, "Failed to force clear flags", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (forceHideHomeRecentsButtons || isShowingAndNotOccluded()) {
|
if (forceHideHomeRecentsButtons || isShowingAndNotOccluded()) {
|
||||||
@@ -2947,7 +2959,12 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
|||||||
+ " --> flags=0x" + Integer.toHexString(flags));
|
+ " --> flags=0x" + Integer.toHexString(flags));
|
||||||
}
|
}
|
||||||
|
|
||||||
mStatusBarManager.disable(flags);
|
try {
|
||||||
|
mStatusBarService.disableForUser(flags, mStatusBarDisableToken,
|
||||||
|
mContext.getPackageName(), mUserTracker.getUserId());
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.d(TAG, "Failed to set disable flags: " + flags, e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user