Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 671e4cb3 authored by Annie Chin's avatar Annie Chin
Browse files

Localize numbers throughout app.

Bug: 21650094

There was inconsistent localization for certain numbers.
Fixed the following:
-Alarm set toasts
-Timer notifications
-Snooze duration (Settings)
-Auto silence duration (Settings)

Change-Id: I2842afa9b2e5d730f2652d9acb8cccffe540a170
parent 452b68b6
Loading
Loading
Loading
Loading
+23 −17
Original line number Diff line number Diff line
@@ -176,23 +176,29 @@
        <item>Alarm set for <xliff:g id="DAYS" example="2 days">%1$s</xliff:g>, <xliff:g id="HOURS" example="2 hours">%2$s</xliff:g>, and <xliff:g id="MINUTES" example="2 minutes">%3$s</xliff:g> from now.</item>
    </string-array>

    <!-- Alarm confirmation toast: singular day -->
    <string name="day">"1 day"</string>

    <!-- Alarm confirmation toast: plural days -->
    <string name="days">"<xliff:g id="days">%s</xliff:g> days"</string>

    <!-- Alarm confirmation toast: singular hour -->
    <string name="hour">1 hour</string>

    <!-- Alarm confirmation toast: plural hours -->
    <string name="hours"><xliff:g id="hours">%s</xliff:g> hours</string>
    <!-- Alarm confirmation toast: days -->
    <plurals name="days">
        <!-- Duration for one day -->
        <item quantity="one">1 day</item>
        <!-- Duration for more than one day -->
        <item quantity="other"><xliff:g id="number" example="7">%s</xliff:g> days</item>
    </plurals>

    <!-- Alarm confirmation toast: singular minute  -->
    <string name="minute">"1 minute"</string>
    <!-- Alarm confirmation toast and timer notification: hours -->
    <plurals name="hours">
        <!-- Duration for one hour -->
        <item quantity="one">1 hour</item>
        <!-- Duration for more than one hour -->
        <item quantity="other"><xliff:g id="number" example="7">%s</xliff:g> hours</item>
    </plurals>

    <!-- Alarm confirmation toast: plural minutes  -->
    <string name="minutes">"<xliff:g id="minutes">%s</xliff:g> minutes"</string>
    <!-- Alarm confirmation toast and timer notification: minutes -->
    <plurals name="minutes">
        <!-- Duration for one minute -->
        <item quantity="one">1 minute</item>
        <!-- Duration for more than one minute -->
        <item quantity="other"><xliff:g id="number" example="7">%s</xliff:g> minutes</item>
    </plurals>

    <!-- Repeat options that appear under an alarm on main Alarm Clock
         screen to identify repetition schedule: special case for when
@@ -225,7 +231,7 @@
        <!-- Duration for one minute -->
        <item quantity="one">1 minute</item>
        <!-- Duration for more than one minute -->
        <item quantity="other"><xliff:g id="number" example="7">%d</xliff:g> minutes</item>
        <item quantity="other"><xliff:g id="number" example="7">%s</xliff:g> minutes</item>
    </plurals>

    <plurals name="snooze_picker_label">
@@ -243,7 +249,7 @@
        <!-- Duration for one minute -->
        <item quantity="one">1 minute</item>
        <!-- Duration for more than one minute -->
        <item quantity="other"><xliff:g id="number" example="7">%d</xliff:g> minutes</item>
        <item quantity="other"><xliff:g id="formatted_number" example="7">%s</xliff:g> minutes</item>
    </plurals>


+8 −15
Original line number Diff line number Diff line
@@ -116,27 +116,20 @@ public class AlarmUtils {
    }

    /**
     * format "Alarm set for 2 days 7 hours and 53 minutes from
     * now"
     * format "Alarm set for 2 days 7 hours and 53 minutes from now"
     */
    private static String formatToast(Context context, long timeInMillis) {
        long delta = timeInMillis - System.currentTimeMillis();
        long hours = delta / (1000 * 60 * 60);
        long minutes = delta / (1000 * 60) % 60;
        long days = hours / 24;
        final long delta = timeInMillis - System.currentTimeMillis();
        int hours = (int) delta / (1000 * 60 * 60);
        final int minutes = (int) delta / (1000 * 60) % 60;
        final int days = hours / 24;
        hours = hours % 24;

        String daySeq = (days == 0) ? "" :
                (days == 1) ? context.getString(R.string.day) :
                        context.getString(R.string.days, Long.toString(days));
        String daySeq = Utils.getNumberFormattedQuantityString(context, R.plurals.days, days);

        String minSeq = (minutes == 0) ? "" :
                (minutes == 1) ? context.getString(R.string.minute) :
                        context.getString(R.string.minutes, Long.toString(minutes));
        String minSeq = Utils.getNumberFormattedQuantityString(context, R.plurals.minutes, minutes);

        String hourSeq = (hours == 0) ? "" :
                (hours == 1) ? context.getString(R.string.hour) :
                        context.getString(R.string.hours, Long.toString(hours));
        String hourSeq = Utils.getNumberFormattedQuantityString(context, R.plurals.hours, hours);

        boolean dispDays = days > 0;
        boolean dispHour = hours > 0;
+2 −2
Original line number Diff line number Diff line
@@ -226,8 +226,8 @@ public class SettingsActivity extends BaseActivity {
            if (i == -1) {
                listPref.setSummary(R.string.auto_silence_never);
            } else {
                listPref.setSummary(getResources().getQuantityString(R.plurals.auto_silence_summary,
                        i, i));
                listPref.setSummary(Utils.getNumberFormattedQuantityString(getContext(),
                        R.plurals.auto_silence_summary, i));
            }
        }

+2 −2
Original line number Diff line number Diff line
@@ -90,8 +90,8 @@ public class SnoozeLengthDialog extends DialogPreference {
    }

    public void setSummary() {
        setSummary(mContext.getResources().getQuantityString(R.plurals.snooze_duration,
                mSnoozeMinutes, mSnoozeMinutes));
        setSummary(Utils.getNumberFormattedQuantityString(mContext, R.plurals.snooze_duration,
                        mSnoozeMinutes));
    }

    public int getCurrentValue() {
+12 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ import com.android.deskclock.stopwatch.Stopwatches;
import com.android.deskclock.timer.Timers;
import com.android.deskclock.worldclock.CityObj;

import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
@@ -701,4 +702,15 @@ public class Utils {
        // Track the Locale used to generate these weekdays
        sLocaleUsedForWeekdays = Locale.getDefault();
    }

    /**
     * @param context
     * @param id Resource id of the plural
     * @param quantity integer value
     * @return string with properly localized numbers
     */
    public static String getNumberFormattedQuantityString(Context context, int id, int quantity) {
        final String localizedQuantity = NumberFormat.getInstance().format(quantity);
        return context.getResources().getQuantityString(id, quantity, localizedQuantity);
    }
}
Loading