Use RingtonePickerDialogController
This commit is contained in:
parent
3192322811
commit
9c143045b4
@ -55,8 +55,6 @@ public abstract class BaseAlarmViewHolder extends BaseViewHolder<Alarm> {
|
|||||||
private final Drawable mDismissNowDrawable;
|
private final Drawable mDismissNowDrawable;
|
||||||
private final Drawable mCancelSnoozeDrawable;
|
private final Drawable mCancelSnoozeDrawable;
|
||||||
|
|
||||||
// TODO: THis is still here for ExpandedVH's RingtonePickerDialog. If we ever write a
|
|
||||||
// Controller for it, finally delete this.
|
|
||||||
final FragmentManager mFragmentManager;
|
final FragmentManager mFragmentManager;
|
||||||
|
|
||||||
@Bind(R.id.time) TextView mTime;
|
@Bind(R.id.time) TextView mTime;
|
||||||
@ -79,7 +77,6 @@ public abstract class BaseAlarmViewHolder extends BaseViewHolder<Alarm> {
|
|||||||
AppCompatActivity act = (AppCompatActivity) getContext();
|
AppCompatActivity act = (AppCompatActivity) getContext();
|
||||||
mFragmentManager = act.getSupportFragmentManager();
|
mFragmentManager = act.getSupportFragmentManager();
|
||||||
mAddLabelDialogController = new AddLabelDialogController(mFragmentManager,
|
mAddLabelDialogController = new AddLabelDialogController(mFragmentManager,
|
||||||
// TODO: Why can't we implement the interface and pass `this` instead?
|
|
||||||
new AddLabelDialog.OnLabelSetListener() {
|
new AddLabelDialog.OnLabelSetListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onLabelSet(String label) {
|
public void onLabelSet(String label) {
|
||||||
@ -93,7 +90,6 @@ public abstract class BaseAlarmViewHolder extends BaseViewHolder<Alarm> {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
mTimePickerDialogController = new TimePickerDialogController(mFragmentManager, getContext(),
|
mTimePickerDialogController = new TimePickerDialogController(mFragmentManager, getContext(),
|
||||||
// TODO: Why can't we implement the interface and pass `this` instead?
|
|
||||||
new OnTimeSetListener() {
|
new OnTimeSetListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onTimeSet(ViewGroup viewGroup, int hourOfDay, int minute) {
|
public void onTimeSet(ViewGroup viewGroup, int hourOfDay, int minute) {
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import android.content.res.ColorStateList;
|
|||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.media.RingtoneManager;
|
import android.media.RingtoneManager;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.support.annotation.IdRes;
|
||||||
import android.support.v4.graphics.drawable.DrawableCompat;
|
import android.support.v4.graphics.drawable.DrawableCompat;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -18,7 +19,9 @@ import com.philliphsu.clock2.OnListItemInteractionListener;
|
|||||||
import com.philliphsu.clock2.R;
|
import com.philliphsu.clock2.R;
|
||||||
import com.philliphsu.clock2.RingtonePickerDialog;
|
import com.philliphsu.clock2.RingtonePickerDialog;
|
||||||
import com.philliphsu.clock2.aospdatetimepicker.Utils;
|
import com.philliphsu.clock2.aospdatetimepicker.Utils;
|
||||||
|
import com.philliphsu.clock2.settings.RingtonePickerDialogController;
|
||||||
import com.philliphsu.clock2.util.AlarmController;
|
import com.philliphsu.clock2.util.AlarmController;
|
||||||
|
import com.philliphsu.clock2.util.FragmentTagUtils;
|
||||||
|
|
||||||
import butterknife.Bind;
|
import butterknife.Bind;
|
||||||
import butterknife.OnClick;
|
import butterknife.OnClick;
|
||||||
@ -28,7 +31,6 @@ import butterknife.OnClick;
|
|||||||
*/
|
*/
|
||||||
public class ExpandedAlarmViewHolder extends BaseAlarmViewHolder {
|
public class ExpandedAlarmViewHolder extends BaseAlarmViewHolder {
|
||||||
private static final String TAG = "ExpandedAlarmViewHolder";
|
private static final String TAG = "ExpandedAlarmViewHolder";
|
||||||
private static final String TAG_RINGTONE_PICKER = "ringtone_picker";
|
|
||||||
|
|
||||||
@Bind(R.id.ok) Button mOk;
|
@Bind(R.id.ok) Button mOk;
|
||||||
@Bind(R.id.delete) Button mDelete;
|
@Bind(R.id.delete) Button mDelete;
|
||||||
@ -38,6 +40,7 @@ public class ExpandedAlarmViewHolder extends BaseAlarmViewHolder {
|
|||||||
ToggleButton[] mDays;
|
ToggleButton[] mDays;
|
||||||
|
|
||||||
private final ColorStateList mDayToggleColors;
|
private final ColorStateList mDayToggleColors;
|
||||||
|
private final RingtonePickerDialogController mRingtonePickerController;
|
||||||
|
|
||||||
public ExpandedAlarmViewHolder(ViewGroup parent, final OnListItemInteractionListener<Alarm> listener,
|
public ExpandedAlarmViewHolder(ViewGroup parent, final OnListItemInteractionListener<Alarm> listener,
|
||||||
AlarmController controller) {
|
AlarmController controller) {
|
||||||
@ -86,17 +89,26 @@ public class ExpandedAlarmViewHolder extends BaseAlarmViewHolder {
|
|||||||
};
|
};
|
||||||
mDayToggleColors = new ColorStateList(states, colors);
|
mDayToggleColors = new ColorStateList(states, colors);
|
||||||
|
|
||||||
RingtonePickerDialog picker = (RingtonePickerDialog)
|
mRingtonePickerController = new RingtonePickerDialogController(mFragmentManager,
|
||||||
mFragmentManager.findFragmentByTag(TAG_RINGTONE_PICKER);
|
new RingtonePickerDialog.OnRingtoneSelectedListener() {
|
||||||
if (picker != null) {
|
@Override
|
||||||
Log.i(TAG, "Restoring ringtone picker callback");
|
public void onRingtoneSelected(Uri ringtoneUri) {
|
||||||
picker.setOnRingtoneSelectedListener(newOnRingtoneSelectedListener());
|
Log.d(TAG, "Selected ringtone: " + ringtoneUri.toString());
|
||||||
}
|
final Alarm oldAlarm = getAlarm();
|
||||||
|
Alarm newAlarm = oldAlarm.toBuilder()
|
||||||
|
.ringtone(ringtoneUri.toString())
|
||||||
|
.build();
|
||||||
|
oldAlarm.copyMutableFieldsTo(newAlarm);
|
||||||
|
persistUpdatedAlarm(newAlarm, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBind(Alarm alarm) {
|
public void onBind(Alarm alarm) {
|
||||||
super.onBind(alarm);
|
super.onBind(alarm);
|
||||||
|
mRingtonePickerController.tryRestoreCallback(makeTag(R.id.ringtone));
|
||||||
bindDays(alarm);
|
bindDays(alarm);
|
||||||
bindRingtone();
|
bindRingtone();
|
||||||
bindVibrate(alarm.vibrates());
|
bindVibrate(alarm.vibrates());
|
||||||
@ -131,9 +143,8 @@ public class ExpandedAlarmViewHolder extends BaseAlarmViewHolder {
|
|||||||
// // TODO: This is VERY BAD. Use a Controller/Presenter instead.
|
// // TODO: This is VERY BAD. Use a Controller/Presenter instead.
|
||||||
// // The result will be delivered to MainActivity, and then delegated to AlarmsFragment.
|
// // The result will be delivered to MainActivity, and then delegated to AlarmsFragment.
|
||||||
// ((Activity) getContext()).startActivityForResult(intent, AlarmsFragment.REQUEST_PICK_RINGTONE);
|
// ((Activity) getContext()).startActivityForResult(intent, AlarmsFragment.REQUEST_PICK_RINGTONE);
|
||||||
RingtonePickerDialog dialog = RingtonePickerDialog.newInstance(
|
|
||||||
newOnRingtoneSelectedListener(), getSelectedRingtoneUri());
|
mRingtonePickerController.show(getSelectedRingtoneUri(), makeTag(R.id.ringtone));
|
||||||
dialog.show(mFragmentManager, TAG_RINGTONE_PICKER);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@OnClick(R.id.vibrate)
|
@OnClick(R.id.vibrate)
|
||||||
@ -207,18 +218,7 @@ public class ExpandedAlarmViewHolder extends BaseAlarmViewHolder {
|
|||||||
: Uri.parse(ringtone);
|
: Uri.parse(ringtone);
|
||||||
}
|
}
|
||||||
|
|
||||||
private RingtonePickerDialog.OnRingtoneSelectedListener newOnRingtoneSelectedListener() {
|
private String makeTag(@IdRes int viewId) {
|
||||||
return new RingtonePickerDialog.OnRingtoneSelectedListener() {
|
return FragmentTagUtils.makeTag(ExpandedAlarmViewHolder.class, viewId, getItemId());
|
||||||
@Override
|
|
||||||
public void onRingtoneSelected(Uri ringtoneUri) {
|
|
||||||
Log.d(TAG, "Selected ringtone: " + ringtoneUri.toString());
|
|
||||||
final Alarm oldAlarm = getAlarm();
|
|
||||||
Alarm newAlarm = oldAlarm.toBuilder()
|
|
||||||
.ringtone(ringtoneUri.toString())
|
|
||||||
.build();
|
|
||||||
oldAlarm.copyMutableFieldsTo(newAlarm);
|
|
||||||
persistUpdatedAlarm(newAlarm, false);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user