Implement RingtonePickerDialog

This commit is contained in:
Phillip Hsu
2016-09-03 23:41:06 -07:00
parent 1339ad6d00
commit 66cb180887
5 changed files with 97 additions and 28 deletions
@@ -52,7 +52,9 @@ public abstract class BaseAlarmViewHolder extends BaseViewHolder<Alarm> {
// TODO: Should we use VectorDrawable type?
private final Drawable mDismissNowDrawable;
private final Drawable mCancelSnoozeDrawable;
private final FragmentManager mFragmentManager;
// Exposed for use by subclasses (obviously in this package.
final FragmentManager mFragmentManager;
@Bind(R.id.time) TextView mTime;
@Bind(R.id.on_off_switch) SwitchCompat mSwitch;
@@ -1,7 +1,5 @@
package com.philliphsu.clock2.alarms;
import android.app.Activity;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.graphics.drawable.Drawable;
import android.media.RingtoneManager;
@@ -18,6 +16,7 @@ import com.philliphsu.clock2.Alarm;
import com.philliphsu.clock2.DaysOfWeek;
import com.philliphsu.clock2.OnListItemInteractionListener;
import com.philliphsu.clock2.R;
import com.philliphsu.clock2.RingtonePickerDialog;
import com.philliphsu.clock2.aospdatetimepicker.Utils;
import com.philliphsu.clock2.util.AlarmController;
@@ -115,18 +114,25 @@ public class ExpandedAlarmViewHolder extends BaseAlarmViewHolder {
@OnClick(R.id.ringtone)
void showRingtonePickerDialog() {
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALARM)
.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false)
// The ringtone to show as selected when the dialog is opened
.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, getSelectedRingtoneUri())
// Whether to show "Default" item in the list
.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false);
// The ringtone that plays when default option is selected
//.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, DEFAULT_TONE);
// TODO: This is VERY BAD. Use a Controller/Presenter instead.
// The result will be delivered to MainActivity, and then delegated to AlarmsFragment.
((Activity) getContext()).startActivityForResult(intent, AlarmsFragment.REQUEST_PICK_RINGTONE);
// Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
// intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALARM)
// .putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false)
// // The ringtone to show as selected when the dialog is opened
// .putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, getSelectedRingtoneUri())
// // Whether to show "Default" item in the list
// .putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false);
// // The ringtone that plays when default option is selected
// //.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, DEFAULT_TONE);
// // TODO: This is VERY BAD. Use a Controller/Presenter instead.
// // The result will be delivered to MainActivity, and then delegated to AlarmsFragment.
// ((Activity) getContext()).startActivityForResult(intent, AlarmsFragment.REQUEST_PICK_RINGTONE);
RingtonePickerDialog dialog = RingtonePickerDialog.newInstance(new RingtonePickerDialog.OnRingtoneSelectedListener() {
@Override
public void onRingtoneSelected(Uri ringtoneUri) {
Log.d(TAG, "Selected ringtone: " + ringtoneUri);
}
}, getSelectedRingtoneUri());
dialog.show(mFragmentManager, "TAG");
}
@OnClick(R.id.vibrate)