diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraContactSelectionFragment.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraContactSelectionFragment.java
index e593b5a3d2..dc9d8d6ffb 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraContactSelectionFragment.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraContactSelectionFragment.java
@@ -179,7 +179,7 @@ public class CameraContactSelectionFragment extends LoggingFragment implements C
if (error == null) return;
if (error == CameraContactSelectionViewModel.Error.MAX_SELECTION) {
- String message = getString(R.string.CameraContacts_you_can_share_with_a_maximum_of_n_conversations, CameraContactSelectionViewModel.MAX_SELECTION_COUNT);
+ String message = getResources().getQuantityString(R.plurals.CameraContacts_you_can_share_with_a_maximum_of_n_conversations, CameraContactSelectionViewModel.MAX_SELECTION_COUNT, CameraContactSelectionViewModel.MAX_SELECTION_COUNT);
Toast.makeText(requireContext(), message, Toast.LENGTH_SHORT).show();
}
});
diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationFactory.kt b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationFactory.kt
index f147f1a09a..eda2ecb098 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationFactory.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationFactory.kt
@@ -281,7 +281,7 @@ object NotificationFactory {
setContentTitle(context.getString(R.string.app_name))
setContentIntent(NotificationPendingIntentHelper.getActivity(context, 0, MainActivity.clearTop(context), PendingIntentFlags.mutable()))
setGroupSummary(true)
- setSubText(context.getString(R.string.MessageNotifier_d_new_messages_in_d_conversations, state.messageCount, state.threadCount))
+ setSubText(context.buildSummaryString(state.messageCount, state.threadCount))
setContentInfo(state.messageCount.toString())
setNumber(state.messageCount)
setSummaryContentText(state.mostRecentSender)
@@ -300,6 +300,12 @@ object NotificationFactory {
NotificationManagerCompat.from(context).safelyNotify(null, NotificationIds.MESSAGE_SUMMARY, builder.build())
}
+ private fun Context.buildSummaryString(messageCount: Int, threadCount: Int): String {
+ val messageString = resources.getQuantityString(R.plurals.MessageNotifier_d_messages, messageCount, messageCount)
+ val threadString = resources.getQuantityString(R.plurals.MessageNotifier_d_chats, threadCount, threadCount)
+ return getString(R.string.MessageNotifier_s_in_s, messageString, threadString)
+ }
+
private fun notifyInThread(context: Context, recipient: Recipient, lastAudibleNotification: Long) {
if (!SignalStore.settings().isMessageNotificationsInChatSoundsEnabled ||
ServiceUtil.getAudioManager(context).ringerMode != AudioManager.RINGER_MODE_NORMAL ||
diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/StoragePreferenceFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/StoragePreferenceFragment.java
index 03ff822a6c..1571571b2e 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/preferences/StoragePreferenceFragment.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/StoragePreferenceFragment.java
@@ -276,7 +276,7 @@ public class StoragePreferenceFragment extends ListSummaryPreferenceFragment {
if (newTrimLength > 0 && (!trimLengthEnabled || newTrimLength < trimLength)) {
new MaterialAlertDialogBuilder(activity)
.setTitle(R.string.preferences_storage__delete_older_messages)
- .setMessage(activity.getString(R.string.preferences_storage__this_will_permanently_trim_all_conversations_to_the_d_most_recent_messages, NumberFormat.getInstance().format(newTrimLength)))
+ .setMessage(activity.getResources().getQuantityString(R.plurals.preferences_storage__this_will_permanently_trim_all_conversations_to_the_d_most_recent_messages, newTrimLength, newTrimLength))
.setPositiveButton(R.string.delete, (d, w) -> updateTrimByLength(newTrimLength))
.setNegativeButton(android.R.string.cancel, null)
.show();
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5ceabd6bca..3ba47df370 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -183,7 +183,11 @@
Recent contacts
Signal contacts
Signal groups
- You can share with a maximum of %d chats.
+
+
+ - You can share with a maximum of %d chat.
+ - You can share with a maximum of %d chats.
+
Select Signal recipients
No Signal contacts
You can only use the camera button to send photos to Signal contacts.
@@ -2159,7 +2163,18 @@
Read More
-
+
+ %1$s in %2$s
+
+
+ - %1$d message
+ - %1$d messages
+
+
+
+ - %1$d chats
+ - %1$d chats
+
%1$d new messages in %2$d chats
Most recent from: %1$s
Locked message
@@ -2905,7 +2920,10 @@
Clear message history?
This will permanently delete all message history and media from your device that are older than %1$s.
- This will permanently trim all chats to the %1$s most recent messages.
+
+ - This will permanently trim all chats to the most recent message.
+ - This will permanently trim all chats to the %1$s most recent messages.
+
This will permanently delete all message history and media from your device.
Are you sure you want to delete all message history?
All message history will be permanently removed. This action cannot be undone.