diff options
| -rw-r--r-- | services/core/java/com/android/server/policy/ImmersiveModeConfirmation.java | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/policy/ImmersiveModeConfirmation.java b/services/core/java/com/android/server/policy/ImmersiveModeConfirmation.java index 27077f2f74f7..553c5de76cba 100644 --- a/services/core/java/com/android/server/policy/ImmersiveModeConfirmation.java +++ b/services/core/java/com/android/server/policy/ImmersiveModeConfirmation.java @@ -80,8 +80,6 @@ public class ImmersiveModeConfirmation { .getInteger(R.integer.config_immersive_mode_confirmation_panic); mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); - mVrManager = (IVrManager) IVrManager.Stub.asInterface( - ServiceManager.getService(VrManagerService.VR_MANAGER_BINDER_SERVICE)); } private long getNavBarExitDuration() { @@ -121,11 +119,18 @@ public class ImmersiveModeConfirmation { private boolean getVrMode() { boolean vrMode = false; - try { - vrMode = mVrManager.getVrModeState(); - } catch (RemoteException ex) { } + 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)); + } + if (mVrManager != null) { + try { + vrMode = mVrManager.getVrModeState(); + } catch (RemoteException ex) { } + } return vrMode; - } + } public void immersiveModeChanged(String pkg, boolean isImmersiveMode, boolean userSetupComplete) { |