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

Side by Side Diff: content/public/android/java/src/org/chromium/content/browser/input/WeekPicker.java

Issue 85643002: Transfer date/time value to chooser as double (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@doubledate2
Patch Set: Created 7 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.content.browser.input; 5 package org.chromium.content.browser.input;
6 6
7 import android.content.Context; 7 import android.content.Context;
8 8
9 import org.chromium.content.R; 9 import org.chromium.content.R;
10 10
11 import java.util.Calendar; 11 import java.util.Calendar;
12 import java.util.TimeZone;
12 13
13 // This class is heavily based on android.widget.DatePicker. 14 // This class is heavily based on android.widget.DatePicker.
14 public class WeekPicker extends TwoFieldDatePicker { 15 public class WeekPicker extends TwoFieldDatePicker {
15 16
16 public WeekPicker(Context context, long minValue, long maxValue) { 17 public WeekPicker(Context context, double minValue, double maxValue) {
17 super(context, minValue, maxValue); 18 super(context, minValue, maxValue);
18 19
19 getPositionInYearSpinner().setContentDescription( 20 getPositionInYearSpinner().setContentDescription(
20 getResources().getString(R.string.accessibility_date_picker_week )); 21 getResources().getString(R.string.accessibility_date_picker_week ));
21 22
22 // initialize to current date 23 // initialize to current date
23 Calendar cal = Calendar.getInstance(); 24 Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
24 cal.setFirstDayOfWeek(Calendar.MONDAY); 25 cal.setFirstDayOfWeek(Calendar.MONDAY);
25 cal.setMinimalDaysInFirstWeek(4); 26 cal.setMinimalDaysInFirstWeek(4);
26 cal.setTimeInMillis(System.currentTimeMillis()); 27 cal.setTimeInMillis(System.currentTimeMillis());
27 init(getISOWeekYearForDate(cal), getWeekForDate(cal), null); 28 init(getISOWeekYearForDate(cal), getWeekForDate(cal), null);
28 } 29 }
29 30
30 private Calendar createDateFromWeek(int year, int week) { 31 /**
31 Calendar date = Calendar.getInstance(); 32 * Creates a date object from the |year| and |week|.
33 */
34 public static Calendar createDateFromWeek(int year, int week) {
35 Calendar date = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
32 date.clear(); 36 date.clear();
33 date.setFirstDayOfWeek(Calendar.MONDAY); 37 date.setFirstDayOfWeek(Calendar.MONDAY);
34 date.setMinimalDaysInFirstWeek(4); 38 date.setMinimalDaysInFirstWeek(4);
35 date.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 39 date.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
36 date.set(Calendar.YEAR, year); 40 date.set(Calendar.YEAR, year);
37 date.set(Calendar.WEEK_OF_YEAR, week); 41 date.set(Calendar.WEEK_OF_YEAR, week);
38 return date; 42 return date;
39 } 43 }
40 44
45 /**
46 * Creates a date object from the |value| which is milliseconds since epoch.
47 */
48 public static Calendar createDateFromValue(double value) {
49 Calendar date = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
50 date.clear();
51 date.setFirstDayOfWeek(Calendar.MONDAY);
52 date.setMinimalDaysInFirstWeek(4);
53 date.setTimeInMillis((long) value);
54 return date;
55 }
56
41 @Override 57 @Override
42 protected Calendar createDateFromValue(long value) { 58 protected Calendar getDateForValue(double value) {
43 Calendar date = Calendar.getInstance(); 59 return WeekPicker.createDateFromValue(value);
44 date.clear();
45 date.setFirstDayOfWeek(Calendar.MONDAY);
46 date.setMinimalDaysInFirstWeek(4);
47 date.setTimeInMillis(value);
48 return date;
49 } 60 }
50 61
51 public static int getISOWeekYearForDate(Calendar date) { 62 public static int getISOWeekYearForDate(Calendar date) {
52 int year = date.get(Calendar.YEAR); 63 int year = date.get(Calendar.YEAR);
53 int month = date.get(Calendar.MONTH); 64 int month = date.get(Calendar.MONTH);
54 int week = date.get(Calendar.WEEK_OF_YEAR); 65 int week = date.get(Calendar.WEEK_OF_YEAR);
55 if (month == 0 && week > 51) { 66 if (month == 0 && week > 51) {
56 year--; 67 year--;
57 } else if (month == 11 && week == 1) { 68 } else if (month == 11 && week == 1) {
58 year++; 69 year++;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 } 132 }
122 133
123 @Override 134 @Override
124 protected int getMinPositionInYear(int year) { 135 protected int getMinPositionInYear(int year) {
125 if (year == getISOWeekYearForDate(getMinDate())) { 136 if (year == getISOWeekYearForDate(getMinDate())) {
126 return getWeekForDate(getMinDate()); 137 return getWeekForDate(getMinDate());
127 } 138 }
128 return 1; 139 return 1;
129 } 140 }
130 } 141 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698