diff --git a/res/values/strings.xml b/res/values/strings.xml
index a842d36d1dd..13698679d2a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -10084,12 +10084,6 @@
Devices
-
- High Frequency Panel
-
-
- Enable Virtual High Frequency Panel
-
All Settings
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index 5a36463016c..3d08cd8e7d6 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -364,11 +364,6 @@
android:entries="@array/overlay_display_devices_entries"
android:entryValues="@array/overlay_display_devices_values" />
-
-
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index cc8bd2e0918..5f42e891df4 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -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
index ad8e9f8d736..00000000000
--- a/src/com/android/settings/development/HighFrequencyDisplayPreferenceController.java
+++ /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
index 700f544bc5e..00000000000
--- a/tests/robotests/src/com/android/settings/development/HighFrequencyPreferenceControllerTest.java
+++ /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);
- }
-}