Merge "Fix test failure of ScreenOnTimeControllerTest"
diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
index 06b25d6..3f335bc 100644
--- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
+++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
@@ -650,6 +650,7 @@
         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 720422f..edb2a1e 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.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 @@
 }
 
 private class AppBatteryPresenter(private val context: Context, private val app: ApplicationInfo) {
+    private val userContext = context.asUser(app.userHandle)
     private var batteryDiffEntryState: LoadingState<BatteryDiffEntry?>
         by mutableStateOf(LoadingState.Loading)
 
@@ -84,7 +87,7 @@
 
     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 @@
             .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 fd286ca..276b711 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.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 @@
             .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)