diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java index 06b25d675a0..3f335bcb157 100644 --- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java +++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java @@ -650,6 +650,7 @@ public class AppInfoDashboardFragment extends DashboardFragment new SubSettingLauncher(context) .setDestination(destination.getName()) .setArguments(args) + .setUserHandle(UserHandle.getUserHandleForUid(app.uid)) .setSourceMetricsCategory(sourceMetricsCategory) .launch(); } diff --git a/src/com/android/settings/spa/app/appinfo/AppBatteryPreference.kt b/src/com/android/settings/spa/app/appinfo/AppBatteryPreference.kt index 720422f6faf..edb2a1eaa0f 100644 --- a/src/com/android/settings/spa/app/appinfo/AppBatteryPreference.kt +++ b/src/com/android/settings/spa/app/appinfo/AppBatteryPreference.kt @@ -40,7 +40,9 @@ import com.android.settings.fuelgauge.batteryusage.BatteryChartPreferenceControl import com.android.settings.fuelgauge.batteryusage.BatteryDiffEntry import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel +import com.android.settingslib.spaprivileged.framework.common.asUser import com.android.settingslib.spaprivileged.model.app.installed +import com.android.settingslib.spaprivileged.model.app.userHandle import com.android.settingslib.spaprivileged.model.app.userId import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -63,6 +65,7 @@ fun AppBatteryPreference(app: ApplicationInfo) { } private class AppBatteryPresenter(private val context: Context, private val app: ApplicationInfo) { + private val userContext = context.asUser(app.userHandle) private var batteryDiffEntryState: LoadingState by mutableStateOf(LoadingState.Loading) @@ -84,7 +87,7 @@ private class AppBatteryPresenter(private val context: Context, private val app: private suspend fun getBatteryDiffEntry(): BatteryDiffEntry? = withContext(Dispatchers.IO) { BatteryChartPreferenceController.getAppBatteryUsageData( - context, app.packageName, app.userId + userContext, app.packageName, app.userId ).also { Log.d(TAG, "loadBatteryDiffEntries():\n$it") } @@ -141,6 +144,7 @@ private class AppBatteryPresenter(private val context: Context, private val app: .setDestination(AdvancedPowerUsageDetail::class.java.name) .setTitleRes(R.string.battery_details_title) .setArguments(args) + .setUserHandle(app.userHandle) .setSourceMetricsCategory(AppInfoSettingsProvider.METRICS_CATEGORY) .launch() } diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppBatteryPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppBatteryPreferenceTest.kt index fd286caf2d9..276b711a104 100644 --- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppBatteryPreferenceTest.kt +++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppBatteryPreferenceTest.kt @@ -36,6 +36,9 @@ import com.android.settings.R import com.android.settings.fuelgauge.AdvancedPowerUsageDetail import com.android.settings.fuelgauge.batteryusage.BatteryChartPreferenceController import com.android.settings.fuelgauge.batteryusage.BatteryDiffEntry +import com.android.settings.testutils.mockAsUser +import com.android.settingslib.spaprivileged.framework.common.asUser +import com.android.settingslib.spaprivileged.model.app.userHandle import com.android.settingslib.spaprivileged.model.app.userId import org.junit.After import org.junit.Before @@ -69,6 +72,7 @@ class AppBatteryPreferenceTest { .mockStatic(AdvancedPowerUsageDetail::class.java) .strictness(Strictness.LENIENT) .startMocking() + context.mockAsUser() whenever(context.resources).thenReturn(resources) whenever(resources.getBoolean(R.bool.config_show_app_info_settings_battery)) .thenReturn(true)