mirror of
https://github.com/wismna/DoNext.git
synced 2025-10-03 15:40:14 -04:00
Bug corrections:
- fast switching between tabs crash on getResources - closing app while SnackBar was visible crashed - changing list name then clicking upper left arrow did not save change
This commit is contained in:
@@ -26,7 +26,7 @@ public class TaskListRecyclerViewAdapter extends RecyclerView.Adapter<TaskListRe
|
|||||||
implements TaskListTouchHelper.TaskListTouchHelperAdapter {
|
implements TaskListTouchHelper.TaskListTouchHelperAdapter {
|
||||||
|
|
||||||
public interface TaskListRecyclerViewAdapterListener {
|
public interface TaskListRecyclerViewAdapterListener {
|
||||||
void onNameChangeFocus(TaskList taskList);
|
void onEditTextLoseFocus(TaskList taskList);
|
||||||
void onClickDeleteButton(int position, long id);
|
void onClickDeleteButton(int position, long id);
|
||||||
void onItemMove(long fromTaskId, long toTaskId, int fromPosition, int toPosition);
|
void onItemMove(long fromTaskId, long toTaskId, int fromPosition, int toPosition);
|
||||||
void onStartDrag(RecyclerView.ViewHolder viewHolder);
|
void onStartDrag(RecyclerView.ViewHolder viewHolder);
|
||||||
@@ -75,7 +75,7 @@ public class TaskListRecyclerViewAdapter extends RecyclerView.Adapter<TaskListRe
|
|||||||
holder.mItem.setName(name);
|
holder.mItem.setName(name);
|
||||||
|
|
||||||
update(holder.mItem, position);
|
update(holder.mItem, position);
|
||||||
mListener.onNameChangeFocus(holder.mItem);
|
mListener.onEditTextLoseFocus(holder.mItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@@ -65,11 +65,6 @@ public class TaskDataAccess {
|
|||||||
return newTask;
|
return newTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteTask(long taskId) {
|
|
||||||
database.delete(DatabaseHelper.TASKS_TABLE_NAME,
|
|
||||||
DatabaseHelper.COLUMN_ID + " = " + taskId, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Task> getAllTasks(long id) {
|
public List<Task> getAllTasks(long id) {
|
||||||
List<Task> tasks = new ArrayList<>();
|
List<Task> tasks = new ArrayList<>();
|
||||||
|
|
||||||
@@ -107,6 +102,14 @@ public class TaskDataAccess {
|
|||||||
return database.update(DatabaseHelper.TASKS_TABLE_NAME, contentValues, DatabaseHelper.COLUMN_ID + " = " + id, null);
|
return database.update(DatabaseHelper.TASKS_TABLE_NAME, contentValues, DatabaseHelper.COLUMN_ID + " = " + id, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int deleteTask(long id) {
|
||||||
|
/*database.delete(DatabaseHelper.TASKS_TABLE_NAME,
|
||||||
|
DatabaseHelper.COLUMN_ID + " = " + taskId, null);*/
|
||||||
|
ContentValues contentValues = new ContentValues();
|
||||||
|
contentValues.put(DatabaseHelper.TASKS_COLUMN_DELETED, 1);
|
||||||
|
return database.update(DatabaseHelper.TASKS_TABLE_NAME, contentValues, DatabaseHelper.COLUMN_ID + " = " + id, null);
|
||||||
|
}
|
||||||
|
|
||||||
private Task cursorToTask(Cursor cursor) {
|
private Task cursorToTask(Cursor cursor) {
|
||||||
Task task = new Task();
|
Task task = new Task();
|
||||||
task.setId(cursor.getLong(0));
|
task.setId(cursor.getLong(0));
|
||||||
|
@@ -13,6 +13,7 @@ import android.support.v7.widget.helper.ItemTouchHelper;
|
|||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.CheckBox;
|
import android.widget.CheckBox;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
@@ -84,6 +85,7 @@ public class TaskListsFragment extends Fragment implements
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
|
clearFocus();
|
||||||
super.onPause();
|
super.onPause();
|
||||||
taskListDataAccess.close();
|
taskListDataAccess.close();
|
||||||
}
|
}
|
||||||
@@ -91,6 +93,7 @@ public class TaskListsFragment extends Fragment implements
|
|||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
clearFocus();
|
||||||
taskListDataAccess.open();
|
taskListDataAccess.open();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,10 +105,11 @@ public class TaskListsFragment extends Fragment implements
|
|||||||
int maxTaskLists = Integer.valueOf(maxTaskListsString);
|
int maxTaskLists = Integer.valueOf(maxTaskListsString);
|
||||||
if (taskListCount >= maxTaskLists) layout.setVisibility(View.GONE);
|
if (taskListCount >= maxTaskLists) layout.setVisibility(View.GONE);
|
||||||
else layout.setVisibility(View.VISIBLE);
|
else layout.setVisibility(View.VISIBLE);
|
||||||
|
clearFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onNameChangeFocus(TaskList taskList) {
|
public void onEditTextLoseFocus(TaskList taskList) {
|
||||||
taskListDataAccess.updateName(taskList.getId(), taskList.getName());
|
taskListDataAccess.updateName(taskList.getId(), taskList.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,6 +167,18 @@ public class TaskListsFragment extends Fragment implements
|
|||||||
toggleVisibleCreateNewTaskListLayout(mView);
|
toggleVisibleCreateNewTaskListLayout(mView);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Helper method to clear focus by giving it to the parent layout */
|
||||||
|
private void clearFocus() {
|
||||||
|
View view = getView();
|
||||||
|
if (view != null) {
|
||||||
|
view.requestFocus();
|
||||||
|
|
||||||
|
// Hide keyboard
|
||||||
|
InputMethodManager inputMethodManager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||||
|
inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class GetTaskListsTask extends AsyncTask<TaskListDataAccess, Void, List<TaskList>> {
|
public class GetTaskListsTask extends AsyncTask<TaskListDataAccess, Void, List<TaskList>> {
|
||||||
@Override
|
@Override
|
||||||
protected List<TaskList> doInBackground(TaskListDataAccess... params) {
|
protected List<TaskList> doInBackground(TaskListDataAccess... params) {
|
||||||
|
@@ -140,7 +140,8 @@ public class TasksFragment extends Fragment implements
|
|||||||
// Update total tasks
|
// Update total tasks
|
||||||
int totalTasks = taskRecyclerViewAdapter.getItemCount();
|
int totalTasks = taskRecyclerViewAdapter.getItemCount();
|
||||||
TextView totalTasksView = (TextView) view.findViewById(R.id.total_task_count);
|
TextView totalTasksView = (TextView) view.findViewById(R.id.total_task_count);
|
||||||
if (totalTasks == 0) totalTasksView.setText(getResources().getText(R.string.task_no_tasks));
|
// isAdded is to prevent an IllegalStateException when fast switching between tabs
|
||||||
|
if (totalTasks == 0 && isAdded()) totalTasksView.setText(getResources().getText(R.string.task_no_tasks));
|
||||||
else totalTasksView.setText(String.valueOf(totalTasks + " task" + (totalTasks > 1 ? "s" : "")));
|
else totalTasksView.setText(String.valueOf(totalTasks + " task" + (totalTasks > 1 ? "s" : "")));
|
||||||
|
|
||||||
// Update remaining tasks
|
// Update remaining tasks
|
||||||
@@ -161,8 +162,8 @@ public class TasksFragment extends Fragment implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onDestroy() {
|
||||||
super.onPause();
|
super.onDestroy();
|
||||||
taskDataAccess.close();
|
taskDataAccess.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,8 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/new_task_list_parent_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:focusableInTouchMode="true"
|
||||||
|
android:descendantFocusability="beforeDescendants"
|
||||||
android:paddingBottom="@dimen/activity_vertical_margin"
|
android:paddingBottom="@dimen/activity_vertical_margin"
|
||||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||||
|
Reference in New Issue
Block a user