Merge changes from topic "battery_usage_list"
* changes: Align strings and UX across the different pages. Move restricted apps page to new battery optimization page.
This commit is contained in:
committed by
Android (Google) Code Review
commit
2c1decd7a0
@@ -636,4 +636,7 @@
|
|||||||
<item>@string/config_settingsintelligence_package_name</item>
|
<item>@string/config_settingsintelligence_package_name</item>
|
||||||
<item>android.uid.system:1000</item>
|
<item>android.uid.system:1000</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
<!-- Whether to enable the app battery usage list page feature. -->
|
||||||
|
<bool name="config_app_battery_usage_list_enabled">false</bool>
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -6097,7 +6097,7 @@
|
|||||||
<string name="advanced_battery_preference_summary">View usage from last full charge</string>
|
<string name="advanced_battery_preference_summary">View usage from last full charge</string>
|
||||||
|
|
||||||
<!-- Activity title for battery usage details for an app. or power consumer -->
|
<!-- Activity title for battery usage details for an app. or power consumer -->
|
||||||
<string name="battery_details_title">Battery usage</string>
|
<string name="battery_details_title">App battery usage</string>
|
||||||
<!-- Subtitle for application/subsystem details -->
|
<!-- Subtitle for application/subsystem details -->
|
||||||
<string name="details_subtitle">Use details</string>
|
<string name="details_subtitle">Use details</string>
|
||||||
<!-- Subtitle for possible options -->
|
<!-- Subtitle for possible options -->
|
||||||
@@ -6292,8 +6292,6 @@
|
|||||||
<string name="battery_footer_summary">Battery usage data is approximate and can change based on usage.</string>
|
<string name="battery_footer_summary">Battery usage data is approximate and can change based on usage.</string>
|
||||||
<!-- Title for battery usage amount by this app. [CHAR LIMIT=80] -->
|
<!-- Title for battery usage amount by this app. [CHAR LIMIT=80] -->
|
||||||
<string name="battery_detail_power_usage">Battery usage</string>
|
<string name="battery_detail_power_usage">Battery usage</string>
|
||||||
<!-- Title for the battery management group [CHAR LIMIT=40] -->
|
|
||||||
<string name ="battery_detail_manage_title">Manage battery usage</string>
|
|
||||||
|
|
||||||
<!-- Description for battery total and background usage time for an app, i.e. 1 hr 15 min total • 39 min background from last full charge. Note: ^1 and ^2 should be used in all translations [CHAR LIMIT=120] -->
|
<!-- Description for battery total and background usage time for an app, i.e. 1 hr 15 min total • 39 min background from last full charge. Note: ^1 and ^2 should be used in all translations [CHAR LIMIT=120] -->
|
||||||
<string name="battery_total_and_bg_usage"><xliff:g id="time" example="1 hr 15 min">^1</xliff:g> total • <xliff:g id="time" example="39 min">^2</xliff:g> background\nfrom last full charge</string>
|
<string name="battery_total_and_bg_usage"><xliff:g id="time" example="1 hr 15 min">^1</xliff:g> total • <xliff:g id="time" example="39 min">^2</xliff:g> background\nfrom last full charge</string>
|
||||||
@@ -11268,11 +11266,11 @@
|
|||||||
<!-- [CHAR_LIMIT=NONE] Label for when app is ignoring battery optimizations -->
|
<!-- [CHAR_LIMIT=NONE] Label for when app is ignoring battery optimizations -->
|
||||||
<string name="not_battery_optimizing">Not using battery optimization</string>
|
<string name="not_battery_optimizing">Not using battery optimization</string>
|
||||||
|
|
||||||
<!-- Preference title for battery optimization list page[CHAR_LIMIT=50]-->
|
<!-- Preference title for battery usage list page[CHAR_LIMIT=50]-->
|
||||||
<string name="app_battery_optimization_title">Manage battery usage</string>
|
<string name="app_battery_usage_title">App battery usage</string>
|
||||||
|
|
||||||
<!-- Preference summary for battery optimization list page[CHAR_LIMIT=50]-->
|
<!-- Preference summary for battery usage list page[CHAR_LIMIT=50]-->
|
||||||
<string name="app_battery_optimization_summary">Set battery usage for apps</string>
|
<string name="app_battery_usage_summary">Set battery usage for apps</string>
|
||||||
|
|
||||||
<!-- Filter title for battery unrestricted[CHAR_LIMIT=50]-->
|
<!-- Filter title for battery unrestricted[CHAR_LIMIT=50]-->
|
||||||
<string name="filter_battery_unrestricted_title">Unrestricted</string>
|
<string name="filter_battery_unrestricted_title">Unrestricted</string>
|
||||||
|
@@ -85,7 +85,7 @@
|
|||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="battery"
|
android:key="battery"
|
||||||
android:title="@string/power_usage_summary_title"
|
android:title="@string/app_battery_usage_title"
|
||||||
android:summary="@string/summary_placeholder" />
|
android:summary="@string/summary_placeholder" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
|
@@ -76,6 +76,18 @@
|
|||||||
<intent android:action="android.intent.action.MANAGE_UNUSED_APPS"/>
|
<intent android:action="android.intent.action.MANAGE_UNUSED_APPS"/>
|
||||||
</Preference>
|
</Preference>
|
||||||
|
|
||||||
|
<Preference
|
||||||
|
android:key="app_battery_usage"
|
||||||
|
android:order="17"
|
||||||
|
android:title="@string/app_battery_usage_title"
|
||||||
|
android:summary="@string/app_battery_usage_summary"
|
||||||
|
settings:controller="com.android.settings.applications.AppBatteryUsagePreferenceController"
|
||||||
|
android:fragment="com.android.settings.applications.manageapplications.ManageApplications">
|
||||||
|
<extra
|
||||||
|
android:name="classname"
|
||||||
|
android:value="com.android.settings.Settings$AppBatteryUsageActivity"/>
|
||||||
|
</Preference>
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="special_access"
|
android:key="special_access"
|
||||||
android:fragment="com.android.settings.applications.specialaccess.SpecialAccessSettings"
|
android:fragment="com.android.settings.applications.specialaccess.SpecialAccessSettings"
|
||||||
|
@@ -27,28 +27,23 @@
|
|||||||
<com.android.settingslib.widget.ActionButtonsPreference
|
<com.android.settingslib.widget.ActionButtonsPreference
|
||||||
android:key="action_buttons"/>
|
android:key="action_buttons"/>
|
||||||
|
|
||||||
<PreferenceCategory
|
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
||||||
android:title="@string/battery_detail_manage_title">
|
android:key="unrestricted_pref"
|
||||||
|
android:summary="@string/manager_battery_usage_unrestricted_summary"
|
||||||
|
android:title="@string/manager_battery_usage_unrestricted_title"
|
||||||
|
settings:controller="com.android.settings.fuelgauge.UnrestrictedPreferenceController"/>
|
||||||
|
|
||||||
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
||||||
android:key="unrestricted_pref"
|
android:key="optimized_pref"
|
||||||
android:summary="@string/manager_battery_usage_unrestricted_summary"
|
android:summary="@string/manager_battery_usage_optimized_summary"
|
||||||
android:title="@string/manager_battery_usage_unrestricted_title"
|
android:title="@string/manager_battery_usage_optimized_title"
|
||||||
settings:controller="com.android.settings.fuelgauge.UnrestrictedPreferenceController"/>
|
settings:controller="com.android.settings.fuelgauge.OptimizedPreferenceController"/>
|
||||||
|
|
||||||
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
||||||
android:key="optimized_pref"
|
android:key="restricted_pref"
|
||||||
android:summary="@string/manager_battery_usage_optimized_summary"
|
android:summary="@string/manager_battery_usage_restricted_summary"
|
||||||
android:title="@string/manager_battery_usage_optimized_title"
|
android:title="@string/manager_battery_usage_restricted_title"
|
||||||
settings:controller="com.android.settings.fuelgauge.OptimizedPreferenceController"/>
|
settings:controller="com.android.settings.fuelgauge.RestrictedPreferenceController"/>
|
||||||
|
|
||||||
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
|
||||||
android:key="restricted_pref"
|
|
||||||
android:summary="@string/manager_battery_usage_restricted_summary"
|
|
||||||
android:title="@string/manager_battery_usage_restricted_title"
|
|
||||||
settings:controller="com.android.settings.fuelgauge.RestrictedPreferenceController"/>
|
|
||||||
|
|
||||||
</PreferenceCategory>
|
|
||||||
|
|
||||||
<com.android.settingslib.widget.FooterPreference
|
<com.android.settingslib.widget.FooterPreference
|
||||||
android:key="app_usage_footer_preference"
|
android:key="app_usage_footer_preference"
|
||||||
|
@@ -326,8 +326,8 @@ public class Settings extends SettingsActivity {
|
|||||||
public static class ChangeWifiStateActivity extends SettingsActivity { /* empty */ }
|
public static class ChangeWifiStateActivity extends SettingsActivity { /* empty */ }
|
||||||
public static class AppDrawOverlaySettingsActivity extends SettingsActivity { /* empty */ }
|
public static class AppDrawOverlaySettingsActivity extends SettingsActivity { /* empty */ }
|
||||||
public static class AppWriteSettingsActivity extends SettingsActivity { /* empty */ }
|
public static class AppWriteSettingsActivity extends SettingsActivity { /* empty */ }
|
||||||
/** Activity to manage app battery optimization details. */
|
/** Activity to manage app battery usage details. */
|
||||||
public static class AppBatteryOptimizationActivity extends SettingsActivity { /* empty */ }
|
public static class AppBatteryUsageActivity extends SettingsActivity { /* empty */ }
|
||||||
|
|
||||||
public static class ManageExternalSourcesActivity extends SettingsActivity {/* empty */ }
|
public static class ManageExternalSourcesActivity extends SettingsActivity {/* empty */ }
|
||||||
public static class ManageAppExternalSourcesActivity extends SettingsActivity { /* empty */ }
|
public static class ManageAppExternalSourcesActivity extends SettingsActivity { /* empty */ }
|
||||||
|
@@ -0,0 +1,55 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.settings.applications;
|
||||||
|
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.permission.PermissionControllerManager;
|
||||||
|
import android.provider.DeviceConfig;
|
||||||
|
|
||||||
|
import androidx.lifecycle.Lifecycle;
|
||||||
|
import androidx.lifecycle.LifecycleObserver;
|
||||||
|
import androidx.lifecycle.OnLifecycleEvent;
|
||||||
|
import androidx.preference.Preference;
|
||||||
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.core.BasePreferenceController;
|
||||||
|
|
||||||
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
|
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Preference controller for handling the app battery usage list preference.
|
||||||
|
*/
|
||||||
|
public final class AppBatteryUsagePreferenceController extends BasePreferenceController
|
||||||
|
implements LifecycleObserver {
|
||||||
|
private static final String TAG = "AppBatteryUsagePreferenceController";
|
||||||
|
private boolean mEnableAppBatteryUsagePage;
|
||||||
|
|
||||||
|
public AppBatteryUsagePreferenceController(Context context, String preferenceKey) {
|
||||||
|
super(context, preferenceKey);
|
||||||
|
mEnableAppBatteryUsagePage =
|
||||||
|
mContext.getResources().getBoolean(R.bool.config_app_battery_usage_list_enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getAvailabilityStatus() {
|
||||||
|
return mEnableAppBatteryUsagePage ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
|
||||||
|
}
|
||||||
|
}
|
@@ -31,10 +31,10 @@ import java.lang.annotation.Retention;
|
|||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class for bridging the Battery optimization information to ApplicationState.
|
* Class for bridging the app battery usage information to ApplicationState.
|
||||||
*/
|
*/
|
||||||
public class AppStateBatteryOptimizationBridge extends AppStateBaseBridge {
|
public class AppStateAppBatteryUsageBridge extends AppStateBaseBridge {
|
||||||
private static final String TAG = AppStateBatteryOptimizationBridge.class.getSimpleName();
|
private static final String TAG = AppStateAppBatteryUsageBridge.class.getSimpleName();
|
||||||
static final boolean DEBUG = Build.IS_DEBUGGABLE;
|
static final boolean DEBUG = Build.IS_DEBUGGABLE;
|
||||||
|
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
@@ -58,7 +58,7 @@ public class AppStateBatteryOptimizationBridge extends AppStateBaseBridge {
|
|||||||
@interface OptimizationMode {
|
@interface OptimizationMode {
|
||||||
}
|
}
|
||||||
|
|
||||||
public AppStateBatteryOptimizationBridge(
|
public AppStateAppBatteryUsageBridge(
|
||||||
Context context, ApplicationsState appState, Callback callback) {
|
Context context, ApplicationsState appState, Callback callback) {
|
||||||
super(appState, callback);
|
super(appState, callback);
|
||||||
mContext = context;
|
mContext = context;
|
||||||
@@ -68,7 +68,7 @@ public class AppStateBatteryOptimizationBridge extends AppStateBaseBridge {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void updateExtraInfo(AppEntry app, String pkg, int uid) {
|
protected void updateExtraInfo(AppEntry app, String pkg, int uid) {
|
||||||
app.extraInfo = getAppBatteryOptimizationState(pkg, uid);
|
app.extraInfo = getAppBatteryUsageState(pkg, uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -83,7 +83,7 @@ public class AppStateBatteryOptimizationBridge extends AppStateBaseBridge {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Object getAppBatteryOptimizationState(String pkg, int uid) {
|
protected Object getAppBatteryUsageState(String pkg, int uid) {
|
||||||
// Restricted = AppOpsManager.MODE_IGNORED + !allowListed
|
// Restricted = AppOpsManager.MODE_IGNORED + !allowListed
|
||||||
// Unrestricted = AppOpsManager.MODE_ALLOWED + allowListed
|
// Unrestricted = AppOpsManager.MODE_ALLOWED + allowListed
|
||||||
// Optimized = AppOpsManager.MODE_ALLOWED + !allowListed
|
// Optimized = AppOpsManager.MODE_ALLOWED + !allowListed
|
||||||
@@ -107,17 +107,17 @@ public class AppStateBatteryOptimizationBridge extends AppStateBaseBridge {
|
|||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "Pkg: " + pkg + ", mode: " + modeName);
|
Log.d(TAG, "Pkg: " + pkg + ", mode: " + modeName);
|
||||||
}
|
}
|
||||||
return new BatteryOptimizationDetails(mode);
|
return new AppBatteryUsageDetails(mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptimizationMode
|
@OptimizationMode
|
||||||
private static int getBatteryOptimizationDetailsMode(AppEntry entry) {
|
private static int getAppBatteryUsageDetailsMode(AppEntry entry) {
|
||||||
if (entry == null || entry.extraInfo == null) {
|
if (entry == null || entry.extraInfo == null) {
|
||||||
return MODE_UNKNOWN;
|
return MODE_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
return entry.extraInfo instanceof BatteryOptimizationDetails
|
return entry.extraInfo instanceof AppBatteryUsageDetails
|
||||||
? ((BatteryOptimizationDetails) entry.extraInfo).mMode
|
? ((AppBatteryUsageDetails) entry.extraInfo).mMode
|
||||||
: MODE_UNKNOWN;
|
: MODE_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@ public class AppStateBatteryOptimizationBridge extends AppStateBaseBridge {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean filterApp(AppEntry info) {
|
public boolean filterApp(AppEntry info) {
|
||||||
return getBatteryOptimizationDetailsMode(info) == MODE_UNRESTRICTED;
|
return getAppBatteryUsageDetailsMode(info) == MODE_UNRESTRICTED;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -147,7 +147,7 @@ public class AppStateBatteryOptimizationBridge extends AppStateBaseBridge {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean filterApp(AppEntry info) {
|
public boolean filterApp(AppEntry info) {
|
||||||
return getBatteryOptimizationDetailsMode(info) == MODE_OPTIMIZED;
|
return getAppBatteryUsageDetailsMode(info) == MODE_OPTIMIZED;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -162,18 +162,18 @@ public class AppStateBatteryOptimizationBridge extends AppStateBaseBridge {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean filterApp(AppEntry info) {
|
public boolean filterApp(AppEntry info) {
|
||||||
return getBatteryOptimizationDetailsMode(info) == MODE_RESTRICTED;
|
return getAppBatteryUsageDetailsMode(info) == MODE_RESTRICTED;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extra details for battery optimization app data.
|
* Extra details for app battery usage data.
|
||||||
*/
|
*/
|
||||||
static final class BatteryOptimizationDetails {
|
static final class AppBatteryUsageDetails {
|
||||||
@OptimizationMode
|
@OptimizationMode
|
||||||
int mMode;
|
int mMode;
|
||||||
|
|
||||||
BatteryOptimizationDetails(@OptimizationMode int mode) {
|
AppBatteryUsageDetails(@OptimizationMode int mode) {
|
||||||
mMode = mode;
|
mMode = mode;
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -20,7 +20,7 @@ import androidx.annotation.IntDef;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.applications.AppStateAlarmsAndRemindersBridge;
|
import com.android.settings.applications.AppStateAlarmsAndRemindersBridge;
|
||||||
import com.android.settings.applications.AppStateBatteryOptimizationBridge;
|
import com.android.settings.applications.AppStateAppBatteryUsageBridge;
|
||||||
import com.android.settings.applications.AppStateInstallAppsBridge;
|
import com.android.settings.applications.AppStateInstallAppsBridge;
|
||||||
import com.android.settings.applications.AppStateLocaleBridge;
|
import com.android.settings.applications.AppStateLocaleBridge;
|
||||||
import com.android.settings.applications.AppStateManageExternalStorageBridge;
|
import com.android.settings.applications.AppStateManageExternalStorageBridge;
|
||||||
@@ -225,21 +225,21 @@ public class AppFilterRegistry {
|
|||||||
// Unrestricted
|
// Unrestricted
|
||||||
mFilters[FILTER_APPS_BATTERY_UNRESTRICTED] =
|
mFilters[FILTER_APPS_BATTERY_UNRESTRICTED] =
|
||||||
new AppFilterItem(
|
new AppFilterItem(
|
||||||
AppStateBatteryOptimizationBridge.FILTER_BATTERY_UNRESTRICTED_APPS,
|
AppStateAppBatteryUsageBridge.FILTER_BATTERY_UNRESTRICTED_APPS,
|
||||||
FILTER_APPS_BATTERY_UNRESTRICTED,
|
FILTER_APPS_BATTERY_UNRESTRICTED,
|
||||||
R.string.filter_battery_unrestricted_title);
|
R.string.filter_battery_unrestricted_title);
|
||||||
|
|
||||||
// Optimized
|
// Optimized
|
||||||
mFilters[FILTER_APPS_BATTERY_OPTIMIZED] =
|
mFilters[FILTER_APPS_BATTERY_OPTIMIZED] =
|
||||||
new AppFilterItem(
|
new AppFilterItem(
|
||||||
AppStateBatteryOptimizationBridge.FILTER_BATTERY_OPTIMIZED_APPS,
|
AppStateAppBatteryUsageBridge.FILTER_BATTERY_OPTIMIZED_APPS,
|
||||||
FILTER_APPS_BATTERY_OPTIMIZED,
|
FILTER_APPS_BATTERY_OPTIMIZED,
|
||||||
R.string.filter_battery_optimized_title);
|
R.string.filter_battery_optimized_title);
|
||||||
|
|
||||||
// Unrestricted
|
// Unrestricted
|
||||||
mFilters[FILTER_APPS_BATTERY_RESTRICTED] =
|
mFilters[FILTER_APPS_BATTERY_RESTRICTED] =
|
||||||
new AppFilterItem(
|
new AppFilterItem(
|
||||||
AppStateBatteryOptimizationBridge.FILTER_BATTERY_RESTRICTED_APPS,
|
AppStateAppBatteryUsageBridge.FILTER_BATTERY_RESTRICTED_APPS,
|
||||||
FILTER_APPS_BATTERY_RESTRICTED,
|
FILTER_APPS_BATTERY_RESTRICTED,
|
||||||
R.string.filter_battery_restricted_title);
|
R.string.filter_battery_restricted_title);
|
||||||
}
|
}
|
||||||
|
@@ -100,7 +100,7 @@ import com.android.settings.applications.AppInfoBase;
|
|||||||
import com.android.settings.applications.AppStateAlarmsAndRemindersBridge;
|
import com.android.settings.applications.AppStateAlarmsAndRemindersBridge;
|
||||||
import com.android.settings.applications.AppStateAppOpsBridge.PermissionState;
|
import com.android.settings.applications.AppStateAppOpsBridge.PermissionState;
|
||||||
import com.android.settings.applications.AppStateBaseBridge;
|
import com.android.settings.applications.AppStateBaseBridge;
|
||||||
import com.android.settings.applications.AppStateBatteryOptimizationBridge;
|
import com.android.settings.applications.AppStateAppBatteryUsageBridge;
|
||||||
import com.android.settings.applications.AppStateInstallAppsBridge;
|
import com.android.settings.applications.AppStateInstallAppsBridge;
|
||||||
import com.android.settings.applications.AppStateLocaleBridge;
|
import com.android.settings.applications.AppStateLocaleBridge;
|
||||||
import com.android.settings.applications.AppStateManageExternalStorageBridge;
|
import com.android.settings.applications.AppStateManageExternalStorageBridge;
|
||||||
@@ -336,7 +336,7 @@ public class ManageApplications extends InstrumentedFragment
|
|||||||
}
|
}
|
||||||
} else if (className.equals(AppLocaleDetails.class.getName())) {
|
} else if (className.equals(AppLocaleDetails.class.getName())) {
|
||||||
mListType = LIST_TYPE_APPS_LOCALE;
|
mListType = LIST_TYPE_APPS_LOCALE;
|
||||||
} else if (className.equals(Settings.AppBatteryOptimizationActivity.class.getName())) {
|
} else if (className.equals(Settings.AppBatteryUsageActivity.class.getName())) {
|
||||||
mListType = LIST_TYPE_BATTERY_OPTIMIZATION;
|
mListType = LIST_TYPE_BATTERY_OPTIMIZATION;
|
||||||
} else {
|
} else {
|
||||||
mListType = LIST_TYPE_MAIN;
|
mListType = LIST_TYPE_MAIN;
|
||||||
@@ -958,8 +958,8 @@ public class ManageApplications extends InstrumentedFragment
|
|||||||
screenTitle = R.string.app_notifications_title;
|
screenTitle = R.string.app_notifications_title;
|
||||||
} else if (className.equals(AppLocaleDetails.class.getName())) {
|
} else if (className.equals(AppLocaleDetails.class.getName())) {
|
||||||
screenTitle = R.string.app_locales_picker_menu_title;
|
screenTitle = R.string.app_locales_picker_menu_title;
|
||||||
} else if (className.equals(Settings.AppBatteryOptimizationActivity.class.getName())) {
|
} else if (className.equals(Settings.AppBatteryUsageActivity.class.getName())) {
|
||||||
screenTitle = R.string.app_battery_optimization_title;
|
screenTitle = R.string.app_battery_usage_title;
|
||||||
} else {
|
} else {
|
||||||
if (screenTitle == -1) {
|
if (screenTitle == -1) {
|
||||||
screenTitle = R.string.all_apps;
|
screenTitle = R.string.all_apps;
|
||||||
@@ -1153,7 +1153,7 @@ public class ManageApplications extends InstrumentedFragment
|
|||||||
} else if (mManageApplications.mListType == LIST_TYPE_APPS_LOCALE) {
|
} else if (mManageApplications.mListType == LIST_TYPE_APPS_LOCALE) {
|
||||||
mExtraInfoBridge = new AppStateLocaleBridge(mContext, mState, this);
|
mExtraInfoBridge = new AppStateLocaleBridge(mContext, mState, this);
|
||||||
} else if (mManageApplications.mListType == LIST_TYPE_BATTERY_OPTIMIZATION) {
|
} else if (mManageApplications.mListType == LIST_TYPE_BATTERY_OPTIMIZATION) {
|
||||||
mExtraInfoBridge = new AppStateBatteryOptimizationBridge(mContext, mState, this);
|
mExtraInfoBridge = new AppStateAppBatteryUsageBridge(mContext, mState, this);
|
||||||
} else {
|
} else {
|
||||||
mExtraInfoBridge = null;
|
mExtraInfoBridge = null;
|
||||||
}
|
}
|
||||||
@@ -1199,7 +1199,7 @@ public class ManageApplications extends InstrumentedFragment
|
|||||||
rebuild(R.id.sort_order_alpha, true);
|
rebuild(R.id.sort_order_alpha, true);
|
||||||
}
|
}
|
||||||
} else if (mManageApplications.mListType == LIST_TYPE_BATTERY_OPTIMIZATION) {
|
} else if (mManageApplications.mListType == LIST_TYPE_BATTERY_OPTIMIZATION) {
|
||||||
logBatteryOptimization(filterType);
|
logAppBatteryUsage(filterType);
|
||||||
} else {
|
} else {
|
||||||
rebuild();
|
rebuild();
|
||||||
}
|
}
|
||||||
@@ -1336,7 +1336,7 @@ public class ManageApplications extends InstrumentedFragment
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void logBatteryOptimization(int filterType) {
|
private void logAppBatteryUsage(int filterType) {
|
||||||
switch(filterType) {
|
switch(filterType) {
|
||||||
case FILTER_APPS_BATTERY_UNRESTRICTED:
|
case FILTER_APPS_BATTERY_UNRESTRICTED:
|
||||||
logAction(SettingsEnums.ACTION_BATTERY_OPTIMIZED_APPS_FILTER_UNRESTRICTED);
|
logAction(SettingsEnums.ACTION_BATTERY_OPTIMIZED_APPS_FILTER_UNRESTRICTED);
|
||||||
@@ -1674,6 +1674,9 @@ public class ManageApplications extends InstrumentedFragment
|
|||||||
case LIST_TYPE_APPS_LOCALE:
|
case LIST_TYPE_APPS_LOCALE:
|
||||||
holder.setSummary(AppLocaleDetails.getSummary(mContext, entry));
|
holder.setSummary(AppLocaleDetails.getSummary(mContext, entry));
|
||||||
break;
|
break;
|
||||||
|
case LIST_TYPE_BATTERY_OPTIMIZATION:
|
||||||
|
holder.setSummary(R.string.app_battery_usage_summary);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
holder.updateSizeText(entry, mManageApplications.mInvalidSizeStr, mWhichSize);
|
holder.updateSizeText(entry, mManageApplications.mInvalidSizeStr, mWhichSize);
|
||||||
break;
|
break;
|
||||||
|
@@ -46,12 +46,15 @@ public class RestrictAppPreferenceController extends BasePreferenceController {
|
|||||||
private AppOpsManager mAppOpsManager;
|
private AppOpsManager mAppOpsManager;
|
||||||
private InstrumentedPreferenceFragment mPreferenceFragment;
|
private InstrumentedPreferenceFragment mPreferenceFragment;
|
||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
|
private boolean mEnableAppBatteryUsagePage;
|
||||||
|
|
||||||
public RestrictAppPreferenceController(Context context) {
|
public RestrictAppPreferenceController(Context context) {
|
||||||
super(context, KEY_RESTRICT_APP);
|
super(context, KEY_RESTRICT_APP);
|
||||||
mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
|
mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
|
||||||
mUserManager = context.getSystemService(UserManager.class);
|
mUserManager = context.getSystemService(UserManager.class);
|
||||||
mAppInfos = BatteryTipUtils.getRestrictedAppsList(mAppOpsManager, mUserManager);
|
mAppInfos = BatteryTipUtils.getRestrictedAppsList(mAppOpsManager, mUserManager);
|
||||||
|
mEnableAppBatteryUsagePage =
|
||||||
|
mContext.getResources().getBoolean(R.bool.config_app_battery_usage_list_enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
public RestrictAppPreferenceController(InstrumentedPreferenceFragment preferenceFragment) {
|
public RestrictAppPreferenceController(InstrumentedPreferenceFragment preferenceFragment) {
|
||||||
@@ -61,7 +64,8 @@ public class RestrictAppPreferenceController extends BasePreferenceController {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getAvailabilityStatus() {
|
public int getAvailabilityStatus() {
|
||||||
return mAppInfos.size() > 0 ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
|
return mAppInfos.size() > 0 && !mEnableAppBatteryUsagePage ? AVAILABLE
|
||||||
|
: CONDITIONALLY_UNAVAILABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -36,6 +36,7 @@ public class BatteryManagerPreferenceController extends BasePreferenceController
|
|||||||
private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
|
private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
|
||||||
private AppOpsManager mAppOpsManager;
|
private AppOpsManager mAppOpsManager;
|
||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
|
private boolean mEnableAppBatteryUsagePage;
|
||||||
|
|
||||||
public BatteryManagerPreferenceController(Context context) {
|
public BatteryManagerPreferenceController(Context context) {
|
||||||
super(context, KEY_BATTERY_MANAGER);
|
super(context, KEY_BATTERY_MANAGER);
|
||||||
@@ -43,6 +44,8 @@ public class BatteryManagerPreferenceController extends BasePreferenceController
|
|||||||
context).getPowerUsageFeatureProvider(context);
|
context).getPowerUsageFeatureProvider(context);
|
||||||
mAppOpsManager = context.getSystemService(AppOpsManager.class);
|
mAppOpsManager = context.getSystemService(AppOpsManager.class);
|
||||||
mUserManager = context.getSystemService(UserManager.class);
|
mUserManager = context.getSystemService(UserManager.class);
|
||||||
|
mEnableAppBatteryUsagePage =
|
||||||
|
mContext.getResources().getBoolean(R.bool.config_app_battery_usage_list_enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -53,9 +56,12 @@ public class BatteryManagerPreferenceController extends BasePreferenceController
|
|||||||
@Override
|
@Override
|
||||||
public void updateState(Preference preference) {
|
public void updateState(Preference preference) {
|
||||||
super.updateState(preference);
|
super.updateState(preference);
|
||||||
final int num = BatteryTipUtils.getRestrictedAppsList(mAppOpsManager, mUserManager).size();
|
if (!mEnableAppBatteryUsagePage) {
|
||||||
|
final int num = BatteryTipUtils.getRestrictedAppsList(mAppOpsManager,
|
||||||
|
mUserManager).size();
|
||||||
|
|
||||||
updateSummary(preference, num);
|
updateSummary(preference, num);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
|
Reference in New Issue
Block a user