summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkeishi@chromium.org <keishi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-30 21:22:01 +0000
committerkeishi@chromium.org <keishi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-30 21:22:01 +0000
commit6c5fcfcb0f552228575454f6b9937a9b43ee5df0 (patch)
tree99cb59320adc4e3c9c543bb4b41cfaaff7844285
parentb1caf39345b454bf34af059fa8eb384ccd476306 (diff)
downloadchromium_src-6c5fcfcb0f552228575454f6b9937a9b43ee5df0.zip
chromium_src-6c5fcfcb0f552228575454f6b9937a9b43ee5df0.tar.gz
chromium_src-6c5fcfcb0f552228575454f6b9937a9b43ee5df0.tar.bz2
Merge 220859 "Week spinner in week picker not wrapping properly"
> Week spinner in week picker not wrapping properly > > If the user sets the value to 2009-W01 and then spins the spinner > backwards to week 53, we should set the value to 2008-52 (because 2008 only has 52 weeks). > > BUG=258002 > > Review URL: https://chromiumcodereview.appspot.com/23498005 TBR=keishi@chromium.org Review URL: https://codereview.chromium.org/25346002 git-svn-id: svn://svn.chromium.org/chrome/branches/1599/src@226049 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java8
-rw-r--r--content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java10
-rw-r--r--content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java14
3 files changed, 17 insertions, 15 deletions
diff --git a/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java b/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java
index 3e06d75..57cab66 100644
--- a/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java
+++ b/content/public/android/java/src/org/chromium/content/browser/input/MonthPicker.java
@@ -92,16 +92,16 @@ public class MonthPicker extends TwoFieldDatePicker {
@Override
- protected int getMaxPositionInYear() {
- if (getYear() == getMaxDate().get(Calendar.YEAR)) {
+ protected int getMaxPositionInYear(int year) {
+ if (year == getMaxDate().get(Calendar.YEAR)) {
return getMaxDate().get(Calendar.MONTH);
}
return MONTHS_NUMBER - 1;
}
@Override
- protected int getMinPositionInYear() {
- if (getYear() == getMinDate().get(Calendar.YEAR)) {
+ protected int getMinPositionInYear(int year) {
+ if (year == getMinDate().get(Calendar.YEAR)) {
return getMinDate().get(Calendar.MONTH);
}
return 0;
diff --git a/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java b/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java
index 4eaa0b7..c6dfd61 100644
--- a/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java
+++ b/content/public/android/java/src/org/chromium/content/browser/input/TwoFieldDatePicker.java
@@ -67,8 +67,10 @@ public abstract class TwoFieldDatePicker extends FrameLayout {
positionInYear = newVal;
if (oldVal == picker.getMaxValue() && newVal == picker.getMinValue()) {
year += 1;
+ positionInYear = getMinPositionInYear(year);
} else if (oldVal == picker.getMinValue() && newVal == picker.getMaxValue()) {
year -=1;
+ positionInYear = getMaxPositionInYear(year);
}
} else if (picker == mYearSpinner) {
year = newVal;
@@ -188,9 +190,9 @@ public abstract class TwoFieldDatePicker extends FrameLayout {
protected abstract int getMinYear();
- protected abstract int getMaxPositionInYear();
+ protected abstract int getMaxPositionInYear(int year);
- protected abstract int getMinPositionInYear();
+ protected abstract int getMinPositionInYear(int year);
protected Calendar getMaxDate() {
return mMaxDate;
@@ -219,8 +221,8 @@ public abstract class TwoFieldDatePicker extends FrameLayout {
mPositionInYearSpinner.setDisplayedValues(null);
// set the spinner ranges respecting the min and max dates
- mPositionInYearSpinner.setMinValue(getMinPositionInYear());
- mPositionInYearSpinner.setMaxValue(getMaxPositionInYear());
+ mPositionInYearSpinner.setMinValue(getMinPositionInYear(getYear()));
+ mPositionInYearSpinner.setMaxValue(getMaxPositionInYear(getYear()));
mPositionInYearSpinner.setWrapSelectorWheel(
!mCurrentDate.equals(mMinDate) && !mCurrentDate.equals(mMaxDate));
diff --git a/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java b/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java
index 117793b..efca476 100644
--- a/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java
+++ b/content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java
@@ -76,9 +76,9 @@ public class WeekPicker extends TwoFieldDatePicker {
}
}
- private int getNumberOfWeeks() {
+ private int getNumberOfWeeks(int year) {
// Create a date in the middle of the year, where the week year matches the year.
- Calendar date = createDateFromWeek(getYear(), 20);
+ Calendar date = createDateFromWeek(year, 20);
return date.getActualMaximum(Calendar.WEEK_OF_YEAR);
}
@@ -113,16 +113,16 @@ public class WeekPicker extends TwoFieldDatePicker {
}
@Override
- protected int getMaxPositionInYear() {
- if (getYear() == getISOWeekYearForDate(getMaxDate())) {
+ protected int getMaxPositionInYear(int year) {
+ if (year == getISOWeekYearForDate(getMaxDate())) {
return getWeekForDate(getMaxDate());
}
- return getNumberOfWeeks();
+ return getNumberOfWeeks(year);
}
@Override
- protected int getMinPositionInYear() {
- if (getYear() == getISOWeekYearForDate(getMinDate())) {
+ protected int getMinPositionInYear(int year) {
+ if (year == getISOWeekYearForDate(getMinDate())) {
return getWeekForDate(getMinDate());
}
return 1;