Java源码示例:com.wdullaer.materialdatetimepicker.Utils
示例1
private void updateAmPmDisplay(int amOrPm) {
if (mVersion == Version.VERSION_2) {
if (amOrPm == AM) {
mAmTextView.setTextColor(mSelectedColor);
mPmTextView.setTextColor(mUnselectedColor);
Utils.tryAccessibilityAnnounce(mTimePicker, mAmText);
} else {
mAmTextView.setTextColor(mUnselectedColor);
mPmTextView.setTextColor(mSelectedColor);
Utils.tryAccessibilityAnnounce(mTimePicker, mPmText);
}
} else {
if (amOrPm == AM) {
mPmTextView.setText(mAmText);
Utils.tryAccessibilityAnnounce(mTimePicker, mAmText);
mPmTextView.setContentDescription(mAmText);
} else if (amOrPm == PM){
mPmTextView.setText(mPmText);
Utils.tryAccessibilityAnnounce(mTimePicker, mPmText);
mPmTextView.setContentDescription(mPmText);
} else {
mPmTextView.setText(mDoublePlaceholderText);
}
}
}
示例2
private void setHour(int value, boolean announce) {
String format;
if (mIs24HourMode) {
format = "%02d";
} else {
format = "%d";
value = value % 12;
if (value == 0) {
value = 12;
}
}
CharSequence text = String.format(format, value);
mHourView.setText(text);
mHourSpaceView.setText(text);
if (announce) {
Utils.tryAccessibilityAnnounce(mTimePicker, text);
}
}
示例3
private void updateAmPmDisplay(int amOrPm) {
if (mVersion == Version.VERSION_2) {
if (amOrPm == AM) {
mAmTextView.setTextColor(mSelectedColor);
mPmTextView.setTextColor(mUnselectedColor);
Utils.tryAccessibilityAnnounce(mTimePicker, mAmText);
} else {
mAmTextView.setTextColor(mUnselectedColor);
mPmTextView.setTextColor(mSelectedColor);
Utils.tryAccessibilityAnnounce(mTimePicker, mPmText);
}
} else {
if (amOrPm == AM) {
mPmTextView.setText(mAmText);
Utils.tryAccessibilityAnnounce(mTimePicker, mAmText);
mPmTextView.setContentDescription(mAmText);
} else if (amOrPm == PM){
mPmTextView.setText(mPmText);
Utils.tryAccessibilityAnnounce(mTimePicker, mPmText);
mPmTextView.setContentDescription(mPmText);
} else {
mPmTextView.setText(mDoublePlaceholderText);
}
}
}
示例4
private void setHour(int value, boolean announce) {
String format;
if (mIs24HourMode) {
format = "%02d";
} else {
format = "%d";
value = value % 12;
if (value == 0) {
value = 12;
}
}
CharSequence text = String.format(format, value);
mHourView.setText(text);
mHourSpaceView.setText(text);
if (announce) {
Utils.tryAccessibilityAnnounce(mTimePicker, text);
}
}
示例5
private void setHour(int value, boolean announce) {
String format;
if (mIs24HourMode) {
format = "%02d";
} else {
format = "%d";
value = value % 12;
if (value == 0) {
value = 12;
}
}
CharSequence text = String.format(format, value);
mHourView.setText(text);
mHourSpaceView.setText(text);
if (announce) {
Utils.tryAccessibilityAnnounce(mTimePicker, text);
}
}
示例6
private void updateAmPmDisplay(int amOrPm) {
if (mVersion == Version.VERSION_2) {
if (amOrPm == AM) {
mAmTextView.setTextColor(mSelectedColor);
mPmTextView.setTextColor(mUnselectedColor);
Utils.tryAccessibilityAnnounce(mTimePicker, mAmText);
} else {
mAmTextView.setTextColor(mUnselectedColor);
mPmTextView.setTextColor(mSelectedColor);
Utils.tryAccessibilityAnnounce(mTimePicker, mPmText);
}
} else {
if (amOrPm == AM) {
mPmTextView.setText(mAmText);
Utils.tryAccessibilityAnnounce(mTimePicker, mAmText);
mPmTextView.setContentDescription(mAmText);
} else if (amOrPm == PM){
mPmTextView.setText(mPmText);
Utils.tryAccessibilityAnnounce(mTimePicker, mPmText);
mPmTextView.setContentDescription(mPmText);
} else {
mPmTextView.setText(mDoublePlaceholderText);
}
}
}
示例7
private void setHour(int value, boolean announce) {
String format;
if (mIs24HourMode) {
format = "%02d";
} else {
format = "%d";
value = value % 12;
if (value == 0) {
value = 12;
}
}
CharSequence text = String.format(mLocale, format, value);
mHourView.setText(text);
mHourSpaceView.setText(text);
if (announce) {
Utils.tryAccessibilityAnnounce(mTimePicker, text);
}
}
示例8
@Test
public void setToNearestShouldRoundToMinDate() {
DefaultDateRangeLimiter limiter = new DefaultDateRangeLimiter();
Calendar minDate = Calendar.getInstance();
minDate.set(Calendar.YEAR, 1999);
limiter.setMinDate(minDate);
Calendar day = Calendar.getInstance();
day.set(Calendar.YEAR, 1998);
Assert.assertEquals(
limiter.setToNearestDate(day).getTimeInMillis(),
Utils.trimToMidnight(minDate).getTimeInMillis()
);
}
示例9
@Test
public void setToNearestShouldRoundToMaxDate() {
DefaultDateRangeLimiter limiter = new DefaultDateRangeLimiter();
Calendar maxDate = Calendar.getInstance();
maxDate.set(Calendar.YEAR, 1999);
limiter.setMaxDate(maxDate);
Calendar day = Calendar.getInstance();
day.set(Calendar.YEAR, 2000);
Assert.assertEquals(
limiter.setToNearestDate(day).getTimeInMillis(),
Utils.trimToMidnight(maxDate).getTimeInMillis()
);
}
示例10
@Test
public void setToNearestShouldRoundToFirstJanOfMinYearWhenBeforeMin() {
// Case with just year range and no other restrictions
DefaultDateRangeLimiter limiter = new DefaultDateRangeLimiter();
limiter.setYearRange(1980, 2100);
Calendar day = Calendar.getInstance();
day.set(Calendar.YEAR, 1970);
Calendar expectedDay = Calendar.getInstance();
expectedDay.set(Calendar.YEAR, 1980);
expectedDay.set(Calendar.MONTH, Calendar.JANUARY);
expectedDay.set(Calendar.DAY_OF_MONTH, 1);
Assert.assertEquals(
Utils.trimToMidnight(expectedDay).getTimeInMillis(),
limiter.setToNearestDate(day).getTimeInMillis()
);
}
示例11
@Test
public void setToNearestShouldReturn31stDecOfMaxYearWhenAfterMax() {
// Case with just year range and no other restrictions
DefaultDateRangeLimiter limiter = new DefaultDateRangeLimiter();
limiter.setYearRange(1900, 1950);
Calendar day = Calendar.getInstance();
day.set(Calendar.YEAR, 1970);
Calendar expectedDay = Calendar.getInstance();
expectedDay.set(Calendar.YEAR, 1950);
expectedDay.set(Calendar.MONTH, Calendar.DECEMBER);
expectedDay.set(Calendar.DAY_OF_MONTH, 31);
Assert.assertEquals(
Utils.trimToMidnight(expectedDay).getTimeInMillis(),
limiter.setToNearestDate(day).getTimeInMillis()
);
}
示例12
@Property
public void setToNearestShouldNeverBeBelowMinDate(
@InRange(min = "01/01/1900", max = "12/31/2099", format = "MM/dd/yyyy") Date date,
@InRange(min = "01/01/1900", max = "12/31/2099", format = "MM/dd/yyyy") Date minDate
) {
DefaultDateRangeLimiter limiter = new DefaultDateRangeLimiter();
Calendar day = Calendar.getInstance();
day.setTime(date);
Calendar minDay = Calendar.getInstance();
minDay.setTime(minDate);
limiter.setMinDate(minDay);
Assert.assertTrue(Utils.trimToMidnight(minDay).getTimeInMillis() <= limiter.setToNearestDate(day).getTimeInMillis());
}
示例13
@Property
public void setToNearestShouldNeverBeAboveMaxDate(
@InRange(min = "01/01/1800", max = "12/31/2099", format = "MM/dd/yyyy") Date date,
@InRange(min = "01/01/1800", max = "12/31/2099", format = "MM/dd/yyyy") Date maxDate
) {
DefaultDateRangeLimiter limiter = new DefaultDateRangeLimiter();
Calendar day = Calendar.getInstance();
day.setTime(date);
Calendar minDay = Calendar.getInstance();
minDay.set(Calendar.YEAR, 1800);
minDay.set(Calendar.MONTH, Calendar.JANUARY);
minDay.set(Calendar.DAY_OF_MONTH, 1);
Utils.trimToMidnight(minDay);
Calendar maxDay = Calendar.getInstance();
maxDay.setTime(maxDate);
limiter.setMinDate(minDay);
limiter.setMaxDate(maxDay);
Assert.assertTrue(Utils.trimToMidnight(maxDay).getTimeInMillis() >= limiter.setToNearestDate(day).getTimeInMillis());
}
示例14
private void setMinute(int value) {
if (value == 60) {
value = 0;
}
CharSequence text = String.format(Locale.getDefault(), "%02d", value);
Utils.tryAccessibilityAnnounce(mTimePicker, text);
mMinuteView.setText(text);
mMinuteSpaceView.setText(text);
}
示例15
private void setSecond(int value) {
if(value == 60) {
value = 0;
}
CharSequence text = String.format(Locale.getDefault(), "%02d", value);
Utils.tryAccessibilityAnnounce(mTimePicker, text);
mSecondView.setText(text);
mSecondSpaceView.setText(text);
}
示例16
private boolean addKeyIfLegal(int keyCode) {
// If we're in 24hour mode, we'll need to check if the input is full. If in AM/PM mode,
// we'll need to see if AM/PM have been typed.
int textSize = 6;
if (mEnableMinutes && !mEnableSeconds) textSize = 4;
if (!mEnableMinutes && !mEnableSeconds) textSize = 2;
if ((mIs24HourMode && mTypedTimes.size() == textSize) ||
(!mIs24HourMode && isTypedTimeFullyLegal())) {
return false;
}
mTypedTimes.add(keyCode);
if (!isTypedTimeLegalSoFar()) {
deleteLastTypedKey();
return false;
}
int val = getValFromKeyCode(keyCode);
Utils.tryAccessibilityAnnounce(mTimePicker, String.format(Locale.getDefault(), "%d", val));
// Automatically fill in 0's if AM or PM was legally entered.
if (isTypedTimeFullyLegal()) {
if (!mIs24HourMode && mTypedTimes.size() <= (textSize - 1)) {
mTypedTimes.add(mTypedTimes.size() - 1, KeyEvent.KEYCODE_0);
mTypedTimes.add(mTypedTimes.size() - 1, KeyEvent.KEYCODE_0);
}
mOkButton.setEnabled(true);
}
return true;
}
示例17
private void updateDisplay(boolean announce) {
mYearView.setText(YEAR_FORMAT.format(mCalendar.getTime()));
if (mVersion == Version.VERSION_1) {
if (mDatePickerHeaderView != null) {
if (mTitle != null)
mDatePickerHeaderView.setText(mTitle.toUpperCase(Locale.getDefault()));
else {
mDatePickerHeaderView.setText(mCalendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG,
Locale.getDefault()).toUpperCase(Locale.getDefault()));
}
}
mSelectedMonthTextView.setText(MONTH_FORMAT.format(mCalendar.getTime()));
mSelectedDayTextView.setText(DAY_FORMAT.format(mCalendar.getTime()));
}
if (mVersion == Version.VERSION_2) {
mSelectedDayTextView.setText(VERSION_2_FORMAT.format(mCalendar.getTime()));
if (mTitle != null)
mDatePickerHeaderView.setText(mTitle.toUpperCase(Locale.getDefault()));
else
mDatePickerHeaderView.setVisibility(View.GONE);
}
// Accessibility.
long millis = mCalendar.getTimeInMillis();
mAnimator.setDateMillis(millis);
int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_NO_YEAR;
String monthAndDayText = DateUtils.formatDateTime(getActivity(), millis, flags);
mMonthAndDayView.setContentDescription(monthAndDayText);
if (announce) {
flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR;
String fullDateText = DateUtils.formatDateTime(getActivity(), millis, flags);
Utils.tryAccessibilityAnnounce(mAnimator, fullDateText);
}
}
示例18
private void setMinute(int value) {
if (value == 60) {
value = 0;
}
CharSequence text = String.format(Locale.getDefault(), "%02d", value);
Utils.tryAccessibilityAnnounce(mTimePicker, text);
mMinuteView.setText(text);
mMinuteSpaceView.setText(text);
}
示例19
private void setSecond(int value) {
if(value == 60) {
value = 0;
}
CharSequence text = String.format(Locale.getDefault(), "%02d", value);
Utils.tryAccessibilityAnnounce(mTimePicker, text);
mSecondView.setText(text);
mSecondSpaceView.setText(text);
}
示例20
private boolean addKeyIfLegal(int keyCode) {
// If we're in 24hour mode, we'll need to check if the input is full. If in AM/PM mode,
// we'll need to see if AM/PM have been typed.
int textSize = 6;
if (mEnableMinutes && !mEnableSeconds) textSize = 4;
if (!mEnableMinutes && !mEnableSeconds) textSize = 2;
if ((mIs24HourMode && mTypedTimes.size() == textSize) ||
(!mIs24HourMode && isTypedTimeFullyLegal())) {
return false;
}
mTypedTimes.add(keyCode);
if (!isTypedTimeLegalSoFar()) {
deleteLastTypedKey();
return false;
}
int val = getValFromKeyCode(keyCode);
Utils.tryAccessibilityAnnounce(mTimePicker, String.format(Locale.getDefault(), "%d", val));
// Automatically fill in 0's if AM or PM was legally entered.
if (isTypedTimeFullyLegal()) {
if (!mIs24HourMode && mTypedTimes.size() <= (textSize - 1)) {
mTypedTimes.add(mTypedTimes.size() - 1, KeyEvent.KEYCODE_0);
mTypedTimes.add(mTypedTimes.size() - 1, KeyEvent.KEYCODE_0);
}
mOkButton.setEnabled(true);
}
return true;
}
示例21
private void updateAmPmDisplay(int amOrPm) {
if (amOrPm == AM) {
mAmPmTextView.setText(mAmText);
Utils.tryAccessibilityAnnounce(mTimePicker, mAmText);
mAmPmHitspace.setContentDescription(mAmText);
} else if (amOrPm == PM){
mAmPmTextView.setText(mPmText);
Utils.tryAccessibilityAnnounce(mTimePicker, mPmText);
mAmPmHitspace.setContentDescription(mPmText);
} else {
mAmPmTextView.setText(mDoublePlaceholderText);
}
}
示例22
private void setMinute(int value) {
if (value == 60) {
value = 0;
}
CharSequence text = String.format(Locale.getDefault(), "%02d", value);
Utils.tryAccessibilityAnnounce(mTimePicker, text);
mMinuteView.setText(text);
mMinuteSpaceView.setText(text);
}
示例23
private void setSecond(int value) {
if(value == 60) {
value = 0;
}
CharSequence text = String.format(Locale.getDefault(), "%02d", value);
Utils.tryAccessibilityAnnounce(mTimePicker, text);
mSecondView.setText(text);
mSecondSpaceView.setText(text);
}
示例24
private boolean addKeyIfLegal(int keyCode) {
// If we're in 24hour mode, we'll need to check if the input is full. If in AM/PM mode,
// we'll need to see if AM/PM have been typed.
if ((mIs24HourMode && mTypedTimes.size() == (mEnableSeconds ? 6 : 4)) ||
(!mIs24HourMode && isTypedTimeFullyLegal())) {
return false;
}
mTypedTimes.add(keyCode);
if (!isTypedTimeLegalSoFar()) {
deleteLastTypedKey();
return false;
}
int val = getValFromKeyCode(keyCode);
Utils.tryAccessibilityAnnounce(mTimePicker, String.format("%d", val));
// Automatically fill in 0's if AM or PM was legally entered.
if (isTypedTimeFullyLegal()) {
if (!mIs24HourMode && mTypedTimes.size() <= (mEnableSeconds ? 5 : 3)) {
mTypedTimes.add(mTypedTimes.size() - 1, KeyEvent.KEYCODE_0);
mTypedTimes.add(mTypedTimes.size() - 1, KeyEvent.KEYCODE_0);
}
mOkButton.setEnabled(true);
}
return true;
}
示例25
private void updateDisplay(boolean announce) {
if (mDayOfWeekView != null) {
if(mTitle != null) mDayOfWeekView.setText(mTitle.toUpperCase(Locale.getDefault()));
else {
mDayOfWeekView.setText(mCalendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG,
Locale.getDefault()).toUpperCase(Locale.getDefault()));
}
}
mSelectedMonthTextView.setText(mCalendar.getDisplayName(Calendar.MONTH, Calendar.SHORT,
Locale.getDefault()).toUpperCase(Locale.getDefault()));
mSelectedDayTextView.setText(DAY_FORMAT.format(mCalendar.getTime()));
mYearView.setText(YEAR_FORMAT.format(mCalendar.getTime()));
// Accessibility.
long millis = mCalendar.getTimeInMillis();
mAnimator.setDateMillis(millis);
int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_NO_YEAR;
String monthAndDayText = DateUtils.formatDateTime(getActivity(), millis, flags);
mMonthAndDayView.setContentDescription(monthAndDayText);
if (announce) {
flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR;
String fullDateText = DateUtils.formatDateTime(getActivity(), millis, flags);
Utils.tryAccessibilityAnnounce(mAnimator, fullDateText);
}
}
示例26
private void setMinute(int value) {
if (value == 60) {
value = 0;
}
CharSequence text = String.format(mLocale, "%02d", value);
Utils.tryAccessibilityAnnounce(mTimePicker, text);
mMinuteView.setText(text);
mMinuteSpaceView.setText(text);
}
示例27
private void setSecond(int value) {
if(value == 60) {
value = 0;
}
CharSequence text = String.format(mLocale, "%02d", value);
Utils.tryAccessibilityAnnounce(mTimePicker, text);
mSecondView.setText(text);
mSecondSpaceView.setText(text);
}
示例28
private boolean addKeyIfLegal(int keyCode) {
// If we're in 24hour mode, we'll need to check if the input is full. If in AM/PM mode,
// we'll need to see if AM/PM have been typed.
int textSize = 6;
if (mEnableMinutes && !mEnableSeconds) textSize = 4;
if (!mEnableMinutes && !mEnableSeconds) textSize = 2;
if ((mIs24HourMode && mTypedTimes.size() == textSize) ||
(!mIs24HourMode && isTypedTimeFullyLegal())) {
return false;
}
mTypedTimes.add(keyCode);
if (!isTypedTimeLegalSoFar()) {
deleteLastTypedKey();
return false;
}
int val = getValFromKeyCode(keyCode);
Utils.tryAccessibilityAnnounce(mTimePicker, String.format(mLocale, "%d", val));
// Automatically fill in 0's if AM or PM was legally entered.
if (isTypedTimeFullyLegal()) {
if (!mIs24HourMode && mTypedTimes.size() <= (textSize - 1)) {
mTypedTimes.add(mTypedTimes.size() - 1, KeyEvent.KEYCODE_0);
mTypedTimes.add(mTypedTimes.size() - 1, KeyEvent.KEYCODE_0);
}
mOkButton.setEnabled(true);
}
return true;
}
示例29
void accessibilityAnnouncePageChanged() {
MonthView mv = getMostVisibleMonth();
if (mv != null) {
String monthYear = getMonthAndYearString(mv.mMonth, mv.mYear, mController.getLocale());
Utils.tryAccessibilityAnnounce(this, monthYear);
} else {
Log.w("DayPickerView", "Tried to announce before layout was initialized");
}
}
示例30
public void initialize(OnDateSetListener callBack, Calendar initialSelection) {
mCallBack = callBack;
mCalendar = Utils.trimToMidnight((Calendar) initialSelection.clone());
mScrollOrientation = null;
//noinspection deprecation
setTimeZone(mCalendar.getTimeZone());
mVersion = Build.VERSION.SDK_INT < Build.VERSION_CODES.M ? Version.VERSION_1 : Version.VERSION_2;
}