Merge "Update UI for UsageStatsSettings" into lmp-dev
diff --git a/res/drawable-hdpi/ic_menu_add_white.png b/res/drawable-hdpi/ic_menu_add_white.png
new file mode 100644
index 0000000..7638c64
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_add_white.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_add_white.png b/res/drawable-mdpi/ic_menu_add_white.png
new file mode 100644
index 0000000..40cdc82
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_add_white.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_add_white.png b/res/drawable-xhdpi/ic_menu_add_white.png
new file mode 100644
index 0000000..1d53989
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_add_white.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_add_white.png b/res/drawable-xxhdpi/ic_menu_add_white.png
new file mode 100644
index 0000000..16a8b8a
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_menu_add_white.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_menu_add_white.png b/res/drawable-xxxhdpi/ic_menu_add_white.png
new file mode 100644
index 0000000..27a15f5
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_menu_add_white.png
Binary files differ
diff --git a/res/layout/bluetooth_device_picker.xml b/res/layout/bluetooth_device_picker.xml
index 9d8ae86..833a7b3 100755
--- a/res/layout/bluetooth_device_picker.xml
+++ b/res/layout/bluetooth_device_picker.xml
@@ -35,7 +35,7 @@
style="@style/wifi_item_label" />
<EditText android:id="@+id/name"
- android:layout_width="wrap_content"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textNoSuggestions"
android:maxLength="@integer/bluetooth_name_length"
@@ -45,7 +45,7 @@
<fragment android:id="@+id/bluetooth_fragment_settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- class="com.android.settings.bluetooth.DeviceProfilesSettings" />
+ class="com.android.settings.bluetooth.DevicePickerFragment" />
</LinearLayout>
diff --git a/res/layout/bluetooth_pin_confirm.xml b/res/layout/bluetooth_pin_confirm.xml
index a768908..2e2cd7f 100644
--- a/res/layout/bluetooth_pin_confirm.xml
+++ b/res/layout/bluetooth_pin_confirm.xml
@@ -29,15 +29,61 @@
android:orientation="vertical">
<TextView
- android:id="@+id/message"
+ android:id="@+id/message_caption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="20dip"
- android:layout_marginEnd="20dip"
- android:layout_marginTop="20dip"
- android:layout_marginBottom="20dip"
+ android:layout_marginStart="@dimen/bluetooth_dialog_padding"
+ android:layout_marginEnd="@dimen/bluetooth_dialog_padding"
+ android:layout_marginTop="@dimen/bluetooth_dialog_padding"
android:gravity="center_vertical"
- android:textAppearance="?android:attr/textAppearanceMedium" />
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="@*android:color/secondary_text_material_light" />
+
+ <TextView
+ android:id="@+id/message_subhead"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/bluetooth_dialog_padding"
+ android:layout_marginEnd="@dimen/bluetooth_dialog_padding"
+ android:layout_marginBottom="@dimen/bluetooth_dialog_padding"
+ android:gravity="center_vertical"
+ android:textAppearance="@android:style/TextAppearance.Material.Subhead" />
+
+ <TextView
+ android:id="@+id/pairing_caption"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/bluetooth_dialog_padding"
+ android:layout_marginEnd="@dimen/bluetooth_dialog_padding"
+ android:gravity="center_vertical"
+ android:text="@string/bluetooth_pairing_key_msg"
+ android:visibility="gone"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="@*android:color/secondary_text_material_light" />
+
+ <TextView
+ android:id="@+id/pairing_subhead"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/bluetooth_dialog_padding"
+ android:layout_marginEnd="@dimen/bluetooth_dialog_padding"
+ android:layout_marginBottom="@dimen/bluetooth_dialog_padding"
+ android:gravity="center_vertical"
+ android:visibility="gone"
+ android:textAppearance="@android:style/TextAppearance.Material.Headline" />
+
+ <TextView
+ android:id="@+id/pairing_code_message"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/bluetooth_dialog_padding"
+ android:layout_marginEnd="@dimen/bluetooth_dialog_padding"
+ android:layout_marginBottom="@dimen/bluetooth_dialog_padding"
+ android:gravity="center_vertical"
+ android:text="@string/bluetooth_enter_passkey_msg"
+ android:textAppearance="@android:style/TextAppearance.Material.Subhead"
+ android:textColor="@*android:color/secondary_text_material_light"
+ android:visibility="gone" />
</LinearLayout>
diff --git a/res/layout/bluetooth_pin_entry.xml b/res/layout/bluetooth_pin_entry.xml
index 44d9dde..caca4fb 100644
--- a/res/layout/bluetooth_pin_entry.xml
+++ b/res/layout/bluetooth_pin_entry.xml
@@ -29,22 +29,31 @@
android:orientation="vertical">
<TextView
- android:id="@+id/message"
+ android:id="@+id/message_caption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="20dip"
- android:layout_marginEnd="20dip"
- android:layout_marginTop="20dip"
- android:layout_marginBottom="20dip"
+ android:layout_marginStart="@dimen/bluetooth_dialog_padding"
+ android:layout_marginEnd="@dimen/bluetooth_dialog_padding"
+ android:layout_marginTop="@dimen/bluetooth_dialog_padding"
android:gravity="center_vertical"
- android:textAppearance="?android:attr/textAppearanceMedium" />
+ android:textAppearance="@android:style/TextAppearance.Material.Caption" />
+
+ <TextView
+ android:id="@+id/message_subhead"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/bluetooth_dialog_padding"
+ android:layout_marginEnd="@dimen/bluetooth_dialog_padding"
+ android:layout_marginBottom="@dimen/bluetooth_dialog_padding"
+ android:gravity="center_vertical"
+ android:textAppearance="@android:style/TextAppearance.Material.Subhead" />
<EditText
android:id="@+id/text"
android:layout_height="wrap_content"
android:layout_width="match_parent"
- android:layout_marginStart="20dip"
- android:layout_marginEnd="20dip"
+ android:layout_marginStart="@dimen/bluetooth_dialog_padding"
+ android:layout_marginEnd="@dimen/bluetooth_dialog_padding"
android:inputType="textPassword"
android:singleLine="true" />
@@ -53,8 +62,8 @@
android:text="@string/bluetooth_pin_values_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="20dip"
- android:layout_marginEnd="20dip"
+ android:layout_marginStart="@dimen/bluetooth_dialog_padding"
+ android:layout_marginEnd="@dimen/bluetooth_dialog_padding"
android:gravity="center_vertical"
android:textAppearance="?android:attr/textAppearanceSmall" />
@@ -63,8 +72,8 @@
android:text="@string/bluetooth_enable_alphanumeric_pin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="20dip"
- android:layout_marginEnd="20dip"
+ android:layout_marginStart="@dimen/bluetooth_dialog_padding"
+ android:layout_marginEnd="@dimen/bluetooth_dialog_padding"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceSmall" />
@@ -72,8 +81,8 @@
android:id="@+id/message_below_pin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="20dip"
- android:layout_marginEnd="20dip"
+ android:layout_marginStart="@dimen/bluetooth_dialog_padding"
+ android:layout_marginEnd="@dimen/bluetooth_dialog_padding"
android:gravity="center_vertical"
android:textAppearance="?android:attr/textAppearanceMedium" />
diff --git a/res/layout/manage_applications_item.xml b/res/layout/manage_applications_item.xml
index bf93840..e749859 100755
--- a/res/layout/manage_applications_item.xml
+++ b/res/layout/manage_applications_item.xml
@@ -44,7 +44,7 @@
android:layout_marginTop="2dip"
android:singleLine="true"
android:ellipsize="marquee"
- android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textAppearance="@android:style/TextAppearance.Material.Subhead"
android:textAlignment="viewStart" />
<CheckBox android:id="@+id/app_on_sdcard"
@@ -59,13 +59,15 @@
android:id="@+id/app_size"
android:layout_width="0dip"
android:layout_gravity="fill_horizontal|top"
- android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary"
android:textAlignment="viewStart" />
<TextView
android:id="@+id/app_disabled"
android:layout_marginStart="8dip"
android:layout_gravity="top"
- android:textAppearance="?android:attr/textAppearanceSmall" />
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary" />
</GridLayout>
diff --git a/res/layout/running_processes_header.xml b/res/layout/running_processes_header.xml
index a5a2bc7..38ff614 100644
--- a/res/layout/running_processes_header.xml
+++ b/res/layout/running_processes_header.xml
@@ -27,152 +27,168 @@
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
+ android:layout_height="48sp"
android:singleLine="true"
android:ellipsize="marquee"
- android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textAppearance="@android:style/TextAppearance.Material.Body2"
+ android:textColor="?android:attr/colorAccent"
android:textAlignment="viewStart"
+ android:gravity="left|center_vertical"
android:text="@string/running_processes_header_title" />
<view class="com.android.settings.applications.LinearColorBar"
android:id="@+id/color_bar"
android:layout_width="match_parent"
- android:layout_height="18sp"
- android:layout_marginTop="8dp"
+ android:layout_height="16sp"
android:orientation="horizontal" />
<LinearLayout
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
- android:orientation="horizontal"
- android:baselineAligned="true">
+ android:layout_height="32sp"
+ android:layout_marginTop="8sp"
+ android:orientation="horizontal">
<ImageView
android:layout_width="16sp"
android:layout_height="16sp"
+ android:layout_gravity="center"
android:scaleType="centerInside"
- android:baselineAlignBottom="true"
android:src="@color/running_processes_system_ram"
android:contentDescription="@null" />
- <TextView
- android:id="@+id/systemSizePrefix"
- android:text="@string/running_processes_header_system_prefix"
- android:textAppearance="?android:attr/textAppearanceMedium"
+ <LinearLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_marginLeft="16dp"
- android:maxLines="1" />
- <ImageView
- android:src="@drawable/dotted_line_480px"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="1px"
- android:layout_marginStart="1dip"
- android:layout_marginEnd="1dip"
- android:baselineAlignBottom="true"
- android:scaleType="center"
- android:contentDescription="@null" />
- <TextView
- android:id="@+id/systemSize"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:maxLines="1" />
+ android:layout_gravity="center"
+ android:orientation="horizontal">
+ <TextView
+ android:id="@+id/systemSizePrefix"
+ android:text="@string/running_processes_header_system_prefix"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_marginLeft="16dp"
+ android:maxLines="1" />
+ <ImageView
+ android:src="@drawable/dotted_line_480px"
+ android:layout_width="0dip"
+ android:layout_weight="1"
+ android:layout_height="1px"
+ android:layout_marginStart="1dip"
+ android:layout_marginEnd="1dip"
+ android:baselineAlignBottom="true"
+ android:scaleType="center"
+ android:contentDescription="@null" />
+ <TextView
+ android:id="@+id/systemSize"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:maxLines="1" />
+ </LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="4dp"
- android:orientation="horizontal"
- android:baselineAligned="true">
+ android:layout_height="32sp"
+ android:orientation="horizontal">
<ImageView
android:layout_width="16sp"
android:layout_height="16sp"
- android:baselineAlignBottom="true"
+ android:layout_gravity="center"
android:scaleType="centerInside"
android:src="@color/running_processes_apps_ram"
android:contentDescription="@null" />
- <TextView
- android:id="@+id/appsSizePrefix"
- android:text="@string/running_processes_header_apps_prefix"
- android:textAppearance="?android:attr/textAppearanceMedium"
+ <LinearLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_marginLeft="16dp"
- android:maxLines="1"
- android:paddingTop="6dip" />
- <ImageView
- android:src="@drawable/dotted_line_480px"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="1px"
- android:baselineAlignBottom="true"
- android:layout_marginStart="1dip"
- android:layout_marginEnd="1dip"
- android:scaleType="center"
- android:contentDescription="@null" />
- <TextView
- android:id="@+id/appsSize"
- android:paddingTop="6dip"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:maxLines="1" />
+ android:layout_gravity="center"
+ android:orientation="horizontal">
+ <TextView
+ android:id="@+id/appsSizePrefix"
+ android:text="@string/running_processes_header_apps_prefix"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_marginLeft="16dp"
+ android:maxLines="1" />
+ <ImageView
+ android:src="@drawable/dotted_line_480px"
+ android:layout_width="0dip"
+ android:layout_weight="1"
+ android:layout_height="1px"
+ android:baselineAlignBottom="true"
+ android:layout_marginStart="1dip"
+ android:layout_marginEnd="1dip"
+ android:scaleType="center"
+ android:contentDescription="@null" />
+ <TextView
+ android:id="@+id/appsSize"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:maxLines="1" />
+ </LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="4dp"
- android:orientation="horizontal"
- android:baselineAligned="true">
+ android:layout_height="32sp"
+ android:orientation="horizontal">
<ImageView
android:layout_width="16sp"
android:layout_height="16sp"
- android:baselineAlignBottom="true"
+ android:layout_gravity="center"
android:scaleType="centerInside"
android:src="@color/running_processes_free_ram"
android:contentDescription="@null" />
- <TextView
- android:id="@+id/freeSizePrefix"
- android:text="@string/running_processes_header_free_prefix"
- android:textAppearance="?android:attr/textAppearanceMedium"
+ <LinearLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_marginLeft="16dp"
- android:maxLines="1"
- android:paddingTop="6dip" />
- <ImageView
- android:src="@drawable/dotted_line_480px"
- android:layout_width="0dip"
- android:layout_weight="1"
- android:layout_height="1px"
- android:baselineAlignBottom="true"
- android:layout_marginStart="1dip"
- android:layout_marginEnd="1dip"
- android:scaleType="center"
- android:contentDescription="@null" />
- <TextView
- android:id="@+id/freeSize"
- android:paddingTop="6dip"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:maxLines="1" />
+ android:layout_gravity="center"
+ android:orientation="horizontal">
+ <TextView
+ android:id="@+id/freeSizePrefix"
+ android:text="@string/running_processes_header_free_prefix"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_marginLeft="16dp"
+ android:maxLines="1" />
+ <ImageView
+ android:src="@drawable/dotted_line_480px"
+ android:layout_width="0dip"
+ android:layout_weight="1"
+ android:layout_height="1px"
+ android:baselineAlignBottom="true"
+ android:layout_marginStart="1dip"
+ android:layout_marginEnd="1dip"
+ android:scaleType="center"
+ android:contentDescription="@null" />
+ <TextView
+ android:id="@+id/freeSize"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:maxLines="1" />
+ </LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/listHeader"
android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="16dp"
- android:layout_marginBottom="16dp"
+ android:layout_height="48dp"
+ android:layout_marginTop="8sp"
android:singleLine="true"
android:ellipsize="marquee"
- android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textAppearance="@android:style/TextAppearance.Material.Body2"
+ android:textColor="?android:attr/colorAccent"
android:textAlignment="viewStart"
+ android:gravity="left|center_vertical"
android:text="@string/running_processes_header_footer" />
</LinearLayout>
diff --git a/res/layout/running_processes_item.xml b/res/layout/running_processes_item.xml
index 52cecf6..036a90e 100644
--- a/res/layout/running_processes_item.xml
+++ b/res/layout/running_processes_item.xml
@@ -48,7 +48,7 @@
android:layout_weight="1"
android:singleLine="true"
android:ellipsize="marquee"
- android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textAppearance="@android:style/TextAppearance.Material.Subhead"
android:textAlignment="viewStart" />
<TextView
@@ -56,7 +56,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dip"
- android:textAppearance="?android:attr/textAppearanceSmall" />
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary" />
</LinearLayout>
@@ -69,7 +70,8 @@
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary"
android:textAlignment="viewStart" />
<TextView
@@ -77,7 +79,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dip"
- android:textAppearance="?android:attr/textAppearanceSmall" />
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary" />
</LinearLayout>
diff --git a/res/menu/vpn.xml b/res/menu/vpn.xml
index 3e0a788..22646d1 100644
--- a/res/menu/vpn.xml
+++ b/res/menu/vpn.xml
@@ -18,7 +18,7 @@
<item
android:id="@+id/vpn_create"
android:title="@string/vpn_create"
- android:icon="?attr/ic_menu_add"
+ android:icon="@drawable/ic_menu_add_white"
android:showAsAction="always" />
<item
android:id="@+id/vpn_lockdown"
diff --git a/res/values-mcc001-mnc01/config.xml b/res/values-mcc001-mnc01/config.xml
new file mode 100755
index 0000000..76127d4
--- /dev/null
+++ b/res/values-mcc001-mnc01/config.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 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.
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- Carrier_enabled editable -->
+ <bool name="config_allow_edit_carrier_enabled" translatable="false">true</bool>
+</resources>
diff --git a/res/values-mcc001-mnc010/config.xml b/res/values-mcc001-mnc010/config.xml
new file mode 100755
index 0000000..76127d4
--- /dev/null
+++ b/res/values-mcc001-mnc010/config.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 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.
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- Carrier_enabled editable -->
+ <bool name="config_allow_edit_carrier_enabled" translatable="false">true</bool>
+</resources>
diff --git a/res/values-mcc246-mnc081/config.xml b/res/values-mcc246-mnc081/config.xml
new file mode 100755
index 0000000..76127d4
--- /dev/null
+++ b/res/values-mcc246-mnc081/config.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 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.
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- Carrier_enabled editable -->
+ <bool name="config_allow_edit_carrier_enabled" translatable="false">true</bool>
+</resources>
diff --git a/res/values-mcc310-mnc028/config.xml b/res/values-mcc310-mnc028/config.xml
new file mode 100755
index 0000000..76127d4
--- /dev/null
+++ b/res/values-mcc310-mnc028/config.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 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.
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- Carrier_enabled editable -->
+ <bool name="config_allow_edit_carrier_enabled" translatable="false">true</bool>
+</resources>
diff --git a/res/values-mcc311-mnc390/config.xml b/res/values-mcc311-mnc390/config.xml
new file mode 100755
index 0000000..76127d4
--- /dev/null
+++ b/res/values-mcc311-mnc390/config.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 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.
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- Carrier_enabled editable -->
+ <bool name="config_allow_edit_carrier_enabled" translatable="false">true</bool>
+</resources>
diff --git a/res/values/config.xml b/res/values/config.xml
index 86d47fe..a6fd34e 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -32,4 +32,6 @@
<!-- Dashboard number of columns -->
<integer name="dashboard_num_columns">1</integer>
+ <!-- Carrier_enabled editable -->
+ <bool name="config_allow_edit_carrier_enabled" translatable="false">false</bool>
</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index bbe62a5..18306ca 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -219,6 +219,7 @@
<!-- Bluetooth Preferences -->
<dimen name="bluetooth_dialog_padding">8dip</dimen>
<integer name="bluetooth_name_length">32</integer>
+ <dimen name="bluetooth_pairing_padding">20dp</dimen>
<dimen name="wifi_divider_height">1px</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0649fdb..2377fe4 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1131,10 +1131,12 @@
<string name="bluetooth_pairing_request">Bluetooth pairing request</string>
<!-- Message when bluetooth dialog for pin entry is showing. [CHAR LIMIT=NONE] -->
- <string name="bluetooth_enter_pin_msg">To pair with:<xliff:g id="bold"><br><b></xliff:g><xliff:g id="device_name">%1$s</xliff:g><xliff:g id="end_bold"></b><br><br></xliff:g>Type the device\'s required PIN:</string>
+ <string name="bluetooth_enter_pin_msg">Device</string>
+ <!-- Message when bluetooth is informing the user of the pairing key. [CHAR LIMIT=NONE] -->
+ <string name="bluetooth_pairing_key_msg">Pairing code</string>
<!-- Message when bluetooth dialog for passkey entry is showing. [CHAR LIMIT=NONE] -->
- <string name="bluetooth_enter_passkey_msg">To pair with:<xliff:g id="bold"><br><b></xliff:g><xliff:g id="device_name">%1$s</xliff:g><xliff:g id="end_bold"></b><br><br></xliff:g>Type the device\'s required passkey:</string>
+ <string name="bluetooth_enter_passkey_msg">Type the pairing code then press Return or Enter</string>
<!-- Checkbox label for alphanumeric PIN entry (default is numeric PIN). [CHAR LIMIT=50] -->
<string name="bluetooth_enable_alphanumeric_pin">PIN contains letters or symbols</string>
@@ -5613,7 +5615,7 @@
<!-- Sounds and Notification -->
- <!-- Sound & notification: Settings header. [CHAR LIMIT=20] -->
+ <!-- Sound & notification: Settings header. [CHAR LIMIT=30] -->
<string name="notification_settings">Sound & notification</string>
<!-- Sound & notification > Sound section: Title for the option managing media volume. [CHAR LIMIT=30] -->
diff --git a/src/com/android/settings/ApnEditor.java b/src/com/android/settings/ApnEditor.java
index 738d433..8cfee92 100644
--- a/src/com/android/settings/ApnEditor.java
+++ b/src/com/android/settings/ApnEditor.java
@@ -327,6 +327,13 @@
mMvnoType.setSummary(
checkNull(mvnoDescription(mMvnoType.getValue())));
mMvnoMatchData.setSummary(checkNull(mMvnoMatchData.getText()));
+ // allow user to edit carrier_enabled for some APN
+ boolean ceEditable = getResources().getBoolean(R.bool.config_allow_edit_carrier_enabled);
+ if (ceEditable) {
+ mCarrierEnabled.setEnabled(true);
+ } else {
+ mCarrierEnabled.setEnabled(false);
+ }
}
/**
@@ -571,6 +578,7 @@
values.put(Telephony.Carriers.MVNO_TYPE, checkNotSet(mMvnoType.getValue()));
values.put(Telephony.Carriers.MVNO_MATCH_DATA, checkNotSet(mMvnoMatchData.getText()));
+ values.put(Telephony.Carriers.CARRIER_ENABLED, mCarrierEnabled.isChecked() ? 1 : 0);
getContentResolver().update(mUri, values, null, null);
return true;
@@ -664,6 +672,8 @@
if (pref != null) {
if (pref.equals(mPassword)){
pref.setSummary(starify(sharedPreferences.getString(key, "")));
+ } else if (pref.equals(mCarrierEnabled)) {
+ // do nothing
} else {
pref.setSummary(checkNull(sharedPreferences.getString(key, "")));
}
diff --git a/src/com/android/settings/DateTimeSettings.java b/src/com/android/settings/DateTimeSettings.java
index 77561bd..8eb9c52 100644
--- a/src/com/android/settings/DateTimeSettings.java
+++ b/src/com/android/settings/DateTimeSettings.java
@@ -16,6 +16,7 @@
package com.android.settings;
+import android.app.admin.DevicePolicyManager;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.DatePickerDialog;
@@ -89,12 +90,23 @@
boolean autoTimeEnabled = getAutoState(Settings.Global.AUTO_TIME);
boolean autoTimeZoneEnabled = getAutoState(Settings.Global.AUTO_TIME_ZONE);
+ mAutoTimePref = (CheckBoxPreference) findPreference(KEY_AUTO_TIME);
+
+ DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context
+ .DEVICE_POLICY_SERVICE);
+ if (dpm.getAutoTimeRequired()) {
+ mAutoTimePref.setEnabled(false);
+
+ // If Settings.Global.AUTO_TIME is false it will be set to true
+ // by the device policy manager very soon.
+ // Note that this app listens to that change.
+ }
+
Intent intent = getActivity().getIntent();
boolean isFirstRun = intent.getBooleanExtra(EXTRA_IS_FIRST_RUN, false);
mDummyDate = Calendar.getInstance();
- mAutoTimePref = (CheckBoxPreference) findPreference(KEY_AUTO_TIME);
mAutoTimePref.setChecked(autoTimeEnabled);
mAutoTimeZonePref = (CheckBoxPreference) findPreference(KEY_AUTO_TIME_ZONE);
// Override auto-timezone if it's a wifi-only device or if we're still in setup wizard.
diff --git a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
index 4b16ff4..eca0cca 100644
--- a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
+++ b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
@@ -56,8 +56,6 @@
private AlertDialog mDisconnectDialog;
- private View mView;
-
public BluetoothDevicePreference(Context context, CachedBluetoothDevice cachedDevice) {
super(context);
@@ -142,7 +140,6 @@
}
}
- mView = view;
super.onBindView(view);
}
@@ -182,10 +179,7 @@
int bondState = mCachedDevice.getBondState();
if (mCachedDevice.isConnected()) {
- if (mOnSettingsClickListener != null) {
- mView.setTag(mCachedDevice);
- mOnSettingsClickListener.onClick(mView);
- }
+ askDisconnect();
} else if (bondState == BluetoothDevice.BOND_BONDED) {
mCachedDevice.connect(true);
} else if (bondState == BluetoothDevice.BOND_NONE) {
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDialog.java b/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
index 9922042..02eed99 100755
--- a/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
@@ -175,7 +175,8 @@
private View createPinEntryView(String deviceName) {
View view = getLayoutInflater().inflate(R.layout.bluetooth_pin_entry, null);
- TextView messageView = (TextView) view.findViewById(R.id.message);
+ TextView messageViewCaption = (TextView) view.findViewById(R.id.message_caption);
+ TextView messageViewContent = (TextView) view.findViewById(R.id.message_subhead);
TextView messageView2 = (TextView) view.findViewById(R.id.message_below_pin);
CheckBox alphanumericPin = (CheckBox) view.findViewById(R.id.alphanumeric_pin);
mPairingView = (EditText) view.findViewById(R.id.text);
@@ -194,7 +195,7 @@
break;
case BluetoothDevice.PAIRING_VARIANT_PASSKEY:
- messageId1 = R.string.bluetooth_enter_passkey_msg;
+ messageId1 = R.string.bluetooth_enter_pin_msg;
messageId2 = R.string.bluetooth_enter_passkey_other_device;
// Maximum of 6 digits for passkey
maxLength = BLUETOOTH_PASSKEY_MAX_LENGTH;
@@ -206,9 +207,8 @@
return null;
}
- // HTML escape deviceName, Format the message string, then parse HTML style tags
- String messageText = getString(messageId1, Html.escapeHtml(deviceName));
- messageView.setText(Html.fromHtml(messageText));
+ messageViewCaption.setText(messageId1);
+ messageViewContent.setText(deviceName);
messageView2.setText(messageId2);
mPairingView.setInputType(InputType.TYPE_CLASS_NUMBER);
mPairingView.setFilters(new InputFilter[] {
@@ -219,33 +219,46 @@
private View createView(CachedBluetoothDeviceManager deviceManager) {
View view = getLayoutInflater().inflate(R.layout.bluetooth_pin_confirm, null);
- // Escape device name to avoid HTML injection.
+ // Escape device name to avoid HTML injection.
String name = Html.escapeHtml(deviceManager.getName(mDevice));
- TextView messageView = (TextView) view.findViewById(R.id.message);
+ TextView messageViewCaption = (TextView) view.findViewById(R.id.message_caption);
+ TextView messageViewContent = (TextView) view.findViewById(R.id.message_subhead);
+ TextView pairingViewCaption = (TextView) view.findViewById(R.id.pairing_caption);
+ TextView pairingViewContent = (TextView) view.findViewById(R.id.pairing_subhead);
+ TextView messagePairing = (TextView) view.findViewById(R.id.pairing_code_message);
- String messageText; // formatted string containing HTML style tags
+ String messageCaption = null;
+ String pairingContent = null;
switch (mType) {
+ case BluetoothDevice.PAIRING_VARIANT_DISPLAY_PASSKEY:
+ case BluetoothDevice.PAIRING_VARIANT_DISPLAY_PIN:
case BluetoothDevice.PAIRING_VARIANT_PASSKEY_CONFIRMATION:
- messageText = getString(R.string.bluetooth_confirm_passkey_msg,
- name, mPairingKey);
+ messageCaption = getString(R.string.bluetooth_enter_pin_msg);
+ pairingContent = mPairingKey;
break;
case BluetoothDevice.PAIRING_VARIANT_CONSENT:
case BluetoothDevice.PAIRING_VARIANT_OOB_CONSENT:
- messageText = getString(R.string.bluetooth_incoming_pairing_msg, name);
- break;
-
- case BluetoothDevice.PAIRING_VARIANT_DISPLAY_PASSKEY:
- case BluetoothDevice.PAIRING_VARIANT_DISPLAY_PIN:
- messageText = getString(R.string.bluetooth_display_passkey_pin_msg, name,
- mPairingKey);
+ messageCaption = getString(R.string.bluetooth_enter_pin_msg);
break;
default:
Log.e(TAG, "Incorrect pairing type received, not creating view");
return null;
}
- messageView.setText(Html.fromHtml(messageText));
+
+ if (messageViewCaption != null) {
+ messageViewCaption.setText(messageCaption);
+ messageViewContent.setText(name);
+ }
+
+ if (pairingContent != null) {
+ pairingViewCaption.setVisibility(View.VISIBLE);
+ pairingViewContent.setVisibility(View.VISIBLE);
+ pairingViewContent.setText(pairingContent);
+ messagePairing.setVisibility(View.VISIBLE);
+ }
+
return view;
}
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingRequest.java b/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
index ea36fee..44198d3 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingRequest.java
@@ -90,7 +90,9 @@
.setContentText(res.getString(R.string.bluetooth_notif_message, name))
.setContentIntent(pending)
.setAutoCancel(true)
- .setDefaults(Notification.DEFAULT_SOUND);
+ .setDefaults(Notification.DEFAULT_SOUND)
+ .setColor(res.getColor(
+ com.android.internal.R.color.system_notification_accent_color));
NotificationManager manager = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
diff --git a/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java b/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java
index c3b93be..1ede05b 100644
--- a/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java
+++ b/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java
@@ -122,17 +122,20 @@
break;
}
Notification notification = new Notification.Builder(context)
- .setContentTitle(title)
- .setTicker(message)
- .setContentText(message)
- .setSmallIcon(android.R.drawable.stat_sys_data_bluetooth)
- .setAutoCancel(true)
- .setPriority(Notification.PRIORITY_MAX)
- .setOnlyAlertOnce(false)
- .setDefaults(Notification.DEFAULT_ALL)
- .setContentIntent(PendingIntent.getActivity(context, 0, connectionAccessIntent, 0))
- .setDeleteIntent(PendingIntent.getBroadcast(context, 0, deleteIntent, 0))
- .build();
+ .setContentTitle(title)
+ .setTicker(message)
+ .setContentText(message)
+ .setSmallIcon(android.R.drawable.stat_sys_data_bluetooth)
+ .setAutoCancel(true)
+ .setPriority(Notification.PRIORITY_MAX)
+ .setOnlyAlertOnce(false)
+ .setDefaults(Notification.DEFAULT_ALL)
+ .setContentIntent(PendingIntent.getActivity(context, 0,
+ connectionAccessIntent, 0))
+ .setDeleteIntent(PendingIntent.getBroadcast(context, 0, deleteIntent, 0))
+ .setColor(context.getResources().getColor(
+ com.android.internal.R.color.system_notification_accent_color))
+ .build();
notification.flags |= Notification.FLAG_NO_CLEAR; /* cannot be set with the builder */
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index b26ba65..5325ed3 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -113,6 +113,12 @@
}
@Override
+ public void onStart() {
+ super.onStart();
+ mStatsHelper.clearStats();
+ }
+
+ @Override
public void onResume() {
super.onResume();
BatteryStatsHelper.dropFile(getActivity(), BATTERY_HISTORY_FILE);
@@ -250,7 +256,8 @@
mAppListGroup.addPreference(mHistPref);
boolean addedSome = false;
- PowerProfile powerProfile = mStatsHelper.getPowerProfile();
+ final PowerProfile powerProfile = mStatsHelper.getPowerProfile();
+ final BatteryStats stats = mStatsHelper.getStats();
final double averagePower = powerProfile.getAveragePower(PowerProfile.POWER_SCREEN_FULL);
if (averagePower >= MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP) {
final List<UserHandle> profiles = mUm.getUserProfiles();
@@ -259,7 +266,7 @@
final List<BatterySipper> usageList = mStatsHelper.getUsageList();
- final int dischargeAmount = mStatsHelper.getStats().getDischargeAmount(mStatsType);
+ final int dischargeAmount = stats != null ? stats.getDischargeAmount(mStatsType) : 0;
final int numSippers = usageList.size();
for (int i = 0; i < numSippers; i++) {
final BatterySipper sipper = usageList.get(i);
diff --git a/src/com/android/settings/sim/SimSettings.java b/src/com/android/settings/sim/SimSettings.java
index 9762c51..6526996 100644
--- a/src/com/android/settings/sim/SimSettings.java
+++ b/src/com/android/settings/sim/SimSettings.java
@@ -88,6 +88,8 @@
private SubInfoRecord mCalls = null;
private SubInfoRecord mSMS = null;
+ private int mNumSims;
+
public SimSettings() {
super(DISALLOW_CONFIG_SIM);
}
@@ -114,10 +116,14 @@
final int numSlots = tm.getSimCount();
mAvailableSubInfos = new ArrayList<SubInfoRecord>(numSlots);
+ mNumSims = 0;
for (int i = 0; i < numSlots; ++i) {
final SubInfoRecord sir = findRecordBySlotId(i);
simCards.addPreference(new SimPreference(getActivity(), sir, i));
mAvailableSubInfos.add(sir);
+ if (sir != null) {
+ mNumSims++;
+ }
}
updateActivitesCategory();
@@ -195,6 +201,7 @@
if (sir != null) {
simPref.setSelectedItem(sir.mSlotId + 1);
}
+ simPref.setEnabled(mNumSims > 1);
}
private void updateCellularDataValues() {
@@ -203,6 +210,7 @@
if (sir != null) {
simPref.setSelectedItem(sir.mSlotId);
}
+ simPref.setEnabled(mNumSims > 1);
}
private void updateCallValues() {
@@ -211,6 +219,7 @@
if (sir != null) {
simPref.setSelectedItem(sir.mSlotId + 1);
}
+ simPref.setEnabled(mNumSims > 1);
}
@Override
diff --git a/src/com/android/settings/wifi/AdvancedWifiSettings.java b/src/com/android/settings/wifi/AdvancedWifiSettings.java
index a57097b..dfb86cc 100644
--- a/src/com/android/settings/wifi/AdvancedWifiSettings.java
+++ b/src/com/android/settings/wifi/AdvancedWifiSettings.java
@@ -63,6 +63,7 @@
private static final String KEY_WPS_PIN = "wps_pin_entry";
private WifiManager mWifiManager;
+ private NetworkScoreManager mNetworkScoreManager;
private IntentFilter mFilter;
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@@ -89,6 +90,8 @@
mFilter = new IntentFilter();
mFilter.addAction(WifiManager.LINK_CONFIGURATION_CHANGED_ACTION);
mFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
+ mNetworkScoreManager =
+ (NetworkScoreManager) getSystemService(Context.NETWORK_SCORE_SERVICE);
}
@Override
@@ -258,7 +261,7 @@
}
} else if (KEY_WIFI_ASSISTANT.equals(key)) {
if (((Boolean)newValue).booleanValue() == false) {
- NetworkScorerAppManager.setActiveScorer(context, null);
+ mNetworkScoreManager.setActiveScorer(null);
return true;
}
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 57f4690..abf4de8 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -101,7 +101,7 @@
private static final int MENU_ID_MODIFY = Menu.FIRST + 8;
private static final int MENU_ID_WRITE_NFC = Menu.FIRST + 9;
- private static final String KEY_ASSISTANT_DISMISS_PLATFORM = "wifi_assistant_dismiss_platform";
+ private static final String KEY_ASSISTANT_DISMISS_PLATFORM = "assistant_dismiss_platform";
public static final int WIFI_DIALOG_ID = 1;
/* package */ static final int WPS_PBC_DIALOG_ID = 2;
@@ -768,7 +768,7 @@
private void disableWifiAssistantCardUntilPlatformUpgrade() {
SharedPreferences sharedPreferences = getPreferenceScreen().getSharedPreferences();
SharedPreferences.Editor editor = sharedPreferences.edit();
- editor.putLong(KEY_ASSISTANT_DISMISS_PLATFORM, Build.VERSION.SDK_INT);
+ editor.putInt(KEY_ASSISTANT_DISMISS_PLATFORM, Build.VERSION.SDK_INT);
editor.apply();
}
@@ -780,8 +780,6 @@
private void setOffMessage() {
if (mEmptyView != null) {
- mEmptyView.setCompoundDrawablesWithIntrinsicBounds(0,
- R.drawable.ic_wifi_emptystate, 0, 0);
mEmptyView.setText(R.string.wifi_empty_list_wifi_off);
if (android.provider.Settings.Global.getInt(getActivity().getContentResolver(),
android.provider.Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1) {