Loading res/values/strings.xml +29 −8 Original line number Diff line number Diff line Loading @@ -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> Loading src/com/android/calendar/recurrencepicker/RecurrencePickerDialog.java +17 −7 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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++) { Loading @@ -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); Loading @@ -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(), Loading Loading @@ -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) { Loading Loading
res/values/strings.xml +29 −8 Original line number Diff line number Diff line Loading @@ -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> Loading
src/com/android/calendar/recurrencepicker/RecurrencePickerDialog.java +17 −7 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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++) { Loading @@ -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); Loading @@ -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(), Loading Loading @@ -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) { Loading