package com.code44.finance.ui.dialogs;
import android.app.Dialog;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.FragmentManager;
import android.widget.TimePicker;
import org.joda.time.DateTime;
public class TimePickerDialog extends BaseDialogFragment implements android.app.TimePickerDialog.OnTimeSetListener {
private static final String ARG_HOUR_OF_DAY = "ARG_HOUR_OF_DAY";
private static final String ARG_MINUTE = "ARG_MINUTE";
private static final String FRAGMENT_TIME_PICKER = TimePickerDialog.class.getName() + ".FRAGMENT_TIME_PICKER";
public static void show(FragmentManager fragmentManager, int requestCode, long timestamp) {
final DateTime date = new DateTime(timestamp);
show(fragmentManager, requestCode, date.getHourOfDay(), date.getMinuteOfHour());
}
public static void show(FragmentManager fragmentManager, int requestCode, int hourOfDay, int minute) {
final Bundle args = new Bundle();
args.putInt(ARG_REQUEST_CODE, requestCode);
args.putInt(ARG_HOUR_OF_DAY, hourOfDay);
args.putInt(ARG_MINUTE, minute);
final TimePickerDialog fragment = new TimePickerDialog();
fragment.setArguments(args);
fragment.show(fragmentManager, FRAGMENT_TIME_PICKER);
}
@NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) {
final int hourOfDay = getArguments().getInt(ARG_HOUR_OF_DAY);
final int minute = getArguments().getInt(ARG_MINUTE);
return new android.app.TimePickerDialog(getActivity(), this, hourOfDay, minute, true);
}
@Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
getEventBus().post(new TimeSelected(getArguments().getInt(ARG_REQUEST_CODE), hourOfDay, minute));
}
public static final class TimeSelected {
private final int requestCode;
private final int hourOfDay;
private final int minute;
public TimeSelected(int requestCode, int hourOfDay, int minute) {
this.requestCode = requestCode;
this.hourOfDay = hourOfDay;
this.minute = minute;
}
public int getRequestCode() {
return requestCode;
}
public int getHourOfDay() {
return hourOfDay;
}
public int getMinute() {
return minute;
}
}
}