Merge "Fix: policy enforcement for location wifi scanning"
diff --git a/Android.bp b/Android.bp
index 619a390..5bf5514 100644
--- a/Android.bp
+++ b/Android.bp
@@ -35,6 +35,15 @@
],
}
+java_library {
+ name: "Settings-change-ids",
+ srcs: ["src/com/android/settings/ChangeIds.java"],
+ libs: [
+ "app-compat-annotations",
+ ],
+}
+
+
// Build the Settings APK
android_library {
name: "Settings-core",
@@ -77,18 +86,18 @@
"lottie",
"WifiTrackerLib",
"SettingsLibActivityEmbedding",
+ "Settings-change-ids",
],
libs: [
"telephony-common",
"ims-common",
- "app-compat-annotations",
],
}
platform_compat_config {
name: "settings-platform-compat-config",
- src: ":Settings-core",
+ src: ":Settings-change-ids",
system_ext_specific: true,
}
@@ -126,7 +135,7 @@
// over all the sources together.
filegroup {
name: "Settings_srcs",
- srcs: ["src/**/*.java"],
+ srcs: ["src/**/*.java", "src/**/*.kt"],
}
filegroup {
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 321e535..3212d2f 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1108,10 +1108,6 @@
android:label="@string/wallpaper_settings_fragment_title"
android:icon="@drawable/ic_wallpaper"
android:exported="true">
- <intent-filter>
- <action android:name="android.settings.WALLPAPER_SETTINGS"/>
- <category android:name="android.intent.category.DEFAULT"/>
- </intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.wallpaper.WallpaperTypeSettings" />
<meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
@@ -1124,15 +1120,19 @@
android:exported="true"
android:theme="@android:style/Theme.NoDisplay">
<intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="com.android.settings.suggested.category.FIRST_IMPRESSION" />
+ <action android:name="android.settings.WALLPAPER_SETTINGS"/>
+ <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="com.android.settings.suggested.category.PERSONALIZE" />
+ <action android:name="android.intent.action.MAIN"/>
+ <category android:name="com.android.settings.suggested.category.FIRST_IMPRESSION"/>
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN"/>
+ <category android:name="com.android.settings.suggested.category.PERSONALIZE"/>
</intent-filter>
<meta-data android:name="com.android.settings.title"
- android:resource="@string/wallpaper_suggestion_title" />
+ android:resource="@string/wallpaper_suggestion_title"/>
<meta-data android:name="com.android.settings.summary"
android:resource="@string/wallpaper_suggestion_summary" />
<meta-data android:name="com.android.settings.dismiss"
diff --git a/OWNERS b/OWNERS
index e199efb..c2ff692 100644
--- a/OWNERS
+++ b/OWNERS
@@ -3,6 +3,7 @@
# People who can approve changes for submission
arcwang@google.com
+chaohuiw@google.com
chiujason@google.com
edgarwang@google.com
emilychuang@google.com
diff --git a/res/layout/accessibility_launch_activity_preference.xml b/res/layout/accessibility_launch_activity_preference.xml
index 772bb84..0e3e225 100644
--- a/res/layout/accessibility_launch_activity_preference.xml
+++ b/res/layout/accessibility_launch_activity_preference.xml
@@ -33,5 +33,6 @@
android:layout_gravity="center_vertical"
android:ellipsize="end"
android:textAppearance="?android:attr/textAppearanceListItem"
+ android:hyphenationFrequency="normalFast"
style="@style/MainSwitchText.Settingslib" />
</LinearLayout>
diff --git a/res/layout/accessibility_shortcut_secondary_action.xml b/res/layout/accessibility_shortcut_secondary_action.xml
index bdb129f..ddbadb5 100644
--- a/res/layout/accessibility_shortcut_secondary_action.xml
+++ b/res/layout/accessibility_shortcut_secondary_action.xml
@@ -59,6 +59,7 @@
android:layout_height="wrap_content"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceListItem"
+ android:hyphenationFrequency="normalFast"
android:ellipsize="marquee" />
<TextView
@@ -69,6 +70,7 @@
android:layout_alignStart="@android:id/title"
android:textAppearance="?android:attr/textAppearanceListItemSecondary"
android:textColor="?android:attr/textColorSecondary"
+ android:hyphenationFrequency="normalFast"
android:maxLines="10" />
</RelativeLayout>
diff --git a/res/layout/apn_preference_layout.xml b/res/layout/apn_preference_layout.xml
index 4d98443..2c453aa 100644
--- a/res/layout/apn_preference_layout.xml
+++ b/res/layout/apn_preference_layout.xml
@@ -51,6 +51,7 @@
android:textAppearance="?android:attr/textAppearanceListItemSecondary"
android:textColor="?android:attr/textColorSecondary"
android:focusable="false"
+ android:hyphenationFrequency="normalFast"
android:maxLines="2" />
</RelativeLayout>
diff --git a/res/layout/app_preference_item.xml b/res/layout/app_preference_item.xml
index 85d6bb0..c685760 100755
--- a/res/layout/app_preference_item.xml
+++ b/res/layout/app_preference_item.xml
@@ -56,6 +56,7 @@
android:paddingEnd="7dip"
android:ellipsize="marquee"
android:duplicateParentState="true"
+ android:hyphenationFrequency="normalFast"
/>
<TextView
android:id="@android:id/summary"
@@ -67,6 +68,7 @@
android:ellipsize="marquee"
android:visibility="gone"
android:duplicateParentState="true"
+ android:hyphenationFrequency="normalFast"
/>
</LinearLayout>
<TextView
diff --git a/res/layout/battery_active_view.xml b/res/layout/battery_active_view.xml
index bdc0328..1583b95 100644
--- a/res/layout/battery_active_view.xml
+++ b/res/layout/battery_active_view.xml
@@ -28,6 +28,7 @@
android:layout_height="wrap_content"
android:textAlignment="viewStart"
android:textAppearance="?android:attr/textAppearanceMedium"
+ android:hyphenationFrequency="normalFast"
android:textColor="?android:attr/textColorSecondary" />
<com.android.settings.fuelgauge.BatteryActiveView
diff --git a/res/layout/homepage_preference.xml b/res/layout/homepage_preference.xml
index 59dc7c4..97557b0 100644
--- a/res/layout/homepage_preference.xml
+++ b/res/layout/homepage_preference.xml
@@ -62,6 +62,7 @@
android:layout_height="wrap_content"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceListItem"
+ android:hyphenationFrequency="normalFast"
android:ellipsize="marquee"/>
<TextView
@@ -75,6 +76,7 @@
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorSecondary"
android:maxLines="4"
+ android:hyphenationFrequency="normalFast"
style="@style/PreferenceSummaryTextStyle"/>
</RelativeLayout>
</LinearLayout>
diff --git a/res/layout/horizontal_preference.xml b/res/layout/horizontal_preference.xml
index e50fc3f..d87963c 100644
--- a/res/layout/horizontal_preference.xml
+++ b/res/layout/horizontal_preference.xml
@@ -30,6 +30,7 @@
android:textAppearance="?android:attr/textAppearanceListItem"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
+ android:hyphenationFrequency="normalFast"
android:layout_weight="1" />
<TextView
@@ -39,6 +40,7 @@
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="1"
+ android:hyphenationFrequency="normalFast"
android:gravity="end|bottom" />
</LinearLayout>
diff --git a/res/layout/notification_app.xml b/res/layout/notification_app.xml
index 54060c1..2d17c8d 100644
--- a/res/layout/notification_app.xml
+++ b/res/layout/notification_app.xml
@@ -38,6 +38,7 @@
android:ellipsize="end"
android:singleLine="true"
android:textAlignment="viewStart"
+ android:hyphenationFrequency="normalFast"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
@@ -50,6 +51,7 @@
android:singleLine="true"
android:textAlignment="viewStart"
android:textColor="?android:attr/textColorSecondary"
+ android:hyphenationFrequency="normalFast"
android:textAppearance="?android:attr/textAppearanceSmall" />
<View
diff --git a/res/layout/preference_app_restrictions.xml b/res/layout/preference_app_restrictions.xml
index 698f1ed..f92f683 100644
--- a/res/layout/preference_app_restrictions.xml
+++ b/res/layout/preference_app_restrictions.xml
@@ -61,6 +61,7 @@
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceMedium"
android:ellipsize="marquee"
+ android:hyphenationFrequency="normalFast"
android:fadingEdge="horizontal"/>
<TextView
android:id="@android:id/summary"
@@ -74,6 +75,7 @@
android:textSize="13sp"
android:textColor="?android:attr/textColorSecondary"
android:focusable="false"
+ android:hyphenationFrequency="normalFast"
android:maxLines="4" />
</RelativeLayout>
</LinearLayout>
diff --git a/res/layout/preference_balance_slider.xml b/res/layout/preference_balance_slider.xml
index 7f1e809..3f1c4ed 100644
--- a/res/layout/preference_balance_slider.xml
+++ b/res/layout/preference_balance_slider.xml
@@ -45,6 +45,7 @@
android:textAppearance="?android:attr/textAppearanceListItem"
android:textColor="?android:attr/textColorPrimary"
android:ellipsize="marquee"
+ android:hyphenationFrequency="normalFast"
android:fadingEdge="horizontal"/>
<LinearLayout
android:id="@android:id/widget_frame"
diff --git a/res/layout/preference_icon.xml b/res/layout/preference_icon.xml
index 590a05a..1312979 100644
--- a/res/layout/preference_icon.xml
+++ b/res/layout/preference_icon.xml
@@ -57,6 +57,7 @@
android:layout_below="@android:id/title"
android:layout_alignStart="@android:id/title"
android:textAppearance="?android:attr/textAppearanceSmall"
+ android:hyphenationFrequency="normalFast"
android:maxLines="2" />
</RelativeLayout>
diff --git a/res/layout/preference_labeled_slider.xml b/res/layout/preference_labeled_slider.xml
index 294b979..610b79f 100644
--- a/res/layout/preference_labeled_slider.xml
+++ b/res/layout/preference_labeled_slider.xml
@@ -35,6 +35,7 @@
android:fadingEdge="horizontal"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceListItem"
+ android:hyphenationFrequency="normalFast"
android:textColor="?android:attr/textColorPrimary" />
<TextView
@@ -44,6 +45,7 @@
android:layout_below="@android:id/title"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textAlignment="viewStart"
+ android:hyphenationFrequency="normalFast"
android:textColor="?android:attr/textColorSecondary" />
<include
diff --git a/res/layout/preference_multiline_title.xml b/res/layout/preference_multiline_title.xml
index f64b27f..d68e8c1 100644
--- a/res/layout/preference_multiline_title.xml
+++ b/res/layout/preference_multiline_title.xml
@@ -38,6 +38,7 @@
android:textColor="?android:attr/textColorPrimary"
android:textAlignment="center"
android:ellipsize="marquee"
+ android:hyphenationFrequency="normalFast"
android:fadingEdge="horizontal" />
<TextView
@@ -50,6 +51,7 @@
android:textAlignment="viewStart"
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body1"
android:textColor="?android:attr/textColorSecondary"
+ android:hyphenationFrequency="normalFast"
android:maxLines="10" />
</RelativeLayout>
diff --git a/res/layout/preference_progress_category.xml b/res/layout/preference_progress_category.xml
index 9a22c54..9e33c5d 100644
--- a/res/layout/preference_progress_category.xml
+++ b/res/layout/preference_progress_category.xml
@@ -47,6 +47,7 @@
android:layout_weight="1"
android:layout_gravity="start|center"
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body2"
+ android:hyphenationFrequency="normalFast"
android:textColor="?android:attr/colorAccent"/>
<ProgressBar
diff --git a/res/layout/preference_radio_with_extra_widget.xml b/res/layout/preference_radio_with_extra_widget.xml
index c3470c0..a03f556 100644
--- a/res/layout/preference_radio_with_extra_widget.xml
+++ b/res/layout/preference_radio_with_extra_widget.xml
@@ -75,6 +75,7 @@
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textAlignment="viewStart"
+ android:hyphenationFrequency="normalFast"
android:textColor="?android:attr/textColorSecondary" />
</LinearLayout>
<LinearLayout
diff --git a/res/layout/preference_single_target.xml b/res/layout/preference_single_target.xml
index 27c33ba..ae40fd3 100644
--- a/res/layout/preference_single_target.xml
+++ b/res/layout/preference_single_target.xml
@@ -76,6 +76,7 @@
android:layout_alignStart="@android:id/title"
android:textAppearance="?android:attr/textAppearanceListItemSecondary"
android:textColor="?android:attr/textColorSecondary"
+ android:hyphenationFrequency="normalFast"
android:maxLines="10" />
</RelativeLayout>
diff --git a/res/layout/preference_two_target_radio.xml b/res/layout/preference_two_target_radio.xml
index dc97f1d..e5e6d4a 100644
--- a/res/layout/preference_two_target_radio.xml
+++ b/res/layout/preference_two_target_radio.xml
@@ -73,6 +73,7 @@
android:layout_alignStart="@android:id/title"
android:textAppearance="?android:attr/textAppearanceListItemSecondary"
android:textColor="?android:attr/textColorSecondary"
+ android:hyphenationFrequency="normalFast"
android:maxLines="10" />
</RelativeLayout>
diff --git a/res/layout/radio_with_summary.xml b/res/layout/radio_with_summary.xml
index 5b89591..2f39e67 100644
--- a/res/layout/radio_with_summary.xml
+++ b/res/layout/radio_with_summary.xml
@@ -33,6 +33,7 @@
android:gravity="center_vertical"
android:paddingStart="20dp"
android:drawableStart="?android:attr/listChoiceIndicatorSingle"
+ android:hyphenationFrequency="normalFast"
android:ellipsize="marquee" />
@@ -43,6 +44,7 @@
android:paddingStart="52dp"
android:textAppearance="?android:attr/textAppearanceListItemSecondary"
android:textColor="?android:attr/textColorSecondary"
+ android:hyphenationFrequency="normalFast"
android:maxLines="10" />
</com.android.settings.CheckableLinearLayout>
diff --git a/res/layout/running_services_app_item.xml b/res/layout/running_services_app_item.xml
index 705d714..f258530 100644
--- a/res/layout/running_services_app_item.xml
+++ b/res/layout/running_services_app_item.xml
@@ -55,6 +55,7 @@
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:maxLines="2"
+ android:hyphenationFrequency="normalFast"
android:textAppearance="?android:attr/textAppearanceListItem"/>
<TextView
@@ -63,6 +64,7 @@
android:layout_height="wrap_content"
android:textDirection="locale"
android:textAppearance="?android:attr/textAppearanceSmall"
+ android:hyphenationFrequency="normalFast"
android:textColor="?android:attr/textColorSecondary"/>
</LinearLayout>
diff --git a/res/layout/settings_summary_preference.xml b/res/layout/settings_summary_preference.xml
index 61f27ca..2f899e1 100644
--- a/res/layout/settings_summary_preference.xml
+++ b/res/layout/settings_summary_preference.xml
@@ -32,6 +32,7 @@
android:paddingTop="0dp"
android:textColor="?android:attr/textColorPrimary"
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Display1"
+ android:hyphenationFrequency="normalFast"
/>
<TextView android:id="@android:id/summary"
@@ -40,6 +41,7 @@
android:textAppearance="?android:attr/textAppearanceListItemSecondary"
android:textColor="?android:attr/textColorSecondary"
android:paddingBottom="5dp"
+ android:hyphenationFrequency="normalFast"
android:maxLines="10" />
<ProgressBar
diff --git a/res/values-night/themes_suw.xml b/res/values-night/themes_suw.xml
index dea7b1a..527918b 100644
--- a/res/values-night/themes_suw.xml
+++ b/res/values-night/themes_suw.xml
@@ -21,6 +21,7 @@
<style name="GlifTheme.DayNight" parent="GlifTheme" />
<style name="GlifV2Theme.DayNight" parent="GlifV2Theme" />
<style name="GlifV3Theme.DayNight" parent="GlifV3Theme" />
+ <style name="GlifV4Theme.DayNight" parent="GlifV4Theme" />
<style name="GlifV3Theme.DayNight.NoActionBar" parent="GlifV3Theme.NoActionBar" />
<style name="GlifV2Theme.DayNight.Transparent" parent="GlifV2Theme.Transparent" />
<style name="GlifV3Theme.DayNight.Transparent" parent="GlifV3Theme.Transparent" />
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9693707..4b163a0 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2967,7 +2967,7 @@
<!-- Display settings screen, "QHD+" screen resolution summary [CHAR LIMIT=NONE] -->
<string name="screen_resolution_summary_highest">1440p QHD+</string>
<!-- The footer message for switch screen resolution [CHAR LIMIT=NONE] -->
- <string name="screen_resolution_footer">Full resolution uses more of your battery. Switching to full resolution may cause some apps to restart.</string>
+ <string name="screen_resolution_footer">Full resolution uses more of your battery. Switching your resolution may cause some apps to restart.</string>
<!-- Display settings screen, Color mode settings title [CHAR LIMIT=30] -->
<string name="color_mode_title">Colors</string>
@@ -5329,7 +5329,9 @@
<!-- Title for the confirm dialog of reset settings. [CHAR LIMIT=NONE] -->
<string name="accessibility_text_reading_confirm_dialog_title">Reset display size and text?</string>
<!-- Message for the confirm dialog of reset settings. [CHAR LIMIT=NONE] -->
- <string name="accessibility_text_reading_confirm_dialog_message">Your display size and text preferences will reset to the phone\u2019s original settings</string>
+ <string name="accessibility_text_reading_confirm_dialog_message" product="default">Your display size and text preferences will reset to the phone\u2019s original settings</string>
+ <!-- Message for the confirm dialog of reset settings. [CHAR LIMIT=NONE] -->
+ <string name="accessibility_text_reading_confirm_dialog_message" product="tablet">Your display size and text preferences will reset to the tablet\u2019s original settings</string>
<!-- Title for the reset button of the confirm dialog of reset settings. [CHAR LIMIT=25] -->
<string name="accessibility_text_reading_confirm_dialog_reset_button">Reset</string>
<!-- Conversation message for the messaging app preview screen. [CHAR LIMIT=NONE] -->
diff --git a/res/values/themes_suw.xml b/res/values/themes_suw.xml
index 79adbd8..07232a3 100644
--- a/res/values/themes_suw.xml
+++ b/res/values/themes_suw.xml
@@ -133,6 +133,43 @@
<item name="*android:lockPatternStyle">@style/LockPatternStyle</item>
</style>
+ <style name="GlifV4Theme" parent="SudThemeGlifV4.DayNight">
+ <!-- For all AndroidX Alert Dialogs -->
+ <item name="alertDialogTheme">@style/GlifV2ThemeAlertDialog</item>
+ <item name="android:windowBackground">?android:attr/colorBackground</item>
+ <item name="*android:preferencePanelStyle">@*android:style/PreferencePanel.Dialog</item>
+ <item name="fingerprint_layout_theme">@style/FingerprintLayoutTheme</item>
+ <item name="face_layout_theme">@style/FaceLayoutTheme</item>
+ <item name="ic_menu_moreoverflow">@*android:drawable/ic_menu_moreoverflow_material</item>
+ <item name="side_margin">0dip</item>
+ <item name="wifi_signal_color">@color/setup_wizard_wifi_color_dark</item>
+ <item name="wifi_signal">@drawable/wifi_signal</item>
+ <item name="wifi_friction">@drawable/wifi_friction</item>
+ <item name="preferenceBackgroundColor">?android:attr/colorBackground</item>
+ <item name="preferenceTheme">@style/PreferenceTheme.SetupWizard</item>
+
+ <!-- LockPatternView colors -->
+ <item name="*android:lockPatternStyle">@style/LockPatternStyle</item>
+ </style>
+
+ <style name="GlifV4Theme.Light" parent="SudThemeGlifV4.Light">
+ <!-- For all AndroidX Alert Dialogs -->
+ <item name="alertDialogTheme">@style/GlifV2ThemeAlertDialog.Light</item>
+ <item name="android:windowBackground">?android:attr/colorBackground</item>
+ <item name="*android:preferencePanelStyle">@*android:style/PreferencePanel.Dialog</item>
+ <item name="fingerprint_layout_theme">@style/FingerprintLayoutTheme</item>
+ <item name="face_layout_theme">@style/FaceLayoutTheme</item>
+ <item name="ic_menu_moreoverflow">@*android:drawable/ic_menu_moreoverflow_material</item>
+ <item name="side_margin">0dip</item>
+ <item name="wifi_signal_color">@color/setup_wizard_wifi_color_light</item>
+ <item name="wifi_signal">@drawable/wifi_signal</item>
+ <item name="wifi_friction">@drawable/wifi_friction</item>
+ <item name="preferenceBackgroundColor">?android:attr/colorBackground</item>
+ <item name="preferenceTheme">@style/PreferenceTheme.SetupWizard</item>
+
+ <item name="*android:lockPatternStyle">@style/LockPatternStyle</item>
+ </style>
+
<style name="GlifV3Theme.Light.NoActionBar" parent="GlifV3Theme.Light">
<item name="android:windowActionBar">false</item>
</style>
@@ -238,6 +275,7 @@
<style name="GlifTheme.DayNight" parent="GlifTheme.Light" />
<style name="GlifV2Theme.DayNight" parent="GlifV2Theme.Light" />
<style name="GlifV3Theme.DayNight" parent="GlifV3Theme.Light" />
+ <style name="GlifV4Theme.DayNight" parent="GlifV4Theme.Light" />
<style name="GlifV3Theme.DayNight.NoActionBar" parent="GlifV3Theme.Light.NoActionBar" />
<style name="GlifV2Theme.DayNight.Transparent" parent="GlifV2Theme.Light.Transparent" />
<style name="GlifV3Theme.DayNight.Transparent" parent="GlifV3Theme.Light.Transparent" />
diff --git a/src/com/android/settings/ChangeIds.java b/src/com/android/settings/ChangeIds.java
new file mode 100644
index 0000000..1f77201
--- /dev/null
+++ b/src/com/android/settings/ChangeIds.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings;
+
+import android.compat.annotation.ChangeId;
+import android.compat.annotation.LoggingOnly;
+
+/**
+ * All the {@link ChangeId} used for Settings App.
+ */
+public class ChangeIds {
+ /**
+ * Intents with action {@code android.settings.MANAGE_APP_OVERLAY_PERMISSION}
+ * and data URI scheme {@code package} don't go to the app-specific screen for managing the
+ * permission anymore. Instead, they redirect to this screen for managing all the apps that have
+ * requested such permission.
+ */
+ @ChangeId
+ @LoggingOnly
+ public static final long CHANGE_RESTRICT_SAW_INTENT = 135920175L;
+}
diff --git a/src/com/android/settings/DefaultRingtonePreference.java b/src/com/android/settings/DefaultRingtonePreference.java
index 824a5a0..9bf626c 100644
--- a/src/com/android/settings/DefaultRingtonePreference.java
+++ b/src/com/android/settings/DefaultRingtonePreference.java
@@ -51,7 +51,7 @@
return;
}
- String mimeType = getContext().getContentResolver().getType(ringtoneUri);
+ String mimeType = mUserContext.getContentResolver().getType(ringtoneUri);
if (mimeType == null) {
Log.e(TAG, "onSaveRingtone for URI:" + ringtoneUri
+ " ignored: failure to find mimeType (no access from this context?)");
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index bb217a0..1a9bdc7 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -466,6 +466,15 @@
return false;
}
+ // If the activity's launch mode is "singleInstance", it can't be embedded in Settings since
+ // it will be created in a new task.
+ ActivityInfo info = intent.resolveActivityInfo(getPackageManager(),
+ PackageManager.MATCH_DEFAULT_ONLY);
+ if (info.launchMode == ActivityInfo.LAUNCH_SINGLE_INSTANCE) {
+ Log.w(LOG_TAG, "launchMode: singleInstance");
+ return false;
+ }
+
if (intent.getBooleanExtra(EXTRA_IS_FROM_SLICE, false)) {
// Slice deep link starts the Intent using SubSettingLauncher. Returns true to show
// 2-pane deep link.
diff --git a/src/com/android/settings/SetupWizardUtils.java b/src/com/android/settings/SetupWizardUtils.java
index e0e9073..25e9159 100644
--- a/src/com/android/settings/SetupWizardUtils.java
+++ b/src/com/android/settings/SetupWizardUtils.java
@@ -48,9 +48,9 @@
if (WizardManagerHelper.isAnySetupWizard(intent)) {
if (ThemeHelper.isSetupWizardDayNightEnabled(context)) {
switch (theme) {
- // TODO(b/233032365): Create glif v4 theme for this case.
case ThemeHelper.THEME_GLIF_V4_LIGHT:
case ThemeHelper.THEME_GLIF_V4:
+ return R.style.GlifV4Theme_DayNight;
case ThemeHelper.THEME_GLIF_V3_LIGHT:
case ThemeHelper.THEME_GLIF_V3:
return R.style.GlifV3Theme_DayNight;
@@ -63,11 +63,12 @@
}
} else {
switch (theme) {
- // TODO(b/233032365): Create glif v4 theme for this case.
case ThemeHelper.THEME_GLIF_V4_LIGHT:
+ return R.style.GlifV4Theme_Light;
+ case ThemeHelper.THEME_GLIF_V4:
+ return R.style.GlifV4Theme;
case ThemeHelper.THEME_GLIF_V3_LIGHT:
return R.style.GlifV3Theme_Light;
- case ThemeHelper.THEME_GLIF_V4:
case ThemeHelper.THEME_GLIF_V3:
return R.style.GlifV3Theme;
case ThemeHelper.THEME_GLIF_V2_LIGHT:
@@ -82,9 +83,9 @@
}
} else {
switch (theme) {
- // TODO(b/233032365): Create glif v4 theme for this case.
case ThemeHelper.THEME_GLIF_V4_LIGHT:
case ThemeHelper.THEME_GLIF_V4:
+ return R.style.GlifV4Theme;
case ThemeHelper.THEME_GLIF_V3_LIGHT:
case ThemeHelper.THEME_GLIF_V3:
return R.style.GlifV3Theme;
diff --git a/src/com/android/settings/applications/appinfo/HibernationSwitchPreferenceController.java b/src/com/android/settings/applications/appinfo/HibernationSwitchPreferenceController.java
index f0b3329..e3c577b 100644
--- a/src/com/android/settings/applications/appinfo/HibernationSwitchPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/HibernationSwitchPreferenceController.java
@@ -33,13 +33,9 @@
import android.content.pm.PackageManager;
import android.permission.PermissionControllerManager;
import android.provider.DeviceConfig;
-import android.text.TextUtils;
import android.util.Slog;
import androidx.annotation.NonNull;
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleObserver;
-import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.Preference;
import androidx.preference.SwitchPreference;
@@ -49,8 +45,7 @@
* A PreferenceController handling the logic for exempting hibernation of app
*/
public final class HibernationSwitchPreferenceController extends AppInfoPreferenceControllerBase
- implements LifecycleObserver, AppOpsManager.OnOpChangedListener,
- Preference.OnPreferenceChangeListener {
+ implements Preference.OnPreferenceChangeListener {
private static final String TAG = "HibernationSwitchPrefController";
private String mPackageName;
private final AppOpsManager mAppOpsManager;
@@ -69,19 +64,6 @@
mPermissionControllerManager = context.getSystemService(PermissionControllerManager.class);
}
- @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
- public void onResume() {
- if (mIsPackageSet) {
- mAppOpsManager.startWatchingMode(
- OPSTR_AUTO_REVOKE_PERMISSIONS_IF_UNUSED, mPackageName, this);
- }
- }
-
- @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
- public void onPause() {
- mAppOpsManager.stopWatchingMode(this);
- }
-
@Override
public int getAvailabilityStatus() {
return isHibernationEnabled() && mIsPackageSet ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
@@ -149,14 +131,6 @@
}
@Override
- public void onOpChanged(String op, String packageName) {
- if (OPSTR_AUTO_REVOKE_PERMISSIONS_IF_UNUSED.equals(op)
- && TextUtils.equals(mPackageName, packageName)) {
- updateState(mPreference);
- }
- }
-
- @Override
public boolean onPreferenceChange(Preference preference, Object isChecked) {
try {
final boolean checked = (boolean) isChecked;
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index ead9840..e12bc1c 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -18,6 +18,7 @@
import static androidx.recyclerview.widget.RecyclerView.SCROLL_STATE_IDLE;
+import static com.android.settings.ChangeIds.CHANGE_RESTRICT_SAW_INTENT;
import static com.android.settings.applications.manageapplications.AppFilterRegistry.FILTER_APPS_ALL;
import static com.android.settings.applications.manageapplications.AppFilterRegistry.FILTER_APPS_BLOCKED;
import static com.android.settings.applications.manageapplications.AppFilterRegistry.FILTER_APPS_DISABLED;
@@ -37,8 +38,6 @@
import android.app.ActivityManager;
import android.app.settings.SettingsEnums;
import android.app.usage.IUsageStatsManager;
-import android.compat.annotation.ChangeId;
-import android.compat.annotation.LoggingOnly;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
@@ -190,16 +189,6 @@
public static final int STORAGE_TYPE_DEFAULT = 0; // Show all apps that are not categorized.
public static final int STORAGE_TYPE_LEGACY = 1; // Show apps even if they can be categorized.
- /**
- * Intents with action {@code android.settings.MANAGE_APP_OVERLAY_PERMISSION}
- * and data URI scheme {@code package} don't go to the app-specific screen for managing the
- * permission anymore. Instead, they redirect to this screen for managing all the apps that have
- * requested such permission.
- */
- @ChangeId
- @LoggingOnly
- private static final long CHANGE_RESTRICT_SAW_INTENT = 135920175L;
-
// sort order
@VisibleForTesting
int mSortOrder = R.id.sort_order_alpha;
diff --git a/src/com/android/settings/core/SettingsBaseActivity.java b/src/com/android/settings/core/SettingsBaseActivity.java
index 322b971..9c24a23 100644
--- a/src/com/android/settings/core/SettingsBaseActivity.java
+++ b/src/com/android/settings/core/SettingsBaseActivity.java
@@ -15,6 +15,8 @@
*/
package com.android.settings.core;
+import static android.text.Layout.HYPHENATION_FREQUENCY_NORMAL_FAST;
+
import android.annotation.LayoutRes;
import android.app.ActivityManager;
import android.content.ComponentName;
@@ -106,6 +108,7 @@
mAppBarLayout = findViewById(R.id.app_bar);
if (mCollapsingToolbarLayout != null) {
mCollapsingToolbarLayout.setLineSpacingMultiplier(TOOLBAR_LINE_SPACING_MULTIPLIER);
+ mCollapsingToolbarLayout.setHyphenationFrequency(HYPHENATION_FREQUENCY_NORMAL_FAST);
}
disableCollapsingToolbarLayoutScrollingBehavior();
} else {
diff --git a/src/com/android/settings/datausage/AppDataUsage.java b/src/com/android/settings/datausage/AppDataUsage.java
index f0d2799..d57a2a1 100644
--- a/src/com/android/settings/datausage/AppDataUsage.java
+++ b/src/com/android/settings/datausage/AppDataUsage.java
@@ -40,6 +40,8 @@
import androidx.preference.Preference;
import androidx.preference.Preference.OnPreferenceChangeListener;
import androidx.preference.PreferenceCategory;
+import androidx.recyclerview.widget.DefaultItemAnimator;
+import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.R;
import com.android.settings.applications.AppInfoBase;
@@ -105,6 +107,7 @@
private Context mContext;
private ArrayList<Long> mCycles;
private long mSelectedCycle;
+ private boolean mIsLoading;
@Override
public void onCreate(Bundle icicle) {
@@ -226,6 +229,16 @@
@Override
public void onResume() {
super.onResume();
+ // No animations will occur before:
+ // - LOADER_APP_USAGE_DATA initially updates the cycle
+ // - updatePrefs() initially updates the preference visibility
+ // This is mainly for the cycle spinner, because when the page is entered from the
+ // AppInfoDashboardFragment, there is no way to know whether the cycle data is available
+ // before finished the async loading.
+ // The animator will be set back if any page updates happens after loading, in
+ // setBackPreferenceListAnimatorIfLoaded().
+ mIsLoading = true;
+ getListView().setItemAnimator(null);
if (mDataSaverBackend != null) {
mDataSaverBackend.addListener(this);
}
@@ -297,7 +310,25 @@
}
}
+ /**
+ * Sets back the preference list's animator if the loading is finished.
+ *
+ * The preference list's animator was temporarily removed before loading in onResume().
+ * When need to update the preference visibility in this page after the loading, adding the
+ * animator back to keeping the usual animations.
+ */
+ private void setBackPreferenceListAnimatorIfLoaded() {
+ if (mIsLoading) {
+ return;
+ }
+ RecyclerView recyclerView = getListView();
+ if (recyclerView.getItemAnimator() == null) {
+ recyclerView.setItemAnimator(new DefaultItemAnimator());
+ }
+ }
+
private void updatePrefs(boolean restrictBackground, boolean unrestrictData) {
+ setBackPreferenceListAnimatorIfLoaded();
final EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfMeteredDataRestricted(
mContext, mPackageName, UserHandle.getUserId(mAppItem.key));
if (mRestrictBackground != null) {
@@ -448,6 +479,7 @@
} else {
bindData(0 /* position */);
}
+ mIsLoading = false;
}
@Override
diff --git a/src/com/android/settings/datausage/AppDataUsagePreference.java b/src/com/android/settings/datausage/AppDataUsagePreference.java
index 3025a49..2805819 100644
--- a/src/com/android/settings/datausage/AppDataUsagePreference.java
+++ b/src/com/android/settings/datausage/AppDataUsagePreference.java
@@ -20,6 +20,7 @@
import androidx.preference.PreferenceViewHolder;
+import com.android.settings.R;
import com.android.settingslib.AppItem;
import com.android.settingslib.net.UidDetail;
import com.android.settingslib.net.UidDetailProvider;
@@ -49,6 +50,9 @@
if (mDetail != null) {
setAppInfo();
} else {
+ // Set a placeholder title before starting to fetch real title, this is necessary
+ // to avoid preference height change.
+ setTitle(R.string.summary_placeholder);
ThreadUtils.postOnBackgroundThread(() -> {
mDetail = provider.getUidDetail(mItem.key, true /* blocking */);
ThreadUtils.postOnMainThread(() -> setAppInfo());
diff --git a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
index a4809c9..a4cc513 100644
--- a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
+++ b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
@@ -378,9 +378,7 @@
return;
}
- if (getView().findViewById(R.id.loading_container).getVisibility() == View.VISIBLE) {
- setLoading(false /* loading */, true /* animate */);
- }
+ setLoading(false /* loading */, true /* animate */);
final long privateUsedBytes = mStorageInfo.totalBytes - mStorageInfo.freeBytes;
mPreferenceController.setVolume(mSelectedStorageEntry.getVolumeInfo());
diff --git a/src/com/android/settings/network/SubscriptionsPreferenceController.java b/src/com/android/settings/network/SubscriptionsPreferenceController.java
index fb384d4..825cb09 100644
--- a/src/com/android/settings/network/SubscriptionsPreferenceController.java
+++ b/src/com/android/settings/network/SubscriptionsPreferenceController.java
@@ -274,8 +274,12 @@
String result = mSubsPrefCtrlInjector.getNetworkType(
mContext, mConfig, mTelephonyDisplayInfo, subId, isCarrierNetworkActive);
if (mSubsPrefCtrlInjector.isActiveCellularNetwork(mContext) || isCarrierNetworkActive) {
- result = mContext.getString(R.string.preference_summary_default_combination,
- mContext.getString(R.string.mobile_data_connection_active), result);
+ if (result.isEmpty()) {
+ result = mContext.getString(R.string.mobile_data_connection_active);
+ } else {
+ result = mContext.getString(R.string.preference_summary_default_combination,
+ mContext.getString(R.string.mobile_data_connection_active), result);
+ }
} else if (!isDataInService) {
result = mContext.getString(R.string.mobile_data_no_connection);
}
diff --git a/src/com/android/settings/network/UiccSlotUtil.java b/src/com/android/settings/network/UiccSlotUtil.java
index 813b9d6..c9c52cb 100644
--- a/src/com/android/settings/network/UiccSlotUtil.java
+++ b/src/com/android/settings/network/UiccSlotUtil.java
@@ -193,7 +193,7 @@
if (slotInfo == null) {
return false;
}
- return !slotInfo.isRemovable();
+ return slotInfo.getIsEuicc();
})
.findFirst().orElse(-1);
diff --git a/src/com/android/settings/slices/SlicesIndexer.java b/src/com/android/settings/slices/SlicesIndexer.java
index ac30c6c..0160843 100644
--- a/src/com/android/settings/slices/SlicesIndexer.java
+++ b/src/com/android/settings/slices/SlicesIndexer.java
@@ -101,7 +101,7 @@
for (SliceData dataRow : indexData) {
values = new ContentValues();
values.put(IndexColumns.KEY, dataRow.getKey());
- values.put(IndexColumns.SLICE_URI, dataRow.getUri().toSafeString());
+ values.put(IndexColumns.SLICE_URI, dataRow.getUri().toString());
values.put(IndexColumns.TITLE, dataRow.getTitle());
values.put(IndexColumns.SUMMARY, dataRow.getSummary());
final CharSequence screenTitle = dataRow.getScreenTitle();
@@ -122,4 +122,4 @@
values);
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java b/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java
index 14431ee..483d746 100644
--- a/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java
@@ -48,6 +48,7 @@
import androidx.preference.Preference;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
+import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.applications.AppInfoBase;
import com.android.settings.testutils.FakeFeatureFactory;
@@ -240,6 +241,7 @@
ReflectionHelpers.setField(mFragment, "mUnrestrictedData", unrestrictedDataPref);
ReflectionHelpers.setField(mFragment, "mDataSaverBackend", dataSaverBackend);
ReflectionHelpers.setField(mFragment.services, "mPolicyManager", networkPolicyManager);
+ when(mFragment.getListView()).thenReturn(mock(RecyclerView.class));
ShadowRestrictedLockUtilsInternal.setRestricted(true);
doReturn(NetworkPolicyManager.POLICY_NONE).when(networkPolicyManager)
diff --git a/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
index 15a124d..f349600 100644
--- a/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
@@ -120,7 +120,7 @@
final Intent searchIntent = mProvider.buildSearchIntent(mActivity, SettingsEnums.TESTING);
final Uri referrer = searchIntent.getParcelableExtra(Intent.EXTRA_REFERRER);
- assertThat(referrer.toSafeString()).isEqualTo(
+ assertThat(referrer.toString()).isEqualTo(
"android-app://" + mActivity.getPackageName() + "/" + SettingsEnums.TESTING);
}
diff --git a/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java b/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java
index f47c5f9..fa1fed5 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java
@@ -332,7 +332,7 @@
values.put(SlicesDatabaseHelper.IndexColumns.ICON_RESOURCE, SliceTestUtils.FAKE_ICON);
values.put(SlicesDatabaseHelper.IndexColumns.FRAGMENT, SliceTestUtils.FAKE_FRAGMENT_NAME);
values.put(SlicesDatabaseHelper.IndexColumns.CONTROLLER, controllerClass);
- values.put(SlicesDatabaseHelper.IndexColumns.SLICE_URI, buildUri(key).toSafeString());
+ values.put(SlicesDatabaseHelper.IndexColumns.SLICE_URI, buildUri(key).toString());
values.put(SlicesDatabaseHelper.IndexColumns.HIGHLIGHT_MENU_RESOURCE,
SliceTestUtils.FAKE_HIGHLIGHT_MENU_RES);
mDb.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
@@ -357,4 +357,4 @@
return true;
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java b/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java
index 0c654a4..69f1886 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java
@@ -121,7 +121,7 @@
assertThat(fakeSlice.getScreenTitle()).isEqualTo(FAKE_SCREEN_TITLE);
assertThat(fakeSlice.getKeywords()).isNull();
assertThat(fakeSlice.getIconResource()).isNotNull();
- assertThat(fakeSlice.getUri().toSafeString())
+ assertThat(fakeSlice.getUri().toString())
.isEqualTo("content://com.android.settings.slices/action/key");
assertThat(fakeSlice.getFragmentClassName()).isEqualTo(FAKE_FRAGMENT_CLASSNAME);
assertThat(fakeSlice.getPreferenceController()).isEqualTo(FAKE_CONTROLLER_NAME);
@@ -160,4 +160,4 @@
return serviceInfoList;
}
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/slices/SliceTestUtils.java b/tests/robotests/src/com/android/settings/slices/SliceTestUtils.java
index 97beeb3..d6a0b5e 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceTestUtils.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceTestUtils.java
@@ -64,7 +64,7 @@
: SettingsSliceProvider.SLICE_AUTHORITY)
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
.appendPath(key)
- .build().toSafeString());
+ .build().toString());
values.put(SlicesDatabaseHelper.IndexColumns.TITLE, FAKE_TITLE);
values.put(SlicesDatabaseHelper.IndexColumns.SUMMARY, FAKE_SUMMARY);
values.put(SlicesDatabaseHelper.IndexColumns.SCREENTITLE, FAKE_SCREEN_TITLE);
diff --git a/tests/unit/src/com/android/settings/DefaultRingtonePreferenceTest.java b/tests/unit/src/com/android/settings/DefaultRingtonePreferenceTest.java
index b9dea01..7877684 100644
--- a/tests/unit/src/com/android/settings/DefaultRingtonePreferenceTest.java
+++ b/tests/unit/src/com/android/settings/DefaultRingtonePreferenceTest.java
@@ -59,6 +59,7 @@
when(mDefaultRingtonePreference.getRingtoneType())
.thenReturn(RingtoneManager.TYPE_RINGTONE);
mDefaultRingtonePreference.setUserId(1);
+ mDefaultRingtonePreference.mUserContext = context;
}
@Test
diff --git a/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java b/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java
index 2cf9845..5aa73ea 100644
--- a/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java
+++ b/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java
@@ -92,6 +92,14 @@
assertThat(testSlot).isEqualTo(0);
}
+ @Test
+ public void getEsimSlotId_twoSimSlotsDeviceAndRemovableEsimIsSlot1_returnTheCorrectEsimSlot() {
+ when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
+ twoSimSlotsDeviceActivePsimActiveRemovableEsim());
+ int testSlot = UiccSlotUtil.getEsimSlotId(mContext);
+
+ assertThat(testSlot).isEqualTo(1);
+ }
@Test
public void getEsimSlotId_twoSimSlotsDeviceAndEsimIsSlot1_returnTheCorrectEsimSlot() {
@@ -729,6 +737,12 @@
createUiccSlotInfo(true, false, 1, true)};
}
+ private UiccSlotInfo[] twoSimSlotsDeviceActivePsimActiveRemovableEsim() {
+ return new UiccSlotInfo[]{
+ createUiccSlotInfo(false, true, 0, true),
+ createUiccSlotInfo(true, true, 1, true)};
+ }
+
private UiccSlotInfo[] twoSimSlotsDeviceActiveEsimActivePsim() {
return new UiccSlotInfo[]{
createUiccSlotInfo(true, false, 0, true),
diff --git a/tests/unit/src/com/android/settings/slices/SliceTestUtils.java b/tests/unit/src/com/android/settings/slices/SliceTestUtils.java
index 40a827a..020bde2 100644
--- a/tests/unit/src/com/android/settings/slices/SliceTestUtils.java
+++ b/tests/unit/src/com/android/settings/slices/SliceTestUtils.java
@@ -64,7 +64,7 @@
: SettingsSliceProvider.SLICE_AUTHORITY)
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
.appendPath(key)
- .build().toSafeString());
+ .build().toString());
values.put(SlicesDatabaseHelper.IndexColumns.TITLE, FAKE_TITLE);
values.put(SlicesDatabaseHelper.IndexColumns.SUMMARY, FAKE_SUMMARY);
values.put(SlicesDatabaseHelper.IndexColumns.SCREENTITLE, FAKE_SCREEN_TITLE);