Refine optimize page log pattern

- Add timestamp and prefix string
 - Chagne Action.MANUAL to LEAVE for better readability
 screenshot: https://screenshot.googleplex.com/ALTvMaPWVEq8y7c.png

Bug: 192523697
Test: make SettingsRoboTests
Change-Id: I69d1beceb98444d823f6ffc3a015cf61a7d7a66d
This commit is contained in:
Wesley Wang
2023-05-10 17:34:44 +08:00
parent f5a3485300
commit 1f78ebd8aa
4 changed files with 13 additions and 7 deletions

View File

@@ -15,7 +15,7 @@ message BatteryOptimizeHistoricalLogEntry {
// The action to set optimize mode // The action to set optimize mode
enum Action { enum Action {
UNKNOWN = 0; UNKNOWN = 0;
MANUAL = 1; LEAVE = 1;
APPLY = 2; APPLY = 2;
RESET = 3; RESET = 3;
RESTORE = 4; RESTORE = 4;
@@ -24,4 +24,5 @@ message BatteryOptimizeHistoricalLogEntry {
optional string package_name = 1; optional string package_name = 1;
optional Action action = 2; optional Action action = 2;
optional string action_description = 3; optional string action_description = 3;
optional int64 timestamp = 4;
} }

View File

@@ -291,7 +291,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
BatteryHistoricalLogUtil.writeLog( BatteryHistoricalLogUtil.writeLog(
getContext().getApplicationContext(), getContext().getApplicationContext(),
Action.MANUAL, Action.LEAVE,
BatteryHistoricalLogUtil.getPackageNameWithUserId( BatteryHistoricalLogUtil.getPackageNameWithUserId(
mBatteryOptimizeUtils.getPackageName(), UserHandle.myUserId()), mBatteryOptimizeUtils.getPackageName(), UserHandle.myUserId()),
mLogStringBuilder.toString()); mLogStringBuilder.toString());

View File

@@ -21,6 +21,7 @@ import android.content.SharedPreferences;
import android.util.Base64; import android.util.Base64;
import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action; import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
import com.android.settings.fuelgauge.batteryusage.ConvertUtils;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
@@ -49,6 +50,7 @@ public final class BatteryHistoricalLogUtil {
.setPackageName(pkg) .setPackageName(pkg)
.setAction(action) .setAction(action)
.setActionDescription(actionDescription) .setActionDescription(actionDescription)
.setTimestamp(System.currentTimeMillis())
.build()); .build());
} }
@@ -89,6 +91,7 @@ public final class BatteryHistoricalLogUtil {
if (logEntryList.isEmpty()) { if (logEntryList.isEmpty()) {
writer.println("\tNo past logs."); writer.println("\tNo past logs.");
} else { } else {
writer.println("0:RESTRICTED 1:UNRESTRICTED 2:OPTIMIZED 3:UNKNOWN");
logEntryList.forEach(entry -> writer.println(toString(entry))); logEntryList.forEach(entry -> writer.println(toString(entry)));
} }
} }
@@ -101,8 +104,9 @@ public final class BatteryHistoricalLogUtil {
} }
private static String toString(BatteryOptimizeHistoricalLogEntry entry) { private static String toString(BatteryOptimizeHistoricalLogEntry entry) {
return String.format("%s\tAction:%s\tEvent:%s", return String.format("%s\tAction:%s\tEvent:%s\tTimestamp:%s", entry.getPackageName(),
entry.getPackageName(), entry.getAction(), entry.getActionDescription()); entry.getAction(), entry.getActionDescription(),
ConvertUtils.utcToLocalTimeForLogging(entry.getTimestamp()));
} }
@VisibleForTesting @VisibleForTesting

View File

@@ -57,17 +57,18 @@ public final class BatteryHistoricalLogUtilTest {
BatteryHistoricalLogUtil.writeLog(mContext, Action.APPLY, "pkg1", "logs"); BatteryHistoricalLogUtil.writeLog(mContext, Action.APPLY, "pkg1", "logs");
BatteryHistoricalLogUtil.printBatteryOptimizeHistoricalLog(mContext, mTestPrintWriter); BatteryHistoricalLogUtil.printBatteryOptimizeHistoricalLog(mContext, mTestPrintWriter);
assertThat(mTestStringWriter.toString()).contains("pkg1\tAction:APPLY\tEvent:logs"); assertThat(mTestStringWriter.toString()).contains(
"pkg1\tAction:APPLY\tEvent:logs\tTimestamp:");
} }
@Test @Test
public void writeLog_multipleLogs_withCorrectCounts() { public void writeLog_multipleLogs_withCorrectCounts() {
for (int i = 0; i < BatteryHistoricalLogUtil.MAX_ENTRIES; i++) { for (int i = 0; i < BatteryHistoricalLogUtil.MAX_ENTRIES; i++) {
BatteryHistoricalLogUtil.writeLog(mContext, Action.MANUAL, "pkg" + i, "logs"); BatteryHistoricalLogUtil.writeLog(mContext, Action.LEAVE, "pkg" + i, "logs");
} }
BatteryHistoricalLogUtil.printBatteryOptimizeHistoricalLog(mContext, mTestPrintWriter); BatteryHistoricalLogUtil.printBatteryOptimizeHistoricalLog(mContext, mTestPrintWriter);
assertThat(mTestStringWriter.toString().split("MANUAL").length).isEqualTo(41); assertThat(mTestStringWriter.toString().split("LEAVE").length).isEqualTo(41);
} }
@Test @Test