Merge "Import translations. DO NOT MERGE" into nyc-mr1-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 7617c39..841fc68 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -848,10 +848,6 @@
android:label="@string/wallpaper_settings_fragment_title"
android:icon="@drawable/ic_wallpaper"
android:taskAffinity="">
- <intent-filter android:priority="1">
- <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.WallpaperTypeSettings" />
</activity>
diff --git a/res/drawable-hdpi/ic_menu_add_dark.png b/res/drawable-hdpi/ic_menu_add_dark.png
deleted file mode 100644
index 40a26b1..0000000
--- a/res/drawable-hdpi/ic_menu_add_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_add_light.png b/res/drawable-hdpi/ic_menu_add_light.png
deleted file mode 100644
index 91b0354..0000000
--- a/res/drawable-hdpi/ic_menu_add_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_add_white.png b/res/drawable-hdpi/ic_menu_add_white.png
deleted file mode 100644
index 7638c64..0000000
--- a/res/drawable-hdpi/ic_menu_add_white.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_sysbar_quicksettings.png b/res/drawable-hdpi/ic_sysbar_quicksettings.png
deleted file mode 100644
index a204936..0000000
--- a/res/drawable-hdpi/ic_sysbar_quicksettings.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_add_dark.png b/res/drawable-mdpi/ic_menu_add_dark.png
deleted file mode 100644
index d7aa774..0000000
--- a/res/drawable-mdpi/ic_menu_add_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_add_light.png b/res/drawable-mdpi/ic_menu_add_light.png
deleted file mode 100644
index 8b55810..0000000
--- a/res/drawable-mdpi/ic_menu_add_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_add_white.png b/res/drawable-mdpi/ic_menu_add_white.png
deleted file mode 100644
index 40cdc82..0000000
--- a/res/drawable-mdpi/ic_menu_add_white.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_sysbar_quicksettings.png b/res/drawable-mdpi/ic_sysbar_quicksettings.png
deleted file mode 100644
index d266b39..0000000
--- a/res/drawable-mdpi/ic_sysbar_quicksettings.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_add_dark.png b/res/drawable-xhdpi/ic_menu_add_dark.png
deleted file mode 100644
index 2f00b96..0000000
--- a/res/drawable-xhdpi/ic_menu_add_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_add_light.png b/res/drawable-xhdpi/ic_menu_add_light.png
deleted file mode 100644
index 4109b2c..0000000
--- a/res/drawable-xhdpi/ic_menu_add_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_add_white.png b/res/drawable-xhdpi/ic_menu_add_white.png
deleted file mode 100644
index 1d53989..0000000
--- a/res/drawable-xhdpi/ic_menu_add_white.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_sysbar_quicksettings.png b/res/drawable-xhdpi/ic_sysbar_quicksettings.png
deleted file mode 100644
index 46077be..0000000
--- a/res/drawable-xhdpi/ic_sysbar_quicksettings.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_add_dark.png b/res/drawable-xxhdpi/ic_menu_add_dark.png
deleted file mode 100644
index 0ab6a40..0000000
--- a/res/drawable-xxhdpi/ic_menu_add_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_add_light.png b/res/drawable-xxhdpi/ic_menu_add_light.png
deleted file mode 100644
index 767b808..0000000
--- a/res/drawable-xxhdpi/ic_menu_add_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_add_white.png b/res/drawable-xxhdpi/ic_menu_add_white.png
deleted file mode 100644
index 16a8b8a..0000000
--- a/res/drawable-xxhdpi/ic_menu_add_white.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_sysbar_quicksettings.png b/res/drawable-xxhdpi/ic_sysbar_quicksettings.png
deleted file mode 100644
index ad964b4..0000000
--- a/res/drawable-xxhdpi/ic_sysbar_quicksettings.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_menu_add_dark.png b/res/drawable-xxxhdpi/ic_menu_add_dark.png
deleted file mode 100644
index 01f53fe..0000000
--- a/res/drawable-xxxhdpi/ic_menu_add_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_menu_add_white.png b/res/drawable-xxxhdpi/ic_menu_add_white.png
deleted file mode 100644
index 27a15f5..0000000
--- a/res/drawable-xxxhdpi/ic_menu_add_white.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_sysbar_quicksettings.png b/res/drawable-xxxhdpi/ic_sysbar_quicksettings.png
deleted file mode 100644
index e89d484..0000000
--- a/res/drawable-xxxhdpi/ic_sysbar_quicksettings.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/ic_menu_add.xml b/res/drawable/ic_menu_add.xml
index ed58072..3387f29 100644
--- a/res/drawable/ic_menu_add.xml
+++ b/res/drawable/ic_menu_add.xml
@@ -15,6 +15,13 @@
limitations under the License.
-->
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
- android:src="@drawable/ic_menu_add_white"
- android:tint="?android:attr/colorAccent" />
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorAccent">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
+</vector>
diff --git a/res/drawable/ic_menu_add_white.xml b/res/drawable/ic_menu_add_white.xml
new file mode 100644
index 0000000..9a06d5c
--- /dev/null
+++ b/res/drawable/ic_menu_add_white.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2016 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FFFFFFFF"
+ android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
+</vector>
diff --git a/res/drawable/ic_bt_config.xml b/res/drawable/ic_settings.xml
similarity index 99%
rename from res/drawable/ic_bt_config.xml
rename to res/drawable/ic_settings.xml
index 316c674..439c1a7 100644
--- a/res/drawable/ic_bt_config.xml
+++ b/res/drawable/ic_settings.xml
@@ -33,4 +33,4 @@
1.17,-0.59 1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49
-0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57
-3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"/>
-</vector>
\ No newline at end of file
+</vector>
diff --git a/res/layout-land/fingerprint_enroll_find_sensor.xml b/res/layout-land/fingerprint_enroll_find_sensor.xml
index 60d93a6..1d923fa 100644
--- a/res/layout-land/fingerprint_enroll_find_sensor.xml
+++ b/res/layout-land/fingerprint_enroll_find_sensor.xml
@@ -45,13 +45,11 @@
android:text="@string/security_settings_fingerprint_enroll_find_sensor_message"/>
<Button
- style="@style/Button.FingerprintButton"
+ style="@style/SetupWizardButton.Positive"
android:id="@+id/next_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
- android:layout_marginStart="-12dp"
- android:gravity="start|center_vertical"
android:text="@string/fingerprint_enroll_button_next" />
</LinearLayout>
diff --git a/res/layout-land/fingerprint_enroll_finish.xml b/res/layout-land/fingerprint_enroll_finish.xml
index a84f46d..26c0cf1 100644
--- a/res/layout-land/fingerprint_enroll_finish.xml
+++ b/res/layout-land/fingerprint_enroll_finish.xml
@@ -63,7 +63,7 @@
android:orientation="horizontal">
<Button
- style="@style/Button.FingerprintButton"
+ style="@style/SetupWizardButton.Negative"
android:id="@+id/add_another_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -72,7 +72,7 @@
android:text="@string/fingerprint_enroll_button_add" />
<Button
- style="@style/Button.FingerprintButton"
+ style="@style/SetupWizardButton.Positive"
android:id="@+id/next_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/res/layout-land/setup_fingerprint_enroll_find_sensor.xml b/res/layout-land/setup_fingerprint_enroll_find_sensor.xml
index bb2c02d..8a81d15 100644
--- a/res/layout-land/setup_fingerprint_enroll_find_sensor.xml
+++ b/res/layout-land/setup_fingerprint_enroll_find_sensor.xml
@@ -45,13 +45,11 @@
android:text="@string/security_settings_fingerprint_enroll_find_sensor_message"/>
<Button
- style="@style/Button.FingerprintButton"
+ style="@style/SetupWizardButton.Positive"
android:id="@+id/next_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
- android:layout_marginStart="-12dp"
- android:gravity="start|center_vertical"
android:text="@string/fingerprint_enroll_button_next" />
</LinearLayout>
diff --git a/res/layout/dream_info_row.xml b/res/layout/dream_info_row.xml
index 1a4dc8e..fd70ad5 100644
--- a/res/layout/dream_info_row.xml
+++ b/res/layout/dream_info_row.xml
@@ -89,6 +89,6 @@
android:padding="8dip"
android:clickable="true"
android:focusable="true"
- android:src="@drawable/ic_bt_config" />
+ android:src="@drawable/ic_settings" />
</LinearLayout>
diff --git a/res/layout/fingerprint_enroll_find_sensor_base.xml b/res/layout/fingerprint_enroll_find_sensor_base.xml
index 471c289..d38818b 100644
--- a/res/layout/fingerprint_enroll_find_sensor_base.xml
+++ b/res/layout/fingerprint_enroll_find_sensor_base.xml
@@ -56,12 +56,11 @@
android:layout_weight="1"/>
<Button
- style="@style/Button.FingerprintButton"
+ style="@style/SetupWizardButton.Positive"
android:id="@+id/next_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
- android:layout_marginEnd="-12dp"
android:layout_gravity="end"
android:text="@string/fingerprint_enroll_button_next" />
diff --git a/res/layout/fingerprint_enroll_finish_base.xml b/res/layout/fingerprint_enroll_finish_base.xml
index 21eb4e2..80f136b 100644
--- a/res/layout/fingerprint_enroll_finish_base.xml
+++ b/res/layout/fingerprint_enroll_finish_base.xml
@@ -80,14 +80,14 @@
android:orientation="horizontal">
<Button
- style="@style/Button.FingerprintButton"
+ style="@style/SetupWizardButton.Negative"
android:id="@+id/add_another_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/fingerprint_enroll_button_add" />
<Button
- style="@style/Button.FingerprintButton"
+ style="@style/SetupWizardButton.Positive"
android:id="@+id/next_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/res/layout/preference_app_restrictions.xml b/res/layout/preference_app_restrictions.xml
index fe575a2..d571b5f 100644
--- a/res/layout/preference_app_restrictions.xml
+++ b/res/layout/preference_app_restrictions.xml
@@ -83,7 +83,7 @@
android:layout_height="fill_parent"
android:paddingStart="12dip"
android:paddingEnd="12dp"
- android:src="@drawable/ic_sysbar_quicksettings"
+ android:src="@drawable/ic_settings"
android:contentDescription="@string/apps_with_restrictions_settings_button"
android:layout_gravity="center"
android:clickable="true"
diff --git a/res/layout/preference_bluetooth.xml b/res/layout/preference_bluetooth.xml
index 17ee70c..c339e67 100644
--- a/res/layout/preference_bluetooth.xml
+++ b/res/layout/preference_bluetooth.xml
@@ -27,7 +27,7 @@
android:layout_gravity="center_vertical"
android:padding="8dip"
android:background="?android:attr/selectableItemBackground"
- android:src="@drawable/ic_bt_config"
+ android:src="@drawable/ic_settings"
android:contentDescription="@string/bluetooth_device_details" />
</LinearLayout>
diff --git a/res/layout/preference_tts_engine.xml b/res/layout/preference_tts_engine.xml
index fe8e967..277fc23 100644
--- a/res/layout/preference_tts_engine.xml
+++ b/res/layout/preference_tts_engine.xml
@@ -41,7 +41,7 @@
android:layout_height="match_parent"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
- android:src="@drawable/ic_sysbar_quicksettings"
+ android:src="@drawable/ic_settings"
android:contentDescription="@string/tts_engine_settings_button"
android:layout_centerVertical="true"
android:clickable="true"
diff --git a/res/layout/preference_widget_settings.xml b/res/layout/preference_widget_settings.xml
index 6d9ac2fe..dfeca1a 100644
--- a/res/layout/preference_widget_settings.xml
+++ b/res/layout/preference_widget_settings.xml
@@ -27,7 +27,7 @@
android:layout_gravity="center_vertical"
android:padding="8dip"
android:background="?android:attr/selectableItemBackground"
- android:src="@drawable/ic_sysbar_quicksettings"
+ android:src="@drawable/ic_settings"
android:contentDescription="@string/settings_button" />
</LinearLayout>
diff --git a/res/layout/restricted_preference_user_delete_widget.xml b/res/layout/restricted_preference_user_delete_widget.xml
index 7ffb0e4..7fd5d88 100644
--- a/res/layout/restricted_preference_user_delete_widget.xml
+++ b/res/layout/restricted_preference_user_delete_widget.xml
@@ -35,7 +35,7 @@
android:layout_height="fill_parent"
android:paddingStart="16dip"
android:paddingEnd="16dip"
- android:src="@drawable/ic_sysbar_quicksettings"
+ android:src="@drawable/ic_settings"
android:contentDescription="@string/settings_label"
android:layout_gravity="center"
android:background="?android:attr/selectableItemBackground" />
diff --git a/res/layout/setup_fingerprint_enroll_find_sensor_base.xml b/res/layout/setup_fingerprint_enroll_find_sensor_base.xml
index 45af088..2455896 100644
--- a/res/layout/setup_fingerprint_enroll_find_sensor_base.xml
+++ b/res/layout/setup_fingerprint_enroll_find_sensor_base.xml
@@ -56,14 +56,12 @@
android:layout_weight="1"/>
<Button
- style="@style/Button.FingerprintButton"
+ style="@style/SetupWizardButton.Positive"
android:id="@+id/next_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
- android:layout_marginEnd="-12dp"
android:layout_gravity="end"
- android:gravity="end|center_vertical"
android:text="@string/fingerprint_enroll_button_next" />
</LinearLayout>
diff --git a/res/layout/wifi_display_preference.xml b/res/layout/wifi_display_preference.xml
index d8c4729..99cb89c 100644
--- a/res/layout/wifi_display_preference.xml
+++ b/res/layout/wifi_display_preference.xml
@@ -37,7 +37,7 @@
android:layout_gravity="center_vertical"
android:padding="8dip"
android:background="?android:attr/selectableItemBackground"
- android:src="@drawable/ic_bt_config"
+ android:src="@drawable/ic_settings"
android:contentDescription="@string/wifi_display_details" />
</LinearLayout>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 3b66469..a194cc1 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -119,7 +119,6 @@
<color name="seek_bar_preference_preview_text">#fff</color>
- <color name="importance_slider_color">@*android:color/material_deep_teal_500</color>
<color name="importance_disabled_slider_color">@*android:color/material_grey_300</color>
<color name="importance_secondary_slider_color">#858383</color>
diff --git a/res/values/config.xml b/res/values/config.xml
index 6cae9cf..2c7a2de 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -40,4 +40,8 @@
<!-- Fully-qualified class name for the implementation of the FeatureFactory to be instantiated. -->
<string name="config_featureFactory" translatable="false">com.android.settings.overlay.FeatureFactoryImpl</string>
+
+ <!-- Package name and fully-qualified class name for the wallpaper picker activity. -->
+ <string name="config_wallpaper_picker_package" translatable="false">com.android.settings</string>
+ <string name="config_wallpaper_picker_class" translatable="false">com.android.settings.Settings$WallpaperSettingsActivity</string>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 333a106..ff0c2fe 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -7486,14 +7486,12 @@
<!-- Activity title for deletion helper. [CHAR LIMIT=25] -->
<string name="deletion_helper_title">Remove from Device</string>
- <!-- Preference group title for the list of apps to uninstall. [CHAR LIMIT=40]-->
- <string name="deletion_helper_apps_title">Apps</string>
<!-- Summary of how much storage an app is using and the number of days since last use. [CHAR LIMIT=NONE]-->
- <string name="deletion_helper_app_summary"><xliff:g id="used" example="1.2GB">%1$s</xliff:g>, last used <xliff:g id="days" example="67">%2$d</xliff:g> days ago</string>
+ <string name="deletion_helper_app_summary"><xliff:g id="used" example="1.2GB">%1$s</xliff:g> • Last used <xliff:g id="days" example="67">%2$d</xliff:g> days ago</string>
<!-- Summary of how much storage an app is using when it has never been used before. [CHAR LIMIT=NONE]-->
- <string name="deletion_helper_app_summary_never_used"><xliff:g id="used" example="1.2GB">%1$s</xliff:g>, never used before</string>
+ <string name="deletion_helper_app_summary_never_used"><xliff:g id="used" example="1.2GB">%1$s</xliff:g> • Never used before</string>
<!-- Summary of how much storage an app is using when its last use is unknown. [CHAR LIMIT=NONE]-->
- <string name="deletion_helper_app_summary_unknown_used"><xliff:g id="used" example="1.2GB">%1$s</xliff:g>, not sure when last used</string>
+ <string name="deletion_helper_app_summary_unknown_used"><xliff:g id="used" example="1.2GB">%1$s</xliff:g> • Not sure when last used</string>
<!-- Button which clears out storage in the deletion helper. [CHAR LIMIT=60]-->
<string name="deletion_helper_free_button">Free up <xliff:g id="freeable" example="1.2GB">%1$s</xliff:g></string>
@@ -7598,13 +7596,13 @@
<string name="deletion_helper_photos_title">Photos & Videos (<xliff:g id="num_items">%1$d</xliff:g>)</string>
<!-- Summary of how much backed up storage that photos and videos service can clear from the local device. [CHAR LIMIT=NONE]-->
- <string name="deletion_helper_photos_summary"><xliff:g id="used" example="1.2GB">%1$s</xliff:g>, older than <xliff:g id="days">%2$d</xliff:g> days</string>
+ <string name="deletion_helper_photos_summary"><xliff:g id="used" example="1.2GB">%1$s</xliff:g> • Older than <xliff:g id="days">%2$d</xliff:g> days</string>
<!-- Preference title for the downloads deletion service. [CHAR LIMIT=40]-->
<string name="deletion_helper_downloads_title">Downloads (<xliff:g id="numItems" example="67">%1$d</xliff:g>)</string>
<!-- Summary of how much stale data can be cleared from the local download folder. [CHAR LIMIT=NONE]-->
- <string name="deletion_helper_downloads_summary"><xliff:g id="used" example="1.2GB">%1$s</xliff:g> • last modified <xliff:g id="days">%2$s</xliff:g></string>
+ <string name="deletion_helper_downloads_summary"><xliff:g id="used" example="1.2GB">%1$s</xliff:g> • Last modified <xliff:g id="days">%2$s</xliff:g></string>
<!-- Summary for when when there is nothing in the downloads folder to clear. [CHAR LIMIT=NONE]-->
<string name="deletion_helper_downloads_summary_empty"><xliff:g id="used" example="1.2GB">%1$s</xliff:g></string>
@@ -7637,7 +7635,7 @@
<string name="deletion_helper_apps_group_title">Apps (<xliff:g id="num_items">%1$d</xliff:g>)</string>
<!-- Summary for the apps category in the deletion helper, showing how many space to clear. [CHAR LIMIT=NONE]-->
- <string name="deletion_helper_apps_group_summary"><xliff:g id="used" example="1.2GB">%1$s</xliff:g></string>
+ <string name="deletion_helper_apps_group_summary"><xliff:g id="used" example="1.2GB">%1$s</xliff:g> • Last used <xliff:g id="days">%2$d</xliff:g> days ago</string>
<!-- Category title for the automatic settings in the storage manager settings. [CHAR LIMIT=40] -->
<string name="deletion_helper_automatic_title">Automatic</string>
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 694c5c6..2d78d0b 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -18,7 +18,6 @@
<attr name="fingerprint_layout_theme" format="reference" />
<attr name="fingerprint_progress_bar_size" format="reference|dimension" />
<attr name="fingerprint_ring_radius" format="reference|dimension" />
- <attr name="ic_menu_add" format="reference" />
<attr name="ic_menu_moreoverflow" format="reference" />
<attr name="ic_wps" format="reference" />
<attr name="setup_divider_color" format="reference" />
@@ -41,7 +40,6 @@
<item name="fingerprint_layout_theme">@style/FingerprintLayoutTheme</item>
<item name="fingerprint_progress_bar_size">@dimen/setup_fingerprint_progress_bar_size</item>
<item name="fingerprint_ring_radius">@dimen/setup_fingerprint_ring_radius</item>
- <item name="ic_menu_add">@drawable/ic_menu_add_dark</item>
<item name="ic_menu_moreoverflow">@*android:drawable/ic_menu_moreoverflow_material</item>
<item name="ic_wps">@drawable/ic_wps_dark</item>
<item name="setup_divider_color">@color/setup_divider_color_dark</item>
@@ -66,7 +64,6 @@
<item name="fingerprint_layout_theme">@style/FingerprintLayoutTheme</item>
<item name="fingerprint_progress_bar_size">@dimen/setup_fingerprint_progress_bar_size</item>
<item name="fingerprint_ring_radius">@dimen/setup_fingerprint_ring_radius</item>
- <item name="ic_menu_add">@drawable/ic_menu_add_light</item>
<item name="ic_menu_moreoverflow">@*android:drawable/ic_menu_moreoverflow_material</item>
<item name="ic_wps">@drawable/ic_wps_light</item>
<item name="setup_divider_color">@color/setup_divider_color_light</item>
@@ -149,7 +146,6 @@
<item name="fingerprint_layout_theme">@style/FingerprintLayoutTheme</item>
<item name="fingerprint_progress_bar_size">@dimen/fingerprint_progress_bar_size</item>
<item name="fingerprint_ring_radius">@dimen/fingerprint_ring_radius</item>
- <item name="ic_menu_add">@drawable/ic_menu_add_dark</item>
<item name="ic_menu_moreoverflow">@*android:drawable/ic_menu_moreoverflow_holo_dark</item>
<item name="ic_wps">@drawable/ic_wps_light</item>
<item name="wifi_signal">@drawable/wifi_signal</item>
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index 816f27b..6b5bda6 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -45,8 +45,11 @@
android:key="wallpaper"
android:title="@string/wallpaper_settings_title"
settings:keywords="@string/keywords_display_wallpaper"
- android:fragment="com.android.settings.WallpaperTypeSettings"
- settings:useAdminDisabledSummary="true" />
+ settings:useAdminDisabledSummary="true" >
+ <intent
+ android:targetPackage="@string/config_wallpaper_picker_package"
+ android:targetClass="@string/config_wallpaper_picker_class" />
+ </com.android.settingslib.RestrictedPreference>
<com.android.settings.TimeoutListPreference
android:key="screen_timeout"
diff --git a/res/xml/user_settings.xml b/res/xml/user_settings.xml
index cd0103d..1375ed4 100644
--- a/res/xml/user_settings.xml
+++ b/res/xml/user_settings.xml
@@ -26,7 +26,7 @@
<com.android.settings.DimmableIconPreference
android:key="user_add"
android:title="@string/user_add_user_or_profile_menu"
- android:icon="@drawable/ic_menu_add_dark" />
+ android:icon="@drawable/ic_menu_add" />
<PreferenceCategory
android:key="lock_screen_settings"
diff --git a/src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java b/src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java
index c56a956..d488d7a 100644
--- a/src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java
+++ b/src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java
@@ -18,19 +18,20 @@
import android.app.Fragment;
import android.app.KeyguardManager;
-import android.content.Intent;
import android.os.Bundle;
-import android.os.Handler;
import android.os.UserManager;
import android.view.MenuItem;
import android.view.WindowManager;
public abstract class ConfirmDeviceCredentialBaseActivity extends SettingsActivity {
+ private static final String STATE_IS_KEYGUARD_LOCKED = "STATE_IS_KEYGUARD_LOCKED";
+
private boolean mRestoring;
private boolean mDark;
private boolean mEnterAnimationPending;
private boolean mFirstTimeVisible = true;
+ private boolean mIsKeyguardLocked = false;
@Override
protected void onCreate(Bundle savedState) {
@@ -44,8 +45,15 @@
mDark = true;
}
super.onCreate(savedState);
- boolean deviceLocked = getSystemService(KeyguardManager.class).isKeyguardLocked();
- if (deviceLocked && getIntent().getBooleanExtra(
+ mIsKeyguardLocked = savedState == null
+ ? getSystemService(KeyguardManager.class).isKeyguardLocked()
+ : savedState.getBoolean(STATE_IS_KEYGUARD_LOCKED, false);
+ // If the activity is launched, not due to config change, when keyguard is locked and the
+ // flag is set, assume it's launched on top of keyguard on purpose.
+ // TODO: Don't abuse SHOW_WHEN_LOCKED and don't check isKeyguardLocked.
+ // Set extra SHOW_WHEN_LOCKED and WindowManager FLAG_SHOW_WHEN_LOCKED only if it's
+ // truly on top of keyguard on purpose
+ if (mIsKeyguardLocked && getIntent().getBooleanExtra(
ConfirmDeviceCredentialBaseFragment.SHOW_WHEN_LOCKED, false)) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
}
@@ -60,6 +68,12 @@
}
@Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putBoolean(STATE_IS_KEYGUARD_LOCKED, mIsKeyguardLocked);
+ }
+
+ @Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
diff --git a/src/com/android/settings/CredentialStorage.java b/src/com/android/settings/CredentialStorage.java
index 6cdf0b9..eed380b 100644
--- a/src/com/android/settings/CredentialStorage.java
+++ b/src/com/android/settings/CredentialStorage.java
@@ -103,16 +103,11 @@
static final int MIN_PASSWORD_QUALITY = DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
private static final int CONFIRM_KEY_GUARD_REQUEST = 1;
+ private static final int CONFIRM_CLEAR_SYSTEM_CREDENTIAL_REQUEST = 2;
private final KeyStore mKeyStore = KeyStore.getInstance();
/**
- * The UIDs that are used for system credential storage in keystore.
- */
- private static final int[] SYSTEM_CREDENTIAL_UIDS = {Process.WIFI_UID, Process.VPN_UID,
- Process.ROOT_UID, Process.SYSTEM_UID};
-
- /**
* When non-null, the bundle containing credentials to install.
*/
private Bundle mInstallBundle;
@@ -197,7 +192,7 @@
return;
}
// force key guard confirmation
- if (confirmKeyGuard()) {
+ if (confirmKeyGuard(CONFIRM_KEY_GUARD_REQUEST)) {
// will return password value via onActivityResult
return;
}
@@ -328,8 +323,10 @@
@Override public void onDismiss(DialogInterface dialog) {
if (mResetConfirmed) {
mResetConfirmed = false;
- new ResetKeyStoreAndKeyChain().execute();
- return;
+ if (confirmKeyGuard(CONFIRM_CLEAR_SYSTEM_CREDENTIAL_REQUEST)) {
+ // will return password value via onActivityResult
+ return;
+ }
}
finish();
}
@@ -343,12 +340,7 @@
@Override protected Boolean doInBackground(Void... unused) {
// Clear all the users credentials could have been installed in for this user.
- final UserManager um = (UserManager) getSystemService(USER_SERVICE);
- for (int userId : um.getProfileIdsWithDisabled(UserHandle.myUserId())) {
- for (int uid : SYSTEM_CREDENTIAL_UIDS) {
- mKeyStore.clearUid(UserHandle.getUid(userId, uid));
- }
- }
+ new LockPatternUtils(CredentialStorage.this).resetKeyStore(UserHandle.myUserId());
try {
KeyChainConnection keyChainConnection = KeyChain.bind(CredentialStorage.this);
@@ -454,10 +446,10 @@
/**
* Confirm existing key guard, returning password via onActivityResult.
*/
- private boolean confirmKeyGuard() {
+ private boolean confirmKeyGuard(int requestCode) {
Resources res = getResources();
boolean launched = new ChooseLockSettingsHelper(this)
- .launchConfirmationActivity(CONFIRM_KEY_GUARD_REQUEST,
+ .launchConfirmationActivity(requestCode,
res.getText(R.string.credentials_title), true);
return launched;
}
@@ -481,6 +473,13 @@
}
// failed confirmation, bail
finish();
+ } else if (requestCode == CONFIRM_CLEAR_SYSTEM_CREDENTIAL_REQUEST) {
+ if (resultCode == Activity.RESULT_OK) {
+ new ResetKeyStoreAndKeyChain().execute();
+ return;
+ }
+ // failed confirmation, bail
+ finish();
}
}
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index bd6619e..d68b480 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -410,12 +410,7 @@
@Override
public boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref) {
- // Override the fragment title for Wallpaper settings
- CharSequence title = pref.getTitle();
- if (pref.getFragment().equals(WallpaperTypeSettings.class.getName())) {
- title = getString(R.string.wallpaper_settings_fragment_title);
- }
- startPreferencePanel(pref.getFragment(), pref.getExtras(), -1, title,
+ startPreferencePanel(pref.getFragment(), pref.getExtras(), -1, pref.getTitle(),
null, 0);
return true;
}
diff --git a/src/com/android/settings/UserDictionarySettings.java b/src/com/android/settings/UserDictionarySettings.java
index 19d34ef..bdeab92 100644
--- a/src/com/android/settings/UserDictionarySettings.java
+++ b/src/com/android/settings/UserDictionarySettings.java
@@ -160,7 +160,7 @@
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
MenuItem actionItem =
menu.add(0, OPTIONS_MENU_ADD, 0, R.string.user_dict_settings_add_menu_title)
- .setIcon(R.drawable.ic_menu_add_dark);
+ .setIcon(R.drawable.ic_menu_add_white);
actionItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM |
MenuItem.SHOW_AS_ACTION_WITH_TEXT);
}
diff --git a/src/com/android/settings/accounts/AccountSettings.java b/src/com/android/settings/accounts/AccountSettings.java
index 22c9de7..eb74034 100644
--- a/src/com/android/settings/accounts/AccountSettings.java
+++ b/src/com/android/settings/accounts/AccountSettings.java
@@ -350,7 +350,7 @@
private Preference newManagedProfileSettings() {
Preference preference = new Preference(getPrefContext());
preference.setTitle(R.string.managed_profile_settings_title);
- preference.setIcon(R.drawable.ic_sysbar_quicksettings);
+ preference.setIcon(R.drawable.ic_settings);
preference.setOnPreferenceClickListener(this);
preference.setOrder(ORDER_NEXT_TO_LAST);
return preference;
diff --git a/src/com/android/settings/dashboard/conditional/ConditionManager.java b/src/com/android/settings/dashboard/conditional/ConditionManager.java
index 128ac27..f38bb2a 100644
--- a/src/com/android/settings/dashboard/conditional/ConditionManager.java
+++ b/src/com/android/settings/dashboard/conditional/ConditionManager.java
@@ -56,7 +56,7 @@
private ConditionManager(Context context) {
mContext = context;
- mConditions = new ArrayList<Condition>();
+ mConditions = new ArrayList<>();
new ConditionLoader().execute();
}
@@ -67,11 +67,11 @@
}
}
- private void readFromXml() {
- if (DEBUG) Log.d(TAG, "Reading from " + mXmlFile.toString());
+ private void readFromXml(File xmlFile, ArrayList<Condition> conditions) {
+ if (DEBUG) Log.d(TAG, "Reading from " + xmlFile.toString());
try {
XmlPullParser parser = Xml.newPullParser();
- FileReader in = new FileReader(mXmlFile);
+ FileReader in = new FileReader(xmlFile);
parser.setInput(in);
int state = parser.getEventType();
@@ -86,7 +86,7 @@
PersistableBundle bundle = PersistableBundle.restoreFromXml(parser);
if (DEBUG) Log.d(TAG, "Reading " + clz + " -- " + bundle);
condition.restoreState(bundle);
- mConditions.add(condition);
+ conditions.add(condition);
while (parser.getDepth() > depth) {
parser.next();
}
@@ -129,21 +129,21 @@
}
}
- private void addMissingConditions() {
- addIfMissing(AirplaneModeCondition.class);
- addIfMissing(HotspotCondition.class);
- addIfMissing(DndCondition.class);
- addIfMissing(BatterySaverCondition.class);
- addIfMissing(CellularDataCondition.class);
- addIfMissing(BackgroundDataCondition.class);
- addIfMissing(WorkModeCondition.class);
- Collections.sort(mConditions, CONDITION_COMPARATOR);
+ private void addMissingConditions(ArrayList<Condition> conditions) {
+ addIfMissing(AirplaneModeCondition.class, conditions);
+ addIfMissing(HotspotCondition.class, conditions);
+ addIfMissing(DndCondition.class, conditions);
+ addIfMissing(BatterySaverCondition.class, conditions);
+ addIfMissing(CellularDataCondition.class, conditions);
+ addIfMissing(BackgroundDataCondition.class, conditions);
+ addIfMissing(WorkModeCondition.class, conditions);
+ Collections.sort(conditions, CONDITION_COMPARATOR);
}
- private void addIfMissing(Class<? extends Condition> clz) {
- if (getCondition(clz) == null) {
+ private void addIfMissing(Class<? extends Condition> clz, ArrayList<Condition> conditions) {
+ if (getCondition(clz, conditions) == null) {
if (DEBUG) Log.d(TAG, "Adding missing " + clz.getName());
- mConditions.add(createCondition(clz));
+ conditions.add(createCondition(clz));
}
}
@@ -171,10 +171,14 @@
}
public <T extends Condition> T getCondition(Class<T> clz) {
- final int N = mConditions.size();
+ return getCondition(clz, mConditions);
+ }
+
+ private <T extends Condition> T getCondition(Class<T> clz, List<Condition> conditions) {
+ final int N = conditions.size();
for (int i = 0; i < N; i++) {
- if (clz.equals(mConditions.get(i).getClass())) {
- return (T) mConditions.get(i);
+ if (clz.equals(conditions.get(i).getClass())) {
+ return (T) conditions.get(i);
}
}
return null;
@@ -213,19 +217,22 @@
mListeners.remove(listener);
}
- private class ConditionLoader extends AsyncTask<Void, Void, Void> {
+ private class ConditionLoader extends AsyncTask<Void, Void, ArrayList<Condition>> {
@Override
- protected Void doInBackground(Void... params) {
+ protected ArrayList<Condition> doInBackground(Void... params) {
+ ArrayList<Condition> conditions = new ArrayList<>();
mXmlFile = new File(mContext.getFilesDir(), FILE_NAME);
if (mXmlFile.exists()) {
- readFromXml();
+ readFromXml(mXmlFile, conditions);
}
- addMissingConditions();
- return null;
+ addMissingConditions(conditions);
+ return conditions;
}
@Override
- protected void onPostExecute(Void aVoid) {
+ protected void onPostExecute(ArrayList<Condition> conditions) {
+ mConditions.clear();
+ mConditions.addAll(conditions);
final int N = mListeners.size();
for (int i = 0; i < N; i++) {
mListeners.get(i).onConditionsChanged();
diff --git a/src/com/android/settings/deletionhelper/AppStateUsageStatsBridge.java b/src/com/android/settings/deletionhelper/AppStateUsageStatsBridge.java
index 36c4196..6f77a29 100644
--- a/src/com/android/settings/deletionhelper/AppStateUsageStatsBridge.java
+++ b/src/com/android/settings/deletionhelper/AppStateUsageStatsBridge.java
@@ -41,6 +41,7 @@
private PackageManager mPm;
public static final long NEVER_USED = -1;
public static final long UNKNOWN_LAST_USE = -2;
+ public static final long UNUSED_DAYS_DELETION_THRESHOLD = 60;
public AppStateUsageStatsBridge(Context context, ApplicationsState appState,
Callback callback) {
@@ -105,7 +106,6 @@
* usage is unknown, it is skipped.
*/
public static final AppFilter FILTER_USAGE_STATS = new AppFilter() {
- private long UNUSED_DAYS_DELETION_THRESHOLD = 60;
@Override
public void init() {
diff --git a/src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java b/src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java
index bb99725..abd0ec1 100644
--- a/src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java
+++ b/src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java
@@ -18,6 +18,7 @@
import android.app.Activity;
import android.os.Bundle;
+import android.provider.Settings;
import android.util.Log;
import android.view.View;
import android.widget.Switch;
@@ -64,6 +65,10 @@
mDeletionHelper.setOnPreferenceClickListener(this);
mStorageManagerSwitch = (SwitchPreference) findPreference(KEY_STORAGE_MANAGER_SWITCH);
+ boolean isChecked =
+ Settings.Secure.getInt(getContentResolver(),
+ Settings.Secure.AUTOMATIC_STORAGE_MANAGER_ENABLED, 0) != 0;
+ mStorageManagerSwitch.setChecked(isChecked);
mStorageManagerSwitch.setOnPreferenceChangeListener(this);
}
@@ -79,6 +84,8 @@
case KEY_STORAGE_MANAGER_SWITCH:
boolean checked = (boolean) newValue;
mDaysToRetain.setEnabled(checked);
+ Settings.Secure.putInt(getContentResolver(),
+ Settings.Secure.AUTOMATIC_STORAGE_MANAGER_ENABLED, checked ? 1 : 0);
break;
case KEY_DAYS:
// TODO: Configure a setting which controls how many days of data the storage manager
diff --git a/src/com/android/settings/deletionhelper/DeletionHelperFragment.java b/src/com/android/settings/deletionhelper/DeletionHelperFragment.java
index 85c1035..9e1d0ea 100644
--- a/src/com/android/settings/deletionhelper/DeletionHelperFragment.java
+++ b/src/com/android/settings/deletionhelper/DeletionHelperFragment.java
@@ -394,7 +394,8 @@
mAppEntries.size()));
mApps.setSummary(app.getString(R.string.deletion_helper_apps_group_summary,
Formatter.formatFileSize(app,
- getTotalAppsFreeableSpace(true))));
+ getTotalAppsFreeableSpace(true)),
+ AppStateUsageStatsBridge.UNUSED_DAYS_DELETION_THRESHOLD));
}
}
diff --git a/src/com/android/settings/deviceinfo/SimStatus.java b/src/com/android/settings/deviceinfo/SimStatus.java
index 0acad37..610744b 100644
--- a/src/com/android/settings/deviceinfo/SimStatus.java
+++ b/src/com/android/settings/deviceinfo/SimStatus.java
@@ -362,7 +362,7 @@
mShowLatestAreaInfo = true;
}
}
- PersistableBundle carrierConfig = mCarrierConfigManager.getConfig(
+ PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(
mSir.getSubscriptionId());
mShowICCID = carrierConfig.getBoolean(
CarrierConfigManager.KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL);
diff --git a/src/com/android/settings/notification/ImportanceSeekBarPreference.java b/src/com/android/settings/notification/ImportanceSeekBarPreference.java
index 4da5dbf..fe97448 100644
--- a/src/com/android/settings/notification/ImportanceSeekBarPreference.java
+++ b/src/com/android/settings/notification/ImportanceSeekBarPreference.java
@@ -16,6 +16,8 @@
package com.android.settings.notification;
+import android.content.res.Resources;
+import android.util.TypedValue;
import com.android.settings.R;
import com.android.settings.SeekBarPreference;
@@ -52,8 +54,10 @@
int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
setLayoutResource(R.layout.preference_importance_slider);
- mActiveSliderTint = ColorStateList.valueOf(
- context.getColor(R.color.importance_slider_color));
+ Resources.Theme theme = context.getTheme();
+ TypedValue typedValue = new TypedValue();
+ theme.resolveAttribute(android.R.attr.colorAccent, typedValue, true);
+ mActiveSliderTint = ColorStateList.valueOf(context.getColor(typedValue.resourceId));
mInactiveSliderTint = ColorStateList.valueOf(
context.getColor(R.color.importance_disabled_slider_color));
mHandler = new Handler();
diff --git a/src/com/android/settings/search/DynamicIndexableContentMonitor.java b/src/com/android/settings/search/DynamicIndexableContentMonitor.java
index 6753a76..a24ec50 100644
--- a/src/com/android/settings/search/DynamicIndexableContentMonitor.java
+++ b/src/com/android/settings/search/DynamicIndexableContentMonitor.java
@@ -34,10 +34,12 @@
import android.os.Looper;
import android.os.Message;
import android.os.UserHandle;
+import android.os.UserManager;
import android.print.PrintManager;
import android.print.PrintServicesLoader;
import android.printservice.PrintServiceInfo;
import android.provider.UserDictionary;
+import android.util.Log;
import android.view.accessibility.AccessibilityManager;
import android.view.inputmethod.InputMethodInfo;
import android.view.inputmethod.InputMethodManager;
@@ -53,6 +55,7 @@
public final class DynamicIndexableContentMonitor extends PackageMonitor implements
InputManager.InputDeviceListener,
LoaderManager.LoaderCallbacks<List<PrintServiceInfo>> {
+ private static final String TAG = "DynamicIndexableContentMonitor";
private static final long DELAY_PROCESS_PACKAGE_CHANGE = 2000;
@@ -84,6 +87,7 @@
private Context mContext;
private boolean mHasFeatureIme;
+ private boolean mRegistered;
private static Intent getAccessibilityServiceIntent(String packageName) {
final Intent intent = new Intent(AccessibilityService.SERVICE_INTERFACE);
@@ -100,6 +104,14 @@
public void register(Activity activity, int loaderId) {
mContext = activity;
+ if (!mContext.getSystemService(UserManager.class).isUserUnlocked()) {
+ Log.w(TAG, "Skipping content monitoring because user is locked");
+ mRegistered = false;
+ return;
+ } else {
+ mRegistered = true;
+ }
+
boolean hasFeaturePrinting = mContext.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_PRINTING);
mHasFeatureIme = mContext.getPackageManager().hasSystemFeature(
@@ -151,7 +163,10 @@
register(activity, Looper.getMainLooper(), UserHandle.CURRENT, false);
}
+ @Override
public void unregister() {
+ if (!mRegistered) return;
+
super.unregister();
InputManager inputManager = (InputManager) mContext.getSystemService(
@@ -183,13 +198,17 @@
@Override
public void onPackageModified(String packageName) {
super.onPackageModified(packageName);
- final int state = mContext.getPackageManager().getApplicationEnabledSetting(
- packageName);
- if (state == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT
- || state == PackageManager.COMPONENT_ENABLED_STATE_ENABLED) {
- postMessage(MSG_PACKAGE_AVAILABLE, packageName);
- } else {
- postMessage(MSG_PACKAGE_UNAVAILABLE, packageName);
+ try {
+ final int state = mContext.getPackageManager().getApplicationEnabledSetting(
+ packageName);
+ if (state == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT
+ || state == PackageManager.COMPONENT_ENABLED_STATE_ENABLED) {
+ postMessage(MSG_PACKAGE_AVAILABLE, packageName);
+ } else {
+ postMessage(MSG_PACKAGE_UNAVAILABLE, packageName);
+ }
+ } catch (IllegalArgumentException e) {
+ Log.e(TAG, "Package does not exist: " + packageName, e);
}
}
diff --git a/src/com/android/settings/vpn2/ConfigDialogFragment.java b/src/com/android/settings/vpn2/ConfigDialogFragment.java
index 0dbaa9a..788b9a9 100644
--- a/src/com/android/settings/vpn2/ConfigDialogFragment.java
+++ b/src/com/android/settings/vpn2/ConfigDialogFragment.java
@@ -176,6 +176,7 @@
try {
LegacyVpnInfo connected = mService.getLegacyVpnInfo(UserHandle.myUserId());
if (connected != null && profile.key.equals(connected.key)) {
+ VpnUtils.clearLockdownVpn(getContext());
mService.prepareVpn(VpnConfig.LEGACY_VPN, VpnConfig.LEGACY_VPN,
UserHandle.myUserId());
}