diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java index 957efdf7bed..c21625881fa 100644 --- a/src/com/android/settings/SettingsActivity.java +++ b/src/com/android/settings/SettingsActivity.java @@ -370,8 +370,9 @@ public class SettingsActivity extends SettingsBaseActivity final SplitStateObserver splitStateObserver = new SplitStateObserver(this /* activity*/, true /* listenOnce */, splitInfos -> { - if (!splitInfos.isEmpty()) { - // It's already in 2-pane and no need to go 2-pane deep link flow. + if (!splitInfos.isEmpty() || !SettingsActivity.this.isTaskRoot()) { + // It's already in 2-pane or in a non-empty task, there is no need to go + // 2-pane deep link flow. return; } diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java index cd518a6018f..3741bfe8045 100644 --- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java +++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java @@ -29,7 +29,6 @@ import android.os.UserHandle; import android.text.TextUtils; import android.text.format.DateUtils; import android.util.Log; -import android.util.Pair; import android.view.View; import androidx.annotation.VisibleForTesting; @@ -87,6 +86,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements private static final String KEY_PREF_OPTIMIZED = "optimized_pref"; private static final String KEY_PREF_RESTRICTED = "restricted_pref"; private static final String KEY_FOOTER_PREFERENCE = "app_usage_footer_preference"; + private static final String PACKAGE_NAME_NONE = "none"; private static final int REQUEST_UNINSTALL = 0; private static final int REQUEST_REMOVE_DEVICE_ADMIN = 1; @@ -484,14 +484,14 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements } if (metricCategory != 0) { + final String packageName = mBatteryOptimizeUtils.getPackageName(); FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider() .action( - getContext(), - metricCategory, - new Pair(ConvertUtils.METRIC_KEY_PACKAGE, - mBatteryOptimizeUtils.getPackageName()), - new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE, - getArguments().getString(EXTRA_POWER_USAGE_PERCENT))); + /* attribution */ SettingsEnums.OPEN_APP_BATTERY_USAGE, + /* action */ metricCategory, + /* pageId */ SettingsEnums.OPEN_APP_BATTERY_USAGE, + TextUtils.isEmpty(packageName) ? PACKAGE_NAME_NONE : packageName, + getArguments().getInt(EXTRA_POWER_USAGE_AMOUNT)); } } diff --git a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java index 4249c44493f..90a86f165c4 100644 --- a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java @@ -28,7 +28,6 @@ import android.text.TextUtils; import android.text.format.DateFormat; import android.text.format.DateUtils; import android.util.Log; -import android.util.Pair; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; @@ -65,6 +64,7 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll ExpandDividerPreference.OnExpandListener { private static final String TAG = "BatteryChartPreferenceController"; private static final String KEY_FOOTER_PREF = "battery_graph_footer"; + private static final String PACKAGE_NAME_NONE = "none"; /** Desired battery history size for timestamp slots. */ public static final int DESIRED_HISTORY_SIZE = 25; @@ -223,13 +223,13 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll final String packageName = histEntry.mPackageName; final boolean isAppEntry = histEntry.isAppEntry(); mMetricsFeatureProvider.action( - mPrefContext, - isAppEntry - ? SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM - : SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM, - new Pair(ConvertUtils.METRIC_KEY_PACKAGE, packageName), - new Pair(ConvertUtils.METRIC_KEY_BATTERY_LEVEL, histEntry.mBatteryLevel), - new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE, powerPref.getPercent())); + /* attribution */ SettingsEnums.OPEN_BATTERY_USAGE, + /* action */ isAppEntry + ? SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM + : SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM, + /* pageId */ SettingsEnums.OPEN_BATTERY_USAGE, + TextUtils.isEmpty(packageName) ? PACKAGE_NAME_NONE : packageName, + (int) Math.round(diffEntry.getPercentOfTotal())); Log.d(TAG, String.format("handleClick() label=%s key=%s package=%s", diffEntry.getAppLabel(), histEntry.getKey(), histEntry.mPackageName)); AdvancedPowerUsageDetail.startBatteryDetailPage( diff --git a/src/com/android/settings/fuelgauge/BatterySaverController.java b/src/com/android/settings/fuelgauge/BatterySaverController.java index 15070c3e8d2..c712ab0f752 100644 --- a/src/com/android/settings/fuelgauge/BatterySaverController.java +++ b/src/com/android/settings/fuelgauge/BatterySaverController.java @@ -63,7 +63,7 @@ public class BatterySaverController extends BasePreferenceController @Override public int getAvailabilityStatus() { - return AVAILABLE_UNSEARCHABLE; + return AVAILABLE; } @Override diff --git a/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java b/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java index 6ddcf2396c9..bcc55e3a2db 100644 --- a/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java +++ b/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java @@ -16,7 +16,6 @@ package com.android.settings.localepicker; -import android.app.Activity; import android.app.FragmentTransaction; import android.content.Intent; import android.os.Bundle; @@ -24,8 +23,11 @@ import android.view.MenuItem; import com.android.internal.app.LocalePickerWithRegion; import com.android.internal.app.LocaleStore; +import com.android.settings.R; +import com.android.settings.core.SettingsBaseActivity; -public class LocalePickerWithRegionActivity extends Activity +/** A activity to show the locale picker page. */ +public class LocalePickerWithRegionActivity extends SettingsBaseActivity implements LocalePickerWithRegion.LocaleSelectedListener { private static final String PARENT_FRAGMENT_NAME = "localeListEditor"; @@ -40,7 +42,7 @@ public class LocalePickerWithRegionActivity extends Activity getFragmentManager() .beginTransaction() .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) - .replace(android.R.id.content, selector) + .replace(R.id.content_frame, selector) .addToBackStack(PARENT_FRAGMENT_NAME) .commit(); } diff --git a/src/com/android/settings/network/MobileNetworkSummaryController.java b/src/com/android/settings/network/MobileNetworkSummaryController.java index f2e28a33888..bd28e70255d 100644 --- a/src/com/android/settings/network/MobileNetworkSummaryController.java +++ b/src/com/android/settings/network/MobileNetworkSummaryController.java @@ -33,9 +33,9 @@ import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.R; +import com.android.settings.activityembedding.ActivityEmbeddingRulesController; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.dashboard.DashboardFragment; -import com.android.settings.network.helper.SelectableSubscriptions; import com.android.settings.network.helper.SubscriptionAnnotation; import com.android.settings.network.telephony.MobileNetworkActivity; import com.android.settings.overlay.FeatureFactory; @@ -202,6 +202,12 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController || mStatusCache.isPhysicalSimDisableSupport()) { final Intent intent = new Intent(mContext, MobileNetworkActivity.class); intent.putExtra(Settings.EXTRA_SUB_ID, info.getSubscriptionId()); + // MobilenetworkActivity is singleTask, set SplitPairRule to show in 2-pane. + ActivityEmbeddingRulesController.registerTwoPanePairRuleForSettingsHome( + mContext, + intent.getComponent(), + null /* secondaryIntentAction */, + false /* clearTop */); mContext.startActivity(intent); return true; } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java index db002cb047f..0a48cd1b12f 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java @@ -806,12 +806,11 @@ public class AdvancedPowerUsageDetailTest { verify(mMetricsFeatureProvider) .action( - mContext, + SettingsEnums.OPEN_APP_BATTERY_USAGE, SettingsEnums.ACTION_APP_BATTERY_USAGE_OPTIMIZED, - (Pair[]) new Pair[] { - new Pair(ConvertUtils.METRIC_KEY_PACKAGE, null), - new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE, "app label") - }); + SettingsEnums.OPEN_APP_BATTERY_USAGE, + /* package name*/ "none", + /* consumed battery */ 0); } @Test diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java index a9a743b2af2..1d74491a0e1 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java @@ -343,14 +343,12 @@ public final class BatteryChartPreferenceControllerTest { assertThat(mBatteryChartPreferenceController.handlePreferenceTreeClick( mPowerGaugePreference)).isTrue(); verify(mMetricsFeatureProvider) - .action( - mContext, - SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM, - (Pair[]) new Pair[] { - new Pair(ConvertUtils.METRIC_KEY_PACKAGE, null), - new Pair(ConvertUtils.METRIC_KEY_BATTERY_LEVEL, 0), - new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE, null) - }); + .action( + SettingsEnums.OPEN_BATTERY_USAGE, + SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM, + SettingsEnums.OPEN_BATTERY_USAGE, + /* package name */ "none", + /* percentage of total */ 0); } @Test @@ -362,14 +360,12 @@ public final class BatteryChartPreferenceControllerTest { assertThat(mBatteryChartPreferenceController.handlePreferenceTreeClick( mPowerGaugePreference)).isTrue(); verify(mMetricsFeatureProvider) - .action( - mContext, - SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM, - (Pair[]) new Pair[] { - new Pair(ConvertUtils.METRIC_KEY_PACKAGE, null), - new Pair(ConvertUtils.METRIC_KEY_BATTERY_LEVEL, 0), - new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE, null) - }); + .action( + SettingsEnums.OPEN_BATTERY_USAGE, + SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM, + SettingsEnums.OPEN_BATTERY_USAGE, + /* package name */ "none", + /* percentage of total */ 0); } @Test diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java index 52060a0dbcf..ddb9860838e 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java @@ -117,4 +117,10 @@ public class BatterySaverControllerTest { assertThat(mBatterySaverController.getSummary()).isEqualTo("Off"); } + + @Test + public void getAvailabilityStatus_returnAvailable() { + assertThat(mBatterySaverController.getAvailabilityStatus()) + .isEqualTo(BatterySaverController.AVAILABLE); + } }