package com.classic.car.ui.fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.appeaser.sublimepickerlibrary.SublimePicker;
import com.appeaser.sublimepickerlibrary.datepicker.SelectedDate;
import com.appeaser.sublimepickerlibrary.helpers.SublimeListenerAdapter;
import com.appeaser.sublimepickerlibrary.helpers.SublimeOptions;
import com.appeaser.sublimepickerlibrary.recurrencepicker.SublimeRecurrencePicker;
import java.util.Calendar;
/**
* 应用名称: CarAssistant
* 包 名 称: com.classic.car.ui.fragment
*
* 文件描述:日期选择
* 创 建 人:续写经典
* 创建时间:16/6/26 下午5:51
*/
public class DatePickerFragment extends DialogFragment {
private SublimePicker mSublimePicker;
private Callback mCallback;
public static DatePickerFragment newInstance() {
return new DatePickerFragment();
}
@Nullable @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mSublimePicker = (SublimePicker) inflater.inflate(com.appeaser.sublimepickerlibrary.R.layout.sublime_picker,
container, false);
initSublimePicker();
return mSublimePicker;
}
@Override public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NO_TITLE, 0);
}
private void initSublimePicker() {
SublimeOptions options = new SublimeOptions();
options.setDisplayOptions(SublimeOptions.ACTIVATE_DATE_PICKER);
options.setPickerToShow(SublimeOptions.Picker.DATE_PICKER);
//final Calendar calendar = Calendar.getInstance();
//options.setTimeParams(calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true);
mSublimePicker.initializePicker(options, new SublimeListenerAdapter() {
@Override
public void onDateTimeRecurrenceSet(SublimePicker sublimeMaterialPicker, SelectedDate selectedDate,
int hourOfDay, int minute,
SublimeRecurrencePicker.RecurrenceOption recurrenceOption,
String recurrenceRule) {
if (null != mCallback && null != selectedDate && null != selectedDate.getFirstDate()) {
mCallback.onFinish(selectedDate.getFirstDate());
}
dismiss();
}
@Override public void onCancelled() {
if (null != mCallback) {
mCallback.onCancel();
}
dismiss();
}
});
}
@Override public void show(FragmentManager manager, String tag) {
try{
super.show(manager, tag);
}catch (Exception e){
e.printStackTrace();
if(isAdded()){
FragmentTransaction transaction = manager.beginTransaction();
transaction.remove(this);
show(transaction, tag);
}
}
}
public void setCallback(Callback callback) {
this.mCallback = callback;
}
public interface Callback {
void onCancel();
void onFinish(Calendar calendar);
}
}