diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/adapters/TaskListRecyclerViewAdapter.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/adapters/TaskListRecyclerViewAdapter.java index f84c3cf..032539c 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/adapters/TaskListRecyclerViewAdapter.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/adapters/TaskListRecyclerViewAdapter.java @@ -26,7 +26,7 @@ public class TaskListRecyclerViewAdapter extends RecyclerView.Adapter= maxTaskLists) layout.setVisibility(View.GONE); else layout.setVisibility(View.VISIBLE); + clearFocus(); } @Override - public void onNameChangeFocus(TaskList taskList) { + public void onEditTextLoseFocus(TaskList taskList) { taskListDataAccess.updateName(taskList.getId(), taskList.getName()); } @@ -163,6 +167,18 @@ public class TaskListsFragment extends Fragment implements 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> { @Override protected List doInBackground(TaskListDataAccess... params) { diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java index a25aa96..c69c22e 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java @@ -140,7 +140,8 @@ public class TasksFragment extends Fragment implements // Update total tasks int totalTasks = taskRecyclerViewAdapter.getItemCount(); 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" : ""))); // Update remaining tasks @@ -161,8 +162,8 @@ public class TasksFragment extends Fragment implements } @Override - public void onPause() { - super.onPause(); + public void onDestroy() { + super.onDestroy(); taskDataAccess.close(); } diff --git a/DoNExt/app/src/main/res/layout/fragment_tasklists.xml b/DoNExt/app/src/main/res/layout/fragment_tasklists.xml index 69a02e8..84ee3a6 100644 --- a/DoNExt/app/src/main/res/layout/fragment_tasklists.xml +++ b/DoNExt/app/src/main/res/layout/fragment_tasklists.xml @@ -1,8 +1,11 @@