Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.sifb.mw.prod.picker;
- import java.util.Calendar;
- import com.sifb.base.MwActivity;
- import com.sifb.sdk.util.MyLogs;
- import android.app.Dialog;
- import android.content.DialogInterface;
- import android.content.DialogInterface.OnClickListener;
- import android.support.v7.app.AlertDialog;
- import android.support.v7.app.AlertDialog.Builder;
- import android.view.KeyEvent;
- import android.widget.DatePicker;
- import android.widget.LinearLayout;
- public class CalendarDatePicker {
- // -----------------------------------------------------------------
- // Option Picker Boiler Plate
- // -----------------------------------------------------------------
- public static CalendarDatePicker make(final MwActivity pAct) {
- return new CalendarDatePicker(pAct, Calendar.getInstance().getTimeInMillis());
- }
- public static CalendarDatePicker make(final MwActivity pAct, long pSelected) {
- return new CalendarDatePicker(pAct, pSelected);
- }
- // --------------------------------
- // Option Picker Construction
- // --------------------------------
- private MwActivity curAct;
- private long min_date;
- private long max_date;
- private DatePicker dpPicker;
- private long cur_date;
- private final String TXT_DISMISS = "OK";
- private CalendarDateGetter curGetter;
- private Builder dialog;
- private CalendarDatePicker(final MwActivity pAct, long pSelected) {
- curAct = pAct;
- dialog = new AlertDialog.Builder(curAct);
- dialog.setCancelable(false);
- LinearLayout llRoot = new LinearLayout(curAct);
- llRoot.setLayoutParams(new LinearLayout.LayoutParams(android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT));
- dpPicker = new DatePicker(curAct);
- try {
- dpPicker.setCalendarViewShown(false);
- } catch (Exception e) {
- MyLogs.jasper("Build.VERSION.SDK_INT < 11");
- }
- dpPicker.setLayoutParams(new LinearLayout.LayoutParams(android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT));
- setCurDate(pSelected);
- llRoot.addView(dpPicker);
- dialog.setView(llRoot);
- dialog.setPositiveButton(TXT_DISMISS, new OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- if (curGetter != null) {
- curGetter.onReturn(getTimeInMilis());
- }
- dialog.dismiss();
- }
- });
- dialog.setOnKeyListener(new Dialog.OnKeyListener() {
- @Override
- public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_BACK) {
- // if (curListener != null) {
- // curListener.onDismiss(-1);
- // }
- // dialog.dismiss();
- return true;
- } else {
- return false;
- }
- }
- });
- }
- public CalendarDatePicker setCurDate(long milis) {
- cur_date = milis;
- if (cur_date != -1) {
- final Calendar c = Calendar.getInstance();
- c.setTimeInMillis(cur_date);
- int year = c.get(Calendar.YEAR);
- int month = c.get(Calendar.MONTH);
- int dayOfMonth = c.get(Calendar.DAY_OF_MONTH);
- dpPicker.updateDate(year, month, dayOfMonth);
- }
- return this;
- }
- public CalendarDatePicker setMinDate(long milis) {
- min_date = milis;
- if (min_date != -1) {
- dpPicker.setMinDate(min_date);
- }
- return this;
- }
- public CalendarDatePicker setMaxDate(long milis) {
- max_date = milis;
- if (max_date != -1) {
- dpPicker.setMaxDate(max_date);
- }
- return this;
- }
- public CalendarDatePicker setGetter(CalendarDateGetter getter) {
- this.curGetter = getter;
- return this;
- }
- public void show() {
- dialog.create().show();
- }
- public long getTimeInMilis() {
- int day = dpPicker.getDayOfMonth();
- int month = dpPicker.getMonth();
- int year = dpPicker.getYear();
- Calendar calendar = Calendar.getInstance();
- calendar.set(year, month, day, 0, 0, 0);
- return calendar.getTimeInMillis();
- }
- // --------------------------------
- // CalendarDate Picker Interface
- // --------------------------------
- public interface CalendarDateGetter {
- void onReturn(long result);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement