@Override public void bindView(View view, Context context, final Cursor cursor) { final Alarm alarm = new Alarm(cursor); final ItemHolder itemHolder = (ItemHolder) view.getTag(); itemHolder.alarm = alarm; // We must unset the listener first because this maybe a recycled view so changing the // state would affect the wrong alarm. itemHolder.onoff.setOnCheckedChangeListener(null); itemHolder.onoff.setChecked(alarm.enabled); if (mSelectedAlarms.contains(itemHolder.alarm.id)) { itemHolder.alarmItem.setBackgroundColor(mBackgroundColorSelected); setItemAlpha(itemHolder, true); itemHolder.onoff.setEnabled(false); } else { itemHolder.onoff.setEnabled(true); itemHolder.alarmItem.setBackgroundColor(mBackgroundColor); setItemAlpha(itemHolder, itemHolder.onoff.isChecked()); } final CompoundButton.OnCheckedChangeListener onOffListener = new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { // When action mode is on - simulate long click if (doLongClick(compoundButton)) { return; } if (checked != alarm.enabled) { setItemAlpha(itemHolder, checked); alarm.enabled = checked; asyncUpdateAlarm(alarm, alarm.enabled); } } }; itemHolder.onoff.setOnCheckedChangeListener(onOffListener); itemHolder.onoff.setOnLongClickListener(mLongClickListener); itemHolder.clock.updateTime(alarm.hour, alarm.minutes); itemHolder.clock.setClickable(true); itemHolder.clock.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { // When action mode is on - simulate long click if (doLongClick(view)) { return; } AlarmUtils.showTimeEditDialog(AlarmClock.this.getFragmentManager(), alarm); expandAlarm(itemHolder); itemHolder.alarmItem.post(mScrollRunnable); } }); itemHolder.clock.setOnLongClickListener(mLongClickListener); itemHolder.expandArea.setVisibility(isAlarmExpanded(alarm) ? View.VISIBLE : View.GONE); itemHolder.expandArea.setOnLongClickListener(mLongClickListener); itemHolder.infoArea.setVisibility(!isAlarmExpanded(alarm) ? View.VISIBLE : View.GONE); itemHolder.infoArea.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { // When action mode is on - simulate long click if (doLongClick(view)) { return; } expandAlarm(itemHolder); itemHolder.alarmItem.post(mScrollRunnable); } }); itemHolder.infoArea.setOnLongClickListener(mLongClickListener); String colons = ""; // Set the repeat text or leave it blank if it does not repeat. final String daysOfWeekStr = alarm.daysOfWeek.toString(AlarmClock.this, false); if (daysOfWeekStr != null && daysOfWeekStr.length() != 0) { itemHolder.daysOfWeek.setText(daysOfWeekStr); itemHolder.daysOfWeek.setContentDescription( alarm.daysOfWeek.toAccessibilityString(AlarmClock.this)); itemHolder.daysOfWeek.setVisibility(View.VISIBLE); colons = ": "; itemHolder.daysOfWeek.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { // When action mode is on - simulate long click if (doLongClick(view)) { return; } expandAlarm(itemHolder); itemHolder.alarmItem.post(mScrollRunnable); } }); itemHolder.daysOfWeek.setOnLongClickListener(mLongClickListener); } else { itemHolder.daysOfWeek.setVisibility(View.GONE); } if (alarm.label != null && alarm.label.length() != 0) { itemHolder.label.setText(alarm.label + colons); itemHolder.label.setVisibility(View.VISIBLE); itemHolder.label.setContentDescription( mContext.getResources().getString(R.string.label_description) + " " + alarm.label); itemHolder.label.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { // When action mode is on - simulate long click if (doLongClick(view)) { return; } expandAlarm(itemHolder); itemHolder.alarmItem.post(mScrollRunnable); } }); itemHolder.label.setOnLongClickListener(mLongClickListener); } else { itemHolder.label.setVisibility(View.GONE); } if (isAlarmExpanded(alarm)) { expandAlarm(itemHolder); } view.setOnLongClickListener(mLongClickListener); view.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { // When action mode is on - simulate long click doLongClick(view); } }); }