From 4b1e22f7164a055ba24d958de8c852d4551e79c4 Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Mon, 14 Jan 2013 13:52:03 -0800 Subject: [PATCH] Title only style enhancements, add checkboxes back --- .../layout/task_adapter_row_title_only.xml | 12 ++- .../todoroo/astrid/adapter/TaskAdapter.java | 100 ++++++++++-------- 2 files changed, 69 insertions(+), 43 deletions(-) diff --git a/astrid/res/layout/task_adapter_row_title_only.xml b/astrid/res/layout/task_adapter_row_title_only.xml index 2c7417204..e2cedaedc 100644 --- a/astrid/res/layout/task_adapter_row_title_only.xml +++ b/astrid/res/layout/task_adapter_row_title_only.xml @@ -18,12 +18,22 @@ android:layout_height="wrap_content" android:layout_marginTop="10dip" android:layout_marginBottom="10dip"> + + cursor = (TodorooCursor)c; ViewHolder viewHolder = ((ViewHolder)view.getTag()); - if (!titleOnly) { + if (!titleOnlyLayout) { viewHolder.isTaskRabbit = (cursor.get(TASK_RABBIT_ID) > 0); viewHolder.tagsString = cursor.get(TAGS); } @@ -393,7 +397,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable { task.readFromCursor(cursor); setFieldContentsAndVisibility(view); - if (!titleOnly) + if (!titleOnlyLayout) setTaskAppearance(viewHolder, task); } @@ -427,14 +431,12 @@ public class TaskAdapter extends CursorAdapter implements Filterable { public synchronized void setFieldContentsAndVisibility(View view) { ViewHolder viewHolder = (ViewHolder)view.getTag(); Task task = viewHolder.task; - if (fontSize < 16 || titleOnly) { + if (fontSize < 16 || titleOnlyLayout) { viewHolder.rowBody.setMinimumHeight(0); - if (viewHolder.completeBox != null) - viewHolder.completeBox.setMinimumHeight(0); + viewHolder.completeBox.setMinimumHeight(0); } else { viewHolder.rowBody.setMinimumHeight(minRowHeight); - if (viewHolder.completeBox != null) - viewHolder.completeBox.setMinimumHeight(minRowHeight); + viewHolder.completeBox.setMinimumHeight(minRowHeight); } if (task.isEditable()) @@ -454,8 +456,10 @@ public class TaskAdapter extends CursorAdapter implements Filterable { nameView.setText(nameValue); } - if (titleOnly) + if (titleOnlyLayout) { + setupCompleteBox(viewHolder); return; + } float dueDateTextWidth = setupDueDateAndTags(viewHolder, task); @@ -568,31 +572,35 @@ public class TaskAdapter extends CursorAdapter implements Filterable { viewHolder.completeBox.setOnTouchListener(otl); viewHolder.completeBox.setOnClickListener(completeBoxListener); - viewHolder.picture.setOnTouchListener(otl); - viewHolder.picture.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - viewHolder.completeBox.performClick(); - } - }); + if (viewHolder.picture != null) { + viewHolder.picture.setOnTouchListener(otl); + viewHolder.picture.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + viewHolder.completeBox.performClick(); + } + }); + } - viewHolder.taskActionContainer.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - TaskAction action = (TaskAction) viewHolder.taskActionIcon.getTag(); - if (action instanceof NotesAction) { - showEditNotesDialog(viewHolder.task); - } else if (action instanceof FilesAction) { - showFilesDialog(viewHolder.task); - } else if (action != null) { - try { - action.intent.send(); - } catch (CanceledException e) { - // Oh well + if (viewHolder.taskActionContainer != null) { + viewHolder.taskActionContainer.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + TaskAction action = (TaskAction) viewHolder.taskActionIcon.getTag(); + if (action instanceof NotesAction) { + showEditNotesDialog(viewHolder.task); + } else if (action instanceof FilesAction) { + showFilesDialog(viewHolder.task); + } else if (action != null) { + try { + action.intent.send(); + } catch (CanceledException e) { + // Oh well + } } } - } - }); + }); + } } private void showEditNotesDialog(final Task task) { @@ -1149,7 +1157,14 @@ public class TaskAdapter extends CursorAdapter implements Filterable { } } - // complete box + setupCompleteBox(viewHolder); + + } + + private void setupCompleteBox(ViewHolder viewHolder) { + // complete box + final Task task = viewHolder.task; + final AsyncImageView pictureView = viewHolder.picture; final CheckableImageView checkBoxView = viewHolder.completeBox; { checkBoxView.setChecked(task.isCompleted()); // disable checkbox if task is readonly @@ -1163,6 +1178,8 @@ public class TaskAdapter extends CursorAdapter implements Filterable { } else { checkBoxView.setImageResource(IMPORTANCE_RESOURCES[value]); } + if (titleOnlyLayout) + return; if (checkBoxView.isChecked()) { if (pictureView != null) @@ -1179,7 +1196,6 @@ public class TaskAdapter extends CursorAdapter implements Filterable { checkBoxView.setVisibility(View.VISIBLE); } } - } // Returns due date text width