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

Commit 9345e206 authored by James Kung's avatar James Kung Committed by Android Git Automerger
Browse files

am aafaa5f3: Pluralizing recurrence picker interval strings

* commit 'aafaa5f3':
  Pluralizing recurrence picker interval strings
parents 7c2b1a1b aafaa5f3
Loading
Loading
Loading
Loading
+29 −8
Original line number Diff line number Diff line
@@ -689,14 +689,35 @@
    <string name="recurrence_dialog_title">Repeat</string>
    <!-- Dialog title for recurrence picker when one-time event is selected [CHAR LIMIT=20] -->
    <string name="recurrence_dialog_title_never">Never repeats</string>
    <!-- String to describe how frequent to repeat an event e.g. every 5 days [CHAR LIMIT=20] -->
    <string name="recurrence_interval_daily">Every <xliff:g id="count">%d</xliff:g> day(s)</string>
    <!-- String to describe how frequent to repeat an event e.g. every 5 weeks [CHAR LIMIT=20] -->
    <string name="recurrence_interval_weekly">Every <xliff:g id="count">%d</xliff:g> week(s)</string>
    <!-- String to describe how frequent to repeat an event e.g. every 5 months [CHAR LIMIT=20] -->
    <string name="recurrence_interval_monthly">Every <xliff:g id="count">%d</xliff:g> month(s)</string>
    <!-- String to describe how frequent to repeat an event e.g. every 5 years [CHAR LIMIT=20] -->
    <string name="recurrence_interval_yearly">Every <xliff:g id="count">%d</xliff:g> year(s)</string>

    <!-- Strings to describe how frequently to repeat an event (e.g. every 5 days) -->
    <plurals name="recurrence_interval_daily">
        <!-- Singular form [CHAR LIMIT=30] -->
        <item quantity="one">Every <xliff:g id="count">%d</xliff:g> day</item>
        <!-- Plural form [CHAR LIMIT=30] -->
        <item quantity="other">Every <xliff:g id="count">%d</xliff:g> days</item>
    </plurals>
    <!-- Strings to describe how frequently to repeat an event (e.g. every 5 weeks) -->
    <plurals name="recurrence_interval_weekly">
        <!-- Singular form [CHAR LIMIT=30] -->
        <item quantity="one">Every <xliff:g id="count">%d</xliff:g> week</item>
        <!-- Plural form [CHAR LIMIT=30] -->
        <item quantity="other">Every <xliff:g id="count">%d</xliff:g> weeks</item>
    </plurals>
    <!-- Strings to describe how frequently to repeat an event (e.g. every 5 months) -->
    <plurals name="recurrence_interval_monthly">
        <!-- Singular form [CHAR LIMIT=30] -->
        <item quantity="one">Every <xliff:g id="count">%d</xliff:g> month</item>
        <!-- Plural form [CHAR LIMIT=30] -->
        <item quantity="other">Every <xliff:g id="count">%d</xliff:g> months</item>
    </plurals>
    <!-- Strings to describe how frequently to repeat an event (e.g. every 5 years) -->
    <plurals name="recurrence_interval_yearly">
        <!-- Singular form [CHAR LIMIT=30] -->
        <item quantity="one">Every <xliff:g id="count">%d</xliff:g> year</item>
        <!-- Plural form [CHAR LIMIT=30] -->
        <item quantity="other">Every <xliff:g id="count">%d</xliff:g> years</item>
    </plurals>

    <!-- Repeat an monthly event on the same day of every month [CHAR LIMIT=20] -->
    <string name="recurrence_month_pattern_by_day">on the same day each month</string>
+17 −7
Original line number Diff line number Diff line
@@ -337,6 +337,8 @@ public class RecurrencePickerDialog extends DialogFragment implements OnItemSele
    private TextView mIntervalPreText;
    private TextView mIntervalPostText;

    private int mIntervalResId = -1;

    private LinearLayout mEndGroup;
    private Spinner mEndSpinner;
    private ImageButton mEndDateTextView;
@@ -725,6 +727,10 @@ public class RecurrencePickerDialog extends DialogFragment implements OnItemSele
            @Override
            void onChange(int v) {
                mModel.interval = v;
                if (mIntervalResId != -1 && mInterval.getText().toString().length() > 0) {
                    updateIntervalText();
                    mInterval.requestLayout();
                }
            }
        });
        mIntervalPreText = (TextView) mView.findViewById(R.id.intervalPreText);
@@ -895,11 +901,11 @@ public class RecurrencePickerDialog extends DialogFragment implements OnItemSele

            switch (mModel.freq) {
                case Model.FREQ_DAILY:
                    updateIntervalText(R.string.recurrence_interval_daily);
                    mIntervalResId = R.plurals.recurrence_interval_daily;
                    break;

                case Model.FREQ_WEEKLY:
                    updateIntervalText(R.string.recurrence_interval_weekly);
                    mIntervalResId = R.plurals.recurrence_interval_weekly;

                    int count = 0;
                    for (int i = 0; i < 7; i++) {
@@ -920,7 +926,7 @@ public class RecurrencePickerDialog extends DialogFragment implements OnItemSele
                    break;

                case Model.FREQ_MONTHLY:
                    updateIntervalText(R.string.recurrence_interval_monthly);
                    mIntervalResId = R.plurals.recurrence_interval_monthly;

                    if (mModel.monthlyRepeat == Model.MONTHLY_BY_DATE) {
                        mMonthRepeatByRadioGroup.check(R.id.repeatMonthlyByNthDayOfMonth);
@@ -941,10 +947,10 @@ public class RecurrencePickerDialog extends DialogFragment implements OnItemSele
                    break;

                case Model.FREQ_YEARLY:
                    updateIntervalText(R.string.recurrence_interval_yearly);
                    mIntervalResId = R.plurals.recurrence_interval_yearly;
                    break;
            }

            updateIntervalText();
            mEndSpinner.setSelection(mModel.end);
            if (mModel.end == Model.END_BY_DATE) {
                final String dateStr = DateUtils.formatDateTime(getActivity(),
@@ -994,9 +1000,13 @@ public class RecurrencePickerDialog extends DialogFragment implements OnItemSele
    }

    // TODO Test and update for Right-to-Left
    private void updateIntervalText(int intervalStringId) {
    private void updateIntervalText() {
        if (mIntervalResId == -1) {
            return;
        }

        final String INTERVAL_COUNT_MARKER = "%d";
        String intervalString = mResources.getString(intervalStringId);
        String intervalString = mResources.getQuantityString(mIntervalResId, mModel.interval);
        int markerStart = intervalString.indexOf(INTERVAL_COUNT_MARKER);

        if (markerStart != -1) {