@Override public void setEnabled(boolean enabled) { super.setEnabled(enabled); mDayPicker.setEnabled(enabled); mMonthPicker.setEnabled(enabled); mYearPicker.setEnabled(enabled); }
@Override public void setEnabled(boolean enabled) { if (mIsEnabled == enabled) { return; } super.setEnabled(enabled); mDaySpinner.setEnabled(enabled); mMonthSpinner.setEnabled(enabled); mYearSpinner.setEnabled(enabled); mCalendarView.setEnabled(enabled); mIsEnabled = enabled; }
public void setDataOptionsEnabled(boolean val) { mUnits.setEnabled(val); mPicker.setEnabled(val); mClearButton.setEnabled(val); if (val) { mRootView.findViewById(R.id.warning_view).setVisibility(View.GONE); } else { mRootView.findViewById(R.id.warning_view).setVisibility(View.VISIBLE); } }
public MultiFieldTimePickerDialog( Context context, int theme, int hour, int minute, int second, int milli, int min, int max, int step, boolean is24hourFormat, OnMultiFieldTimeSetListener listener) { super(context, theme); mListener = listener; mStep = step; mIs24hourFormat = is24hourFormat; if (min >= max) { min = 0; max = 24 * HOUR_IN_MILLIS - 1; } if (step < 0 || step >= 24 * HOUR_IN_MILLIS) { step = MINUTE_IN_MILLIS; } LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.multi_field_time_picker_dialog, null); setView(view); mHourSpinner = (NumberPicker) view.findViewById(R.id.hour); mMinuteSpinner = (NumberPicker) view.findViewById(R.id.minute); mSecSpinner = (NumberPicker) view.findViewById(R.id.second); mMilliSpinner = (NumberPicker) view.findViewById(R.id.milli); mAmPmSpinner = (NumberPicker) view.findViewById(R.id.ampm); int minHour = min / HOUR_IN_MILLIS; int maxHour = max / HOUR_IN_MILLIS; min -= minHour * HOUR_IN_MILLIS; max -= maxHour * HOUR_IN_MILLIS; if (minHour == maxHour) { mHourSpinner.setEnabled(false); hour = minHour; } if (is24hourFormat) { mAmPmSpinner.setVisibility(View.GONE); } else { int minAmPm = minHour / 12; int maxAmPm = maxHour / 12; int amPm = hour / 12; mAmPmSpinner.setMinValue(minAmPm); mAmPmSpinner.setMaxValue(maxAmPm); mAmPmSpinner.setDisplayedValues( new String[] { context.getString(R.string.time_picker_dialog_am), context.getString(R.string.time_picker_dialog_pm) }); hour %= 12; if (hour == 0) { hour = 12; } if (minAmPm == maxAmPm) { mAmPmSpinner.setEnabled(false); amPm = minAmPm; minHour %= 12; maxHour %= 12; if (minHour == 0 && maxHour == 0) { minHour = 12; maxHour = 12; } else if (minHour == 0) { minHour = maxHour; maxHour = 12; } else if (maxHour == 0) { maxHour = 12; } } else { minHour = 1; maxHour = 12; } mAmPmSpinner.setValue(amPm); } if (minHour == maxHour) { mHourSpinner.setEnabled(false); } mHourSpinner.setMinValue(minHour); mHourSpinner.setMaxValue(maxHour); mHourSpinner.setValue(hour); NumberFormatter twoDigitPaddingFormatter = new NumberFormatter("%02d"); int minMinute = min / MINUTE_IN_MILLIS; int maxMinute = max / MINUTE_IN_MILLIS; min -= minMinute * MINUTE_IN_MILLIS; max -= maxMinute * MINUTE_IN_MILLIS; if (minHour == maxHour) { mMinuteSpinner.setMinValue(minMinute); mMinuteSpinner.setMaxValue(maxMinute); if (minMinute == maxMinute) { // Set this otherwise the box is empty until you stroke it. mMinuteSpinner.setDisplayedValues( new String[] {twoDigitPaddingFormatter.format(minMinute)}); mMinuteSpinner.setEnabled(false); minute = minMinute; } } else { mMinuteSpinner.setMinValue(0); mMinuteSpinner.setMaxValue(59); } if (step >= HOUR_IN_MILLIS) { mMinuteSpinner.setEnabled(false); } mMinuteSpinner.setValue(minute); mMinuteSpinner.setFormatter(twoDigitPaddingFormatter); if (step >= MINUTE_IN_MILLIS) { // Remove the ':' in front of the second spinner as well. view.findViewById(R.id.second_colon).setVisibility(View.GONE); mSecSpinner.setVisibility(View.GONE); } int minSecond = min / SECOND_IN_MILLIS; int maxSecond = max / SECOND_IN_MILLIS; min -= minSecond * SECOND_IN_MILLIS; max -= maxSecond * SECOND_IN_MILLIS; if (minHour == maxHour && minMinute == maxMinute) { mSecSpinner.setMinValue(minSecond); mSecSpinner.setMaxValue(maxSecond); if (minSecond == maxSecond) { // Set this otherwise the box is empty until you stroke it. mSecSpinner.setDisplayedValues(new String[] {twoDigitPaddingFormatter.format(minSecond)}); mSecSpinner.setEnabled(false); second = minSecond; } } else { mSecSpinner.setMinValue(0); mSecSpinner.setMaxValue(59); } mSecSpinner.setValue(second); mSecSpinner.setFormatter(twoDigitPaddingFormatter); if (step >= SECOND_IN_MILLIS) { // Remove the '.' in front of the milli spinner as well. view.findViewById(R.id.second_dot).setVisibility(View.GONE); mMilliSpinner.setVisibility(View.GONE); } // Round to the nearest step. milli = ((milli + step / 2) / step) * step; if (step == 1 || step == 10 || step == 100) { if (minHour == maxHour && minMinute == maxMinute && minSecond == maxSecond) { mMilliSpinner.setMinValue(min / step); mMilliSpinner.setMaxValue(max / step); if (min == max) { mMilliSpinner.setEnabled(false); milli = min; } } else { mMilliSpinner.setMinValue(0); mMilliSpinner.setMaxValue(999 / step); } if (step == 1) { mMilliSpinner.setFormatter(new NumberFormatter("%03d")); } else if (step == 10) { mMilliSpinner.setFormatter(new NumberFormatter("%02d")); } else if (step == 100) { mMilliSpinner.setFormatter(new NumberFormatter("%d")); } mMilliSpinner.setValue(milli / step); mBaseMilli = 0; } else if (step < SECOND_IN_MILLIS) { // Non-decimal step value. ArrayList<String> strValue = new ArrayList<String>(); for (int i = min; i < max; i += step) { strValue.add(String.format("%03d", i)); } mMilliSpinner.setMinValue(0); mMilliSpinner.setMaxValue(strValue.size() - 1); mMilliSpinner.setValue((milli - min) / step); mMilliSpinner.setDisplayedValues(strValue.toArray(new String[strValue.size()])); mBaseMilli = min; } else { mBaseMilli = 0; } }