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

Commit ce57d168 authored by Jason Monk's avatar Jason Monk Committed by Android (Google) Code Review
Browse files

Merge "More updates to battery optimization whitelist" into mnc-dev

parents bb8f6e60 3bdb0d69
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -5860,6 +5860,7 @@
    <string name="keywords_all_apps">apps download applications system</string>
    <string name="keywords_app_permissions">apps permissions security</string>
    <string name="keywords_default_apps">apps default</string>
    <string name="keywords_ignore_optimizations">ignore optimizations doze app standby</string>
    <!-- Search keywords for different screen unlock modes : slide to unlock, password, pattern and PIN [CHAR LIMIT=none] -->
    <string name="keywords_lockscreen">slide password pattern pin</string>

@@ -6564,22 +6565,19 @@
    <!-- Filter for apps allowed to use a lot of power [CHAR LIMIT=25] -->
    <string name="high_power_filter_on">Allowed</string>

    <!-- Filter for apps not allowed to use a lot of power [CHAR LIMIT=25] -->
    <string name="high_power_filter_off">Not allowed</string>

    <!-- Summary of app allowed to use a lot of power [CHAR LIMIT=60] -->
    <string name="high_power_on">Allowed to ignore optimizations</string>
    <string name="high_power_on">Ignoring battery optimizations</string>

    <!-- Summary of app not allowed to use a lot of power [CHAR LIMIT=60] -->
    <string name="high_power_off">Not allowed to ignore optimizations</string>
    <string name="high_power_off">Off</string>

    <!-- Description of high power switch [CHAR LIMIT=NONE] -->
    <string name="high_power_desc">Ignore optimizations including Battery saver, allow instant content refresh etc.</string>
    <string name="high_power_desc">Don\'t apply battery optimizations. May drain your battery more quickly.</string>

    <!-- Description of number of apps with high power turned on [CHAR LIMIT=NONE] -->
    <plurals name="high_power_count">
        <item quantity="one">1 app is allowed to ignore battery optimizations</item>
        <item quantity="other"><xliff:g id="count" example="10">%d</xliff:g> apps are allowed to battery optimizations</item>
        <item quantity="one">1 app allowed to ignore battery optimizations</item>
        <item quantity="other"><xliff:g id="count" example="10">%d</xliff:g> apps allowed to ignore battery optimizations</item>
    </plurals>

    <!-- Summary of power usage for an app [CHAR LIMIT=NONE] -->
+2 −1
Original line number Diff line number Diff line
@@ -43,7 +43,8 @@
    <PreferenceScreen
        android:key="high_power_apps"
        android:title="@string/high_power_apps"
        android:fragment="com.android.settings.applications.ManageApplications">
        android:fragment="com.android.settings.applications.ManageApplications"
        settings:keywords="@string/keywords_ignore_optimizations">
        <extra
            android:name="classname"
            android:value="com.android.settings.Settings$HighPowerApplicationsActivity" />
+13 −8
Original line number Diff line number Diff line
@@ -25,23 +25,28 @@
            android:layout="@layout/two_buttons_panel"
            android:selectable="false" />

        <PreferenceCategory
            android:key="controls_parent"
            android:title="@string/controls_subtitle">

            <Preference
                android:key="high_power"
                android:title="@string/high_power_apps" />

        </PreferenceCategory>

        <PreferenceCategory
            android:key="details_parent"
            android:layout="@layout/tall_preference_category"
            android:title="@string/details_subtitle" />

        <PreferenceCategory
            android:key="controls_parent"
            android:title="@string/controls_subtitle" />

        <PreferenceCategory
            android:key="messages_parent" />
            android:key="messages_parent"
            android:layout="@layout/tall_preference_category" />

        <PreferenceCategory
            android:key="packages_parent"
            android:layout="@layout/tall_preference_category"
            android:title="@string/packages_subtitle" />

</PreferenceScreen>
+15 −18
Original line number Diff line number Diff line
@@ -109,22 +109,22 @@ public class ManageApplications extends InstrumentedFragment

    // Filter options used for displayed list of applications
    // The order which they appear is the order they will show when spinner is present.
    public static final int FILTER_APPS_ALL                     = 0;
    public static final int FILTER_APPS_ENABLED                 = 1;
    public static final int FILTER_APPS_DISABLED                = 2;
    public static final int FILTER_APPS_BLOCKED                 = 3;
    public static final int FILTER_APPS_PRIORITY                = 4;
    public static final int FILTER_APPS_NO_PEEKING              = 5;
    public static final int FILTER_APPS_SENSITIVE               = 6;
    public static final int FILTER_APPS_PERSONAL                = 7;
    public static final int FILTER_APPS_WORK                    = 8;
    public static final int FILTER_APPS_WITH_DOMAIN_URLS        = 9;
    public static final int FILTER_APPS_USAGE_ACCESS            = 10;
    public static final int FILTER_APPS_POWER_WHITELIST         = 11;
    public static final int FILTER_APPS_POWER_NO_WHITELIST      = 12;
    public static final int FILTER_APPS_POWER_WHITELIST         = 0;
    public static final int FILTER_APPS_ALL                     = 1;
    public static final int FILTER_APPS_ENABLED                 = 2;
    public static final int FILTER_APPS_DISABLED                = 3;
    public static final int FILTER_APPS_BLOCKED                 = 4;
    public static final int FILTER_APPS_PRIORITY                = 5;
    public static final int FILTER_APPS_NO_PEEKING              = 6;
    public static final int FILTER_APPS_SENSITIVE               = 7;
    public static final int FILTER_APPS_PERSONAL                = 8;
    public static final int FILTER_APPS_WORK                    = 9;
    public static final int FILTER_APPS_WITH_DOMAIN_URLS        = 10;
    public static final int FILTER_APPS_USAGE_ACCESS            = 11;

    // This is the string labels for the filter modes above, the order must be kept in sync.
    public static final int[] FILTER_LABELS = new int[] {
        R.string.high_power_filter_on,        // High power whitelist, on
        R.string.filter_all_apps,      // All apps
        R.string.filter_enabled_apps,  // Enabled
        R.string.filter_apps_disabled, // Disabled
@@ -136,12 +136,11 @@ public class ManageApplications extends InstrumentedFragment
        R.string.filter_work_apps,     // Work
        R.string.filter_with_domain_urls_apps,     // Domain URLs
        R.string.filter_all_apps,      // Usage access screen, never displayed
        R.string.high_power_filter_on,        // High power whitelist, on
        R.string.high_power_filter_off,       // High power whitelist, off
    };
    // This is the actual mapping to filters from FILTER_ constants above, the order must
    // be kept in sync.
    public static final AppFilter[] FILTERS = new AppFilter[] {
        AppStatePowerBridge.FILTER_POWER_WHITELISTED,     // High power whitelist, on
        ApplicationsState.FILTER_EVERYTHING,  // All apps
        ApplicationsState.FILTER_ALL_ENABLED, // Enabled
        ApplicationsState.FILTER_DISABLED,    // Disabled
@@ -153,8 +152,6 @@ public class ManageApplications extends InstrumentedFragment
        ApplicationsState.FILTER_WORK,        // Work
        ApplicationsState.FILTER_WITH_DOMAIN_URLS,   // Apps with Domain URLs
        AppStateUsageBridge.FILTER_APP_USAGE, // Apps with Domain URLs
        AppStatePowerBridge.FILTER_POWER_WHITELISTED,     // High power whitelist, on
        AppStatePowerBridge.FILTER_POWER_NOT_WHITELISTED, // High power whitelist, off
    };

    // sort order
@@ -321,7 +318,7 @@ public class ManageApplications extends InstrumentedFragment
            mFilterAdapter.enableFilter(FILTER_APPS_NO_PEEKING);
        }
        if (mListType == LIST_TYPE_HIGH_POWER) {
            mFilterAdapter.enableFilter(FILTER_APPS_POWER_NO_WHITELIST);
            mFilterAdapter.enableFilter(FILTER_APPS_ALL);
        }
        if (mListType == LIST_TYPE_STORAGE) {
            mApplications.setOverrideFilter(new VolumeFilter(mVolumeUuid));
+9 −7
Original line number Diff line number Diff line
@@ -358,6 +358,8 @@ public class PowerUsageDetail extends PowerUsageBase implements Button.OnClickLi
        if (mHighPower != null) {
            mHighPower.setSummary(HighPowerDetail.getSummary(getActivity(), mApp.packageName));
        }

        setupHeader();
    }

    private void createDetails() {
@@ -370,8 +372,6 @@ public class PowerUsageDetail extends PowerUsageBase implements Button.OnClickLi
        mNoCoverage = args.getDouble(EXTRA_NO_COVERAGE, 0);
        mShowLocationButton = args.getBoolean(EXTRA_SHOW_LOCATION_BUTTON);

        setupHeader();

        mTypes = args.getIntArray(EXTRA_DETAIL_TYPES);
        mValues = args.getDoubleArray(EXTRA_DETAIL_VALUES);

@@ -445,14 +445,14 @@ public class PowerUsageDetail extends PowerUsageBase implements Button.OnClickLi
    private void setupHeader() {
        final Bundle args = getArguments();
        String title = args.getString(EXTRA_TITLE);
        String iconPackage = args.getString(EXTRA_ICON_PACKAGE);
        String pkg = args.getString(EXTRA_ICON_PACKAGE);
        int iconId = args.getInt(EXTRA_ICON_ID, 0);
        Drawable appIcon = null;

        if (!TextUtils.isEmpty(iconPackage)) {
        if (!TextUtils.isEmpty(pkg)) {
            try {
                final PackageManager pm = getActivity().getPackageManager();
                ApplicationInfo ai = pm.getPackageInfo(iconPackage, 0).applicationInfo;
                ApplicationInfo ai = pm.getPackageInfo(pkg, 0).applicationInfo;
                if (ai != null) {
                    appIcon = ai.loadIcon(pm);
                }
@@ -466,8 +466,11 @@ public class PowerUsageDetail extends PowerUsageBase implements Button.OnClickLi
            appIcon = getActivity().getPackageManager().getDefaultActivityIcon();
        }

        if (pkg == null && mPackages != null) {
            pkg = mPackages[0];
        }
        AppHeader.createAppHeader(this, appIcon, title,
                AppInfoWithHeader.getInfoIntent(this, iconPackage),
                pkg != null ? AppInfoWithHeader.getInfoIntent(this, pkg) : null,
                mDrainType != DrainType.APP ? android.R.color.white : 0);
    }

@@ -629,7 +632,6 @@ public class PowerUsageDetail extends PowerUsageBase implements Button.OnClickLi
    private void addControl(int pageSummary, int actionTitle, final int action) {
        Preference pref = new Preference(getActivity());
        pref.setTitle(actionTitle);
        pref.setSummary(pageSummary);
        pref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
            @Override
            public boolean onPreferenceClick(Preference preference) {