Index: content/public/android/java/src/org/chromium/content/browser/InputDialogContainer.java |
diff --git a/content/public/android/java/src/org/chromium/content/browser/InputDialogContainer.java b/content/public/android/java/src/org/chromium/content/browser/InputDialogContainer.java |
deleted file mode 100644 |
index 466665dbf980a9ee4316f23cee0890f6e5f463ab..0000000000000000000000000000000000000000 |
--- a/content/public/android/java/src/org/chromium/content/browser/InputDialogContainer.java |
+++ /dev/null |
@@ -1,243 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.content.browser; |
- |
-import android.app.AlertDialog; |
-import android.app.DatePickerDialog; |
-import android.app.TimePickerDialog; |
-import android.app.DatePickerDialog.OnDateSetListener; |
-import android.app.TimePickerDialog.OnTimeSetListener; |
-import android.content.Context; |
-import android.content.DialogInterface; |
-import android.content.DialogInterface.OnDismissListener; |
-import android.text.TextUtils; |
-import android.text.format.DateFormat; |
-import android.text.format.Time; |
-import android.widget.DatePicker; |
-import android.widget.TimePicker; |
- |
-import org.chromium.content.browser.DateTimePickerDialog.OnDateTimeSetListener; |
-import org.chromium.content.browser.MonthPickerDialog.OnMonthSetListener; |
-import org.chromium.content.R; |
- |
-import java.text.ParseException; |
-import java.text.SimpleDateFormat; |
-import java.util.Calendar; |
-import java.util.Date; |
- |
-class InputDialogContainer { |
- |
- interface InputActionDelegate { |
- void cancelDateTimeDialog(); |
- void replaceDateTime(int dialogType, |
- int year, int month, int day, int hour, int minute, int second); |
- } |
- |
- // Default values used in Time representations of selected date/time before formatting. |
- // They are never displayed to the user. |
- private static final int YEAR_DEFAULT = 1970; |
- private static final int MONTH_DEFAULT = 0; |
- private static final int MONTHDAY_DEFAULT = 1; |
- private static final int HOUR_DEFAULT = 0; |
- private static final int MINUTE_DEFAULT = 0; |
- |
- // Date formats as accepted by Time.format. |
- private static final String HTML_DATE_FORMAT = "%Y-%m-%d"; |
- private static final String HTML_TIME_FORMAT = "%H:%M"; |
- // For datetime we always send selected time as UTC, as we have no timezone selector. |
- // This is consistent with other browsers. |
- private static final String HTML_DATE_TIME_FORMAT = "%Y-%m-%dT%H:%MZ"; |
- private static final String HTML_DATE_TIME_LOCAL_FORMAT = "%Y-%m-%dT%H:%M"; |
- private static final String HTML_MONTH_FORMAT = "%Y-%m"; |
- |
- private static int sTextInputTypeDate; |
- private static int sTextInputTypeDateTime; |
- private static int sTextInputTypeDateTimeLocal; |
- private static int sTextInputTypeMonth; |
- private static int sTextInputTypeTime; |
- |
- private Context mContext; |
- |
- // Prevents sending two notifications (from onClick and from onDismiss) |
- private boolean mDialogAlreadyDismissed; |
- |
- private AlertDialog mDialog; |
- private InputActionDelegate mInputActionDelegate; |
- |
- static void initializeInputTypes(int textInputTypeDate, int textInputTypeDateTime, |
- int textInputTypeDateTimeLocal, int textInputTypeMonth, int textInputTypeTime) { |
- sTextInputTypeDate = textInputTypeDate; |
- sTextInputTypeDateTime = textInputTypeDateTime; |
- sTextInputTypeDateTimeLocal = textInputTypeDateTimeLocal; |
- sTextInputTypeMonth = textInputTypeMonth; |
- sTextInputTypeTime = textInputTypeTime; |
- } |
- |
- static boolean isDialogInputType(int type) { |
- return type == sTextInputTypeDate || type == sTextInputTypeTime |
- || type == sTextInputTypeDateTime || type == sTextInputTypeDateTimeLocal |
- || type == sTextInputTypeMonth; |
- } |
- |
- InputDialogContainer(Context context, InputActionDelegate inputActionDelegate) { |
- mContext = context; |
- mInputActionDelegate = inputActionDelegate; |
- } |
- |
- private Time normalizeTime(int year, int month, int monthDay, |
- int hour, int minute, int second) { |
- Time result = new Time(); |
- if (year == 0 && month == 0 && monthDay == 0 && hour == 0 && |
- minute == 0 && second == 0) { |
- Calendar cal = Calendar.getInstance(); |
- result.set(cal.get(Calendar.SECOND), cal.get(Calendar.MINUTE), |
- cal.get(Calendar.HOUR), cal.get(Calendar.DATE), |
- cal.get(Calendar.MONTH), cal.get(Calendar.YEAR)); |
- } else { |
- result.set(second, minute, hour, monthDay, month, year); |
- } |
- return result; |
- } |
- |
- void showDialog(final int dialogType, int year, int month, int monthDay, |
- int hour, int minute, int second) { |
- if (isDialogShowing()) mDialog.dismiss(); |
- |
- Time time = normalizeTime(year, month, monthDay, hour, minute, second); |
- if (dialogType == sTextInputTypeDate) { |
- mDialog = new DatePickerDialog(mContext, new DateListener(dialogType), |
- time.year, time.month, time.monthDay); |
- mDialog.setTitle(mContext.getText(R.string.date_picker_dialog_title)); |
- } else if (dialogType == sTextInputTypeTime) { |
- mDialog = new TimePickerDialog(mContext, new TimeListener(dialogType), |
- time.hour, time.minute, DateFormat.is24HourFormat(mContext)); |
- } else if (dialogType == sTextInputTypeDateTime || |
- dialogType == sTextInputTypeDateTimeLocal) { |
- mDialog = new DateTimePickerDialog(mContext, |
- new DateTimeListener(dialogType), |
- time.year, time.month, time.monthDay, |
- time.hour, time.minute, DateFormat.is24HourFormat(mContext)); |
- } else if (dialogType == sTextInputTypeMonth) { |
- mDialog = new MonthPickerDialog(mContext, new MonthListener(dialogType), |
- time.year, time.month); |
- } |
- |
- mDialog.setButton(DialogInterface.BUTTON_POSITIVE, |
- mContext.getText(R.string.date_picker_dialog_set), |
- (DialogInterface.OnClickListener) mDialog); |
- |
- mDialog.setButton(DialogInterface.BUTTON_NEGATIVE, |
- mContext.getText(android.R.string.cancel), |
- new DialogInterface.OnClickListener() { |
- @Override |
- public void onClick(DialogInterface dialog, int which) { |
- mDialogAlreadyDismissed = true; |
- mInputActionDelegate.cancelDateTimeDialog(); |
- } |
- }); |
- |
- mDialog.setButton(DialogInterface.BUTTON_NEUTRAL, |
- mContext.getText(R.string.date_picker_dialog_clear), |
- new DialogInterface.OnClickListener() { |
- @Override |
- public void onClick(DialogInterface dialog, int which) { |
- mDialogAlreadyDismissed = true; |
- mInputActionDelegate.replaceDateTime(dialogType, 0, 0, 0, 0, 0, 0); |
- } |
- }); |
- |
- mDialogAlreadyDismissed = false; |
- mDialog.show(); |
- } |
- |
- boolean isDialogShowing() { |
- return mDialog != null && mDialog.isShowing(); |
- } |
- |
- void dismissDialog() { |
- if (isDialogShowing()) mDialog.dismiss(); |
- } |
- |
- private class DateListener implements OnDateSetListener { |
- private final int mDialogType; |
- |
- DateListener(int dialogType) { |
- mDialogType = dialogType; |
- } |
- |
- @Override |
- public void onDateSet(DatePicker view, int year, int month, int monthDay) { |
- if (!mDialogAlreadyDismissed) { |
- setFieldDateTimeValue(mDialogType, |
- year, month, monthDay, HOUR_DEFAULT, MINUTE_DEFAULT, |
- HTML_DATE_FORMAT); |
- } |
- } |
- } |
- |
- private class TimeListener implements OnTimeSetListener { |
- private final int mDialogType; |
- |
- TimeListener(int dialogType) { |
- mDialogType = dialogType; |
- } |
- |
- @Override |
- public void onTimeSet(TimePicker view, int hourOfDay, int minute) { |
- if (!mDialogAlreadyDismissed) { |
- setFieldDateTimeValue(mDialogType, |
- YEAR_DEFAULT, MONTH_DEFAULT, MONTHDAY_DEFAULT, |
- hourOfDay, minute, HTML_TIME_FORMAT); |
- } |
- } |
- } |
- |
- private class DateTimeListener implements OnDateTimeSetListener { |
- private final boolean mLocal; |
- private final int mDialogType; |
- |
- public DateTimeListener(int dialogType) { |
- mLocal = dialogType == sTextInputTypeDateTimeLocal; |
- mDialogType = dialogType; |
- } |
- |
- @Override |
- public void onDateTimeSet(DatePicker dateView, TimePicker timeView, |
- int year, int month, int monthDay, |
- int hourOfDay, int minute) { |
- if (!mDialogAlreadyDismissed) { |
- setFieldDateTimeValue(mDialogType, year, month, monthDay, hourOfDay, minute, |
- mLocal ? HTML_DATE_TIME_LOCAL_FORMAT : HTML_DATE_TIME_FORMAT); |
- } |
- } |
- } |
- |
- private class MonthListener implements OnMonthSetListener { |
- private final int mDialogType; |
- |
- MonthListener(int dialogType) { |
- mDialogType = dialogType; |
- } |
- |
- @Override |
- public void onMonthSet(MonthPicker view, int year, int month) { |
- if (!mDialogAlreadyDismissed) { |
- setFieldDateTimeValue(mDialogType, year, month, MONTHDAY_DEFAULT, |
- HOUR_DEFAULT, MINUTE_DEFAULT, HTML_MONTH_FORMAT); |
- } |
- } |
- } |
- |
- private void setFieldDateTimeValue(int dialogType, |
- int year, int month, int monthDay, int hourOfDay, |
- int minute, String dateFormat) { |
- // Prevents more than one callback being sent to the native |
- // side when the dialog triggers multiple events. |
- mDialogAlreadyDismissed = true; |
- |
- mInputActionDelegate.replaceDateTime(dialogType, |
- year, month, monthDay, hourOfDay, minute, 0 /* second */); |
- } |
-} |