diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceController.java b/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceController.java
index 01f8bb4..64f6277 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceController.java
@@ -22,7 +22,6 @@
 import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.accessibility.Flags;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -107,10 +106,8 @@
             mControllers.add(new BluetoothDetailsHearingDeviceSettingsController(mContext,
                     mFragment, mCachedDevice, mLifecycle));
         }
-        if (Flags.enableHearingAidPresetControl()) {
-            mControllers.add(new BluetoothDetailsHearingAidsPresetsController(mContext, mFragment,
-                    mManager, mCachedDevice, mLifecycle));
-        }
+        mControllers.add(new BluetoothDetailsHearingAidsPresetsController(mContext, mFragment,
+                mManager, mCachedDevice, mLifecycle));
         if (com.android.settingslib.flags.Flags.hearingDevicesAmbientVolumeControl()) {
             mControllers.add(new BluetoothDetailsAmbientVolumePreferenceController(mContext,
                     mManager, mFragment, mCachedDevice, mLifecycle));
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceControllerTest.java
index d0177a8..e96af1c 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceControllerTest.java
@@ -25,7 +25,6 @@
 import android.platform.test.flag.junit.CheckFlagsRule;
 import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 
-import com.android.settings.accessibility.Flags;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
 
@@ -119,8 +118,7 @@
     }
 
     @Test
-    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_HEARING_AID_PRESET_CONTROL)
-    public void initSubControllers_flagEnabled_presetControllerExist() {
+    public void initSubControllers_presetControllerExist() {
         mHearingDeviceController.initSubControllers(false);
 
         assertThat(mHearingDeviceController.getSubControllers().stream().anyMatch(
@@ -128,15 +126,6 @@
     }
 
     @Test
-    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_HEARING_AID_PRESET_CONTROL)
-    public void initSubControllers_flagDisabled_presetControllerNotExist() {
-        mHearingDeviceController.initSubControllers(false);
-
-        assertThat(mHearingDeviceController.getSubControllers().stream().anyMatch(
-                c -> c instanceof BluetoothDetailsHearingAidsPresetsController)).isFalse();
-    }
-
-    @Test
     @RequiresFlagsEnabled(
             com.android.settingslib.flags.Flags.FLAG_HEARING_DEVICES_AMBIENT_VOLUME_CONTROL)
     public void initSubControllers_flagEnabled_ambientVolumeControllerExist() {
