| OLD | NEW |
| (Empty) |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 package org.chromium.content.browser.input; | |
| 6 | |
| 7 import android.app.AlertDialog; | |
| 8 import android.content.Context; | |
| 9 import android.content.DialogInterface; | |
| 10 import android.content.DialogInterface.OnClickListener; | |
| 11 | |
| 12 import org.chromium.content.R; | |
| 13 import org.chromium.content.browser.input.TwoFieldDatePicker.OnMonthOrWeekChange
dListener; | |
| 14 | |
| 15 public abstract class TwoFieldDatePickerDialog extends AlertDialog implements On
ClickListener, | |
| 16 OnMonthOrWeekChangedListener { | |
| 17 | |
| 18 private static final String YEAR = "year"; | |
| 19 private static final String POSITION_IN_YEAR = "position_in_year"; | |
| 20 | |
| 21 protected final TwoFieldDatePicker mPicker; | |
| 22 protected final OnValueSetListener mCallBack; | |
| 23 | |
| 24 /** | |
| 25 * The callback used to indicate the user is done filling in the date. | |
| 26 */ | |
| 27 public interface OnValueSetListener { | |
| 28 | |
| 29 /** | |
| 30 * @param year The year that was set. | |
| 31 * @param positionInYear The position in the year that was set. | |
| 32 */ | |
| 33 void onValueSet(int year, int positionInYear); | |
| 34 } | |
| 35 | |
| 36 /** | |
| 37 * @param context The context the dialog is to run in. | |
| 38 * @param callBack How the parent is notified that the date is set. | |
| 39 * @param year The initial year of the dialog. | |
| 40 * @param weekOfYear The initial week of the dialog. | |
| 41 */ | |
| 42 public TwoFieldDatePickerDialog(Context context, | |
| 43 OnValueSetListener callBack, | |
| 44 int year, | |
| 45 int positionInYear, | |
| 46 double minValue, | |
| 47 double maxValue) { | |
| 48 this(context, 0, callBack, year, positionInYear, minValue, maxValue); | |
| 49 } | |
| 50 | |
| 51 /** | |
| 52 * @param context The context the dialog is to run in. | |
| 53 * @param theme the theme to apply to this dialog | |
| 54 * @param callBack How the parent is notified that the date is set. | |
| 55 * @param year The initial year of the dialog. | |
| 56 * @param weekOfYear The initial week of the dialog. | |
| 57 */ | |
| 58 public TwoFieldDatePickerDialog(Context context, | |
| 59 int theme, | |
| 60 OnValueSetListener callBack, | |
| 61 int year, | |
| 62 int positionInYear, | |
| 63 double minValue, | |
| 64 double maxValue) { | |
| 65 super(context, theme); | |
| 66 | |
| 67 mCallBack = callBack; | |
| 68 | |
| 69 setButton(BUTTON_POSITIVE, context.getText( | |
| 70 R.string.date_picker_dialog_set), this); | |
| 71 setButton(BUTTON_NEGATIVE, context.getText(android.R.string.cancel), | |
| 72 (OnClickListener) null); | |
| 73 setIcon(0); | |
| 74 | |
| 75 mPicker = createPicker(context, minValue, maxValue); | |
| 76 setView(mPicker); | |
| 77 mPicker.init(year, positionInYear, this); | |
| 78 } | |
| 79 | |
| 80 protected TwoFieldDatePicker createPicker(Context context, double minValue,
double maxValue) { | |
| 81 return null; | |
| 82 } | |
| 83 | |
| 84 @Override | |
| 85 public void onClick(DialogInterface dialog, int which) { | |
| 86 tryNotifyDateSet(); | |
| 87 } | |
| 88 | |
| 89 /** | |
| 90 * Notifies the listener, if such, that a date has been set. | |
| 91 */ | |
| 92 protected void tryNotifyDateSet() { | |
| 93 if (mCallBack != null) { | |
| 94 mPicker.clearFocus(); | |
| 95 mCallBack.onValueSet(mPicker.getYear(), mPicker.getPositionInYear())
; | |
| 96 } | |
| 97 } | |
| 98 | |
| 99 @Override | |
| 100 public void onMonthOrWeekChanged(TwoFieldDatePicker view, int year, int posi
tionInYear) { | |
| 101 mPicker.init(year, positionInYear, null); | |
| 102 } | |
| 103 | |
| 104 /** | |
| 105 * Sets the current date. | |
| 106 * | |
| 107 * @param year The date week year. | |
| 108 * @param weekOfYear The date week. | |
| 109 */ | |
| 110 public void updateDate(int year, int weekOfYear) { | |
| 111 mPicker.updateDate(year, weekOfYear); | |
| 112 } | |
| 113 } | |
| OLD | NEW |