Bug 1245692 - Always use CalendarView for date selection r?sebastian draft
authorAndrzej Hunt <ahunt@mozilla.com>
Fri, 27 May 2016 10:30:43 -0700
changeset 374120 3c5f360cbd253b9613127a70471943057ead4390
parent 374119 fb375a625cd6a35ff4060036deba5f1c621af7de
child 374121 9abe269749ce7a3e5c27b8d8c8c219393a67312c
push id19938
push userahunt@mozilla.com
push dateWed, 01 Jun 2016 21:55:05 +0000
reviewerssebastian
bugs1245692
milestone49.0a1
Bug 1245692 - Always use CalendarView for date selection r?sebastian Our current decision criteria is arbitrary: there's no good reason not to use a CalendarView here. Moreover our previous criteria would result in small tablets showing different views depending on orientation (Nexus 7: CalendarView in landscape, pickers in portrait mode). MozReview-Commit-ID: AkzDEFZWTHL
mobile/android/base/java/org/mozilla/gecko/prompts/PromptInput.java
mobile/android/base/java/org/mozilla/gecko/widget/DateTimePicker.java
--- a/mobile/android/base/java/org/mozilla/gecko/prompts/PromptInput.java
+++ b/mobile/android/base/java/org/mozilla/gecko/prompts/PromptInput.java
@@ -133,17 +133,17 @@ public abstract class PromptInput {
 
             mCheckbox = new AppCompatCheckBox(context);
             mCheckbox.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
             mCheckbox.setText(mLabel);
             mCheckbox.setChecked(isChecked);
         }
 
         @Override
-        public View getView(){
+        public View getView() {
             return mCheckbox;
         }
 
         @Override
         public Object getValue() {
             return Boolean.valueOf(mCheckbox.isChecked());
         }
     }
--- a/mobile/android/base/java/org/mozilla/gecko/widget/DateTimePicker.java
+++ b/mobile/android/base/java/org/mozilla/gecko/widget/DateTimePicker.java
@@ -40,18 +40,16 @@ import android.widget.FrameLayout;
 import android.widget.LinearLayout;
 import android.widget.NumberPicker;
 
 public class DateTimePicker extends FrameLayout {
     private static final boolean DEBUG = true;
     private static final String LOGTAG = "GeckoDateTimePicker";
     private static final int DEFAULT_START_YEAR = 1;
     private static final int DEFAULT_END_YEAR = 9999;
-    // Minimal screen width (in inches) for which we can show the calendar;
-    private static final int SCREEN_SIZE_THRESHOLD = 5;
     private static final char DATE_FORMAT_DAY = 'd';
     private static final char DATE_FORMAT_MONTH = 'M';
     private static final char DATE_FORMAT_YEAR = 'y';
 
     boolean mYearEnabled = true;
     boolean mMonthEnabled = true;
     boolean mWeekEnabled;
     boolean mDayEnabled = true;
@@ -315,24 +313,17 @@ public class DateTimePicker extends Fram
         // a sensible default date here.
         if (mTempDate.before(mMinDate) || mTempDate.after(mMaxDate)) {
             mTempDate.setTimeInMillis(mMinDate.getTimeInMillis());
         }
 
         // If we're displaying a date, the screen is wide enough
         // (and if we're using an SDK where the calendar view exists)
         // then display a calendar.
-        if (Versions.feature11Plus &&
-            (mState == PickersState.DATE || mState == PickersState.DATETIME) &&
-            mScreenWidth >= SCREEN_SIZE_THRESHOLD) {
-
-            if (DEBUG) {
-                Log.d(LOGTAG, "SDK > 10 and screen wide enough, displaying calendar");
-            }
-
+        if (mState == PickersState.DATE || mState == PickersState.DATETIME) {
             mCalendar = new CalendarView(context);
             mCalendar.setVisibility(GONE);
 
             LayoutParams layoutParams = new LayoutParams(250, 280);
             mCalendar.setLayoutParams(layoutParams);
             mCalendar.setFocusable(true);
             mCalendar.setFocusableInTouchMode(true);
             mCalendar.setMaxDate(mMaxDate.getTimeInMillis());
@@ -547,22 +538,17 @@ public class DateTimePicker extends Fram
         }
     }
 
     void notifyDateChanged() {
         sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED);
     }
 
     public void toggleCalendar(boolean shown) {
-        if ((mState != PickersState.DATE && mState != PickersState.DATETIME) ||
-            mScreenWidth < SCREEN_SIZE_THRESHOLD) {
-            if (DEBUG) {
-                Log.d(LOGTAG, "Cannot display calendar on this device, in this state" +
-                              ": screen width :" + mScreenWidth);
-            }
+        if ((mState != PickersState.DATE && mState != PickersState.DATETIME)) {
             return;
         }
 
         if (shown) {
             mCalendarEnabled = true;
             mCalendar.setVisibility(VISIBLE);
             setYearShown(false);
             setWeekShown(false);