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

@@ -41,6 +41,7 @@ import com.android.settings.applications.appinfo.ButtonActionDialogFragment;
import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
import com.android.settings.fuelgauge.batteryusage.BatteryDiffEntry;
import com.android.settings.fuelgauge.batteryusage.BatteryEntry;
import com.android.settings.fuelgauge.batteryusage.BatteryHistEntry;
@@ -113,6 +114,8 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
int mOptimizationMode = BatteryOptimizeUtils.MODE_UNKNOWN;
@VisibleForTesting
BackupManager mBackupManager;
@VisibleForTesting
StringBuilder mLogStringBuilder;
private AppButtonsPreferenceController mAppButtonsPreferenceController;
@@ -272,6 +275,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
getContext(),
SettingsEnums.OPEN_APP_BATTERY_USAGE,
packageName);
mLogStringBuilder = new StringBuilder("onResume mode = ").append(mOptimizationMode);
}
@Override
@@ -281,8 +285,16 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
final int selectedPreference = getSelectedPreference();
notifyBackupManager();
mLogStringBuilder.append(", onPause mode = ").append(selectedPreference);
logMetricCategory(selectedPreference);
mBatteryOptimizeUtils.setAppUsageState(selectedPreference);
BatteryHistoricalLogUtil.writeLog(
getContext().getApplicationContext(),
Action.MANUAL,
BatteryHistoricalLogUtil.getPackageNameWithUserId(
mBatteryOptimizeUtils.getPackageName(), UserHandle.myUserId()),
mLogStringBuilder.toString());
mBatteryOptimizeUtils.setAppUsageState(selectedPreference, Action.APPLY);
Log.d(TAG, "Leave with mode: " + selectedPreference);
}