Add null check for vrManager

If VrManagerService is not started, vrManager will be null. Need
add check for it.

Test: robotests
Bug: 116427118
Change-Id: I899337bb5a996efffe82970fa690f2c5d59c1bb5
Merged-In: I899337bb5a996efffe82970fa690f2c5d59c1bb5
diff --git a/src/com/android/settings/display/BrightnessLevelPreferenceController.java b/src/com/android/settings/display/BrightnessLevelPreferenceController.java
index 4bb0a99..f45bde6 100644
--- a/src/com/android/settings/display/BrightnessLevelPreferenceController.java
+++ b/src/com/android/settings/display/BrightnessLevelPreferenceController.java
@@ -151,12 +151,20 @@
     }
 
     @VisibleForTesting
+    IVrManager safeGetVrManager() {
+        return IVrManager.Stub.asInterface(ServiceManager.getService(
+                Context.VR_SERVICE));
+    }
+
+    @VisibleForTesting
     boolean isInVrMode() {
-        try {
-            return IVrManager.Stub.asInterface(ServiceManager.getService(Context.VR_SERVICE))
-                    .getVrModeState();
-        } catch (RemoteException e) {
-            Log.e(TAG, "Failed to check vr mode!", e);
+        IVrManager vrManager = safeGetVrManager();
+        if (vrManager != null) {
+            try {
+                return vrManager.getVrModeState();
+            } catch (RemoteException e) {
+                Log.e(TAG, "Failed to check vr mode!", e);
+            }
         }
         return false;
     }
diff --git a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
index e29ded0..ee20d57 100644
--- a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
@@ -82,6 +82,12 @@
     }
 
     @Test
+    public void isInVrMode_noVrManager_shouldAlwaysReturnFalse() {
+        doReturn(null).when(mController).safeGetVrManager();
+        assertThat(mController.isInVrMode()).isFalse();
+    }
+
+    @Test
     public void onStart_shouldRegisterObserver() {
         BrightnessLevelPreferenceController controller =
                 new BrightnessLevelPreferenceController(mContext, null);