Loading services/core/java/com/android/server/policy/ImmersiveModeConfirmation.java +20 −13 Original line number Original line Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.os.ServiceManager; import android.os.UserHandle; import android.os.UserHandle; import android.provider.Settings; import android.provider.Settings; import android.service.vr.IVrManager; import android.service.vr.IVrManager; import android.service.vr.IVrStateCallbacks; import android.util.DisplayMetrics; import android.util.DisplayMetrics; import android.util.Slog; import android.util.Slog; import android.util.SparseBooleanArray; import android.util.SparseBooleanArray; Loading Loading @@ -70,7 +71,9 @@ public class ImmersiveModeConfirmation { private long mPanicTime; private long mPanicTime; private WindowManager mWindowManager; private WindowManager mWindowManager; private int mCurrentUserId; private int mCurrentUserId; private IVrManager mVrManager; // Local copy of vr mode enabled state, to avoid calling into VrManager with // the lock held. boolean mVrModeEnabled = false; public ImmersiveModeConfirmation(Context context) { public ImmersiveModeConfirmation(Context context) { mContext = context; mContext = context; Loading Loading @@ -117,22 +120,19 @@ public class ImmersiveModeConfirmation { } } } } private boolean getVrMode() { void systemReady() { boolean vrMode = false; IVrManager vrManager = IVrManager.Stub.asInterface( if (mVrManager == null) { // lazily grab this service since it may not be available at construction time mVrManager = (IVrManager) IVrManager.Stub.asInterface( ServiceManager.getService(VrManagerService.VR_MANAGER_BINDER_SERVICE)); ServiceManager.getService(VrManagerService.VR_MANAGER_BINDER_SERVICE)); } if (vrManager != null) { if (mVrManager != null) { try { try { vrMode = mVrManager.getVrModeState(); vrManager.registerListener(mVrStateCallbacks); } catch (RemoteException ex) { } mVrModeEnabled = vrManager.getVrModeState(); } catch (RemoteException re) { } } } return vrMode; } } public void immersiveModeChanged(String pkg, boolean isImmersiveMode, public void immersiveModeChangedLw(String pkg, boolean isImmersiveMode, boolean userSetupComplete) { boolean userSetupComplete) { mHandler.removeMessages(H.SHOW); mHandler.removeMessages(H.SHOW); if (isImmersiveMode) { if (isImmersiveMode) { Loading @@ -142,7 +142,7 @@ public class ImmersiveModeConfirmation { if (!disabled if (!disabled && (DEBUG_SHOW_EVERY_TIME || !mConfirmed) && (DEBUG_SHOW_EVERY_TIME || !mConfirmed) && userSetupComplete && userSetupComplete && !getVrMode()) { && !mVrModeEnabled) { mHandler.sendEmptyMessageDelayed(H.SHOW, mShowDelayMs); mHandler.sendEmptyMessageDelayed(H.SHOW, mShowDelayMs); } } } else { } else { Loading Loading @@ -375,4 +375,11 @@ public class ImmersiveModeConfirmation { } } } } } } private final IVrStateCallbacks mVrStateCallbacks = new IVrStateCallbacks.Stub() { @Override public void onVrStateChanged(boolean enabled) throws RemoteException { mVrModeEnabled = enabled; } }; } } services/core/java/com/android/server/policy/PhoneWindowManager.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -6653,6 +6653,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { mKeyguardDelegate.onBootCompleted(); mKeyguardDelegate.onBootCompleted(); } } mSystemGestures.systemReady(); mSystemGestures.systemReady(); mImmersiveModeConfirmation.systemReady(); } } /** {@inheritDoc} */ /** {@inheritDoc} */ Loading Loading @@ -7357,7 +7358,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { boolean newImmersiveMode = isImmersiveMode(vis); boolean newImmersiveMode = isImmersiveMode(vis); if (win != null && oldImmersiveMode != newImmersiveMode) { if (win != null && oldImmersiveMode != newImmersiveMode) { final String pkg = win.getOwningPackage(); final String pkg = win.getOwningPackage(); mImmersiveModeConfirmation.immersiveModeChanged(pkg, newImmersiveMode, mImmersiveModeConfirmation.immersiveModeChangedLw(pkg, newImmersiveMode, isUserSetupComplete()); isUserSetupComplete()); } } Loading Loading
services/core/java/com/android/server/policy/ImmersiveModeConfirmation.java +20 −13 Original line number Original line Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.os.ServiceManager; import android.os.UserHandle; import android.os.UserHandle; import android.provider.Settings; import android.provider.Settings; import android.service.vr.IVrManager; import android.service.vr.IVrManager; import android.service.vr.IVrStateCallbacks; import android.util.DisplayMetrics; import android.util.DisplayMetrics; import android.util.Slog; import android.util.Slog; import android.util.SparseBooleanArray; import android.util.SparseBooleanArray; Loading Loading @@ -70,7 +71,9 @@ public class ImmersiveModeConfirmation { private long mPanicTime; private long mPanicTime; private WindowManager mWindowManager; private WindowManager mWindowManager; private int mCurrentUserId; private int mCurrentUserId; private IVrManager mVrManager; // Local copy of vr mode enabled state, to avoid calling into VrManager with // the lock held. boolean mVrModeEnabled = false; public ImmersiveModeConfirmation(Context context) { public ImmersiveModeConfirmation(Context context) { mContext = context; mContext = context; Loading Loading @@ -117,22 +120,19 @@ public class ImmersiveModeConfirmation { } } } } private boolean getVrMode() { void systemReady() { boolean vrMode = false; IVrManager vrManager = IVrManager.Stub.asInterface( if (mVrManager == null) { // lazily grab this service since it may not be available at construction time mVrManager = (IVrManager) IVrManager.Stub.asInterface( ServiceManager.getService(VrManagerService.VR_MANAGER_BINDER_SERVICE)); ServiceManager.getService(VrManagerService.VR_MANAGER_BINDER_SERVICE)); } if (vrManager != null) { if (mVrManager != null) { try { try { vrMode = mVrManager.getVrModeState(); vrManager.registerListener(mVrStateCallbacks); } catch (RemoteException ex) { } mVrModeEnabled = vrManager.getVrModeState(); } catch (RemoteException re) { } } } return vrMode; } } public void immersiveModeChanged(String pkg, boolean isImmersiveMode, public void immersiveModeChangedLw(String pkg, boolean isImmersiveMode, boolean userSetupComplete) { boolean userSetupComplete) { mHandler.removeMessages(H.SHOW); mHandler.removeMessages(H.SHOW); if (isImmersiveMode) { if (isImmersiveMode) { Loading @@ -142,7 +142,7 @@ public class ImmersiveModeConfirmation { if (!disabled if (!disabled && (DEBUG_SHOW_EVERY_TIME || !mConfirmed) && (DEBUG_SHOW_EVERY_TIME || !mConfirmed) && userSetupComplete && userSetupComplete && !getVrMode()) { && !mVrModeEnabled) { mHandler.sendEmptyMessageDelayed(H.SHOW, mShowDelayMs); mHandler.sendEmptyMessageDelayed(H.SHOW, mShowDelayMs); } } } else { } else { Loading Loading @@ -375,4 +375,11 @@ public class ImmersiveModeConfirmation { } } } } } } private final IVrStateCallbacks mVrStateCallbacks = new IVrStateCallbacks.Stub() { @Override public void onVrStateChanged(boolean enabled) throws RemoteException { mVrModeEnabled = enabled; } }; } }
services/core/java/com/android/server/policy/PhoneWindowManager.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -6653,6 +6653,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { mKeyguardDelegate.onBootCompleted(); mKeyguardDelegate.onBootCompleted(); } } mSystemGestures.systemReady(); mSystemGestures.systemReady(); mImmersiveModeConfirmation.systemReady(); } } /** {@inheritDoc} */ /** {@inheritDoc} */ Loading Loading @@ -7357,7 +7358,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { boolean newImmersiveMode = isImmersiveMode(vis); boolean newImmersiveMode = isImmersiveMode(vis); if (win != null && oldImmersiveMode != newImmersiveMode) { if (win != null && oldImmersiveMode != newImmersiveMode) { final String pkg = win.getOwningPackage(); final String pkg = win.getOwningPackage(); mImmersiveModeConfirmation.immersiveModeChanged(pkg, newImmersiveMode, mImmersiveModeConfirmation.immersiveModeChangedLw(pkg, newImmersiveMode, isUserSetupComplete()); isUserSetupComplete()); } } Loading