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

Commit bc255db7 authored by Rupesh Bansal's avatar Rupesh Bansal
Browse files

Remove VR features from apps

Bug: 260555143
Test: atest com.android.server.power
Change-Id: I7d1938363dacb06f93cea69672a710ccbb76012e
parent 39b4cbbc
Loading
Loading
Loading
Loading
+4 −46
Original line number Diff line number Diff line
@@ -30,15 +30,9 @@ import android.hardware.display.DisplayManager.DisplayListener;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
import android.os.PowerManager;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.provider.Settings.System;
import android.service.vr.IVrManager;
import android.text.TextUtils;
import android.util.Log;

import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;

@@ -58,11 +52,8 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr

    private static final String TAG = "BrightnessPrefCtrl";
    private static final String KEY_BRIGHTNESS = "brightness";
    private static final Uri BRIGHTNESS_FOR_VR_URI;
    private static final Uri BRIGHTNESS_ADJ_URI;

    private final float mMinVrBrightness;
    private final float mMaxVrBrightness;
    private final ContentResolver mContentResolver;
    private final Handler mHandler = new Handler(Looper.getMainLooper());
    private final DisplayManager mDisplayManager;
@@ -70,7 +61,6 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
    private Preference mPreference;

    static {
        BRIGHTNESS_FOR_VR_URI = System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR);
        BRIGHTNESS_ADJ_URI = System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ);
    }

@@ -105,12 +95,6 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
        if (lifecycle != null) {
            lifecycle.addObserver(this);
        }
        final PowerManager powerManager = context.getSystemService(PowerManager.class);

        mMinVrBrightness = powerManager.getBrightnessConstraint(
                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM_VR);
        mMaxVrBrightness = powerManager.getBrightnessConstraint(
                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM_VR);
        mContentResolver = mContext.getContentResolver();
    }

@@ -137,7 +121,6 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr

    @Override
    public void onStart() {
        mContentResolver.registerContentObserver(BRIGHTNESS_FOR_VR_URI, false, mBrightnessObserver);
        mContentResolver.registerContentObserver(BRIGHTNESS_ADJ_URI, false, mBrightnessObserver);
        mDisplayManager.registerDisplayListener(mDisplayListener, mHandler,
                DisplayManager.EVENT_FLAG_DISPLAY_BRIGHTNESS);
@@ -174,17 +157,11 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr

    private double getCurrentBrightness() {
        int value = 0;
        if (isInVrMode()) {
            value = convertLinearToGammaFloat(System.getFloat(mContentResolver,
                    System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT, mMaxVrBrightness),
                    mMinVrBrightness, mMaxVrBrightness);
        } else {
        final BrightnessInfo info = mContext.getDisplay().getBrightnessInfo();
        if (info != null) {
            value = convertLinearToGammaFloat(info.brightness, info.brightnessMinimum,
                    info.brightnessMaximum);
        }
        }
        return getPercentage(value, GAMMA_SPACE_MIN, GAMMA_SPACE_MAX);
    }

@@ -197,23 +174,4 @@ 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 vrManager.getVrModeState();
            } catch (RemoteException e) {
                Log.e(TAG, "Failed to check vr mode!", e);
            }
        }
        return false;
    }
}
+0 −42
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import static android.content.Context.POWER_SERVICE;
import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -82,16 +81,11 @@ public class BrightnessLevelPreferenceControllerTest {
                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM)).thenReturn(0.0f);
        when(mPowerManager.getBrightnessConstraint(
                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM)).thenReturn(1.0f);
        when(mPowerManager.getBrightnessConstraint(
                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM_VR)).thenReturn(0.0f);
        when(mPowerManager.getBrightnessConstraint(
                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM_VR)).thenReturn(1.0f);
        ShadowApplication.getInstance().setSystemService(POWER_SERVICE,
                mPowerManager);
        when(mScreen.findPreference(anyString())).thenReturn(mPreference);
        when(mContext.getDisplay()).thenReturn(mDisplay);
        mController = spy(new BrightnessLevelPreferenceController(mContext, null));
        doReturn(false).when(mController).isInVrMode();
    }

    @Test
@@ -99,12 +93,6 @@ 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 =
@@ -113,8 +101,6 @@ public class BrightnessLevelPreferenceControllerTest {

        controller.onStart();

        assertThat(shadowContentResolver.getContentObservers(
                System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR))).isNotEmpty();
        assertThat(shadowContentResolver.getContentObservers(
                System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ))).isNotEmpty();
    }
@@ -129,8 +115,6 @@ public class BrightnessLevelPreferenceControllerTest {
        controller.onStart();
        controller.onStop();

        assertThat(shadowContentResolver.getContentObservers(
                System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT))).isEmpty();
        assertThat(shadowContentResolver.getContentObservers(
                System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ))).isEmpty();
    }
@@ -150,19 +134,8 @@ public class BrightnessLevelPreferenceControllerTest {
        verify(mPreference).setSummary("87%");
    }

    @Test
    public void updateState_inVrMode_shouldSetSummaryToVrBrightness() {
        doReturn(true).when(mController).isInVrMode();
        System.putFloat(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT, 0.6f);

        mController.updateState(mPreference);

        verify(mPreference).setSummary("91%");
    }

    @Test
    public void updateState_autoBrightness_shouldSetSummaryToAutoBrightness() {
        doReturn(false).when(mController).isInVrMode();
        System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
                System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);

@@ -177,7 +150,6 @@ public class BrightnessLevelPreferenceControllerTest {

    @Test
    public void updateState_manualBrightness_shouldSetSummaryToScreenBrightness() {
        doReturn(false).when(mController).isInVrMode();
        System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
                System.SCREEN_BRIGHTNESS_MODE_MANUAL);

@@ -190,20 +162,6 @@ public class BrightnessLevelPreferenceControllerTest {
        verify(mPreference).setSummary("87%");
    }

    @Test
    public void updateState_brightnessOutOfRange_shouldSetSummaryInRange() {
        // VR mode
        doReturn(true).when(mController).isInVrMode();

        System.putFloat(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT, 1.05f);
        mController.updateState(mPreference);
        verify(mPreference).setSummary("100%");

        System.putFloat(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT, -20f);
        mController.updateState(mPreference);
        verify(mPreference).setSummary("0%");
    }

    @Test
    public void handlePreferenceTreeClick_transitionTypeNone_shouldPassToNextActivity() {
        final Activity activity = Robolectric.setupActivity(Activity.class);
+0 −9
Original line number Diff line number Diff line
@@ -35,13 +35,4 @@ public class ShadowPowerManager {
        return 0;
    }

    @Implementation
    protected int getMinimumScreenBrightnessForVrSetting() {
        return 0;
    }

    @Implementation
    protected int getMaximumScreenBrightnessForVrSetting() {
        return 0;
    }
}