Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0732628b authored by Rick Yiu's avatar Rick Yiu
Browse files

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
parent 6ec0b215
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -150,14 +150,22 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
        return (value - min) / (max - min);
    }

    @VisibleForTesting
    IVrManager safeGetVrManager() {
        return IVrManager.Stub.asInterface(ServiceManager.getService(
                Context.VR_SERVICE));
    }

    @VisibleForTesting
    boolean isInVrMode() {
        IVrManager vrManager = safeGetVrManager();
        if (vrManager != null) {
            try {
            return IVrManager.Stub.asInterface(ServiceManager.getService(Context.VR_SERVICE))
                    .getVrModeState();
                return vrManager.getVrModeState();
            } catch (RemoteException e) {
                Log.e(TAG, "Failed to check vr mode!", e);
            }
        }
        return false;
    }
}
+6 −0
Original line number Diff line number Diff line
@@ -81,6 +81,12 @@ public class BrightnessLevelPreferenceControllerTest {
        assertThat(mController.isAvailable()).isTrue();
    }

    @Test
    public void isInVrMode_noVrManager_shouldAlwaysReturnFalse() {
        doReturn(null).when(mController).safeGetVrManager();
        assertThat(mController.isInVrMode()).isFalse();
    }

    @Test
    public void onStart_shouldRegisterObserver() {
        BrightnessLevelPreferenceController controller =