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