summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--android/app/res/values/strings.xml14
-rw-r--r--android/app/src/com/android/bluetooth/opp/BluetoothOppNotification.java16
-rw-r--r--android/app/src/com/android/bluetooth/opp/BluetoothOppUtility.java24
3 files changed, 34 insertions, 20 deletions
diff --git a/android/app/res/values/strings.xml b/android/app/res/values/strings.xml
index 8e65894690..e6409cbe42 100644
--- a/android/app/res/values/strings.xml
+++ b/android/app/res/values/strings.xml
@@ -211,14 +211,12 @@
<string name="transfer_clear_dlg_msg">All items will be cleared from the list.</string>
<string name="outbound_noti_title">Bluetooth share: Sent files</string>
<string name="inbound_noti_title">Bluetooth share: Received files</string>
- <plurals name="noti_caption_unsuccessful">
- <item quantity="one"><xliff:g id="unsuccessful_number">%1$d</xliff:g> unsuccessful.</item>
- <item quantity="other"><xliff:g id="unsuccessful_number">%1$d</xliff:g> unsuccessful.</item>
- </plurals>
- <plurals name="noti_caption_success">
- <item quantity="one"><xliff:g id="successful_number">%1$d</xliff:g> successful, %2$s</item>
- <item quantity="other"><xliff:g id="successful_number">%1$d</xliff:g> successful, %2$s</item>
- </plurals>
+ <string name="noti_caption_unsuccessful"> {count, plural,
+ other {# unsuccessful.}
+ }</string>
+ <string name="noti_caption_success"> {count, plural,
+ other {# successful, %1$s}
+ }</string>
<string name="transfer_menu_clear_all">Clear list</string>
<string name="transfer_menu_open">Open</string>
diff --git a/android/app/src/com/android/bluetooth/opp/BluetoothOppNotification.java b/android/app/src/com/android/bluetooth/opp/BluetoothOppNotification.java
index c5423941ed..4a64866d77 100644
--- a/android/app/src/com/android/bluetooth/opp/BluetoothOppNotification.java
+++ b/android/app/src/com/android/bluetooth/opp/BluetoothOppNotification.java
@@ -438,12 +438,8 @@ class BluetoothOppNotification {
outboundNum = outboundSuccNumber + outboundFailNumber;
// create the outbound notification
if (outboundNum > 0) {
- String unsuccessCaption = mContext.getResources()
- .getQuantityString(R.plurals.noti_caption_unsuccessful, outboundFailNumber,
- outboundFailNumber);
- String caption = mContext.getResources()
- .getQuantityString(R.plurals.noti_caption_success, outboundSuccNumber,
- outboundSuccNumber, unsuccessCaption);
+ String caption = BluetoothOppUtility.formatResultText(outboundSuccNumber,
+ outboundFailNumber, mContext);
Intent contentIntent = new Intent(Constants.ACTION_OPEN_OUTBOUND_TRANSFER).setClassName(
Constants.THIS_PACKAGE_NAME, BluetoothOppReceiver.class.getName());
Intent deleteIntent = new Intent(Constants.ACTION_COMPLETE_HIDE).setClassName(
@@ -508,12 +504,8 @@ class BluetoothOppNotification {
inboundNum = inboundSuccNumber + inboundFailNumber;
// create the inbound notification
if (inboundNum > 0) {
- String unsuccessCaption = mContext.getResources()
- .getQuantityString(R.plurals.noti_caption_unsuccessful, inboundFailNumber,
- inboundFailNumber);
- String caption = mContext.getResources()
- .getQuantityString(R.plurals.noti_caption_success, inboundSuccNumber,
- inboundSuccNumber, unsuccessCaption);
+ String caption = BluetoothOppUtility.formatResultText(inboundSuccNumber,
+ inboundFailNumber, mContext);
Intent contentIntent = new Intent(Constants.ACTION_OPEN_INBOUND_TRANSFER).setClassName(
Constants.THIS_PACKAGE_NAME, BluetoothOppReceiver.class.getName());
Intent deleteIntent = new Intent(Constants.ACTION_COMPLETE_HIDE).setClassName(
diff --git a/android/app/src/com/android/bluetooth/opp/BluetoothOppUtility.java b/android/app/src/com/android/bluetooth/opp/BluetoothOppUtility.java
index a0a7878442..90f151413f 100644
--- a/android/app/src/com/android/bluetooth/opp/BluetoothOppUtility.java
+++ b/android/app/src/com/android/bluetooth/opp/BluetoothOppUtility.java
@@ -43,6 +43,7 @@ import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.database.Cursor;
+import android.icu.text.MessageFormat;
import android.net.Uri;
import android.os.Environment;
import android.os.ParcelFileDescriptor;
@@ -57,7 +58,10 @@ import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
+import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
@@ -315,6 +319,26 @@ public class BluetoothOppUtility {
}
/**
+ * Helper function to build the result notification text content.
+ */
+ static String formatResultText(int countSuccess, int countUnsuccessful, Context context) {
+ if (context == null) {
+ return null;
+ }
+ Map<String, Object> mapUnsuccessful = new HashMap<>();
+ mapUnsuccessful.put("count", countUnsuccessful);
+
+ Map<String, Object> mapSuccess = new HashMap<>();
+ mapSuccess.put("count", countSuccess);
+
+ return new MessageFormat(context.getResources().getString(R.string.noti_caption_success,
+ new MessageFormat(context.getResources().getString(
+ R.string.noti_caption_unsuccessful),
+ Locale.getDefault()).format(mapUnsuccessful)),
+ Locale.getDefault()).format(mapSuccess);
+ }
+
+ /**
* Whether the device has the "nosdcard" characteristic or not.
*/
public static boolean deviceHasNoSdCard() {