blob: 7bce7568585f6fc5c95055ad81c99fc01758714d [file] [log] [blame]
Alan Viverette46127402014-11-13 10:50:37 -08001/*
2 * Copyright (C) 2014 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.widget;
18
Alan Viverette0ef59ac2015-03-23 13:13:25 -070019import android.annotation.StyleRes;
Alan Viverette46127402014-11-13 10:50:37 -080020import android.content.Context;
Alan Viverette46127402014-11-13 10:50:37 -080021import android.util.AttributeSet;
Alan Viverette46127402014-11-13 10:50:37 -080022
23import java.util.Calendar;
Alan Viverette46127402014-11-13 10:50:37 -080024
25class CalendarViewMaterialDelegate extends CalendarView.AbstractCalendarViewDelegate {
26 private final DayPickerView mDayPickerView;
27
28 private CalendarView.OnDateChangeListener mOnDateChangeListener;
29
30 public CalendarViewMaterialDelegate(CalendarView delegator, Context context, AttributeSet attrs,
31 int defStyleAttr, int defStyleRes) {
32 super(delegator, context);
33
Alan Viverette0ef59ac2015-03-23 13:13:25 -070034 mDayPickerView = new DayPickerView(context, attrs, defStyleAttr, defStyleRes);
Alan Viverette46127402014-11-13 10:50:37 -080035 mDayPickerView.setOnDaySelectedListener(mOnDaySelectedListener);
36
37 delegator.addView(mDayPickerView);
38 }
39
Alan Viverette46127402014-11-13 10:50:37 -080040 @Override
Alan Viverette0ef59ac2015-03-23 13:13:25 -070041 public void setWeekDayTextAppearance(@StyleRes int resId) {
42 mDayPickerView.setDayOfWeekTextAppearance(resId);
Alan Viverette46127402014-11-13 10:50:37 -080043 }
44
Alan Viverette0ef59ac2015-03-23 13:13:25 -070045 @StyleRes
Alan Viverette46127402014-11-13 10:50:37 -080046 @Override
47 public int getWeekDayTextAppearance() {
Alan Viverette0ef59ac2015-03-23 13:13:25 -070048 return mDayPickerView.getDayOfWeekTextAppearance();
Alan Viverette46127402014-11-13 10:50:37 -080049 }
50
51 @Override
Alan Viverette0ef59ac2015-03-23 13:13:25 -070052 public void setDateTextAppearance(@StyleRes int resId) {
53 mDayPickerView.setDayTextAppearance(resId);
Alan Viverette46127402014-11-13 10:50:37 -080054 }
55
Alan Viverette0ef59ac2015-03-23 13:13:25 -070056 @StyleRes
Alan Viverette46127402014-11-13 10:50:37 -080057 @Override
58 public int getDateTextAppearance() {
Alan Viverette0ef59ac2015-03-23 13:13:25 -070059 return mDayPickerView.getDayTextAppearance();
Alan Viverette46127402014-11-13 10:50:37 -080060 }
61
62 @Override
63 public void setMinDate(long minDate) {
64 mDayPickerView.setMinDate(minDate);
65 }
66
67 @Override
68 public long getMinDate() {
69 return mDayPickerView.getMinDate();
70 }
71
72 @Override
73 public void setMaxDate(long maxDate) {
74 mDayPickerView.setMaxDate(maxDate);
75 }
76
77 @Override
78 public long getMaxDate() {
79 return mDayPickerView.getMaxDate();
80 }
81
82 @Override
Alan Viverette46127402014-11-13 10:50:37 -080083 public void setFirstDayOfWeek(int firstDayOfWeek) {
84 mDayPickerView.setFirstDayOfWeek(firstDayOfWeek);
85 }
86
87 @Override
88 public int getFirstDayOfWeek() {
89 return mDayPickerView.getFirstDayOfWeek();
90 }
91
92 @Override
93 public void setDate(long date) {
Alan Viverette0ef59ac2015-03-23 13:13:25 -070094 mDayPickerView.setDate(date, true);
Alan Viverette46127402014-11-13 10:50:37 -080095 }
96
97 @Override
98 public void setDate(long date, boolean animate, boolean center) {
Alan Viverette0ef59ac2015-03-23 13:13:25 -070099 mDayPickerView.setDate(date, animate);
Alan Viverette46127402014-11-13 10:50:37 -0800100 }
101
102 @Override
103 public long getDate() {
104 return mDayPickerView.getDate();
105 }
106
107 @Override
108 public void setOnDateChangeListener(CalendarView.OnDateChangeListener listener) {
109 mOnDateChangeListener = listener;
110 }
111
Alan Viverette46127402014-11-13 10:50:37 -0800112 private final DayPickerView.OnDaySelectedListener mOnDaySelectedListener =
113 new DayPickerView.OnDaySelectedListener() {
114 @Override
115 public void onDaySelected(DayPickerView view, Calendar day) {
116 if (mOnDateChangeListener != null) {
117 final int year = day.get(Calendar.YEAR);
118 final int month = day.get(Calendar.MONTH);
119 final int dayOfMonth = day.get(Calendar.DAY_OF_MONTH);
120 mOnDateChangeListener.onSelectedDayChange(mDelegator, year, month, dayOfMonth);
121 }
122 }
123 };
124}