Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/app/DatePickerDialog.java')
-rw-r--r--android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/app/DatePickerDialog.java125
1 files changed, 125 insertions, 0 deletions
diff --git a/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/app/DatePickerDialog.java b/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/app/DatePickerDialog.java
new file mode 100644
index 0000000000..f467d0b270
--- /dev/null
+++ b/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/app/DatePickerDialog.java
@@ -0,0 +1,125 @@
+
+package org.holoeverywhere.app;
+
+import java.util.Calendar;
+
+import org.holoeverywhere.LayoutInflater;
+import org.holoeverywhere.R;
+import org.holoeverywhere.widget.DatePicker;
+import org.holoeverywhere.widget.DatePicker.OnDateChangedListener;
+
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
+import android.os.Bundle;
+import android.text.format.DateUtils;
+import android.view.View;
+
+public class DatePickerDialog extends AlertDialog implements OnClickListener,
+ OnDateChangedListener {
+ public interface OnDateSetListener {
+ void onDateSet(DatePicker view, int year, int monthOfYear,
+ int dayOfMonth);
+ }
+
+ private static final String DAY = "day";
+ private static final String MONTH = "month";
+ private static final String YEAR = "year";
+ private final Calendar mCalendar;
+ private final OnDateSetListener mCallBack;
+ private final DatePicker mDatePicker;
+
+ private boolean mTitleNeedsUpdate = true;
+
+ public DatePickerDialog(Context context, int theme,
+ OnDateSetListener callBack, int year, int monthOfYear,
+ int dayOfMonth) {
+ super(context, theme);
+ mCallBack = callBack;
+ mCalendar = Calendar.getInstance();
+ setButton(DialogInterface.BUTTON_POSITIVE,
+ getContext().getText(R.string.date_time_done), this);
+ setButton(DialogInterface.BUTTON_NEGATIVE,
+ getContext().getText(android.R.string.cancel), this);
+ setIcon(0);
+ LayoutInflater inflater = LayoutInflater.from(context);
+ View view = inflater.inflate(R.layout.date_picker_dialog, null);
+ setView(view);
+ mDatePicker = (DatePicker) view.findViewById(R.id.datePicker);
+ mDatePicker.init(year, monthOfYear, dayOfMonth, this);
+ updateTitle(year, monthOfYear, dayOfMonth);
+ }
+
+ public DatePickerDialog(Context context, OnDateSetListener callBack,
+ int year, int monthOfYear, int dayOfMonth) {
+ this(context, 0, callBack, year, monthOfYear, dayOfMonth);
+ }
+
+ public DatePicker getDatePicker() {
+ return mDatePicker;
+ }
+
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ if (which == DialogInterface.BUTTON_POSITIVE) {
+ tryNotifyDateSet();
+ }
+ }
+
+ @Override
+ public void onDateChanged(DatePicker view, int year, int month, int day) {
+ mDatePicker.init(year, month, day, this);
+ updateTitle(year, month, day);
+ }
+
+ @Override
+ public void onRestoreInstanceState(Bundle savedInstanceState) {
+ super.onRestoreInstanceState(savedInstanceState);
+ int year = savedInstanceState.getInt(DatePickerDialog.YEAR);
+ int month = savedInstanceState.getInt(DatePickerDialog.MONTH);
+ int day = savedInstanceState.getInt(DatePickerDialog.DAY);
+ mDatePicker.init(year, month, day, this);
+ }
+
+ @Override
+ public Bundle onSaveInstanceState() {
+ Bundle state = super.onSaveInstanceState();
+ state.putInt(DatePickerDialog.YEAR, mDatePicker.getYear());
+ state.putInt(DatePickerDialog.MONTH, mDatePicker.getMonth());
+ state.putInt(DatePickerDialog.DAY, mDatePicker.getDayOfMonth());
+ return state;
+ }
+
+ private void tryNotifyDateSet() {
+ if (mCallBack != null) {
+ mDatePicker.clearFocus();
+ mCallBack.onDateSet(mDatePicker, mDatePicker.getYear(),
+ mDatePicker.getMonth(), mDatePicker.getDayOfMonth());
+ }
+ }
+
+ public void updateDate(int year, int monthOfYear, int dayOfMonth) {
+ mDatePicker.updateDate(year, monthOfYear, dayOfMonth);
+ }
+
+ private void updateTitle(int year, int month, int day) {
+ if (!mDatePicker.getCalendarViewShown()) {
+ mCalendar.set(Calendar.YEAR, year);
+ mCalendar.set(Calendar.MONTH, month);
+ mCalendar.set(Calendar.DAY_OF_MONTH, day);
+ String title = DateUtils.formatDateTime(getContext(),
+ mCalendar.getTimeInMillis(), DateUtils.FORMAT_SHOW_DATE
+ | DateUtils.FORMAT_SHOW_WEEKDAY
+ | DateUtils.FORMAT_SHOW_YEAR
+ | DateUtils.FORMAT_ABBREV_MONTH
+ | DateUtils.FORMAT_ABBREV_WEEKDAY);
+ setTitle(title);
+ mTitleNeedsUpdate = true;
+ } else {
+ if (mTitleNeedsUpdate) {
+ mTitleNeedsUpdate = false;
+ setTitle(R.string.date_picker_dialog_title);
+ }
+ }
+ }
+}