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

Commit bad519d0 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: 112064298
Change-Id: I899337bb5a996efffe82970fa690f2c5d59c1bb5
parent 937b8172
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -151,14 +151,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
@@ -82,6 +82,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 =