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
This commit is contained in:
Rick Yiu
2018-08-28 14:06:46 +08:00
parent 6ec0b21544
commit 0732628bf7
2 changed files with 19 additions and 5 deletions

View File

@@ -150,13 +150,21 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
return (value - min) / (max - min); return (value - min) / (max - min);
} }
@VisibleForTesting
IVrManager safeGetVrManager() {
return IVrManager.Stub.asInterface(ServiceManager.getService(
Context.VR_SERVICE));
}
@VisibleForTesting @VisibleForTesting
boolean isInVrMode() { boolean isInVrMode() {
try { IVrManager vrManager = safeGetVrManager();
return IVrManager.Stub.asInterface(ServiceManager.getService(Context.VR_SERVICE)) if (vrManager != null) {
.getVrModeState(); try {
} catch (RemoteException e) { return vrManager.getVrModeState();
Log.e(TAG, "Failed to check vr mode!", e); } catch (RemoteException e) {
Log.e(TAG, "Failed to check vr mode!", e);
}
} }
return false; return false;
} }

View File

@@ -81,6 +81,12 @@ public class BrightnessLevelPreferenceControllerTest {
assertThat(mController.isAvailable()).isTrue(); assertThat(mController.isAvailable()).isTrue();
} }
@Test
public void isInVrMode_noVrManager_shouldAlwaysReturnFalse() {
doReturn(null).when(mController).safeGetVrManager();
assertThat(mController.isInVrMode()).isFalse();
}
@Test @Test
public void onStart_shouldRegisterObserver() { public void onStart_shouldRegisterObserver() {
BrightnessLevelPreferenceController controller = BrightnessLevelPreferenceController controller =