diff --git a/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceController.java b/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceController.java index b4657a37a5b..0096be55287 100644 --- a/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceController.java +++ b/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceController.java @@ -16,6 +16,7 @@ package com.android.settings.notification.modes; +import android.app.Flags; import android.app.NotificationManager; import android.content.ComponentName; import android.content.Context; @@ -33,8 +34,8 @@ import androidx.annotation.WorkerThread; import androidx.preference.Preference; import com.android.settings.R; +import com.android.settings.core.BasePreferenceController; import com.android.settingslib.Utils; -import com.android.settingslib.core.AbstractPreferenceController; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -49,8 +50,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.function.Function; -class ZenModesListAddModePreferenceController extends AbstractPreferenceController { - +class ZenModesListAddModePreferenceController extends BasePreferenceController { private final ZenServiceListing mServiceListing; private final OnAddModeListener mOnAddModeListener; @@ -68,8 +68,9 @@ class ZenModesListAddModePreferenceController extends AbstractPreferenceControll void onAvailableModeTypesForAdd(List types); } - ZenModesListAddModePreferenceController(Context context, OnAddModeListener onAddModeListener) { - this(context, onAddModeListener, new ZenServiceListing(context), + ZenModesListAddModePreferenceController(Context context, String key, + OnAddModeListener onAddModeListener) { + this(context, key, onAddModeListener, new ZenServiceListing(context), new ConfigurationActivityHelper(context.getPackageManager()), context.getSystemService(NotificationManager.class), context.getPackageManager(), applicationInfo -> Utils.getBadgedIcon(context, applicationInfo), @@ -77,13 +78,13 @@ class ZenModesListAddModePreferenceController extends AbstractPreferenceControll } @VisibleForTesting - ZenModesListAddModePreferenceController(Context context, + ZenModesListAddModePreferenceController(Context context, String key, OnAddModeListener onAddModeListener, ZenServiceListing serviceListing, ConfigurationActivityHelper configurationActivityHelper, NotificationManager notificationManager, PackageManager packageManager, Function appIconRetriever, ExecutorService backgroundExecutor, Executor uiThreadExecutor) { - super(context); + super(context, key); mOnAddModeListener = onAddModeListener; mServiceListing = serviceListing; mConfigurationActivityHelper = configurationActivityHelper; @@ -95,13 +96,8 @@ class ZenModesListAddModePreferenceController extends AbstractPreferenceControll } @Override - public boolean isAvailable() { - return true; - } - - @Override - public String getPreferenceKey() { - return "add_mode"; + public int getAvailabilityStatus() { + return Flags.modesUi() ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } @Override diff --git a/src/com/android/settings/notification/modes/ZenModesListFragment.java b/src/com/android/settings/notification/modes/ZenModesListFragment.java index 89cb662fc78..00f652dd568 100644 --- a/src/com/android/settings/notification/modes/ZenModesListFragment.java +++ b/src/com/android/settings/notification/modes/ZenModesListFragment.java @@ -58,7 +58,7 @@ public class ZenModesListFragment extends ZenModesFragmentBase { ZenModesBackend backend, OnAddModeListener onAddModeListener) { return ImmutableList.of( new ZenModesListPreferenceController(context, backend, ZenIconLoader.getInstance()), - new ZenModesListAddModePreferenceController(context, onAddModeListener) + new ZenModesListAddModePreferenceController(context, "add_mode", onAddModeListener) ); } diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceControllerTest.java index 2db917111d6..6c172b3a2fc 100644 --- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceControllerTest.java @@ -85,7 +85,7 @@ public class ZenModesListAddModePreferenceControllerTest { mContext = RuntimeEnvironment.getApplication(); Function appIconRetriever = appInfo -> new ColorDrawable(); - mController = new ZenModesListAddModePreferenceController(mContext, mListener, + mController = new ZenModesListAddModePreferenceController(mContext, "add_mode", mListener, mZenServiceListing, mConfigurationActivityHelper, mNm, mPm, appIconRetriever, MoreExecutors.newDirectExecutorService(), MoreExecutors.directExecutor());