Loading res/values-zh-rCN/cm_strings.xml +5 −0 Original line number Diff line number Diff line Loading @@ -52,4 +52,9 @@ <string name="alarm_type_ringtone">铃声</string> <string name="alarm_type_random">随机</string> <string name="warn_silent_alarm_title">闹钟音量为静音</string> <string name="alarm_select">选择铃声</string> <string name="alarm_select_ringtone">铃声</string> <string name="alarm_select_external">音乐</string> <string name="alarm_select_ok">确定</string> <string name="alarm_select_cancel">取消</string> </resources> res/values/cm_strings.xml +11 −0 Original line number Diff line number Diff line Loading @@ -82,4 +82,15 @@ <!-- Warn Silent Alarm title --> <string name="warn_silent_alarm_title">Alarm volume is silent</string> <!-- Select the source of the alarm --> <string name="alarm_select">Select Alarm</string> <!-- Select the ringtone as alarm --> <string name="alarm_select_ringtone">Ringtone</string> <!-- Select the alarm from external device --> <string name="alarm_select_external">Music</string> <!-- Ok for selection --> <string name="alarm_select_ok">OK</string> <!-- Cancel for selection --> <string name="alarm_select_cancel">Cancel</string> </resources> src/com/android/deskclock/AlarmClockFragment.java +75 −8 Original line number Diff line number Diff line Loading @@ -112,6 +112,7 @@ public class AlarmClockFragment extends DeskClockFragment implements private static final int REQUEST_CODE_RINGTONE = 1; private static final int REQUEST_CODE_PROFILE = 2; private static final int REQUEST_CODE_EXTERN_AUDIO = 3; // This extra is used when receiving an intent to create an alarm, but no alarm details // have been passed in, so the alarm page should start the process of creating a new alarm. Loading Loading @@ -144,6 +145,10 @@ public class AlarmClockFragment extends DeskClockFragment implements private View mUndoFrame; private Alarm mSelectedAlarm; private static final String SEL_AUDIO_SRC = "audio/*"; private static final int SEL_SRC_RINGTONE = 0; private static final int SEL_SRC_EXTERNAL = 1; private int mSelectSource = SEL_SRC_RINGTONE; private long mScrollToAlarmId = -1; private Loader mCursorLoader = null; Loading Loading @@ -698,6 +703,50 @@ public class AlarmClockFragment extends DeskClockFragment implements mAdapter.swapCursor(null); } private void sendPickIntent() { if (mSelectSource == SEL_SRC_RINGTONE) { Uri oldRingtone = Alarm.NO_RINGTONE_URI.equals( AlarmClockFragment.this.mSelectedAlarm.alert) ? null : mSelectedAlarm.alert; final Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, oldRingtone); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALARM); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false); AlarmClockFragment.this.startActivityForResult(intent, REQUEST_CODE_RINGTONE); } else { final Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, AlarmClockFragment.this.mSelectedAlarm.alert); intent.setType(SEL_AUDIO_SRC); AlarmClockFragment.this.startActivityForResult(intent, REQUEST_CODE_EXTERN_AUDIO); } } private class RingTonePickerDialogListener implements DialogInterface.OnClickListener { private AlarmClockFragment alarm; public RingTonePickerDialogListener(AlarmClockFragment clock) { alarm = clock; } public void onClick(DialogInterface dialog, int which) { switch (which) { case SEL_SRC_RINGTONE: case SEL_SRC_EXTERNAL: alarm.mSelectSource = which; break; case DialogInterface.BUTTON_POSITIVE: alarm.sendPickIntent(); case DialogInterface.BUTTON_NEGATIVE: default: dialog.dismiss(); break; } } } private void launchRingTonePicker(final Alarm alarm) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.alarm_picker_title).setItems( Loading @@ -724,12 +773,18 @@ public class AlarmClockFragment extends DeskClockFragment implements private void launchSingleRingTonePicker(Alarm alarm) { mSelectedAlarm = alarm; Uri oldRingtone = Alarm.NO_RINGTONE_URI.equals(alarm.alert) ? null : alarm.alert; final Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, oldRingtone); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALARM); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false); startActivityForResult(intent, REQUEST_CODE_RINGTONE); RingTonePickerDialogListener listener = new RingTonePickerDialogListener(this); new AlertDialog.Builder(getActivity()) .setTitle(getResources().getString(R.string.alarm_select)) .setSingleChoiceItems( new String[] { getResources().getString(R.string.alarm_select_ringtone), getResources().getString(R.string.alarm_select_external) }, mSelectSource, listener) .setPositiveButton(getResources().getString(R.string.alarm_select_ok),listener) .setNegativeButton(getResources().getString( R.string.alarm_select_cancel),listener) .show(); } private void launchProfilePicker(Alarm alarm) { Loading @@ -741,11 +796,22 @@ public class AlarmClockFragment extends DeskClockFragment implements startActivityForResult(intent, REQUEST_CODE_PROFILE); } private void saveRingtoneUri(Intent intent) { Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); private Uri getRingtoneUri(Intent intent) { Uri uri; if (mSelectSource == SEL_SRC_RINGTONE) { uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); } else { uri = intent.getData(); } if (uri == null) { uri = Alarm.NO_RINGTONE_URI; } return uri; } private void saveRingtoneUri(Intent intent) { Uri uri = getRingtoneUri(intent); mSelectedAlarm.alert = uri; // Save the last selected ringtone as the default for new alarms Loading Loading @@ -798,6 +864,7 @@ public class AlarmClockFragment extends DeskClockFragment implements if (resultCode == Activity.RESULT_OK) { switch (requestCode) { case REQUEST_CODE_RINGTONE: case REQUEST_CODE_EXTERN_AUDIO: saveRingtoneUri(data); break; case REQUEST_CODE_PROFILE: Loading Loading
res/values-zh-rCN/cm_strings.xml +5 −0 Original line number Diff line number Diff line Loading @@ -52,4 +52,9 @@ <string name="alarm_type_ringtone">铃声</string> <string name="alarm_type_random">随机</string> <string name="warn_silent_alarm_title">闹钟音量为静音</string> <string name="alarm_select">选择铃声</string> <string name="alarm_select_ringtone">铃声</string> <string name="alarm_select_external">音乐</string> <string name="alarm_select_ok">确定</string> <string name="alarm_select_cancel">取消</string> </resources>
res/values/cm_strings.xml +11 −0 Original line number Diff line number Diff line Loading @@ -82,4 +82,15 @@ <!-- Warn Silent Alarm title --> <string name="warn_silent_alarm_title">Alarm volume is silent</string> <!-- Select the source of the alarm --> <string name="alarm_select">Select Alarm</string> <!-- Select the ringtone as alarm --> <string name="alarm_select_ringtone">Ringtone</string> <!-- Select the alarm from external device --> <string name="alarm_select_external">Music</string> <!-- Ok for selection --> <string name="alarm_select_ok">OK</string> <!-- Cancel for selection --> <string name="alarm_select_cancel">Cancel</string> </resources>
src/com/android/deskclock/AlarmClockFragment.java +75 −8 Original line number Diff line number Diff line Loading @@ -112,6 +112,7 @@ public class AlarmClockFragment extends DeskClockFragment implements private static final int REQUEST_CODE_RINGTONE = 1; private static final int REQUEST_CODE_PROFILE = 2; private static final int REQUEST_CODE_EXTERN_AUDIO = 3; // This extra is used when receiving an intent to create an alarm, but no alarm details // have been passed in, so the alarm page should start the process of creating a new alarm. Loading Loading @@ -144,6 +145,10 @@ public class AlarmClockFragment extends DeskClockFragment implements private View mUndoFrame; private Alarm mSelectedAlarm; private static final String SEL_AUDIO_SRC = "audio/*"; private static final int SEL_SRC_RINGTONE = 0; private static final int SEL_SRC_EXTERNAL = 1; private int mSelectSource = SEL_SRC_RINGTONE; private long mScrollToAlarmId = -1; private Loader mCursorLoader = null; Loading Loading @@ -698,6 +703,50 @@ public class AlarmClockFragment extends DeskClockFragment implements mAdapter.swapCursor(null); } private void sendPickIntent() { if (mSelectSource == SEL_SRC_RINGTONE) { Uri oldRingtone = Alarm.NO_RINGTONE_URI.equals( AlarmClockFragment.this.mSelectedAlarm.alert) ? null : mSelectedAlarm.alert; final Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, oldRingtone); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALARM); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false); AlarmClockFragment.this.startActivityForResult(intent, REQUEST_CODE_RINGTONE); } else { final Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, AlarmClockFragment.this.mSelectedAlarm.alert); intent.setType(SEL_AUDIO_SRC); AlarmClockFragment.this.startActivityForResult(intent, REQUEST_CODE_EXTERN_AUDIO); } } private class RingTonePickerDialogListener implements DialogInterface.OnClickListener { private AlarmClockFragment alarm; public RingTonePickerDialogListener(AlarmClockFragment clock) { alarm = clock; } public void onClick(DialogInterface dialog, int which) { switch (which) { case SEL_SRC_RINGTONE: case SEL_SRC_EXTERNAL: alarm.mSelectSource = which; break; case DialogInterface.BUTTON_POSITIVE: alarm.sendPickIntent(); case DialogInterface.BUTTON_NEGATIVE: default: dialog.dismiss(); break; } } } private void launchRingTonePicker(final Alarm alarm) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.alarm_picker_title).setItems( Loading @@ -724,12 +773,18 @@ public class AlarmClockFragment extends DeskClockFragment implements private void launchSingleRingTonePicker(Alarm alarm) { mSelectedAlarm = alarm; Uri oldRingtone = Alarm.NO_RINGTONE_URI.equals(alarm.alert) ? null : alarm.alert; final Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, oldRingtone); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALARM); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false); startActivityForResult(intent, REQUEST_CODE_RINGTONE); RingTonePickerDialogListener listener = new RingTonePickerDialogListener(this); new AlertDialog.Builder(getActivity()) .setTitle(getResources().getString(R.string.alarm_select)) .setSingleChoiceItems( new String[] { getResources().getString(R.string.alarm_select_ringtone), getResources().getString(R.string.alarm_select_external) }, mSelectSource, listener) .setPositiveButton(getResources().getString(R.string.alarm_select_ok),listener) .setNegativeButton(getResources().getString( R.string.alarm_select_cancel),listener) .show(); } private void launchProfilePicker(Alarm alarm) { Loading @@ -741,11 +796,22 @@ public class AlarmClockFragment extends DeskClockFragment implements startActivityForResult(intent, REQUEST_CODE_PROFILE); } private void saveRingtoneUri(Intent intent) { Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); private Uri getRingtoneUri(Intent intent) { Uri uri; if (mSelectSource == SEL_SRC_RINGTONE) { uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); } else { uri = intent.getData(); } if (uri == null) { uri = Alarm.NO_RINGTONE_URI; } return uri; } private void saveRingtoneUri(Intent intent) { Uri uri = getRingtoneUri(intent); mSelectedAlarm.alert = uri; // Save the last selected ringtone as the default for new alarms Loading Loading @@ -798,6 +864,7 @@ public class AlarmClockFragment extends DeskClockFragment implements if (resultCode == Activity.RESULT_OK) { switch (requestCode) { case REQUEST_CODE_RINGTONE: case REQUEST_CODE_EXTERN_AUDIO: saveRingtoneUri(data); break; case REQUEST_CODE_PROFILE: Loading