Remove volume_separate_notification flag

Fully enable the feature

Bug: b/255363741, b/38477228

Test: make DEBUG_ROBOLECTRIC=1 ROBOTEST_FILTER="NotificationVolumePreferenceControllerTest|SeparateRingVolumePreferenceControllerTest|RingerModeAffectedPreferenceControllerTest|SoundSettingsTest" RunSettingsRoboTests -j40
Change-Id: Iec490fc254f71b6461dbf9f9beb4a11645a4a497
diff --git a/src/com/android/settings/notification/NotificationVolumePreferenceController.java b/src/com/android/settings/notification/NotificationVolumePreferenceController.java
index 54d7854..cf8a33f 100644
--- a/src/com/android/settings/notification/NotificationVolumePreferenceController.java
+++ b/src/com/android/settings/notification/NotificationVolumePreferenceController.java
@@ -16,29 +16,23 @@
 
 package com.android.settings.notification;
 
-import android.app.ActivityThread;
 import android.app.NotificationManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.media.AudioManager;
-import android.os.Binder;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
-import android.provider.DeviceConfig;
 import android.service.notification.NotificationListenerService;
 
 import androidx.lifecycle.OnLifecycleEvent;
 import androidx.preference.PreferenceScreen;
 
-import com.android.internal.config.sysui.SystemUiDeviceConfigFlags;
 import com.android.settings.R;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
-import java.util.Set;
-
 /**
  * Update notification volume icon in Settings in response to user adjusting volume.
  */
@@ -84,37 +78,11 @@
         updateEnabledState();
     }
 
-    /**
-     * Only display the notification slider when the corresponding device config flag is set
-     */
-    private void onDeviceConfigChange(DeviceConfig.Properties properties) {
-        Set<String> changeSet = properties.getKeyset();
-
-        if (changeSet.contains(SystemUiDeviceConfigFlags.VOLUME_SEPARATE_NOTIFICATION)) {
-            boolean newVal = isSeparateNotificationConfigEnabled();
-            if (newVal != mSeparateNotification) {
-                mSeparateNotification = newVal;
-                // Update UI if config change happens when Sound Settings page is on the foreground
-                if (mPreference != null) {
-                    int status = getAvailabilityStatus();
-                    mPreference.setVisible(status == AVAILABLE
-                            || status == DISABLED_DEPENDENT_SETTING);
-                    if (status == DISABLED_DEPENDENT_SETTING) {
-                        mPreference.setEnabled(false);
-                    }
-                }
-            }
-        }
-    }
-
     @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
     @Override
     public void onResume() {
         super.onResume();
         mReceiver.register(true);
-        Binder.withCleanCallingIdentity(()
-                -> DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_SYSTEMUI,
-                ActivityThread.currentApplication().getMainExecutor(), this::onDeviceConfigChange));
     }
 
     @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
@@ -122,18 +90,13 @@
     public void onPause() {
         super.onPause();
         mReceiver.register(false);
-        Binder.withCleanCallingIdentity(() ->
-                DeviceConfig.removeOnPropertiesChangedListener(this::onDeviceConfigChange));
     }
 
     @Override
     public int getAvailabilityStatus() {
-        boolean separateNotification = isSeparateNotificationConfigEnabled();
         return mContext.getResources().getBoolean(R.bool.config_show_notification_volume)
-                && !mHelper.isSingleVolume() && separateNotification
-                ? (mRingerMode == AudioManager.RINGER_MODE_NORMAL
-                    ? AVAILABLE : DISABLED_DEPENDENT_SETTING)
-                : UNSUPPORTED_ON_DEVICE;
+                && !mHelper.isSingleVolume() ? (mRingerMode == AudioManager.RINGER_MODE_NORMAL
+                ? AVAILABLE : DISABLED_DEPENDENT_SETTING) : UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
diff --git a/src/com/android/settings/notification/RingVolumePreferenceController.java b/src/com/android/settings/notification/RingVolumePreferenceController.java
index a8118c6..09d8ecc 100644
--- a/src/com/android/settings/notification/RingVolumePreferenceController.java
+++ b/src/com/android/settings/notification/RingVolumePreferenceController.java
@@ -16,28 +16,22 @@
 
 package com.android.settings.notification;
 
-import android.app.ActivityThread;
 import android.app.NotificationManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.media.AudioManager;
-import android.os.Binder;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
-import android.provider.DeviceConfig;
 import android.service.notification.NotificationListenerService;
 
 import androidx.lifecycle.OnLifecycleEvent;
 
-import com.android.internal.config.sysui.SystemUiDeviceConfigFlags;
 import com.android.settings.R;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
-import java.util.Set;
-
 /**
  * This slider represents both ring and notification
  */
@@ -61,33 +55,14 @@
         mVibrateIconId = R.drawable.ic_volume_ringer_vibrate;
         mSilentIconId = R.drawable.ic_notifications_off_24dp;
 
-        mSeparateNotification = isSeparateNotificationConfigEnabled();
         updateRingerMode();
     }
 
-    /**
-     * As the responsibility of this slider changes, so should its title & icon
-     */
-    private void onDeviceConfigChange(DeviceConfig.Properties properties) {
-        Set<String> changeSet = properties.getKeyset();
-        if (changeSet.contains(SystemUiDeviceConfigFlags.VOLUME_SEPARATE_NOTIFICATION)) {
-            boolean valueUpdated = readSeparateNotificationVolumeConfig();
-            if (valueUpdated) {
-                updateEffectsSuppressor();
-                selectPreferenceIconState();
-            }
-        }
-    }
-
     @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
     @Override
     public void onResume() {
         super.onResume();
         mReceiver.register(true);
-        readSeparateNotificationVolumeConfig();
-        Binder.withCleanCallingIdentity(()
-                -> DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_SYSTEMUI,
-                ActivityThread.currentApplication().getMainExecutor(), this::onDeviceConfigChange));
         updateEffectsSuppressor();
         selectPreferenceIconState();
 
@@ -101,8 +76,6 @@
     public void onPause() {
         super.onPause();
         mReceiver.register(false);
-        Binder.withCleanCallingIdentity(() ->
-                DeviceConfig.removeOnPropertiesChangedListener(this::onDeviceConfigChange));
     }
 
     @Override
@@ -112,9 +85,7 @@
 
     @Override
     public int getAvailabilityStatus() {
-        boolean separateNotification = isSeparateNotificationConfigEnabled();
-        return !separateNotification && !mHelper.isSingleVolume()
-                ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+        return UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
@@ -124,14 +95,10 @@
 
     @Override
     protected boolean hintsMatch(int hints) {
-        boolean notificationSeparated = isSeparateNotificationConfigEnabled();
         return (hints & NotificationListenerService.HINT_HOST_DISABLE_CALL_EFFECTS) != 0
-                || (hints & NotificationListenerService.HINT_HOST_DISABLE_EFFECTS) != 0
-                || ((hints & NotificationListenerService.HINT_HOST_DISABLE_NOTIFICATION_EFFECTS)
-                != 0 && !notificationSeparated);
+                || (hints & NotificationListenerService.HINT_HOST_DISABLE_EFFECTS) != 0;
     }
 
-
     private final class H extends Handler {
         private static final int UPDATE_EFFECTS_SUPPRESSOR = 1;
         private static final int UPDATE_RINGER_MODE = 2;
diff --git a/src/com/android/settings/notification/RingerModeAffectedVolumePreferenceController.java b/src/com/android/settings/notification/RingerModeAffectedVolumePreferenceController.java
index ec619b4..3687770 100644
--- a/src/com/android/settings/notification/RingerModeAffectedVolumePreferenceController.java
+++ b/src/com/android/settings/notification/RingerModeAffectedVolumePreferenceController.java
@@ -21,14 +21,11 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.media.AudioManager;
-import android.os.Binder;
 import android.os.ServiceManager;
 import android.os.Vibrator;
-import android.provider.DeviceConfig;
 import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.config.sysui.SystemUiDeviceConfigFlags;
 
 import java.util.Objects;
 
@@ -48,11 +45,8 @@
     protected Vibrator mVibrator;
     protected int mRingerMode = AudioManager.RINGER_MODE_NORMAL;
     protected ComponentName mSuppressor;
-    protected boolean mSeparateNotification;
     protected INotificationManager mNoMan;
 
-    private static final boolean CONFIG_SEPARATE_NOTIFICATION_DEFAULT_VAL = false;
-
     public RingerModeAffectedVolumePreferenceController(Context context, String key, String tag) {
         super(context, key);
         mTag = tag;
@@ -118,28 +112,6 @@
         return mMuteIcon;
     }
 
-    protected boolean isSeparateNotificationConfigEnabled() {
-        return Binder.withCleanCallingIdentity(()
-                -> DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SYSTEMUI,
-                SystemUiDeviceConfigFlags.VOLUME_SEPARATE_NOTIFICATION,
-                CONFIG_SEPARATE_NOTIFICATION_DEFAULT_VAL));
-    }
-
-    /**
-     * side effect: updates the cached value of the config
-     * @return has the config changed?
-     */
-    protected boolean readSeparateNotificationVolumeConfig() {
-        boolean newVal = isSeparateNotificationConfigEnabled();
-
-        boolean valueUpdated = newVal != mSeparateNotification;
-        if (valueUpdated) {
-            mSeparateNotification = newVal;
-        }
-
-        return valueUpdated;
-    }
-
     /**
      * Updates UI Icon in response to ringer mode changes.
      * @return whether the ringer mode has changed.
diff --git a/src/com/android/settings/notification/SeparateRingVolumePreferenceController.java b/src/com/android/settings/notification/SeparateRingVolumePreferenceController.java
index e23dd38..b8a9908 100644
--- a/src/com/android/settings/notification/SeparateRingVolumePreferenceController.java
+++ b/src/com/android/settings/notification/SeparateRingVolumePreferenceController.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.notification;
 
-import android.app.ActivityThread;
 import android.app.NotificationManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -26,17 +25,13 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
-import android.provider.DeviceConfig;
 import android.service.notification.NotificationListenerService;
 
 import androidx.lifecycle.OnLifecycleEvent;
 
-import com.android.internal.config.sysui.SystemUiDeviceConfigFlags;
 import com.android.settings.R;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
-import java.util.Set;
-
 /**
  * This slider is used to represent ring volume when ring is separated from notification
  */
@@ -60,32 +55,14 @@
         mVibrateIconId = R.drawable.ic_volume_ringer_vibrate;
         mSilentIconId = R.drawable.ic_ring_volume_off;
 
-        mSeparateNotification = isSeparateNotificationConfigEnabled();
         updateRingerMode();
     }
 
-    /**
-     * Show/hide settings
-     */
-    private void onDeviceConfigChange(DeviceConfig.Properties properties) {
-        Set<String> changeSet = properties.getKeyset();
-        if (changeSet.contains(SystemUiDeviceConfigFlags.VOLUME_SEPARATE_NOTIFICATION)) {
-            boolean valueUpdated = readSeparateNotificationVolumeConfig();
-            if (valueUpdated) {
-                updateEffectsSuppressor();
-                selectPreferenceIconState();
-            }
-        }
-    }
-
     @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
     @Override
     public void onResume() {
         super.onResume();
         mReceiver.register(true);
-        readSeparateNotificationVolumeConfig();
-        DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_SYSTEMUI,
-                ActivityThread.currentApplication().getMainExecutor(), this::onDeviceConfigChange);
         updateEffectsSuppressor();
         selectPreferenceIconState();
 
@@ -99,7 +76,6 @@
     public void onPause() {
         super.onPause();
         mReceiver.register(false);
-        DeviceConfig.removeOnPropertiesChangedListener(this::onDeviceConfigChange);
     }
 
     @Override
@@ -109,9 +85,7 @@
 
     @Override
     public int getAvailabilityStatus() {
-        boolean separateNotification = isSeparateNotificationConfigEnabled();
-        return separateNotification && !mHelper.isSingleVolume()
-                ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+        return !mHelper.isSingleVolume() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
@@ -125,8 +99,6 @@
                 || (hints & NotificationListenerService.HINT_HOST_DISABLE_EFFECTS) != 0;
     }
 
-
-
     private final class H extends Handler {
         private static final int UPDATE_EFFECTS_SUPPRESSOR = 1;
         private static final int UPDATE_RINGER_MODE = 2;
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index 1cbfabb..b0d5d2a 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -196,7 +196,6 @@
         ArrayList<VolumeSeekBarPreferenceController> volumeControllers = new ArrayList<>();
         volumeControllers.add(use(AlarmVolumePreferenceController.class));
         volumeControllers.add(use(MediaVolumePreferenceController.class));
-        volumeControllers.add(use(RingVolumePreferenceController.class));
         volumeControllers.add(use(SeparateRingVolumePreferenceController.class));
         volumeControllers.add(use(NotificationVolumePreferenceController.class));
         volumeControllers.add(use(CallVolumePreferenceController.class));