Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c7d7a2c authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topic "opt_mode_ds" into main

* changes:
  Add AppOptimizationModeEventsUtils to save & update app optimization mode expiration events.
  Dump app optimization mode expiration event data in bug report.
parents 5ce2589d 8eaf8edf
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -95,15 +95,11 @@ android_library {
        "SettingsLibActivityEmbedding",
        "aconfig_settings_flags_lib",
        "accessibility_settings_flags_lib",
        "app-usage-event-protos-lite",
        "battery-event-protos-lite",
        "battery-usage-slot-protos-lite",
        "contextualcards",
        "development_settings_flag_lib",
        "factory_reset_flags_lib",
        "fuelgauge-log-protos-lite",
        "fuelgauge-usage-state-protos-lite",
        "power-anomaly-event-protos-lite",
        "fuelgauge-protos-lite",
        "settings-contextual-card-protos-lite",
        "settings-log-bridge-protos-lite",
        "settings-logtags",
+1 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ message BatteryOptimizeHistoricalLogEntry {
    BACKUP = 5;
    FORCE_RESET = 6;
    EXTERNAL_UPDATE = 7;
    EXPIRATION_RESET = 8;
  }

  optional string package_name = 1;
+5 −1
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ 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.AppOptModeSharedPreferencesUtils;
import com.android.settings.fuelgauge.batteryusage.BatteryDiffEntry;
import com.android.settings.fuelgauge.batteryusage.BatteryEntry;
import com.android.settings.overlay.FeatureFactory;
@@ -274,9 +275,12 @@ public class AdvancedPowerUsageDetail extends DashboardFragment
        final int currentOptimizeMode = mBatteryOptimizeUtils.getAppOptimizationMode();
        mLogStringBuilder.append(", onPause mode = ").append(currentOptimizeMode);
        logMetricCategory(currentOptimizeMode);

        mExecutor.execute(
                () -> {
                    if (currentOptimizeMode != mOptimizationMode) {
                        AppOptModeSharedPreferencesUtils.deleteAppOptimizationModeEventByUid(
                                getContext(), mBatteryOptimizeUtils.getUid());
                    }
                    BatteryOptimizeLogUtils.writeLog(
                            getContext().getApplicationContext(),
                            Action.LEAVE,
+8 −4
Original line number Diff line number Diff line
@@ -182,6 +182,14 @@ public class BatteryOptimizeUtils {
                && getAppOptimizationMode() != BatteryOptimizeUtils.MODE_RESTRICTED;
    }

    String getPackageName() {
        return mPackageName == null ? UNKNOWN_PACKAGE : mPackageName;
    }

    int getUid() {
        return mUid;
    }

    /** Gets the list of installed applications. */
    public static ArraySet<ApplicationInfo> getInstalledApplications(
            Context context, IPackageManager ipm) {
@@ -257,10 +265,6 @@ public class BatteryOptimizeUtils {
        }
    }

    String getPackageName() {
        return mPackageName == null ? UNKNOWN_PACKAGE : mPackageName;
    }

    static int getMode(AppOpsManager appOpsManager, int uid, String packageName) {
        return appOpsManager.checkOpNoThrow(
                AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, uid, packageName);
+5 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import androidx.annotation.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.fuelgauge.batteryusage.AppOptModeSharedPreferencesUtils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.HelpUtils;
@@ -121,6 +122,10 @@ public class PowerBackgroundUsageDetail extends DashboardFragment

        mExecutor.execute(
                () -> {
                    if (currentOptimizeMode != mOptimizationMode) {
                        AppOptModeSharedPreferencesUtils.deleteAppOptimizationModeEventByUid(
                                getContext(), mBatteryOptimizeUtils.getUid());
                    }
                    BatteryOptimizeLogUtils.writeLog(
                            getContext().getApplicationContext(),
                            Action.LEAVE,
Loading