Advertisement
jasperlow

Untitled

Mar 24th, 2016
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.02 KB | None | 0 0
  1. package com.sifb.mw.prod.picker;
  2.  
  3. import java.util.Calendar;
  4.  
  5. import com.sifb.base.MwActivity;
  6. import com.sifb.sdk.util.MyLogs;
  7.  
  8. import android.app.Dialog;
  9. import android.content.DialogInterface;
  10. import android.content.DialogInterface.OnClickListener;
  11. import android.support.v7.app.AlertDialog;
  12. import android.support.v7.app.AlertDialog.Builder;
  13. import android.view.KeyEvent;
  14. import android.widget.DatePicker;
  15. import android.widget.LinearLayout;
  16.  
  17. public class CalendarDatePicker {
  18. // -----------------------------------------------------------------
  19. // Option Picker Boiler Plate
  20. // -----------------------------------------------------------------
  21.  
  22. public static CalendarDatePicker make(final MwActivity pAct) {
  23. return new CalendarDatePicker(pAct, Calendar.getInstance().getTimeInMillis());
  24. }
  25.  
  26. public static CalendarDatePicker make(final MwActivity pAct, long pSelected) {
  27. return new CalendarDatePicker(pAct, pSelected);
  28. }
  29.  
  30. // --------------------------------
  31. // Option Picker Construction
  32. // --------------------------------
  33.  
  34. private MwActivity curAct;
  35. private long min_date;
  36. private long max_date;
  37. private DatePicker dpPicker;
  38. private long cur_date;
  39. private final String TXT_DISMISS = "OK";
  40. private CalendarDateGetter curGetter;
  41. private Builder dialog;
  42.  
  43. private CalendarDatePicker(final MwActivity pAct, long pSelected) {
  44. curAct = pAct;
  45. dialog = new AlertDialog.Builder(curAct);
  46. dialog.setCancelable(false);
  47. LinearLayout llRoot = new LinearLayout(curAct);
  48. llRoot.setLayoutParams(new LinearLayout.LayoutParams(android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT));
  49. dpPicker = new DatePicker(curAct);
  50. try {
  51. dpPicker.setCalendarViewShown(false);
  52. } catch (Exception e) {
  53. MyLogs.jasper("Build.VERSION.SDK_INT < 11");
  54. }
  55. dpPicker.setLayoutParams(new LinearLayout.LayoutParams(android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT));
  56. setCurDate(pSelected);
  57. llRoot.addView(dpPicker);
  58. dialog.setView(llRoot);
  59. dialog.setPositiveButton(TXT_DISMISS, new OnClickListener() {
  60. @Override
  61. public void onClick(DialogInterface dialog, int which) {
  62. if (curGetter != null) {
  63. curGetter.onReturn(getTimeInMilis());
  64. }
  65. dialog.dismiss();
  66. }
  67. });
  68.  
  69. dialog.setOnKeyListener(new Dialog.OnKeyListener() {
  70. @Override
  71. public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
  72. if (keyCode == KeyEvent.KEYCODE_BACK) {
  73. // if (curListener != null) {
  74. // curListener.onDismiss(-1);
  75. // }
  76. // dialog.dismiss();
  77. return true;
  78. } else {
  79. return false;
  80. }
  81. }
  82. });
  83.  
  84. }
  85.  
  86. public CalendarDatePicker setCurDate(long milis) {
  87. cur_date = milis;
  88. if (cur_date != -1) {
  89. final Calendar c = Calendar.getInstance();
  90. c.setTimeInMillis(cur_date);
  91. int year = c.get(Calendar.YEAR);
  92. int month = c.get(Calendar.MONTH);
  93. int dayOfMonth = c.get(Calendar.DAY_OF_MONTH);
  94. dpPicker.updateDate(year, month, dayOfMonth);
  95. }
  96. return this;
  97. }
  98.  
  99. public CalendarDatePicker setMinDate(long milis) {
  100. min_date = milis;
  101. if (min_date != -1) {
  102. dpPicker.setMinDate(min_date);
  103. }
  104. return this;
  105. }
  106.  
  107. public CalendarDatePicker setMaxDate(long milis) {
  108. max_date = milis;
  109. if (max_date != -1) {
  110. dpPicker.setMaxDate(max_date);
  111. }
  112. return this;
  113. }
  114.  
  115. public CalendarDatePicker setGetter(CalendarDateGetter getter) {
  116. this.curGetter = getter;
  117. return this;
  118. }
  119.  
  120. public void show() {
  121. dialog.create().show();
  122. }
  123.  
  124. public long getTimeInMilis() {
  125. int day = dpPicker.getDayOfMonth();
  126. int month = dpPicker.getMonth();
  127. int year = dpPicker.getYear();
  128. Calendar calendar = Calendar.getInstance();
  129. calendar.set(year, month, day, 0, 0, 0);
  130. return calendar.getTimeInMillis();
  131. }
  132.  
  133. // --------------------------------
  134. // CalendarDate Picker Interface
  135. // --------------------------------
  136.  
  137. public interface CalendarDateGetter {
  138. void onReturn(long result);
  139. }
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement