14cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds/*
24cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds * Copyright (C) 2018 The Android Open Source Project
34cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds *
44cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds * Licensed under the Apache License, Version 2.0 (the "License");
54cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds * you may not use this file except in compliance with the License.
64cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds * You may obtain a copy of the License at
74cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds *
84cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds *      http://www.apache.org/licenses/LICENSE-2.0
94cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds *
104cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds * Unless required by applicable law or agreed to in writing, software
114cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds * distributed under the License is distributed on an "AS IS" BASIS,
124cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds * See the License for the specific language governing permissions and
144cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds * limitations under the License.
154cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds */
164cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds
174cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynoldspackage com.android.settings.notification;
184cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds
194cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynoldsimport android.content.Context;
204cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynoldsimport android.os.Bundle;
214cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynoldsimport android.provider.SearchIndexableResource;
224cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds
234cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynoldsimport com.android.internal.logging.nano.MetricsProto.MetricsEvent;
244cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynoldsimport com.android.settings.R;
254cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynoldsimport com.android.settings.search.BaseSearchIndexProvider;
264cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynoldsimport com.android.settings.search.Indexable;
274cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynoldsimport com.android.settingslib.core.AbstractPreferenceController;
284cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynoldsimport com.android.settingslib.core.lifecycle.Lifecycle;
294cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynoldsimport com.android.settingslib.widget.FooterPreference;
304cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds
314cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynoldsimport java.util.ArrayList;
324cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynoldsimport java.util.List;
334cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds
344cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynoldspublic class ZenModeRestrictNotificationsSettings extends ZenModeSettingsBase implements Indexable {
354cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds
364cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    @Override
374cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    public void onCreate(Bundle icicle) {
384cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds        super.onCreate(icicle);
394cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    }
404cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds
414cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    @Override
42f487cb9e0ad36e0bcdc32083b131f916534d970cBeverly    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
43f487cb9e0ad36e0bcdc32083b131f916534d970cBeverly        return buildPreferenceControllers(context, getLifecycle());
444cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    }
454cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds
464cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    @Override
47f487cb9e0ad36e0bcdc32083b131f916534d970cBeverly    public int getHelpResource() {
48f487cb9e0ad36e0bcdc32083b131f916534d970cBeverly        return R.string.help_uri_interruptions;
494cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    }
504cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds
514cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
524cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds            Lifecycle lifecycle) {
534cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds        List<AbstractPreferenceController> controllers = new ArrayList<>();
544cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds        controllers.add(new ZenModeVisEffectsNonePreferenceController(
554cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                context, lifecycle, "zen_mute_notifications"));
564cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds        controllers.add(new ZenModeVisEffectsAllPreferenceController(
574cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                context, lifecycle, "zen_hide_notifications"));
584cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds        controllers.add(new ZenModeVisEffectsCustomPreferenceController(
594cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                context, lifecycle, "zen_custom"));
604cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds        controllers.add(new ZenFooterPreferenceController(context, lifecycle,
614cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                FooterPreference.KEY_FOOTER));
624cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds        return controllers;
634cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    }
644cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds
654cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    @Override
664cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    protected int getPreferenceScreenResId() {
674cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds        return R.xml.zen_mode_restrict_notifications_settings;
684cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    }
694cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds
704cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    @Override
714cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    public int getMetricsCategory() {
724cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds        return MetricsEvent.SETTINGS_ZEN_NOTIFICATIONS;
734cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    }
744cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds
754cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    /**
764cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds     * For Search.
774cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds     */
784cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
794cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds            new BaseSearchIndexProvider() {
804cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                @Override
814cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
824cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                        boolean enabled) {
834cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
844cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds
854cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                    final SearchIndexableResource sir = new SearchIndexableResource(context);
864cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                    sir.xmlResId = R.xml.zen_mode_restrict_notifications_settings;
874cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                    result.add(sir);
884cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                    return result;
894cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                }
904cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds
914cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                @Override
924cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                public List<String> getNonIndexableKeys(Context context) {
934cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                    final List<String> keys = super.getNonIndexableKeys(context);
944cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                    return keys;
954cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                }
964cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds
974cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds            @Override
984cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds            public List<AbstractPreferenceController> createPreferenceControllers(Context context) {
994cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds                return buildPreferenceControllers(context, null);
1004cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds            }
1014cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds        };
1024cf8bfd5b2ffdaf181e69113b93bd019b277430cJulia Reynolds}
103