Merge tag 'android-16.0.0_r1' of https://android.googlesource.com/platform/packages/apps/Messaging into HEAD
Android 16.0.0 release 1
Change-Id: I38156e95bca1b18424f82fdf6eedc95eb8355df5
diff --git a/Android.bp b/Android.bp
index 05fd866..1e8f5ee 100644
--- a/Android.bp
+++ b/Android.bp
@@ -65,12 +65,11 @@
"androidx.core_core",
"androidx.fragment_fragment",
"androidx.media_media",
- "androidx.legacy_legacy-support-core-utils",
- "androidx.legacy_legacy-support-core-ui",
"androidx.palette_palette",
"androidx.recyclerview_recyclerview",
"androidx.viewpager_viewpager",
"androidx.legacy_legacy-support-v13",
+ "androidx.preference_preference",
"colorpicker",
"libchips",
"libphotoviewer",
@@ -80,6 +79,7 @@
"com.android.vcard",
"guava",
"libphonenumber",
+ "OmniPreferenceTheme"
],
aaptflags: [
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index fffcdab..4682e58 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -15,10 +15,11 @@
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
package="com.android.messaging"
android:installLocation="internalOnly">
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="24" />
+ <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" />
<!-- Application holds CPU wakelock while working in background -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
@@ -28,6 +29,7 @@
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_MMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
+ <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" />
<!-- Application needs access to MMS network -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
@@ -56,11 +58,19 @@
<uses-feature android:name="android.hardware.microphone" android:required="false" />
<uses-feature android:name="android.hardware.screen.portrait" android:required="false" />
+ <queries>
+ <intent>
+ <action android:name="android.intent.action.SENDTO"/>
+ <data android:scheme="smsto" android:host="*" />
+ </intent>
+ </queries>
+
<application
android:name="com.android.messaging.BugleApplication"
android:allowBackup="false"
- android:icon="@drawable/ic_launcher"
+ android:icon="@mipmap/ic_launcher_messaging"
android:label="@string/app_name"
+ android:requestLegacyExternalStorage="true"
android:theme="@style/BugleTheme"
android:supportsRtl="true">
@@ -71,7 +81,7 @@
android:screenOrientation="user"
android:label="@string/app_name"
android:exported="true"
- android:theme="@style/BugleTheme.ConversationListActivity">
+ android:theme="@style/LaunchTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
@@ -388,6 +398,7 @@
android:permission="android.permission.BROADCAST_SMS">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_DELIVER" />
+ <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</receiver>
diff --git a/README b/README
deleted file mode 100644
index 15142ba..0000000
--- a/README
+++ /dev/null
@@ -1,2 +0,0 @@
-This app is not actively supported and the source is only available as a reference. This project will be removed from the source manifest sometime in the future.
-
diff --git a/proguard.flags b/proguard.flags
index 9c4c022..5fc7994 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -67,7 +67,7 @@
void <init>();
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
--keep public class * extends android.preference.Preference {
+-keep public class * extends androidx.preference.Preference {
void <init>();
}
# TODO(b/373579455): Evaluate if <init> needs to be kept.
diff --git a/res/drawable-hdpi/ic_notifications_off_dark.png b/res/drawable-hdpi/ic_notifications_off_dark.png
deleted file mode 100644
index 9bcdc62..0000000
--- a/res/drawable-hdpi/ic_notifications_off_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_notifications_off_light.png b/res/drawable-hdpi/ic_notifications_off_light.png
deleted file mode 100644
index 433b6a9..0000000
--- a/res/drawable-hdpi/ic_notifications_off_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_notifications_off_small_light.png b/res/drawable-hdpi/ic_notifications_off_small_light.png
deleted file mode 100644
index fbd0ad5..0000000
--- a/res/drawable-hdpi/ic_notifications_off_small_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_notifications_on_dark.png b/res/drawable-hdpi/ic_notifications_on_dark.png
deleted file mode 100644
index 21e48a5..0000000
--- a/res/drawable-hdpi/ic_notifications_on_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_notifications_on_light.png b/res/drawable-hdpi/ic_notifications_on_light.png
deleted file mode 100644
index 6b39fec..0000000
--- a/res/drawable-hdpi/ic_notifications_on_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_notifications_off_dark.png b/res/drawable-mdpi/ic_notifications_off_dark.png
deleted file mode 100644
index 4a5a7e9..0000000
--- a/res/drawable-mdpi/ic_notifications_off_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_notifications_off_light.png b/res/drawable-mdpi/ic_notifications_off_light.png
deleted file mode 100644
index 33e0b4a..0000000
--- a/res/drawable-mdpi/ic_notifications_off_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_notifications_off_small_light.png b/res/drawable-mdpi/ic_notifications_off_small_light.png
deleted file mode 100644
index 4bd9563..0000000
--- a/res/drawable-mdpi/ic_notifications_off_small_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_notifications_on_dark.png b/res/drawable-mdpi/ic_notifications_on_dark.png
deleted file mode 100644
index 77a2a7d..0000000
--- a/res/drawable-mdpi/ic_notifications_on_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_notifications_on_light.png b/res/drawable-mdpi/ic_notifications_on_light.png
deleted file mode 100644
index eae03a5..0000000
--- a/res/drawable-mdpi/ic_notifications_on_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_notifications_off_dark.png b/res/drawable-xhdpi/ic_notifications_off_dark.png
deleted file mode 100644
index 4f3b924..0000000
--- a/res/drawable-xhdpi/ic_notifications_off_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_notifications_off_light.png b/res/drawable-xhdpi/ic_notifications_off_light.png
deleted file mode 100644
index 16ae132..0000000
--- a/res/drawable-xhdpi/ic_notifications_off_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_notifications_off_small_light.png b/res/drawable-xhdpi/ic_notifications_off_small_light.png
deleted file mode 100644
index e54fc52..0000000
--- a/res/drawable-xhdpi/ic_notifications_off_small_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_notifications_on_dark.png b/res/drawable-xhdpi/ic_notifications_on_dark.png
deleted file mode 100644
index 40f2909..0000000
--- a/res/drawable-xhdpi/ic_notifications_on_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_notifications_on_light.png b/res/drawable-xhdpi/ic_notifications_on_light.png
deleted file mode 100644
index 3c44f93..0000000
--- a/res/drawable-xhdpi/ic_notifications_on_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_notifications_off_dark.png b/res/drawable-xxhdpi/ic_notifications_off_dark.png
deleted file mode 100644
index 27d3754..0000000
--- a/res/drawable-xxhdpi/ic_notifications_off_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_notifications_off_light.png b/res/drawable-xxhdpi/ic_notifications_off_light.png
deleted file mode 100644
index a2aedec..0000000
--- a/res/drawable-xxhdpi/ic_notifications_off_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_notifications_off_small_light.png b/res/drawable-xxhdpi/ic_notifications_off_small_light.png
deleted file mode 100644
index 2a90e07..0000000
--- a/res/drawable-xxhdpi/ic_notifications_off_small_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_notifications_on_dark.png b/res/drawable-xxhdpi/ic_notifications_on_dark.png
deleted file mode 100644
index e64da6b..0000000
--- a/res/drawable-xxhdpi/ic_notifications_on_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_notifications_on_light.png b/res/drawable-xxhdpi/ic_notifications_on_light.png
deleted file mode 100644
index f8f7d15..0000000
--- a/res/drawable-xxhdpi/ic_notifications_on_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_notifications_off_dark.png b/res/drawable-xxxhdpi/ic_notifications_off_dark.png
deleted file mode 100644
index 10ac318..0000000
--- a/res/drawable-xxxhdpi/ic_notifications_off_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_notifications_off_light.png b/res/drawable-xxxhdpi/ic_notifications_off_light.png
deleted file mode 100644
index 8eb5782..0000000
--- a/res/drawable-xxxhdpi/ic_notifications_off_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_notifications_off_small_light.png b/res/drawable-xxxhdpi/ic_notifications_off_small_light.png
deleted file mode 100644
index 3756943..0000000
--- a/res/drawable-xxxhdpi/ic_notifications_off_small_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_notifications_on_dark.png b/res/drawable-xxxhdpi/ic_notifications_on_dark.png
deleted file mode 100644
index 3896212..0000000
--- a/res/drawable-xxxhdpi/ic_notifications_on_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_notifications_on_light.png b/res/drawable-xxxhdpi/ic_notifications_on_light.png
deleted file mode 100644
index 47794fd..0000000
--- a/res/drawable-xxxhdpi/ic_notifications_on_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/attachment_audio_preview_background.xml b/res/drawable/attachment_audio_preview_background.xml
index 8b62415..a63c510 100644
--- a/res/drawable/attachment_audio_preview_background.xml
+++ b/res/drawable/attachment_audio_preview_background.xml
@@ -15,6 +15,6 @@
limitations under the License.
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
- <solid android:color="@android:color/white" />
- <corners android:radius="2dp" />
-</shape>
\ No newline at end of file
+ <solid android:color="@color/contextual_action_bar_background_color" />
+ <corners android:radius="16dp" />
+</shape>
diff --git a/res/drawable/attachment_image_placeholder_background.xml b/res/drawable/attachment_image_placeholder_background.xml
index b3315e8..5d4cc96 100644
--- a/res/drawable/attachment_image_placeholder_background.xml
+++ b/res/drawable/attachment_image_placeholder_background.xml
@@ -15,6 +15,6 @@
limitations under the License.
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
- <solid android:color="@android:color/white" />
+ <solid android:color="@color/contextual_action_bar_background_color" />
<corners android:radius="@dimen/attachment_rounded_corner_radius" />
-</shape>
\ No newline at end of file
+</shape>
diff --git a/res/drawable/attachment_vcard_preview_background.xml b/res/drawable/attachment_vcard_preview_background.xml
index 8b62415..a63c510 100644
--- a/res/drawable/attachment_vcard_preview_background.xml
+++ b/res/drawable/attachment_vcard_preview_background.xml
@@ -15,6 +15,6 @@
limitations under the License.
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
- <solid android:color="@android:color/white" />
- <corners android:radius="2dp" />
-</shape>
\ No newline at end of file
+ <solid android:color="@color/contextual_action_bar_background_color" />
+ <corners android:radius="16dp" />
+</shape>
diff --git a/res/drawable/audio_record_control_button_background.xml b/res/drawable/audio_record_control_button_background.xml
index 02f329e..a3f5fa8 100644
--- a/res/drawable/audio_record_control_button_background.xml
+++ b/res/drawable/audio_record_control_button_background.xml
@@ -22,5 +22,5 @@
android:width="1dp"
android:color="@color/audio_record_control_button_stroke"/>
<solid
- android:color="@android:color/white"/>
-</shape>
\ No newline at end of file
+ android:color="@color/contact_picker_background"/>
+</shape>
diff --git a/res/drawable/chips_dropdown_background.xml b/res/drawable/chips_dropdown_background.xml
index 48a727d..02a6b5c 100644
--- a/res/drawable/chips_dropdown_background.xml
+++ b/res/drawable/chips_dropdown_background.xml
@@ -18,5 +18,5 @@
<item android:drawable="@color/chips_dropdown_background_activated"
android:state_activated="true"/>
<item android:drawable="@color/chips_dropdown_background_pressed" android:state_pressed="true"/>
- <item android:drawable="@android:color/white"/>
-</selector>
\ No newline at end of file
+ <item android:drawable="@color/contextual_action_bar_background_color"/>
+</selector>
diff --git a/res/drawable/ic_archive.xml b/res/drawable/ic_archive.xml
new file mode 100644
index 0000000..36aa44f
--- /dev/null
+++ b/res/drawable/ic_archive.xml
@@ -0,0 +1,8 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:tint="@color/settings_item_title_text_primary"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#ffffff" android:pathData="M5.12,5L5.93,4H17.93L18.87,5M12,17.5L6.5,12H10V10H14V12H17.5L12,17.5M20.54,5.23L19.15,3.55C18.88,3.21 18.47,3 18,3H6C5.53,3 5.12,3.21 4.84,3.55L3.46,5.23C3.17,5.57 3,6 3,6.5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V6.5C21,6 20.83,5.57 20.54,5.23Z" />
+</vector>
diff --git a/res/drawable/ic_archive_small.xml b/res/drawable/ic_archive_small.xml
new file mode 100644
index 0000000..36aa44f
--- /dev/null
+++ b/res/drawable/ic_archive_small.xml
@@ -0,0 +1,8 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:tint="@color/settings_item_title_text_primary"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#ffffff" android:pathData="M5.12,5L5.93,4H17.93L18.87,5M12,17.5L6.5,12H10V10H14V12H17.5L12,17.5M20.54,5.23L19.15,3.55C18.88,3.21 18.47,3 18,3H6C5.53,3 5.12,3.21 4.84,3.55L3.46,5.23C3.17,5.57 3,6 3,6.5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V6.5C21,6 20.83,5.57 20.54,5.23Z" />
+</vector>
diff --git a/res/drawable/ic_archive_undo_small.xml b/res/drawable/ic_archive_undo_small.xml
new file mode 100644
index 0000000..7a34620
--- /dev/null
+++ b/res/drawable/ic_archive_undo_small.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:tint="@color/settings_item_title_text_primary"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#ffffff"
+ android:pathData="M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z" />
+</vector>
diff --git a/res/drawable/ic_cancel_small.xml b/res/drawable/ic_cancel_small.xml
new file mode 100644
index 0000000..05dd498
--- /dev/null
+++ b/res/drawable/ic_cancel_small.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24"
+ android:tint="@color/settings_item_title_text_primary">
+ <path android:fillColor="#ffffff"
+
+ android:pathData="M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z" />
+</vector>
diff --git a/res/drawable/ic_content_copy.xml b/res/drawable/ic_content_copy.xml
new file mode 100644
index 0000000..de01f50
--- /dev/null
+++ b/res/drawable/ic_content_copy.xml
@@ -0,0 +1,8 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:tint="@color/settings_item_title_text_primary"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#ffffff" android:pathData="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" />
+</vector>
diff --git a/res/drawable/ic_delete_small.xml b/res/drawable/ic_delete_small.xml
new file mode 100644
index 0000000..f79cf47
--- /dev/null
+++ b/res/drawable/ic_delete_small.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:tint="@color/settings_item_title_text_primary"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#ffffff"
+
+ android:pathData="M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z" />
+</vector>
diff --git a/res/drawable/ic_dnd_on.xml b/res/drawable/ic_dnd_on.xml
new file mode 100644
index 0000000..a7711f7
--- /dev/null
+++ b/res/drawable/ic_dnd_on.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:tint="@color/settings_item_title_text_primary"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#ffffff"
+ android:pathData="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M17,13H7V11H17V13Z" />
+</vector>
diff --git a/res/drawable/ic_file_download.xml b/res/drawable/ic_file_download.xml
new file mode 100644
index 0000000..8c6d167
--- /dev/null
+++ b/res/drawable/ic_file_download.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:tint="@color/settings_item_title_text_primary"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#ffffff"
+ android:pathData="M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z" />
+</vector>
diff --git a/res/drawable/ic_forward.xml b/res/drawable/ic_forward.xml
new file mode 100644
index 0000000..d0107f1
--- /dev/null
+++ b/res/drawable/ic_forward.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:tint="@color/settings_item_title_text_primary"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#ffffff"
+ android:pathData="M12,8V4L20,12L12,20V16H4V8H12Z" />
+</vector>
diff --git a/res/drawable/ic_info.xml b/res/drawable/ic_info.xml
new file mode 100644
index 0000000..0705b37
--- /dev/null
+++ b/res/drawable/ic_info.xml
@@ -0,0 +1,8 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:tint="@color/settings_item_title_text_primary"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#ffffff" android:pathData="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z" />
+</vector>
diff --git a/res/drawable/ic_notifications_off.xml b/res/drawable/ic_notifications_off.xml
new file mode 100644
index 0000000..df2f070
--- /dev/null
+++ b/res/drawable/ic_notifications_off.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:tint="@color/settings_item_title_text_primary"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#ffffff"
+ android:pathData="M20.84,22.73L18.11,20H3V19L5,17V11C5,9.86 5.29,8.73 5.83,7.72L1.11,3L2.39,1.73L22.11,21.46L20.84,22.73M19,15.8V11C19,7.9 16.97,5.17 14,4.29C14,4.19 14,4.1 14,4A2,2 0 0,0 12,2A2,2 0 0,0 10,4C10,4.1 10,4.19 10,4.29C9.39,4.47 8.8,4.74 8.26,5.09L19,15.8M12,23A2,2 0 0,0 14,21H10A2,2 0 0,0 12,23Z" />
+</vector>
diff --git a/res/drawable/ic_notifications_on.xml b/res/drawable/ic_notifications_on.xml
new file mode 100644
index 0000000..3e35d36
--- /dev/null
+++ b/res/drawable/ic_notifications_on.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:tint="@color/settings_item_title_text_primary"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#ffffff"
+ android:pathData="M21,19V20H3V19L5,17V11C5,7.9 7.03,5.17 10,4.29C10,4.19 10,4.1 10,4A2,2 0 0,1 12,2A2,2 0 0,1 14,4C14,4.1 14,4.19 14,4.29C16.97,5.17 19,7.9 19,11V17L21,19M14,21A2,2 0 0,1 12,23A2,2 0 0,1 10,21" />
+</vector>
diff --git a/res/drawable/ic_person_add.xml b/res/drawable/ic_person_add.xml
new file mode 100644
index 0000000..e4032e3
--- /dev/null
+++ b/res/drawable/ic_person_add.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:tint="@color/settings_item_title_text_primary"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#ffffff"
+ android:pathData="M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z" />
+</vector>
diff --git a/res/drawable/ic_save.xml b/res/drawable/ic_save.xml
new file mode 100644
index 0000000..1f96688
--- /dev/null
+++ b/res/drawable/ic_save.xml
@@ -0,0 +1,8 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:tint="@color/settings_item_title_text_primary"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#ffffff" android:pathData="M15,9H5V5H15M12,19A3,3 0 0,1 9,16A3,3 0 0,1 12,13A3,3 0 0,1 15,16A3,3 0 0,1 12,19M17,3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V7L17,3Z" />
+</vector>
diff --git a/res/drawable/ic_send.xml b/res/drawable/ic_send.xml
new file mode 100644
index 0000000..1567a5f
--- /dev/null
+++ b/res/drawable/ic_send.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:tint="@color/settings_item_title_text_primary"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#ffffff"
+ android:pathData="M8,7.71L18,12L8,16.29V12.95L15.14,12L8,11.05V7.71M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4Z" />
+</vector>
diff --git a/res/drawable/ic_share.xml b/res/drawable/ic_share.xml
new file mode 100644
index 0000000..3f5f0d0
--- /dev/null
+++ b/res/drawable/ic_share.xml
@@ -0,0 +1,8 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:tint="@color/settings_item_title_text_primary"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#ffffff" android:pathData="M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z" />
+</vector>
diff --git a/res/drawable/ic_wear_read.xml b/res/drawable/ic_wear_read.xml
new file mode 100644
index 0000000..9d017e6
--- /dev/null
+++ b/res/drawable/ic_wear_read.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:fillColor="#ffffff"
+ android:pathData="M0.41,13.41L6,19L7.41,17.58L1.83,12M22.24,5.58L11.66,16.17L7.5,12L6.07,13.41L11.66,19L23.66,7M18,7L16.59,5.58L10.24,11.93L11.66,13.34L18,7Z" />
+</vector>
diff --git a/res/drawable/msg_bubble_incoming_new.xml b/res/drawable/msg_bubble_incoming_new.xml
new file mode 100644
index 0000000..148231b
--- /dev/null
+++ b/res/drawable/msg_bubble_incoming_new.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 The OmniROM 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.
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <solid android:color="@color/subject_editor_bubble" />
+ <corners android:topLeftRadius="5dp" android:radius="16dp" />
+</shape>
diff --git a/res/drawable/msg_bubble_input_new.xml b/res/drawable/msg_bubble_input_new.xml
new file mode 100644
index 0000000..36e8b89
--- /dev/null
+++ b/res/drawable/msg_bubble_input_new.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 The OmniROM 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.
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <solid android:color="@color/subject_editor_bubble" />
+ <corners android:radius="16dp" />
+</shape>
diff --git a/res/drawable/msg_bubble_outgoing_new.xml b/res/drawable/msg_bubble_outgoing_new.xml
new file mode 100644
index 0000000..e4bee9d
--- /dev/null
+++ b/res/drawable/msg_bubble_outgoing_new.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 The OmniROM 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.
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <solid android:color="@color/message_bubble_color_outgoing" />
+ <corners android:topRightRadius="5dp" android:radius="16dp" />
+</shape>
diff --git a/res/drawable/popup_background.xml b/res/drawable/popup_background.xml
new file mode 100644
index 0000000..3ef00eb
--- /dev/null
+++ b/res/drawable/popup_background.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<!-- Based on the Theme.Material's default selectableItemBackground -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="@color/contextual_action_bar_background_color"/>
+ <corners android:radius="@*android:dimen/config_dialogCornerRadius"/>
+</shape>
diff --git a/res/drawable/swipe_shadow_drag_new.xml b/res/drawable/swipe_shadow_drag_new.xml
new file mode 100644
index 0000000..23b9a6b
--- /dev/null
+++ b/res/drawable/swipe_shadow_drag_new.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<!-- Based on the Theme.Material's default selectableItemBackground -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="@color/google_gray"/>
+</shape>
diff --git a/res/drawable/swipe_shadow_new.xml b/res/drawable/swipe_shadow_new.xml
new file mode 100644
index 0000000..393e638
--- /dev/null
+++ b/res/drawable/swipe_shadow_new.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="@color/primary_color"/>
+</shape>
+
diff --git a/res/drawable/widget_msg_bubble_incoming_new.xml b/res/drawable/widget_msg_bubble_incoming_new.xml
new file mode 100644
index 0000000..08059d0
--- /dev/null
+++ b/res/drawable/widget_msg_bubble_incoming_new.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 The OmniROM 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.
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <solid android:color="@color/google_gray" />
+ <corners android:topLeftRadius="5dp" android:radius="16dp" />
+</shape>
diff --git a/res/drawable/widget_msg_bubble_outgoing_new.xml b/res/drawable/widget_msg_bubble_outgoing_new.xml
new file mode 100644
index 0000000..e4bee9d
--- /dev/null
+++ b/res/drawable/widget_msg_bubble_outgoing_new.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 The OmniROM 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.
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <solid android:color="@color/message_bubble_color_outgoing" />
+ <corners android:topRightRadius="5dp" android:radius="16dp" />
+</shape>
diff --git a/res/layout/compose_message_view.xml b/res/layout/compose_message_view.xml
index 8bb8249..7338aa7 100644
--- a/res/layout/compose_message_view.xml
+++ b/res/layout/compose_message_view.xml
@@ -94,6 +94,7 @@
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
+ android:paddingRight="16px"
android:orientation="vertical">
<!-- Contains media button and compose message bubble whose centers should be
@@ -121,8 +122,9 @@
android:layout_width="0dp"
android:layout_weight="1"
android:layout_gravity="center"
- android:background="@drawable/msg_bubble_input"
+ android:background="@drawable/msg_bubble_input_new"
android:hint="@string/compose_message_view_hint_text"
+ android:textColorHint="@color/conversation_list_item_read"
android:imeOptions="actionSend|flagNoEnterAction|flagNoExtractUi" />
</LinearLayout>
diff --git a/res/layout/contact_picker_fragment.xml b/res/layout/contact_picker_fragment.xml
index 78350d7..edfa7ff 100644
--- a/res/layout/contact_picker_fragment.xml
+++ b/res/layout/contact_picker_fragment.xml
@@ -42,7 +42,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:minHeight="@dimen/compose_message_contacts_height"
- android:popupBackground="@drawable/contact_popup_background"
+ android:popupBackground="@drawable/popup_background"
android:dropDownWidth="match_parent"
android:hint="@string/recipient_hint"
app:avatarPosition="start"
diff --git a/res/layout/conversation_list_fragment.xml b/res/layout/conversation_list_fragment.xml
index 7fa2a9a..03d99f3 100644
--- a/res/layout/conversation_list_fragment.xml
+++ b/res/layout/conversation_list_fragment.xml
@@ -27,7 +27,8 @@
android:paddingTop="@dimen/conversation_list_first_item_extra_padding"
android:clipToPadding="false"
android:listSelector="?android:attr/listSelector"
- android:dividerHeight="0px" />
+ android:dividerHeight="0px"
+ android:paddingBottom="@dimen/fab_list_bottom_padding" />
<include
layout="@layout/list_empty_view"
diff --git a/res/layout/conversation_list_item_view.xml b/res/layout/conversation_list_item_view.xml
index 636616b..202ba41 100644
--- a/res/layout/conversation_list_item_view.xml
+++ b/res/layout/conversation_list_item_view.xml
@@ -28,7 +28,7 @@
android:layout_height="match_parent"
android:gravity="center_vertical|start"
android:baselineAligned="false"
- android:background="@drawable/swipe_shadow"
+ android:background="@drawable/swipe_shadow_new"
android:visibility="gone"
android:padding="@dimen/conversation_list_item_view_padding">
<ImageView
@@ -37,7 +37,6 @@
android:layout_height="wrap_content"
android:gravity="center_vertical|left"
android:visibility="gone"
- android:src="@drawable/ic_archive_small_dark"
android:importantForAccessibility="no"
android:contentDescription="@null"/>
<FrameLayout
@@ -50,7 +49,6 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|right"
android:visibility="gone"
- android:src="@drawable/ic_archive_small_dark"
android:importantForAccessibility="no"
android:contentDescription="@null"/>
</LinearLayout>
@@ -123,17 +121,6 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/transparent">
- <ImageView
- android:id="@+id/conversation_notification_bell"
- style="@style/ConversationListNotificationBellPaddingStyle"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/ic_notifications_off_small_light"
- android:visibility="gone"
- android:importantForAccessibility="no"
- android:contentDescription="@null"
- android:layout_gravity="center_vertical"
- android:background="@android:color/transparent" />
<TextView
android:id="@+id/conversation_name"
style="@style/ConversationListItemViewConversationNameStyle"
diff --git a/res/layout/conversation_message_view.xml b/res/layout/conversation_message_view.xml
index daad600..6fd19ad 100644
--- a/res/layout/conversation_message_view.xml
+++ b/res/layout/conversation_message_view.xml
@@ -28,6 +28,8 @@
app:iconSize="normal"
android:clickable="true"
android:layout_gravity="center_vertical"
+ android:paddingRight="16px"
+ android:paddingLeft="16px"
android:importantForAccessibility="no" />
<com.android.messaging.ui.conversation.ConversationMessageBubbleView
diff --git a/res/layout/mediapicker_audio_chooser.xml b/res/layout/mediapicker_audio_chooser.xml
index 795d2f8..b702269 100644
--- a/res/layout/mediapicker_audio_chooser.xml
+++ b/res/layout/mediapicker_audio_chooser.xml
@@ -19,7 +19,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@android:color/white"
+ android:background="@color/contextual_action_bar_background_color"
android:importantForAccessibility="no" >
<FrameLayout
@@ -89,7 +89,7 @@
android:layout_height="match_parent"
android:text="@string/enable_permission_procedure"
android:contentDescription="@string/enable_permission_procedure_description"
- android:background="@android:color/white"
+ android:background="@color/contextual_action_bar_background_color"
android:gravity="center"
android:visibility="gone" />
diff --git a/res/layout/mediapicker_camera_chooser.xml b/res/layout/mediapicker_camera_chooser.xml
index 27d26bd..8d3d220 100644
--- a/res/layout/mediapicker_camera_chooser.xml
+++ b/res/layout/mediapicker_camera_chooser.xml
@@ -143,7 +143,7 @@
android:layout_height="match_parent"
android:text="@string/enable_permission_procedure"
android:contentDescription="@string/enable_permission_procedure_description"
- android:background="@android:color/white"
+ android:background="@color/contextual_action_bar_background_color"
android:gravity="center"
android:visibility="gone" />
diff --git a/res/layout/mediapicker_gallery_chooser.xml b/res/layout/mediapicker_gallery_chooser.xml
index b4f3c01..c550dab 100644
--- a/res/layout/mediapicker_gallery_chooser.xml
+++ b/res/layout/mediapicker_gallery_chooser.xml
@@ -30,7 +30,7 @@
android:stretchMode="columnWidth"
android:gravity="center"
android:clipToPadding="false"
- android:background="@android:color/white" />
+ android:background="@color/contextual_action_bar_background_color" />
<!-- This view will hide all other views if the required permission is not granted -->
<TextView
android:id="@+id/missing_permission_view"
@@ -38,7 +38,7 @@
android:layout_height="match_parent"
android:text="@string/enable_permission_procedure"
android:contentDescription="@string/enable_permission_procedure_description"
- android:background="@android:color/white"
+ android:background="@color/contextual_action_bar_background_color"
android:gravity="center"
android:visibility="gone" />
-</FrameLayout>
\ No newline at end of file
+</FrameLayout>
diff --git a/res/layout/people_options_item_view.xml b/res/layout/people_options_item_view.xml
index 8821eec..8895037 100644
--- a/res/layout/people_options_item_view.xml
+++ b/res/layout/people_options_item_view.xml
@@ -40,25 +40,5 @@
android:ellipsize="end"
style="@style/ParticipantListItem"
android:layout_gravity="center_vertical" />
-
- <TextView
- android:id="@+id/subtitle"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:singleLine="true"
- android:maxLines="1"
- android:ellipsize="end"
- style="@style/ParticipantListItemDetail"
- android:layout_gravity="center_vertical" />
-
</LinearLayout>
-
- <androidx.appcompat.widget.SwitchCompat
- android:id="@+id/switch_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:focusable="false"
- android:clickable="false"
- android:visibility="gone" />
-
</com.android.messaging.ui.conversationsettings.PeopleOptionsItemView>
diff --git a/res/layout/settings_item_view.xml b/res/layout/settings_item_view.xml
index a434c11..82b1981 100644
--- a/res/layout/settings_item_view.xml
+++ b/res/layout/settings_item_view.xml
@@ -18,10 +18,11 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
- android:layout_height="@dimen/settings_list_item_height"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
- android:paddingLeft="16dp"
- android:paddingRight="16dp"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:background="?android:attr/selectableItemBackground" >
<TextView
@@ -31,7 +32,7 @@
android:singleLine="true"
android:maxLines="1"
android:ellipsize="end"
- style="@style/SettingsListItem" />
+ android:textAppearance="?android:attr/textAppearanceListItem" />
<TextView
android:id="@+id/subtitle"
@@ -39,6 +40,7 @@
android:layout_height="wrap_content"
android:maxLines="2"
android:ellipsize="end"
- style="@style/SettingsListItemDetail" />
+ android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+ android:textColor="?android:attr/textColorSecondary" />
</LinearLayout>
diff --git a/res/layout/vcard_detail_activity.xml b/res/layout/vcard_detail_activity.xml
index aa4c3b9..8eb27e5 100644
--- a/res/layout/vcard_detail_activity.xml
+++ b/res/layout/vcard_detail_activity.xml
@@ -18,6 +18,6 @@
xmlns:android="http://schemas.android.com/apk/res/android"
class="com.android.messaging.ui.VCardDetailFragment"
android:id="@+id/vcard_detail_fragment"
- android:theme="@style/Theme.AppCompat.Light.DarkActionBar"
+ android:theme="@android:style/Theme.Material.Light.DarkActionBar"
android:layout_width="match_parent"
- android:layout_height="match_parent" />
\ No newline at end of file
+ android:layout_height="match_parent" />
diff --git a/res/layout/widget_conversation_list_item.xml b/res/layout/widget_conversation_list_item.xml
index e0115a2..26c5821 100644
--- a/res/layout/widget_conversation_list_item.xml
+++ b/res/layout/widget_conversation_list_item.xml
@@ -67,17 +67,6 @@
android:layout_alignParentTop="true"
android:gravity="center_vertical"
android:background="@android:color/transparent">
- <ImageView
- android:id="@+id/conversation_notification_bell"
- style="@style/ConversationListNotificationBellPaddingStyle"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/ic_notifications_off_small_light"
- android:visibility="gone"
- android:importantForAccessibility="no"
- android:contentDescription="@null"
- android:layout_gravity="center_vertical"
- android:background="@android:color/transparent" />
<TextView android:id="@+id/from"
style="@style/WidgetConversationListItemFrom"
diff --git a/res/layout/widget_message_item_incoming.xml b/res/layout/widget_message_item_incoming.xml
index 786385b..e387606 100644
--- a/res/layout/widget_message_item_incoming.xml
+++ b/res/layout/widget_message_item_incoming.xml
@@ -63,7 +63,8 @@
android:layout_gravity="top"
android:orientation="vertical"
style="@style/WidgetConversationItemBodyIncoming"
- android:background="@drawable/widget_msg_bubble_incoming"
+ android:background="@drawable/widget_msg_bubble_incoming_new"
+ android:paddingLeft="8px"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
diff --git a/res/layout/widget_message_item_outgoing.xml b/res/layout/widget_message_item_outgoing.xml
index c3d734e..faba51d 100644
--- a/res/layout/widget_message_item_outgoing.xml
+++ b/res/layout/widget_message_item_outgoing.xml
@@ -63,7 +63,8 @@
android:layout_gravity="top"
android:orientation="vertical"
style="@style/WidgetConversationItemBodyOutgoing"
- android:background="@drawable/widget_msg_bubble_outgoing"
+ android:background="@drawable/widget_msg_bubble_outgoing_new"
+ android:paddingRight="8px"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
diff --git a/res/menu/conversation_fragment_select_menu.xml b/res/menu/conversation_fragment_select_menu.xml
index 7ce0829..7f8106f 100644
--- a/res/menu/conversation_fragment_select_menu.xml
+++ b/res/menu/conversation_fragment_select_menu.xml
@@ -21,43 +21,43 @@
<item
android:id="@+id/share_message_menu"
android:title="@string/action_share"
- android:icon="@drawable/ic_share_dark"
+ android:icon="@drawable/ic_share"
appcompat:showAsAction="collapseActionView|always" />
<item
android:id="@+id/forward_message_menu"
android:title="@string/message_context_menu_forward_message"
- android:icon="@drawable/ic_forward_dark"
+ android:icon="@drawable/ic_forward"
appcompat:showAsAction="collapseActionView|always"/>
<item
android:id="@+id/save_attachment"
android:title="@string/save"
- android:icon="@drawable/ic_save_dark"
+ android:icon="@drawable/ic_save"
appcompat:showAsAction="collapseActionView|always" />
<item
android:id="@+id/copy_text"
android:title="@string/message_context_menu_copy_text"
- android:icon="@drawable/ic_content_copy_dark"
+ android:icon="@drawable/ic_content_copy"
appcompat:showAsAction="collapseActionView|always"/>
<item
android:id="@+id/details_menu"
android:title="@string/message_context_menu_view_details"
- android:icon="@drawable/ic_info_dark"
+ android:icon="@drawable/ic_info"
appcompat:showAsAction="collapseActionView|always"/>
<item
android:id="@+id/action_send"
- android:icon="@drawable/ic_send_dark"
+ android:icon="@drawable/ic_send"
android:title="@string/action_send"
appcompat:showAsAction="collapseActionView|always"/>
<item
android:id="@+id/action_download"
- android:icon="@drawable/ic_file_download_dark"
+ android:icon="@drawable/ic_file_download"
android:title="@string/action_download"
appcompat:showAsAction="collapseActionView|always"/>
<item
android:id="@+id/action_delete_message"
- android:icon="@drawable/ic_delete_small_dark"
+ android:icon="@drawable/ic_delete_small"
android:title="@string/action_delete_message"
appcompat:showAsAction="collapseActionView|always"/>
</menu>
diff --git a/res/menu/conversation_list_fragment_select_menu.xml b/res/menu/conversation_list_fragment_select_menu.xml
index 8704691..0b98eb3 100644
--- a/res/menu/conversation_list_fragment_select_menu.xml
+++ b/res/menu/conversation_list_fragment_select_menu.xml
@@ -20,43 +20,31 @@
<item
android:id="@+id/action_archive"
- android:icon="@drawable/ic_archive_small_dark"
+ android:icon="@drawable/ic_archive_small"
android:orderInCategory="50"
android:title="@string/action_archive"
appcompat:showAsAction="collapseActionView|always"/>
<item
android:id="@+id/action_unarchive"
- android:icon="@drawable/ic_archive_undo_small_dark"
+ android:icon="@drawable/ic_archive_undo_small"
android:orderInCategory="50"
android:title="@string/action_unarchive"
appcompat:showAsAction="collapseActionView|always"/>
<item
android:id="@+id/action_delete"
- android:icon="@drawable/ic_delete_small_dark"
+ android:icon="@drawable/ic_delete_small"
android:orderInCategory="60"
android:title="@string/action_delete"
appcompat:showAsAction="collapseActionView|always"/>
<item
- android:id="@+id/action_notification_off"
- android:icon="@drawable/ic_notifications_off_dark"
- android:orderInCategory="70"
- android:title="@string/action_notification_off"
- appcompat:showAsAction="collapseActionView|always"/>
- <item
- android:id="@+id/action_notification_on"
- android:icon="@drawable/ic_notifications_on_dark"
- android:orderInCategory="80"
- android:title="@string/action_notification_on"
- appcompat:showAsAction="collapseActionView|always"/>
- <item
android:id="@+id/action_add_contact"
- android:icon="@drawable/ic_person_add_dark"
+ android:icon="@drawable/ic_person_add"
android:orderInCategory="90"
android:title="@string/action_add_contact"
appcompat:showAsAction="collapseActionView|always"/>
<item
android:id="@+id/action_block"
- android:icon="@drawable/ic_dnd_on_dark"
+ android:icon="@drawable/ic_dnd_on"
android:orderInCategory="100"
android:title="@string/action_block"
appcompat:showAsAction="collapseActionView|always"/>
diff --git a/res/mipmap-anydpi-v26/ic_launcher_messaging.xml b/res/mipmap-anydpi-v26/ic_launcher_messaging.xml
new file mode 100644
index 0000000..5c9e16c
--- /dev/null
+++ b/res/mipmap-anydpi-v26/ic_launcher_messaging.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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.
+-->
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@color/ic_launcher_background"/>
+ <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
+</adaptive-icon>
diff --git a/res/mipmap-hdpi/ic_launcher_foreground.png b/res/mipmap-hdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..a34fbe8
--- /dev/null
+++ b/res/mipmap-hdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/res/mipmap-mdpi/ic_launcher_foreground.png b/res/mipmap-mdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..2121e1a
--- /dev/null
+++ b/res/mipmap-mdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_launcher_foreground.png b/res/mipmap-xhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..5e1765a
--- /dev/null
+++ b/res/mipmap-xhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_launcher_foreground.png b/res/mipmap-xxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..5627128
--- /dev/null
+++ b/res/mipmap-xxhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/res/mipmap-xxxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..02fa3fb
--- /dev/null
+++ b/res/mipmap-xxxhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/res/values-af/custom_strings.xml b/res/values-af/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-af/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 901bd27..87f274e 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Gevorderd"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Ontfout"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Kennisgewings"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Kennisgewings"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Klank"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Stil"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibreer"</string>
diff --git a/res/values-am/custom_strings.xml b/res/values-am/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-am/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index bea9e6f..4a48dfc 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"ኤምኤምኤስ"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"የላቀ"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"አርም"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"ማሳወቂያዎች"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"ማሳወቂያዎች"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"ድምፅ"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"ፀጥታ"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"ንዘር"</string>
diff --git a/res/values-ar/custom_strings.xml b/res/values-ar/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-ar/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 1a0f4b9..a6c5db3 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -330,7 +330,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"رسالة وسائط متعددة"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"إعدادات متقدمة"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"تصحيح الأخطاء"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"الإشعارات"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"الإشعارات"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"الصوت"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"صامت"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"اهتزاز"</string>
diff --git a/res/values-az-rAZ/custom_strings.xml b/res/values-az-rAZ/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-az-rAZ/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 56b4274..c52c91f 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Qabaqcıl"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Sazlama"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Bildirişlər"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Bildirişlər"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Səs"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Səssiz"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Titrət"</string>
diff --git a/res/values-bg/custom_strings.xml b/res/values-bg/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-bg/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index c1b8401..435c727 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Разширени"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Отстраняване на грешки"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Известия"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Известия"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Звук"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Тих режим"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Вибриране"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 96af70b..56c40f1 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"উন্নত"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"ডিবাগ"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"বিজ্ঞপ্তিগুলি"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"বিজ্ঞপ্তিগুলি"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"আওয়াজ"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"নীরব"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"কম্পন"</string>
diff --git a/res/values-ca/custom_strings.xml b/res/values-ca/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-ca/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 9f09908..c8e25bc 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Avançada"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Depuració"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Notificacions"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Notificacions"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"So"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Silenci"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibració"</string>
diff --git a/res/values-cs/custom_strings.xml b/res/values-cs/custom_strings.xml
new file mode 100644
index 0000000..c536019
--- /dev/null
+++ b/res/values-cs/custom_strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <string name="notification_mark_as_read">Označit jako přečtené</string>
+ <!-- Swipe to delete conversation -->
+ <string name="swipe_to_delete_conversation_pref_title">Přejeďte pro odstranění</string>
+ <string name="swipe_to_delete_conversation_pref_summary">Přejeďte vpravo pro odstranění konverzace</string>
+</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 7e58112..1145587 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -294,7 +294,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Rozšířená nastavení"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Ladit"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Oznámení"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Oznámení"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Zvuk"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Tichý režim"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibrace"</string>
diff --git a/res/values-da/custom_strings.xml b/res/values-da/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-da/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 6d441da..2898ce8 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"Mms"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Avanceret"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Fejlretning"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Underretninger"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Underretninger"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Lyd"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Lydløs"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibrer"</string>
diff --git a/res/values-de/custom_strings.xml b/res/values-de/custom_strings.xml
new file mode 100644
index 0000000..918980f
--- /dev/null
+++ b/res/values-de/custom_strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <string name="notification_mark_as_read">Als gelesen markieren</string>
+ <!-- Swipe to delete conversation -->
+ <string name="swipe_to_delete_conversation_pref_title">Zum Löschen wischen</string>
+ <string name="swipe_to_delete_conversation_pref_summary">Nach rechts wischen, um eine Unterhaltung zu löschen</string>
+</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 4537b8b..1664212 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Erweitert"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Fehlersuche"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Benachrichtigungen"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Benachrichtigungen"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Ton"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Lautlos"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibrieren"</string>
diff --git a/res/values-el/custom_strings.xml b/res/values-el/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-el/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index d74a84b..2b569f1 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Σύνθετες ρυθμίσεις"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Εντοπισμός σφαλμάτων"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Ειδοποιήσεις"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Ειδοποιήσεις"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Ήχος"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Σίγαση"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Δόνηση"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 3a642fb..cc77792 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Advanced"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Debug"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Notifications"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Notifications"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Sound"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Silent"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibrate"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 3a642fb..cc77792 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Advanced"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Debug"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Notifications"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Notifications"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Sound"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Silent"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibrate"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 3a642fb..cc77792 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Advanced"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Debug"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Notifications"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Notifications"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Sound"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Silent"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibrate"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index f474514..1838b40 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Avanzada"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Depurar"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Notificaciones"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Notificaciones"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Sonido"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Silencio"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibrar"</string>
diff --git a/res/values-es/custom_strings.xml b/res/values-es/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-es/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 98e0a1d..669f676 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Opciones avanzadas"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Depurar"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Notificaciones"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Notificaciones"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Sonido"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Silencio"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibrar"</string>
diff --git a/res/values-et/custom_strings.xml b/res/values-et/custom_strings.xml
new file mode 100644
index 0000000..bbb7c66
--- /dev/null
+++ b/res/values-et/custom_strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <string name="notification_mark_as_read">Märgi loetuks</string>
+ <!-- Swipe to delete conversation -->
+ <string name="swipe_to_delete_conversation_pref_title">Kustutamiseks viipa</string>
+ <string name="swipe_to_delete_conversation_pref_summary">Vestluse kustutamiseks viipa paremale</string>
+</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index e222a3e..0ce7f57 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Täpsem"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Silumine"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Märguanded"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Märguanded"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Heli"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Hääletu"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibratsioon"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 1703681..469d1ad 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Ezarpen aurreratuak"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Araztu"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Jakinarazpenak"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Jakinarazpenak"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Soinua"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Isilik"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Egin dar-dar"</string>
diff --git a/res/values-fa/custom_strings.xml b/res/values-fa/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-fa/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index a1bf9d8..4347ff5 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"پیشرفته"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"اشکالزدایی"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"اعلانها"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"اعلانها"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"صدا"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"بیصدا"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"لرزش"</string>
diff --git a/res/values-fi/custom_strings.xml b/res/values-fi/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-fi/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index a07825b..9f0be0b 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"Multimediaviesti"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Lisäasetukset"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Vianetsintä"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Ilmoitukset"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Ilmoitukset"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Ääni"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Äänetön"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Värinä"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index a626832..40d233c 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"Message multimédia"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Avancés"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Déboguer"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Notifications"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Notifications"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Son"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Mode silencieux"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibreur"</string>
diff --git a/res/values-fr/custom_strings.xml b/res/values-fr/custom_strings.xml
new file mode 100644
index 0000000..e95ada8
--- /dev/null
+++ b/res/values-fr/custom_strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <string name="notification_mark_as_read">Marquer comme lu</string>
+ <!-- Swipe to delete conversation -->
+ <string name="swipe_to_delete_conversation_pref_title">Glisser pour supprimer</string>
+ <string name="swipe_to_delete_conversation_pref_summary">Glissez vers la droite pour supprimer une conversation</string>
+</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index b9f22af..3a90f0d 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Paramètres avancés"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Déboguer"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Notifications"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Notifications"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Son"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Mode silencieux"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibreur"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 8a626c2..7fceb68 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Avanzado"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Depuración"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Notificacións"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Notificacións"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Son"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Silencio"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibrar"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 8d2adaf..52d8899 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"વિગતવાર"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"ડીબગ"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"સૂચનાઓ"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"સૂચનાઓ"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"ધ્વનિ"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"શાંત"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"વાઇબ્રેટ"</string>
diff --git a/res/values-hi/custom_strings.xml b/res/values-hi/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-hi/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 7e7a780..a69a3b9 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"अतिरिक्त सेटिंग"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"डीबग"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"नोटिफिकेशन"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"नोटिफिकेशन"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"ध्वनि"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"मौन"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"वाइब्रेट"</string>
diff --git a/res/values-hr/custom_strings.xml b/res/values-hr/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-hr/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index b8bb490..638a395 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -276,7 +276,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Napredno"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Otklanjanje pogrešaka"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Obavijesti"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Obavijesti"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Zvuk"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Bešumno"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibriranje"</string>
diff --git a/res/values-hu/custom_strings.xml b/res/values-hu/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-hu/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 9203514..c368387 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Speciális"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Hibakeresés"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Értesítések"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Értesítések"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Hang"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Néma"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Rezgés"</string>
diff --git a/res/values-hy/custom_strings.xml b/res/values-hy/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-hy/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 4dd99b0..5aabb0b 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Հավելյալ"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Կարգաբերում"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Ծանուցումներ"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Ծանուցումներ"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Ձայն"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Լուռ"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Թրթռոց"</string>
diff --git a/res/values-in/custom_strings.xml b/res/values-in/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-in/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 3b65bb2..5578e4a 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Lanjutan"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Debug"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Notifikasi"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Notifikasi"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Suara"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Senyap"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Getar"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index f02a11c..64bff17 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Ítarlegt"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Villuleita"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Tilkynningar"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Tilkynningar"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Hljóð"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Hljóðlaust"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Titringur"</string>
diff --git a/res/values-it/custom_strings.xml b/res/values-it/custom_strings.xml
new file mode 100644
index 0000000..3d337f9
--- /dev/null
+++ b/res/values-it/custom_strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <string name="notification_mark_as_read">Segna come letto</string>
+ <!-- Swipe to delete conversation -->
+ <string name="swipe_to_delete_conversation_pref_title">Scorri per eliminare</string>
+ <string name="swipe_to_delete_conversation_pref_summary">Scorri a destra per eliminare una conversazione</string>
+</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index f041793..2c9e65f 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Avanzate"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Debug"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Notifiche"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Notifiche"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Suono"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Silenzioso"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibrazione"</string>
diff --git a/res/values-iw/custom_strings.xml b/res/values-iw/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-iw/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 3f80e3c..526188b 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -294,7 +294,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"מתקדם"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"ניפוי באגים"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"הודעות"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"הודעות"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"צליל"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"מצב שקט"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"רטט"</string>
diff --git a/res/values-ja/custom_strings.xml b/res/values-ja/custom_strings.xml
new file mode 100644
index 0000000..a68b8ae
--- /dev/null
+++ b/res/values-ja/custom_strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <string name="notification_mark_as_read">既読にする</string>
+ <!-- Swipe to delete conversation -->
+ <string name="swipe_to_delete_conversation_pref_title">スワイプで削除</string>
+ <string name="swipe_to_delete_conversation_pref_summary">右にスワイプで会話を削除する</string>
+</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index a3a513e..ee8e994 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"詳細設定"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"デバッグ"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"通知"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"通知"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"通知音"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"マナーモード"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"バイブレーション"</string>
diff --git a/res/values-ka/custom_strings.xml b/res/values-ka/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-ka/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 8a2cd5e..f1e9898 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"გაფართოებული"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"გამართვა"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"შეტყობინებები"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"შეტყობინებები"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"ხმა"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"დადუმებული"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"ვიბრაცია"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 386e8ef..d38fdfd 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Кеңейтілген"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Күйін келтіру"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Хабарландырулар"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Хабарландырулар"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Дыбыс"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Үнсіз"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Дірілдеу"</string>
diff --git a/res/values-km/custom_strings.xml b/res/values-km/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-km/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index fba58e2..c601e16 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"សារ MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"កម្រិតខ្ពស់"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"កែកំហុស"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"ការជូនដំណឹង"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"ការជូនដំណឹង"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"សំឡេង"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"ស្ងាត់"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"ញ័រ"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index b484009..36d37cb 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"ಸುಧಾರಿತ"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"ಡೀಬಗ್ ಮಾಡು"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"ಅಧಿಸೂಚನೆಗಳು"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"ಅಧಿಸೂಚನೆಗಳು"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"ಶಬ್ದ"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"ಶಾಂತ"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"ವೈಬ್ರೇಟ್"</string>
diff --git a/res/values-ko/custom_strings.xml b/res/values-ko/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-ko/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 1faec2a..7f1077a 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"고급"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"디버그"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"알림"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"알림"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"소리"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"무음"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"진동"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 96b6d86..c070835 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Өркүндөтүлгөн"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Мүчүлүштүктөрдү таап оңдоо"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Эскертмелер"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Эскертмелер"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Үн"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Үнсүз"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Дирилдөө"</string>
diff --git a/res/values-ldrtl/styles.xml b/res/values-ldrtl/styles.xml
index de4d9e8..0c4e862 100644
--- a/res/values-ldrtl/styles.xml
+++ b/res/values-ldrtl/styles.xml
@@ -74,10 +74,6 @@
<item name="android:textColor">@color/conversation_list_name</item>
</style>
- <style name="ConversationListNotificationBellPaddingStyle">
- <item name="android:paddingEnd">@dimen/conversation_list_notification_bell_padding</item>
- </style>
-
<style name="ComposeMessageViewFrameLayoutStyle">
<item name="android:paddingEnd">@dimen/compose_message_send_button_padding_right</item>
</style>
diff --git a/res/values-lo-rLA/custom_strings.xml b/res/values-lo-rLA/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-lo-rLA/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 4911499..9a0977e 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"ຂັ້ນສູງ"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"ດີບັ໊ກ"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"ການແຈ້ງເຕືອນ"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"ການແຈ້ງເຕືອນ"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"ສຽງ"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"ປິດສຽງ"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"ສັ່ນເຕືອນ"</string>
diff --git a/res/values-lt/custom_strings.xml b/res/values-lt/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-lt/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 0430221..bdf7ad0 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -294,7 +294,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Išplėstiniai"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Derinti"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Pranešimai"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Pranešimai"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Garsas"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Tylus"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibravimas"</string>
diff --git a/res/values-lv/custom_strings.xml b/res/values-lv/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-lv/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index f598c77..67ac68a 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -276,7 +276,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"Multiziņa"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Papildu"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Atkļūdot"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Paziņojumi"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Paziņojumi"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Signāls"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Klusums"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibrozvans"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 16f60c9..989bf5d 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"ММС"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Напредни"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Отстрани грешка"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Известувања"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Известувања"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Звук"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"На тивко"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Вибрации"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index b292525..1c3e95a 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"വിപുലം"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"ഡീബഗ്"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"അറിയിപ്പുകൾ"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"അറിയിപ്പുകൾ"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"ശബ്ദം"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"നിശബ്ദം"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"വൈബ്രേറ്റുചെയ്യുക"</string>
diff --git a/res/values-mn/custom_strings.xml b/res/values-mn/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-mn/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index f3edd91..0f98534 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Дэлгэрэнгүй"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Дебаг"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Мэдэгдэл"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Мэдэгдэл"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Дуу"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Чимээгүй"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Чичиргээ"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index ff585ba..2500a9f 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"प्रगत"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"डीबग करणे"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"सूचना"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"सूचना"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"ध्वनी"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"मूक"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"कंपन"</string>
diff --git a/res/values-ms/custom_strings.xml b/res/values-ms/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-ms/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 3094e1d..549f868 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Lanjutan"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Nyahpepijat"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Pemberitahuan"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Pemberitahuan"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Bunyi"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Senyap"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Bergetar"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 26df42e..57eb3b2 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"ရုပ်သံစာ"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"အဆင့်မြင့်"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"ဒီဘာဂ်"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"အကြောင်းကြားချက်များ"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"အကြောင်းကြားချက်များ"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"အသံ"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"အသံတိတ်ရန်"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"တုန်ခါရန်"</string>
diff --git a/res/values-nb/custom_strings.xml b/res/values-nb/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-nb/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index ca04e94..4057044 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Avansert"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Feilsøk"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Varsler"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Varsler"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Lyd"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Stille"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibrer"</string>
diff --git a/res/values-ne/custom_strings.xml b/res/values-ne/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-ne/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index b269345..fe564a9 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"उन्नत"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"डिबग"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"सूचनाहरू"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"सूचनाहरू"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"आवाज"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"मौन"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"कम्पन गर्नुहोस्"</string>
diff --git a/res/values-night-v31/colors.xml b/res/values-night-v31/colors.xml
new file mode 100644
index 0000000..5290243
--- /dev/null
+++ b/res/values-night-v31/colors.xml
@@ -0,0 +1,19 @@
+<!--
+ ~ Copyright (C) 2014 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>
+ <color name="ic_launcher_background">@android:color/system_accent1_600</color>
+</resources>
\ No newline at end of file
diff --git a/res/values-night-v31/styles.xml b/res/values-night-v31/styles.xml
new file mode 100644
index 0000000..a83c8ff
--- /dev/null
+++ b/res/values-night-v31/styles.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 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>
+ <!--
+ Base application theme, dependent on API level. This theme is replaced
+ by BugleBaseTheme from res/values-vXX/styles.xml on newer devices.
+ -->
+ <style name="BugleBaseTheme" parent="Theme.AppCompat">
+ <!--
+ Theme customizations available in newer API levels can go in
+ res/values-vXX/styles.xml, while customizations related to
+ backward-compatibility can go here.
+ -->
+ </style>
+
+
+ <!-- Application theme. -->
+ <style name="BugleTheme" parent="BugleBaseTheme">
+ <!-- All customizations that are NOT specific to a particular API-level can go here. -->
+ <item name="android:dropDownListViewStyle">@style/DropDownListViewStyle</item>
+ <item name="colorPrimary">@color/action_bar_background_color</item>
+ <item name="colorPrimaryDark">@color/action_bar_background_color</item>
+ <item name="colorAccent">@color/action_bar_background_color</item>
+ <item name="android:textColorHighlight">@color/text_highlight_color</item>
+ <item name="actionBarStyle">@style/BugleActionBar</item>
+ <item name="apnPreferenceStyle">@style/ApnPreference</item>
+ <item name="android:listViewStyle">@style/ListViewStyle</item>
+ <item name="actionBarPopupTheme">@style/PopupMenuStyleAppCompat</item>
+ <item name="android:actionBarPopupTheme">@style/PopupMenuStyleAppCompat</item>
+ <item name="alertDialogTheme">@style/BugleThemeAlertDialog</item>
+ <item name="android:alertDialogTheme">@style/BugleThemeAlertDialog</item>
+ <item name="preferenceTheme">@style/Omni.PreferenceTheme</item>
+ <item name="android:switchStyle">@style/Omni.SwitchStyle</item>
+ <item name="android:textAppearanceListItem">@style/Omni.PreferenceTitle</item>
+ <item name="android:navigationBarColor">@android:color/transparent</item>
+ </style>
+
+ <style name="BugleTheme.SettingsActivity" parent="BugleTheme">
+ </style>
+
+</resources>
diff --git a/res/values-night/colors.xml b/res/values-night/colors.xml
new file mode 100644
index 0000000..353748c
--- /dev/null
+++ b/res/values-night/colors.xml
@@ -0,0 +1,204 @@
+<!--
+ ~ Copyright (C) 2014 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>
+
+ <color name="omni_color5">@*android:color/accent_device_default_light</color>
+ <color name="omni_color4">@*android:color/accent_device_default_dark</color>
+ <color name="omni_color3">#80eeeeee</color>
+<!-- <color name="omni_color1">@*android:color/primary_dark_device_default_light</color> -->
+ <color name="omni_color2">@*android:color/primary_dark_device_default_settings</color>
+ <color name="omni_color1">@*android:color/primary_device_default_settings</color>
+ <color name="omni_color7">@*android:color/background_floating_device_default_dark</color>
+ <color name="omni_text1">#ffffffff</color>
+ <color name="omni_text2">#ffeeeeee</color>
+ <color name="omni_text3">#eeeeeeee</color>
+ <color name="primary_color">@color/omni_color5</color>
+ <color name="permission_check_activity_background">@color/omni_color2</color>
+
+ <!-- Action bar -->
+ <color name="action_bar_title_text_color">#ffffff</color>
+ <color name="action_bar_background_color">@color/omni_color5</color>
+ <color name="action_bar_background_color_dark">@color/omni_color4</color>
+ <color name="contextual_action_bar_background_color">@color/omni_color2</color>
+ <color name="archived_conversation_action_bar_background_color">@color/omni_color5</color>
+ <color name="archived_conversation_action_bar_background_color_dark">@color/omni_color4</color>
+
+ <!-- Conversation list -->
+ <color name="conversation_list_item_read">@color/omni_text2</color>
+ <color name="conversation_list_item_unread">@color/omni_text1</color>
+ <color name="conversation_list_error">#fff45342</color>
+ <color name="conversation_list_name">@color/omni_text1</color>
+ <color name="conversation_list_details">@color/omni_text3</color>
+
+ <color name="conversation_compose_divider_start">#44999999</color>
+
+ <color name="message_text">@color/omni_text1</color>
+ <color name="timestamp_text_outgoing">@color/omni_text3</color>
+ <color name="timestamp_text_incoming">#99ffffff</color>
+ <color name="timestamp_text_failed">#99ff0000</color>
+ <color name="compose_send_text_color">@color/omni_text1</color>
+
+ <color name="message_title_text">@color/omni_text1</color>
+ <color name="message_download_failed_status_text">@color/omni_text2</color>
+ <color name="message_info_text">#99ffffff</color>
+ <color name="message_info_text_incoming_download_failed">#6a6a6a</color>
+ <color name="message_download_failed_timestamp_text">#007fce</color>
+ <color name="message_failed_timestamp_text">#99ff0000</color>
+ <color name="message_action_status_text">#ffffffff</color>
+ <color name="message_action_info_text">#99ffffff</color>
+ <color name="message_action_timestamp_text">#ffffffff</color>
+
+ <color name="background_item_transparent">@android:color/transparent</color>
+ <color name="background_item_activated">@color/omni_color4</color>
+ <color name="background_item_selected">@color/omni_color7</color>
+ <color name="background_item_pressed">@color/omni_color2</color>
+
+ <color name="subject_editor_bubble">@color/omni_color7</color>
+ <color name="message_text_color_incoming">@color/omni_text3</color> <!-- fix white text on white bg #ffffffff-->
+ <color name="message_text_color_incoming_download_failed">#6a6a6a</color>
+ <color name="message_text_color_outgoing">@color/omni_text2</color>
+ <color name="conversation_background">@color/omni_color2</color>
+ <color name="conversation_edge_effect">#9d9d9d</color>
+ <color name="compose_message_send_color">@color/omni_color5</color>
+ <color name="compose_message_send_color_pressed">@color/omni_color3</color>
+ <color name="message_bubble_color_outgoing">@color/omni_color1</color>
+ <color name="message_error_bubble_color_incoming">#fff45342</color>
+ <color name="message_audio_button_color_incoming">@color/omni_color4</color>
+ <color name="message_bubble_color_selected">@color/omni_color3</color>
+ <color name="message_image_selected_tint">#80689F38</color>
+ <color name="generic_video_icon">#ff8f8f8f</color>
+
+ <!-- Base color used for color filtering. -->
+ <color name="color_filter_base_color">@color/omni_color1</color>
+
+ <!-- Activity background color -->
+ <drawable name="class_zero_background">@color/omni_color1</drawable>
+
+ <color name="contact_avatar_default_background">@color/omni_color2</color>
+ <color name="contact_avatar_pressed_color">#40ffffff</color>
+ <color name="contact_list_text_primary">@color/omni_text1</color>
+ <color name="contact_list_text_secondary">@color/omni_text2</color>
+
+ <color name="compose_contact_text">@color/omni_text1</color>
+ <color name="compose_contact_faint_text">@color/omni_text2</color>
+ <color name="compose_contact_divider">#44999999</color>
+ <color name="contact_picker_tab_pressed">#ddffffff</color>
+ <color name="contact_picker_tab_underline">@color/omni_color3</color>
+ <color name="contact_list_alphabet_header">@color/omni_color5</color>
+ <color name="contact_picker_background">@color/omni_color2</color>
+ <color name="chips_dropdown_background_activated">@color/omni_color3</color>
+ <color name="chips_dropdown_background_pressed">@color/omni_color4</color>
+ <color name="chips_background_color">@color/omni_color4</color>
+ <color name="chips_text_color">@color/omni_text1</color>
+
+ <color name="camera_button_container_background">#80000000</color>
+
+ <color name="translucent_white">#80ffffff</color>
+
+ <color name="gallery_image_default_background">#eeeeee</color>
+ <color name="gallery_image_pressed">#6733b5e5</color>
+ <color name="attachment_preview_more_items_text_background">@color/omni_color7</color>
+
+ <color name="letter_tile_font_color">#ffffff</color>
+
+ <color name="audio_picker_level_primary_color">#29ffffff</color>
+ <color name="audio_record_control_button_stroke">#30ffffff</color>
+ <color name="audio_picker_hint_text_color">#40ffffff</color>
+ <color name="audio_picker_timer_text_color">#dedede</color>
+ <color name="audio_attachment_timer_text_color">#dedede</color>
+ <color name="audio_progress_bar_color">@color/omni_color5</color>
+
+ <color name="notification_sender_text">#9A9A9A</color>
+ <color name="notification_secondary_text">#FFFFFF</color>
+ <color name="notification_tertiary_text">#FFFFFF</color>
+ <color name="wearable_notification_participants_count">#a2a2a2</color>
+ <color name="notification_accent_color">@color/omni_color5</color>
+ <color name="notification_warning_color">#ffffff</color>
+ <color name="notification_subject_color">@color/omni_text1</color>
+
+ <color name="participant_list_text_primary">@color/omni_text1</color>
+ <color name="participant_list_text_secondary">@color/omni_text2</color>
+ <color name="people_and_options_header_text">@color/omni_text1</color>
+ <color name="people_and_options_list_divider">#222222</color>
+
+ <color name="fab_color">@color/omni_color5</color>
+ <color name="fab_pressed_color">@color/omni_color3</color>
+ <color name="fab_ripple">@color/omni_color5</color>
+
+ <color name="message_text_counter_color">@color/omni_text1</color>
+ <color name="mms_indicator_color">@color/omni_color3</color>
+ <color name="list_empty_text">@color/omni_color2</color>
+ <color name="low_storage_action_item_color">#ffeeeeee</color>
+ <color name="unblock_item_text_color">@color/omni_color5</color>
+ <color name="open_conversation_animation_background_shadow">@color/omni_color1</color>
+ <color name="compose_notification_bar_background">@color/omni_color5</color>
+
+ <color name="sim_selector_text_primary">@color/omni_text1</color>
+ <color name="sim_selector_text_secondary">@color/omni_text2</color>
+ <color name="sim_selector_background_end">@color/omni_color2</color>
+ <color name="sim_selector_background_start">@color/omni_color1</color>
+ <color name="sim_indicator_color_light">#ffffff</color>
+ <color name="sim_indicator_color_dark">#777777</color>
+
+ <color name="text_highlight_color">@color/omni_color4</color>
+ <color name="search_view_text_cursor">@color/omni_color3</color>
+
+ <color name="button_bar_action_button_text_color">@color/omni_color4</color>
+ <color name="button_bar_cancel_button_text_color">@color/omni_color4</color>
+
+ <color name="settings_list_text_primary">@color/omni_text1</color>
+ <color name="settings_list_text_secondary">@color/omni_text2</color>
+ <color name="group_mms_setting_text_color">@color/omni_text2</color>
+ <color name="settings_item_title_text_primary">@color/omni_text2</color>
+
+ <color name="contact_picker_button_text_color">@color/omni_text1</color>
+
+ <color name="widget_text_color">@color/omni_text1</color>
+ <color name="widget_incoming_text_color">@color/omni_text1</color>
+ <color name="widget_outgoing_text_color">@color/omni_text2</color>
+ <color name="widget_background_color">@color/omni_color1</color>
+ <color name="ripple_material_light">@color/omni_color3</color>
+ <color name="widget_conversation_title_color">#FFFFFF</color>
+
+ <color name="attachment_chooser_audio_background">@color/omni_color7</color>
+ <color name="attachment_chooser_vcard_background">@color/omni_color7</color>
+
+ <color name="fastscroll_track_color">#1e999999</color>
+ <color name="fastscroll_thumb_color">#42999999</color>
+ <color name="fastscroll_preview_text_color">#999999</color>
+
+ <color name="google_gray">@color/omni_color7</color>
+ <color name="ic_launcher_background">@color/omni_color5</color>
+
+ <array name="letter_tile_colors">
+ <item>#8c2b23</item>
+ <item>#af164a</item>
+ <item>#51d847</item>
+ <item>#4e2b8c</item>
+ <item>#2e3b84</item>
+ <item>#2d5dad</item>
+ <item>#0071a8</item>
+ <item>#0f5d66</item>
+ <item>#02665c</item>
+ <item>#0b7743</item>
+ <item>#507a2c</item>
+ <item>#af4f00</item>
+ <item>#cc451a</item>
+ <item>#595959</item>
+ </array>
+</resources>
+
diff --git a/res/values-night/styles.xml b/res/values-night/styles.xml
new file mode 100644
index 0000000..5c26758
--- /dev/null
+++ b/res/values-night/styles.xml
@@ -0,0 +1,646 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 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>
+ <!--
+ Base application theme, dependent on API level. This theme is replaced
+ by BugleBaseTheme from res/values-vXX/styles.xml on newer devices.
+ -->
+ <style name="BugleBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
+ <!--
+ Theme customizations available in newer API levels can go in
+ res/values-vXX/styles.xml, while customizations related to
+ backward-compatibility can go here.
+ -->
+ </style>
+
+
+ <!-- Application theme. -->
+ <style name="BugleTheme" parent="BugleBaseTheme">
+ <!-- All customizations that are NOT specific to a particular API-level can go here. -->
+ <item name="android:dropDownListViewStyle">@style/DropDownListViewStyle</item>
+ <item name="colorPrimary">@color/action_bar_background_color</item>
+ <item name="colorPrimaryDark">@color/action_bar_background_color</item>
+ <item name="android:textColorPrimary">@color/omni_text1</item>
+ <item name="android:textColorSecondary">@color/omni_text2</item>
+ <item name="android:textColorTertiary">@color/omni_text3</item>
+ <item name="colorAccent">@color/action_bar_background_color</item>
+ <item name="android:textColorHighlight">@color/text_highlight_color</item>
+ <item name="actionBarStyle">@style/BugleActionBar</item>
+ <item name="apnPreferenceStyle">@style/ApnPreference</item>
+ <item name="android:listViewStyle">@style/ListViewStyle</item>
+ <item name="android:expandableListViewStyle">@style/ExpandableListViewStyle</item>
+ <item name="actionBarPopupTheme">@style/PopupMenuStyleAppCompat</item>
+ <item name="android:actionBarPopupTheme">@style/PopupMenuStyleAppCompat</item>
+ <item name="alertDialogTheme">@style/BugleThemeAlertDialog</item>
+ <item name="android:alertDialogTheme">@style/BugleThemeAlertDialog</item>
+ </style>
+
+ <style name="ListViewStyle" parent="@android:style/Widget.DeviceDefault.ListView">
+ <item name="android:overScrollMode">always</item>
+ <item name="android:textColor">@color/message_title_text</item>
+ <item name="android:textColorPrimary">@color/omni_text1</item>
+ <item name="android:textColorSecondary">@color/omni_text2</item>
+ <item name="android:textColorTertiary">@color/omni_text3</item>
+ <item name="android:background">@color/contextual_action_bar_background_color</item>
+ </style>
+
+ <style name="ExpandableListViewStyle" parent="@android:style/Widget.DeviceDefault.ExpandableListView">
+ <item name="android:overScrollMode">always</item>
+ <item name="android:textColor">@color/message_title_text</item>
+ <item name="android:textColorPrimary">@color/omni_text1</item>
+ <item name="android:textColorSecondary">@color/omni_text2</item>
+ <item name="android:textColorTertiary">@color/omni_text3</item>
+ <item name="android:background">@color/contextual_action_bar_background_color</item>
+ </style>
+
+ <style name="PopupMenuStyleAppCompat" parent="@android:style/Theme.DeviceDefault.Dialog">
+ </style>
+
+ <style name="BugleTheme.ConversationActivity"
+ parent="@style/BugleTheme.ConversationActivityBase">
+ </style>
+
+ <style name="BugleTheme.ConversationActivityBase" parent="BugleTheme">
+ <item name="android:windowBackground">@color/conversation_background</item>
+ <item name="windowActionBarOverlay">true</item>
+ <item name="android:fastScrollPreviewBackgroundLeft">@drawable/contacts_fastscroll_label_left</item>
+ <item name="android:fastScrollPreviewBackgroundRight">@drawable/contacts_fastscroll_label_right</item>
+ </style>
+
+ <style name="BugleTheme.DialogActivity" parent="@style/Theme.AppCompat.Dialog">
+ <item name="android:colorAccent">@color/primary_color</item>
+ <item name="android:colorPrimary">@color/archived_conversation_action_bar_background_color</item>
+ <item name="android:colorPrimaryDark">@color/archived_conversation_action_bar_background_color</item>
+ <item name="android:background">@color/contextual_action_bar_background_color</item>\
+ </style>
+
+ <style name="BugleThemeDialog" parent="BugleTheme.DialogActivity">
+ </style>
+
+ <style name="BugleThemeAlertDialog" parent="@style/Theme.AppCompat.Dialog.Alert">
+ <item name="android:colorAccent">@color/primary_color</item>
+ <item name="android:colorPrimary">@color/archived_conversation_action_bar_background_color</item>
+ <item name="android:colorPrimaryDark">@color/archived_conversation_action_bar_background_color</item>
+ <item name="android:background">@color/contextual_action_bar_background_color</item>
+ </style>
+
+ <style name="BugleTheme.ConversationListActivity" parent="BugleTheme">
+ <item name="android:windowBackground">@color/contextual_action_bar_background_color</item>
+ </style>
+
+ <style name="BugleTheme.ArchivedConversationListActivity" parent="BugleTheme.ConversationListActivity">
+ <item name="colorPrimary">@color/archived_conversation_action_bar_background_color</item>
+ <item name="colorPrimaryDark">@color/archived_conversation_action_bar_background_color</item>
+ </style>
+
+ <style name="Invisible" parent="BugleBaseTheme">
+ <item name="android:windowBackground">@null</item>
+ <item name="android:windowContentOverlay">@null</item>
+ <item name="android:windowIsTranslucent">true</item>
+ <item name="android:windowAnimationStyle">@null</item>
+ <item name="android:windowDisablePreview">true</item>
+ <item name="android:windowNoDisplay">true</item>
+ </style>
+
+ <style name="BugleActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid">
+ <item name="height">@dimen/action_bar_height</item>
+ <item name="displayOptions">showTitle</item>
+ <item name="titleTextStyle">@style/BugleActionBarTitleTextStyle</item>
+ </style>
+
+ <style name="BugleActionBarTitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
+ <item name="android:textColor">@color/action_bar_title_text_color</item>
+ <item name="android:textSize">@dimen/action_bar_text_size</item>
+ <item name="android:lines">1</item>
+ </style>
+
+ <style name="ConversationActionBarTitleTextStyle" parent="BugleActionBarTitleTextStyle">
+ <item name="android:background">?android:attr/selectableItemBackground</item>
+ </style>
+
+ <style name="BuglePhotoViewTheme" parent="PhotoViewTheme.Translucent">
+ <item name="actionModeShareDrawable">@drawable/ic_share_light</item>
+ </style>
+
+ <style name="ConversationMessageText">
+ <item name="android:background">@null</item>
+ </style>
+
+ <style name="ConversationMessage" parent="ConversationMessageText">
+ <item name="android:textSize">@dimen/conversation_message_text_size</item>
+ <item name="android:textColor">@color/message_text</item>
+ </style>
+
+ <style name="ConversationMessageStatus" parent="ConversationMessageText">
+ <item name="android:textSize">@dimen/conversation_status_text_size</item>
+ </style>
+
+ <style name="ConversationMessageTitle" parent="ConversationMessageText">
+ <item name="android:textSize">@dimen/conversation_title_text_size</item>
+ <item name="android:background">@null</item>
+ <item name="android:textColor">@color/message_title_text</item>
+ </style>
+
+ <style name="ConversationMessageInfo" parent="ConversationMessageText">
+ <item name="android:textSize">@dimen/conversation_info_text_size</item>
+ <item name="android:textColor">@color/message_info_text</item>
+ </style>
+
+ <style name="ConversationComposeSendText">
+ <item name="android:textColor">@color/compose_send_text_color</item>
+ <item name="android:singleLine">false</item>
+ <item name="android:textSize">@dimen/conversation_compose_send_text_size</item>
+ <item name="android:gravity">center_vertical</item>
+ <item name="android:fontFamily">sans-serif</item>
+ <item name="android:paddingLeft">@dimen/compose_message_text_box_padding_side</item>
+ <item name="android:paddingRight">@dimen/compose_message_text_box_padding_side</item>
+ <item name="android:minHeight">@dimen/conversation_message_contact_icon_size</item>
+ <item name="android:maxLines">4</item>
+ <item name="android:background">@null</item>
+ <item name="android:scrollHorizontally">false</item>
+ <item name="android:textCursorDrawable">@null</item>
+ <item name="android:inputType">textShortMessage|textAutoCorrect|textCapSentences|textMultiLine</item>
+ </style>
+
+ <style name="ConversationComposeSubjectText" parent="ConversationComposeSendText">
+ <item name="android:paddingLeft">18dp</item>
+ <item name="android:layout_marginLeft">@dimen/compose_message_subject_cancel_left_margin</item>
+ </style>
+
+ <style name="ContactListItem">
+ <item name="android:textSize">@dimen/contact_list_text_size</item>
+ <item name="android:textColor">@color/contact_list_text_primary</item>
+ <item name="android:background">@null</item>
+ </style>
+
+ <style name="ContactListItemDetail">
+ <item name="android:textSize">@dimen/contact_list_detail_text_size</item>
+ <item name="android:textColor">@color/contact_list_text_secondary</item>
+ <item name="android:background">@null</item>
+ </style>
+
+ <style name="ContactListItemDetailType" parent="ContactListItemDetail">
+ <item name="android:paddingLeft">12dp</item>
+ </style>
+
+ <style name="ContactListItemDrawableIndicator">
+ <item name="android:background">?android:attr/selectableItemBackground</item>
+ </style>
+
+ <style name="RecipientEditTextView">
+ <item name="android:textSize">@dimen/recipient_edit_text_size</item>
+ <item name="android:textColor">@color/compose_contact_text</item>
+ <item name="android:textColorHint">@color/compose_contact_faint_text</item>
+ <item name="android:fontFamily">sans-serif</item>
+ <item name="android:paddingLeft">4dp</item>
+ <item name="android:paddingRight">4dp</item>
+ </style>
+
+ <style name="PagerTabHeader">
+ <item name="android:textColor">@color/tab_text_color</item>
+ <item name="android:textSize">@dimen/pager_tab_header_text_size</item>
+ <item name="android:background">@null</item>
+ <item name="android:textStyle">bold</item>
+ </style>
+
+ <style name="ContactListAlphabetHeader">
+ <item name="android:textSize">@dimen/contact_list_alphabet_header_text_size</item>
+ <item name="android:textColor">@color/contact_list_alphabet_header</item>
+ </style>
+
+ <style name="AttachmentPreviewMoreItemsText">
+ <item name="android:textSize">@dimen/attachment_preview_more_items_text_size</item>
+ <item name="android:textColor">@android:color/white</item>
+ </style>
+
+ <style name="AudioPickerHintText">
+ <item name="android:textSize">@dimen/audio_picker_text_size</item>
+ <item name="android:textColor">@color/audio_picker_hint_text_color</item>
+ </style>
+
+ <style name="AudioPickerTimerText">
+ <item name="android:textSize">@dimen/audio_picker_text_size</item>
+ <item name="android:textColor">@color/audio_picker_timer_text_color</item>
+ </style>
+
+ <style name="AudioAttachmentTimerText">
+ <item name="android:textSize">@dimen/audio_attachment_text_size</item>
+ <item name="android:textColor">@color/audio_attachment_timer_text_color</item>
+ <item name="android:layout_marginRight">16dp</item>
+ </style>
+
+ <style name="AudioAttachmentViewStyle">
+ <item name="android:paddingRight">16dp</item>
+ <item name="android:paddingLeft">16dp</item>
+ </style>
+
+ <style name="VcardAttachmentSingleStyle">
+ <item name="android:paddingRight">@dimen/message_text_left_right_padding</item>
+ <item name="android:paddingLeft">@dimen/message_text_left_right_padding</item>
+ </style>
+
+ <style name="MessageVcardAttachmentStyle">
+ <item name="android:paddingRight">@dimen/message_text_left_right_padding</item>
+ <item name="android:paddingLeft">@dimen/message_text_left_right_padding</item>
+ </style>
+
+ <style name="NotificationSenderText">
+ <item name="android:textColor">@color/notification_sender_text</item>
+ </style>
+
+ <style name="NotificationSecondaryText">
+ <item name="android:textColor">@color/notification_secondary_text</item>
+ </style>
+
+ <style name="NotificationTertiaryText">
+ <item name="android:textColor">@color/notification_tertiary_text</item>
+ </style>
+
+ <style name="NotificationSubjectText">
+ <item name="android:textColor">@color/notification_subject_color</item>
+ </style>
+
+ <!-- Styles to support RTL for pre API 17 -->
+ <style name="AttachmentPreviewCloseButtonStyle">
+ <item name="android:gravity">left</item>
+ </style>
+
+ <style name="CameraChooserFrameStyle">
+ <item name="android:paddingLeft">16dp</item>
+ </style>
+
+ <style name="ComposeMessageViewAttachMediaButtonStyle">
+ <item name="android:paddingLeft">@dimen/compose_message_attachment_padding_sides</item>
+ <item name="android:paddingRight">@dimen/compose_message_attachment_padding_sides</item>
+ <item name="android:background">?android:attr/selectableItemBackground</item>
+ </style>
+
+ <style name="ContactListItemViewStyle">
+ <item name="android:paddingLeft">16dp</item>
+ </style>
+
+ <style name="ContactListItemLinearLayoutStyle">
+ <item name="android:paddingLeft">12dp</item>
+ <item name="android:paddingRight">24dp</item>
+ </style>
+
+ <style name="ConversationListItemViewPaddingStyle">
+ <item name="android:paddingLeft">@dimen/conversation_list_item_view_padding</item>
+ <item name="android:paddingRight">@dimen/conversation_list_item_view_padding</item>
+ </style>
+
+ <style name="ConversationListItemViewTextStyle">
+ <item name="android:includeFontPadding">false</item>
+ <item name="android:textSize">14sp</item>
+ <item name="android:background">@null</item>
+ <item name="android:textColor">@color/conversation_list_details</item>
+ </style>
+
+ <style name="ConversationListItemViewConversationNameStyle" parent="ConversationListItemViewTextStyle">
+ <item name="android:textSize">16sp</item>
+ <item name="android:textColor">@color/conversation_list_name</item>
+ </style>
+
+ <style name="ComposeMessageViewFrameLayoutStyle">
+ <item name="android:paddingRight">@dimen/compose_message_send_button_padding_right</item>
+ </style>
+
+ <style name="ConversationListFragmentStartNewButtonStyle">
+ <item name="android:layout_marginRight">@dimen/fab_left_right_margin</item>
+ </style>
+
+ <style name="GalleryGridItemViewCheckBoxStyle">
+ <item name="android:paddingRight">22dp</item>
+ </style>
+
+ <style name="AttachmentPreviewAttachmentStyle">
+ <item name="android:layout_marginLeft">10dp</item>
+ </style>
+
+ <style name="AudioAttachmentViewPlayPauseButtonStyle">
+ <item name="android:layout_marginRight">16dp</item>
+ </style>
+
+ <style name="ComposeMessageViewDraftViewStyle">
+ <item name="android:layout_marginLeft">53dp</item>
+ <item name="android:layout_marginRight">63dp</item>
+ </style>
+
+ <style name="ConversationMessageViewStyle">
+ <item name="android:paddingLeft">12dp</item>
+ <item name="android:paddingRight">12dp</item>
+ </style>
+
+ <style name="SubjectViewStyle">
+ <item name="android:paddingLeft">@dimen/compose_message_subject_left_padding</item>
+ <item name="android:paddingRight">@dimen/compose_message_subject_right_padding</item>
+ </style>
+
+ <style name="ParticipantListItem">
+ <item name="android:textSize">@dimen/participant_list_text_size</item>
+ <item name="android:textColor">@color/participant_list_text_primary</item>
+ <item name="android:background">@null</item>
+ <item name="android:layout_gravity">left|center_vertical</item>
+ </style>
+
+ <style name="AddContactConfirmationTextStyle" parent="ParticipantListItem">
+ <item name="android:paddingLeft">12dp</item>
+ <item name="android:paddingRight">24dp</item>
+ </style>
+
+ <style name="CopyContactDialogTextStyle" parent="ParticipantListItem">
+ <item name="android:paddingLeft">@dimen/copy_contact_dialog_left_padding</item>
+ <item name="android:paddingRight">@dimen/copy_contact_dialog_right_padding</item>
+ </style>
+
+ <style name="PeopleListItemViewStyle">
+ <item name="android:paddingLeft">16dp</item>
+ </style>
+
+ <style name="PeopleAndOptionsItemStyle">
+ <item name="android:paddingRight">16dp</item>
+ <item name="android:paddingLeft">16dp</item>
+ </style>
+
+ <style name="PeopleAndOptionsSectionHeader">
+ <item name="android:textSize">@dimen/people_and_options_header_text_size</item>
+ <item name="android:textColor">@color/people_and_options_header_text</item>
+ <item name="android:background">@null</item>
+ </style>
+
+ <style name="DropDownListViewStyle">
+ <item name="android:dividerHeight">0dp</item>
+ </style>
+
+ <style name="MmsIndicatorStyle">
+ <item name="android:textColor">@color/mms_indicator_color</item>
+ <item name="android:textSize">@dimen/mms_indicator_size</item>
+ <item name="android:fontFamily">sans-serif</item>
+ <item name="android:background">@null</item>
+ <item name="android:paddingRight">@dimen/compose_message_send_button_padding_right</item>
+ <item name="android:paddingTop">@dimen/compose_message_mms_indicator_padding_top</item>
+ <item name="android:layout_gravity">center_horizontal</item>
+ </style>
+
+ <style name="ListEmptyText">
+ <item name="android:textSize">@dimen/list_empty_text_size</item>
+ <item name="android:textColor">@color/list_empty_text</item>
+ </style>
+
+ <style name="LowStorageActionItemStyle">
+ <item name="android:textColor">@color/low_storage_action_item_color</item>
+ <item name="android:textSize">@dimen/low_storage_action_item_text_size</item>
+ <item name="android:singleLine">false</item>
+ </style>
+
+ <style name="SnackBarMessageWrapper">
+ <item name="android:layout_marginLeft">@dimen/snack_bar_left_right_margin</item>
+ <item name="android:layout_marginRight">0dp</item>
+ </style>
+
+ <style name="SnackBarText">
+ <item name="android:textColor">@android:color/white</item>
+ <item name="android:textSize">14sp</item>
+ <item name="android:fontFamily">sans-serif</item>
+ </style>
+
+ <style name="SmsDeliverdBadge">
+ <item name="android:layout_marginLeft">4dp</item>
+ </style>
+
+ <style name="appTitleStyle">
+ <item name="android:textColor">@android:color/black</item>
+ <item name="android:textSize">20sp</item>
+ <item name="android:ellipsize">end</item>
+ </style>
+
+ <style name="appVersionStyle">
+ <item name="android:textColor">@android:color/black</item>
+ <item name="android:textSize">14sp</item>
+ <item name="android:ellipsize">end</item>
+ </style>
+
+ <style name="appCopyrightStyle">
+ <item name="android:textColor">@android:color/black</item>
+ <item name="android:textSize">12sp</item>
+ <item name="android:ellipsize">end</item>
+ </style>
+
+ <style name="ChipDeleteIconStyle">
+ <item name="android:paddingLeft">8dp</item>
+ </style>
+
+ <style name="ChipIconStyle">
+ <item name="android:layout_marginRight">12dp</item>
+ </style>
+
+ <style name="SimSelectorItem">
+ <item name="android:textSize">@dimen/sim_selector_text_size</item>
+ <item name="android:textColor">@color/sim_selector_text_primary</item>
+ <item name="android:background">@null</item>
+ <item name="android:layout_gravity">right</item>
+ </style>
+
+ <style name="SimSelectorItemDetail">
+ <item name="android:textSize">@dimen/sim_selector_detail_text_size</item>
+ <item name="android:textColor">@color/sim_selector_text_secondary</item>
+ <item name="android:background">@null</item>
+ <item name="android:layout_gravity">right</item>
+ </style>
+
+ <style name="SimSelectorItemLinearLayoutStyle">
+ <item name="android:paddingRight">12dp</item>
+ </style>
+
+ <style name="MessageSimIndicator">
+ <item name="android:textSize">@dimen/conversation_status_text_size</item>
+ <item name="android:layout_marginLeft">4dp</item>
+ </style>
+
+ <style name="ColorAccentBlueOverrideStyle">
+ <item name="colorAccent">@color/action_bar_background_color</item>
+ </style>
+
+ <style name="ColorAccentGrayOverrideStyle">
+ <item name="colorAccent">@color/search_view_text_cursor</item>
+ </style>
+
+ <style name="ApnPreference">
+ <item name="android:layout">@layout/apn_preference_layout</item>
+ </style>
+
+ <style name="ApnPreferenceLayoutStyle">
+ <item name="android:paddingLeft">?android:attr/listPreferredItemPaddingStart</item>
+ <item name="android:paddingRight">?android:attr/listPreferredItemPaddingEnd</item>
+ </style>
+
+ <style name="GroupMmsSettingItem">
+ <item name="android:textSize">@dimen/group_mms_setting_text_size</item>
+ <item name="android:textColor">@color/group_mms_setting_text_color</item>
+ <item name="android:layout_marginLeft">20dp</item>
+ <item name="android:layout_marginRight">20dp</item>
+ <item name="android:layout_marginTop">16dp</item>
+ <item name="android:paddingLeft">10dp</item>
+ <item name="android:paddingRight">10dp</item>
+ <item name="android:background">?android:attr/selectableItemBackground</item>
+ </style>
+
+ <style name="DebugMmsConfigItemStyle">
+ <item name="android:paddingLeft">16dp</item>
+ <item name="android:paddingRight">16dp</item>
+ </style>
+
+ <style name="WidgetTitle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
+ <item name="android:textColor">@color/action_bar_title_text_color</item>
+ <item name="android:singleLine">true</item>
+ <item name="android:layout_marginEnd">8dp</item>
+ </style>
+
+ <style name="WidgetConversationTitle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
+ <item name="android:textColor">@color/widget_conversation_title_color</item>
+ <item name="android:singleLine">true</item>
+ <item name="android:layout_marginRight">8dp</item>
+ <item name="android:textSize">@dimen/widget_conversation_title_size</item>
+ <item name="android:shadowColor">#000000</item>
+ <item name="android:shadowDx">0</item>
+ <item name="android:shadowDy">2</item>
+ <item name="android:shadowRadius">1</item>
+ </style>
+
+ <style name="WidgetHeaderImage">
+ <item name="android:paddingStart">4dip</item>
+ </style>
+
+ <style name="WidgetConversationListItemAvatar">
+ <item name="android:layout_marginEnd">12dp</item>
+ <item name="android:layout_marginStart">8dp</item>
+ <item name="android:layout_alignParentStart">true</item>
+ </style>
+
+ <style name="WidgetConversationItemAvatarIncoming">
+ <item name="android:layout_marginStart">8dp</item>
+ <item name="android:layout_alignParentStart">true</item>
+ </style>
+
+ <style name="WidgetConversationItemAvatarOutgoing">
+ <item name="android:layout_marginRight">8dp</item>
+ <item name="android:layout_alignParentRight">true</item>
+ </style>
+
+ <style name="WidgetConversationItemBodyIncoming">
+ <item name="android:layout_toRightOf">@id/avatarFrame</item>
+ </style>
+
+ <style name="WidgetConversationItemBodyOutgoing">
+ <item name="android:layout_toLeftOf">@id/avatarFrame</item>
+ </style>
+
+ <style name="WidgetConversationItemIncoming">
+ <item name="android:layout_marginRight">5dp</item>
+ <item name="android:layout_alignParentLeft">true</item>
+ <item name="android:layout_toLeftOf">@id/date</item>
+ </style>
+
+ <style name="WidgetConversationItemIncomingAvatarShadow">
+ <item name="android:layout_marginLeft">4dp</item>
+ </style>
+
+ <style name="WidgetConversationItemOutgoingAvatarShadow">
+ <item name="android:layout_marginLeft">-4dp</item>
+ </style>
+
+ <style name="WidgetConversationAppIcon" parent="WidgetHeaderImage">
+ <item name="android:layout_marginLeft">-20dp</item>
+ </style>
+
+ <style name="WidgetConversationItemDate">
+ <item name="android:layout_marginRight">8dp</item>
+ <item name="android:layout_marginLeft">5dp</item>
+ <item name="android:layout_alignParentLeft">true</item>
+ </style>
+
+ <style name="WidgetConversationItemFailed">
+ <item name="android:layout_gravity">bottom|right</item>
+ </style>
+
+ <style name="WidgetConversationItemAttachment">
+ <item name="android:layout_gravity">bottom|right</item>
+ </style>
+
+ <style name="WidgetConversationItemWidget">
+ <item name="android:layout_marginRight">8dp</item>
+ <item name="android:layout_marginLeft">5dp</item>
+ <item name="android:layout_alignParentLeft">true</item>
+ </style>
+
+ <style name="WidgetConversationListItemBody">
+ <item name="android:layout_toRightOf">@id/avatarFrame</item>
+ </style>
+
+ <style name="WidgetConversationListItemFrom">
+ <item name="android:layout_marginRight">5dp</item>
+ <item name="android:layout_alignParentLeft">true</item>
+ </style>
+
+ <style name="WidgetConversationListItemDate">
+ <item name="android:layout_marginRight">8dp</item>
+ <item name="android:layout_marginLeft">5dp</item>
+ <item name="android:layout_gravity">right</item>
+ </style>
+
+ <style name="WidgetLoading">
+ <item name="android:layout_marginLeft">16dp</item>
+ </style>
+
+ <style name="WidgetConversationListItemStyle">
+ <item name="android:layout_height">80dp</item>
+ </style>
+
+ <style name="AttachmentGridItemViewCheckBoxStyle">
+ <item name="android:paddingRight">4dp</item>
+ </style>
+
+ <style name="PromoScreenTextStyle">
+ <item name="android:paddingLeft">40dp</item>
+ <item name="android:paddingRight">40dp</item>
+ <item name="android:textSize">16sp</item>
+ <item name="android:textColor">@android:color/white</item>
+ <item name="android:fontFamily">roboto-regular</item>
+ </style>
+ <style name="PromoScreenTextStyle.CenterAligned">
+ <item name="android:textAlignment">center</item>
+ </style>
+ <style name="PromoScreenButtonStyle">
+ <item name="android:textSize">14sp</item>
+ <item name="android:fontFamily">roboto-medium</item>
+ <item name="android:textAllCaps">true</item>
+ <item name="android:textStyle">bold</item>
+ <item name="android:background">?android:attr/selectableItemBackground</item>
+ <item name="android:textColor">@android:color/white</item>
+ <item name="android:gravity">center</item>
+ </style>
+ <style name="DirectoryHeaderStyle">
+ <item name="android:paddingLeft">@dimen/directory_header_padding_start</item>
+ <item name="android:paddingStart">@dimen/directory_header_padding_start</item>
+ <item name="android:paddingRight">@dimen/directory_header_padding_end</item>
+ <item name="android:paddingEnd">@dimen/directory_header_padding_end</item>
+ <item name="android:paddingTop">@dimen/directory_header_padding_top</item>
+ <item name="android:paddingBottom">@dimen/directory_header_padding_bottom</item>
+ <item name="android:textSize">@dimen/directory_header_text_size</item>
+ <item name="android:textStyle">bold</item>
+ </style>
+</resources>
diff --git a/res/values-nl/custom_strings.xml b/res/values-nl/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-nl/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 8312dcc..53bf59f 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"Mms"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Geavanceerd"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Fouten opsporen"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Meldingen"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Meldingen"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Geluid"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Stil"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Trillen"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 3ccc046..065fbe7 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"ਉੱਨਤ"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"ਡੀਬਗ ਕਰੋ"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"ਸੂਚਨਾਵਾਂ"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"ਸੂਚਨਾਵਾਂ"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"ਅਵਾਜ਼"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"ਸਾਈਲੈਂਟ"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"ਵਾਈਬ੍ਰੇਟ"</string>
diff --git a/res/values-pl/custom_strings.xml b/res/values-pl/custom_strings.xml
new file mode 100644
index 0000000..792c588
--- /dev/null
+++ b/res/values-pl/custom_strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <string name="notification_mark_as_read">Oznacz jako przeczytane</string>
+ <!-- Swipe to delete conversation -->
+ <string name="swipe_to_delete_conversation_pref_title">Przesuń, aby usunąć</string>
+ <string name="swipe_to_delete_conversation_pref_summary">Przesuń w prawo, aby usunąć konwersację</string>
+</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 1f21955..022e3bf 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -294,7 +294,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Zaawansowane"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Debugowanie"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Powiadomienia"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Powiadomienia"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Dźwięk"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Cichy"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Wibracje"</string>
diff --git a/res/values-pt-rBR/custom_strings.xml b/res/values-pt-rBR/custom_strings.xml
new file mode 100644
index 0000000..c9eb2c0
--- /dev/null
+++ b/res/values-pt-rBR/custom_strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <string name="notification_mark_as_read">Marcar como lido</string>
+ <!-- Swipe to delete conversation -->
+ <string name="swipe_to_delete_conversation_pref_title">Deslize para excluir</string>
+ <string name="swipe_to_delete_conversation_pref_summary">Deslize para a direita para apagar uma conversa</string>
+</resources>
diff --git a/res/values-pt-rPT/custom_strings.xml b/res/values-pt-rPT/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-pt-rPT/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 5c64052..0406b60 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Avançadas"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Depurar"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Notificações"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Notificações"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Som"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Silencioso"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibrar"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index bd60502..0715cfc 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Avançadas"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Depurar"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Notificações"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Notificações"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Som"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Silencioso"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibração"</string>
diff --git a/res/values-rm/custom_strings.xml b/res/values-rm/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-rm/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-ro/custom_strings.xml b/res/values-ro/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-ro/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 2f9c5a7..21476ec 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -276,7 +276,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Avansate"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Remedierea erorilor"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Notificări"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Notificări"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Sunet"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Silențios"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibrații"</string>
diff --git a/res/values-ru/custom_strings.xml b/res/values-ru/custom_strings.xml
new file mode 100644
index 0000000..118f442
--- /dev/null
+++ b/res/values-ru/custom_strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <string name="notification_mark_as_read">Отметить как прочитанное</string>
+ <!-- Swipe to delete conversation -->
+ <string name="swipe_to_delete_conversation_pref_title">Смахните для удаления</string>
+ <string name="swipe_to_delete_conversation_pref_summary">Смахните вправо для удаления диалога</string>
+</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 132f8c4..72cf3fc 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -294,7 +294,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Дополнительные настройки"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Выполнить отладку"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Уведомления"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Уведомления"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Звуковой сигнал"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Без звука"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Вибросигнал"</string>
diff --git a/res/values-si/custom_strings.xml b/res/values-si/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-si/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 80c7cd7..b9f5942 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"උසස්"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"නිදොස්කරණය"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"දැනුම්දීම්"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"දැනුම්දීම්"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"ශබ්දය"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"නිහඬ"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"කම්පනය වන්න"</string>
diff --git a/res/values-sk/custom_strings.xml b/res/values-sk/custom_strings.xml
new file mode 100644
index 0000000..876bb9c
--- /dev/null
+++ b/res/values-sk/custom_strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <string name="notification_mark_as_read">Označiť ako prečítané</string>
+ <!-- Swipe to delete conversation -->
+ <string name="swipe_to_delete_conversation_pref_title">Potiahnuť pre vymazanie</string>
+ <string name="swipe_to_delete_conversation_pref_summary">Potiahnite vpravo pre vymazanie konverzácie</string>
+</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 1056a95..b0e7c40 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -294,7 +294,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Rozšírené"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Ladiť"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Upozornenia"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Upozornenia"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Zvuk"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Tichý režim"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibrovanie"</string>
diff --git a/res/values-sl/custom_strings.xml b/res/values-sl/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-sl/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 6c85318..8cff530 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -294,7 +294,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Dodatno"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Odpravljanje napak"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Obvestila"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Obvestila"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Zvok"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Tiho"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibriranje"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index f7b858c..f25792d 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Të përparuara"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Korrigjo"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Njoftime"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Njoftime"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Zëri"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Hesht"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Dridh"</string>
diff --git a/res/values-sr/custom_strings.xml b/res/values-sr/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-sr/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index a1262a0..a15ee79 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -276,7 +276,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Напредно"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Отклањање грешака"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Обавештења"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Обавештења"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Звук"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Нечујно"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Вибрација"</string>
diff --git a/res/values-sv/custom_strings.xml b/res/values-sv/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-sv/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 01d5820..5526704 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"Mms"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Avancerat"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Felsökning"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Aviseringar"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Aviseringar"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Ljud"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Tyst"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Vibration"</string>
diff --git a/res/values-sw/custom_strings.xml b/res/values-sw/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-sw/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 87b12ae..d73a706 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Mahiri"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Tatua"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Arifa"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Arifa"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Mlio"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Kimya"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Tetema"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 327e454..a218473 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"மேம்பட்டவை"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"பிழைத்திருத்து"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"அறிவிப்புகள்"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"அறிவிப்புகள்"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"ஒலி"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"நிசப்தம்"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"அதிர்வு"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index f2dabb2..dee7719 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"అధునాతనం"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"డీబగ్"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"నోటిఫికేషన్లు"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"నోటిఫికేషన్లు"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"ధ్వని"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"నిశ్శబ్దం"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"వైబ్రేట్"</string>
diff --git a/res/values-th/custom_strings.xml b/res/values-th/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-th/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 3768ca8..5b84716 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"ขั้นสูง"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"แก้ไขข้อบกพร่อง"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"การแจ้งเตือน"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"การแจ้งเตือน"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"เสียง"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"เงียบ"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"สั่น"</string>
diff --git a/res/values-tl/custom_strings.xml b/res/values-tl/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-tl/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 091949f..bb68969 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Advanced"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"I-debug"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Mga Notification"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Mga Notification"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Tunog"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Naka-silent"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Mag-vibrate"</string>
diff --git a/res/values-tr/custom_strings.xml b/res/values-tr/custom_strings.xml
new file mode 100644
index 0000000..10c5138
--- /dev/null
+++ b/res/values-tr/custom_strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <string name="notification_mark_as_read">Okundu olarak işaretle</string>
+ <!-- Swipe to delete conversation -->
+ <string name="swipe_to_delete_conversation_pref_title">Silmek için kaydırma</string>
+ <string name="swipe_to_delete_conversation_pref_summary">Bir sohbeti silmek için sağa kaydırın</string>
+</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 7d7fefb..a09013c 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Gelişmiş"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Hata Ayıklama"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Bildirimler"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Bildirimler"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Ses"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Sessiz"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Titreşim"</string>
diff --git a/res/values-uk/custom_strings.xml b/res/values-uk/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-uk/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 1fa8a2e..bb4fc3f 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -294,7 +294,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Додатково"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Налагодження"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Сповіщення"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Сповіщення"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Сигнал"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Без звуку"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Вібросигнал"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 68217ca..58d4da2 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"جدید ترین"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"ڈیبگ کریں"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"اطلاعات"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"اطلاعات"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"آواز"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"خاموش"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"وائبریٹ"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 4d84ca1..706f7de 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Qo‘shimcha"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Tuzatish"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Bildirishnomalar"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Bildirishnomalar"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Ovoz"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Ovozsiz"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Tebranish"</string>
diff --git a/res/values-v21/styles.xml b/res/values-v21/styles.xml
index aef5d1c..3fab996 100644
--- a/res/values-v21/styles.xml
+++ b/res/values-v21/styles.xml
@@ -20,11 +20,6 @@
<item name="android:colorEdgeEffect">@color/conversation_edge_effect</item>
</style>
- <style name="BugleTheme.DialogActivity" parent="@style/Theme.AppCompat.Light.Dialog">
- <item name="android:windowNoTitle">false</item>
- <item name="android:background">@android:color/white</item>
- </style>
-
<style name="ContactListItemDrawableIndicator">
<item name="android:background">?android:attr/selectableItemBackgroundBorderless</item>
</style>
diff --git a/res/values-v31/colors.xml b/res/values-v31/colors.xml
new file mode 100644
index 0000000..5290243
--- /dev/null
+++ b/res/values-v31/colors.xml
@@ -0,0 +1,19 @@
+<!--
+ ~ Copyright (C) 2014 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>
+ <color name="ic_launcher_background">@android:color/system_accent1_600</color>
+</resources>
\ No newline at end of file
diff --git a/res/values-v31/styles.xml b/res/values-v31/styles.xml
new file mode 100644
index 0000000..bc7e3fd
--- /dev/null
+++ b/res/values-v31/styles.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 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>
+ <!--
+ Base application theme, dependent on API level. This theme is replaced
+ by BugleBaseTheme from res/values-vXX/styles.xml on newer devices.
+ -->
+ <style name="BugleBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
+ <!--
+ Theme customizations available in newer API levels can go in
+ res/values-vXX/styles.xml, while customizations related to
+ backward-compatibility can go here.
+ -->
+ </style>
+
+
+ <!-- Application theme. -->
+ <style name="BugleTheme" parent="BugleBaseTheme">
+ <!-- All customizations that are NOT specific to a particular API-level can go here. -->
+ <item name="android:dropDownListViewStyle">@style/DropDownListViewStyle</item>
+ <item name="colorPrimary">@color/action_bar_background_color</item>
+ <item name="colorPrimaryDark">@color/action_bar_background_color</item>
+ <item name="colorAccent">@color/action_bar_background_color</item>
+ <item name="android:textColorHighlight">@color/text_highlight_color</item>
+ <item name="actionBarStyle">@style/BugleActionBar</item>
+ <item name="apnPreferenceStyle">@style/ApnPreference</item>
+ <item name="android:listViewStyle">@style/ListViewStyle</item>
+ <item name="actionBarPopupTheme">@style/PopupMenuStyleAppCompat</item>
+ <item name="android:actionBarPopupTheme">@style/PopupMenuStyleAppCompat</item>
+ <item name="alertDialogTheme">@style/BugleThemeAlertDialog</item>
+ <item name="android:alertDialogTheme">@style/BugleThemeAlertDialog</item>
+ <item name="preferenceTheme">@style/Omni.PreferenceTheme</item>
+ <item name="android:switchStyle">@style/Omni.SwitchStyle</item>
+ <item name="android:textAppearanceListItem">@style/Omni.PreferenceTitle</item>
+ <item name="android:navigationBarColor">@android:color/transparent</item>
+ </style>
+
+ <style name="BugleTheme.SettingsActivity" parent="BugleTheme">
+ </style>
+</resources>
diff --git a/res/values-vi/custom_strings.xml b/res/values-vi/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-vi/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 4923847..49595c7 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Nâng cao"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Gỡ lỗi"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Thông báo"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Thông báo"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Âm thanh"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Im lặng"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Rung"</string>
diff --git a/res/values-zh-rCN/custom_strings.xml b/res/values-zh-rCN/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-zh-rCN/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 77dbfae..59be09d 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"彩信"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"高级"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"调试"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"通知"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"通知"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"提示音"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"静音"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"振动"</string>
diff --git a/res/values-zh-rHK/custom_strings.xml b/res/values-zh-rHK/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-zh-rHK/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index a5c690f..f96a4ef 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"進階"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"除錯"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"通知"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"通知"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"音效"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"靜音"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"震動"</string>
diff --git a/res/values-zh-rTW/custom_strings.xml b/res/values-zh-rTW/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-zh-rTW/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index c911ea7..9141894 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"多媒體訊息"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"進階"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"偵錯"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"通知"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"通知"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"音效"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"靜音"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"震動"</string>
diff --git a/res/values-zu/custom_strings.xml b/res/values-zu/custom_strings.xml
new file mode 100644
index 0000000..bd81d34
--- /dev/null
+++ b/res/values-zu/custom_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+ <!-- Mark message as read -->
+ <!-- Swipe to delete conversation -->
+</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 0221bcd..d37a626 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -258,7 +258,7 @@
<string name="mms_messaging_category_pref_title" msgid="4816815152658525660">"I-MMS"</string>
<string name="advanced_category_pref_title" msgid="6411454224069259687">"Okuthuthukisiwe"</string>
<string name="debug_category_pref_title" msgid="8765138968242505061">"Lungisa iphutha"</string>
- <string name="notifications_enabled_pref_title" msgid="4127288731844373795">"Izaziso"</string>
+ <string name="notifications_pref_title" msgid="4127288731844373795">"Izaziso"</string>
<string name="notification_sound_pref_title" msgid="3685506528957337849">"Umsindo"</string>
<string name="silent_ringtone" msgid="8073534180322059814">"Thulile"</string>
<string name="notification_vibrate_pref_title" msgid="6668564570045187390">"Dlidlizela"</string>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 0ecd2c2..11735ab 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -36,20 +36,20 @@
<color name="conversation_compose_divider_start">#44000000</color>
<color name="message_text">#000000</color>
- <color name="timestamp_text_outgoing">#99323232</color>
- <color name="timestamp_text_incoming">#99ffffff</color>
+ <color name="timestamp_text_outgoing">#99000000</color>
+ <color name="timestamp_text_incoming">#99000000</color>
<color name="timestamp_text_failed">#99ff0000</color>
<color name="compose_send_text_color">#000000</color>
<color name="message_title_text">#ff323232</color>
<color name="message_download_failed_status_text">#000000</color>
- <color name="message_info_text">#99ffffff</color>
+ <color name="message_info_text">#99000000</color>
<color name="message_info_text_incoming_download_failed">#6a6a6a</color>
<color name="message_download_failed_timestamp_text">#007fce</color>
<color name="message_failed_timestamp_text">#99ff0000</color>
- <color name="message_action_status_text">#ffffffff</color>
- <color name="message_action_info_text">#99ffffff</color>
- <color name="message_action_timestamp_text">#ffffffff</color>
+ <color name="message_action_status_text">#000000</color>
+ <color name="message_action_info_text">#99000000</color>
+ <color name="message_action_timestamp_text">#ff000000</color>
<color name="background_item_transparent">@android:color/transparent</color>
<color name="background_item_activated">#670099cc</color>
@@ -57,14 +57,14 @@
<color name="background_item_pressed">#6733b5e5</color>
<color name="subject_editor_bubble">#ffffffff</color>
- <color name="message_text_color_incoming">#ffffffff</color>
+ <color name="message_text_color_incoming">#ff000000</color>
<color name="message_text_color_incoming_download_failed">#6a6a6a</color>
<color name="message_text_color_outgoing">#ff323232</color>
- <color name="conversation_background">#eeeeee</color>
+ <color name="conversation_background">#ffffff</color>
<color name="conversation_edge_effect">#9d9d9d</color>
<color name="compose_message_send_color">@color/primary_color</color>
<color name="compose_message_send_color_pressed">#999999</color>
- <color name="message_bubble_color_outgoing">#ffffffff</color>
+ <color name="message_bubble_color_outgoing">#ffeeeeee</color>
<color name="message_error_bubble_color_incoming">#e2e2e2</color>
<color name="message_audio_button_color_incoming">#ffffffff</color>
<color name="message_bubble_color_selected">#8BC34A</color>
@@ -122,7 +122,6 @@
<color name="notification_subject_color">#99aaaaaa</color>
<color name="participant_list_text_primary">#4d4d4d</color>
- <color name="participant_list_text_secondary">#6d6d6d</color>
<color name="people_and_options_header_text">#6d6d6d</color>
<color name="people_and_options_list_divider">#cccccc</color>
@@ -173,4 +172,22 @@
<color name="fastscroll_preview_text_color">#ffffff</color>
<color name="google_gray">#F1F1F1</color>
+ <color name="ic_launcher_background">@color/primary_color</color>
+
+ <array name="letter_tile_colors">
+ <item>#DB4437</item>
+ <item>#E91E63</item>
+ <item>#9C27B0</item>
+ <item>#673AB7</item>
+ <item>#3F51B5</item>
+ <item>#4285F4</item>
+ <item>#039BE5</item>
+ <item>#0097A7</item>
+ <item>#009688</item>
+ <item>#0F9D58</item>
+ <item>#689F38</item>
+ <item>#EF6C00</item>
+ <item>#FF5722</item>
+ <item>#757575</item>
+ </array>
</resources>
diff --git a/res/values/constants.xml b/res/values/constants.xml
index e494e95..7da36a1 100644
--- a/res/values/constants.xml
+++ b/res/values/constants.xml
@@ -21,8 +21,7 @@
<string name="notifications_category_pref_key" translatable="false">notifications_category</string>
<string name="mms_messaging_category_pref_key" translatable="false">mms_messaging_category</string>
<string name="advanced_category_pref_key" translatable="false">advanced_category</string>
- <string name="notifications_enabled_pref_key" translatable="false">notifications_enabled</string>
- <bool name="notifications_enabled_pref_default" translatable="false">true</bool>
+ <string name="notifications_pref_key" translatable="false">notifications_enabled</string>
<string name="notification_sound_pref_key" translatable="false">notification_sound</string>
<string name="notification_vibration_pref_key" translatable="false">notification_vibration</string>
<bool name="notification_vibration_pref_default" translatable="false">true</bool>
diff --git a/res/values/custom_constants.xml b/res/values/custom_constants.xml
new file mode 100644
index 0000000..2870fc4
--- /dev/null
+++ b/res/values/custom_constants.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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>
+
+ <!-- Preference keys for user-visible settings -->
+ <!-- Application-wide settings -->
+ <string name="swipe_right_deletes_conversation_key" translatable="false">swipe_right_deletes_conversation</string>
+
+ <!-- This should really go into a config xml, but whoever wrote this app is an idiot, so follow their pattern -->
+ <bool name="swipe_right_deletes_conversation_default" translatable="false">false</bool>
+
+</resources>
diff --git a/res/values/custom_dimens.xml b/res/values/custom_dimens.xml
new file mode 100644
index 0000000..55d248c
--- /dev/null
+++ b/res/values/custom_dimens.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 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>
+
+ <dimen name="fab_list_bottom_padding">88dp</dimen>
+
+</resources>
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
new file mode 100644
index 0000000..3eaaee2
--- /dev/null
+++ b/res/values/custom_strings.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2019 Omnirom
+ ~
+ ~ 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">
+
+ <!-- Mark message as read -->
+ <string name="notification_mark_as_read">Mark as read</string>
+
+ <!-- Swipe to delete conversation -->
+ <string name="swipe_to_delete_conversation_pref_title">Swipe to delete</string>
+ <string name="swipe_to_delete_conversation_pref_summary">Swipe to the right to delete a conversation</string>
+
+ <string name="value_yes">Yes</string>
+ <string name="value_no">No</string>
+
+ <!-- Notification channel -->
+ <string name="notification_channel_messages_title">Messages</string>
+</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 0795ebc..8a72315 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -29,12 +29,11 @@
<dimen name="contact_icon_view_small_size">12dp</dimen>
<dimen name="conversation_list_item_view_padding">16dp</dimen>
<dimen name="conversation_list_first_item_extra_padding">8dp</dimen>
- <dimen name="conversation_list_image_preview_corner_radius">3dp</dimen>
+ <dimen name="conversation_list_image_preview_corner_radius">16dp</dimen>
<dimen name="conversation_list_image_preview_size">56dp</dimen>
- <dimen name="conversation_list_contact_icon_size">56dp</dimen>
+ <dimen name="conversation_list_contact_icon_size">42dp</dimen>
<dimen name="conversation_message_contact_icon_size">42dp</dimen>
<dimen name="conversation_message_photo_min_size">96dp</dimen>
- <dimen name="conversation_list_notification_bell_padding">4dp</dimen>
<dimen name="conversation_list_empty_text_bottom_margin">30dp</dimen>
<dimen name="blocked_participant_list_item_view_padding">16dp</dimen>
@@ -105,11 +104,10 @@
<!-- Videos in the message list view should at least be this big in the smallest dimension -->
<dimen name="video_message_min_size">320dp</dimen>
- <dimen name="attachment_rounded_corner_radius">3dp</dimen>
+ <dimen name="attachment_rounded_corner_radius">16dp</dimen>
<dimen name="progress_indicator_default_stroke_width">2dp</dimen>
<dimen name="progress_indicator_default_radius">12dp</dimen>
<dimen name="participant_list_text_size">18sp</dimen>
- <dimen name="participant_list_detail_text_size">14sp</dimen>
<dimen name="people_and_options_header_text_size">16sp</dimen>
<dimen name="image_attachment_fallback_width">240dp</dimen>
<dimen name="image_attachment_fallback_height">240dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index e5c442d..86db324 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -257,10 +257,6 @@
<string name="action_archive">Archive</string>
<!-- Action menu title for unarchiving selected conversations in conversation list -->
<string name="action_unarchive">Unarchive</string>
- <!-- Action menu title for turning off notification for the selected conversations in conversation list -->
- <string name="action_notification_off">Turn off notifications</string>
- <!-- Action menu title for turning on notification for the selected conversations in conversation list -->
- <string name="action_notification_on">Turn on notifications</string>
<!-- Action menu title for adding the contacts for the selected conversations in conversation list -->
<string name="action_add_contact">Add contact</string>
<!-- Action menu title for downloading failed message selected in conversation -->
@@ -440,13 +436,9 @@
<!-- Preference category: Debug -->
<string name="debug_category_pref_title">Debug</string>
<!-- Title for the preference for whether or to notify the user of new messages -->
- <string name="notifications_enabled_pref_title">Notifications</string>
+ <string name="notifications_pref_title">Notifications</string>
<!-- Title for the notification sound preference -->
- <string name="notification_sound_pref_title">Sound</string>
- <!-- What to display in the settings screen for Ringtone when the user chooses "silent" [CHAR LIMIT=100]-->
<string name="silent_ringtone">Silent</string>
- <!-- Title for the preference for whether or not to vibrate with notifications -->
- <string name="notification_vibrate_pref_title">Vibrate</string>
<string name="blocked_pref_title">Blocked</string>
<!-- Title for the preference for whether or not to request/show delivery reports for SMS -->
<string name="delivery_reports_pref_title">SMS delivery reports</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 6f9be47..b24a3aa 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -33,11 +33,30 @@
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:dropDownListViewStyle">@style/DropDownListViewStyle</item>
<item name="colorPrimary">@color/action_bar_background_color</item>
- <item name="colorPrimaryDark">@color/action_bar_background_color_dark</item>
+ <item name="colorPrimaryDark">@color/action_bar_background_color</item>
<item name="colorAccent">@color/action_bar_background_color</item>
<item name="android:textColorHighlight">@color/text_highlight_color</item>
<item name="actionBarStyle">@style/BugleActionBar</item>
<item name="apnPreferenceStyle">@style/ApnPreference</item>
+ <item name="android:listViewStyle">@style/ListViewStyle</item>
+ <item name="actionBarPopupTheme">@style/PopupMenuStyleAppCompat</item>
+ <item name="android:actionBarPopupTheme">@style/PopupMenuStyleAppCompat</item>
+ <item name="alertDialogTheme">@style/BugleThemeAlertDialog</item>
+ <item name="android:alertDialogTheme">@style/BugleThemeAlertDialog</item>
+ </style>
+
+ <style name="ListViewStyle" parent="@android:style/Widget.Material.Light.ListView">
+ <item name="android:overScrollMode">always</item>
+ <item name="android:textColor">@color/message_title_text</item>
+ <item name="android:background">@color/contextual_action_bar_background_color</item>
+ </style>
+
+ <style name="PopupMenuStyleAppCompat" parent="@android:style/Theme.DeviceDefault.Light.Dialog">
+ </style>
+
+ <style name="LaunchTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
+ <item name="colorPrimary">@color/action_bar_background_color</item>
+ <item name="colorPrimaryDark">@color/action_bar_background_color_dark</item>
</style>
<style name="BugleTheme.ConversationActivity"
@@ -52,19 +71,32 @@
</style>
<style name="BugleTheme.DialogActivity" parent="@style/Theme.AppCompat.Light.Dialog">
+ <item name="android:colorAccent">@color/primary_color</item>
+ <item name="android:colorPrimary">@color/archived_conversation_action_bar_background_color</item>
+ <item name="android:colorPrimaryDark">@color/archived_conversation_action_bar_background_color</item>
+ <item name="android:background">@color/contextual_action_bar_background_color</item>
+ </style>
+
+ <style name="BugleThemeDialog" parent="BugleTheme.DialogActivity">
+ </style>
+
+ <style name="BugleThemeAlertDialog" parent="@style/Theme.AppCompat.Light.Dialog.Alert">
+ <item name="android:colorAccent">@color/primary_color</item>
+ <item name="android:colorPrimary">@color/archived_conversation_action_bar_background_color</item>
+ <item name="android:colorPrimaryDark">@color/archived_conversation_action_bar_background_color</item>
+ <item name="android:background">@color/contextual_action_bar_background_color</item>
</style>
<style name="BugleTheme.ConversationListActivity" parent="BugleTheme">
- <item name="android:windowBackground">@android:color/background_light</item>
+ <item name="android:windowBackground">@color/contextual_action_bar_background_color</item>
</style>
<style name="BugleTheme.ArchivedConversationListActivity" parent="BugleTheme.ConversationListActivity">
<item name="colorPrimary">@color/archived_conversation_action_bar_background_color</item>
- <item name="colorPrimaryDark">@color/archived_conversation_action_bar_background_color_dark</item>
+ <item name="colorPrimaryDark">@color/archived_conversation_action_bar_background_color</item>
</style>
<style name="BugleTheme.SettingsActivity" parent="BugleTheme">
- <item name="android:textSize">@dimen/settings_list_text_size</item>
</style>
<style name="Invisible" parent="BugleBaseTheme">
@@ -289,10 +321,6 @@
<item name="android:textColor">@color/conversation_list_name</item>
</style>
- <style name="ConversationListNotificationBellPaddingStyle">
- <item name="android:paddingRight">@dimen/conversation_list_notification_bell_padding</item>
- </style>
-
<style name="ComposeMessageViewFrameLayoutStyle">
<item name="android:paddingRight">@dimen/compose_message_send_button_padding_right</item>
</style>
@@ -345,12 +373,6 @@
<item name="android:paddingRight">@dimen/copy_contact_dialog_right_padding</item>
</style>
- <style name="ParticipantListItemDetail">
- <item name="android:textSize">@dimen/participant_list_detail_text_size</item>
- <item name="android:textColor">@color/participant_list_text_secondary</item>
- <item name="android:background">@null</item>
- </style>
-
<style name="PeopleListItemViewStyle">
<item name="android:paddingLeft">16dp</item>
</style>
@@ -480,18 +502,6 @@
<item name="android:paddingRight">?android:attr/listPreferredItemPaddingEnd</item>
</style>
- <style name="SettingsListItem">
- <item name="android:textSize">@dimen/settings_list_text_size</item>
- <item name="android:textColor">@color/settings_list_text_primary</item>
- <item name="android:background">@null</item>
- </style>
-
- <style name="SettingsListItemDetail">
- <item name="android:textSize">@dimen/settings_list_detail_text_size</item>
- <item name="android:textColor">@color/settings_list_text_secondary</item>
- <item name="android:background">@null</item>
- </style>
-
<style name="GroupMmsSettingItem">
<item name="android:textSize">@dimen/group_mms_setting_text_size</item>
<item name="android:textColor">@color/group_mms_setting_text_color</item>
diff --git a/res/xml-v21/preferences_application.xml b/res/xml-v21/preferences_application.xml
index 5d8ee4c..3d2c3b6 100644
--- a/res/xml-v21/preferences_application.xml
+++ b/res/xml-v21/preferences_application.xml
@@ -17,24 +17,10 @@
<!-- Preference screen definition for Bugle's application-wide settings -->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- KLP+ only -->
- <PreferenceScreen
- android:key="@string/sms_disabled_pref_key"
- android:title="@string/sms_disabled_pref_title"
- android:persistent="false">
- <intent
- android:action="android.provider.Telephony.ACTION_CHANGE_DEFAULT">
- <extra android:name="package" android:value="com.android.messaging" />
- </intent>
- </PreferenceScreen>
- <PreferenceScreen
+ <Preference
android:key="@string/sms_enabled_pref_key"
android:title="@string/sms_enabled_pref_title"
- android:persistent="false">
- <intent
- android:action="android.settings.WIRELESS_SETTINGS">
- </intent>
- </PreferenceScreen>
+ android:persistent="false"/>
<SwitchPreference
android:key="@string/send_sound_pref_key"
@@ -42,29 +28,17 @@
android:defaultValue="@bool/send_sound_pref_default"
android:persistent="true" />
- <SwitchPreference
- android:key="@string/notifications_enabled_pref_key"
- android:title="@string/notifications_enabled_pref_title"
- android:defaultValue="@bool/notifications_enabled_pref_default"
- android:persistent="true"
- android:disableDependentsState="false" />
-
- <RingtonePreference
- android:key="@string/notification_sound_pref_key"
- android:title="@string/notification_sound_pref_title"
- android:ringtoneType="notification"
- android:showSilent="true"
- android:showDefault="true"
- android:persistent="true"
- android:defaultValue=""
- android:dependency="@string/notifications_enabled_pref_key" />
+ <Preference
+ android:key="@string/notifications_pref_key"
+ android:title="@string/notifications_pref_title"
+ android:persistent="true" />
<SwitchPreference
- android:key="@string/notification_vibration_pref_key"
- android:title="@string/notification_vibrate_pref_title"
- android:defaultValue="@bool/notification_vibration_pref_default"
- android:persistent="true"
- android:dependency="@string/notifications_enabled_pref_key" />
+ android:key="@string/swipe_right_deletes_conversation_key"
+ android:title="@string/swipe_to_delete_conversation_pref_title"
+ android:summary="@string/swipe_to_delete_conversation_pref_summary"
+ android:defaultValue="false"
+ android:persistent="true" />
<PreferenceScreen
android:key="@string/advanced_pref_key"
diff --git a/res/xml-v23/preferences_application.xml b/res/xml-v23/preferences_application.xml
index 8fbadc4..8335456 100644
--- a/res/xml-v23/preferences_application.xml
+++ b/res/xml-v23/preferences_application.xml
@@ -17,55 +17,26 @@
<!-- Preference screen definition for Bugle's application-wide settings -->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- KLP+ only -->
- <PreferenceScreen
- android:key="@string/sms_disabled_pref_key"
- android:title="@string/sms_disabled_pref_title"
- android:persistent="false">
- <intent
- android:action="android.provider.Telephony.ACTION_CHANGE_DEFAULT">
- <extra android:name="package" android:value="com.android.messaging" />
- </intent>
- </PreferenceScreen>
- <!-- MNC+ only -->
- <PreferenceScreen
+ <Preference
android:key="@string/sms_enabled_pref_key"
android:title="@string/sms_enabled_pref_title"
- android:persistent="false">
- <intent
- android:action="android.provider.Telephony.ACTION_CHANGE_DEFAULT">
- </intent>
- </PreferenceScreen>
+ android:persistent="false"/>
<SwitchPreference
android:key="@string/send_sound_pref_key"
android:title="@string/send_sound_pref_title"
- android:defaultValue="@bool/send_sound_pref_default"
- android:persistent="true" />
+ android:defaultValue="@bool/send_sound_pref_default" />
+
+ <Preference
+ android:key="@string/notifications_pref_key"
+ android:title="@string/notifications_pref_title"
+ android:persistent="false" />
<SwitchPreference
- android:key="@string/notifications_enabled_pref_key"
- android:title="@string/notifications_enabled_pref_title"
- android:defaultValue="@bool/notifications_enabled_pref_default"
- android:persistent="true"
- android:disableDependentsState="false" />
-
- <RingtonePreference
- android:key="@string/notification_sound_pref_key"
- android:title="@string/notification_sound_pref_title"
- android:ringtoneType="notification"
- android:showSilent="true"
- android:showDefault="true"
- android:persistent="true"
- android:defaultValue=""
- android:dependency="@string/notifications_enabled_pref_key" />
-
- <SwitchPreference
- android:key="@string/notification_vibration_pref_key"
- android:title="@string/notification_vibrate_pref_title"
- android:defaultValue="@bool/notification_vibration_pref_default"
- android:persistent="true"
- android:dependency="@string/notifications_enabled_pref_key" />
+ android:key="@string/swipe_right_deletes_conversation_key"
+ android:title="@string/swipe_to_delete_conversation_pref_title"
+ android:summary="@string/swipe_to_delete_conversation_pref_summary"
+ android:defaultValue="false" />
<PreferenceScreen
android:key="@string/advanced_pref_key"
diff --git a/res/xml/preferences_application.xml b/res/xml/preferences_application.xml
index 7a18d09..f47469c 100644
--- a/res/xml/preferences_application.xml
+++ b/res/xml/preferences_application.xml
@@ -17,24 +17,10 @@
<!-- Preference screen definition for Bugle's application-wide settings -->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- KLP+ only -->
- <PreferenceScreen
- android:key="@string/sms_disabled_pref_key"
- android:title="@string/sms_disabled_pref_title"
- android:persistent="false">
- <intent
- android:action="android.provider.Telephony.ACTION_CHANGE_DEFAULT">
- <extra android:name="package" android:value="com.android.messaging" />
- </intent>
- </PreferenceScreen>
- <PreferenceScreen
+ <Preference
android:key="@string/sms_enabled_pref_key"
android:title="@string/sms_enabled_pref_title"
- android:persistent="false">
- <intent
- android:action="android.settings.WIRELESS_SETTINGS">
- </intent>
- </PreferenceScreen>
+ android:persistent="false"/>
<CheckBoxPreference
android:key="@string/send_sound_pref_key"
@@ -42,29 +28,17 @@
android:defaultValue="@bool/send_sound_pref_default"
android:persistent="true" />
- <CheckBoxPreference
- android:key="@string/notifications_enabled_pref_key"
- android:title="@string/notifications_enabled_pref_title"
- android:defaultValue="@bool/notifications_enabled_pref_default"
- android:persistent="true"
- android:disableDependentsState="false" />
+ <Preference
+ android:key="@string/notifications_pref_key"
+ android:title="@string/notifications_pref_title"
+ android:persistent="true" />
- <RingtonePreference
- android:key="@string/notification_sound_pref_key"
- android:title="@string/notification_sound_pref_title"
- android:ringtoneType="notification"
- android:showSilent="true"
- android:showDefault="true"
- android:persistent="true"
- android:defaultValue=""
- android:dependency="@string/notifications_enabled_pref_key" />
-
- <CheckBoxPreference
- android:key="@string/notification_vibration_pref_key"
- android:title="@string/notification_vibrate_pref_title"
- android:defaultValue="@bool/notification_vibration_pref_default"
- android:persistent="true"
- android:dependency="@string/notifications_enabled_pref_key" />
+ <SwitchPreference
+ android:key="@string/swipe_right_deletes_conversation_key"
+ android:title="@string/swipe_to_delete_conversation_pref_title"
+ android:summary="@string/swipe_to_delete_conversation_pref_summary"
+ android:defaultValue="false"
+ android:persistent="true" />
<PreferenceScreen
android:key="@string/advanced_pref_key"
diff --git a/src/com/android/messaging/datamodel/BugleDatabaseOperations.java b/src/com/android/messaging/datamodel/BugleDatabaseOperations.java
index c4e5fb8..4471b34 100644
--- a/src/com/android/messaging/datamodel/BugleDatabaseOperations.java
+++ b/src/com/android/messaging/datamodel/BugleDatabaseOperations.java
@@ -171,8 +171,7 @@
final ArrayList<ParticipantData> participants =
getConversationParticipantsFromRecipients(recipients, refSubId);
- return getOrCreateConversation(db, threadId, senderBlocked, participants, false, false,
- null);
+ return getOrCreateConversation(db, threadId, senderBlocked, participants);
}
/**
@@ -190,7 +189,7 @@
Assert.isNotMainThread();
final ArrayList<ParticipantData> recipients = new ArrayList<>(1);
recipients.add(recipient);
- return getOrCreateConversation(db, threadId, senderBlocked, recipients, false, false, null);
+ return getOrCreateConversation(db, threadId, senderBlocked, recipients);
}
/**
@@ -200,15 +199,11 @@
* @param threadId The message's thread
* @param archived Flag whether the conversation should be created archived
* @param participants list of conversation participants
- * @param noNotification If notification should be disabled
- * @param noVibrate If vibrate on notification should be disabled
- * @param soundUri If there is custom sound URI
* @return a conversation id
*/
@DoesNotRunOnMainThread
public static String getOrCreateConversation(final DatabaseWrapper db, final long threadId,
- final boolean archived, final ArrayList<ParticipantData> participants,
- boolean noNotification, boolean noVibrate, String soundUri) {
+ final boolean archived, final ArrayList<ParticipantData> participants) {
Assert.isNotMainThread();
// Check to see if this conversation is already in out local db cache
@@ -231,8 +226,7 @@
BugleDatabaseOperations.getOrCreateParticipantInTransaction(db, self);
// Create a new conversation
conversationId = BugleDatabaseOperations.createConversationInTransaction(
- db, threadId, conversationName, selfId, participants, archived,
- noNotification, noVibrate, soundUri);
+ db, threadId, conversationName, selfId, participants, archived);
db.setTransactionSuccessful();
} finally {
db.endTransaction();
@@ -357,15 +351,11 @@
* @param threadId The message's thread
* @param selfId The selfId to make default for this conversation
* @param archived Flag whether the conversation should be created archived
- * @param noNotification If notification should be disabled
- * @param noVibrate If vibrate on notification should be disabled
- * @param soundUri The customized sound
* @return The existing conversation id or new conversation id
*/
static String createConversationInTransaction(final DatabaseWrapper dbWrapper,
final long threadId, final String conversationName, final String selfId,
- final List<ParticipantData> participants, final boolean archived,
- boolean noNotification, boolean noVibrate, String soundUri) {
+ final List<ParticipantData> participants, final boolean archived) {
// We want conversation and participant creation to be atomic
Assert.isTrue(dbWrapper.getDatabase().inTransaction());
boolean hasEmailAddress = false;
@@ -389,15 +379,6 @@
if (archived) {
values.put(ConversationColumns.ARCHIVE_STATUS, 1);
}
- if (noNotification) {
- values.put(ConversationColumns.NOTIFICATION_ENABLED, 0);
- }
- if (noVibrate) {
- values.put(ConversationColumns.NOTIFICATION_VIBRATION, 0);
- }
- if (!TextUtils.isEmpty(soundUri)) {
- values.put(ConversationColumns.NOTIFICATION_SOUND_URI, soundUri);
- }
fillParticipantData(values, participants);
diff --git a/src/com/android/messaging/datamodel/BugleNotifications.java b/src/com/android/messaging/datamodel/BugleNotifications.java
index 3faee85..5e3f154 100644
--- a/src/com/android/messaging/datamodel/BugleNotifications.java
+++ b/src/com/android/messaging/datamodel/BugleNotifications.java
@@ -17,6 +17,8 @@
package com.android.messaging.datamodel;
import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
@@ -74,10 +76,10 @@
import com.android.messaging.util.ImageUtils;
import com.android.messaging.util.LogUtil;
import com.android.messaging.util.NotificationPlayer;
+import com.android.messaging.util.NotificationsUtil;
import com.android.messaging.util.OsUtil;
import com.android.messaging.util.PendingIntentConstants;
import com.android.messaging.util.PhoneUtils;
-import com.android.messaging.util.RingtoneUtil;
import com.android.messaging.util.ThreadUtil;
import com.android.messaging.util.UriUtil;
@@ -173,18 +175,10 @@
}
Assert.isNotMainThread();
checkInitialized();
-
- if (!shouldNotify()) {
- if (LogUtil.isLoggable(TAG, LogUtil.VERBOSE)) {
- LogUtil.v(TAG, "Notifications disabled");
- }
- cancel(PendingIntentConstants.SMS_NOTIFICATION_ID);
- return;
- } else {
- if ((coverage & UPDATE_MESSAGES) != 0) {
- createMessageNotification(silent, conversationId);
- }
+ if ((coverage & UPDATE_MESSAGES) != 0) {
+ createMessageNotification(silent, conversationId);
}
+
if ((coverage & UPDATE_ERRORS) != 0) {
MessageNotificationState.checkFailedMessages();
}
@@ -289,56 +283,6 @@
}
/**
- * Returns {@code true} if incoming notifications should display a
- * notification, {@code false} otherwise.
- *
- * @return true if the notification should occur
- */
- private static boolean shouldNotify() {
- // If we're not the default sms app, don't put up any notifications.
- if (!PhoneUtils.getDefault().isDefaultSmsApp()) {
- return false;
- }
-
- // Now check prefs (i.e. settings) to see if the user turned off notifications.
- final BuglePrefs prefs = BuglePrefs.getApplicationPrefs();
- final Context context = Factory.get().getApplicationContext();
- final String prefKey = context.getString(R.string.notifications_enabled_pref_key);
- final boolean defaultValue = context.getResources().getBoolean(
- R.bool.notifications_enabled_pref_default);
- return prefs.getBoolean(prefKey, defaultValue);
- }
-
- /**
- * Returns {@code true} if incoming notifications for the given {@link NotificationState}
- * should vibrate the device, {@code false} otherwise.
- *
- * @return true if vibration should be used
- */
- public static boolean shouldVibrate(final NotificationState state) {
- // The notification should vibrate if the global setting is turned on AND
- // the per-conversation setting is turned on (default).
- if (!state.getNotificationVibrate()) {
- return false;
- } else {
- final BuglePrefs prefs = BuglePrefs.getApplicationPrefs();
- final Context context = Factory.get().getApplicationContext();
- final String prefKey = context.getString(R.string.notification_vibration_pref_key);
- final boolean defaultValue = context.getResources().getBoolean(
- R.bool.notification_vibration_pref_default);
- return prefs.getBoolean(prefKey, defaultValue);
- }
- }
-
- private static Uri getNotificationRingtoneUriForConversationId(final String conversationId) {
- final DatabaseWrapper db = DataModel.get().getDatabase();
- final ConversationListItemData convData =
- ConversationListItemData.getExistingConversation(db, conversationId);
- return RingtoneUtil.getNotificationRingtoneUri(
- convData != null ? convData.getNotificationSoundUri() : null);
- }
-
- /**
* Returns a unique tag to identify a notification.
*
* @param name The tag name (in practice, the type)
@@ -411,13 +355,15 @@
private static void processAndSend(final NotificationState state, final boolean silent,
final boolean softSound) {
final Context context = Factory.get().getApplicationContext();
- final NotificationCompat.Builder notifBuilder = new NotificationCompat.Builder(context);
- notifBuilder.setCategory(Notification.CATEGORY_MESSAGE);
// TODO: Need to fix this for multi conversation notifications to rate limit dings.
final String conversationId = state.mConversationIds.first();
+ String id = NotificationsUtil.DEFAULT_CHANNEL_ID;
+ if (NotificationsUtil.getNotificationChannel(context, conversationId) != null) {
+ id = conversationId;
+ }
+ final NotificationCompat.Builder notifBuilder = new NotificationCompat.Builder(context, id);
+ notifBuilder.setCategory(Notification.CATEGORY_MESSAGE);
-
- final Uri ringtoneUri = RingtoneUtil.getNotificationRingtoneUri(state.getRingtoneUri());
// If the notification's conversation is currently observable (focused or in the
// conversation list), then play a notification beep at a low volume and don't display an
// actual notification.
@@ -427,7 +373,7 @@
"sCurrentlyDisplayedConversationId so NOT showing notification," +
" but playing soft sound. conversationId: " + conversationId);
}
- playObservableConversationNotificationSound(ringtoneUri);
+ playObservableConversationNotificationSound(conversationId);
return;
}
state.mBaseRequestCode = state.mType;
@@ -440,7 +386,7 @@
notifBuilder.setDeleteIntent(clearIntent);
}
- updateBuilderAudioVibrate(state, notifBuilder, silent, ringtoneUri, conversationId);
+ updateBuilderAudioVibrate(state, notifBuilder, silent, conversationId);
// Set the content intent
PendingIntent destinationIntent;
@@ -598,8 +544,7 @@
if (state == null) {
cancel(PendingIntentConstants.SMS_NOTIFICATION_ID);
if (softSound && !TextUtils.isEmpty(conversationId)) {
- final Uri ringtoneUri = getNotificationRingtoneUriForConversationId(conversationId);
- playObservableConversationNotificationSound(ringtoneUri);
+ playObservableConversationNotificationSound(conversationId);
}
return;
}
@@ -637,8 +582,8 @@
private static void updateBuilderAudioVibrate(final NotificationState state,
final NotificationCompat.Builder notifBuilder, final boolean silent,
- final Uri ringtoneUri, final String conversationId) {
- int defaults = Notification.DEFAULT_LIGHTS;
+ final String conversationId) {
+ int defaults = Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE;
if (!silent) {
final BuglePrefs prefs = Factory.get().getApplicationPrefs();
final long latestNotificationTimestamp = prefs.getLong(
@@ -660,10 +605,6 @@
if (lastTime == null
|| SystemClock.elapsedRealtime() - lastTime > sTimeBetweenDingsMs) {
sLastMessageDingTime.put(conversationId, SystemClock.elapsedRealtime());
- notifBuilder.setSound(ringtoneUri);
- if (shouldVibrate(state)) {
- defaults |= Notification.DEFAULT_VIBRATE;
- }
}
}
}
@@ -817,8 +758,14 @@
notificationState.mNotificationBuilder.setLargeIcon(smallBitmap);
// Add a wearable page with no visible card so you can more easily see the photo.
+ String conversationId = notificationState.mConversationIds.first();
+ String id = NotificationsUtil.DEFAULT_CHANNEL_ID;
+ if (NotificationsUtil.getNotificationChannel(context, conversationId) != null) {
+ id = conversationId;
+ }
final NotificationCompat.Builder photoPageNotifBuilder =
- new NotificationCompat.Builder(Factory.get().getApplicationContext());
+ new NotificationCompat.Builder(Factory.get().getApplicationContext(),
+ NotificationsUtil.DEFAULT_CHANNEL_ID);
final WearableExtender photoPageWearableExtender = new WearableExtender();
photoPageWearableExtender.setHintShowBackgroundOnly(true);
if (attachmentBitmap != null) {
@@ -833,7 +780,7 @@
maybeAddWearableConversationLog(wearableExtender,
(MultiMessageNotificationState) notificationState);
addDownloadMmsAction(notifBuilder, wearableExtender, notificationState);
- addWearableVoiceReplyAction(wearableExtender, notificationState);
+ addWearableVoiceReplyAction(notifBuilder, wearableExtender, notificationState);
}
// Apply the wearable options and build & post the notification
@@ -875,7 +822,7 @@
}
}
- private static void addWearableVoiceReplyAction(
+ private static void addWearableVoiceReplyAction(final NotificationCompat.Builder notifBuilder,
final WearableExtender wearableExtender, final NotificationState notificationState) {
if (!(notificationState instanceof MultiMessageNotificationState)) {
return;
@@ -905,14 +852,20 @@
final NotificationCompat.Action.Builder actionBuilder =
new NotificationCompat.Action.Builder(R.drawable.ic_wear_reply,
context.getString(replyLabelRes), replyPendingIntent);
+ final RemoteInput.Builder remoteInputBuilder = new RemoteInput.Builder(Intent.EXTRA_TEXT);
+ remoteInputBuilder.setLabel(context.getString(R.string.notification_reply_prompt));
+ actionBuilder.addRemoteInput(remoteInputBuilder.build());
+ notifBuilder.addAction(actionBuilder.build());
+
+ // Support the action on a wearable device
+ final NotificationCompat.Action.Builder wearActionBuilder =
+ new NotificationCompat.Action.Builder(R.drawable.ic_wear_reply,
+ context.getString(replyLabelRes), replyPendingIntent);
final String[] choices = context.getResources().getStringArray(
R.array.notification_reply_choices);
- final RemoteInput remoteInput = new RemoteInput.Builder(Intent.EXTRA_TEXT).setLabel(
- context.getString(R.string.notification_reply_prompt)).
- setChoices(choices)
- .build();
- actionBuilder.addRemoteInput(remoteInput);
- wearableExtender.addAction(actionBuilder.build());
+ remoteInputBuilder.setChoices(choices);
+ wearActionBuilder.addRemoteInput(remoteInputBuilder.build());
+ wearableExtender.addAction(wearActionBuilder.build());
}
private static void addDownloadMmsAction(final NotificationCompat.Builder notifBuilder,
@@ -973,6 +926,16 @@
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.defaults |= Notification.DEFAULT_LIGHTS;
+ Context context = Factory.get().getApplicationContext();
+
+ NotificationsUtil.createNotificationChannelGroup(context,
+ NotificationsUtil.CONVERSATION_GROUP_NAME,
+ R.string.notification_channel_messages_title);
+ NotificationsUtil.createNotificationChannel(context,
+ NotificationsUtil.DEFAULT_CHANNEL_ID,
+ R.string.notification_channel_messages_title,
+ NotificationManager.IMPORTANCE_DEFAULT,
+ NotificationsUtil.CONVERSATION_GROUP_NAME);
notificationManager.notify(notificationTag, type, notification);
LogUtil.i(TAG, "Notifying for conversation " + conversationId + "; "
@@ -1096,7 +1059,7 @@
* Play the observable conversation notification sound (it's the regular notification sound, but
* played at half-volume)
*/
- private static void playObservableConversationNotificationSound(final Uri ringtoneUri) {
+ private static void playObservableConversationNotificationSound(final String conversationId) {
final Context context = Factory.get().getApplicationContext();
final AudioManager audioManager = (AudioManager) context
.getSystemService(Context.AUDIO_SERVICE);
@@ -1107,7 +1070,11 @@
}
final NotificationPlayer player = new NotificationPlayer(LogUtil.BUGLE_TAG);
- player.play(ringtoneUri, false,
+ NotificationChannel channel = NotificationsUtil.getNotificationChannel(context, conversationId);
+ if (channel == null) {
+ channel = NotificationsUtil.getNotificationChannel(context, NotificationsUtil.DEFAULT_CHANNEL_ID);
+ }
+ player.play(channel != null ? channel.getSound() : null, false,
AudioManager.STREAM_NOTIFICATION,
OBSERVABLE_CONVERSATION_NOTIFICATION_VOLUME);
@@ -1202,7 +1169,8 @@
final PendingIntent destinationIntent = UIIntents.get()
.getPendingIntentForConversationActivity(context, conversationId, null /* draft */);
- final NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
+ final NotificationCompat.Builder builder =
+ new NotificationCompat.Builder(context, NotificationsUtil.DEFAULT_CHANNEL_ID);
builder.setTicker(line1)
.setContentTitle(line1)
.setContentText(line2)
@@ -1212,10 +1180,18 @@
.setSound(UriUtil.getUriForResourceId(context, R.raw.message_failure));
final String tag = context.getPackageName() + ":emergency_sms_error";
+
+ NotificationsUtil.createNotificationChannelGroup(context,
+ NotificationsUtil.CONVERSATION_GROUP_NAME,
+ R.string.notification_channel_messages_title);
+ NotificationsUtil.createNotificationChannel(context,
+ NotificationsUtil.DEFAULT_CHANNEL_ID,
+ R.string.notification_channel_messages_title,
+ NotificationManager.IMPORTANCE_HIGH,
+ null);
NotificationManagerCompat.from(context).notify(
tag,
PendingIntentConstants.MSG_SEND_ERROR,
builder.build());
}
}
-
diff --git a/src/com/android/messaging/datamodel/DatabaseHelper.java b/src/com/android/messaging/datamodel/DatabaseHelper.java
index 486973e..87bf08d 100644
--- a/src/com/android/messaging/datamodel/DatabaseHelper.java
+++ b/src/com/android/messaging/datamodel/DatabaseHelper.java
@@ -136,15 +136,6 @@
/* Participant count not including self (so will be 1 for 1:1 or bigger for group) */
public static final String PARTICIPANT_COUNT = "participant_count";
- /* Should notifications be enabled for this conversation? */
- public static final String NOTIFICATION_ENABLED = "notification_enabled";
-
- /* Notification sound used for the conversation */
- public static final String NOTIFICATION_SOUND_URI = "notification_sound_uri";
-
- /* Should vibrations be enabled for the conversation's notification? */
- public static final String NOTIFICATION_VIBRATION = "notification_vibration";
-
/* Conversation recipients include email address */
public static final String INCLUDE_EMAIL_ADDRESS = "include_email_addr";
@@ -184,9 +175,6 @@
+ ConversationColumns.OTHER_PARTICIPANT_NORMALIZED_DESTINATION + " TEXT, "
+ ConversationColumns.CURRENT_SELF_ID + " TEXT, "
+ ConversationColumns.PARTICIPANT_COUNT + " INT DEFAULT(0), "
- + ConversationColumns.NOTIFICATION_ENABLED + " INT DEFAULT(1), "
- + ConversationColumns.NOTIFICATION_SOUND_URI + " TEXT, "
- + ConversationColumns.NOTIFICATION_VIBRATION + " INT DEFAULT(1), "
+ ConversationColumns.INCLUDE_EMAIL_ADDRESS + " INT DEFAULT(0), "
+ ConversationColumns.SMS_SERVICE_CENTER + " TEXT ,"
+ ConversationColumns.IS_ENTERPRISE + " INT DEFAULT(0)"
diff --git a/src/com/android/messaging/datamodel/FrequentContactsCursorBuilder.java b/src/com/android/messaging/datamodel/FrequentContactsCursorBuilder.java
index 8f65156..fad4040 100644
--- a/src/com/android/messaging/datamodel/FrequentContactsCursorBuilder.java
+++ b/src/com/android/messaging/datamodel/FrequentContactsCursorBuilder.java
@@ -74,7 +74,7 @@
* are both ready to be consumed.
* @return the frequent contact cursor if built successfully, or null if it can't be built yet.
*/
- public Cursor build() {
+ public Cursor build(boolean getAllContacts) {
if (mFrequentContactsCursor != null && mAllContactsCursor != null) {
Assert.isTrue(!mFrequentContactsCursor.isClosed());
Assert.isTrue(!mAllContactsCursor.isClosed());
@@ -108,7 +108,7 @@
mAllContactsCursor.moveToPosition(-1);
while (mAllContactsCursor.moveToNext()) {
final String lookupKey = mAllContactsCursor.getString(ContactUtil.INDEX_LOOKUP_KEY);
- if (lookupKeyToRankMap.containsKey(lookupKey)) {
+ if (lookupKeyToRankMap.containsKey(lookupKey) || getAllContacts) {
final Object[] row = new Object[ContactUtil.PhoneQuery.PROJECTION.length];
row[ContactUtil.INDEX_DATA_ID] =
mAllContactsCursor.getLong(ContactUtil.INDEX_DATA_ID);
@@ -121,16 +121,38 @@
row[ContactUtil.INDEX_PHOTO_URI] =
mAllContactsCursor.getString(ContactUtil.INDEX_PHOTO_URI);
row[ContactUtil.INDEX_PHONE_EMAIL] =
- mAllContactsCursor.getString(ContactUtil.INDEX_PHONE_EMAIL);
+ mAllContactsCursor.getString(ContactUtil.INDEX_PHONE_EMAIL)
+ .replaceAll("[^\\d+]", "");
row[ContactUtil.INDEX_PHONE_EMAIL_TYPE] =
mAllContactsCursor.getInt(ContactUtil.INDEX_PHONE_EMAIL_TYPE);
row[ContactUtil.INDEX_PHONE_EMAIL_LABEL] =
mAllContactsCursor.getString(ContactUtil.INDEX_PHONE_EMAIL_LABEL);
- rows.add(row);
+
+ boolean numberAlreadyAdded = false;
+ for (Object[] oldRow : rows) {
+ final int idxType = ContactUtil.INDEX_PHONE_EMAIL_TYPE;
+ final int idxPhone = ContactUtil.INDEX_PHONE_EMAIL;
+ if (oldRow[idxType] == row[idxType] &&
+ oldRow[idxPhone].toString().equals(row[idxPhone].toString())) {
+ numberAlreadyAdded = true;
+ break;
+ }
+ }
+ if (!numberAlreadyAdded) {
+ rows.add(row);
+ }
}
}
mAllContactsCursor.moveToPosition(oldPosition);
+ // We can return all rows at this point, no sorting or further filtering needed
+ if (getAllContacts) {
+ for (final Object[] row : rows) {
+ retCursor.addRow(row);
+ }
+ return retCursor;
+ }
+
// Now we have a list of rows containing frequent contacts in alphabetical order.
// Therefore, sort all the rows according to their actual ranks in the frequents list.
Collections.sort(rows, new Comparator<Object[]>() {
diff --git a/src/com/android/messaging/datamodel/MessageNotificationState.java b/src/com/android/messaging/datamodel/MessageNotificationState.java
index 6b858fa..b49774f 100644
--- a/src/com/android/messaging/datamodel/MessageNotificationState.java
+++ b/src/com/android/messaging/datamodel/MessageNotificationState.java
@@ -55,6 +55,7 @@
import com.android.messaging.util.ContentType;
import com.android.messaging.util.ConversationIdSet;
import com.android.messaging.util.LogUtil;
+import com.android.messaging.util.NotificationsUtil;
import com.android.messaging.util.PendingIntentConstants;
import com.android.messaging.util.UriUtil;
import com.google.common.collect.Lists;
@@ -197,15 +198,6 @@
// line infos is capped.
int mTotalMessageCount;
- // Custom ringtone if set
- final String mRingtoneUri;
-
- // Should notification be enabled for this conversation?
- final boolean mNotificationEnabled;
-
- // Should notifications vibrate for this conversation?
- final boolean mNotificationVibrate;
-
// Avatar uri of sender
final Uri mAvatarUri;
@@ -224,9 +216,6 @@
final boolean includeEmailAddress,
final long receivedTimestamp,
final String selfParticipantId,
- final String ringtoneUri,
- final boolean notificationEnabled,
- final boolean notificationVibrate,
final Uri avatarUri,
final Uri contactUri,
final int subId,
@@ -239,11 +228,8 @@
mSelfParticipantId = selfParticipantId;
mLineInfos = new ArrayList<NotificationLineInfo>();
mTotalMessageCount = 0;
- mRingtoneUri = ringtoneUri;
mAvatarUri = avatarUri;
mContactUri = contactUri;
- mNotificationEnabled = notificationEnabled;
- mNotificationVibrate = notificationVibrate;
mSubId = subId;
mParticipantCount = participantCount;
}
@@ -349,6 +335,14 @@
getClearIntentRequestCode());
}
+ @Override
+ public PendingIntent getReadIntent() {
+ return UIIntents.get().getPendingIntentForMarkingAsRead(
+ Factory.get().getApplicationContext(),
+ mConversationIds,
+ getReadIntentRequestCode());
+ }
+
/**
* Notification for multiple messages in at least 2 different conversations.
*/
@@ -789,7 +783,8 @@
bigText.append("\n\n").append(statusText);
}
- final NotificationCompat.Builder notifBuilder = new NotificationCompat.Builder(context);
+ final NotificationCompat.Builder notifBuilder = new NotificationCompat.Builder(context,
+ NotificationsUtil.DEFAULT_CHANNEL_ID);
final NotificationCompat.Style notifStyle =
new NotificationCompat.BigTextStyle(notifBuilder).bigText(bigText);
notifBuilder.setStyle(notifStyle);
@@ -870,10 +865,6 @@
if (currConvInfo == null) {
final ConversationListItemData convData =
ConversationListItemData.getExistingConversation(db, convId);
- if (!convData.getNotificationEnabled()) {
- // Skip conversations that have notifications disabled.
- continue;
- }
final int subId = BugleDatabaseOperations.getSelfSubscriptionId(db,
convData.getSelfId());
groupConversationName = convData.getName();
@@ -888,9 +879,6 @@
convData.getIncludeEmailAddress(),
convMessageData.getReceivedTimeStamp(),
convData.getSelfId(),
- convData.getNotificationSoundUri(),
- convData.getNotificationEnabled(),
- convData.getNotifiationVibrate(),
avatarUri,
convMessageData.getSenderContactLookupUri(),
subId,
@@ -1103,22 +1091,6 @@
return BugleNotifications.LOCAL_SMS_NOTIFICATION;
}
- @Override
- public String getRingtoneUri() {
- if (mConvList.mConvInfos.size() > 0) {
- return mConvList.mConvInfos.get(0).mRingtoneUri;
- }
- return null;
- }
-
- @Override
- public boolean getNotificationVibrate() {
- if (mConvList.mConvInfos.size() > 0) {
- return mConvList.mConvInfos.get(0).mNotificationVibrate;
- }
- return false;
- }
-
protected CharSequence getTicker() {
return BugleNotifications.buildColonSeparatedMessage(
mTickerSender != null ? mTickerSender : mTitle,
@@ -1234,7 +1206,8 @@
}
if (failedMessages.size() > 0) {
final NotificationCompat.Builder builder =
- new NotificationCompat.Builder(context);
+ new NotificationCompat.Builder(context,
+ NotificationsUtil.DEFAULT_CHANNEL_ID);
CharSequence line1;
CharSequence line2;
diff --git a/src/com/android/messaging/datamodel/NotificationState.java b/src/com/android/messaging/datamodel/NotificationState.java
index e19f70c..4c11537 100644
--- a/src/com/android/messaging/datamodel/NotificationState.java
+++ b/src/com/android/messaging/datamodel/NotificationState.java
@@ -43,7 +43,8 @@
public abstract class NotificationState {
private static final int CONTENT_INTENT_REQUEST_CODE_OFFSET = 0;
private static final int CLEAR_INTENT_REQUEST_CODE_OFFSET = 1;
- private static final int NUM_REQUEST_CODES_NEEDED = 2;
+ private static final int READ_INTENT_REQUEST_CODE_OFFSET = 2;
+ private static final int NUM_REQUEST_CODES_NEEDED = 3;
public interface FailedMessageQuery {
static final String FAILED_MESSAGES_WHERE_CLAUSE =
@@ -78,6 +79,11 @@
*/
public abstract PendingIntent getClearIntent();
+ /**
+ * The intent to be triggered when mark as read is pressed.
+ */
+ public abstract PendingIntent getReadIntent();
+
protected Uri getAttachmentUri() {
return null;
}
@@ -116,6 +122,10 @@
return mBaseRequestCode + CLEAR_INTENT_REQUEST_CODE_OFFSET;
}
+ public int getReadIntentRequestCode() {
+ return mBaseRequestCode + READ_INTENT_REQUEST_CODE_OFFSET;
+ }
+
/**
* Gets the appropriate icon needed for notifications.
*/
@@ -134,15 +144,6 @@
*/
public abstract int getPriority();
- /** @return custom ringtone URI or null if not set */
- public String getRingtoneUri() {
- return null;
- }
-
- public boolean getNotificationVibrate() {
- return false;
- }
-
public long getLatestReceivedTimestamp() {
return Long.MIN_VALUE;
}
diff --git a/src/com/android/messaging/datamodel/SyncManager.java b/src/com/android/messaging/datamodel/SyncManager.java
index 28fc696..e5d4935 100644
--- a/src/com/android/messaging/datamodel/SyncManager.java
+++ b/src/com/android/messaging/datamodel/SyncManager.java
@@ -51,33 +51,14 @@
*/
public static class ConversationCustomization {
private final boolean mArchived;
- private final boolean mMuted;
- private final boolean mNoVibrate;
- private final String mNotificationSoundUri;
- public ConversationCustomization(final boolean archived, final boolean muted,
- final boolean noVibrate, final String notificationSoundUri) {
+ public ConversationCustomization(final boolean archived) {
mArchived = archived;
- mMuted = muted;
- mNoVibrate = noVibrate;
- mNotificationSoundUri = notificationSoundUri;
}
public boolean isArchived() {
return mArchived;
}
-
- public boolean isMuted() {
- return mMuted;
- }
-
- public boolean noVibrate() {
- return mNoVibrate;
- }
-
- public String getNotificationSoundUri() {
- return mNotificationSoundUri;
- }
}
SyncManager() {
@@ -436,15 +417,13 @@
if (customization != null) {
// There is user customization we need to recover
conversationId = BugleDatabaseOperations.getOrCreateConversation(db, threadId,
- customization.isArchived(), participants, customization.isMuted(),
- customization.noVibrate(), customization.getNotificationSoundUri());
+ customization.isArchived(), participants);
if (customization.isArchived()) {
mArchivedConversations.add(conversationId);
}
} else {
conversationId = BugleDatabaseOperations.getOrCreateConversation(db, threadId,
- false/*archived*/, participants, false/*noNotification*/,
- false/*noVibrate*/, null/*soundUri*/);
+ false/*archived*/, participants);
}
if (conversationId != null) {
diff --git a/src/com/android/messaging/datamodel/action/BugleActionToasts.java b/src/com/android/messaging/datamodel/action/BugleActionToasts.java
index f60facd..17d15f2 100644
--- a/src/com/android/messaging/datamodel/action/BugleActionToasts.java
+++ b/src/com/android/messaging/datamodel/action/BugleActionToasts.java
@@ -114,7 +114,6 @@
}
public static void onConversationDeleted() {
- showToast(R.string.conversation_deleted);
}
private static void showToast(final int messageResId) {
diff --git a/src/com/android/messaging/datamodel/action/DeleteConversationAction.java b/src/com/android/messaging/datamodel/action/DeleteConversationAction.java
index a00f6d6..6b81aa6 100644
--- a/src/com/android/messaging/datamodel/action/DeleteConversationAction.java
+++ b/src/com/android/messaging/datamodel/action/DeleteConversationAction.java
@@ -35,6 +35,7 @@
import com.android.messaging.sms.MmsUtils;
import com.android.messaging.util.Assert;
import com.android.messaging.util.LogUtil;
+import com.android.messaging.util.NotificationsUtil;
import com.android.messaging.widget.WidgetConversationProvider;
import java.util.ArrayList;
@@ -118,6 +119,10 @@
+ " has an invalid telephony thread id; will delete messages individually");
deleteConversationMessagesFromTelephony();
}
+
+ // Finally, remove the conversation specific notification channel
+ NotificationsUtil.deleteNotificationChannel(Factory.get().getApplicationContext(),
+ conversationId);
} else {
LogUtil.e(TAG, "DeleteConversationAction: conversationId is empty");
}
diff --git a/src/com/android/messaging/datamodel/action/GetOrCreateConversationAction.java b/src/com/android/messaging/datamodel/action/GetOrCreateConversationAction.java
index b262141..7dd09c1 100644
--- a/src/com/android/messaging/datamodel/action/GetOrCreateConversationAction.java
+++ b/src/com/android/messaging/datamodel/action/GetOrCreateConversationAction.java
@@ -110,7 +110,7 @@
}
final String conversationId = BugleDatabaseOperations.getOrCreateConversation(db, threadId,
- false, participants, false, false, null);
+ false, participants);
return conversationId;
}
diff --git a/src/com/android/messaging/datamodel/action/InsertNewMessageAction.java b/src/com/android/messaging/datamodel/action/InsertNewMessageAction.java
index 8bf6d5e..20f90dc 100644
--- a/src/com/android/messaging/datamodel/action/InsertNewMessageAction.java
+++ b/src/com/android/messaging/datamodel/action/InsertNewMessageAction.java
@@ -274,7 +274,7 @@
}
final String conversationId = BugleDatabaseOperations.getOrCreateConversation(db, threadId,
- false, participants, false, false, null);
+ false, participants);
final ParticipantData self = BugleDatabaseOperations.getOrCreateSelf(db, subId);
diff --git a/src/com/android/messaging/datamodel/action/UpdateConversationOptionsAction.java b/src/com/android/messaging/datamodel/action/UpdateConversationOptionsAction.java
deleted file mode 100644
index 6c9e739..0000000
--- a/src/com/android/messaging/datamodel/action/UpdateConversationOptionsAction.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (C) 2015 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.messaging.datamodel.action;
-
-import android.content.ContentValues;
-import android.os.Parcel;
-import android.os.Parcelable;
-
-import com.android.messaging.datamodel.BugleDatabaseOperations;
-import com.android.messaging.datamodel.DataModel;
-import com.android.messaging.datamodel.DatabaseHelper.ConversationColumns;
-import com.android.messaging.datamodel.DatabaseWrapper;
-import com.android.messaging.datamodel.MessagingContentProvider;
-import com.android.messaging.util.Assert;
-
-/**
- * Action used to update conversation options such as notification settings.
- */
-public class UpdateConversationOptionsAction extends Action
- implements Parcelable {
- /**
- * Enable/disable conversation notifications.
- */
- public static void enableConversationNotifications(final String conversationId,
- final boolean enableNotification) {
- Assert.notNull(conversationId);
-
- final UpdateConversationOptionsAction action = new UpdateConversationOptionsAction(
- conversationId, enableNotification, null, null);
- action.start();
- }
-
- /**
- * Sets conversation notification sound.
- */
- public static void setConversationNotificationSound(final String conversationId,
- final String ringtoneUri) {
- Assert.notNull(conversationId);
-
- final UpdateConversationOptionsAction action = new UpdateConversationOptionsAction(
- conversationId, null, ringtoneUri, null);
- action.start();
- }
-
- /**
- * Enable/disable vibrations for conversation notification.
- */
- public static void enableVibrationForConversationNotification(final String conversationId,
- final boolean enableVibration) {
- Assert.notNull(conversationId);
-
- final UpdateConversationOptionsAction action = new UpdateConversationOptionsAction(
- conversationId, null, null, enableVibration);
- action.start();
- }
-
- private static final String KEY_CONVERSATION_ID = "conversation_id";
-
- // Keys for all settable settings.
- private static final String KEY_ENABLE_NOTIFICATION = "enable_notification";
- private static final String KEY_RINGTONE_URI = "ringtone_uri";
- private static final String KEY_ENABLE_VIBRATION = "enable_vibration";
-
- protected UpdateConversationOptionsAction(final String conversationId,
- final Boolean enableNotification, final String ringtoneUri,
- final Boolean enableVibration) {
- Assert.notNull(conversationId);
- actionParameters.putString(KEY_CONVERSATION_ID, conversationId);
- if (enableNotification != null) {
- actionParameters.putBoolean(KEY_ENABLE_NOTIFICATION, enableNotification);
- }
-
- if (ringtoneUri != null) {
- actionParameters.putString(KEY_RINGTONE_URI, ringtoneUri);
- }
-
- if (enableVibration != null) {
- actionParameters.putBoolean(KEY_ENABLE_VIBRATION, enableVibration);
- }
- }
-
- protected void putOptionValuesInTransaction(final ContentValues values,
- final DatabaseWrapper dbWrapper) {
- Assert.isTrue(dbWrapper.getDatabase().inTransaction());
- if (actionParameters.containsKey(KEY_ENABLE_NOTIFICATION)) {
- values.put(ConversationColumns.NOTIFICATION_ENABLED,
- actionParameters.getBoolean(KEY_ENABLE_NOTIFICATION));
- }
-
- if (actionParameters.containsKey(KEY_RINGTONE_URI)) {
- values.put(ConversationColumns.NOTIFICATION_SOUND_URI,
- actionParameters.getString(KEY_RINGTONE_URI));
- }
-
- if (actionParameters.containsKey(KEY_ENABLE_VIBRATION)) {
- values.put(ConversationColumns.NOTIFICATION_VIBRATION,
- actionParameters.getBoolean(KEY_ENABLE_VIBRATION));
- }
- }
-
- @Override
- protected Object executeAction() {
- final String conversationId = actionParameters.getString(KEY_CONVERSATION_ID);
-
- final DatabaseWrapper db = DataModel.get().getDatabase();
- db.beginTransaction();
- try {
- final ContentValues values = new ContentValues();
- putOptionValuesInTransaction(values, db);
-
- BugleDatabaseOperations.updateConversationRowIfExists(db, conversationId, values);
-
- db.setTransactionSuccessful();
- } finally {
- db.endTransaction();
- }
- MessagingContentProvider.notifyConversationMetadataChanged(conversationId);
- return null;
- }
-
- protected UpdateConversationOptionsAction(final Parcel in) {
- super(in);
- }
-
- public static final Parcelable.Creator<UpdateConversationOptionsAction> CREATOR
- = new Parcelable.Creator<UpdateConversationOptionsAction>() {
- @Override
- public UpdateConversationOptionsAction createFromParcel(final Parcel in) {
- return new UpdateConversationOptionsAction(in);
- }
-
- @Override
- public UpdateConversationOptionsAction[] newArray(final int size) {
- return new UpdateConversationOptionsAction[size];
- }
- };
-
- @Override
- public void writeToParcel(final Parcel parcel, final int flags) {
- writeActionToParcel(parcel, flags);
- }
-}
diff --git a/src/com/android/messaging/datamodel/data/ContactPickerData.java b/src/com/android/messaging/datamodel/data/ContactPickerData.java
index fd6fca0..bf057db 100644
--- a/src/com/android/messaging/datamodel/data/ContactPickerData.java
+++ b/src/com/android/messaging/datamodel/data/ContactPickerData.java
@@ -96,7 +96,6 @@
if (isBound(cursorLoader.getBindingId())) {
switch (loader.getId()) {
case ALL_CONTACTS_LOADER:
- mListener.onAllContactsCursorUpdated(data);
mFrequentContactsCursorBuilder.setAllContacts(data);
break;
case FREQUENT_CONTACTS_LOADER:
@@ -115,10 +114,14 @@
// all contacts and frequent contacts loader, and we don't know which will finish
// first. Therefore, try to build the cursor and notify the listener if it's
// successfully built.
- final Cursor frequentContactsCursor = mFrequentContactsCursorBuilder.build();
+ final Cursor frequentContactsCursor = mFrequentContactsCursorBuilder.build(false);
if (frequentContactsCursor != null) {
mListener.onFrequentContactsCursorUpdated(frequentContactsCursor);
+
+ final Cursor allContactsCursor = mFrequentContactsCursorBuilder.build(true);
+ mListener.onAllContactsCursorUpdated(allContactsCursor);
}
+
}
} else {
LogUtil.w(LogUtil.BUGLE_TAG, "Loader finished after unbinding the contacts list");
diff --git a/src/com/android/messaging/datamodel/data/ConversationListItemData.java b/src/com/android/messaging/datamodel/data/ConversationListItemData.java
index f627a09..46d4b64 100644
--- a/src/com/android/messaging/datamodel/data/ConversationListItemData.java
+++ b/src/com/android/messaging/datamodel/data/ConversationListItemData.java
@@ -52,9 +52,6 @@
private String mOtherParticipantNormalizedDestination;
private String mSelfId;
private int mParticipantCount;
- private boolean mNotificationEnabled;
- private String mNotificationSoundUri;
- private boolean mNotificationVibrate;
private boolean mIncludeEmailAddress;
private int mMessageStatus;
private int mMessageRawTelephonyStatus;
@@ -92,9 +89,6 @@
INDEX_OTHER_PARTICIPANT_NORMALIZED_DESTINATION);
mSelfId = cursor.getString(INDEX_SELF_ID);
mParticipantCount = cursor.getInt(INDEX_PARTICIPANT_COUNT);
- mNotificationEnabled = cursor.getInt(INDEX_NOTIFICATION_ENABLED) == 1;
- mNotificationSoundUri = cursor.getString(INDEX_NOTIFICATION_SOUND_URI);
- mNotificationVibrate = cursor.getInt(INDEX_NOTIFICATION_VIBRATION) == 1;
mIncludeEmailAddress = cursor.getInt(INDEX_INCLUDE_EMAIL_ADDRESS) == 1;
mMessageStatus = cursor.getInt(INDEX_MESSAGE_STATUS);
mMessageRawTelephonyStatus = cursor.getInt(INDEX_MESSAGE_RAW_TELEPHONY_STATUS);
@@ -199,18 +193,6 @@
return mIncludeEmailAddress;
}
- public boolean getNotificationEnabled() {
- return mNotificationEnabled;
- }
-
- public String getNotificationSoundUri() {
- return mNotificationSoundUri;
- }
-
- public boolean getNotifiationVibrate() {
- return mNotificationVibrate;
- }
-
public final boolean getIsFailedStatus() {
return (mMessageStatus == MessageData.BUGLE_STATUS_OUTGOING_FAILED ||
mMessageStatus == MessageData.BUGLE_STATUS_OUTGOING_FAILED_EMERGENCY_NUMBER ||
@@ -328,12 +310,6 @@
+ " as " + ConversationListViewColumns.PREVIEW_CONTENT_TYPE + ", "
+ DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.PARTICIPANT_COUNT
+ " as " + ConversationListViewColumns.PARTICIPANT_COUNT + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.NOTIFICATION_ENABLED
- + " as " + ConversationListViewColumns.NOTIFICATION_ENABLED + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.NOTIFICATION_SOUND_URI
- + " as " + ConversationListViewColumns.NOTIFICATION_SOUND_URI + ", "
- + DatabaseHelper.CONVERSATIONS_TABLE + '.' + ConversationColumns.NOTIFICATION_VIBRATION
- + " as " + ConversationListViewColumns.NOTIFICATION_VIBRATION + ", "
+ DatabaseHelper.CONVERSATIONS_TABLE + '.' +
ConversationColumns.INCLUDE_EMAIL_ADDRESS
+ " as " + ConversationListViewColumns.INCLUDE_EMAIL_ADDRESS + ", "
@@ -396,9 +372,6 @@
ConversationColumns.OTHER_PARTICIPANT_NORMALIZED_DESTINATION;
static final String CURRENT_SELF_ID = ConversationColumns.CURRENT_SELF_ID;
static final String PARTICIPANT_COUNT = ConversationColumns.PARTICIPANT_COUNT;
- static final String NOTIFICATION_ENABLED = ConversationColumns.NOTIFICATION_ENABLED;
- static final String NOTIFICATION_SOUND_URI = ConversationColumns.NOTIFICATION_SOUND_URI;
- static final String NOTIFICATION_VIBRATION = ConversationColumns.NOTIFICATION_VIBRATION;
static final String INCLUDE_EMAIL_ADDRESS =
ConversationColumns.INCLUDE_EMAIL_ADDRESS;
static final String MESSAGE_STATUS = MessageColumns.STATUS;
@@ -424,9 +397,6 @@
ConversationListViewColumns.OTHER_PARTICIPANT_NORMALIZED_DESTINATION,
ConversationListViewColumns.PARTICIPANT_COUNT,
ConversationListViewColumns.CURRENT_SELF_ID,
- ConversationListViewColumns.NOTIFICATION_ENABLED,
- ConversationListViewColumns.NOTIFICATION_SOUND_URI,
- ConversationListViewColumns.NOTIFICATION_VIBRATION,
ConversationListViewColumns.INCLUDE_EMAIL_ADDRESS,
ConversationListViewColumns.MESSAGE_STATUS,
ConversationListViewColumns.SHOW_DRAFT,
@@ -456,23 +426,20 @@
private static final int INDEX_OTHER_PARTICIPANT_NORMALIZED_DESTINATION = 10;
private static final int INDEX_PARTICIPANT_COUNT = 11;
private static final int INDEX_SELF_ID = 12;
- private static final int INDEX_NOTIFICATION_ENABLED = 13;
- private static final int INDEX_NOTIFICATION_SOUND_URI = 14;
- private static final int INDEX_NOTIFICATION_VIBRATION = 15;
- private static final int INDEX_INCLUDE_EMAIL_ADDRESS = 16;
- private static final int INDEX_MESSAGE_STATUS = 17;
- private static final int INDEX_SHOW_DRAFT = 18;
- private static final int INDEX_DRAFT_PREVIEW_URI = 19;
- private static final int INDEX_DRAFT_PREVIEW_CONTENT_TYPE = 20;
- private static final int INDEX_DRAFT_SNIPPET_TEXT = 21;
- private static final int INDEX_ARCHIVE_STATUS = 22;
- private static final int INDEX_MESSAGE_ID = 23;
- private static final int INDEX_SUBJECT_TEXT = 24;
- private static final int INDEX_DRAFT_SUBJECT_TEXT = 25;
- private static final int INDEX_MESSAGE_RAW_TELEPHONY_STATUS = 26;
- private static final int INDEX_SNIPPET_SENDER_FIRST_NAME = 27;
- private static final int INDEX_SNIPPET_SENDER_DISPLAY_DESTINATION = 28;
- private static final int INDEX_IS_ENTERPRISE = 29;
+ private static final int INDEX_INCLUDE_EMAIL_ADDRESS = 13;
+ private static final int INDEX_MESSAGE_STATUS = 14;
+ private static final int INDEX_SHOW_DRAFT = 15;
+ private static final int INDEX_DRAFT_PREVIEW_URI = 16;
+ private static final int INDEX_DRAFT_PREVIEW_CONTENT_TYPE = 17;
+ private static final int INDEX_DRAFT_SNIPPET_TEXT = 18;
+ private static final int INDEX_ARCHIVE_STATUS = 19;
+ private static final int INDEX_MESSAGE_ID = 20;
+ private static final int INDEX_SUBJECT_TEXT = 21;
+ private static final int INDEX_DRAFT_SUBJECT_TEXT = 22;
+ private static final int INDEX_MESSAGE_RAW_TELEPHONY_STATUS = 23;
+ private static final int INDEX_SNIPPET_SENDER_FIRST_NAME = 24;
+ private static final int INDEX_SNIPPET_SENDER_DISPLAY_DESTINATION = 25;
+ private static final int INDEX_IS_ENTERPRISE = 26;
private static final String DIVIDER_TEXT = ", ";
diff --git a/src/com/android/messaging/datamodel/data/PeopleAndOptionsData.java b/src/com/android/messaging/datamodel/data/PeopleAndOptionsData.java
index 650a037..b8b4a41 100644
--- a/src/com/android/messaging/datamodel/data/PeopleAndOptionsData.java
+++ b/src/com/android/messaging/datamodel/data/PeopleAndOptionsData.java
@@ -26,7 +26,6 @@
import com.android.messaging.datamodel.BoundCursorLoader;
import com.android.messaging.datamodel.MessagingContentProvider;
import com.android.messaging.datamodel.action.BugleActionToasts;
-import com.android.messaging.datamodel.action.UpdateConversationOptionsAction;
import com.android.messaging.datamodel.action.UpdateDestinationBlockedAction;
import com.android.messaging.datamodel.binding.BindableData;
import com.android.messaging.datamodel.binding.BindingBase;
@@ -74,7 +73,7 @@
final Uri uri =
MessagingContentProvider.buildConversationMetadataUri(mConversationId);
return new BoundCursorLoader(bindingId, mContext, uri,
- PeopleOptionsItemData.PROJECTION, null, null, null);
+ new String[]{}, null, null, null);
}
case PARTICIPANT_LOADER: {
@@ -169,33 +168,6 @@
}
}
- public void enableConversationNotifications(final BindingBase<PeopleAndOptionsData> binding,
- final boolean enable) {
- final String bindingId = binding.getBindingId();
- if (isBound(bindingId)) {
- UpdateConversationOptionsAction.enableConversationNotifications(
- mConversationId, enable);
- }
- }
-
- public void setConversationNotificationSound(final BindingBase<PeopleAndOptionsData> binding,
- final String ringtoneUri) {
- final String bindingId = binding.getBindingId();
- if (isBound(bindingId)) {
- UpdateConversationOptionsAction.setConversationNotificationSound(mConversationId,
- ringtoneUri);
- }
- }
-
- public void enableConversationNotificationVibration(
- final BindingBase<PeopleAndOptionsData> binding, final boolean enable) {
- final String bindingId = binding.getBindingId();
- if (isBound(bindingId)) {
- UpdateConversationOptionsAction.enableVibrationForConversationNotification(
- mConversationId, enable);
- }
- }
-
public void setDestinationBlocked(final BindingBase<PeopleAndOptionsData> binding,
final boolean blocked) {
final String bindingId = binding.getBindingId();
@@ -207,4 +179,8 @@
BugleActionToasts.makeUpdateDestinationBlockedActionListener(mContext));
}
}
+
+ public String getConversationId() {
+ return mConversationId;
+ }
}
diff --git a/src/com/android/messaging/datamodel/data/PeopleOptionsItemData.java b/src/com/android/messaging/datamodel/data/PeopleOptionsItemData.java
index 5af6a30..7441afc 100644
--- a/src/com/android/messaging/datamodel/data/PeopleOptionsItemData.java
+++ b/src/com/android/messaging/datamodel/data/PeopleOptionsItemData.java
@@ -17,44 +17,19 @@
import android.content.Context;
import android.database.Cursor;
-import android.media.Ringtone;
-import android.media.RingtoneManager;
import android.net.Uri;
import com.android.messaging.R;
import com.android.messaging.datamodel.data.ConversationListItemData.ConversationListViewColumns;
import com.android.messaging.util.Assert;
-import com.android.messaging.util.RingtoneUtil;
public class PeopleOptionsItemData {
- public static final String[] PROJECTION = {
- ConversationListViewColumns.NOTIFICATION_ENABLED,
- ConversationListViewColumns.NOTIFICATION_SOUND_URI,
- ConversationListViewColumns.NOTIFICATION_VIBRATION,
- };
-
- // Column index for query projection.
- private static final int INDEX_NOTIFICATION_ENABLED = 0;
- private static final int INDEX_NOTIFICATION_SOUND_URI = 1;
- private static final int INDEX_NOTIFICATION_VIBRATION = 2;
-
// Identification for each setting that's surfaced to the UI layer.
- public static final int SETTING_NOTIFICATION_ENABLED = 0;
- public static final int SETTING_NOTIFICATION_SOUND_URI = 1;
- public static final int SETTING_NOTIFICATION_VIBRATION = 2;
- public static final int SETTING_BLOCKED = 3;
- public static final int SETTINGS_COUNT = 4;
-
- // Type of UI switch to show for the toggle button.
- public static final int TOGGLE_TYPE_CHECKBOX = 0;
- public static final int TOGGLE_TYPE_SWITCH = 1;
+ public static final int SETTING_NOTIFICATION = 0;
+ public static final int SETTING_BLOCKED = 1;
+ public static final int SETTINGS_COUNT = 2;
private String mTitle;
- private String mSubtitle;
- private Uri mRingtoneUri;
- private boolean mCheckable;
- private boolean mChecked;
- private boolean mEnabled;
private int mItemId;
private ParticipantData mOtherParticipant;
@@ -71,41 +46,12 @@
*/
public void bind(
final Cursor cursor, final ParticipantData otherParticipant, final int settingType) {
- mSubtitle = null;
- mRingtoneUri = null;
- mCheckable = true;
- mEnabled = true;
mItemId = settingType;
mOtherParticipant = otherParticipant;
- final boolean notificationEnabled = cursor.getInt(INDEX_NOTIFICATION_ENABLED) == 1;
switch (settingType) {
- case SETTING_NOTIFICATION_ENABLED:
+ case SETTING_NOTIFICATION:
mTitle = mContext.getString(R.string.notifications_enabled_conversation_pref_title);
- mChecked = notificationEnabled;
- break;
-
- case SETTING_NOTIFICATION_SOUND_URI:
- mTitle = mContext.getString(R.string.notification_sound_pref_title);
- final String ringtoneString = cursor.getString(INDEX_NOTIFICATION_SOUND_URI);
- Uri ringtoneUri = RingtoneUtil.getNotificationRingtoneUri(ringtoneString);
-
- mSubtitle = mContext.getString(R.string.silent_ringtone);
- if (ringtoneUri != null) {
- final Ringtone ringtone = RingtoneManager.getRingtone(mContext, ringtoneUri);
- if (ringtone != null) {
- mSubtitle = ringtone.getTitle(mContext);
- }
- }
- mCheckable = false;
- mRingtoneUri = ringtoneUri;
- mEnabled = notificationEnabled;
- break;
-
- case SETTING_NOTIFICATION_VIBRATION:
- mTitle = mContext.getString(R.string.notification_vibrate_pref_title);
- mChecked = cursor.getInt(INDEX_NOTIFICATION_VIBRATION) == 1;
- mEnabled = notificationEnabled;
break;
case SETTING_BLOCKED:
@@ -113,7 +59,6 @@
final int resourceId = otherParticipant.isBlocked() ?
R.string.unblock_contact_title : R.string.block_contact_title;
mTitle = mContext.getString(resourceId, otherParticipant.getDisplayDestination());
- mCheckable = false;
break;
default:
@@ -125,30 +70,10 @@
return mTitle;
}
- public String getSubtitle() {
- return mSubtitle;
- }
-
- public boolean getCheckable() {
- return mCheckable;
- }
-
- public boolean getChecked() {
- return mChecked;
- }
-
- public boolean getEnabled() {
- return mEnabled;
- }
-
public int getItemId() {
return mItemId;
}
- public Uri getRingtoneUri() {
- return mRingtoneUri;
- }
-
public ParticipantData getOtherParticipant() {
return mOtherParticipant;
}
diff --git a/src/com/android/messaging/datamodel/media/AvatarRequest.java b/src/com/android/messaging/datamodel/media/AvatarRequest.java
index 6a738c7..dea467f 100644
--- a/src/com/android/messaging/datamodel/media/AvatarRequest.java
+++ b/src/com/android/messaging/datamodel/media/AvatarRequest.java
@@ -17,6 +17,7 @@
import android.content.Context;
import android.content.res.Resources;
+import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Matrix;
@@ -42,10 +43,12 @@
public class AvatarRequest extends UriImageRequest<AvatarRequestDescriptor> {
private static Bitmap sDefaultPersonBitmap;
private static Bitmap sDefaultPersonBitmapLarge;
+ private static TypedArray sColors;
public AvatarRequest(final Context context,
final AvatarRequestDescriptor descriptor) {
super(context, descriptor);
+ sColors = context.getResources().obtainTypedArray(R.array.letter_tile_colors);
}
@Override
@@ -106,7 +109,8 @@
avatarType = AvatarUriUtil.getAvatarType(generatedUri);
if (AvatarUriUtil.TYPE_LETTER_TILE_URI.equals(avatarType)) {
final String name = AvatarUriUtil.getName(generatedUri);
- bitmap = renderLetterTile(name, width, height);
+ final String identifier = AvatarUriUtil.getIdentifier(generatedUri);
+ bitmap = renderLetterTile(name, identifier, width, height);
} else {
bitmap = renderDefaultAvatar(width, height);
}
@@ -153,12 +157,12 @@
return bitmap;
}
- private Bitmap renderLetterTile(final String name, final int width, final int height) {
+ private Bitmap renderLetterTile(final String name, final String identifier, final int width, final int height) {
final float halfWidth = width / 2;
final float halfHeight = height / 2;
final int minOfWidthAndHeight = Math.min(width, height);
final Bitmap bitmap = getBitmapPool().createOrReuseBitmap(width, height,
- getBackgroundColor());
+ getBackgroundColor(identifier));
final Resources resources = mContext.getResources();
final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setTypeface(Typeface.create("sans-serif-medium", Typeface.NORMAL));
@@ -186,4 +190,9 @@
public int getCacheId() {
return BugleMediaCacheManager.AVATAR_IMAGE_CACHE;
}
+
+ private int getBackgroundColor(String identifier) {
+ final int color = Math.abs(identifier.hashCode()) % sColors.length();
+ return sColors.getColor(color, mContext.getResources().getColor(R.color.primary_color));
+ }
}
diff --git a/src/com/android/messaging/receiver/NotificationReceiver.java b/src/com/android/messaging/receiver/NotificationReceiver.java
index bbb847d..f87779c 100644
--- a/src/com/android/messaging/receiver/NotificationReceiver.java
+++ b/src/com/android/messaging/receiver/NotificationReceiver.java
@@ -20,6 +20,7 @@
import android.content.Intent;
import com.android.messaging.datamodel.BugleNotifications;
+import com.android.messaging.datamodel.action.MarkAsReadAction;
import com.android.messaging.datamodel.action.MarkAsSeenAction;
import com.android.messaging.ui.UIIntents;
import com.android.messaging.util.ConversationIdSet;
@@ -52,6 +53,15 @@
BugleNotifications.resetLastMessageDing(conversationId);
}
}
+ } else if (intent.getAction().equals(UIIntents.ACTION_MARK_AS_READ)) {
+ final String conversationIdSetString =
+ intent.getStringExtra(UIIntents.UI_INTENT_EXTRA_CONVERSATION_ID_SET);
+ if (conversationIdSetString != null) {
+ for (final String conversationId :
+ ConversationIdSet.createSet(conversationIdSetString)) {
+ MarkAsReadAction.markAsRead(conversationId);
+ }
+ }
}
}
-}
\ No newline at end of file
+}
diff --git a/src/com/android/messaging/receiver/SmsReceiver.java b/src/com/android/messaging/receiver/SmsReceiver.java
index f1f9bcd..89a3710 100644
--- a/src/com/android/messaging/receiver/SmsReceiver.java
+++ b/src/com/android/messaging/receiver/SmsReceiver.java
@@ -48,6 +48,7 @@
import com.android.messaging.util.BugleGservicesKeys;
import com.android.messaging.util.DebugUtils;
import com.android.messaging.util.LogUtil;
+import com.android.messaging.util.NotificationsUtil;
import com.android.messaging.util.OsUtil;
import com.android.messaging.util.PendingIntentConstants;
import com.android.messaging.util.PhoneUtils;
@@ -252,11 +253,6 @@
protected Style build(Builder builder) {
return null;
}
-
- @Override
- public boolean getNotificationVibrate() {
- return true;
- }
}
public static void postNewMessageSecondaryUserNotification() {
@@ -265,7 +261,8 @@
final PendingIntent pendingIntent = UIIntents.get()
.getPendingIntentForSecondaryUserNewMessageNotification(context);
- final NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
+ final NotificationCompat.Builder builder = new NotificationCompat.Builder(context,
+ NotificationsUtil.DEFAULT_CHANNEL_ID);
builder.setContentTitle(resources.getString(R.string.secondary_user_new_message_title))
.setTicker(resources.getString(R.string.secondary_user_new_message_ticker))
.setSmallIcon(R.drawable.ic_sms_light)
@@ -282,10 +279,7 @@
final NotificationManagerCompat notificationManager =
NotificationManagerCompat.from(Factory.get().getApplicationContext());
- int defaults = Notification.DEFAULT_LIGHTS;
- if (BugleNotifications.shouldVibrate(new SecondaryUserNotificationState())) {
- defaults |= Notification.DEFAULT_VIBRATE;
- }
+ int defaults = Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE;
notification.defaults = defaults;
notificationManager.notify(getNotificationTag(),
diff --git a/src/com/android/messaging/sms/SmsStorageStatusManager.java b/src/com/android/messaging/sms/SmsStorageStatusManager.java
index 4f03195..6bd68cb 100644
--- a/src/com/android/messaging/sms/SmsStorageStatusManager.java
+++ b/src/com/android/messaging/sms/SmsStorageStatusManager.java
@@ -25,6 +25,7 @@
import com.android.messaging.Factory;
import com.android.messaging.R;
import com.android.messaging.ui.UIIntents;
+import com.android.messaging.util.NotificationsUtil;
import com.android.messaging.util.PendingIntentConstants;
import com.android.messaging.util.PhoneUtils;
@@ -65,7 +66,8 @@
final PendingIntent pendingIntent = UIIntents.get()
.getPendingIntentForLowStorageNotifications(context);
- final NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
+ final NotificationCompat.Builder builder = new NotificationCompat.Builder(context,
+ NotificationsUtil.DEFAULT_CHANNEL_ID);
builder.setContentTitle(resources.getString(R.string.sms_storage_low_title))
.setTicker(resources.getString(R.string.sms_storage_low_notification_ticker))
.setSmallIcon(R.drawable.ic_failed_light)
diff --git a/src/com/android/messaging/ui/BugleActionBarActivity.java b/src/com/android/messaging/ui/BugleActionBarActivity.java
index 42d40fe..24f1c6a 100644
--- a/src/com/android/messaging/ui/BugleActionBarActivity.java
+++ b/src/com/android/messaging/ui/BugleActionBarActivity.java
@@ -349,7 +349,7 @@
mActionMode.getCallback().onPrepareActionMode(mActionMode, mActionBarMenu);
actionBar.setBackgroundDrawable(new ColorDrawable(
getResources().getColor(R.color.contextual_action_bar_background_color)));
- actionBar.setHomeAsUpIndicator(R.drawable.ic_cancel_small_dark);
+ actionBar.setHomeAsUpIndicator(R.drawable.ic_cancel_small);
actionBar.show();
}
}
diff --git a/src/com/android/messaging/ui/ConversationDrawables.java b/src/com/android/messaging/ui/ConversationDrawables.java
index cf858e2..a5654b7 100644
--- a/src/com/android/messaging/ui/ConversationDrawables.java
+++ b/src/com/android/messaging/ui/ConversationDrawables.java
@@ -52,6 +52,7 @@
private int mIncomingAudioButtonColor;
private int mSelectedBubbleColor;
private int mThemeColor;
+ private int mBubbleColor;
public static ConversationDrawables get() {
if (sInstance == null) {
@@ -73,11 +74,11 @@
public void updateDrawables() {
final Resources resources = mContext.getResources();
- mIncomingBubbleDrawable = resources.getDrawable(R.drawable.msg_bubble_incoming);
+ mIncomingBubbleDrawable = resources.getDrawable(R.drawable.msg_bubble_incoming_new);
mIncomingBubbleNoArrowDrawable =
resources.getDrawable(R.drawable.message_bubble_incoming_no_arrow);
mIncomingErrorBubbleDrawable = resources.getDrawable(R.drawable.msg_bubble_error);
- mOutgoingBubbleDrawable = resources.getDrawable(R.drawable.msg_bubble_outgoing);
+ mOutgoingBubbleDrawable = resources.getDrawable(R.drawable.msg_bubble_outgoing_new);
mOutgoingBubbleNoArrowDrawable =
resources.getDrawable(R.drawable.message_bubble_outgoing_no_arrow);
mAudioPlayButtonDrawable = resources.getDrawable(R.drawable.ic_audio_play);
@@ -102,6 +103,7 @@
resources.getColor(R.color.message_audio_button_color_incoming);
mSelectedBubbleColor = resources.getColor(R.color.message_bubble_color_selected);
mThemeColor = resources.getColor(R.color.primary_color);
+ mBubbleColor = resources.getColor(R.color.google_gray);
}
public Drawable getBubbleDrawable(final boolean selected, final boolean incoming,
@@ -127,7 +129,7 @@
if (isError) {
color = mIncomingErrorBubbleColor;
} else {
- color = mThemeColor;
+ color = mBubbleColor;
}
} else {
color = mOutgoingBubbleColor;
diff --git a/src/com/android/messaging/ui/SmsStorageLowWarningFragment.java b/src/com/android/messaging/ui/SmsStorageLowWarningFragment.java
index 3ebfdcf..c89e971 100644
--- a/src/com/android/messaging/ui/SmsStorageLowWarningFragment.java
+++ b/src/com/android/messaging/ui/SmsStorageLowWarningFragment.java
@@ -92,7 +92,8 @@
@Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
- final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+ final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),
+ R.style.BugleThemeDialog);
final LayoutInflater inflater = getActivity().getLayoutInflater();
final View dialogLayout = inflater.inflate(
diff --git a/src/com/android/messaging/ui/UIIntents.java b/src/com/android/messaging/ui/UIIntents.java
index bf5edd7..144e831 100644
--- a/src/com/android/messaging/ui/UIIntents.java
+++ b/src/com/android/messaging/ui/UIIntents.java
@@ -69,10 +69,13 @@
public static final String ACTION_RESET_NOTIFICATIONS =
"com.android.messaging.reset_notifications";
+ public static final String ACTION_MARK_AS_READ =
+ "com.android.messaging.mark_as_read";
+
// Sending VCard uri to VCard detail activity
public static final String UI_INTENT_EXTRA_VCARD_URI = "vcard_uri";
- public static final String CMAS_COMPONENT = "com.android.cellbroadcastreceiver";
+ public static final String CMAS_COMPONENT = "com.android.cellbroadcastreceiver.module";
// Intent action for local broadcast receiver for conversation self id change.
public static final String CONVERSATION_SELF_ID_CHANGE_BROADCAST_ACTION =
@@ -265,16 +268,6 @@
public abstract Intent getViewUrlIntent(final String url);
/**
- * Get an intent to launch the ringtone picker
- * @param title the title to show in the ringtone picker
- * @param existingUri the currently set uri
- * @param defaultUri the default uri if none is currently set
- * @param toneType type of ringtone to pick, maybe any of RingtoneManager.TYPE_*
- */
- public abstract Intent getRingtonePickerIntent(final String title, final Uri existingUri,
- final Uri defaultUri, final int toneType);
-
- /**
* Get an intent to launch the wireless alert viewer.
*/
public abstract Intent getWirelessAlertsIntent();
@@ -334,6 +327,14 @@
final int requestCode);
/**
+ * Get a PendingIntent for marking a conversation as read.
+ *
+ * <p>This is intended to be used by notifications.
+ */
+ public abstract PendingIntent getPendingIntentForMarkingAsRead(final Context context,
+ final ConversationIdSet conversationIdSet, final int requestCode);
+
+ /**
* Get a PendingIntent for showing low storage notifications.
*/
public abstract PendingIntent getPendingIntentForLowStorageNotifications(final Context context);
diff --git a/src/com/android/messaging/ui/UIIntentsImpl.java b/src/com/android/messaging/ui/UIIntentsImpl.java
index 8a1224a..0fabfdd 100644
--- a/src/com/android/messaging/ui/UIIntentsImpl.java
+++ b/src/com/android/messaging/ui/UIIntentsImpl.java
@@ -18,6 +18,7 @@
import android.app.Activity;
import android.app.Fragment;
import android.app.PendingIntent;
+import android.app.role.RoleManager;
import android.appwidget.AppWidgetManager;
import android.content.ActivityNotFoundException;
import android.content.ClipData;
@@ -27,7 +28,6 @@
import android.content.Intent;
import android.graphics.Point;
import android.graphics.Rect;
-import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract.Contacts;
@@ -431,6 +431,20 @@
PendingIntent.FLAG_UPDATE_CURRENT);
}
+ @Override
+ public PendingIntent getPendingIntentForMarkingAsRead(final Context context,
+ final ConversationIdSet conversationIdSet, final int requestCode) {
+ final Intent intent = new Intent(context, NotificationReceiver.class);
+ intent.setAction(ACTION_MARK_AS_READ);
+ if (conversationIdSet != null) {
+ intent.putExtra(UI_INTENT_EXTRA_CONVERSATION_ID_SET,
+ conversationIdSet.getDelimitedString());
+ }
+ return PendingIntent.getBroadcast(context,
+ requestCode, intent,
+ PendingIntent.FLAG_UPDATE_CURRENT);
+ }
+
/**
* Gets a PendingIntent associated with an Intent to start an Activity. All notifications
* that starts an Activity must use this method to get a PendingIntent, which achieves two
@@ -451,16 +465,6 @@
}
@Override
- public Intent getRingtonePickerIntent(final String title, final Uri existingUri,
- final Uri defaultUri, final int toneType) {
- return new Intent(RingtoneManager.ACTION_RINGTONE_PICKER)
- .putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, toneType)
- .putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, title)
- .putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, existingUri)
- .putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, defaultUri);
- }
-
- @Override
public PendingIntent getPendingIntentForLowStorageNotifications(final Context context) {
final TaskStackBuilder taskStackBuilder = TaskStackBuilder.create(context);
final Intent conversationListIntent = getConversationListActivityIntent(context);
@@ -508,9 +512,8 @@
@Override
public Intent getChangeDefaultSmsAppIntent(final Activity activity) {
- final Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
- intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, activity.getPackageName());
- return intent;
+ RoleManager roleManager = activity.getSystemService(RoleManager.class);
+ return roleManager.createRequestRoleIntent(RoleManager.ROLE_SMS);
}
@Override
diff --git a/src/com/android/messaging/ui/VCardDetailActivity.java b/src/com/android/messaging/ui/VCardDetailActivity.java
index b9fb3d1..cacfda5 100644
--- a/src/com/android/messaging/ui/VCardDetailActivity.java
+++ b/src/com/android/messaging/ui/VCardDetailActivity.java
@@ -38,11 +38,11 @@
@Override
public void onAttachFragment(final Fragment fragment) {
if (fragment instanceof VCardDetailFragment) {
- final Uri vCardUri =
- getIntent().getParcelableExtra(UIIntents.UI_INTENT_EXTRA_VCARD_URI);
- Assert.notNull(vCardUri);
- final VCardDetailFragment vCardDetailFragment = (VCardDetailFragment) fragment;
- vCardDetailFragment.setVCardUri(vCardUri);
+ final Uri vCardUri = getIntent().getParcelableExtra(UIIntents.UI_INTENT_EXTRA_VCARD_URI);
+ if (vCardUri != null) {
+ final VCardDetailFragment vCardDetailFragment = (VCardDetailFragment) fragment;
+ vCardDetailFragment.setVCardUri(vCardUri);
+ }
}
}
diff --git a/src/com/android/messaging/ui/appsettings/ApnEditorActivity.java b/src/com/android/messaging/ui/appsettings/ApnEditorActivity.java
index 5d19a83..322c760 100644
--- a/src/com/android/messaging/ui/appsettings/ApnEditorActivity.java
+++ b/src/com/android/messaging/ui/appsettings/ApnEditorActivity.java
@@ -25,9 +25,9 @@
import android.database.sqlite.SQLiteDatabase;
import android.os.AsyncTask;
import android.os.Bundle;
-import android.preference.EditTextPreference;
-import android.preference.Preference;
-import android.preference.PreferenceFragment;
+import androidx.preference.EditTextPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragment;
import android.provider.Telephony;
import androidx.core.app.NavUtils;
import android.view.KeyEvent;
@@ -175,9 +175,7 @@
}
@Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
-
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.apn_editor);
setHasOptionsMenu(true);
@@ -301,7 +299,7 @@
// If it's a new APN, then cancel will delete the new entry in onPause
if (!mNewApn) {
menu.add(0, MENU_DELETE, 0, R.string.menu_delete_apn)
- .setIcon(R.drawable.ic_delete_small_dark);
+ .setIcon(R.drawable.ic_delete_small);
}
menu.add(0, MENU_SAVE, 0, R.string.menu_save_apn)
.setIcon(android.R.drawable.ic_menu_save);
diff --git a/src/com/android/messaging/ui/appsettings/ApnPreference.java b/src/com/android/messaging/ui/appsettings/ApnPreference.java
index 64358eb..0d7d947 100644
--- a/src/com/android/messaging/ui/appsettings/ApnPreference.java
+++ b/src/com/android/messaging/ui/appsettings/ApnPreference.java
@@ -17,7 +17,6 @@
package com.android.messaging.ui.appsettings;
import android.content.Context;
-import android.preference.Preference;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
@@ -27,6 +26,10 @@
import android.widget.RadioButton;
import android.widget.RelativeLayout;
+import androidx.annotation.NonNull;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
import com.android.messaging.R;
import com.android.messaging.datamodel.data.ParticipantData;
import com.android.messaging.ui.UIIntents;
@@ -59,9 +62,9 @@
private int mSubId = ParticipantData.DEFAULT_SELF_SUB_ID;
@Override
- public View getView(View convertView, ViewGroup parent) {
- View view = super.getView(convertView, parent);
-
+ public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+ View view = holder.itemView;
View widget = view.findViewById(R.id.apn_radiobutton);
if ((widget != null) && widget instanceof RadioButton) {
RadioButton rb = (RadioButton) widget;
@@ -87,8 +90,6 @@
if ((textLayout != null) && textLayout instanceof RelativeLayout) {
textLayout.setOnClickListener(this);
}
-
- return view;
}
public boolean isChecked() {
diff --git a/src/com/android/messaging/ui/appsettings/ApnSettingsActivity.java b/src/com/android/messaging/ui/appsettings/ApnSettingsActivity.java
index 13f775a..10fb997 100644
--- a/src/com/android/messaging/ui/appsettings/ApnSettingsActivity.java
+++ b/src/com/android/messaging/ui/appsettings/ApnSettingsActivity.java
@@ -30,10 +30,10 @@
import android.os.Looper;
import android.os.Message;
import android.os.UserManager;
-import android.preference.Preference;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceGroup;
-import android.preference.PreferenceScreen;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragment;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.PreferenceScreen;
import android.provider.Telephony;
import androidx.core.app.NavUtils;
import android.view.Menu;
@@ -162,9 +162,7 @@
}
@Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
-
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
final ListView lv = (ListView) getView().findViewById(android.R.id.list);
TextView empty = (TextView) getView().findViewById(android.R.id.empty);
if (empty != null) {
@@ -303,8 +301,7 @@
}
@Override
- public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
- Preference preference) {
+ public boolean onPreferenceTreeClick(Preference preference) {
startActivity(
UIIntents.get().getApnEditorIntent(getActivity(), preference.getKey(), mSubId));
return true;
diff --git a/src/com/android/messaging/ui/appsettings/ApplicationSettingsActivity.java b/src/com/android/messaging/ui/appsettings/ApplicationSettingsActivity.java
index d7abe85..e8e7f88 100644
--- a/src/com/android/messaging/ui/appsettings/ApplicationSettingsActivity.java
+++ b/src/com/android/messaging/ui/appsettings/ApplicationSettingsActivity.java
@@ -17,18 +17,14 @@
package com.android.messaging.ui.appsettings;
import android.app.FragmentTransaction;
+import android.app.role.RoleManager;
import android.content.Intent;
-import android.content.SharedPreferences;
-import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
-import android.media.Ringtone;
-import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
-import android.preference.Preference;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceScreen;
-import android.preference.RingtonePreference;
-import android.preference.TwoStatePreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
import android.provider.Settings;
import androidx.core.app.NavUtils;
import android.text.TextUtils;
@@ -55,10 +51,8 @@
if (topLevel) {
getSupportActionBar().setTitle(getString(R.string.settings_activity_title));
}
-
- FragmentTransaction ft = getFragmentManager().beginTransaction();
- ft.replace(android.R.id.content, new ApplicationSettingsFragment());
- ft.commit();
+ getWindow().getDecorView().setBackgroundColor(getColor(R.color.contextual_action_bar_background_color));
+ getSupportFragmentManager().beginTransaction().replace(android.R.id.content, new ApplicationSettingsFragment()).commit();
}
@Override
@@ -84,47 +78,34 @@
return super.onOptionsItemSelected(item);
}
- public static class ApplicationSettingsFragment extends PreferenceFragment implements
- OnSharedPreferenceChangeListener {
+ public static class ApplicationSettingsFragment extends PreferenceFragmentCompat {
- private String mNotificationsEnabledPreferenceKey;
- private TwoStatePreference mNotificationsEnabledPreference;
- private String mRingtonePreferenceKey;
- private RingtonePreference mRingtonePreference;
- private Preference mVibratePreference;
- private String mSmsDisabledPrefKey;
- private Preference mSmsDisabledPreference;
+ private String mNotificationsPreferenceKey;
+ private Preference mNotificationsPreference;
private String mSmsEnabledPrefKey;
private Preference mSmsEnabledPreference;
- private boolean mIsSmsPreferenceClicked;
+ private String mSwipeRightToDeleteConversationkey;
+ private SwitchPreference mSwipeRightToDeleteConversationPreference;
public ApplicationSettingsFragment() {
// Required empty constructor
}
@Override
- public void onCreate(final Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
getPreferenceManager().setSharedPreferencesName(BuglePrefs.SHARED_PREFERENCES_NAME);
addPreferencesFromResource(R.xml.preferences_application);
- mNotificationsEnabledPreferenceKey =
- getString(R.string.notifications_enabled_pref_key);
- mNotificationsEnabledPreference = (TwoStatePreference) findPreference(
- mNotificationsEnabledPreferenceKey);
- mRingtonePreferenceKey = getString(R.string.notification_sound_pref_key);
- mRingtonePreference = (RingtonePreference) findPreference(mRingtonePreferenceKey);
- mVibratePreference = findPreference(
- getString(R.string.notification_vibration_pref_key));
- mSmsDisabledPrefKey = getString(R.string.sms_disabled_pref_key);
- mSmsDisabledPreference = findPreference(mSmsDisabledPrefKey);
+ mNotificationsPreferenceKey =
+ getString(R.string.notifications_pref_key);
+ mNotificationsPreference = findPreference(mNotificationsPreferenceKey);
mSmsEnabledPrefKey = getString(R.string.sms_enabled_pref_key);
mSmsEnabledPreference = findPreference(mSmsEnabledPrefKey);
- mIsSmsPreferenceClicked = false;
-
- final SharedPreferences prefs = getPreferenceScreen().getSharedPreferences();
- updateSoundSummary(prefs);
+ mSwipeRightToDeleteConversationkey = getString(
+ R.string.swipe_right_deletes_conversation_key);
+ mSwipeRightToDeleteConversationPreference =
+ (SwitchPreference) findPreference(mSwipeRightToDeleteConversationkey);
if (!DebugUtils.isDebugEnabled()) {
final Preference debugCategory = findPreference(getString(
@@ -147,116 +128,36 @@
}
@Override
- public boolean onPreferenceTreeClick (PreferenceScreen preferenceScreen,
- Preference preference) {
- if (preference.getKey() == mSmsDisabledPrefKey ||
- preference.getKey() == mSmsEnabledPrefKey) {
- mIsSmsPreferenceClicked = true;
+ public boolean onPreferenceTreeClick(Preference preference) {
+ if (preference.getKey() == mNotificationsPreferenceKey) {
+ Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
+ intent.putExtra(Settings.EXTRA_APP_PACKAGE, getContext().getPackageName());
+ startActivity(intent);
+ return true;
+ } if (preference.getKey() == mSmsEnabledPrefKey) {
+ Intent intent = new Intent("android.intent.action.MANAGE_DEFAULT_APP");
+ intent.putExtra("android.intent.extra.ROLE_NAME", RoleManager.ROLE_SMS);
+ startActivity(intent);
+ return true;
}
- return super.onPreferenceTreeClick(preferenceScreen, preference);
- }
-
- private void updateSoundSummary(final SharedPreferences sharedPreferences) {
- // The silent ringtone just returns an empty string
- String ringtoneName = mRingtonePreference.getContext().getString(
- R.string.silent_ringtone);
-
- String ringtoneString = sharedPreferences.getString(mRingtonePreferenceKey, null);
-
- // Bootstrap the default setting in the preferences so that we have a valid selection
- // in the dialog the first time that the user opens it.
- if (ringtoneString == null) {
- ringtoneString = Settings.System.DEFAULT_NOTIFICATION_URI.toString();
- final SharedPreferences.Editor editor = sharedPreferences.edit();
- editor.putString(mRingtonePreferenceKey, ringtoneString);
- editor.apply();
- }
-
- if (!TextUtils.isEmpty(ringtoneString)) {
- final Uri ringtoneUri = Uri.parse(ringtoneString);
- final Ringtone tone = RingtoneManager.getRingtone(mRingtonePreference.getContext(),
- ringtoneUri);
-
- if (tone != null) {
- ringtoneName = tone.getTitle(mRingtonePreference.getContext());
- }
- }
-
- mRingtonePreference.setSummary(ringtoneName);
+ return super.onPreferenceTreeClick(preference);
}
private void updateSmsEnabledPreferences() {
if (!OsUtil.isAtLeastKLP()) {
- getPreferenceScreen().removePreference(mSmsDisabledPreference);
getPreferenceScreen().removePreference(mSmsEnabledPreference);
} else {
final String defaultSmsAppLabel = getString(R.string.default_sms_app,
PhoneUtils.getDefault().getDefaultSmsAppLabel());
- boolean isSmsEnabledBeforeState;
- boolean isSmsEnabledCurrentState;
- if (PhoneUtils.getDefault().isDefaultSmsApp()) {
- if (getPreferenceScreen().findPreference(mSmsEnabledPrefKey) == null) {
- getPreferenceScreen().addPreference(mSmsEnabledPreference);
- isSmsEnabledBeforeState = false;
- } else {
- isSmsEnabledBeforeState = true;
- }
- isSmsEnabledCurrentState = true;
- getPreferenceScreen().removePreference(mSmsDisabledPreference);
- mSmsEnabledPreference.setSummary(defaultSmsAppLabel);
- } else {
- if (getPreferenceScreen().findPreference(mSmsDisabledPrefKey) == null) {
- getPreferenceScreen().addPreference(mSmsDisabledPreference);
- isSmsEnabledBeforeState = true;
- } else {
- isSmsEnabledBeforeState = false;
- }
- isSmsEnabledCurrentState = false;
- getPreferenceScreen().removePreference(mSmsEnabledPreference);
- mSmsDisabledPreference.setSummary(defaultSmsAppLabel);
- }
- updateNotificationsPreferences();
+ boolean isSmsEnabledCurrentState = PhoneUtils.getDefault().isDefaultSmsApp();
+ mSmsEnabledPreference.setSummary(isSmsEnabledCurrentState ? getString(R.string.value_yes) : getString(R.string.value_no));
}
- mIsSmsPreferenceClicked = false;
- }
-
- private void updateNotificationsPreferences() {
- final boolean canNotify = !OsUtil.isAtLeastKLP()
- || PhoneUtils.getDefault().isDefaultSmsApp();
- mNotificationsEnabledPreference.setEnabled(canNotify);
- }
-
- @Override
- public void onStart() {
- super.onStart();
- // We do this on start rather than on resume because the sound picker is in a
- // separate activity.
- getPreferenceScreen().getSharedPreferences()
- .registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onResume() {
super.onResume();
updateSmsEnabledPreferences();
- updateNotificationsPreferences();
- }
-
- @Override
- public void onSharedPreferenceChanged(final SharedPreferences sharedPreferences,
- final String key) {
- if (key.equals(mNotificationsEnabledPreferenceKey)) {
- updateNotificationsPreferences();
- } else if (key.equals(mRingtonePreferenceKey)) {
- updateSoundSummary(sharedPreferences);
- }
- }
-
- @Override
- public void onStop() {
- super.onStop();
- getPreferenceScreen().getSharedPreferences()
- .unregisterOnSharedPreferenceChangeListener(this);
}
}
}
diff --git a/src/com/android/messaging/ui/appsettings/GroupMmsSettingDialog.java b/src/com/android/messaging/ui/appsettings/GroupMmsSettingDialog.java
index 739d2dc..7db5fb8 100644
--- a/src/com/android/messaging/ui/appsettings/GroupMmsSettingDialog.java
+++ b/src/com/android/messaging/ui/appsettings/GroupMmsSettingDialog.java
@@ -48,7 +48,7 @@
private void show() {
Assert.isNull(mDialog);
- mDialog = new AlertDialog.Builder(mContext)
+ mDialog = new AlertDialog.Builder(mContext, R.style.BugleThemeDialog)
.setView(createView())
.setTitle(R.string.group_mms_pref_title)
.setNegativeButton(android.R.string.cancel, null)
diff --git a/src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java b/src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java
index c2fd473..03b0f6e 100644
--- a/src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java
+++ b/src/com/android/messaging/ui/appsettings/PerSubscriptionSettingsActivity.java
@@ -23,16 +23,21 @@
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.content.pm.PackageManager;
import android.os.Bundle;
-import android.preference.Preference;
-import android.preference.Preference.OnPreferenceClickListener;
-import android.preference.PreferenceCategory;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceScreen;
+import android.text.InputType;
import android.text.TextUtils;
+import android.util.Log;
import android.view.MenuItem;
+import android.widget.EditText;
+import androidx.annotation.NonNull;
import androidx.appcompat.mms.MmsManager;
import androidx.core.app.NavUtils;
+import androidx.preference.EditTextPreference;
+import androidx.preference.Preference;
+import androidx.preference.Preference.OnPreferenceClickListener;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.PreferenceScreen;
import com.android.messaging.Factory;
import com.android.messaging.R;
@@ -61,11 +66,8 @@
} else {
// This will fall back to the default title, i.e. "Messaging settings," so No-op.
}
-
- final FragmentTransaction ft = getFragmentManager().beginTransaction();
- final PerSubscriptionSettingsFragment fragment = new PerSubscriptionSettingsFragment();
- ft.replace(android.R.id.content, fragment);
- ft.commit();
+ getWindow().getDecorView().setBackgroundColor(getColor(R.color.contextual_action_bar_background_color));
+ getSupportFragmentManager().beginTransaction().replace(android.R.id.content, new PerSubscriptionSettingsFragment()).commit();
}
@Override
@@ -78,7 +80,7 @@
return super.onOptionsItemSelected(item);
}
- public static class PerSubscriptionSettingsFragment extends PreferenceFragment
+ public static class PerSubscriptionSettingsFragment extends PreferenceFragmentCompat
implements OnSharedPreferenceChangeListener {
private PhoneNumberPreference mPhoneNumberPreference;
private Preference mGroupMmsPreference;
@@ -91,8 +93,7 @@
}
@Override
- public void onCreate(final Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
// Get sub id from launch intent
final Intent intent = getActivity().getIntent();
@@ -113,6 +114,7 @@
mPhoneNumberPreference.setDefaultPhoneNumber(
PhoneUtils.get(mSubId).getCanonicalForSelf(false/*allowOverride*/), mSubId);
+ mPhoneNumberPreference.updateSummary();
mGroupMmsPrefKey = getString(R.string.group_mms_pref_key);
mGroupMmsPreference = findPreference(mGroupMmsPrefKey);
diff --git a/src/com/android/messaging/ui/appsettings/PhoneNumberPreference.java b/src/com/android/messaging/ui/appsettings/PhoneNumberPreference.java
index 42ef606..82af8fa 100644
--- a/src/com/android/messaging/ui/appsettings/PhoneNumberPreference.java
+++ b/src/com/android/messaging/ui/appsettings/PhoneNumberPreference.java
@@ -17,13 +17,20 @@
package com.android.messaging.ui.appsettings;
import android.content.Context;
-import android.preference.EditTextPreference;
-import androidx.core.text.BidiFormatter;
-import androidx.core.text.TextDirectionHeuristicsCompat;
import android.text.InputType;
import android.text.TextUtils;
import android.util.AttributeSet;
+import android.util.Log;
+import android.view.ContextThemeWrapper;
import android.view.View;
+import android.widget.EditText;
+
+import androidx.annotation.NonNull;
+import androidx.preference.EditTextPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+import androidx.core.text.BidiFormatter;
+import androidx.core.text.TextDirectionHeuristicsCompat;
import com.android.messaging.R;
import com.android.messaging.util.PhoneUtils;
@@ -38,12 +45,27 @@
*/
public class PhoneNumberPreference extends EditTextPreference {
- private String mDefaultPhoneNumber;
+ private String mDefaultPhoneNumber = "";
private int mSubId;
- public PhoneNumberPreference(final Context context, final AttributeSet attrs) {
+ public PhoneNumberPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init();
+ }
+
+ public PhoneNumberPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ public PhoneNumberPreference(Context context, AttributeSet attrs) {
super(context, attrs);
- mDefaultPhoneNumber = "";
+ init();
+ }
+
+ public PhoneNumberPreference(Context context) {
+ super(context);
+ init();
}
public void setDefaultPhoneNumber(final String phoneNumber, final int subscriptionId) {
@@ -51,13 +73,19 @@
mSubId = subscriptionId;
}
- @Override
- protected void onBindView(final View view) {
- // Show the preference value if it's set, or the default number if not.
- // If we don't have a default, fall back to a static string (e.g. Unknown).
+ private void init() {
+ setOnBindEditTextListener(new EditTextPreference.OnBindEditTextListener() {
+ @Override
+ public void onBindEditText(@NonNull EditText editText) {
+ editText.setText(getSummary());
+ editText.setInputType(InputType.TYPE_CLASS_PHONE);
+ }
+ });
+ }
+ public void updateSummary() {
String value = getText();
if (TextUtils.isEmpty(value)) {
- value = mDefaultPhoneNumber;
+ value = mDefaultPhoneNumber;
}
final String displayValue = (!TextUtils.isEmpty(value))
? PhoneUtils.get(mSubId).formatForDisplay(value)
@@ -65,52 +93,24 @@
final BidiFormatter bidiFormatter = BidiFormatter.getInstance();
final String phoneNumber = bidiFormatter.unicodeWrap
(displayValue, TextDirectionHeuristicsCompat.LTR);
- // Set the value as the summary and let the superclass populate the views
setSummary(phoneNumber);
- super.onBindView(view);
}
@Override
- protected void onBindDialogView(final View view) {
- super.onBindDialogView(view);
-
- final String value = getText();
-
- // If the preference is empty, populate the EditText with the default number instead.
- if (TextUtils.isEmpty(value) && !TextUtils.isEmpty(mDefaultPhoneNumber)) {
- final BidiFormatter bidiFormatter = BidiFormatter.getInstance();
- final String phoneNumber = bidiFormatter.unicodeWrap
- (PhoneUtils.get(mSubId).getCanonicalBySystemLocale(mDefaultPhoneNumber),
- TextDirectionHeuristicsCompat.LTR);
- getEditText().setText(phoneNumber);
- }
- getEditText().setInputType(InputType.TYPE_CLASS_PHONE);
- }
-
- @Override
- protected void onDialogClosed(final boolean positiveResult) {
- if (positiveResult && mDefaultPhoneNumber != null) {
- final String value = getEditText().getText().toString();
+ public void setText(final String text) {
+ String textValue = text;
+ if (mDefaultPhoneNumber != null) {
final PhoneUtils phoneUtils = PhoneUtils.get(mSubId);
- final String phoneNumber = phoneUtils.getCanonicalBySystemLocale(value);
+ final String phoneNumber = phoneUtils.getCanonicalBySystemLocale(textValue);
final String defaultPhoneNumber = phoneUtils.getCanonicalBySystemLocale(
mDefaultPhoneNumber);
// If the new value is the default, clear the preference.
if (phoneNumber.equals(defaultPhoneNumber)) {
- setText("");
- return;
+ textValue = "";
}
}
- super.onDialogClosed(positiveResult);
- }
-
- @Override
- public void setText(final String text) {
- super.setText(text);
-
- // EditTextPreference doesn't show the value on the preference view, but we do.
- // We thus need to force a rebind of the view when a new value is set.
- notifyChanged();
+ super.setText(textValue);
+ updateSummary();
}
}
diff --git a/src/com/android/messaging/ui/appsettings/SettingsActivity.java b/src/com/android/messaging/ui/appsettings/SettingsActivity.java
index dc16d0a..2744210 100644
--- a/src/com/android/messaging/ui/appsettings/SettingsActivity.java
+++ b/src/com/android/messaging/ui/appsettings/SettingsActivity.java
@@ -57,6 +57,7 @@
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ getWindow().getDecorView().setBackgroundColor(getColor(R.color.contextual_action_bar_background_color));
// Directly open the detailed settings page as the top-level settings activity if this is
// not a multi-SIM device.
diff --git a/src/com/android/messaging/ui/contact/AddContactsConfirmationDialog.java b/src/com/android/messaging/ui/contact/AddContactsConfirmationDialog.java
index 9c1393d..45cc97f 100644
--- a/src/com/android/messaging/ui/contact/AddContactsConfirmationDialog.java
+++ b/src/com/android/messaging/ui/contact/AddContactsConfirmationDialog.java
@@ -45,7 +45,8 @@
public void show() {
final int confirmAddContactStringId = R.string.add_contact_confirmation;
final int cancelStringId = android.R.string.cancel;
- final AlertDialog alertDialog = new AlertDialog.Builder(mContext)
+ final AlertDialog alertDialog = new AlertDialog.Builder(mContext,
+ R.style.BugleThemeDialog)
.setTitle(R.string.add_contact_confirmation_dialog_title)
.setView(createBodyView())
.setPositiveButton(confirmAddContactStringId, this)
diff --git a/src/com/android/messaging/ui/conversation/ConversationFragment.java b/src/com/android/messaging/ui/conversation/ConversationFragment.java
index 6eb7089..fd49c69 100644
--- a/src/com/android/messaging/ui/conversation/ConversationFragment.java
+++ b/src/com/android/messaging/ui/conversation/ConversationFragment.java
@@ -820,7 +820,7 @@
case R.id.action_delete:
if (isReadyForAction()) {
- new AlertDialog.Builder(getActivity())
+ new AlertDialog.Builder(getActivity(), R.style.BugleThemeDialog)
.setTitle(getResources().getQuantityString(
R.plurals.delete_conversations_confirmation_dialog_title, 1))
.setPositiveButton(R.string.delete_conversation_confirmation_button,
@@ -1143,7 +1143,8 @@
void deleteMessage(final String messageId) {
if (isReadyForAction()) {
- final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
+ final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),
+ R.style.BugleThemeDialog)
.setTitle(R.string.delete_message_confirmation_dialog_title)
.setMessage(R.string.delete_message_confirmation_dialog_text)
.setPositiveButton(R.string.delete_message_confirmation_button,
@@ -1504,7 +1505,7 @@
final ComposeMessageView composeMessageView, final String conversationId,
final Activity activity, final boolean tooManyVideos) {
final AlertDialog.Builder builder =
- new AlertDialog.Builder(activity)
+ new AlertDialog.Builder(activity, R.style.BugleThemeDialog)
.setTitle(R.string.mms_attachment_limit_reached);
if (sending) {
diff --git a/src/com/android/messaging/ui/conversation/EnterSelfPhoneNumberDialog.java b/src/com/android/messaging/ui/conversation/EnterSelfPhoneNumberDialog.java
index e3ad601..7614bc5 100644
--- a/src/com/android/messaging/ui/conversation/EnterSelfPhoneNumberDialog.java
+++ b/src/com/android/messaging/ui/conversation/EnterSelfPhoneNumberDialog.java
@@ -49,7 +49,8 @@
final LayoutInflater inflater = LayoutInflater.from(context);
mEditText = (EditText) inflater.inflate(R.layout.enter_phone_number_view, null, false);
- final AlertDialog.Builder builder = new AlertDialog.Builder(context);
+ final AlertDialog.Builder builder = new AlertDialog.Builder(context,
+ R.style.BugleThemeDialog);
builder.setTitle(R.string.enter_phone_number_title)
.setMessage(R.string.enter_phone_number_text)
.setView(mEditText)
diff --git a/src/com/android/messaging/ui/conversation/MessageDetailsDialog.java b/src/com/android/messaging/ui/conversation/MessageDetailsDialog.java
index 89b9148..4a5369d 100644
--- a/src/com/android/messaging/ui/conversation/MessageDetailsDialog.java
+++ b/src/com/android/messaging/ui/conversation/MessageDetailsDialog.java
@@ -86,7 +86,7 @@
private static void showDialog(final Context context, String messageDetails) {
if (!TextUtils.isEmpty(messageDetails)) {
- new AlertDialog.Builder(context)
+ new AlertDialog.Builder(context, R.style.BugleThemeDialog)
.setTitle(R.string.message_details_title)
.setMessage(messageDetails)
.setCancelable(true)
diff --git a/src/com/android/messaging/ui/conversationlist/AbstractConversationListActivity.java b/src/com/android/messaging/ui/conversationlist/AbstractConversationListActivity.java
index a2b0bdf..f2dde26 100644
--- a/src/com/android/messaging/ui/conversationlist/AbstractConversationListActivity.java
+++ b/src/com/android/messaging/ui/conversationlist/AbstractConversationListActivity.java
@@ -30,7 +30,6 @@
import com.android.messaging.R;
import com.android.messaging.datamodel.action.DeleteConversationAction;
import com.android.messaging.datamodel.action.UpdateConversationArchiveStatusAction;
-import com.android.messaging.datamodel.action.UpdateConversationOptionsAction;
import com.android.messaging.datamodel.action.UpdateDestinationBlockedAction;
import com.android.messaging.datamodel.data.ConversationListData;
import com.android.messaging.datamodel.data.ConversationListItemData;
@@ -133,7 +132,7 @@
return;
}
- new AlertDialog.Builder(this)
+ new AlertDialog.Builder(this, R.style.BugleThemeDialog)
.setTitle(getResources().getQuantityString(
R.plurals.delete_conversations_confirmation_dialog_title,
conversations.size()))
@@ -191,23 +190,6 @@
}
@Override
- public void onActionBarNotification(final Iterable<SelectedConversation> conversations,
- final boolean isNotificationOn) {
- for (final SelectedConversation conversation : conversations) {
- UpdateConversationOptionsAction.enableConversationNotifications(
- conversation.conversationId, isNotificationOn);
- }
-
- final int textId = isNotificationOn ?
- R.string.notification_on_toast_message : R.string.notification_off_toast_message;
- final String message = getResources().getString(textId, 1);
- UiUtils.showSnackBar(this, findViewById(android.R.id.list), message,
- null /* undoRunnable */,
- SnackBar.Action.SNACK_BAR_UNDO, mConversationListFragment.getSnackBarInteractions());
- exitMultiSelectState();
- }
-
- @Override
public void onActionBarAddContact(final SelectedConversation conversation) {
final Uri avatarUri;
if (conversation.icon != null) {
@@ -224,7 +206,7 @@
@Override
public void onActionBarBlock(final SelectedConversation conversation) {
final Resources res = getResources();
- new AlertDialog.Builder(this)
+ new AlertDialog.Builder(this, R.style.BugleThemeDialog)
.setTitle(res.getString(R.string.block_confirmation_title,
conversation.otherParticipantNormalizedDestination))
.setMessage(res.getString(R.string.block_confirmation_message))
diff --git a/src/com/android/messaging/ui/conversationlist/ArchivedConversationListActivity.java b/src/com/android/messaging/ui/conversationlist/ArchivedConversationListActivity.java
index 342c970..baff89c 100644
--- a/src/com/android/messaging/ui/conversationlist/ArchivedConversationListActivity.java
+++ b/src/com/android/messaging/ui/conversationlist/ArchivedConversationListActivity.java
@@ -42,7 +42,7 @@
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setBackgroundDrawable(new ColorDrawable(
getResources().getColor(
- R.color.archived_conversation_action_bar_background_color_dark)));
+ R.color.archived_conversation_action_bar_background_color)));
actionBar.show();
super.updateActionBar(actionBar);
}
diff --git a/src/com/android/messaging/ui/conversationlist/ConversationListActivity.java b/src/com/android/messaging/ui/conversationlist/ConversationListActivity.java
index 636b0f5..4d83f12 100644
--- a/src/com/android/messaging/ui/conversationlist/ConversationListActivity.java
+++ b/src/com/android/messaging/ui/conversationlist/ConversationListActivity.java
@@ -31,6 +31,7 @@
@Override
protected void onCreate(final Bundle savedInstanceState) {
Trace.beginSection("ConversationListActivity.onCreate");
+ setTheme(R.style.BugleTheme_ConversationListActivity);
super.onCreate(savedInstanceState);
setContentView(R.layout.conversation_list_activity);
Trace.endSection();
diff --git a/src/com/android/messaging/ui/conversationlist/ConversationListItemView.java b/src/com/android/messaging/ui/conversationlist/ConversationListItemView.java
index b22ccfc..5157193 100644
--- a/src/com/android/messaging/ui/conversationlist/ConversationListItemView.java
+++ b/src/com/android/messaging/ui/conversationlist/ConversationListItemView.java
@@ -58,6 +58,7 @@
import com.android.messaging.util.Typefaces;
import com.android.messaging.util.UiUtils;
import com.android.messaging.util.UriUtil;
+import org.android.messaging.util.PrefsUtils;
import java.util.List;
@@ -75,6 +76,8 @@
private static String sPlusOneString;
private static String sPlusNString;
+ private static final int SWIPE_DIRECTION_RIGHT = 2;
+
public interface HostInterface {
boolean isConversationSelected(final String conversationId);
void onConversationClicked(final ConversationListItemData conversationListItemData,
@@ -124,7 +127,6 @@
private TextView mTimestampTextView;
private ContactIconView mContactIconView;
private ImageView mContactCheckmarkView;
- private ImageView mNotificationBellView;
private ImageView mFailedStatusIconView;
private ImageView mCrossSwipeArchiveLeftImageView;
private ImageView mCrossSwipeArchiveRightImageView;
@@ -150,7 +152,6 @@
mTimestampTextView = (TextView) findViewById(R.id.conversation_timestamp);
mContactIconView = (ContactIconView) findViewById(R.id.conversation_icon);
mContactCheckmarkView = (ImageView) findViewById(R.id.conversation_checkmark);
- mNotificationBellView = (ImageView) findViewById(R.id.conversation_notification_bell);
mFailedStatusIconView = (ImageView) findViewById(R.id.conversation_failed_status_icon);
mCrossSwipeArchiveLeftImageView = (ImageView) findViewById(R.id.crossSwipeArchiveIconLeft);
mCrossSwipeArchiveRightImageView =
@@ -500,8 +501,17 @@
mAudioAttachmentView.setOnLongClickListener(this);
mAudioAttachmentView.setVisibility(audioPreviewVisiblity);
- final int notificationBellVisiblity = mData.getNotificationEnabled() ? GONE : VISIBLE;
- mNotificationBellView.setVisibility(notificationBellVisiblity);
+ if (PrefsUtils.isSwipeRightToDeleteEnabled()) {
+ mCrossSwipeArchiveLeftImageView.setImageDrawable(getResources()
+ .getDrawable(R.drawable.ic_delete_small_dark));
+ mCrossSwipeArchiveRightImageView.setImageDrawable(getResources()
+ .getDrawable(R.drawable.ic_archive_small_dark));
+ } else {
+ mCrossSwipeArchiveLeftImageView.setImageDrawable(getResources()
+ .getDrawable(R.drawable.ic_archive_small_dark));
+ mCrossSwipeArchiveRightImageView.setImageDrawable(getResources()
+ .getDrawable(R.drawable.ic_archive_small_dark));
+ }
}
public boolean isSwipeAnimatable() {
@@ -531,14 +541,20 @@
mCrossSwipeArchiveLeftImageView.setVisibility(GONE);
mCrossSwipeArchiveRightImageView.setVisibility(VISIBLE);
}
- mSwipeableContainer.setBackgroundResource(R.drawable.swipe_shadow_drag);
+ mSwipeableContainer.setBackgroundResource(R.drawable.swipe_shadow_drag_new);
}
}
- public void onSwipeComplete() {
+ public void onSwipeComplete(int swipeDirection) {
final String conversationId = mData.getConversationId();
+ if (PrefsUtils.isSwipeRightToDeleteEnabled()
+ && swipeDirection == ConversationListSwipeHelper.SWIPE_DIRECTION_RIGHT) {
+ mData.deleteConversation();
+ UiUtils.showSnackBar(getContext(), getRootView(),
+ getResources().getString(R.string.conversation_deleted));
+ return;
+ }
UpdateConversationArchiveStatusAction.archiveConversation(conversationId);
-
final Runnable undoRunnable = new Runnable() {
@Override
public void run() {
diff --git a/src/com/android/messaging/ui/conversationlist/ConversationListSwipeHelper.java b/src/com/android/messaging/ui/conversationlist/ConversationListSwipeHelper.java
index e5859a6..8b8ed0c 100644
--- a/src/com/android/messaging/ui/conversationlist/ConversationListSwipeHelper.java
+++ b/src/com/android/messaging/ui/conversationlist/ConversationListSwipeHelper.java
@@ -44,9 +44,9 @@
private static final float PERCENTAGE_OF_WIDTH_TO_DISMISS = 0.4f;
private static final float FLING_PERCENTAGE_OF_WIDTH_TO_DISMISS = 0.05f;
- private static final int SWIPE_DIRECTION_NONE = 0;
- private static final int SWIPE_DIRECTION_LEFT = 1;
- private static final int SWIPE_DIRECTION_RIGHT = 2;
+ public static final int SWIPE_DIRECTION_NONE = 0;
+ public static final int SWIPE_DIRECTION_LEFT = 1;
+ public static final int SWIPE_DIRECTION_RIGHT = 2;
private final RecyclerView mRecyclerView;
private final long mDefaultRestoreAnimationDuration;
@@ -269,7 +269,7 @@
private void onSwipeGestureEnd(final ConversationListItemView itemView,
final int swipeDirection) {
if (swipeDirection == SWIPE_DIRECTION_RIGHT || swipeDirection == SWIPE_DIRECTION_LEFT) {
- itemView.onSwipeComplete();
+ itemView.onSwipeComplete(swipeDirection);
}
// Balances out onSwipeGestureStart.
diff --git a/src/com/android/messaging/ui/conversationlist/MultiSelectActionModeCallback.java b/src/com/android/messaging/ui/conversationlist/MultiSelectActionModeCallback.java
index 64d1436..96c962e 100644
--- a/src/com/android/messaging/ui/conversationlist/MultiSelectActionModeCallback.java
+++ b/src/com/android/messaging/ui/conversationlist/MultiSelectActionModeCallback.java
@@ -37,8 +37,6 @@
void onActionBarDelete(Collection<SelectedConversation> conversations);
void onActionBarArchive(Iterable<SelectedConversation> conversations,
boolean isToArchive);
- void onActionBarNotification(Iterable<SelectedConversation> conversations,
- boolean isNotificationOn);
void onActionBarAddContact(final SelectedConversation conversation);
void onActionBarBlock(final SelectedConversation conversation);
void onActionBarHome();
@@ -52,7 +50,6 @@
public final CharSequence participantLookupKey;
public final boolean isGroup;
public final boolean isArchived;
- public final boolean notificationEnabled;
public SelectedConversation(ConversationListItemData data) {
conversationId = data.getConversationId();
timestamp = data.getTimestamp();
@@ -61,7 +58,6 @@
participantLookupKey = data.getParticipantLookupKey();
isGroup = data.getIsGroup();
isArchived = data.getIsArchived();
- notificationEnabled = data.getNotificationEnabled();
}
}
@@ -72,8 +68,6 @@
private MenuItem mUnarchiveMenuItem;
private MenuItem mAddContactMenuItem;
private MenuItem mBlockMenuItem;
- private MenuItem mNotificationOnMenuItem;
- private MenuItem mNotificationOffMenuItem;
private boolean mHasInflated;
public MultiSelectActionModeCallback(final Listener listener) {
@@ -89,8 +83,6 @@
mUnarchiveMenuItem = menu.findItem(R.id.action_unarchive);
mAddContactMenuItem = menu.findItem(R.id.action_add_contact);
mBlockMenuItem = menu.findItem(R.id.action_block);
- mNotificationOffMenuItem = menu.findItem(R.id.action_notification_off);
- mNotificationOnMenuItem = menu.findItem(R.id.action_notification_on);
mHasInflated = true;
updateActionIconsVisiblity();
return true;
@@ -113,12 +105,6 @@
case R.id.action_unarchive:
mListener.onActionBarArchive(mSelectedConversations.values(), false);
return true;
- case R.id.action_notification_off:
- mListener.onActionBarNotification(mSelectedConversations.values(), false);
- return true;
- case R.id.action_notification_on:
- mListener.onActionBarNotification(mSelectedConversations.values(), true);
- return true;
case R.id.action_add_contact:
Assert.isTrue(mSelectedConversations.size() == 1);
mListener.onActionBarAddContact(mSelectedConversations.valueAt(0));
@@ -186,16 +172,8 @@
boolean hasCurrentlyArchived = false;
boolean hasCurrentlyUnarchived = false;
- boolean hasCurrentlyOnNotification = false;
- boolean hasCurrentlyOffNotification = false;
final Iterable<SelectedConversation> conversations = mSelectedConversations.values();
for (final SelectedConversation conversation : conversations) {
- if (conversation.notificationEnabled) {
- hasCurrentlyOnNotification = true;
- } else {
- hasCurrentlyOffNotification = true;
- }
-
if (conversation.isArchived) {
hasCurrentlyArchived = true;
} else {
@@ -203,15 +181,10 @@
}
// If we found at least one of each example we don't need to keep looping.
- if (hasCurrentlyOffNotification && hasCurrentlyOnNotification &&
- hasCurrentlyArchived && hasCurrentlyUnarchived) {
+ if (hasCurrentlyArchived && hasCurrentlyUnarchived) {
break;
}
}
- // If we have notification off conversations we show on button, if we have notification on
- // conversation we show off button. We can show both if we have a mixture.
- mNotificationOffMenuItem.setVisible(hasCurrentlyOnNotification);
- mNotificationOnMenuItem.setVisible(hasCurrentlyOffNotification);
mArchiveMenuItem.setVisible(hasCurrentlyUnarchived);
mUnarchiveMenuItem.setVisible(hasCurrentlyArchived);
diff --git a/src/com/android/messaging/ui/conversationlist/ShareIntentFragment.java b/src/com/android/messaging/ui/conversationlist/ShareIntentFragment.java
index beafb53..527cca6 100644
--- a/src/com/android/messaging/ui/conversationlist/ShareIntentFragment.java
+++ b/src/com/android/messaging/ui/conversationlist/ShareIntentFragment.java
@@ -85,7 +85,8 @@
mRecyclerView.setLayoutManager(manager);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setAdapter(mAdapter);
- final Builder dialogBuilder = new AlertDialog.Builder(activity)
+ final Builder dialogBuilder = new AlertDialog.Builder(activity,
+ R.style.BugleThemeDialog)
.setView(view)
.setTitle(R.string.share_intent_activity_label);
diff --git a/src/com/android/messaging/ui/conversationsettings/PeopleAndOptionsFragment.java b/src/com/android/messaging/ui/conversationsettings/PeopleAndOptionsFragment.java
index b86d952..64305fb 100644
--- a/src/com/android/messaging/ui/conversationsettings/PeopleAndOptionsFragment.java
+++ b/src/com/android/messaging/ui/conversationsettings/PeopleAndOptionsFragment.java
@@ -18,12 +18,12 @@
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Fragment;
+import android.app.NotificationManager;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Resources;
import android.database.Cursor;
-import android.media.RingtoneManager;
import android.os.Bundle;
import android.os.Parcelable;
import android.provider.Settings;
@@ -49,6 +49,7 @@
import com.android.messaging.ui.PersonItemView;
import com.android.messaging.ui.UIIntents;
import com.android.messaging.ui.conversation.ConversationActivity;
+import com.android.messaging.util.NotificationsUtil;
import com.android.messaging.util.Assert;
import java.util.ArrayList;
@@ -62,11 +63,10 @@
private ListView mListView;
private OptionsListAdapter mOptionsListAdapter;
private PeopleListAdapter mPeopleListAdapter;
+ private List<ParticipantData> mOtherParticipants;
private final Binding<PeopleAndOptionsData> mBinding =
BindingBase.createBinding(this);
- private static final int REQUEST_CODE_RINGTONE_PICKER = 1000;
-
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -90,17 +90,6 @@
}
@Override
- public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (resultCode == Activity.RESULT_OK && requestCode == REQUEST_CODE_RINGTONE_PICKER) {
- final Parcelable pick = data.getParcelableExtra(
- RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
- final String pickedUri = pick == null ? "" : pick.toString();
- mBinding.getData().setConversationNotificationSound(mBinding, pickedUri);
- }
- }
-
- @Override
public void onDestroy() {
super.onDestroy();
mBinding.unbind();
@@ -125,30 +114,31 @@
final List<ParticipantData> participants) {
mBinding.ensureBound(data);
mPeopleListAdapter.updateParticipants(participants);
+ mOtherParticipants = participants;
final ParticipantData otherParticipant = participants.size() == 1 ?
participants.get(0) : null;
mOptionsListAdapter.setOtherParticipant(otherParticipant);
}
@Override
- public void onOptionsItemViewClicked(final PeopleOptionsItemData item,
- final boolean isChecked) {
+ public void onOptionsItemViewClicked(final PeopleOptionsItemData item) {
switch (item.getItemId()) {
- case PeopleOptionsItemData.SETTING_NOTIFICATION_ENABLED:
- mBinding.getData().enableConversationNotifications(mBinding, isChecked);
- break;
-
- case PeopleOptionsItemData.SETTING_NOTIFICATION_SOUND_URI:
- final Intent ringtonePickerIntent = UIIntents.get().getRingtonePickerIntent(
- getString(R.string.notification_sound_pref_title),
- item.getRingtoneUri(), Settings.System.DEFAULT_NOTIFICATION_URI,
- RingtoneManager.TYPE_NOTIFICATION);
- startActivityForResult(ringtonePickerIntent, REQUEST_CODE_RINGTONE_PICKER);
- break;
-
- case PeopleOptionsItemData.SETTING_NOTIFICATION_VIBRATION:
- mBinding.getData().enableConversationNotificationVibration(mBinding,
- isChecked);
+ case PeopleOptionsItemData.SETTING_NOTIFICATION:
+ ArrayList<String> participantsNames = new ArrayList<String>();
+ for (ParticipantData participant : mOtherParticipants) {
+ participantsNames.add(participant.getDisplayName(true));
+ }
+ NotificationsUtil.createNotificationChannelGroup(getActivity(),
+ NotificationsUtil.CONVERSATION_GROUP_NAME,
+ R.string.notification_channel_messages_title);
+ NotificationsUtil.createNotificationChannel(getActivity(),
+ mBinding.getData().getConversationId(),
+ String.join(", ", participantsNames),
+ NotificationManager.IMPORTANCE_DEFAULT,
+ NotificationsUtil.CONVERSATION_GROUP_NAME);
+ Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
+ intent.putExtra(Settings.EXTRA_APP_PACKAGE, getContext().getPackageName());
+ startActivity(intent);
break;
case PeopleOptionsItemData.SETTING_BLOCKED:
@@ -158,7 +148,7 @@
}
final Resources res = getResources();
final Activity activity = getActivity();
- new AlertDialog.Builder(activity)
+ new AlertDialog.Builder(activity, R.style.BugleThemeDialog)
.setTitle(res.getString(R.string.block_confirmation_title,
item.getOtherParticipant().getDisplayDestination()))
.setMessage(res.getString(R.string.block_confirmation_message))
diff --git a/src/com/android/messaging/ui/conversationsettings/PeopleOptionsItemView.java b/src/com/android/messaging/ui/conversationsettings/PeopleOptionsItemView.java
index 5b6f3b0..91fd10c 100644
--- a/src/com/android/messaging/ui/conversationsettings/PeopleOptionsItemView.java
+++ b/src/com/android/messaging/ui/conversationsettings/PeopleOptionsItemView.java
@@ -38,7 +38,7 @@
* Implemented by the host of this view that handles options click event.
*/
public interface HostInterface {
- void onOptionsItemViewClicked(PeopleOptionsItemData item, boolean isChecked);
+ void onOptionsItemViewClicked(PeopleOptionsItemData item);
}
private TextView mTitle;
@@ -55,12 +55,10 @@
@Override
protected void onFinishInflate () {
mTitle = (TextView) findViewById(R.id.title);
- mSubtitle = (TextView) findViewById(R.id.subtitle);
- mSwitch = (SwitchCompat) findViewById(R.id.switch_button);
setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
- mHostInterface.onOptionsItemViewClicked(mData, !mData.getChecked());
+ mHostInterface.onOptionsItemViewClicked(mData);
}
});
}
@@ -72,28 +70,5 @@
mHostInterface = hostInterface;
mTitle.setText(mData.getTitle());
- final String subtitle = mData.getSubtitle();
- if (TextUtils.isEmpty(subtitle)) {
- mSubtitle.setVisibility(GONE);
- } else {
- mSubtitle.setVisibility(VISIBLE);
- mSubtitle.setText(subtitle);
- }
-
- if (mData.getCheckable()) {
- mSwitch.setVisibility(VISIBLE);
- mSwitch.setChecked(mData.getChecked());
- } else {
- mSwitch.setVisibility(GONE);
- }
-
- final boolean enabled = mData.getEnabled();
- if (enabled != isEnabled()) {
- mTitle.setEnabled(enabled);
- mSubtitle.setEnabled(enabled);
- mSwitch.setEnabled(enabled);
- setAlpha(enabled ? 1.0f : 0.5f);
- setEnabled(enabled);
- }
}
}
diff --git a/src/com/android/messaging/util/BugleActivityUtil.java b/src/com/android/messaging/util/BugleActivityUtil.java
index 7f722fd..70d1b04 100644
--- a/src/com/android/messaging/util/BugleActivityUtil.java
+++ b/src/com/android/messaging/util/BugleActivityUtil.java
@@ -68,7 +68,7 @@
}
UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
if (userManager.hasUserRestriction(UserManager.DISALLOW_SMS)) {
- new AlertDialog.Builder(activity)
+ new AlertDialog.Builder(activity, R.style.BugleThemeDialog)
.setMessage(R.string.requires_sms_permissions_message)
.setCancelable(false)
.setNegativeButton(R.string.requires_sms_permissions_close_button,
diff --git a/src/com/android/messaging/util/ChangeDefaultSmsAppHelper.java b/src/com/android/messaging/util/ChangeDefaultSmsAppHelper.java
index 6cf2f25..bcb2f5c 100644
--- a/src/com/android/messaging/util/ChangeDefaultSmsAppHelper.java
+++ b/src/com/android/messaging/util/ChangeDefaultSmsAppHelper.java
@@ -66,7 +66,7 @@
// Is the default sms app?
} else if (!isDefaultSmsApp) {
- mChangeSmsAppSettingRunnable = new ChangeSmsAppSettingRunnable(activity, fragment);
+ mChangeSmsAppSettingRunnable = new ChangeSmsAppSettingRunnable(activity);
promptToChangeDefaultSmsApp(sending, runAfterMadeDefault,
composeView, rootView, activity);
}
@@ -104,22 +104,16 @@
private class ChangeSmsAppSettingRunnable implements Runnable {
private final Activity mActivity;
- private final Fragment mFragment;
- public ChangeSmsAppSettingRunnable(final Activity activity, final Fragment fragment) {
+ public ChangeSmsAppSettingRunnable(final Activity activity) {
mActivity = activity;
- mFragment = fragment;
}
@Override
public void run() {
try {
final Intent intent = UIIntents.get().getChangeDefaultSmsAppIntent(mActivity);
- if (mFragment != null) {
- mFragment.startActivityForResult(intent, REQUEST_SET_DEFAULT_SMS_APP);
- } else {
- mActivity.startActivityForResult(intent, REQUEST_SET_DEFAULT_SMS_APP);
- }
+ mActivity.startActivityForResult(intent, REQUEST_SET_DEFAULT_SMS_APP);
} catch (final ActivityNotFoundException ex) {
// We shouldn't get here, but the monkey on JB MR0 can trigger it.
LogUtil.w(LogUtil.BUGLE_TAG, "Couldn't find activity:", ex);
@@ -153,5 +147,3 @@
}
}
}
-
-
diff --git a/src/com/android/messaging/util/FileUtil.java b/src/com/android/messaging/util/FileUtil.java
index e7d86f2..71fbb4b 100644
--- a/src/com/android/messaging/util/FileUtil.java
+++ b/src/com/android/messaging/util/FileUtil.java
@@ -20,7 +20,6 @@
import android.content.Context;
import android.net.Uri;
import android.os.Environment;
-import android.os.ParcelFileDescriptor;
import android.text.TextUtils;
import com.android.messaging.Factory;
@@ -29,8 +28,6 @@
import java.io.File;
import java.io.IOException;
-import java.nio.file.Path;
-import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
@@ -124,10 +121,6 @@
// We're told it's possible to create world readable hardlinks to other apps private data
// so we ban all /data file uris.
public static boolean isInPrivateDir(Uri uri) {
- return isFileUriInPrivateDir(uri) || isContentUriInPrivateDir(uri);
- }
-
- private static boolean isFileUriInPrivateDir(Uri uri) {
if (!UriUtil.isFileUri(uri)) {
return false;
}
@@ -135,24 +128,6 @@
return FileUtil.isSameOrSubDirectory(Environment.getDataDirectory(), file);
}
- private static boolean isContentUriInPrivateDir(Uri uri) {
- if (!uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)) {
- return false;
- }
- try {
- Context context = Factory.get().getApplicationContext();
- ParcelFileDescriptor pfd = context.getContentResolver().openFileDescriptor(uri, "r");
- int fd = pfd.getFd();
- // Use the file descriptor to find out the read file path through symbolic link.
- Path fdPath = Paths.get("/proc/self/fd/" + fd);
- Path filePath = java.nio.file.Files.readSymbolicLink(fdPath);
- pfd.close();
- return FileUtil.isSameOrSubDirectory(Environment.getDataDirectory(), filePath.toFile());
- } catch (Exception e) {
- return false;
- }
- }
-
/**
* Checks, whether the child directory is the same as, or a sub-directory of the base
* directory.
diff --git a/src/com/android/messaging/util/NotificationsUtil.java b/src/com/android/messaging/util/NotificationsUtil.java
new file mode 100644
index 0000000..591f15a
--- /dev/null
+++ b/src/com/android/messaging/util/NotificationsUtil.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2019 The LineageOS 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.messaging.util;
+
+import android.app.NotificationChannel;
+import android.app.NotificationChannelGroup;
+import android.app.NotificationManager;
+import android.content.Context;
+import android.os.Build;
+
+public final class NotificationsUtil {
+ public static final String DEFAULT_CHANNEL_ID = "messaging_channel";
+ public static final String CONVERSATION_GROUP_NAME = "conversation_group";
+
+ private NotificationsUtil() {
+ }
+
+ public static void createNotificationChannel(Context context, String id,
+ int titleResId, int priority, String groupId) {
+ String title = context.getString(titleResId);
+ createNotificationChannel(context, id, title, priority, groupId);
+ }
+
+ public static void createNotificationChannel(Context context, String id,
+ String title, int priority, String groupId) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
+ return;
+ }
+
+ NotificationManager manager = context.getSystemService(NotificationManager.class);
+ NotificationChannel existing = manager.getNotificationChannel(id);
+ if (existing != null) {
+ return;
+ }
+
+ NotificationChannel newChannel = new NotificationChannel(id, title, priority);
+ newChannel.enableLights(true);
+ if (groupId != null) {
+ newChannel.setGroup(groupId);
+ }
+ manager.createNotificationChannel(newChannel);
+ }
+
+ public static void deleteNotificationChannel(Context context, String id) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
+ return;
+ }
+
+ NotificationManager manager = context.getSystemService(NotificationManager.class);
+ manager.deleteNotificationChannel(id);
+ }
+
+ public static void createNotificationChannelGroup(Context context, String id,
+ int titleResId) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
+ return;
+ }
+
+ NotificationManager manager = context.getSystemService(NotificationManager.class);
+ NotificationChannelGroup existing = manager.getNotificationChannelGroup(id);
+ if (existing != null) {
+ return;
+ }
+
+ String title = context.getString(titleResId);
+ NotificationChannelGroup newChannelGroup = new NotificationChannelGroup(id, title);
+ manager.createNotificationChannelGroup(newChannelGroup);
+ }
+
+ public static NotificationChannel getNotificationChannel(Context context, String id) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
+ return null;
+ }
+
+ NotificationManager manager = context.getSystemService(NotificationManager.class);
+ return manager.getNotificationChannel(id);
+ }
+
+ public static NotificationChannelGroup getNotificationChannelGroup(Context context, String id) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
+ return null;
+ }
+
+ NotificationManager manager = context.getSystemService(NotificationManager.class);
+ return manager.getNotificationChannelGroup(id);
+ }
+}
diff --git a/src/com/android/messaging/util/PhoneUtils.java b/src/com/android/messaging/util/PhoneUtils.java
index 08889b8..9f0fa8e 100644
--- a/src/com/android/messaging/util/PhoneUtils.java
+++ b/src/com/android/messaging/util/PhoneUtils.java
@@ -16,6 +16,7 @@
package com.android.messaging.util;
+import android.app.role.RoleManager;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
@@ -897,8 +898,9 @@
*/
public boolean isDefaultSmsApp() {
if (OsUtil.isAtLeastKLP()) {
- final String configuredApplication = Telephony.Sms.getDefaultSmsPackage(mContext);
- return mContext.getPackageName().equals(configuredApplication);
+ RoleManager roleManager = mContext.getSystemService(RoleManager.class);
+ return roleManager.isRoleAvailable(RoleManager.ROLE_SMS)
+ && roleManager.isRoleHeld(RoleManager.ROLE_SMS);
}
return true;
}
diff --git a/src/com/android/messaging/util/RingtoneUtil.java b/src/com/android/messaging/util/RingtoneUtil.java
deleted file mode 100644
index a7facfb..0000000
--- a/src/com/android/messaging/util/RingtoneUtil.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2015 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.messaging.util;
-
-import android.content.Context;
-import android.net.Uri;
-import android.provider.Settings;
-import android.text.TextUtils;
-
-import com.android.messaging.Factory;
-import com.android.messaging.R;
-
-public class RingtoneUtil {
- /**
- * Return a ringtone Uri for the string representation passed in. Use the app
- * and system defaults as fallbacks
- * @param ringtoneString is the ringtone to resolve
- * @return the Uri of the ringtone or the fallback ringtone
- */
- public static Uri getNotificationRingtoneUri(String ringtoneString) {
- if (ringtoneString == null) {
- // No override specified, fall back to system-wide setting.
- final BuglePrefs prefs = BuglePrefs.getApplicationPrefs();
- final Context context = Factory.get().getApplicationContext();
- final String prefKey = context.getString(R.string.notification_sound_pref_key);
- ringtoneString = prefs.getString(prefKey, null);
- }
-
- if (!TextUtils.isEmpty(ringtoneString)) {
- // We have set a value, even if it is the default Uri at some point
- return Uri.parse(ringtoneString);
- } else if (ringtoneString == null) {
- // We have no setting specified (== null), so we default to the system default
- return Settings.System.DEFAULT_NOTIFICATION_URI;
- } else {
- // An empty string (== "") here is the result of selecting "None" as the ringtone
- return null;
- }
- }
-}
diff --git a/src/com/android/messaging/util/UiUtils.java b/src/com/android/messaging/util/UiUtils.java
index 6e0c16e..bad8b2d 100644
--- a/src/com/android/messaging/util/UiUtils.java
+++ b/src/com/android/messaging/util/UiUtils.java
@@ -132,6 +132,16 @@
null /* placement */);
}
+ public static void showSnackBar(final Context context, @NonNull final View parentView,
+ final String message) {
+ Assert.notNull(context);
+ Assert.isTrue(!TextUtils.isEmpty(message));
+ SnackBarManager.get()
+ .newBuilder(parentView)
+ .setText(message)
+ .show();
+ }
+
public static void showSnackBarWithCustomAction(final Context context,
@NonNull final View parentView,
@NonNull final String message,
@@ -251,16 +261,7 @@
}
public static void setStatusBarColor(final Activity activity, final int color) {
- if (OsUtil.isAtLeastL()) {
- // To achieve the appearance of an 80% opacity blend against a black background,
- // each color channel is reduced in value by 20%.
- final int blendedRed = (int) Math.floor(0.8 * Color.red(color));
- final int blendedGreen = (int) Math.floor(0.8 * Color.green(color));
- final int blendedBlue = (int) Math.floor(0.8 * Color.blue(color));
-
- activity.getWindow().setStatusBarColor(
- Color.rgb(blendedRed, blendedGreen, blendedBlue));
- }
+ activity.getWindow().setStatusBarColor(color);
}
public static void lockOrientation(final Activity activity) {
diff --git a/src/com/android/messaging/widget/WidgetConversationListService.java b/src/com/android/messaging/widget/WidgetConversationListService.java
index b67bd79..023c56d 100644
--- a/src/com/android/messaging/widget/WidgetConversationListService.java
+++ b/src/com/android/messaging/widget/WidgetConversationListService.java
@@ -120,10 +120,6 @@
remoteViews.setTextViewText(R.id.from,
boldifyIfUnread(conv.getName(), hasUnreadMessages));
- // Notifications turned off mini-bell icon
- remoteViews.setViewVisibility(R.id.conversation_notification_bell,
- conv.getNotificationEnabled() ? View.GONE : View.VISIBLE);
-
// On click intent.
final Intent intent = UIIntents.get().getIntentForConversationActivity(mContext,
conv.getConversationId(), null /* draft */);
diff --git a/src/org/android/messaging/util/PrefsUtils.java b/src/org/android/messaging/util/PrefsUtils.java
new file mode 100644
index 0000000..95a918d
--- /dev/null
+++ b/src/org/android/messaging/util/PrefsUtils.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2016 The CyanogenMod 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 org.android.messaging.util;
+
+import android.content.Context;
+import com.android.messaging.Factory;
+import com.android.messaging.R;
+import com.android.messaging.util.BuglePrefs;
+
+public class PrefsUtils {
+ private PrefsUtils() {
+ //Don't instantiate
+ }
+
+ /**
+ * Returns whether or not swipe to dismiss in the ConversationListFragment deletes
+ * the conversation rather than archiving it.
+ * @return hopefully true
+ */
+ public static boolean isSwipeRightToDeleteEnabled() {
+ final BuglePrefs prefs = BuglePrefs.getApplicationPrefs();
+ final Context context = Factory.get().getApplicationContext();
+ final String prefKey = context.getString(R.string.swipe_right_deletes_conversation_key);
+ final boolean defaultValue = context.getResources().getBoolean(
+ R.bool.swipe_right_deletes_conversation_default);
+ return prefs.getBoolean(prefKey, defaultValue);
+ }
+}
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index 07f0d17..0879287 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -17,7 +17,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.messaging.test" >
- <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="24"/>
+ <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="29"/>
<application android:label="Messaging Tests" >
<uses-library android:name="android.test.runner" />
diff --git a/tests/src/com/android/messaging/datamodel/action/ReadWriteDraftMessageActionTest.java b/tests/src/com/android/messaging/datamodel/action/ReadWriteDraftMessageActionTest.java
index 518a722..459dd7d 100644
--- a/tests/src/com/android/messaging/datamodel/action/ReadWriteDraftMessageActionTest.java
+++ b/tests/src/com/android/messaging/datamodel/action/ReadWriteDraftMessageActionTest.java
@@ -113,7 +113,7 @@
participants.add(ParticipantData.getFromRawPhoneBySystemLocale(participantNumber));
final String conversationId = BugleDatabaseOperations.getOrCreateConversation(db, threadId,
- senderBlocked, participants, false, false, null);
+ senderBlocked, participants);
assertNotNull("No conversation", conversationId);
return conversationId;
}
@@ -189,7 +189,7 @@
participants.add(ParticipantData.getFromRawPhoneBySystemLocale(Long.toString(phoneNumber)));
conversationId = BugleDatabaseOperations.getOrCreateConversation(db, threadId,
- senderBlocked, participants, false, false, null);
+ senderBlocked, participants);
assertNotNull("No conversation", conversationId);
final MessageData actual = BugleDatabaseOperations.readDraftMessageData(db, conversationId,