Loading src/com/android/settings/fuelgauge/BatteryUtils.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -416,6 +416,11 @@ public class BatteryUtils { mAppOpsManager.setMode(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, uid, packageName, mode); mAppOpsManager.setMode(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, uid, packageName, mode); } } public boolean isForceAppStandbyEnabled(int uid, String packageName) { return mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, uid, packageName) == AppOpsManager.MODE_IGNORED; } public void initBatteryStatsHelper(BatteryStatsHelper statsHelper, Bundle bundle, public void initBatteryStatsHelper(BatteryStatsHelper statsHelper, Bundle bundle, UserManager userManager) { UserManager userManager) { statsHelper.create(bundle); statsHelper.create(bundle); Loading src/com/android/settings/fuelgauge/RestrictedAppDetails.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -133,7 +133,8 @@ public class RestrictedAppDetails extends DashboardFragment { try { try { final ApplicationInfo applicationInfo = mPackageManager.getApplicationInfoAsUser( final ApplicationInfo applicationInfo = mPackageManager.getApplicationInfoAsUser( appInfo.packageName, 0 /* flags */, UserHandle.getUserId(appInfo.uid)); appInfo.packageName, 0 /* flags */, UserHandle.getUserId(appInfo.uid)); checkBoxPreference.setChecked(true); checkBoxPreference.setChecked( mBatteryUtils.isForceAppStandbyEnabled(appInfo.uid, appInfo.packageName)); checkBoxPreference.setTitle(mPackageManager.getApplicationLabel(applicationInfo)); checkBoxPreference.setTitle(mPackageManager.getApplicationLabel(applicationInfo)); checkBoxPreference.setIcon( checkBoxPreference.setIcon( Utils.getBadgedIcon(mIconDrawableFactory, mPackageManager, Utils.getBadgedIcon(mIconDrawableFactory, mPackageManager, Loading tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java +16 −0 Original line number Original line Diff line number Diff line Loading @@ -564,6 +564,22 @@ public class BatteryUtilsTest { HIGH_SDK_PACKAGE, AppOpsManager.MODE_IGNORED); HIGH_SDK_PACKAGE, AppOpsManager.MODE_IGNORED); } } @Test public void testIsForceAppStandbyEnabled_enabled_returnTrue() { when(mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID, PACKAGE_NAME)).thenReturn(AppOpsManager.MODE_IGNORED); assertThat(mBatteryUtils.isForceAppStandbyEnabled(UID, PACKAGE_NAME)).isTrue(); } @Test public void testIsForceAppStandbyEnabled_disabled_returnFalse() { when(mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID, PACKAGE_NAME)).thenReturn(AppOpsManager.MODE_ALLOWED); assertThat(mBatteryUtils.isForceAppStandbyEnabled(UID, PACKAGE_NAME)).isFalse(); } @Test @Test public void testIsAppHeavilyUsed_usageMoreThanThreshold_returnTrue() { public void testIsAppHeavilyUsed_usageMoreThanThreshold_returnTrue() { assertThat(mBatteryUtils.isAppHeavilyUsed(mBatteryStatsHelper, mUserManager, UID, assertThat(mBatteryUtils.isAppHeavilyUsed(mBatteryStatsHelper, mUserManager, UID, Loading tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java +8 −3 Original line number Original line Diff line number Diff line Loading @@ -28,10 +28,12 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.os.Bundle; import android.os.Bundle; import android.os.UserHandle; import android.os.UserHandle; import android.support.v7.preference.CheckBoxPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceCategory; import android.support.v7.preference.PreferenceCategory; import android.support.v7.preference.PreferenceManager; import android.support.v7.preference.PreferenceManager; import android.util.IconDrawableFactory; import android.util.IconDrawableFactory; import android.widget.CheckBox; import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity; import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.core.InstrumentedPreferenceFragment; Loading Loading @@ -93,7 +95,7 @@ public class RestrictedAppDetailsTest { mRestrictedAppDetails.mAppInfos = new ArrayList<>(); mRestrictedAppDetails.mAppInfos = new ArrayList<>(); mRestrictedAppDetails.mAppInfos.add(mAppInfo); mRestrictedAppDetails.mAppInfos.add(mAppInfo); mRestrictedAppDetails.mRestrictedAppListGroup = spy(new PreferenceCategory(mContext)); mRestrictedAppDetails.mRestrictedAppListGroup = spy(new PreferenceCategory(mContext)); mRestrictedAppDetails.mBatteryUtils = new BatteryUtils(mContext); mRestrictedAppDetails.mBatteryUtils = spy(new BatteryUtils(mContext)); doReturn(mPreferenceManager).when( doReturn(mPreferenceManager).when( mRestrictedAppDetails.mRestrictedAppListGroup).getPreferenceManager(); mRestrictedAppDetails.mRestrictedAppListGroup).getPreferenceManager(); } } Loading @@ -103,13 +105,16 @@ public class RestrictedAppDetailsTest { doReturn(mApplicationInfo).when(mPackageManager) doReturn(mApplicationInfo).when(mPackageManager) .getApplicationInfoAsUser(PACKAGE_NAME, 0, USER_ID); .getApplicationInfoAsUser(PACKAGE_NAME, 0, USER_ID); doReturn(APP_NAME).when(mPackageManager).getApplicationLabel(mApplicationInfo); doReturn(APP_NAME).when(mPackageManager).getApplicationLabel(mApplicationInfo); doReturn(true).when(mRestrictedAppDetails.mBatteryUtils).isForceAppStandbyEnabled(UID, PACKAGE_NAME); mRestrictedAppDetails.refreshUi(); mRestrictedAppDetails.refreshUi(); assertThat(mRestrictedAppDetails.mRestrictedAppListGroup.getPreferenceCount()).isEqualTo(1); assertThat(mRestrictedAppDetails.mRestrictedAppListGroup.getPreferenceCount()).isEqualTo(1); final Preference preference = mRestrictedAppDetails.mRestrictedAppListGroup.getPreference( final CheckBoxPreference preference = 0); (CheckBoxPreference) mRestrictedAppDetails.mRestrictedAppListGroup.getPreference(0); assertThat(preference.getTitle()).isEqualTo(APP_NAME); assertThat(preference.getTitle()).isEqualTo(APP_NAME); assertThat(preference.isChecked()).isTrue(); } } @Test @Test Loading Loading
src/com/android/settings/fuelgauge/BatteryUtils.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -416,6 +416,11 @@ public class BatteryUtils { mAppOpsManager.setMode(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, uid, packageName, mode); mAppOpsManager.setMode(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, uid, packageName, mode); } } public boolean isForceAppStandbyEnabled(int uid, String packageName) { return mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, uid, packageName) == AppOpsManager.MODE_IGNORED; } public void initBatteryStatsHelper(BatteryStatsHelper statsHelper, Bundle bundle, public void initBatteryStatsHelper(BatteryStatsHelper statsHelper, Bundle bundle, UserManager userManager) { UserManager userManager) { statsHelper.create(bundle); statsHelper.create(bundle); Loading
src/com/android/settings/fuelgauge/RestrictedAppDetails.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -133,7 +133,8 @@ public class RestrictedAppDetails extends DashboardFragment { try { try { final ApplicationInfo applicationInfo = mPackageManager.getApplicationInfoAsUser( final ApplicationInfo applicationInfo = mPackageManager.getApplicationInfoAsUser( appInfo.packageName, 0 /* flags */, UserHandle.getUserId(appInfo.uid)); appInfo.packageName, 0 /* flags */, UserHandle.getUserId(appInfo.uid)); checkBoxPreference.setChecked(true); checkBoxPreference.setChecked( mBatteryUtils.isForceAppStandbyEnabled(appInfo.uid, appInfo.packageName)); checkBoxPreference.setTitle(mPackageManager.getApplicationLabel(applicationInfo)); checkBoxPreference.setTitle(mPackageManager.getApplicationLabel(applicationInfo)); checkBoxPreference.setIcon( checkBoxPreference.setIcon( Utils.getBadgedIcon(mIconDrawableFactory, mPackageManager, Utils.getBadgedIcon(mIconDrawableFactory, mPackageManager, Loading
tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java +16 −0 Original line number Original line Diff line number Diff line Loading @@ -564,6 +564,22 @@ public class BatteryUtilsTest { HIGH_SDK_PACKAGE, AppOpsManager.MODE_IGNORED); HIGH_SDK_PACKAGE, AppOpsManager.MODE_IGNORED); } } @Test public void testIsForceAppStandbyEnabled_enabled_returnTrue() { when(mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID, PACKAGE_NAME)).thenReturn(AppOpsManager.MODE_IGNORED); assertThat(mBatteryUtils.isForceAppStandbyEnabled(UID, PACKAGE_NAME)).isTrue(); } @Test public void testIsForceAppStandbyEnabled_disabled_returnFalse() { when(mAppOpsManager.checkOpNoThrow(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, UID, PACKAGE_NAME)).thenReturn(AppOpsManager.MODE_ALLOWED); assertThat(mBatteryUtils.isForceAppStandbyEnabled(UID, PACKAGE_NAME)).isFalse(); } @Test @Test public void testIsAppHeavilyUsed_usageMoreThanThreshold_returnTrue() { public void testIsAppHeavilyUsed_usageMoreThanThreshold_returnTrue() { assertThat(mBatteryUtils.isAppHeavilyUsed(mBatteryStatsHelper, mUserManager, UID, assertThat(mBatteryUtils.isAppHeavilyUsed(mBatteryStatsHelper, mUserManager, UID, Loading
tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java +8 −3 Original line number Original line Diff line number Diff line Loading @@ -28,10 +28,12 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.os.Bundle; import android.os.Bundle; import android.os.UserHandle; import android.os.UserHandle; import android.support.v7.preference.CheckBoxPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceCategory; import android.support.v7.preference.PreferenceCategory; import android.support.v7.preference.PreferenceManager; import android.support.v7.preference.PreferenceManager; import android.util.IconDrawableFactory; import android.util.IconDrawableFactory; import android.widget.CheckBox; import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity; import com.android.settings.core.InstrumentedPreferenceFragment; import com.android.settings.core.InstrumentedPreferenceFragment; Loading Loading @@ -93,7 +95,7 @@ public class RestrictedAppDetailsTest { mRestrictedAppDetails.mAppInfos = new ArrayList<>(); mRestrictedAppDetails.mAppInfos = new ArrayList<>(); mRestrictedAppDetails.mAppInfos.add(mAppInfo); mRestrictedAppDetails.mAppInfos.add(mAppInfo); mRestrictedAppDetails.mRestrictedAppListGroup = spy(new PreferenceCategory(mContext)); mRestrictedAppDetails.mRestrictedAppListGroup = spy(new PreferenceCategory(mContext)); mRestrictedAppDetails.mBatteryUtils = new BatteryUtils(mContext); mRestrictedAppDetails.mBatteryUtils = spy(new BatteryUtils(mContext)); doReturn(mPreferenceManager).when( doReturn(mPreferenceManager).when( mRestrictedAppDetails.mRestrictedAppListGroup).getPreferenceManager(); mRestrictedAppDetails.mRestrictedAppListGroup).getPreferenceManager(); } } Loading @@ -103,13 +105,16 @@ public class RestrictedAppDetailsTest { doReturn(mApplicationInfo).when(mPackageManager) doReturn(mApplicationInfo).when(mPackageManager) .getApplicationInfoAsUser(PACKAGE_NAME, 0, USER_ID); .getApplicationInfoAsUser(PACKAGE_NAME, 0, USER_ID); doReturn(APP_NAME).when(mPackageManager).getApplicationLabel(mApplicationInfo); doReturn(APP_NAME).when(mPackageManager).getApplicationLabel(mApplicationInfo); doReturn(true).when(mRestrictedAppDetails.mBatteryUtils).isForceAppStandbyEnabled(UID, PACKAGE_NAME); mRestrictedAppDetails.refreshUi(); mRestrictedAppDetails.refreshUi(); assertThat(mRestrictedAppDetails.mRestrictedAppListGroup.getPreferenceCount()).isEqualTo(1); assertThat(mRestrictedAppDetails.mRestrictedAppListGroup.getPreferenceCount()).isEqualTo(1); final Preference preference = mRestrictedAppDetails.mRestrictedAppListGroup.getPreference( final CheckBoxPreference preference = 0); (CheckBoxPreference) mRestrictedAppDetails.mRestrictedAppListGroup.getPreference(0); assertThat(preference.getTitle()).isEqualTo(APP_NAME); assertThat(preference.getTitle()).isEqualTo(APP_NAME); assertThat(preference.isChecked()).isTrue(); } } @Test @Test Loading