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

Commit 5658fd5f authored by Roman Birg's avatar Roman Birg
Browse files

DeskClock: consolidate Alarm picker to one dialog



If you picked ringtone, another dialog would pop up asking whether you
wanted a ringtone or music. Instead we can combine this into one dialog.

Change-Id: I7f33fef79bd86c5387ac96a955e4c3067d613d40
Signed-off-by: default avatarRoman Birg <roman@cyngn.com>
parent 5aabc8f1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@

    <string-array name="ringtone_picker_entries" translatable="false">
        <item>@string/alarm_type_ringtone</item>
        <item>@string/alarm_select_external</item>
        <item>@string/alarm_type_playlist</item>
        <item>@string/alarm_type_random</item>
    </string-array>
+13 −42
Original line number Diff line number Diff line
@@ -554,6 +554,8 @@ public class AlarmClockFragment extends DeskClockFragment implements
                    RingtoneManager.TYPE_ALARM);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT,
                    false);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DIALOG_THEME,
                    android.R.style.Theme_Material_Dialog);
            AlarmClockFragment.this.startActivityForResult(intent, REQUEST_CODE_RINGTONE);
        } else {
            final Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
@@ -564,29 +566,6 @@ public class AlarmClockFragment extends DeskClockFragment implements
        }
    }

    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(
@@ -597,13 +576,20 @@ public class AlarmClockFragment extends DeskClockFragment implements
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        switch (which) {
                            case 0:
                                launchSingleRingTonePicker(alarm);
                            case SEL_SRC_RINGTONE: //0
                                AlarmClockFragment.this.mSelectSource = which;
                                AlarmClockFragment.this.mSelectedAlarm = alarm;
                                AlarmClockFragment.this.sendPickIntent();
                                break;
                            case 1:
                                launchSinglePlaylistPicker(alarm);
                            case SEL_SRC_EXTERNAL: //1
                                AlarmClockFragment.this.mSelectSource = which;
                                AlarmClockFragment.this.mSelectedAlarm = alarm;
                                AlarmClockFragment.this.sendPickIntent();
                                break;
                            case 2:
                                launchSinglePlaylistPicker(alarm);
                                break;
                            case 3:
                                alarm.alert = AlarmMultiPlayer.RANDOM_URI;
                                asyncUpdateAlarm(alarm, false);
                                break;
@@ -647,21 +633,6 @@ public class AlarmClockFragment extends DeskClockFragment implements
                .show();
    }

    private void launchSingleRingTonePicker(Alarm alarm) {
        mSelectedAlarm = alarm;
        RingTonePickerDialogListener listener = new RingTonePickerDialogListener(this);
        new AlertDialog.Builder(getActivity())
                .setTitle(getResources().getString(R.string.alarm_select))
                .setSingleChoiceItems(
                        new String[] {
                                getString(R.string.alarm_select_ringtone),
                                getString(R.string.alarm_select_external) },
                        mSelectSource, listener)
                .setPositiveButton(getString(android.R.string.ok), listener)
                .setNegativeButton(getString(android.R.string.cancel), listener)
                .show();
    }

    private void launchProfilePicker(Alarm alarm) {
        mSelectedAlarm = alarm;
        final Intent intent = new Intent(ProfileManager.ACTION_PROFILE_PICKER);