Skip to content

Commit d8fbed3

Browse files
committed
more
1 parent 1f02fff commit d8fbed3

File tree

6 files changed

+27
-45
lines changed

6 files changed

+27
-45
lines changed

todoapp/app/src/androidTest/java/com/example/android/architecture/blueprints/todoapp/data/TasksLocalDataSourceTest.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ public class TasksLocalDataSourceTest {
5757

5858
@Before
5959
public void setup() {
60-
mLocalDataSource = TasksLocalDataSource.getInstance(
61-
InstrumentationRegistry.getTargetContext());
60+
mLocalDataSource = TasksLocalDataSource.getInstance(
61+
InstrumentationRegistry.getTargetContext());
6262
}
6363

6464
@After
@@ -80,7 +80,9 @@ public void saveTask_retrievesTask() {
8080
mLocalDataSource.saveTask(newTask);
8181

8282
// Then the task can be retrieved from the persistent repository
83-
assertThat(Task.from(mLocalDataSource.getTask(newTask.getId())), is(newTask));
83+
Cursor savedTaskCursor = mLocalDataSource.getTask(newTask.getId());
84+
Task savedTask = Task.from(savedTaskCursor);
85+
assertThat(savedTask, is(newTask));
8486
}
8587

8688
@Test
@@ -217,7 +219,7 @@ public void getTasks_retrieveSavedTasks() {
217219

218220
boolean newTask1IdFound = false;
219221
boolean newTask2IdFound = false;
220-
for (Task task: tasks) {
222+
for (Task task : tasks) {
221223
if (task.getId().equals(newTask1.getId())) {
222224
newTask1IdFound = true;
223225
}

todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/data/Task.java

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -94,50 +94,26 @@ public Task(@Nullable String title, @Nullable String description, String id, boo
9494
mCompleted = completed;
9595
}
9696

97-
/**
98-
* Use this constructor to specify a completed Task if the Task already has an id and it's retrieved from the Content Provider (copy of
99-
* another Task).
100-
*
101-
* @param internalId
102-
* @param title
103-
* @param description
104-
* @param id
105-
* @param completed
106-
*/
107-
public Task(int internalId, @Nullable String title, @Nullable String description, String id, boolean completed) {
108-
mInternalId = internalId;
109-
mId = id;
110-
mTitle = title;
111-
mDescription = description;
112-
mCompleted = completed;
113-
}
114-
11597
/**
11698
* Use this constructor to return a Task from a Cursor
11799
*
118100
* @return
119101
*/
120102
public static Task from(Cursor cursor) {
121-
int rowId = cursor.getInt(cursor.getColumnIndexOrThrow(TasksPersistenceContract.TaskEntry._ID));
122103
String entryId = cursor.getString(cursor.getColumnIndexOrThrow(TasksPersistenceContract.TaskEntry.COLUMN_NAME_ENTRY_ID));
123104
String title = cursor.getString(cursor.getColumnIndexOrThrow(TasksPersistenceContract.TaskEntry.COLUMN_NAME_TITLE));
124105
String description = cursor.getString(cursor.getColumnIndexOrThrow(TasksPersistenceContract.TaskEntry.COLUMN_NAME_DESCRIPTION));
125106
boolean completed = cursor.getInt(cursor.getColumnIndexOrThrow(TasksPersistenceContract.TaskEntry.COLUMN_NAME_COMPLETED)) == 1;
126-
return new Task(rowId, title, description, entryId, completed);
107+
return new Task(title, description, entryId, completed);
127108
}
128109

129110
public static Task from(ContentValues values) {
130-
int rowId = values.getAsInteger(TasksPersistenceContract.TaskEntry._ID);
131111
String entryId = values.getAsString(TasksPersistenceContract.TaskEntry.COLUMN_NAME_ENTRY_ID);
132112
String title = values.getAsString(TasksPersistenceContract.TaskEntry.COLUMN_NAME_TITLE);
133113
String description = values.getAsString(TasksPersistenceContract.TaskEntry.COLUMN_NAME_DESCRIPTION);
134114
boolean completed = values.getAsInteger(TasksPersistenceContract.TaskEntry.COLUMN_NAME_COMPLETED) == 1;
135115

136-
return new Task(rowId, title, description, entryId, completed);
137-
}
138-
139-
public int getInternalId() {
140-
return mInternalId;
116+
return new Task(title, description, entryId, completed);
141117
}
142118

143119
public String getId() {

todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/data/source/TaskValues.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ public class TaskValues {
99

1010
public static ContentValues from(Task task) {
1111
ContentValues values = new ContentValues();
12-
values.put(TasksPersistenceContract.TaskEntry._ID, task.getInternalId());
1312
values.put(TasksPersistenceContract.TaskEntry.COLUMN_NAME_ENTRY_ID, task.getId());
1413
values.put(TasksPersistenceContract.TaskEntry.COLUMN_NAME_TITLE, task.getTitle());
1514
values.put(TasksPersistenceContract.TaskEntry.COLUMN_NAME_DESCRIPTION, task.getDescription());

todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/data/source/TasksProvider.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,6 @@ public int update(Uri uri, ContentValues values, String selection, String[] sele
126126
@Override
127127
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
128128
Cursor tasks;
129-
130129
switch (sUriMatcher.match(uri)) {
131130
case TASK:
132131
tasks = mTasksLocalDataSource.getTasks(selection, selectionArgs);
@@ -138,9 +137,9 @@ public Cursor query(Uri uri, String[] projection, String selection, String[] sel
138137
throw new UnsupportedOperationException("Unknown uri: " + uri);
139138
}
140139

140+
tasks.setNotificationUri(getContext().getContentResolver(), uri);
141141
return tasks;
142142

143-
144143
// if (hasCachedTasks()) {
145144
// tasks = getCachedTasks(selection, selectionArgs);
146145
// } else {
@@ -164,15 +163,15 @@ private boolean hasCachedTasks() {
164163

165164
private Cursor getCachedTask(String[] selectionArgs) {
166165
MatrixCursor matrixCursor = new MatrixCursor(new String[]{
167-
TasksPersistenceContract.TaskEntry._ID,
166+
168167
TasksPersistenceContract.TaskEntry.COLUMN_NAME_ENTRY_ID,
169168
TasksPersistenceContract.TaskEntry.COLUMN_NAME_TITLE,
170169
TasksPersistenceContract.TaskEntry.COLUMN_NAME_DESCRIPTION,
171170
TasksPersistenceContract.TaskEntry.COLUMN_NAME_COMPLETED});
172171

173172
Task cachedTask = mCachedTasks.get(selectionArgs[0]);
174173
matrixCursor.addRow(new Object[]{
175-
cachedTask.getInternalId(),
174+
176175
cachedTask.getId(),
177176
cachedTask.getTitle(),
178177
cachedTask.getDescription(),
@@ -183,7 +182,7 @@ private Cursor getCachedTask(String[] selectionArgs) {
183182

184183
private MatrixCursor getCachedTasks(String selection, String[] selectionArgs) {
185184
MatrixCursor matrixCursor = new MatrixCursor(new String[]{
186-
TasksPersistenceContract.TaskEntry._ID,
185+
187186
TasksPersistenceContract.TaskEntry.COLUMN_NAME_ENTRY_ID,
188187
TasksPersistenceContract.TaskEntry.COLUMN_NAME_TITLE,
189188
TasksPersistenceContract.TaskEntry.COLUMN_NAME_DESCRIPTION,
@@ -201,7 +200,7 @@ private MatrixCursor getCachedTasks(String selection, String[] selectionArgs) {
201200
boolean taskStateFilter = selectionArgs[0].equals("1");
202201
if (cachedTask.isCompleted() == taskStateFilter) {
203202
matrixCursor.addRow(new Object[]{
204-
cachedTask.getInternalId(),
203+
205204
cachedTask.getId(),
206205
cachedTask.getTitle(),
207206
cachedTask.getDescription(),
@@ -210,7 +209,7 @@ private MatrixCursor getCachedTasks(String selection, String[] selectionArgs) {
210209
}
211210
} else {
212211
matrixCursor.addRow(new Object[]{
213-
cachedTask.getInternalId(),
212+
214213
cachedTask.getId(),
215214
cachedTask.getTitle(),
216215
cachedTask.getDescription(),
@@ -246,7 +245,7 @@ private void saveTasksInLocalDataSource(List<Task> tasks) {
246245
}
247246
}
248247

249-
private void clearCache(){
248+
private void clearCache() {
250249
if (mCachedTasks == null) {
251250
mCachedTasks = new LinkedHashMap<>();
252251
} else {

todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/data/source/local/TasksLocalDataSource.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,15 +66,17 @@ public Cursor getTasks(String selection, String[] selectionArgs) {
6666
}
6767

6868
public Cursor getTask(@NonNull String taskId) {
69+
String[] mSelectionArgs = {""};
70+
mSelectionArgs[0] = taskId;
71+
6972
Cursor retCursor = mTasksDbHelper.getReadableDatabase().query(
7073
TasksPersistenceContract.TaskEntry.TABLE_NAME,
71-
new String[]{TasksPersistenceContract.TaskEntry.COLUMN_NAME_ENTRY_ID},
72-
TasksPersistenceContract.TaskEntry.COLUMN_NAME_ENTRY_ID + " = ?",
73-
new String[]{taskId},
74+
TasksPersistenceContract.TaskEntry.TASKS_COLUMNS,
75+
TaskEntry.COLUMN_NAME_ENTRY_ID + " = ?",
76+
mSelectionArgs,
7477
null,
7578
null,
76-
null
77-
);
79+
null);
7880
return retCursor;
7981
}
8082

todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/taskdetail/TaskDetailPresenter.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,11 @@ private void showTask(Cursor data) {
110110

111111
@Override
112112
public void onDataLoaded(Cursor data) {
113-
showTask(data);
113+
if (data.moveToLast()) {
114+
showTask(data);
115+
} else {
116+
mTaskDetailView.showMissingTask();
117+
}
114118
}
115119

116120
@Override

0 commit comments

Comments
 (0)