Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a03a92e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add power management settings into Settings->Battery"

parents 1c750fb7 722fc818
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -6996,6 +6996,9 @@
    <!-- Summary of power usage for an app [CHAR LIMIT=NONE] -->
    <string name="battery_summary"><xliff:g id="percentage" example="2">%1$d</xliff:g>%% use since last full charge</string>
    <!-- Title of a group of settings that let you manage settings that affect battery life [CHAR LIMIT=60] -->
    <string name="battery_power_management">Power management</string>
    <!-- Summary for app with no battery usage [CHAR LIMIT=NONE] -->
    <string name="no_battery_summary">No battery use since last full charge</string>
+34 −12
Original line number Diff line number Diff line
@@ -14,17 +14,39 @@
     limitations under the License.
-->

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
    android:title="@string/power_usage_summary_title"
    settings:keywords="@string/keywords_battery">

    <com.android.settings.fuelgauge.BatteryHistoryPreference
        android:key="battery_history"/>

    <PreferenceCategory
        android:key="power_management"
        android:title="@string/battery_power_management">

        <com.android.settings.fuelgauge.BatterySaverPreference
            android:title="@string/battery_saver"
            android:fragment="com.android.settings.fuelgauge.BatterySaverSettings"/>

        <com.android.settings.fuelgauge.BatteryHistoryPreference
            android:key="battery_history" />
        <!-- Cross-listed item, if you change this, also change it in ia_display_settings.xml -->
        <SwitchPreference
            android:key="auto_brightness"
            android:title="@string/auto_brightness_title"
            android:summary="@string/auto_brightness_summary"
            settings:keywords="@string/keywords_display_auto_brightness"/>

        <!-- Cross-listed item, if you change this, also change it in ia_display_settings.xml -->
        <com.android.settings.TimeoutListPreference
            android:key="screen_timeout"
            android:title="@string/screen_timeout"
            android:summary="@string/screen_timeout_summary"
            android:entries="@array/screen_timeout_entries"
            android:entryValues="@array/screen_timeout_values"/>

    </PreferenceCategory>

    <PreferenceCategory
        android:key="app_list"
+2 −2
Original line number Diff line number Diff line
@@ -32,12 +32,12 @@ import android.view.MenuItem;

import com.android.internal.os.BatteryStatsHelper;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.dashboard.DashboardFragment;

/**
 * Common base class for things that need to show the battery usage graph.
 */
public abstract class PowerUsageBase extends SettingsPreferenceFragment {
public abstract class PowerUsageBase extends DashboardFragment {

    // +1 to allow ordering for PowerUsageSummary.
    @VisibleForTesting
+40 −2
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import android.os.BatteryStats;
import android.os.Bundle;
import android.os.Process;
import android.os.UserHandle;
import android.provider.SearchIndexableResource;
import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceClickListener;
import android.support.v7.preference.PreferenceCategory;
@@ -42,7 +43,6 @@ import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;

import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.os.BatterySipper;
import com.android.internal.os.BatterySipper.DrainType;
@@ -58,13 +58,17 @@ import com.android.settings.applications.AppHeaderController;
import com.android.settings.applications.InstalledAppDetails;
import com.android.settings.applications.LayoutPreference;
import com.android.settings.bluetooth.BluetoothSettings;
import com.android.settings.core.PreferenceController;
import com.android.settings.location.LocationSettings;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.wifi.WifiSettings;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
import java.util.Arrays;
import java.util.List;

public class PowerUsageDetail extends PowerUsageBase implements Button.OnClickListener {

@@ -355,7 +359,6 @@ public class PowerUsageDetail extends PowerUsageBase implements Button.OnClickLi
        mPm = activity.getPackageManager();
        mDpm = (DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE);

        addPreferencesFromResource(R.xml.power_usage_details);
        mDetailsParent = (PreferenceCategory) findPreference(KEY_DETAILS_PARENT);
        mControlsParent = (PreferenceCategory) findPreference(KEY_CONTROLS_PARENT);
        mMessagesParent = (PreferenceCategory) findPreference(KEY_MESSAGES_PARENT);
@@ -384,6 +387,26 @@ public class PowerUsageDetail extends PowerUsageBase implements Button.OnClickLi
        setupHeader();
    }

    @Override
    protected String getCategoryKey() {
        return null;
    }

    @Override
    protected String getLogTag() {
        return TAG;
    }

    @Override
    protected int getPreferenceScreenResId() {
        return R.xml.power_usage_details;
    }

    @Override
    protected List<PreferenceController> getPreferenceControllers(Context context) {
        return null;
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
@@ -810,4 +833,19 @@ public class PowerUsageDetail extends PowerUsageBase implements Button.OnClickLi
            }
        }
    }

    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
            new BaseSearchIndexProvider() {
                @Override
                public List<SearchIndexableResource> getXmlResourcesToIndex(
                        Context context, boolean enabled) {
                    if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
                            .isEnabled()) {
                        return null;
                    }
                    final SearchIndexableResource sir = new SearchIndexableResource(context);
                    sir.xmlResId = R.xml.power_usage_details;
                    return Arrays.asList(sir);
                }
            };
}
+45 −1
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.os.Handler;
import android.os.Message;
import android.os.Process;
import android.os.UserHandle;
import android.provider.SearchIndexableResource;
import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceGroup;
@@ -44,11 +45,17 @@ import com.android.settings.R;
import com.android.settings.Settings.HighPowerApplicationsActivity;
import com.android.settings.SettingsActivity;
import com.android.settings.applications.ManageApplications;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.display.AutoBrightnessPreferenceController;
import com.android.settings.display.TimeoutPreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.BatteryInfo;
import com.android.settingslib.drawer.CategoryKey;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@@ -89,7 +96,6 @@ public class PowerUsageSummary extends PowerUsageBase {
        super.onCreate(icicle);
        setAnimationAllowed(true);

        addPreferencesFromResource(R.xml.power_usage_summary);
        mHistPref = (BatteryHistoryPreference) findPreference(KEY_BATTERY_HISTORY);
        mAppListGroup = (PreferenceGroup) findPreference(KEY_APP_LIST);
    }
@@ -132,6 +138,29 @@ public class PowerUsageSummary extends PowerUsageBase {
        return super.onPreferenceTreeClick(preference);
    }

    @Override
    protected String getCategoryKey() {
        return CategoryKey.CATEGORY_BATTERY;
    }

    @Override
    protected String getLogTag() {
        return TAG;
    }

    @Override
    protected int getPreferenceScreenResId() {
        return R.xml.power_usage_summary;
    }

    @Override
    protected List<PreferenceController> getPreferenceControllers(Context context) {
        final List<PreferenceController> controllers = new ArrayList<>();
        controllers.add(new AutoBrightnessPreferenceController(context));
        controllers.add(new TimeoutPreferenceController(context));
        return controllers;
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        if (DEBUG) {
@@ -531,6 +560,21 @@ public class PowerUsageSummary extends PowerUsageBase {
        }
    }

    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
            new BaseSearchIndexProvider() {
                @Override
                public List<SearchIndexableResource> getXmlResourcesToIndex(
                        Context context, boolean enabled) {
                    if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
                            .isEnabled()) {
                        return null;
                    }
                    final SearchIndexableResource sir = new SearchIndexableResource(context);
                    sir.xmlResId = R.xml.power_usage_summary;
                    return Arrays.asList(sir);
                }
            };

    public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
            = new SummaryLoader.SummaryProviderFactory() {
        @Override
Loading