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
--- 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);