Add BatteryHistoricalLogUtil class

- Impl optimize mode log mechanism to record optimize setup flow
 - Log optimize action with MANUAL, APPLY, RESET and RESTORE
 - Use proto file to serialize logs
 sample result: https://screenshot.googleplex.com/5KPrHVGb4pMvS7V.png

Bug: 241735485
Test: make SettingsRoboTests
Change-Id: I879663de4cf45d0cfb9cd7eee957eeb65addfbe1
This commit is contained in:
Wesley Wang
2022-09-28 18:12:35 +08:00
parent bd25f4a303
commit d90026d184
11 changed files with 309 additions and 21 deletions

View File

@@ -47,6 +47,7 @@ import android.content.pm.UserInfo;
import android.os.UserManager;
import android.util.ArraySet;
import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
import com.android.settingslib.fuelgauge.PowerAllowlistBackend;
import org.junit.Before;
@@ -152,7 +153,7 @@ public class BatteryOptimizeUtilsTest {
mBatteryOptimizeUtils.mAllowListed = false;
mBatteryOptimizeUtils.mMode = AppOpsManager.MODE_ALLOWED;
mBatteryOptimizeUtils.setAppUsageState(MODE_RESTRICTED);
mBatteryOptimizeUtils.setAppUsageState(MODE_RESTRICTED, Action.UNKNOWN);
TimeUnit.SECONDS.sleep(1);
verifySetAppOptimizationMode(AppOpsManager.MODE_IGNORED, /* allowListed */ false);
@@ -160,7 +161,7 @@ public class BatteryOptimizeUtilsTest {
@Test
public void testSetAppUsageState_Unrestricted_verifyAction() throws Exception {
mBatteryOptimizeUtils.setAppUsageState(MODE_UNRESTRICTED);
mBatteryOptimizeUtils.setAppUsageState(MODE_UNRESTRICTED, Action.UNKNOWN);
TimeUnit.SECONDS.sleep(1);
verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ true);
@@ -168,7 +169,7 @@ public class BatteryOptimizeUtilsTest {
@Test
public void testSetAppUsageState_Optimized_verifyAction() throws Exception {
mBatteryOptimizeUtils.setAppUsageState(MODE_OPTIMIZED);
mBatteryOptimizeUtils.setAppUsageState(MODE_OPTIMIZED, Action.UNKNOWN);
TimeUnit.SECONDS.sleep(1);
verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false);
@@ -180,7 +181,7 @@ public class BatteryOptimizeUtilsTest {
mBatteryOptimizeUtils.mAllowListed = true;
mBatteryOptimizeUtils.mMode = AppOpsManager.MODE_ALLOWED;
mBatteryOptimizeUtils.setAppUsageState(MODE_UNRESTRICTED);
mBatteryOptimizeUtils.setAppUsageState(MODE_UNRESTRICTED, Action.UNKNOWN);
TimeUnit.SECONDS.sleep(1);
verifyNoInteractions(mMockBackend);