public static final String SYNC_MANAGER_CONSTANTS = "sync_manager_constants";
/**
- * Whether or not App Standby feature is enabled. This controls throttling of apps
- * based on usage patterns and predictions.
+ * Whether or not App Standby feature is enabled by system. This controls throttling of apps
+ * based on usage patterns and predictions. Platform will turn on this feature if both this
+ * flag and {@link #ADAPTIVE_BATTERY_MANAGEMENT_ENABLED} is on.
* Type: int (0 for false, 1 for true)
* Default: 1
* @hide
+ * @see #ADAPTIVE_BATTERY_MANAGEMENT_ENABLED
*/
public static final String APP_STANDBY_ENABLED = "app_standby_enabled";
/**
+ * Whether or not adaptive battery feature is enabled by user. Platform will turn on this
+ * feature if both this flag and {@link #APP_STANDBY_ENABLED} is on.
+ * Type: int (0 for false, 1 for true)
+ * Default: 1
+ * @hide
+ * @see #APP_STANDBY_ENABLED
+ */
+ public static final String ADAPTIVE_BATTERY_MANAGEMENT_ENABLED =
+ "adaptive_battery_management_enabled";
+
+ /**
* Whether or not app auto restriction is enabled. When it is enabled, settings app will
* auto restrict the app if it has bad behavior(e.g. hold wakelock for long time).
*
import android.os.ServiceManager;
import android.os.SystemClock;
import android.os.UserHandle;
-import android.provider.Settings;
+import android.provider.Settings.Global;
import android.telephony.TelephonyManager;
import android.util.ArraySet;
import android.util.KeyValueListParser;
boolean isAppIdleEnabled() {
final boolean buildFlag = mContext.getResources().getBoolean(
com.android.internal.R.bool.config_enableAutoPowerModes);
- final boolean runtimeFlag = Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.APP_STANDBY_ENABLED, 1) == 1;
+ final boolean runtimeFlag = Global.getInt(mContext.getContentResolver(),
+ Global.APP_STANDBY_ENABLED, 1) == 1
+ && Global.getInt(mContext.getContentResolver(),
+ Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, 1) == 1;
return buildFlag && runtimeFlag;
}
}
String getAppIdleSettings() {
- return Settings.Global.getString(mContext.getContentResolver(),
- Settings.Global.APP_IDLE_CONSTANTS);
+ return Global.getString(mContext.getContentResolver(),
+ Global.APP_IDLE_CONSTANTS);
}
}
};
/**
- * Observe settings changes for {@link Settings.Global#APP_IDLE_CONSTANTS}.
+ * Observe settings changes for {@link Global#APP_IDLE_CONSTANTS}.
*/
private class SettingsObserver extends ContentObserver {
/**
}
void registerObserver() {
- mContext.getContentResolver().registerContentObserver(Settings.Global.getUriFor(
- Settings.Global.APP_IDLE_CONSTANTS), false, this);
- mContext.getContentResolver().registerContentObserver(Settings.Global.getUriFor(
- Settings.Global.APP_STANDBY_ENABLED), false, this);
+ final ContentResolver cr = mContext.getContentResolver();
+ cr.registerContentObserver(Global.getUriFor(Global.APP_IDLE_CONSTANTS), false, this);
+ cr.registerContentObserver(Global.getUriFor(Global.APP_STANDBY_ENABLED), false, this);
+ cr.registerContentObserver(Global.getUriFor(Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED),
+ false, this);
}
@Override
void updateSettings() {
if (DEBUG) {
Slog.d(TAG,
- "appidle=" + Settings.Global.getString(mContext.getContentResolver(),
- Settings.Global.APP_STANDBY_ENABLED));
- Slog.d(TAG, "appidleconstants=" + Settings.Global.getString(
+ "appidle=" + Global.getString(mContext.getContentResolver(),
+ Global.APP_STANDBY_ENABLED));
+ Slog.d(TAG,
+ "adaptivebat=" + Global.getString(mContext.getContentResolver(),
+ Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED));
+ Slog.d(TAG, "appidleconstants=" + Global.getString(
mContext.getContentResolver(),
- Settings.Global.APP_IDLE_CONSTANTS));
+ Global.APP_IDLE_CONSTANTS));
}
// Check if app_idle_enabled has changed
setAppIdleEnabled(mInjector.isAppIdleEnabled());