Create a new link preference for priority modes entry

Test: ZenModesSummaryHelperTest
Test: manual. Successfully search for both 'event' and 'priority'
Flag: android.app.modes_ui
Bug: 341726633
Change-Id: Ib7bd1a5c2f7b06b1728a66f7a9cef53cd45acc0b
This commit is contained in:
Julia Reynolds
2024-07-03 16:19:18 -04:00
parent bb10c9f4df
commit 4fd34aa386
6 changed files with 269 additions and 15 deletions

View File

@@ -28,9 +28,7 @@ import android.provider.Settings;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.notification.modes.ZenModesListFragment;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume;
@@ -51,7 +49,6 @@ public class ZenModePreferenceController extends BasePreferenceController
super.displayPreference(screen);
Preference preference = screen.findPreference(getPreferenceKey());
mSettingObserver = new SettingObserver(preference);
maybeSetTitleAndDestination(preference);
}
@Override
@@ -70,28 +67,17 @@ public class ZenModePreferenceController extends BasePreferenceController
@Override
public int getAvailabilityStatus() {
return AVAILABLE_UNSEARCHABLE;
return Flags.modesUi() ? UNSUPPORTED_ON_DEVICE : AVAILABLE_UNSEARCHABLE;
}
@Override
public void updateState(Preference preference) {
super.updateState(preference);
maybeSetTitleAndDestination(preference);
if (preference.isEnabled()) {
preference.setSummary(mSummaryBuilder.getSoundSummary());
}
}
// Only when modes_ui is active: change title & target fragment.
private void maybeSetTitleAndDestination(Preference preference) {
if (!Flags.modesUi()) {
return;
}
preference.setTitle(R.string.zen_modes_list_title);
preference.setFragment(ZenModesListFragment.class.getCanonicalName());
}
class SettingObserver extends ContentObserver {
private final Uri ZEN_MODE_URI = Settings.Global.getUriFor(Settings.Global.ZEN_MODE);
private final Uri ZEN_MODE_CONFIG_ETAG_URI = Settings.Global.getUriFor(