Only log the names of the app packages which are installed from Google Play Store in battery usage app optimization page
This is to meet the Guidelines for Logging Package Names: go/package-name-logging-guidance Bug: 267430574 Fix: 267430574 Test: presubmit Change-Id: Icf10000f5dcf87e45175d4005af8365191ad444d
This commit is contained in:
@@ -20,9 +20,8 @@ import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENT
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.anyLong;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.ArgumentMatchers.nullable;
|
||||
import static org.mockito.Mockito.doAnswer;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
@@ -38,9 +37,9 @@ import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.InstallSourceInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.BatteryStats;
|
||||
import android.os.Bundle;
|
||||
import android.os.Process;
|
||||
import android.os.UserHandle;
|
||||
@@ -79,6 +78,8 @@ import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = {ShadowEntityHeaderController.class, ShadowActivityManager.class})
|
||||
public class AdvancedPowerUsageDetailTest {
|
||||
@@ -116,12 +117,12 @@ public class AdvancedPowerUsageDetailTest {
|
||||
@Mock
|
||||
private PackageManager mPackageManager;
|
||||
@Mock
|
||||
private InstallSourceInfo mInstallSourceInfo;
|
||||
@Mock
|
||||
private AppOpsManager mAppOpsManager;
|
||||
@Mock
|
||||
private LoaderManager mLoaderManager;
|
||||
@Mock
|
||||
private BatteryUtils mBatteryUtils;
|
||||
@Mock
|
||||
private BatteryOptimizeUtils mBatteryOptimizeUtils;
|
||||
@Mock
|
||||
private BackupManager mBackupManager;
|
||||
@@ -179,7 +180,6 @@ public class AdvancedPowerUsageDetailTest {
|
||||
|
||||
mFragment.mHeaderPreference = mHeaderPreference;
|
||||
mFragment.mState = mState;
|
||||
mFragment.mBatteryUtils = new BatteryUtils(RuntimeEnvironment.application);
|
||||
mFragment.mBatteryOptimizeUtils = mBatteryOptimizeUtils;
|
||||
mFragment.mBackupManager = mBackupManager;
|
||||
mFragment.mLogStringBuilder = new StringBuilder();
|
||||
@@ -190,10 +190,6 @@ public class AdvancedPowerUsageDetailTest {
|
||||
doReturn(mPackageManager).when(mActivity).getPackageManager();
|
||||
doReturn(mAppOpsManager).when(mTestActivity).getSystemService(Context.APP_OPS_SERVICE);
|
||||
|
||||
mBatteryUtils = spy(new BatteryUtils(mContext));
|
||||
doReturn(FOREGROUND_SERVICE_TIME_US).when(mBatteryUtils).getForegroundServiceTotalTimeUs(
|
||||
any(BatteryStats.Uid.class), anyLong());
|
||||
|
||||
final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
|
||||
|
||||
Answer<Void> callable = invocation -> {
|
||||
@@ -757,34 +753,46 @@ public class AdvancedPowerUsageDetailTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPause_optimizationModeChanged_logPreference() {
|
||||
public void onPause_optimizationModeChanged_logPreference()
|
||||
throws PackageManager.NameNotFoundException, InterruptedException {
|
||||
final String packageName = "testPackageName";
|
||||
final int mode = BatteryOptimizeUtils.MODE_RESTRICTED;
|
||||
mFragment.mOptimizationMode = mode;
|
||||
when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(mode);
|
||||
when(mBatteryOptimizeUtils.getPackageName()).thenReturn(packageName);
|
||||
when(mContext.getPackageManager()).thenReturn(mPackageManager);
|
||||
when(mPackageManager.getInstallSourceInfo(anyString())).thenReturn(mInstallSourceInfo);
|
||||
when(mInstallSourceInfo.getInitiatingPackageName()).thenReturn("com.android.vending");
|
||||
mOptimizePreference.setKey(KEY_PREF_OPTIMIZED);
|
||||
|
||||
mFragment.onRadioButtonClicked(mOptimizePreference);
|
||||
mFragment.onPause();
|
||||
|
||||
TimeUnit.SECONDS.sleep(100);
|
||||
verify(mMetricsFeatureProvider)
|
||||
.action(
|
||||
SettingsEnums.OPEN_APP_BATTERY_USAGE,
|
||||
SettingsEnums.ACTION_APP_BATTERY_USAGE_OPTIMIZED,
|
||||
SettingsEnums.OPEN_APP_BATTERY_USAGE,
|
||||
/* package name*/ "none",
|
||||
packageName,
|
||||
/* consumed battery */ 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPause_optimizationModeIsNotChanged_notInvokeLogging() {
|
||||
public void onPause_optimizationModeIsNotChanged_notInvokeLogging()
|
||||
throws PackageManager.NameNotFoundException, InterruptedException {
|
||||
final int mode = BatteryOptimizeUtils.MODE_OPTIMIZED;
|
||||
mFragment.mOptimizationMode = mode;
|
||||
when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(mode);
|
||||
when(mContext.getPackageManager()).thenReturn(mPackageManager);
|
||||
when(mPackageManager.getInstallSourceInfo(anyString())).thenReturn(mInstallSourceInfo);
|
||||
when(mInstallSourceInfo.getInitiatingPackageName()).thenReturn("com.android.vending");
|
||||
mOptimizePreference.setKey(KEY_PREF_OPTIMIZED);
|
||||
|
||||
mFragment.onRadioButtonClicked(mOptimizePreference);
|
||||
mFragment.onPause();
|
||||
|
||||
TimeUnit.SECONDS.sleep(100);
|
||||
verifyNoInteractions(mMetricsFeatureProvider);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user