Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(570)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java

Issue 574673003: Move *Picker.java and *PickerDialog.java to ui/android/java/... - Part1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased patch. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java b/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java
deleted file mode 100644
index e415a6219a352ff78bee75b3af7ebc0786c3760c..0000000000000000000000000000000000000000
--- a/content/public/android/java/src/org/chromium/content/browser/input/MultiFieldTimePickerDialog.java
+++ /dev/null
@@ -1,275 +0,0 @@
-// Copyright 2013 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.input;
-
-import android.app.AlertDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnClickListener;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.NumberPicker;
-
-import org.chromium.content.R;
-
-import java.util.ArrayList;
-
-/**
- * A time picker dialog with upto 5 number pickers left to right:
- * hour, minute, second, milli, AM/PM.
- *
- * If is24hourFormat is true then AM/PM picker is not displayed and
- * hour range is 0..23. Otherwise hour range is 1..12.
- * The milli picker is not displayed if step >= SECOND_IN_MILLIS
- * The second picker is not displayed if step >= MINUTE_IN_MILLIS.
- */
-public class MultiFieldTimePickerDialog
- extends AlertDialog implements OnClickListener {
-
- private final NumberPicker mHourSpinner;
- private final NumberPicker mMinuteSpinner;
- private final NumberPicker mSecSpinner;
- private final NumberPicker mMilliSpinner;
- private final NumberPicker mAmPmSpinner;
- private final OnMultiFieldTimeSetListener mListener;
- private final int mStep;
- private final int mBaseMilli;
- private final boolean mIs24hourFormat;
-
- public interface OnMultiFieldTimeSetListener {
- void onTimeSet(int hourOfDay, int minute, int second, int milli);
- }
-
- private static final int SECOND_IN_MILLIS = 1000;
- private static final int MINUTE_IN_MILLIS = 60 * SECOND_IN_MILLIS;
- private static final int HOUR_IN_MILLIS = 60 * MINUTE_IN_MILLIS;
-
- public MultiFieldTimePickerDialog(
- Context context,
- int theme,
- int hour, int minute, int second, int milli,
- int min, int max, int step, boolean is24hourFormat,
- OnMultiFieldTimeSetListener listener) {
- super(context, theme);
- mListener = listener;
- mStep = step;
- mIs24hourFormat = is24hourFormat;
-
- if (min >= max) {
- min = 0;
- max = 24 * HOUR_IN_MILLIS - 1;
- }
- if (step < 0 || step >= 24 * HOUR_IN_MILLIS) {
- step = MINUTE_IN_MILLIS;
- }
-
- LayoutInflater inflater =
- (LayoutInflater) context.getSystemService(
- Context.LAYOUT_INFLATER_SERVICE);
- View view = inflater.inflate(R.layout.multi_field_time_picker_dialog, null);
- setView(view);
-
- mHourSpinner = (NumberPicker) view.findViewById(R.id.hour);
- mMinuteSpinner = (NumberPicker) view.findViewById(R.id.minute);
- mSecSpinner = (NumberPicker) view.findViewById(R.id.second);
- mMilliSpinner = (NumberPicker) view.findViewById(R.id.milli);
- mAmPmSpinner = (NumberPicker) view.findViewById(R.id.ampm);
-
- int minHour = min / HOUR_IN_MILLIS;
- int maxHour = max / HOUR_IN_MILLIS;
- min -= minHour * HOUR_IN_MILLIS;
- max -= maxHour * HOUR_IN_MILLIS;
-
- if (minHour == maxHour) {
- mHourSpinner.setEnabled(false);
- hour = minHour;
- }
-
- if (is24hourFormat) {
- mAmPmSpinner.setVisibility(View.GONE);
- } else {
- int minAmPm = minHour / 12;
- int maxAmPm = maxHour / 12;
- int amPm = hour / 12;
- mAmPmSpinner.setMinValue(minAmPm);
- mAmPmSpinner.setMaxValue(maxAmPm);
- mAmPmSpinner.setDisplayedValues(new String[] {
- context.getString(R.string.time_picker_dialog_am),
- context.getString(R.string.time_picker_dialog_pm)
- });
-
- hour %= 12;
- if (hour == 0) {
- hour = 12;
- }
- if (minAmPm == maxAmPm) {
- mAmPmSpinner.setEnabled(false);
- amPm = minAmPm;
-
- minHour %= 12;
- maxHour %= 12;
- if (minHour == 0 && maxHour == 0) {
- minHour = 12;
- maxHour = 12;
- } else if (minHour == 0) {
- minHour = maxHour;
- maxHour = 12;
- } else if (maxHour == 0) {
- maxHour = 12;
- }
- } else {
- minHour = 1;
- maxHour = 12;
- }
- mAmPmSpinner.setValue(amPm);
- }
-
- if (minHour == maxHour) {
- mHourSpinner.setEnabled(false);
- }
- mHourSpinner.setMinValue(minHour);
- mHourSpinner.setMaxValue(maxHour);
- mHourSpinner.setValue(hour);
-
- NumberFormatter twoDigitPaddingFormatter = new NumberFormatter("%02d");
-
- int minMinute = min / MINUTE_IN_MILLIS;
- int maxMinute = max / MINUTE_IN_MILLIS;
- min -= minMinute * MINUTE_IN_MILLIS;
- max -= maxMinute * MINUTE_IN_MILLIS;
-
- if (minHour == maxHour) {
- mMinuteSpinner.setMinValue(minMinute);
- mMinuteSpinner.setMaxValue(maxMinute);
- if (minMinute == maxMinute) {
- // Set this otherwise the box is empty until you stroke it.
- mMinuteSpinner.setDisplayedValues(
- new String[] { twoDigitPaddingFormatter.format(minMinute) });
- mMinuteSpinner.setEnabled(false);
- minute = minMinute;
- }
- } else {
- mMinuteSpinner.setMinValue(0);
- mMinuteSpinner.setMaxValue(59);
- }
-
- if (step >= HOUR_IN_MILLIS) {
- mMinuteSpinner.setEnabled(false);
- }
-
- mMinuteSpinner.setValue(minute);
- mMinuteSpinner.setFormatter(twoDigitPaddingFormatter);
-
- if (step >= MINUTE_IN_MILLIS) {
- // Remove the ':' in front of the second spinner as well.
- view.findViewById(R.id.second_colon).setVisibility(View.GONE);
- mSecSpinner.setVisibility(View.GONE);
- }
-
- int minSecond = min / SECOND_IN_MILLIS;
- int maxSecond = max / SECOND_IN_MILLIS;
- min -= minSecond * SECOND_IN_MILLIS;
- max -= maxSecond * SECOND_IN_MILLIS;
-
- if (minHour == maxHour && minMinute == maxMinute) {
- mSecSpinner.setMinValue(minSecond);
- mSecSpinner.setMaxValue(maxSecond);
- if (minSecond == maxSecond) {
- // Set this otherwise the box is empty until you stroke it.
- mSecSpinner.setDisplayedValues(
- new String[] { twoDigitPaddingFormatter.format(minSecond) });
- mSecSpinner.setEnabled(false);
- second = minSecond;
- }
- } else {
- mSecSpinner.setMinValue(0);
- mSecSpinner.setMaxValue(59);
- }
-
- mSecSpinner.setValue(second);
- mSecSpinner.setFormatter(twoDigitPaddingFormatter);
-
- if (step >= SECOND_IN_MILLIS) {
- // Remove the '.' in front of the milli spinner as well.
- view.findViewById(R.id.second_dot).setVisibility(View.GONE);
- mMilliSpinner.setVisibility(View.GONE);
- }
-
- // Round to the nearest step.
- milli = ((milli + step / 2) / step) * step;
- if (step == 1 || step == 10 || step == 100) {
- if (minHour == maxHour && minMinute == maxMinute &&
- minSecond == maxSecond) {
- mMilliSpinner.setMinValue(min / step);
- mMilliSpinner.setMaxValue(max / step);
-
- if (min == max) {
- mMilliSpinner.setEnabled(false);
- milli = min;
- }
- } else {
- mMilliSpinner.setMinValue(0);
- mMilliSpinner.setMaxValue(999 / step);
- }
-
- if (step == 1) {
- mMilliSpinner.setFormatter(new NumberFormatter("%03d"));
- } else if (step == 10) {
- mMilliSpinner.setFormatter(new NumberFormatter("%02d"));
- } else if (step == 100) {
- mMilliSpinner.setFormatter(new NumberFormatter("%d"));
- }
- mMilliSpinner.setValue(milli / step);
- mBaseMilli = 0;
- } else if (step < SECOND_IN_MILLIS) {
- // Non-decimal step value.
- ArrayList<String> strValue = new ArrayList<String>();
- for (int i = min; i < max; i += step) {
- strValue.add(String.format("%03d", i));
- }
- mMilliSpinner.setMinValue(0);
- mMilliSpinner.setMaxValue(strValue.size() - 1);
- mMilliSpinner.setValue((milli - min) / step);
- mMilliSpinner.setDisplayedValues(
- strValue.toArray(new String[strValue.size()]));
- mBaseMilli = min;
- } else {
- mBaseMilli = 0;
- }
- }
-
- @Override
- public void onClick(DialogInterface dialog, int which) {
- notifyDateSet();
- }
-
- private void notifyDateSet() {
- int hour = mHourSpinner.getValue();
- int minute = mMinuteSpinner.getValue();
- int sec = mSecSpinner.getValue();
- int milli = mMilliSpinner.getValue() * mStep + mBaseMilli;
- if (!mIs24hourFormat) {
- int ampm = mAmPmSpinner.getValue();
- if (hour == 12) {
- hour = 0;
- }
- hour += ampm * 12;
- }
- mListener.onTimeSet(hour, minute, sec, milli);
- }
-
- private static class NumberFormatter implements NumberPicker.Formatter {
- private final String mFormat;
-
- NumberFormatter(String format) {
- mFormat = format;
- }
-
- @Override
- public String format(int value) {
- return String.format(mFormat, value);
- }
- }
-}

Powered by Google App Engine
This is Rietveld 408576698