17e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei/*
27e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei * Copyright (C) 2014 The Android Open Source Project
37e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei *
47e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei * Licensed under the Apache License, Version 2.0 (the "License");
57e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei * you may not use this file except in compliance with the License.
67e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei * You may obtain a copy of the License at
77e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei *
87e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei *      http://www.apache.org/licenses/LICENSE-2.0
97e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei *
107e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei * Unless required by applicable law or agreed to in writing, software
117e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei * distributed under the License is distributed on an "AS IS" BASIS,
127e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei * See the License for the specific language governing permissions and
147e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei * limitations under the License.
157e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei */
167e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei
177e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyuleipackage com.android.settings.fuelgauge.batterysaver;
187e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei
197e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyuleiimport android.content.Context;
207e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyuleiimport android.os.Bundle;
217e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyuleiimport android.provider.SearchIndexableResource;
227e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei
237e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyuleiimport com.android.internal.logging.nano.MetricsProto.MetricsEvent;
247e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyuleiimport com.android.settings.R;
257e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyuleiimport com.android.settings.dashboard.DashboardFragment;
267e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyuleiimport com.android.settings.search.BaseSearchIndexProvider;
277e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyuleiimport com.android.settings.search.Indexable;
287e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyuleiimport com.android.settingslib.core.AbstractPreferenceController;
297e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyuleiimport com.android.settingslib.core.lifecycle.Lifecycle;
307e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei
317e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyuleiimport java.util.ArrayList;
327e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyuleiimport java.util.Arrays;
337e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyuleiimport java.util.List;
347e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei
357e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei/**
367e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei * Battery saver settings page
377e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei */
387e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyuleipublic class BatterySaverSettings extends DashboardFragment {
397e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    private static final String TAG = "BatterySaverSettings";
407e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei
417e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    @Override
427e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    public void onActivityCreated(Bundle savedInstanceState) {
437e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei        super.onActivityCreated(savedInstanceState);
447e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    }
457e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei
467e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    @Override
477e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    public int getMetricsCategory() {
487e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei        return MetricsEvent.FUELGAUGE_BATTERY_SAVER;
497e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    }
507e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei
517e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    @Override
527e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    protected int getPreferenceScreenResId() {
537e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei        return R.xml.battery_saver_settings;
547e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    }
557e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei
567e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    @Override
577e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    protected String getLogTag() {
587e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei        return TAG;
597e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    }
607e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei
617e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    @Override
62f7843adabd4e8e1cc84a52721daabefa3a1410fdFan Zhang    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
637e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei        return buildPreferenceControllers(context, getLifecycle());
647e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    }
657e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei
667e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    @Override
677e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    public int getHelpResource() {
687e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei        return R.string.help_url_battery_saver_settings;
697e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    }
707e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei
717e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    private static List<AbstractPreferenceController> buildPreferenceControllers(
727e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei            Context context, Lifecycle lifecycle) {
737e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei        final List<AbstractPreferenceController> controllers = new ArrayList<>();
747e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei        controllers.add(new AutoBatterySaverPreferenceController(context));
75b77fec0872c58d1293c480fe0ddd7f9a49098c78jackqdyulei        controllers.add(new AutoBatterySeekBarPreferenceController(context, lifecycle));
767e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei        return controllers;
777e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    }
787e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei
797e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    /**
807e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei     * For Search.
817e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei     */
827e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei    public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
837e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei            new BaseSearchIndexProvider() {
847e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei                @Override
857e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei                public List<SearchIndexableResource> getXmlResourcesToIndex(
867e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei                        Context context, boolean enabled) {
877e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei                    final SearchIndexableResource sir = new SearchIndexableResource(context);
887e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei                    sir.xmlResId = R.xml.battery_saver_settings;
897e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei                    return Arrays.asList(sir);
907e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei                }
917e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei
927e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei                @Override
93aed8994f6f50a6bc0adfaa92b499ebde3a8f2a76Fan Zhang                public List<AbstractPreferenceController> createPreferenceControllers(
94aed8994f6f50a6bc0adfaa92b499ebde3a8f2a76Fan Zhang                        Context context) {
957e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei                    return buildPreferenceControllers(context, null);
967e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei                }
977e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei            };
987e999df6d9cb5dc9a815956c30d02cf21b2ac5ecjackqdyulei}
99