diff --git a/core/tests/batterystatstests/BatteryStatsViewer/AndroidManifest.xml b/core/tests/batterystatstests/BatteryStatsViewer/AndroidManifest.xml
index d49ab57dc1dff..52a77a7862a1d 100644
--- a/core/tests/batterystatstests/BatteryStatsViewer/AndroidManifest.xml
+++ b/core/tests/batterystatstests/BatteryStatsViewer/AndroidManifest.xml
@@ -25,8 +25,7 @@
-
@@ -36,7 +35,9 @@
-
+
diff --git a/core/tests/batterystatstests/BatteryStatsViewer/src/com/android/frameworks/core/batterystatsviewer/BatteryConsumerPickerActivity.java b/core/tests/batterystatstests/BatteryStatsViewer/src/com/android/frameworks/core/batterystatsviewer/BatteryConsumerPickerActivity.java
index 2db848b084a6f..63a15d6c63b47 100644
--- a/core/tests/batterystatstests/BatteryStatsViewer/src/com/android/frameworks/core/batterystatsviewer/BatteryConsumerPickerActivity.java
+++ b/core/tests/batterystatstests/BatteryStatsViewer/src/com/android/frameworks/core/batterystatsviewer/BatteryConsumerPickerActivity.java
@@ -20,9 +20,7 @@ import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
-import androidx.activity.result.contract.ActivityResultContract;
import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentStatePagerAdapter;
@@ -32,31 +30,14 @@ import com.google.android.material.tabs.TabLayout;
/**
* Picker, showing a sorted lists of applications and other types of entities consuming power.
- * Returns the selected entity ID or null.
+ * Opens BatteryStatsViewerActivity upon item selection.
*/
public class BatteryConsumerPickerActivity extends FragmentActivity {
-
- public static final ActivityResultContract CONTRACT =
- new ActivityResultContract() {
- @NonNull
- @Override
- public Intent createIntent(@NonNull Context context, Void aVoid) {
- return new Intent(context, BatteryConsumerPickerActivity.class);
- }
-
- @Override
- public String parseResult(int resultCode, @Nullable Intent intent) {
- if (resultCode != RESULT_OK || intent == null) {
- return null;
- }
- return intent.getStringExtra(Intent.EXTRA_RETURN_RESULT);
- }
- };
+ private static final String PREF_SELECTED_BATTERY_CONSUMER = "batteryConsumerId";
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
- getActionBar().setDisplayHomeAsUpEnabled(true);
setContentView(R.layout.battery_consumer_picker_activity_layout);
@@ -99,18 +80,25 @@ public class BatteryConsumerPickerActivity extends FragmentActivity {
viewPager.setAdapter(adapter);
TabLayout tabLayout = findViewById(R.id.tab_layout);
tabLayout.setupWithViewPager(viewPager);
+ if (icicle == null) {
+ final String batteryConsumerId = getPreferences(Context.MODE_PRIVATE)
+ .getString(PREF_SELECTED_BATTERY_CONSUMER, null);
+ if (batteryConsumerId != null) {
+ startBatteryStatsActivity(batteryConsumerId);
+ }
+ }
}
public void setSelectedBatteryConsumer(String batteryConsumerId) {
- Intent intent = new Intent();
- intent.putExtra(Intent.EXTRA_RETURN_RESULT, batteryConsumerId);
- setResult(RESULT_OK, intent);
- finish();
+ getPreferences(Context.MODE_PRIVATE).edit()
+ .putString(PREF_SELECTED_BATTERY_CONSUMER, batteryConsumerId)
+ .apply();
+ startBatteryStatsActivity(batteryConsumerId);
}
- @Override
- public boolean onNavigateUp() {
- onBackPressed();
- return true;
+ private void startBatteryStatsActivity(String batteryConsumerId) {
+ final Intent intent = new Intent(this, BatteryStatsViewerActivity.class)
+ .putExtra(BatteryStatsViewerActivity.EXTRA_BATTERY_CONSUMER, batteryConsumerId);
+ startActivity(intent);
}
}
diff --git a/core/tests/batterystatstests/BatteryStatsViewer/src/com/android/frameworks/core/batterystatsviewer/BatteryStatsViewerActivity.java b/core/tests/batterystatstests/BatteryStatsViewer/src/com/android/frameworks/core/batterystatsviewer/BatteryStatsViewerActivity.java
index 74d3fb336f407..03dde04519cef 100644
--- a/core/tests/batterystatstests/BatteryStatsViewer/src/com/android/frameworks/core/batterystatsviewer/BatteryStatsViewerActivity.java
+++ b/core/tests/batterystatstests/BatteryStatsViewer/src/com/android/frameworks/core/batterystatsviewer/BatteryStatsViewerActivity.java
@@ -17,7 +17,6 @@
package com.android.frameworks.core.batterystatsviewer;
import android.content.Context;
-import android.content.SharedPreferences;
import android.os.BatteryStatsManager;
import android.os.BatteryUsageStats;
import android.os.BatteryUsageStatsQuery;
@@ -27,9 +26,9 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
+import android.widget.Toast;
import androidx.activity.ComponentActivity;
-import androidx.activity.result.ActivityResultLauncher;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.loader.app.LoaderManager;
@@ -45,14 +44,14 @@ import java.util.List;
import java.util.Locale;
public class BatteryStatsViewerActivity extends ComponentActivity {
+ public static final String EXTRA_BATTERY_CONSUMER = "batteryConsumerId";
+
private static final int BATTERY_STATS_REFRESH_RATE_MILLIS = 60 * 1000;
private static final int MILLIS_IN_MINUTE = 60000;
- private static final String PREF_SELECTED_BATTERY_CONSUMER = "batteryConsumerId";
private static final int LOADER_BATTERY_USAGE_STATS = 1;
private BatteryStatsDataAdapter mBatteryStatsDataAdapter;
private final Runnable mBatteryStatsRefresh = this::periodicBatteryStatsRefresh;
- private SharedPreferences mSharedPref;
private String mBatteryConsumerId;
private TextView mTitleView;
private TextView mDetailsView;
@@ -62,21 +61,16 @@ public class BatteryStatsViewerActivity extends ComponentActivity {
private RecyclerView mBatteryConsumerDataView;
private View mLoadingView;
private View mEmptyView;
- private final ActivityResultLauncher mStartAppPicker = registerForActivityResult(
- BatteryConsumerPickerActivity.CONTRACT, this::onApplicationSelected);
private List mBatteryUsageStats;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- mSharedPref = getPreferences(Context.MODE_PRIVATE);
+ mBatteryConsumerId = getIntent().getStringExtra(EXTRA_BATTERY_CONSUMER);
setContentView(R.layout.battery_stats_viewer_layout);
- View appCard = findViewById(R.id.app_card);
- appCard.setOnClickListener((e) -> startAppPicker());
-
mTitleView = findViewById(android.R.id.title);
mDetailsView = findViewById(R.id.details);
mIconView = findViewById(android.R.id.icon);
@@ -91,11 +85,7 @@ public class BatteryStatsViewerActivity extends ComponentActivity {
mLoadingView = findViewById(R.id.loading_view);
mEmptyView = findViewById(R.id.empty_view);
- mBatteryConsumerId = mSharedPref.getString(PREF_SELECTED_BATTERY_CONSUMER, null);
loadBatteryStats();
- if (mBatteryConsumerId == null) {
- startAppPicker();
- }
}
@Override
@@ -110,25 +100,6 @@ public class BatteryStatsViewerActivity extends ComponentActivity {
getMainThreadHandler().removeCallbacks(mBatteryStatsRefresh);
}
- private void startAppPicker() {
- mStartAppPicker.launch(null);
- }
-
- private void onApplicationSelected(String batteryConsumerId) {
- if (batteryConsumerId == null) {
- if (mBatteryConsumerId == null) {
- finish();
- }
- } else {
- mBatteryConsumerId = batteryConsumerId;
- mSharedPref.edit()
- .putString(PREF_SELECTED_BATTERY_CONSUMER, mBatteryConsumerId)
- .apply();
- mLoadingView.setVisibility(View.VISIBLE);
- loadBatteryStats();
- }
- }
-
private void periodicBatteryStatsRefresh() {
loadBatteryStats();
getMainThreadHandler().postDelayed(mBatteryStatsRefresh, BATTERY_STATS_REFRESH_RATE_MILLIS);
@@ -200,9 +171,10 @@ public class BatteryStatsViewerActivity extends ComponentActivity {
BatteryConsumerInfoHelper.BatteryConsumerInfo
batteryConsumerInfo = batteryConsumerData.getBatteryConsumerInfo();
if (batteryConsumerInfo == null) {
- mTitleView.setText("Battery consumer not found");
- mPackagesView.setVisibility(View.GONE);
- mHeadingsView.setVisibility(View.GONE);
+ Toast.makeText(this, "Battery consumer not found: " + mBatteryConsumerId,
+ Toast.LENGTH_SHORT).show();
+ finish();
+ return;
} else {
mTitleView.setText(batteryConsumerInfo.label);
if (batteryConsumerInfo.details != null) {