Merge "Launch the correct profile for the App Info items"

This commit is contained in:
TreeHugger Robot
2023-01-30 07:43:32 +00:00
committed by Android (Google) Code Review
3 changed files with 10 additions and 1 deletions

View File

@@ -650,6 +650,7 @@ public class AppInfoDashboardFragment extends DashboardFragment
new SubSettingLauncher(context) new SubSettingLauncher(context)
.setDestination(destination.getName()) .setDestination(destination.getName())
.setArguments(args) .setArguments(args)
.setUserHandle(UserHandle.getUserHandleForUid(app.uid))
.setSourceMetricsCategory(sourceMetricsCategory) .setSourceMetricsCategory(sourceMetricsCategory)
.launch(); .launch();
} }

View File

@@ -40,7 +40,9 @@ import com.android.settings.fuelgauge.batteryusage.BatteryChartPreferenceControl
import com.android.settings.fuelgauge.batteryusage.BatteryDiffEntry import com.android.settings.fuelgauge.batteryusage.BatteryDiffEntry
import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel 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.installed
import com.android.settingslib.spaprivileged.model.app.userHandle
import com.android.settingslib.spaprivileged.model.app.userId import com.android.settingslib.spaprivileged.model.app.userId
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@@ -63,6 +65,7 @@ fun AppBatteryPreference(app: ApplicationInfo) {
} }
private class AppBatteryPresenter(private val context: Context, private val app: ApplicationInfo) { private class AppBatteryPresenter(private val context: Context, private val app: ApplicationInfo) {
private val userContext = context.asUser(app.userHandle)
private var batteryDiffEntryState: LoadingState<BatteryDiffEntry?> private var batteryDiffEntryState: LoadingState<BatteryDiffEntry?>
by mutableStateOf(LoadingState.Loading) 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) { private suspend fun getBatteryDiffEntry(): BatteryDiffEntry? = withContext(Dispatchers.IO) {
BatteryChartPreferenceController.getAppBatteryUsageData( BatteryChartPreferenceController.getAppBatteryUsageData(
context, app.packageName, app.userId userContext, app.packageName, app.userId
).also { ).also {
Log.d(TAG, "loadBatteryDiffEntries():\n$it") 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) .setDestination(AdvancedPowerUsageDetail::class.java.name)
.setTitleRes(R.string.battery_details_title) .setTitleRes(R.string.battery_details_title)
.setArguments(args) .setArguments(args)
.setUserHandle(app.userHandle)
.setSourceMetricsCategory(AppInfoSettingsProvider.METRICS_CATEGORY) .setSourceMetricsCategory(AppInfoSettingsProvider.METRICS_CATEGORY)
.launch() .launch()
} }

View File

@@ -36,6 +36,9 @@ import com.android.settings.R
import com.android.settings.fuelgauge.AdvancedPowerUsageDetail import com.android.settings.fuelgauge.AdvancedPowerUsageDetail
import com.android.settings.fuelgauge.batteryusage.BatteryChartPreferenceController import com.android.settings.fuelgauge.batteryusage.BatteryChartPreferenceController
import com.android.settings.fuelgauge.batteryusage.BatteryDiffEntry 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 com.android.settingslib.spaprivileged.model.app.userId
import org.junit.After import org.junit.After
import org.junit.Before import org.junit.Before
@@ -69,6 +72,7 @@ class AppBatteryPreferenceTest {
.mockStatic(AdvancedPowerUsageDetail::class.java) .mockStatic(AdvancedPowerUsageDetail::class.java)
.strictness(Strictness.LENIENT) .strictness(Strictness.LENIENT)
.startMocking() .startMocking()
context.mockAsUser()
whenever(context.resources).thenReturn(resources) whenever(context.resources).thenReturn(resources)
whenever(resources.getBoolean(R.bool.config_show_app_info_settings_battery)) whenever(resources.getBoolean(R.bool.config_show_app_info_settings_battery))
.thenReturn(true) .thenReturn(true)