OSDN Git Service

Revert "Add Support for Virtual High Refresh Rate mode"
authorDavid Sodman <dsodman@google.com>
Mon, 15 Oct 2018 20:43:22 +0000 (13:43 -0700)
committerDavid Sodman <dsodman@google.com>
Wed, 24 Oct 2018 20:27:00 +0000 (13:27 -0700)
This reverts commit 7915fda7eea56a8461be3025dc7a6f18cf26c15a
as this feature has been cancelled.

Test: None
Change-Id: I5ea9afcc3191576e84742ccf316b030b5c00e5c4

res/values/strings.xml
res/xml/development_settings.xml
src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
src/com/android/settings/development/HighFrequencyDisplayPreferenceController.java [deleted file]
tests/robotests/src/com/android/settings/development/HighFrequencyPreferenceControllerTest.java [deleted file]

index a842d36..1369867 100644 (file)
     <!-- Title for Connected device shortcut [CHAR LIMIT=30] -->
     <string name="devices_title">Devices</string>
 
-    <!-- UI debug setting: Enable High Refresh Rate virtual panel [CHAR LIMIT=25] -->
-    <string name="high_frequency_display_device_title">High Frequency Panel</string>
-
-    <!-- UI debug setting: Enable High Refresh Rate virtual panel [CHAR LIMIT=50] -->
-    <string name="high_frequency_display_device_summary">Enable Virtual High Frequency Panel</string>
-
     <!-- Homepage bottom menu. Title for display all Settings [CHAR LIMIT=30] -->
     <string name="homepage_all_settings">All Settings</string>
 
index 5a36463..3d08cd8 100644 (file)
             android:entries="@array/overlay_display_devices_entries"
             android:entryValues="@array/overlay_display_devices_values" />
 
-        <SwitchPreference
-            android:key="high_frequency_display_device"
-            android:title="@string/high_frequency_display_device_title"
-            android:summary="@string/high_frequency_display_device_summary" />
-
         <com.android.settings.display.DensityPreference
             android:key="density"
             android:title="@string/developer_smallest_width" />
index cc8bd2e..5f42e89 100644 (file)
@@ -440,7 +440,6 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
         controllers.add(new TransitionAnimationScalePreferenceController(context));
         controllers.add(new AnimatorDurationScalePreferenceController(context));
         controllers.add(new SecondaryDisplayPreferenceController(context));
-        controllers.add(new HighFrequencyDisplayPreferenceController(context));
         controllers.add(new GpuViewUpdatesPreferenceController(context));
         controllers.add(new HardwareLayersUpdatesPreferenceController(context));
         controllers.add(new DebugGpuOverdrawPreferenceController(context));
diff --git a/src/com/android/settings/development/HighFrequencyDisplayPreferenceController.java b/src/com/android/settings/development/HighFrequencyDisplayPreferenceController.java
deleted file mode 100644 (file)
index ad8e9f8..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.development;
-
-import android.content.Context;
-import android.os.IBinder;
-import android.os.Parcel;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
-
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.development.DeveloperOptionsPreferenceController;
-
-public class HighFrequencyDisplayPreferenceController extends DeveloperOptionsPreferenceController
-        implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
-
-    private static final String HIGH_FREQUENCY_DISPLAY_KEY = "high_frequency_display_device";
-
-    private static final String SURFACE_FLINGER_SERVICE_KEY = "SurfaceFlinger";
-    private static final String SURFACE_COMPOSER_INTERFACE_KEY = "android.ui.ISurfaceComposer";
-    private static final int SURFACE_FLINGER_HIGH_FREQUENCY_DISPLAY_CODE = 1029;
-
-    private final IBinder mSurfaceFlingerBinder;
-
-    public HighFrequencyDisplayPreferenceController(Context context) {
-        super(context);
-        mSurfaceFlingerBinder = ServiceManager.getService(SURFACE_FLINGER_SERVICE_KEY);
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return HIGH_FREQUENCY_DISPLAY_KEY;
-    }
-
-    @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        Boolean isEnabled = (Boolean) newValue;
-        writeHighFrequencyDisplaySetting(isEnabled);
-        ((SwitchPreference) preference).setChecked(isEnabled);
-        return true;
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        boolean enableHighFrequencyPanel = readHighFrequencyDisplaySetting();
-        ((SwitchPreference) preference).setChecked(enableHighFrequencyPanel);
-    }
-
-    @Override
-    protected void onDeveloperOptionsSwitchDisabled() {
-        super.onDeveloperOptionsSwitchDisabled();
-        writeHighFrequencyDisplaySetting(false);
-        ((SwitchPreference) mPreference).setChecked(false);
-    }
-
-    @VisibleForTesting
-    boolean readHighFrequencyDisplaySetting() {
-        boolean isEnabled = false;
-        try {
-            if (mSurfaceFlingerBinder != null) {
-                final Parcel data = Parcel.obtain();
-                final Parcel result = Parcel.obtain();
-                data.writeInterfaceToken(SURFACE_COMPOSER_INTERFACE_KEY);
-                data.writeInt(0);
-                data.writeInt(0);
-                mSurfaceFlingerBinder.transact(
-                        SURFACE_FLINGER_HIGH_FREQUENCY_DISPLAY_CODE,
-                        data, result, 0);
-
-                if (result.readInt() != 1 || result.readInt() != 1) {
-                    isEnabled = true;
-                }
-            }
-        } catch (RemoteException ex) {
-            // intentional no-op
-        }
-        return isEnabled;
-    }
-
-    @VisibleForTesting
-    void writeHighFrequencyDisplaySetting(boolean isEnabled) {
-        int multiplier;
-        int divisor;
-
-        if (isEnabled) {
-            // 60Hz * 3/2 = 90Hz
-            multiplier = 2;
-            divisor = 3;
-        } else {
-            multiplier = 1;
-            divisor = 1;
-        }
-
-        try {
-            if (mSurfaceFlingerBinder != null) {
-                final Parcel data = Parcel.obtain();
-                data.writeInterfaceToken(SURFACE_COMPOSER_INTERFACE_KEY);
-                data.writeInt(multiplier);
-                data.writeInt(divisor);
-                mSurfaceFlingerBinder.transact(
-                        SURFACE_FLINGER_HIGH_FREQUENCY_DISPLAY_CODE,
-                        data, null, 0);
-            }
-        } catch (RemoteException ex) {
-            // intentional no-op
-        }
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/development/HighFrequencyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/HighFrequencyPreferenceControllerTest.java
deleted file mode 100644 (file)
index 700f544..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.development;
-
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.IBinder;
-import android.os.RemoteException;
-
-import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
-
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.util.ReflectionHelpers;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public class HighFrequencyPreferenceControllerTest {
-
-    private Context mContext;
-    private SwitchPreference mPreference;
-
-    @Mock
-    private PreferenceScreen mScreen;
-    @Mock
-    private IBinder mSurfaceFlingerBinder;
-
-    private HighFrequencyDisplayPreferenceController mController;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
-        mPreference = new SwitchPreference(mContext);
-        mController = spy(new HighFrequencyDisplayPreferenceController(mContext));
-        ReflectionHelpers.setField(mController, "mSurfaceFlingerBinder", mSurfaceFlingerBinder);
-        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
-        mController.displayPreference(mScreen);
-    }
-
-    @Test
-    public void onPreferenceChange_settingToggledOn_shouldWriteTrueToHighFrequencySetting() {
-        mController.onPreferenceChange(mPreference, true /* new value */);
-
-        verify(mController).writeHighFrequencyDisplaySetting(true);
-    }
-
-    @Test
-    public void onPreferenceChange_settingToggledOff_shouldWriteFalseToHighFrequencySetting() {
-        mController.onPreferenceChange(mPreference, false /* new value */);
-
-        verify(mController).writeHighFrequencyDisplaySetting(false);
-    }
-
-    @Test
-    public void updateState_settingEnabled_shouldCheckPreference() throws RemoteException {
-        mController.writeHighFrequencyDisplaySetting(true);
-        mController.updateState(mPreference);
-
-        verify(mController).readHighFrequencyDisplaySetting();
-    }
-
-    @Test
-    public void updateState_settingDisabled_shouldUnCheckPreference() throws RemoteException {
-        mController.writeHighFrequencyDisplaySetting(true);
-        mController.updateState(mPreference);
-
-        verify(mController).readHighFrequencyDisplaySetting();
-    }
-
-    @Test
-    public void onDeveloperOptionsSwitchDisabled_preferenceChecked_shouldTurnOffPreference() {
-        mController.onDeveloperOptionsSwitchDisabled();
-
-        verify(mController).writeHighFrequencyDisplaySetting(false);
-    }
-
-    @Test
-    public void onDeveloperOptionsSwitchDisabled_preferenceUnchecked_shouldNotTurnOffPreference() {
-        mController.onDeveloperOptionsSwitchDisabled();
-
-        verify(mController).writeHighFrequencyDisplaySetting(false);
-    }
-}