From 8deb159e352aa482de5b0bcf56202002305d9c21 Mon Sep 17 00:00:00 2001 From: Wesley Wang Date: Fri, 28 Oct 2022 18:25:21 +0800 Subject: [PATCH 1/5] Fix app battery usage list launch incorrect works app - App usage page only use package name to launch the page, it can not identify the different userId between normal app and work profile app, add extra userId info into launch args - Remove no battery usage state/string if usage time is empty Bug: 251471047 Test: make SettingsRoboTests Change-Id: Id06ebb0f0fcd863e423acd7839f89bc0ae2444c1 Merged-In: Id06ebb0f0fcd863e423acd7839f89bc0ae2444c1 --- .../appinfo/AppBatteryPreferenceController.java | 2 +- .../manageapplications/ManageApplications.java | 3 ++- .../settings/fuelgauge/AdvancedPowerUsageDetail.java | 9 ++++----- .../settings/fuelgauge/AdvancedPowerUsageDetailTest.java | 9 +++++---- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java b/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java index 732163b6a36..747bd78b413 100644 --- a/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java +++ b/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java @@ -153,7 +153,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController } else { Log.i(TAG, "Launch : " + mPackageName + " with package name"); AdvancedPowerUsageDetail.startBatteryDetailPage(mParent.getActivity(), mParent, - mPackageName); + mPackageName, UserHandle.CURRENT); } return true; } diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java index 6b032fbbbd1..d335324a339 100644 --- a/src/com/android/settings/applications/manageapplications/ManageApplications.java +++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java @@ -659,7 +659,8 @@ public class ManageApplications extends InstrumentedFragment break; case LIST_TYPE_BATTERY_OPTIMIZATION: AdvancedPowerUsageDetail.startBatteryDetailPage( - getActivity(), this, mCurrentPkgName); + getActivity(), this, mCurrentPkgName, + UserHandle.getUserHandleForUid(mCurrentUid)); break; // TODO: Figure out if there is a way where we can spin up the profile's settings // process ahead of time, to avoid a long load of data when user clicks on a managed diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java index f6ed2a1a320..3705dfce3b4 100644 --- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java +++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java @@ -227,7 +227,8 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements * Start packageName's battery detail page. */ public static void startBatteryDetailPage( - Activity caller, Instrumentable instrumentable, String packageName) { + Activity caller, Instrumentable instrumentable, String packageName, + UserHandle userHandle) { final Bundle args = new Bundle(3); final PackageManager packageManager = caller.getPackageManager(); args.putString(EXTRA_PACKAGE_NAME, packageName); @@ -243,6 +244,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements .setTitleRes(R.string.battery_details_title) .setArguments(args) .setSourceMetricsCategory(instrumentable.getMetricsCategory()) + .setUserHandle(userHandle) .launch(); } @@ -531,7 +533,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements private CharSequence getAppActiveTime(Bundle bundle) { final long foregroundTimeMs = bundle.getLong(EXTRA_FOREGROUND_TIME); final long backgroundTimeMs = bundle.getLong(EXTRA_BACKGROUND_TIME); - final int consumedPower = bundle.getInt(EXTRA_POWER_USAGE_AMOUNT); final int uid = bundle.getInt(EXTRA_UID, 0); final String slotTime = bundle.getString(EXTRA_SLOT_TIME, null); final long totalTimeMs = foregroundTimeMs + backgroundTimeMs; @@ -543,9 +544,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements return null; } if (totalTimeMs == 0) { - usageTimeSummary = getText( - isChartGraphEnabled && consumedPower > 0 ? R.string.battery_usage_without_time - : R.string.battery_not_usage); + usageTimeSummary = getText(R.string.battery_usage_without_time); } else if (slotTime == null) { // Shows summary text with last full charge if slot time is null. usageTimeSummary = getAppFullChargeActiveSummary( diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java index 7c56ab393f0..381aa0cb66a 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java @@ -434,8 +434,7 @@ public class AdvancedPowerUsageDetailTest { ArgumentCaptor captor = ArgumentCaptor.forClass(CharSequence.class); verify(mEntityHeaderController).setSummary(captor.capture()); - assertThat(captor.getValue().toString()) - .isEqualTo("No usage from last full charge"); + assertThat(captor.getValue().toString()).isEmpty(); } @Test @@ -742,7 +741,8 @@ public class AdvancedPowerUsageDetailTest { public void startBatteryDetailPage_noBatteryUsage_hasBasicData() { final ArgumentCaptor captor = ArgumentCaptor.forClass(Intent.class); - AdvancedPowerUsageDetail.startBatteryDetailPage(mActivity, mFragment, PACKAGE_NAME[0]); + AdvancedPowerUsageDetail.startBatteryDetailPage( + mActivity, mFragment, PACKAGE_NAME[0], UserHandle.OWNER); verify(mActivity).startActivity(captor.capture()); @@ -760,7 +760,8 @@ public class AdvancedPowerUsageDetailTest { PackageManager.NameNotFoundException { doReturn(UID).when(mPackageManager).getPackageUid(PACKAGE_NAME[0], 0 /* no flag */); - AdvancedPowerUsageDetail.startBatteryDetailPage(mActivity, mFragment, PACKAGE_NAME[0]); + AdvancedPowerUsageDetail.startBatteryDetailPage( + mActivity, mFragment, PACKAGE_NAME[0], UserHandle.OWNER); assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_UID)).isEqualTo(UID); } From d3b35f24f07e24fa96469606df5e82a687b0006b Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Tue, 8 Nov 2022 08:54:36 +0000 Subject: [PATCH 2/5] [Settings] Hide data usage when SIM support is turn OFF Enable the UI control through configuration. Bug: 240515161 Test: local, auto test Merged-In: I5e49a2b0f2b563b426354f4d2e6e650dcc02c98b Merged-In: I4e0db5688dc1b074d43f9d77dd2f6d4cc53a353c Change-Id: I4e0db5688dc1b074d43f9d77dd2f6d4cc53a353c --- res/xml/app_data_usage.xml | 1 + .../AppDataUsagePreferenceController.java | 4 +- .../settings/datausage/AppDataUsage.java | 10 ++- .../datausage/BillingCycleSettings.java | 8 ++- .../settings/datausage/DataUsageSummary.java | 11 ++++ .../settings/datausage/AppDataUsageTest.java | 65 +++++++++++++++---- .../datausage/DataUsageSummaryTest.java | 11 +++- 7 files changed, 93 insertions(+), 17 deletions(-) diff --git a/res/xml/app_data_usage.xml b/res/xml/app_data_usage.xml index e94c4ff4ca2..aacc1f6027c 100644 --- a/res/xml/app_data_usage.xml +++ b/res/xml/app_data_usage.xml @@ -51,6 +51,7 @@ 0) { - if (!UserHandle.isApp(mAppItem.key)) { + if ((!isSimHardwareVisible(mContext)) || !UserHandle.isApp(mAppItem.key)) { final UidDetail uidDetail = uidDetailProvider.getUidDetail(mAppItem.key, true); mIcon = uidDetail.icon; mLabel = uidDetail.label; @@ -328,6 +333,9 @@ public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceC } private void updatePrefs(boolean restrictBackground, boolean unrestrictData) { + if (!isSimHardwareVisible(mContext)) { + return; + } setBackPreferenceListAnimatorIfLoaded(); final EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfMeteredDataRestricted( mContext, mPackageName, UserHandle.getUserId(mAppItem.key)); diff --git a/src/com/android/settings/datausage/BillingCycleSettings.java b/src/com/android/settings/datausage/BillingCycleSettings.java index 57931c1b36b..baf8e7ef499 100644 --- a/src/com/android/settings/datausage/BillingCycleSettings.java +++ b/src/com/android/settings/datausage/BillingCycleSettings.java @@ -42,6 +42,7 @@ import androidx.preference.SwitchPreference; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; +import com.android.settings.network.SubscriptionUtil; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.NetworkPolicyEditor; import com.android.settingslib.net.DataUsageController; @@ -102,6 +103,10 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements super.onCreate(icicle); final Context context = getContext(); + if (!SubscriptionUtil.isSimHardwareVisible(context)) { + finish(); + return; + } mDataUsageController = new DataUsageController(context); Bundle args = getArguments(); @@ -498,7 +503,8 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements @Override protected boolean isPageSearchEnabled(Context context) { - return DataUsageUtils.hasMobileData(context); + return SubscriptionUtil.isSimHardwareVisible(context) + && DataUsageUtils.hasMobileData(context); } }; diff --git a/src/com/android/settings/datausage/DataUsageSummary.java b/src/com/android/settings/datausage/DataUsageSummary.java index abcc45fdfec..fabf0596b77 100644 --- a/src/com/android/settings/datausage/DataUsageSummary.java +++ b/src/com/android/settings/datausage/DataUsageSummary.java @@ -75,11 +75,19 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage return R.string.help_url_data_usage; } + public boolean isSimHardwareVisible(Context context) { + return SubscriptionUtil.isSimHardwareVisible(context); + } + @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); Context context = getContext(); + if (!isSimHardwareVisible(context)) { + finish(); + return; + } enableProxySubscriptionManager(context); boolean hasMobileData = DataUsageUtils.hasMobileData(context); @@ -137,6 +145,9 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage protected List createPreferenceControllers(Context context) { final Activity activity = getActivity(); final ArrayList controllers = new ArrayList<>(); + if (!isSimHardwareVisible(context)) { + return controllers; + } mSummaryController = new DataUsageSummaryPreferenceController(activity, getSettingsLifecycle(), this, DataUsageUtils.getDefaultSubscriptionId(activity)); diff --git a/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java b/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java index 483d74638a7..bccec3ed8b0 100644 --- a/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java +++ b/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java @@ -110,7 +110,10 @@ public class AppDataUsageTest { @Test @Config(shadows = ShadowFragment.class) public void onCreate_appUid_shouldGetAppLabelFromAppInfo() throws NameNotFoundException { - mFragment = spy(new AppDataUsage()); + mFragment = spy(new AppDataUsage() { + @Override + public boolean isSimHardwareVisible(Context context) { return true; } + }); final FragmentActivity activity = spy(Robolectric.setupActivity(FragmentActivity.class)); doReturn(mPackageManager).when(activity).getPackageManager(); doReturn(activity).when(mFragment).getActivity(); @@ -140,7 +143,10 @@ public class AppDataUsageTest { @Test @Config(shadows = ShadowFragment.class) public void onCreate_notAppUid_shouldGetAppLabelFromUidDetailProvider() { - mFragment = spy(new AppDataUsage()); + mFragment = spy(new AppDataUsage() { + @Override + public boolean isSimHardwareVisible(Context context) { return true; } + }); ReflectionHelpers.setField(mFragment, "mDashboardFeatureProvider", FakeFeatureFactory.setupForTest().dashboardFeatureProvider); doReturn(Robolectric.setupActivity(FragmentActivity.class)).when(mFragment).getActivity(); @@ -167,7 +173,10 @@ public class AppDataUsageTest { @Test public void bindAppHeader_allWorkApps_shouldNotShowAppInfoLink() { - mFragment = spy(new AppDataUsage()); + mFragment = spy(new AppDataUsage() { + @Override + public boolean isSimHardwareVisible(Context context) { return true; } + }); when(mFragment.getPreferenceManager()) .thenReturn(mock(PreferenceManager.class, RETURNS_DEEP_STUBS)); @@ -184,7 +193,10 @@ public class AppDataUsageTest { throws PackageManager.NameNotFoundException { final int fakeUserId = 100; - mFragment = spy(new AppDataUsage()); + mFragment = spy(new AppDataUsage() { + @Override + public boolean isSimHardwareVisible(Context context) { return true; } + }); final ArraySet packages = new ArraySet<>(); packages.add("pkg"); final AppItem appItem = new AppItem(123456789); @@ -210,7 +222,10 @@ public class AppDataUsageTest { @Test public void changePreference_backgroundData_shouldUpdateUI() { - mFragment = spy(new AppDataUsage()); + mFragment = spy(new AppDataUsage() { + @Override + public boolean isSimHardwareVisible(Context context) { return true; } + }); final AppItem appItem = new AppItem(123456789); final RestrictedSwitchPreference pref = mock(RestrictedSwitchPreference.class); final DataSaverBackend dataSaverBackend = mock(DataSaverBackend.class); @@ -227,7 +242,10 @@ public class AppDataUsageTest { @Test public void updatePrefs_restrictedByAdmin_shouldDisablePreference() { - mFragment = spy(new AppDataUsage()); + mFragment = spy(new AppDataUsage() { + @Override + public boolean isSimHardwareVisible(Context context) { return true; } + }); final int testUid = 123123; final AppItem appItem = new AppItem(testUid); final RestrictedSwitchPreference restrictBackgroundPref @@ -255,7 +273,10 @@ public class AppDataUsageTest { @Test public void bindData_noAppUsageData_shouldHideCycleSpinner() { - mFragment = spy(new AppDataUsage()); + mFragment = spy(new AppDataUsage() { + @Override + public boolean isSimHardwareVisible(Context context) { return true; } + }); final SpinnerPreference cycle = mock(SpinnerPreference.class); ReflectionHelpers.setField(mFragment, "mCycle", cycle); final Preference preference = mock(Preference.class); @@ -271,7 +292,10 @@ public class AppDataUsageTest { @Test public void bindData_hasAppUsageData_shouldShowCycleSpinnerAndUpdateUsageSummary() { - mFragment = spy(new AppDataUsage()); + mFragment = spy(new AppDataUsage() { + @Override + public boolean isSimHardwareVisible(Context context) { return true; } + }); final Context context = RuntimeEnvironment.application; ReflectionHelpers.setField(mFragment, "mContext", context); final long backgroundBytes = 1234L; @@ -300,7 +324,10 @@ public class AppDataUsageTest { @Test public void onCreateLoader_categoryApp_shouldQueryDataUsageUsingAppKey() { - mFragment = new AppDataUsage(); + mFragment = new AppDataUsage() { + @Override + public boolean isSimHardwareVisible(Context context) { return true; } + }; final Context context = RuntimeEnvironment.application; final int testUid = 123123; final AppItem appItem = new AppItem(testUid); @@ -323,7 +350,10 @@ public class AppDataUsageTest { @Test public void onCreateLoader_categoryUser_shouldQueryDataUsageUsingAssociatedUids() { - mFragment = new AppDataUsage(); + mFragment = new AppDataUsage() { + @Override + public boolean isSimHardwareVisible(Context context) { return true; } + }; final Context context = RuntimeEnvironment.application; final int testUserId = 11; final AppItem appItem = new AppItem(testUserId); @@ -360,7 +390,10 @@ public class AppDataUsageTest { appItem.category = AppItem.CATEGORY_APP; appItem.addUid(uid); - mFragment = new AppDataUsage(); + mFragment = new AppDataUsage() { + @Override + public boolean isSimHardwareVisible(Context context) { return true; } + }; ReflectionHelpers.setField(mFragment, "mContext", RuntimeEnvironment.application); ReflectionHelpers.setField(mFragment, "mCycles", testCycles); ReflectionHelpers.setField(mFragment, "mAppItem", appItem); @@ -393,7 +426,10 @@ public class AppDataUsageTest { builder.setStartTime(tenDaysAgo).setEndTime(now).setTotalUsage(1234L); data.add(builder.build()); - mFragment = new AppDataUsage(); + mFragment = new AppDataUsage() { + @Override + public boolean isSimHardwareVisible(Context context) { return true; } + }; ReflectionHelpers.setField(mFragment, "mContext", RuntimeEnvironment.application); ReflectionHelpers.setField(mFragment, "mCycleAdapter", mock(CycleAdapter.class)); ReflectionHelpers.setField(mFragment, "mSelectedCycle", tenDaysAgo); @@ -420,7 +456,10 @@ public class AppDataUsageTest { ShadowDataUsageUtils.HAS_SIM = false; ShadowSubscriptionManager.setDefaultDataSubscriptionId( SubscriptionManager.INVALID_SUBSCRIPTION_ID); - mFragment = spy(new AppDataUsage()); + mFragment = spy(new AppDataUsage() { + @Override + public boolean isSimHardwareVisible(Context context) { return true; } + }); doReturn(Robolectric.setupActivity(FragmentActivity.class)).when(mFragment).getActivity(); doReturn(RuntimeEnvironment.application).when(mFragment).getContext(); final UidDetailProvider uidDetailProvider = mock(UidDetailProvider.class); diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java index 6d1081416dd..68d49fc6352 100644 --- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java +++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java @@ -29,12 +29,15 @@ import static org.mockito.Mockito.verify; import android.app.usage.NetworkStatsManager; import android.content.Context; +import android.content.res.Resources; import android.net.NetworkPolicyManager; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import androidx.fragment.app.FragmentActivity; +import com.android.settings.R; + import com.android.settings.testutils.shadow.ShadowDashboardFragment; import com.android.settings.testutils.shadow.ShadowDataUsageUtils; import com.android.settings.testutils.shadow.ShadowUserManager; @@ -70,6 +73,7 @@ public class DataUsageSummaryTest { private NetworkStatsManager mNetworkStatsManager; private TelephonyManager mTelephonyManager; private Context mContext; + private Resources mResources; private FragmentActivity mActivity; /** @@ -84,13 +88,18 @@ public class DataUsageSummaryTest { ShadowUserManager.getShadow().setIsAdminUser(true); shadowContext.setSystemService(Context.NETWORK_POLICY_SERVICE, mNetworkPolicyManager); - mContext = RuntimeEnvironment.application; + mContext = spy(RuntimeEnvironment.application); mTelephonyManager = mContext.getSystemService(TelephonyManager.class); final ShadowTelephonyManager shadowTelephonyManager = Shadows.shadowOf(mTelephonyManager); shadowTelephonyManager.setTelephonyManagerForSubscriptionId( SubscriptionManager.INVALID_SUBSCRIPTION_ID, mTelephonyManager); shadowTelephonyManager.setTelephonyManagerForSubscriptionId(1, mTelephonyManager); mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).get()); + + mResources = spy(mContext.getResources()); + doReturn(mResources).when(mContext).getResources(); + doReturn(true).when(mResources).getBoolean(R.bool.config_show_sim_info); + doReturn(mNetworkStatsManager).when(mActivity).getSystemService(NetworkStatsManager.class); } From 2a6792540ba1e8f3ee7481c4cd8c0e903a54ba66 Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Fri, 21 Oct 2022 13:42:38 +0000 Subject: [PATCH 3/5] [Settings] enhancing data saver config control Enhancing the control of R.bool.config_show_data_saver when false, which including: 1. Initial presentation is invisible 2. Leaving UI when triggered 3. Avoid from getting searched 4. Robolectric test case support Bug: 243877672 Test: test cases and local testing Merged-In: I909522c0244ebb012a27d6aff34120a4f90128c6 Change-Id: I909522c0244ebb012a27d6aff34120a4f90128c6 --- res/xml/network_provider_internet.xml | 1 + res/xml/special_access.xml | 1 + .../settings/datausage/DataSaverSummary.java | 13 ++++++++++++- .../specialaccess/DataSaverControllerTest.java | 16 ++++++++++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/res/xml/network_provider_internet.xml b/res/xml/network_provider_internet.xml index c9c576e6b1b..981afb3b3e6 100644 --- a/res/xml/network_provider_internet.xml +++ b/res/xml/network_provider_internet.xml @@ -99,6 +99,7 @@ android:title="@string/data_saver_title" android:icon="@drawable/ic_settings_data_usage" android:order="10" + settings:isPreferenceVisible="@bool/config_show_data_saver" android:fragment="com.android.settings.datausage.DataSaverSummary"/> Date: Thu, 10 Nov 2022 13:18:12 +0000 Subject: [PATCH 4/5] [Settings] Improve PremiumSMS's auto test Fix PremiumSMS's test case when config_show_premium_sms is false. Bug: 240515161 Test: test cases and local testing Change-Id: I3f1710bcf2c123553af7646c030bfe87f569324a --- res/xml/special_access.xml | 1 + .../premiumsms/PremiumSmsControllerTest.java | 16 ++++++++++++++++ ...PremiumSmsScreenPreferenceControllerTest.java | 16 ++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/res/xml/special_access.xml b/res/xml/special_access.xml index 5b37f6a9781..40ed35ebbc4 100644 --- a/res/xml/special_access.xml +++ b/res/xml/special_access.xml @@ -97,6 +97,7 @@ android:key="premium_sms" android:title="@string/premium_sms_access" android:fragment="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsAccess" + settings:isPreferenceVisible="@bool/config_show_premium_sms" settings:controller="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsController" /> Date: Mon, 17 Oct 2022 15:32:24 +0800 Subject: [PATCH 5/5] Shorten the search box hint for two-pane layout Change from "Search settings" to "Search". Fix: 248006011 Test: visual Change-Id: I76a1fa0f8c38e5438f2b01a1b6d83cae3968502c Merged-In: I76a1fa0f8c38e5438f2b01a1b6d83cae3968502c (cherry picked from commit 3aec52141d1a54b854dcacc6d808cb45a610b207) --- res/layout/search_bar_two_pane_version.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/layout/search_bar_two_pane_version.xml b/res/layout/search_bar_two_pane_version.xml index 9ce220c8c5f..f98985ce46d 100644 --- a/res/layout/search_bar_two_pane_version.xml +++ b/res/layout/search_bar_two_pane_version.xml @@ -38,6 +38,6 @@ android:layout_height="wrap_content" android:paddingStart="@dimen/search_bar_title_padding_start_regular_two_pane" android:layout_gravity="start" - android:text="@string/search_menu"/> + android:text="@string/search_settings"/> \ No newline at end of file