Remove public and readonly columns from tasks

pull/73/head
Alex Baker 11 years ago
parent 94d2189f85
commit f541415309

@ -91,12 +91,6 @@ public final class Task extends RemoteModel {
public static final IntegerProperty FLAGS = new IntegerProperty(
TABLE, "flags");
public static final IntegerProperty IS_PUBLIC = new IntegerProperty(
TABLE, "is_public", Property.PROP_FLAG_BOOLEAN);
public static final IntegerProperty IS_READONLY = new IntegerProperty(
TABLE, "is_readonly", Property.PROP_FLAG_BOOLEAN);
// --- non-core task metadata
public static final StringProperty NOTES = new StringProperty(
@ -257,8 +251,6 @@ public final class Task extends RemoteModel {
defaultValues.put(TIMER_START.name, 0);
defaultValues.put(DETAILS.name, (String)null);
defaultValues.put(DETAILS_DATE.name, 0);
defaultValues.put(IS_PUBLIC.name, 0);
defaultValues.put(IS_READONLY.name, 0);
defaultValues.put(CLASSIFICATION.name, "");
defaultValues.put(LAST_SYNC.name, 0);
@ -473,11 +465,6 @@ public final class Task extends RemoteModel {
return dueDate < compareTo;
}
public boolean isEditable() {
return (getValue(Task.IS_READONLY) == 0) &&
!(getValue(Task.IS_PUBLIC) == 1 && !Task.USER_ID_SELF.equals(getValue(Task.USER_ID)));
}
public boolean repeatAfterCompletion() {
return getValue(Task.RECURRENCE).contains("FROM=COMPLETION");
}

@ -70,8 +70,6 @@ public class NameMaps {
putTaskPropertyToServerName(Task.USER_ID, "user_id", true);
putTaskPropertyToServerName(Task.CREATOR_ID, "creator_id", false);
putTaskPropertyToServerName(Task.UUID, "uuid", false);
putTaskPropertyToServerName(Task.IS_PUBLIC, "public", true);
putTaskPropertyToServerName(Task.IS_READONLY, "read_only", false);
putTaskPropertyToServerName(Task.CLASSIFICATION, "classification", false);
}

@ -25,10 +25,8 @@ import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.actfm.CommentsActivity;
import com.todoroo.astrid.actfm.CommentsFragment;
import com.todoroo.astrid.actfm.TagCommentsFragment;
import com.todoroo.astrid.actfm.TaskCommentsFragment;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem;
@ -216,19 +214,7 @@ public class AstridActivity extends ActionBarActivity
@Override
public void onTaskListItemClicked(long taskId) {
Task task = taskDao.fetch(taskId, Task.IS_READONLY, Task.IS_PUBLIC, Task.USER_ID);
if (task != null) {
onTaskListItemClicked(taskId, task.isEditable());
}
}
@Override
public void onTaskListItemClicked(long taskId, boolean editable) {
if (editable) {
editTask(taskId);
} else {
showComments(taskId);
}
editTask(taskId);
}
private void editTask(long taskId) {
@ -272,13 +258,6 @@ public class AstridActivity extends ActionBarActivity
}
}
private void showComments(long taskId) {
Intent intent = new Intent(this, CommentsActivity.class);
intent.putExtra(TaskCommentsFragment.EXTRA_TASK, taskId);
startActivity(intent);
AndroidUtilities.callOverridePendingTransition(this, R.anim.slide_left_in, R.anim.slide_left_out);
}
@Override
public void onBackPressed() {
if (isFinishing()) {

@ -54,7 +54,7 @@ public final class ShareLinkActivity extends TaskListActivity {
task.setValue(Task.NOTES, callerIntent.getStringExtra(Intent.EXTRA_TEXT));
taskService.save(task);
handled = true;
onTaskListItemClicked(task.getId(), true);
onTaskListItemClicked(task.getId());
}
}
}

@ -282,13 +282,13 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
if (getIntent().hasExtra(OPEN_TASK)) {
long id = getIntent().getLongExtra(OPEN_TASK, 0);
if (id > 0) {
onTaskListItemClicked(id, true);
onTaskListItemClicked(id);
} else {
TaskListFragment tlf = getTaskListFragment();
if (tlf != null) {
Task result = tlf.quickAddBar.quickAddTask("", true); //$NON-NLS-1$
if (result != null) {
onTaskListItemClicked(result.getId(), true);
onTaskListItemClicked(result.getId());
}
}
}
@ -313,8 +313,8 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
}
@Override
public void onTaskListItemClicked(long taskId, boolean editable) {
if (fragmentLayout != LAYOUT_SINGLE && editable) {
public void onTaskListItemClicked(long taskId) {
if (fragmentLayout != LAYOUT_SINGLE) {
getIntent().putExtra(OPEN_TASK, taskId);
}
CommentsFragment tuf = getTagUpdatesFragment();
@ -322,7 +322,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
tuf.getView().setVisibility(View.INVISIBLE);
}
super.onTaskListItemClicked(taskId, editable);
super.onTaskListItemClicked(taskId);
}
public void setListsTitle(String title) {

@ -233,7 +233,6 @@ public class TaskListFragment extends ListFragment implements OnSortSelectedList
*/
public interface OnTaskListItemClickedListener {
public void onTaskListItemClicked(long taskId);
public void onTaskListItemClicked(long taskId, boolean editable);
}
@Override
@ -325,7 +324,7 @@ public class TaskListFragment extends ListFragment implements OnSortSelectedList
return;
}
onTaskListItemClicked(id, task.isEditable());
onTaskListItemClicked(id);
}
}
});
@ -910,9 +909,6 @@ public class TaskListFragment extends ListFragment implements OnSortSelectedList
ContextMenuInfo menuInfo) {
AdapterContextMenuInfo adapterInfo = (AdapterContextMenuInfo) menuInfo;
Task task = ((ViewHolder) adapterInfo.targetView.getTag()).task;
if (task.getValue(Task.IS_READONLY) > 0) {
return;
}
int id = (int) task.getId();
menu.setHeaderTitle(task.getValue(Task.TITLE));
@ -1118,8 +1114,8 @@ public class TaskListFragment extends ListFragment implements OnSortSelectedList
startActivityForResult(intent, ACTIVITY_SETTINGS);
}
public void onTaskListItemClicked(long taskId, boolean editable) {
mListener.onTaskListItemClicked(taskId, editable);
public void onTaskListItemClicked(long taskId) {
mListener.onTaskListItemClicked(taskId);
}
protected void toggleDragDrop(boolean newState) {

@ -24,7 +24,6 @@ import android.text.Spanned;
import android.text.TextUtils;
import android.text.TextUtils.TruncateAt;
import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
@ -107,8 +106,6 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
Task.ID,
Task.UUID,
Task.TITLE,
Task.IS_READONLY,
Task.IS_PUBLIC,
Task.IMPORTANCE,
Task.DUE_DATE,
Task.COMPLETION_DATE,
@ -131,8 +128,6 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
Task.ID,
Task.UUID,
Task.TITLE,
Task.IS_READONLY,
Task.IS_PUBLIC,
Task.IMPORTANCE,
Task.RECURRENCE,
Task.COMPLETION_DATE,
@ -196,7 +191,6 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
private int fontSize;
private long mostRecentlyMade = -1;
private final ScaleAnimation scaleAnimation;
private final int readonlyBackground;
private final AtomicReference<String> query;
@ -255,16 +249,11 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
scaleAnimation.setDuration(100);
TypedValue readonlyBg = new TypedValue();
fragment.getActivity().getTheme().resolveAttribute(R.attr.asReadonlyTaskBackground, readonlyBg, false);
readonlyBackground = readonlyBg.data;
preloadDrawables(IMPORTANCE_RESOURCES, IMPORTANCE_DRAWABLES);
preloadDrawables(IMPORTANCE_RESOURCES_CHECKED, IMPORTANCE_DRAWABLES_CHECKED);
preloadDrawables(IMPORTANCE_RESOURCES_LARGE, IMPORTANCE_DRAWABLES_LARGE);
preloadDrawables(IMPORTANCE_REPEAT_RESOURCES, IMPORTANCE_REPEAT_DRAWABLES);
preloadDrawables(IMPORTANCE_REPEAT_RESOURCES_CHECKED, IMPORTANCE_REPEAT_DRAWABLES_CHECKED);
}
private void preloadDrawables(int[] resourceIds, Drawable[] drawables) {
@ -437,11 +426,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
viewHolder.completeBox.setMinimumHeight(minRowHeight);
}
if (task.isEditable()) {
viewHolder.view.setBackgroundColor(resources.getColor(android.R.color.transparent));
} else {
viewHolder.view.setBackgroundColor(readonlyBackground);
}
viewHolder.view.setBackgroundColor(resources.getColor(android.R.color.transparent));
// name
final TextView nameView = viewHolder.nameView; {
@ -508,7 +493,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
}
private TaskAction getTaskAction(Task task, boolean hasFiles, boolean hasNotes) {
if (titleOnlyLayout || task.isCompleted() || !task.isEditable()) {
if (titleOnlyLayout || task.isCompleted()) {
return null;
}
if (taskActionLoader.containsKey(task.getId())) {
@ -986,7 +971,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
}
long taskId = viewHolder.task.getId();
fragment.onTaskListItemClicked(taskId, viewHolder.task.isEditable());
fragment.onTaskListItemClicked(taskId);
}
}
@ -1054,8 +1039,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
final CheckableImageView checkBoxView = viewHolder.completeBox; {
boolean completed = task.isCompleted();
checkBoxView.setChecked(completed);
// disable checkbox if task is readonly
checkBoxView.setEnabled(viewHolder.task.isEditable());
checkBoxView.setEnabled(true);
int value = task.getValue(Task.IMPORTANCE);
if (value >= IMPORTANCE_RESOURCES.length) {

@ -276,8 +276,6 @@ public class Database extends AbstractDatabase {
tryExecSQL(createTableSql(visitor, TaskListMetadata.TABLE.name, TaskListMetadata.PROPERTIES));
tryExecSQL(addColumnSql(Task.TABLE, Task.PUSHED_AT, visitor, null));
tryExecSQL(addColumnSql(Task.TABLE, Task.IS_PUBLIC, visitor, "0"));
tryExecSQL(addColumnSql(Task.TABLE, Task.IS_READONLY, visitor, "0"));
tryExecSQL(addColumnSql(Task.TABLE, Task.CLASSIFICATION, visitor, null));
tryExecSQL(addColumnSql(Task.TABLE, Task.ATTACHMENTS_PUSHED_AT, visitor, null));
tryExecSQL(addColumnSql(Task.TABLE, Task.USER_ACTIVITIES_PUSHED_AT, visitor, null));

@ -78,7 +78,6 @@ public class TaskDao extends RemoteModelDao<Task> {
return Criterion.and(Task.COMPLETION_DATE.eq(0),
Task.DELETION_DATE.eq(0),
Task.HIDE_UNTIL.lt(Functions.now()),
Task.IS_READONLY.eq(0),
Task.USER_ID.eq(0));
}
@ -120,15 +119,11 @@ public class TaskDao extends RemoteModelDao<Task> {
/** Check if a given task belongs to someone else & is read-only */
public static Criterion ownedByMe() {
return Criterion.and(Task.IS_READONLY.eq(0),
Task.USER_ID.eq(0));
return Task.USER_ID.eq(0);
}
}
// --- custom operations
// --- delete
/**

@ -63,7 +63,6 @@ public class DateChangedAlerts {
final Dialog d = new Dialog(activity, R.style.ReminderDialog);
final long taskId = task.getId();
final boolean editable = task.isEditable();
d.setContentView(R.layout.astrid_reminder_view);
Button okButton = (Button) d.findViewById(R.id.reminder_complete);
@ -83,7 +82,7 @@ public class DateChangedAlerts {
@Override
public void onClick(View v) {
d.dismiss();
activity.onTaskListItemClicked(taskId, editable);
activity.onTaskListItemClicked(taskId);
}
});

@ -162,7 +162,7 @@ public class QuickAddBar extends LinearLayout {
public void onClick(View v) {
Task task = quickAddTask(quickAddBox.getText().toString(), true);
if (task != null && task.getValue(Task.TITLE).length() == 0) {
mListener.onTaskListItemClicked(task.getId(), true);
mListener.onTaskListItemClicked(task.getId());
}
}
});
@ -188,7 +188,7 @@ public class QuickAddBar extends LinearLayout {
return true;
}
mListener.onTaskListItemClicked(task.getId(), true);
mListener.onTaskListItemClicked(task.getId());
return true;
}
});

@ -19,12 +19,10 @@
<attr name="asFilterHeaderColor" format="color"/>
<attr name="asSeparatorBackground" format="color"/>
<attr name="asListDividerColor" format="color"/>
<attr name="asThemeTextColor" format="color"/>
<attr name="asHeaderTextColor" format="color"/>
<attr name="asHeaderTextColorInverse" format="color"/>
<attr name="asEditTextBackground" format="reference"/>
<attr name="asReadonlyTaskBackground" format="color" />
<attr name="asAbBackgroundColor" format="color"/>
<attr name="asQuickaddBackgroundColor" format="color" />
<attr name="asFilterSelectedIcon" format="reference"/>

@ -28,7 +28,6 @@
<item name="asQuickaddBackgroundColor">?attr/asAbBackgroundColor</item>
<item name="asFilterSelectedIcon">@drawable/filter_selected_icon</item>
<item name="asTaskRowSelector">@drawable/task_row_bg_dark</item>
<item name="asReadonlyTaskBackground">#322c19</item>
<item name="asHeaderTextColor">?attr/asThemeTextColor</item>
<item name="asHeaderTextColorInverse">?attr/asAbBackgroundColor</item>
<item name="ic_action_gear">@drawable/ic_action_gear_light</item>
@ -73,7 +72,6 @@
<item name="asEditRowBackground">@drawable/task_edit_background_white</item>
<item name="asFilterSelectedIcon">@drawable/filter_selected_icon_black</item>
<item name="asTaskRowSelector">@drawable/task_row_bg_white</item>
<item name="asReadonlyTaskBackground">#fff6d7</item>
<item name="asThemeTextColor">@color/dark_blue_theme_color</item>
<item name="asAbBackgroundColor">#e9e9e9</item>
<item name="ic_action_gear">@drawable/ic_action_gear</item>

Loading…
Cancel
Save