1e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova/*
2e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova * Copyright (C) 2015 The Android Open Source Project
3e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova *
4e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova * Licensed under the Apache License, Version 2.0 (the "License");
5e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova * you may not use this file except in compliance with the License.
6e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova * You may obtain a copy of the License at
7e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova *
8e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova *      http://www.apache.org/licenses/LICENSE-2.0
9e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova *
10e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova * Unless required by applicable law or agreed to in writing, software
11e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova * distributed under the License is distributed on an "AS IS" BASIS,
12e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova * See the License for the specific language governing permissions and
14e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova * limitations under the License.
15e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova */
16e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimovapackage com.android.deskclock.widget.selector;
17e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova
18e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimovaimport android.content.Context;
19e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimovaimport android.view.LayoutInflater;
20e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimovaimport android.view.View;
21e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimovaimport android.view.ViewGroup;
22e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimovaimport android.widget.ArrayAdapter;
23e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimovaimport android.widget.TextView;
24e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova
25e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimovaimport com.android.deskclock.R;
26e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimovaimport com.android.deskclock.provider.Alarm;
27e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimovaimport com.android.deskclock.widget.TextTime;
28e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova
29e28d63671ccf81607dc47fa87b7abcf66ef22b86Annie Chinimport java.util.Calendar;
30e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimovaimport java.util.List;
31e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova
32e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimovapublic class AlarmSelectionAdapter extends ArrayAdapter<AlarmSelection> {
33e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova
34e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova    public AlarmSelectionAdapter(Context context, int id, List<AlarmSelection> alarms) {
35e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        super(context, id, alarms);
36e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova    }
37e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova
38e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova    @Override
39e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova    public View getView(int position, View convertView, ViewGroup parent) {
40e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        final Context context = getContext();
41e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        View row = convertView;
42e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        if (row == null) {
43e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova            final LayoutInflater inflater = LayoutInflater.from(context);
44e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova            row = inflater.inflate(R.layout.alarm_row, parent, false);
45e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        }
46e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova
47e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        final AlarmSelection selection = getItem(position);
48e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        final Alarm alarm = selection.getAlarm();
49e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova
50e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        final TextTime alarmTime = (TextTime) row.findViewById(R.id.digital_clock);
51d6c134979a65c717aa5e667c39d9f9a788b32a45Dylan Phan        alarmTime.setFormat(context);
52e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        alarmTime.setTime(alarm.hour, alarm.minutes);
53e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova
54e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        final TextView alarmLabel = (TextView) row.findViewById(R.id.label);
55e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        alarmLabel.setText(alarm.label);
56e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova
57e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        // find days when alarm is firing
58e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        final String daysOfWeek;
59e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        if (!alarm.daysOfWeek.isRepeating()) {
60e28d63671ccf81607dc47fa87b7abcf66ef22b86Annie Chin            daysOfWeek = Alarm.isTomorrow(alarm, Calendar.getInstance()) ?
61e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova                    context.getResources().getString(R.string.alarm_tomorrow) :
62e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova                    context.getResources().getString(R.string.alarm_today);
63e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        } else {
64e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova            daysOfWeek = alarm.daysOfWeek.toString(context, 0);
65e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        }
66e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova
67e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        final TextView daysOfWeekView = (TextView) row.findViewById(R.id.daysOfWeek);
68e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        daysOfWeekView.setText(daysOfWeek);
69e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova
70e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova        return row;
71e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova    }
72e6f73547d9fed9f9e0a44e6baf2894d317e6ef78Daria Evdokimova}