Remove VR features from apps
Bug: 260555143 Test: atest com.android.server.power Change-Id: I7d1938363dacb06f93cea69672a710ccbb76012e
This commit is contained in:
@@ -30,15 +30,9 @@ import android.hardware.display.DisplayManager.DisplayListener;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.PowerManager;
|
|
||||||
import android.os.RemoteException;
|
|
||||||
import android.os.ServiceManager;
|
|
||||||
import android.provider.Settings.System;
|
import android.provider.Settings.System;
|
||||||
import android.service.vr.IVrManager;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
@@ -58,11 +52,8 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
|
|||||||
|
|
||||||
private static final String TAG = "BrightnessPrefCtrl";
|
private static final String TAG = "BrightnessPrefCtrl";
|
||||||
private static final String KEY_BRIGHTNESS = "brightness";
|
private static final String KEY_BRIGHTNESS = "brightness";
|
||||||
private static final Uri BRIGHTNESS_FOR_VR_URI;
|
|
||||||
private static final Uri BRIGHTNESS_ADJ_URI;
|
private static final Uri BRIGHTNESS_ADJ_URI;
|
||||||
|
|
||||||
private final float mMinVrBrightness;
|
|
||||||
private final float mMaxVrBrightness;
|
|
||||||
private final ContentResolver mContentResolver;
|
private final ContentResolver mContentResolver;
|
||||||
private final Handler mHandler = new Handler(Looper.getMainLooper());
|
private final Handler mHandler = new Handler(Looper.getMainLooper());
|
||||||
private final DisplayManager mDisplayManager;
|
private final DisplayManager mDisplayManager;
|
||||||
@@ -70,7 +61,6 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
|
|||||||
private Preference mPreference;
|
private Preference mPreference;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
BRIGHTNESS_FOR_VR_URI = System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR);
|
|
||||||
BRIGHTNESS_ADJ_URI = System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ);
|
BRIGHTNESS_ADJ_URI = System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,12 +95,6 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
|
|||||||
if (lifecycle != null) {
|
if (lifecycle != null) {
|
||||||
lifecycle.addObserver(this);
|
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();
|
mContentResolver = mContext.getContentResolver();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,7 +121,6 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStart() {
|
public void onStart() {
|
||||||
mContentResolver.registerContentObserver(BRIGHTNESS_FOR_VR_URI, false, mBrightnessObserver);
|
|
||||||
mContentResolver.registerContentObserver(BRIGHTNESS_ADJ_URI, false, mBrightnessObserver);
|
mContentResolver.registerContentObserver(BRIGHTNESS_ADJ_URI, false, mBrightnessObserver);
|
||||||
mDisplayManager.registerDisplayListener(mDisplayListener, mHandler,
|
mDisplayManager.registerDisplayListener(mDisplayListener, mHandler,
|
||||||
DisplayManager.EVENT_FLAG_DISPLAY_BRIGHTNESS);
|
DisplayManager.EVENT_FLAG_DISPLAY_BRIGHTNESS);
|
||||||
@@ -174,17 +157,11 @@ public class BrightnessLevelPreferenceController extends AbstractPreferenceContr
|
|||||||
|
|
||||||
private double getCurrentBrightness() {
|
private double getCurrentBrightness() {
|
||||||
int value = 0;
|
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();
|
final BrightnessInfo info = mContext.getDisplay().getBrightnessInfo();
|
||||||
if (info != null) {
|
if (info != null) {
|
||||||
value = convertLinearToGammaFloat(info.brightness, info.brightnessMinimum,
|
value = convertLinearToGammaFloat(info.brightness, info.brightnessMinimum,
|
||||||
info.brightnessMaximum);
|
info.brightnessMaximum);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return getPercentage(value, GAMMA_SPACE_MIN, GAMMA_SPACE_MAX);
|
return getPercentage(value, GAMMA_SPACE_MIN, GAMMA_SPACE_MAX);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -197,23 +174,4 @@ 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
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -21,7 +21,6 @@ import static android.content.Context.POWER_SERVICE;
|
|||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
import static org.mockito.ArgumentMatchers.anyString;
|
||||||
import static org.mockito.Mockito.doReturn;
|
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
@@ -82,16 +81,11 @@ public class BrightnessLevelPreferenceControllerTest {
|
|||||||
PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM)).thenReturn(0.0f);
|
PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM)).thenReturn(0.0f);
|
||||||
when(mPowerManager.getBrightnessConstraint(
|
when(mPowerManager.getBrightnessConstraint(
|
||||||
PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM)).thenReturn(1.0f);
|
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,
|
ShadowApplication.getInstance().setSystemService(POWER_SERVICE,
|
||||||
mPowerManager);
|
mPowerManager);
|
||||||
when(mScreen.findPreference(anyString())).thenReturn(mPreference);
|
when(mScreen.findPreference(anyString())).thenReturn(mPreference);
|
||||||
when(mContext.getDisplay()).thenReturn(mDisplay);
|
when(mContext.getDisplay()).thenReturn(mDisplay);
|
||||||
mController = spy(new BrightnessLevelPreferenceController(mContext, null));
|
mController = spy(new BrightnessLevelPreferenceController(mContext, null));
|
||||||
doReturn(false).when(mController).isInVrMode();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -99,12 +93,6 @@ 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 =
|
||||||
@@ -113,8 +101,6 @@ public class BrightnessLevelPreferenceControllerTest {
|
|||||||
|
|
||||||
controller.onStart();
|
controller.onStart();
|
||||||
|
|
||||||
assertThat(shadowContentResolver.getContentObservers(
|
|
||||||
System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR))).isNotEmpty();
|
|
||||||
assertThat(shadowContentResolver.getContentObservers(
|
assertThat(shadowContentResolver.getContentObservers(
|
||||||
System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ))).isNotEmpty();
|
System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ))).isNotEmpty();
|
||||||
}
|
}
|
||||||
@@ -129,8 +115,6 @@ public class BrightnessLevelPreferenceControllerTest {
|
|||||||
controller.onStart();
|
controller.onStart();
|
||||||
controller.onStop();
|
controller.onStop();
|
||||||
|
|
||||||
assertThat(shadowContentResolver.getContentObservers(
|
|
||||||
System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT))).isEmpty();
|
|
||||||
assertThat(shadowContentResolver.getContentObservers(
|
assertThat(shadowContentResolver.getContentObservers(
|
||||||
System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ))).isEmpty();
|
System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ))).isEmpty();
|
||||||
}
|
}
|
||||||
@@ -150,19 +134,8 @@ public class BrightnessLevelPreferenceControllerTest {
|
|||||||
verify(mPreference).setSummary("87%");
|
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
|
@Test
|
||||||
public void updateState_autoBrightness_shouldSetSummaryToAutoBrightness() {
|
public void updateState_autoBrightness_shouldSetSummaryToAutoBrightness() {
|
||||||
doReturn(false).when(mController).isInVrMode();
|
|
||||||
System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
|
System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
|
||||||
System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
|
System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
|
||||||
|
|
||||||
@@ -177,7 +150,6 @@ public class BrightnessLevelPreferenceControllerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateState_manualBrightness_shouldSetSummaryToScreenBrightness() {
|
public void updateState_manualBrightness_shouldSetSummaryToScreenBrightness() {
|
||||||
doReturn(false).when(mController).isInVrMode();
|
|
||||||
System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
|
System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
|
||||||
System.SCREEN_BRIGHTNESS_MODE_MANUAL);
|
System.SCREEN_BRIGHTNESS_MODE_MANUAL);
|
||||||
|
|
||||||
@@ -190,20 +162,6 @@ public class BrightnessLevelPreferenceControllerTest {
|
|||||||
verify(mPreference).setSummary("87%");
|
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
|
@Test
|
||||||
public void handlePreferenceTreeClick_transitionTypeNone_shouldPassToNextActivity() {
|
public void handlePreferenceTreeClick_transitionTypeNone_shouldPassToNextActivity() {
|
||||||
final Activity activity = Robolectric.setupActivity(Activity.class);
|
final Activity activity = Robolectric.setupActivity(Activity.class);
|
||||||
|
@@ -35,13 +35,4 @@ public class ShadowPowerManager {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Implementation
|
|
||||||
protected int getMinimumScreenBrightnessForVrSetting() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Implementation
|
|
||||||
protected int getMaximumScreenBrightnessForVrSetting() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user