Add search index provider for ConfigureNotificationSettings
Change-Id: I1da8e318a8823ffe54b2edd7a83a8c7e31ee34e6 Fix: 37593839 Test: make RunSettingsRoboTests
This commit is contained in:
@@ -17,21 +17,24 @@
|
|||||||
package com.android.settings.notification;
|
package com.android.settings.notification;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.provider.SearchIndexableResource;
|
||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.PreferenceController;
|
import com.android.settings.core.PreferenceController;
|
||||||
|
import com.android.settings.core.lifecycle.Lifecycle;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.gestures.SwipeToNotificationPreferenceController;
|
import com.android.settings.gestures.SwipeToNotificationPreferenceController;
|
||||||
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
|
import com.android.settings.search.Indexable;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ConfigureNotificationSettings extends DashboardFragment {
|
public class ConfigureNotificationSettings extends DashboardFragment {
|
||||||
private static final String TAG = "ConfigNotiSettings";
|
private static final String TAG = "ConfigNotiSettings";
|
||||||
|
|
||||||
private LockScreenNotificationPreferenceController mLockScreenNotificationController;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
return MetricsEvent.CONFIGURE_NOTIFICATION;
|
return MetricsEvent.CONFIGURE_NOTIFICATION;
|
||||||
@@ -49,15 +52,42 @@ public class ConfigureNotificationSettings extends DashboardFragment {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected List<PreferenceController> getPreferenceControllers(Context context) {
|
protected List<PreferenceController> getPreferenceControllers(Context context) {
|
||||||
|
return buildPreferenceControllers(context, getLifecycle());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<PreferenceController> buildPreferenceControllers(Context context,
|
||||||
|
Lifecycle lifecycle) {
|
||||||
final List<PreferenceController> controllers = new ArrayList<>();
|
final List<PreferenceController> controllers = new ArrayList<>();
|
||||||
final PulseNotificationPreferenceController pulseController =
|
final PulseNotificationPreferenceController pulseController =
|
||||||
new PulseNotificationPreferenceController(context);
|
new PulseNotificationPreferenceController(context);
|
||||||
mLockScreenNotificationController = new LockScreenNotificationPreferenceController(context);
|
final LockScreenNotificationPreferenceController lockScreenNotificationController =
|
||||||
getLifecycle().addObserver(pulseController);
|
new LockScreenNotificationPreferenceController(context);
|
||||||
getLifecycle().addObserver(mLockScreenNotificationController);
|
if (lifecycle != null) {
|
||||||
controllers.add(new SwipeToNotificationPreferenceController(context, getLifecycle()));
|
lifecycle.addObserver(pulseController);
|
||||||
|
lifecycle.addObserver(lockScreenNotificationController);
|
||||||
|
}
|
||||||
|
controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle));
|
||||||
controllers.add(pulseController);
|
controllers.add(pulseController);
|
||||||
controllers.add(mLockScreenNotificationController);
|
controllers.add(lockScreenNotificationController);
|
||||||
return controllers;
|
return controllers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For Search.
|
||||||
|
*/
|
||||||
|
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
||||||
|
new BaseSearchIndexProvider() {
|
||||||
|
@Override
|
||||||
|
public List<SearchIndexableResource> getXmlResourcesToIndex(
|
||||||
|
Context context, boolean enabled) {
|
||||||
|
final SearchIndexableResource sir = new SearchIndexableResource(context);
|
||||||
|
sir.xmlResId = R.xml.configure_notification_settings;
|
||||||
|
return Arrays.asList(sir);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<PreferenceController> getPreferenceControllers(Context context) {
|
||||||
|
return buildPreferenceControllers(context, null);
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@@ -19,6 +19,7 @@ package com.android.settings.search;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.XmlResourceParser;
|
import android.content.res.XmlResourceParser;
|
||||||
import android.provider.SearchIndexableResource;
|
import android.provider.SearchIndexableResource;
|
||||||
|
import android.support.annotation.CallSuper;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -57,6 +58,7 @@ public class BaseSearchIndexProvider implements Indexable.SearchIndexProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@CallSuper
|
||||||
public List<String> getNonIndexableKeys(Context context) {
|
public List<String> getNonIndexableKeys(Context context) {
|
||||||
if (!isPageSearchEnabled(context)) {
|
if (!isPageSearchEnabled(context)) {
|
||||||
// Entire page should be suppressed, mark all keys from this page as non-indexable.
|
// Entire page should be suppressed, mark all keys from this page as non-indexable.
|
||||||
|
@@ -1,7 +1,5 @@
|
|||||||
com.android.settings.notification.ConfigureNotificationSettings
|
|
||||||
com.android.settings.language.LanguageAndRegionSettings
|
com.android.settings.language.LanguageAndRegionSettings
|
||||||
com.android.settings.notification.ZenModePrioritySettings
|
com.android.settings.notification.ZenModePrioritySettings
|
||||||
com.android.settings.inputmethod.InputAndGestureSettings
|
|
||||||
com.android.settings.accounts.AccountDetailDashboardFragment
|
com.android.settings.accounts.AccountDetailDashboardFragment
|
||||||
com.android.settings.fuelgauge.PowerUsageDetail
|
com.android.settings.fuelgauge.PowerUsageDetail
|
||||||
com.android.settings.fuelgauge.AdvancedPowerUsageDetail
|
com.android.settings.fuelgauge.AdvancedPowerUsageDetail
|
||||||
|
Reference in New Issue
Block a user