Renaming TodoList -> ListMetadata
Closes vanadium/issues#1295
Change-Id: I72c503dbc0e03093c205cf39d5dc55f42c78c2a6
diff --git a/app/src/firebase/java/io/v/todos/persistence/PersistenceFactory.java b/app/src/firebase/java/io/v/todos/persistence/PersistenceFactory.java
index f0da774..07a13c7 100644
--- a/app/src/firebase/java/io/v/todos/persistence/PersistenceFactory.java
+++ b/app/src/firebase/java/io/v/todos/persistence/PersistenceFactory.java
@@ -6,7 +6,7 @@
import android.content.Context;
-import io.v.todos.model.TodoList;
+import io.v.todos.model.ListMetadata;
import io.v.todos.persistence.firebase.FirebaseMain;
import io.v.todos.persistence.firebase.FirebaseTodoList;
@@ -19,7 +19,7 @@
* @param context an Android context, usually from an Android activity or application
*/
public static MainPersistence getMainPersistence(Context context,
- ListEventListener<TodoList> listener) {
+ ListEventListener<ListMetadata> listener) {
return new FirebaseMain(context, listener);
}
diff --git a/app/src/firebase/java/io/v/todos/persistence/firebase/FirebaseMain.java b/app/src/firebase/java/io/v/todos/persistence/firebase/FirebaseMain.java
index f5f0998..9066a0b 100644
--- a/app/src/firebase/java/io/v/todos/persistence/firebase/FirebaseMain.java
+++ b/app/src/firebase/java/io/v/todos/persistence/firebase/FirebaseMain.java
@@ -16,8 +16,8 @@
import java.util.HashMap;
import java.util.Map;
+import io.v.todos.model.ListMetadata;
import io.v.todos.model.Task;
-import io.v.todos.model.TodoList;
import io.v.todos.persistence.ListEventListener;
import io.v.todos.persistence.MainPersistence;
@@ -27,29 +27,29 @@
private final Firebase mTodoLists;
private final ChildEventListener mTodoListsListener;
- private final ListEventListener<TodoList> mListener;
+ private final ListEventListener<ListMetadata> mListener;
private final Map<String, ChildEventListener> mTodoListTaskListeners;
private final Map<String, TodoListTasksListener> mTodoListTrackers;
- public FirebaseMain(Context context, final ListEventListener<TodoList> listener) {
+ public FirebaseMain(Context context, final ListEventListener<ListMetadata> listener) {
super(context);
mTodoLists = getFirebase().child(TODO_LISTS);
// This handler will forward events to the passed in listener after ensuring that all the
- // data in the TodoList is set and can automatically update.
+ // data in the ListMetadata is set and can automatically update.
mTodoListsListener = mTodoLists.addChildEventListener(
- new ChildEventListenerAdapter<>(TodoList.class, new ListEventListener<TodoList>() {
+ new ChildEventListenerAdapter<>(ListMetadata.class, new ListEventListener<ListMetadata>() {
@Override
- public void onItemAdd(TodoList item) {
+ public void onItemAdd(ListMetadata item) {
// Hook up listeners for the # completed and # tasks. Then forward the item.
startWatchTodoListTasks(item);
mListener.onItemAdd(item);
}
@Override
- public void onItemUpdate(TodoList item) {
+ public void onItemUpdate(ListMetadata item) {
// Retrieve # completed and # tasks. Then forward the item.
setTaskCompletion(item);
mListener.onItemUpdate(item);
@@ -69,8 +69,8 @@
}
@Override
- public void addTodoList(TodoList todoList) {
- mTodoLists.push().setValue(todoList);
+ public void addTodoList(ListMetadata listMetadata) {
+ mTodoLists.push().setValue(listMetadata);
}
@Override
@@ -83,15 +83,15 @@
}
@Override
- public void completeAllTasks(final TodoList todoList) {
+ public void completeAllTasks(final ListMetadata listMetadata) {
// Update all child tasks for this key to have done = true.
- Firebase tasksRef = getFirebase().child(FirebaseTodoList.TASKS).child(todoList.getKey());
+ Firebase tasksRef = getFirebase().child(FirebaseTodoList.TASKS).child(listMetadata.getKey());
tasksRef.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
// Note: This is very easy to make conflicts with. It may be better to avoid doing
// this in a batch or to split up the Task into components.
- for (Task t : mTodoListTrackers.get(todoList.getKey()).mTasks.values()) {
+ for (Task t : mTodoListTrackers.get(listMetadata.getKey()).mTasks.values()) {
Task tCopy = t.copy();
tCopy.setDone(true);
mutableData.child(t.getKey()).setValue(tCopy);
@@ -105,19 +105,19 @@
});
// Further, update this todo list to set its last updated time.
- mTodoLists.child(todoList.getKey()).setValue(new TodoList(todoList.getName()));
+ mTodoLists.child(listMetadata.getKey()).setValue(new ListMetadata(listMetadata.getName()));
}
- private void setTaskCompletion(TodoList todoList) {
- TodoListTasksListener tracker = mTodoListTrackers.get(todoList.getKey());
- tracker.swapTodoList(todoList);
+ private void setTaskCompletion(ListMetadata listMetadata) {
+ TodoListTasksListener tracker = mTodoListTrackers.get(listMetadata.getKey());
+ tracker.swapTodoList(listMetadata);
}
- private void startWatchTodoListTasks(final TodoList todoList) {
- final String todoListKey = todoList.getKey();
+ private void startWatchTodoListTasks(final ListMetadata listMetadata) {
+ final String todoListKey = listMetadata.getKey();
Firebase taskRef = getFirebase().child(FirebaseTodoList.TASKS).child(todoListKey);
- TodoListTasksListener tasksListener = new TodoListTasksListener(todoList);
+ TodoListTasksListener tasksListener = new TodoListTasksListener(listMetadata);
ChildEventListener l = taskRef.addChildEventListener(
new ChildEventListenerAdapter<>(Task.class, tasksListener)
);
@@ -140,12 +140,12 @@
}
private class TodoListTasksListener implements ListEventListener<Task> {
- TodoList mTodoList; // The list whose numCompleted and numTasks fields will be updated.
+ ListMetadata mListMetadata; // The list whose numCompleted and numTasks fields will be updated.
final Map<String, Task> mTasks;
boolean disabled = false;
- TodoListTasksListener(TodoList todoList) {
- mTodoList = todoList;
+ TodoListTasksListener(ListMetadata listMetadata) {
+ mListMetadata = listMetadata;
mTasks = new HashMap<>();
}
@@ -156,14 +156,14 @@
disabled = true;
}
- public void swapTodoList(TodoList otherList) {
+ public void swapTodoList(ListMetadata otherList) {
if (disabled) {
return;
}
- assert mTodoList.getKey() == otherList.getKey();
- otherList.numCompleted = mTodoList.numCompleted;
- otherList.numTasks = mTodoList.numTasks;
- mTodoList = otherList;
+ assert mListMetadata.getKey() == otherList.getKey();
+ otherList.numCompleted = mListMetadata.numCompleted;
+ otherList.numTasks = mListMetadata.numTasks;
+ mListMetadata = otherList;
}
@Override
@@ -171,13 +171,13 @@
if (disabled) {
return;
}
- mTodoList.numTasks++;
+ mListMetadata.numTasks++;
if (item.getDone()) {
- mTodoList.numCompleted++;
+ mListMetadata.numCompleted++;
}
mTasks.put(item.getKey(), item);
- mListener.onItemUpdate(mTodoList);
+ mListener.onItemUpdate(mListMetadata);
}
@Override
@@ -190,11 +190,11 @@
if (oldItem.getDone() != item.getDone()) {
if (item.getDone()) {
- mTodoList.numCompleted++;
+ mListMetadata.numCompleted++;
} else {
- mTodoList.numCompleted--;
+ mListMetadata.numCompleted--;
}
- mListener.onItemUpdate(mTodoList);
+ mListener.onItemUpdate(mListMetadata);
}
}
@@ -203,13 +203,13 @@
if (disabled) {
return;
}
- mTodoList.numTasks--;
+ mListMetadata.numTasks--;
Task t = mTasks.remove(key);
if (t.getDone()) {
- mTodoList.numCompleted--;
+ mListMetadata.numCompleted--;
}
- mListener.onItemUpdate(mTodoList);
+ mListener.onItemUpdate(mListMetadata);
}
}
}
diff --git a/app/src/firebase/java/io/v/todos/persistence/firebase/FirebaseTodoList.java b/app/src/firebase/java/io/v/todos/persistence/firebase/FirebaseTodoList.java
index ffe9419..402cd62 100644
--- a/app/src/firebase/java/io/v/todos/persistence/firebase/FirebaseTodoList.java
+++ b/app/src/firebase/java/io/v/todos/persistence/firebase/FirebaseTodoList.java
@@ -12,8 +12,8 @@
import com.firebase.client.FirebaseError;
import com.firebase.client.ValueEventListener;
+import io.v.todos.model.ListMetadata;
import io.v.todos.model.Task;
-import io.v.todos.model.TodoList;
import io.v.todos.persistence.TodoListListener;
import io.v.todos.persistence.TodoListPersistence;
@@ -24,7 +24,7 @@
private final ValueEventListener mTodoListListener;
private final ChildEventListener mTasksListener;
- private TodoList mList;
+ private ListMetadata mList;
public FirebaseTodoList(Context context, String todoListKey, final TodoListListener listener) {
super(context);
@@ -35,12 +35,12 @@
mTodoListListener = mTodoList.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
- TodoList todoList = dataSnapshot.getValue(TodoList.class);
- if (todoList == null) {
+ ListMetadata listMetadata = dataSnapshot.getValue(ListMetadata.class);
+ if (listMetadata == null) {
listener.onDelete();
} else {
- mList = todoList;
- listener.onUpdate(todoList);
+ mList = listMetadata;
+ listener.onUpdate(listMetadata);
}
}
@@ -55,8 +55,8 @@
}
@Override
- public void updateTodoList(TodoList todoList) {
- mTodoList.setValue(todoList);
+ public void updateTodoList(ListMetadata listMetadata) {
+ mTodoList.setValue(listMetadata);
}
@Override
@@ -67,19 +67,19 @@
@Override
public void addTask(Task task) {
mTasks.push().setValue(task);
- mTodoList.setValue(new TodoList(mList.getName()));
+ mTodoList.setValue(new ListMetadata(mList.getName()));
}
@Override
public void updateTask(Task task) {
mTasks.child(task.getKey()).setValue(task);
- mTodoList.setValue(new TodoList(mList.getName()));
+ mTodoList.setValue(new ListMetadata(mList.getName()));
}
@Override
public void deleteTask(String key) {
mTasks.child(key).removeValue();
- mTodoList.setValue(new TodoList(mList.getName()));
+ mTodoList.setValue(new ListMetadata(mList.getName()));
}
@Override
diff --git a/app/src/main/java/io/v/todos/MainActivity.java b/app/src/main/java/io/v/todos/MainActivity.java
index a141ee6..93e84b3 100644
--- a/app/src/main/java/io/v/todos/MainActivity.java
+++ b/app/src/main/java/io/v/todos/MainActivity.java
@@ -19,7 +19,7 @@
import android.widget.Toolbar;
import io.v.todos.model.DataList;
-import io.v.todos.model.TodoList;
+import io.v.todos.model.ListMetadata;
import io.v.todos.persistence.ListEventListener;
import io.v.todos.persistence.MainPersistence;
import io.v.todos.persistence.PersistenceFactory;
@@ -41,7 +41,7 @@
// These todos are backed up at the SNACKOOS child of the Firebase URL.
// We use the snackoosList to track a custom sorted list of the stored values.
static final String INTENT_SNACKOO_KEY = "snackoo key";
- private DataList<TodoList> snackoosList = new DataList<TodoList>();
+ private DataList<ListMetadata> snackoosList = new DataList<ListMetadata>();
// This adapter handle mirrors the firebase list values and generates the corresponding todo
// item View children for a list view.
@@ -85,7 +85,7 @@
if (position == -1) {
return;
}
- TodoList l = snackoosList.get(position);
+ ListMetadata l = snackoosList.get(position);
if (l.canCompleteAll()) {
mPersistence.completeAllTasks(l);
}
@@ -101,9 +101,9 @@
}
}).attachToRecyclerView(recyclerView);
- mPersistence = PersistenceFactory.getMainPersistence(this, new ListEventListener<TodoList>() {
+ mPersistence = PersistenceFactory.getMainPersistence(this, new ListEventListener<ListMetadata>() {
@Override
- public void onItemAdd(TodoList item) {
+ public void onItemAdd(ListMetadata item) {
int position = snackoosList.insertInOrder(item);
adapter.notifyItemInserted(position);
@@ -111,7 +111,7 @@
}
@Override
- public void onItemUpdate(TodoList item) {
+ public void onItemUpdate(ListMetadata item) {
int start = snackoosList.findIndexByKey(item.getKey());
int end = snackoosList.updateInOrder(item);
@@ -143,7 +143,7 @@
.setView(todoItem)
.setPositiveButton("Add", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
- mPersistence.addTodoList(new TodoList(todoItem.getText().toString()));
+ mPersistence.addTodoList(new ListMetadata(todoItem.getText().toString()));
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
diff --git a/app/src/main/java/io/v/todos/TodoListActivity.java b/app/src/main/java/io/v/todos/TodoListActivity.java
index 5372ade..4d6a5a2 100644
--- a/app/src/main/java/io/v/todos/TodoListActivity.java
+++ b/app/src/main/java/io/v/todos/TodoListActivity.java
@@ -19,8 +19,8 @@
import android.widget.Toolbar;
import io.v.todos.model.DataList;
+import io.v.todos.model.ListMetadata;
import io.v.todos.model.Task;
-import io.v.todos.model.TodoList;
import io.v.todos.persistence.PersistenceFactory;
import io.v.todos.persistence.TodoListListener;
import io.v.todos.persistence.TodoListPersistence;
@@ -40,7 +40,7 @@
public class TodoListActivity extends Activity {
private TodoListPersistence mPersistence;
- private TodoList snackoo;
+ private ListMetadata snackoo;
private DataList<Task> snackoosList = new DataList<Task>();
private boolean showDone = false; // TODO(alexfandrianto): Load from shared preferences...
@@ -91,7 +91,7 @@
mPersistence = PersistenceFactory.getTodoListPersistence(this, snackooKey,
new TodoListListener() {
@Override
- public void onUpdate(TodoList value) {
+ public void onUpdate(ListMetadata value) {
snackoo = value;
getActionBar().setTitle(snackoo.getName());
}
@@ -222,7 +222,7 @@
public void updateTodoList(String todo) {
- mPersistence.updateTodoList(new TodoList(todo));
+ mPersistence.updateTodoList(new ListMetadata(todo));
}
public void deleteTodoList() {
diff --git a/app/src/main/java/io/v/todos/TodoListRecyclerAdapter.java b/app/src/main/java/io/v/todos/TodoListRecyclerAdapter.java
index 10736e1..46f6cd3 100644
--- a/app/src/main/java/io/v/todos/TodoListRecyclerAdapter.java
+++ b/app/src/main/java/io/v/todos/TodoListRecyclerAdapter.java
@@ -11,18 +11,18 @@
import java.util.ArrayList;
-import io.v.todos.model.TodoList;
+import io.v.todos.model.ListMetadata;
/**
* @author alexfandrianto
*/
public class TodoListRecyclerAdapter extends RecyclerView.Adapter<TodoListViewHolder> {
- private ArrayList<TodoList> backup;
+ private ArrayList<ListMetadata> backup;
private View.OnClickListener itemListener;
private static final int RESOURCE_ID = R.layout.todo_list_row;
- public TodoListRecyclerAdapter(ArrayList<TodoList> backup, View.OnClickListener itemListener) {
+ public TodoListRecyclerAdapter(ArrayList<ListMetadata> backup, View.OnClickListener itemListener) {
super();
this.backup = backup;
this.itemListener = itemListener;
@@ -37,8 +37,8 @@
@Override
public void onBindViewHolder(TodoListViewHolder holder, int position) {
- TodoList todoList = backup.get(position);
- holder.bindTodoList(todoList, itemListener);
+ ListMetadata listMetadata = backup.get(position);
+ holder.bindTodoList(listMetadata, itemListener);
}
@Override
diff --git a/app/src/main/java/io/v/todos/TodoListViewHolder.java b/app/src/main/java/io/v/todos/TodoListViewHolder.java
index 83c46a3..b170523 100644
--- a/app/src/main/java/io/v/todos/TodoListViewHolder.java
+++ b/app/src/main/java/io/v/todos/TodoListViewHolder.java
@@ -7,7 +7,7 @@
import android.view.View;
import android.widget.TextView;
-import io.v.todos.model.TodoList;
+import io.v.todos.model.ListMetadata;
/**
* @author alexfandrianto
@@ -17,35 +17,35 @@
super(itemView);
}
- public void bindTodoList(TodoList todoList, View.OnClickListener listener) {
+ public void bindTodoList(ListMetadata listMetadata, View.OnClickListener listener) {
final TextView name=(TextView) itemView.findViewById(R.id.todo_list_name);
- name.setText(todoList.getName());
+ name.setText(listMetadata.getName());
final TextView completedStatus=(TextView) itemView.findViewById(R.id.todo_list_completed);
- completedStatus.setText(computeCompleted(todoList));
+ completedStatus.setText(computeCompleted(listMetadata));
final TextView timeAgo=(TextView) itemView.findViewById(R.id.todo_list_time);
- timeAgo.setText(computeTimeAgo(todoList));
+ timeAgo.setText(computeTimeAgo(listMetadata));
- getCardView().setCardBackgroundColor(todoList.getDone() ? 0xFFCCCCCC : 0xFFFFFFFF);
+ getCardView().setCardBackgroundColor(listMetadata.getDone() ? 0xFFCCCCCC : 0xFFFFFFFF);
- itemView.setTag(todoList.getKey());
+ itemView.setTag(listMetadata.getKey());
itemView.setOnClickListener(listener);
}
- private String computeTimeAgo(TodoList todoList) {
- return UIUtil.computeTimeAgo("Last Updated", todoList.getUpdatedAt());
+ private String computeTimeAgo(ListMetadata listMetadata) {
+ return UIUtil.computeTimeAgo("Last Updated", listMetadata.getUpdatedAt());
}
- private String computeCompleted(TodoList todoList) {
- if (todoList.getDone()) {
+ private String computeCompleted(ListMetadata listMetadata) {
+ if (listMetadata.getDone()) {
return "Done!";
- } else if (todoList.numTasks == 0) {
+ } else if (listMetadata.numTasks == 0) {
return "Needs Tasks";
- } else if (todoList.numCompleted == 0) {
+ } else if (listMetadata.numCompleted == 0) {
return "Not Started";
} else {
- return todoList.numCompleted + " of " + todoList.numTasks;
+ return listMetadata.numCompleted + " of " + listMetadata.numTasks;
}
}
}
diff --git a/app/src/main/java/io/v/todos/model/TodoList.java b/app/src/main/java/io/v/todos/model/ListMetadata.java
similarity index 84%
rename from app/src/main/java/io/v/todos/model/TodoList.java
rename to app/src/main/java/io/v/todos/model/ListMetadata.java
index 979f504..d455f62 100644
--- a/app/src/main/java/io/v/todos/model/TodoList.java
+++ b/app/src/main/java/io/v/todos/model/ListMetadata.java
@@ -7,12 +7,12 @@
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
/**
- * TodoList is a Firebase-compatible class that tracks information regarding a particular todo list.
+ * ListMetadata is a Firebase-compatible class that tracks information regarding a particular todo list.
*
* @author alexfandrianto
*/
@JsonIgnoreProperties({ "numCompleted", "numTasks", "done", "key" })
-public class TodoList implements KeyedData<TodoList> {
+public class ListMetadata implements KeyedData<ListMetadata> {
private String name;
private long updatedAt;
@@ -23,10 +23,10 @@
//public List<String> sharedWith ??
// The default constructor is used by Firebase.
- public TodoList() {}
+ public ListMetadata() {}
// Use this constructor when creating a new Task for the first time.
- public TodoList(String name) {
+ public ListMetadata(String name) {
this.name = name;
this.updatedAt = System.currentTimeMillis();
}
@@ -50,7 +50,7 @@
}
@Override
- public int compareTo(TodoList other) {
+ public int compareTo(ListMetadata other) {
if (key == null && other.key != null) {
return 1;
} else if (key != null && other.key == null) {
diff --git a/app/src/main/java/io/v/todos/persistence/MainPersistence.java b/app/src/main/java/io/v/todos/persistence/MainPersistence.java
index 08fe574..7516f3d 100644
--- a/app/src/main/java/io/v/todos/persistence/MainPersistence.java
+++ b/app/src/main/java/io/v/todos/persistence/MainPersistence.java
@@ -4,10 +4,10 @@
package io.v.todos.persistence;
-import io.v.todos.model.TodoList;
+import io.v.todos.model.ListMetadata;
public interface MainPersistence extends Persistence {
- void addTodoList(TodoList todoList);
+ void addTodoList(ListMetadata listMetadata);
void deleteTodoList(String key);
- void completeAllTasks(TodoList todoList);
+ void completeAllTasks(ListMetadata listMetadata);
}
diff --git a/app/src/main/java/io/v/todos/persistence/TodoListListener.java b/app/src/main/java/io/v/todos/persistence/TodoListListener.java
index 265ef43..de06278 100644
--- a/app/src/main/java/io/v/todos/persistence/TodoListListener.java
+++ b/app/src/main/java/io/v/todos/persistence/TodoListListener.java
@@ -5,9 +5,9 @@
package io.v.todos.persistence;
import io.v.todos.model.Task;
-import io.v.todos.model.TodoList;
+import io.v.todos.model.ListMetadata;
public interface TodoListListener extends ListEventListener<Task> {
- void onUpdate(TodoList value);
+ void onUpdate(ListMetadata value);
void onDelete();
}
diff --git a/app/src/main/java/io/v/todos/persistence/TodoListPersistence.java b/app/src/main/java/io/v/todos/persistence/TodoListPersistence.java
index 1db8ec5..2dcb24c 100644
--- a/app/src/main/java/io/v/todos/persistence/TodoListPersistence.java
+++ b/app/src/main/java/io/v/todos/persistence/TodoListPersistence.java
@@ -4,11 +4,11 @@
package io.v.todos.persistence;
+import io.v.todos.model.ListMetadata;
import io.v.todos.model.Task;
-import io.v.todos.model.TodoList;
public interface TodoListPersistence extends Persistence {
- void updateTodoList(TodoList todoList);
+ void updateTodoList(ListMetadata listMetadata);
void deleteTodoList();
void addTask(Task task);
void updateTask(Task task);
diff --git a/app/src/syncbase/java/io/v/todos/persistence/PersistenceFactory.java b/app/src/syncbase/java/io/v/todos/persistence/PersistenceFactory.java
index 3228301..9fa6855 100644
--- a/app/src/syncbase/java/io/v/todos/persistence/PersistenceFactory.java
+++ b/app/src/syncbase/java/io/v/todos/persistence/PersistenceFactory.java
@@ -6,7 +6,7 @@
import android.content.Context;
-import io.v.todos.model.TodoList;
+import io.v.todos.model.ListMetadata;
public final class PersistenceFactory {
private PersistenceFactory(){}
@@ -17,7 +17,7 @@
* @param context an Android context, usually from an Android activity or application
*/
public static MainPersistence getMainPersistence(Context context,
- ListEventListener<TodoList> listener) {
+ ListEventListener<ListMetadata> listener) {
throw new RuntimeException("Unsupported product flavor.");
}