@Override public void onBindViewHolder(TaskViewHolder holder, final int position) { final int pos = position; final Task task = mDataset.get(position); long millis = task.getTimeLeft(); holder.mTaskTitle.setText(task.getTitle()); String time = String.format( "%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis), TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)), TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))); holder.mTaskTimeRemaining.setText(time); holder.mTaskTimeRemaining.setOnLongClickListener( new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { mDataset.get(position).resetTimeLeft(); mDataset.get(position).pause(); mTaskHandler.updateTask(task); notifyDataSetChanged(); Toast.makeText(mContext, "Task Reset", Toast.LENGTH_SHORT); return true; } }); if (task.isRunning()) { holder.mStartStop.setImageResource(R.drawable.ic_pause_white_48dp); } else { holder.mStartStop.setImageResource(R.drawable.ic_play_arrow_white_48dp); } holder.mStartStop.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { Task t = mDataset.get(position); if (t.isRunning()) { t.pause(); TimerDoneReceiver.cancelAlarm(t.getId(), t.getTitle()); } else { t.start(); TimerDoneReceiver.setAlarm(mContext, t.getTimeLeft(), t.getId(), t.getTitle()); } notifyItemChanged(position); } }); }
public boolean insertTask(Task task) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(TaskContract.TaskEntry.COLUMN_NAME_ENTRY_ID, task.getId()); contentValues.put(TaskContract.TaskEntry.COLUMN_NAME_STATUS, task.isRunning()); contentValues.put(TaskContract.TaskEntry.COLUMN_NAME_TITLE, task.getTitle()); contentValues.put(TaskContract.TaskEntry.COLUMN_NAME_TIMELEFT, task.getTimeLeft()); contentValues.put(TaskContract.TaskEntry.COLUMN_NAME_INITIALTIME, task.getInitialTime()); contentValues.put(TaskContract.TaskEntry.COLUMN_NAME_TICKS, task.numTicks()); long newRowId; newRowId = db.insert(TaskContract.TaskEntry.TABLE_NAME, null, contentValues); return true; }
public boolean updateTask(Task task) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(TaskContract.TaskEntry.COLUMN_NAME_ENTRY_ID, task.getId()); contentValues.put(TaskContract.TaskEntry.COLUMN_NAME_STATUS, task.isRunning()); contentValues.put(TaskContract.TaskEntry.COLUMN_NAME_TITLE, task.getTitle()); contentValues.put(TaskContract.TaskEntry.COLUMN_NAME_TIMELEFT, task.getTimeLeft()); contentValues.put(TaskContract.TaskEntry.COLUMN_NAME_INITIALTIME, task.getInitialTime()); contentValues.put(TaskContract.TaskEntry.COLUMN_NAME_TICKS, task.numTicks()); db.update( TaskContract.TaskEntry.TABLE_NAME, contentValues, TaskContract.TaskEntry.COLUMN_NAME_ENTRY_ID + " = ? ", new String[] {Long.toString(task.getId())}); return true; }