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}