From 0732628bf7c3e1fafb36d75f1997a8a5b33500a9 Mon Sep 17 00:00:00 2001 From: Rick Yiu Date: Tue, 28 Aug 2018 14:06:46 +0800 Subject: [PATCH] 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 --- .../display/BrightnessLevelPreferenceController.java | 18 +++++++++++++----- .../BrightnessLevelPreferenceControllerTest.java | 6 ++++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/display/BrightnessLevelPreferenceController.java b/src/com/android/settings/display/BrightnessLevelPreferenceController.java index 4bb0a99b7f..f45bde6ffb 100644 --- a/src/com/android/settings/display/BrightnessLevelPreferenceController.java +++ b/src/com/android/settings/display/BrightnessLevelPreferenceController.java @@ -151,12 +151,20 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr } @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 e29ded0ee3..ee20d57d5e 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 @@ public class BrightnessLevelPreferenceControllerTest { } @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); -- 2.11.0