Get rid of VolumeSeekBarPreferenceController.setCallback

Set the callback to VolumeSeekBarPreference directly and simplify
SoundSettings.

Bug: 386162594
Flag: EXEMPT refactor
Test: atest&manual
Change-Id: Ic114c15c236da9f3ea3754408adbfa9c841befd0
This commit is contained in:
Jacky Wang
2025-01-24 14:39:57 +08:00
parent 2117499c9e
commit a7fa6efe8f
3 changed files with 19 additions and 40 deletions

View File

@@ -46,6 +46,7 @@ import com.android.settings.widget.UpdatableListPreferenceDialogFragment;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.Instrumentable;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.preference.UtilsKt;
import com.android.settingslib.search.SearchIndexable;
import java.util.ArrayList;
@@ -113,14 +114,12 @@ public class SoundSettings extends DashboardFragment implements OnActivityResult
if (phoneRingTonePreference != null && openPhoneRingtonePicker) {
onPreferenceTreeClick(phoneRingTonePreference);
}
if (isCatalystEnabled()) {
for (String key : getPreferenceKeysInHierarchy()) {
Preference preference = findPreference(key);
if (preference instanceof VolumeSeekBarPreference) {
((VolumeSeekBarPreference) preference).setCallback(mVolumeCallback);
}
UtilsKt.forEachRecursively(getPreferenceScreen(), preference -> {
if (preference instanceof VolumeSeekBarPreference) {
((VolumeSeekBarPreference) preference).setCallback(mVolumeCallback);
}
}
return null;
});
}
@Override
@@ -203,22 +202,11 @@ public class SoundSettings extends DashboardFragment implements OnActivityResult
@Override
public void onAttach(Context context) {
super.onAttach(context);
ArrayList<VolumeSeekBarPreferenceController> volumeControllers = new ArrayList<>();
volumeControllers.add(use(AlarmVolumePreferenceController.class));
volumeControllers.add(use(MediaVolumePreferenceController.class));
volumeControllers.add(use(SeparateRingVolumePreferenceController.class));
volumeControllers.add(use(NotificationVolumePreferenceController.class));
volumeControllers.add(use(CallVolumePreferenceController.class));
use(HandsFreeProfileOutputPreferenceController.class).setCallback(listPreference ->
onPreferenceDataChanged(listPreference));
mHfpOutputControllerKey =
use(HandsFreeProfileOutputPreferenceController.class).getPreferenceKey();
for (VolumeSeekBarPreferenceController controller : volumeControllers) {
controller.setCallback(mVolumeCallback);
getSettingsLifecycle().addObserver(controller);
}
}
// === Volumes ===

View File

@@ -24,7 +24,6 @@ import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.notification.VolumeSeekBarPreference.Callback;
import com.android.settingslib.core.lifecycle.Lifecycle;
/**
@@ -34,7 +33,6 @@ public abstract class VolumeSeekBarPreferenceController extends
AdjustVolumeRestrictedPreferenceController implements LifecycleObserver {
protected VolumeSeekBarPreference mPreference;
protected VolumeSeekBarPreference.Callback mVolumePreferenceCallback;
protected AudioHelper mHelper;
protected VolumeSeekBarPreference.Listener mVolumePreferenceListener;
@@ -48,10 +46,6 @@ public abstract class VolumeSeekBarPreferenceController extends
mHelper = helper;
}
public void setCallback(Callback callback) {
mVolumePreferenceCallback = callback;
}
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
@@ -62,7 +56,6 @@ public abstract class VolumeSeekBarPreferenceController extends
protected void setupVolPreference(PreferenceScreen screen) {
mPreference = screen.findPreference(getPreferenceKey());
mPreference.setCallback(mVolumePreferenceCallback);
mPreference.setListener(mVolumePreferenceListener);
mPreference.setStream(getAudioStream());
mPreference.setMuteIcon(getMuteIcon());