diff --git a/app/src/main/java/com/wismna/geoffroy/donext/database/TaskDataAccess.java b/app/src/main/java/com/wismna/geoffroy/donext/database/TaskDataAccess.java
index fee2fab..cacb0c0 100644
--- a/app/src/main/java/com/wismna/geoffroy/donext/database/TaskDataAccess.java
+++ b/app/src/main/java/com/wismna/geoffroy/donext/database/TaskDataAccess.java
@@ -59,6 +59,8 @@ public class TaskDataAccess implements AutoCloseable {
values.put(DatabaseHelper.TASKS_COLUMN_LIST, taskList);
values.put(DatabaseHelper.TASKS_COLUMN_DUEDATE, dueDate);
values.put(DatabaseHelper.TASKS_COLUMN_TODAYDATE, isTodayList? LocalDate.now().toString() : "");
+ values.put(DatabaseHelper.TASKS_COLUMN_DONE, 0);
+ values.put(DatabaseHelper.TASKS_COLUMN_DELETED, 0);
values.put(DatabaseHelper.COLUMN_ORDER, getMaxOrder(taskList) + 1);
long insertId;
if (id == 0)
diff --git a/app/src/main/java/com/wismna/geoffroy/donext/fragments/DynamicDialogFragment.java b/app/src/main/java/com/wismna/geoffroy/donext/fragments/DynamicDialogFragment.java
index 4cc68f5..c5e62a2 100644
--- a/app/src/main/java/com/wismna/geoffroy/donext/fragments/DynamicDialogFragment.java
+++ b/app/src/main/java/com/wismna/geoffroy/donext/fragments/DynamicDialogFragment.java
@@ -101,18 +101,18 @@ public abstract class DynamicDialogFragment extends DialogFragment {
@Override
public void onPrepareOptionsMenu(@NonNull Menu menu) {
/*switch (mButtonCount) {
- case 1:
+ case 1 -> {
menu.removeItem(R.id.menu_positive_button);
menu.removeItem(R.id.menu_neutral_button);
- break;
- case 2:
+ }
+ case 2 -> {
menu.removeItem(R.id.menu_neutral_button);
- menu.findItem(R.id.menu_positive_button).setTitle(args.getString("button_positive"));
- break;
- case 3:
- menu.findItem(R.id.menu_neutral_button).setTitle(args.getString("button_neutral"));
- menu.findItem(R.id.menu_positive_button).setTitle(args.getString("button_positive"));
- break;
+ menu.findItem(R.id.menu_positive_button).setTitle(mPositiveButtonString);
+ }
+ case 3 -> {
+ menu.findItem(R.id.menu_neutral_button).setTitle(mNeutralButtonString);
+ menu.findItem(R.id.menu_positive_button).setTitle(mPositiveButtonString);
+ }
}*/
// Hide buttons depending on count
diff --git a/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskFormDialogFragment.java b/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskFormDialogFragment.java
index 89c47fe..e0922bb 100644
--- a/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskFormDialogFragment.java
+++ b/app/src/main/java/com/wismna/geoffroy/donext/fragments/TaskFormDialogFragment.java
@@ -63,9 +63,9 @@ public class TaskFormDialogFragment extends DynamicDialogFragment {
Bundle args = getArguments();
if (args != null) {
mButtonCount = args.getInt("button_count");
- mPositiveButtonString = getString(R.string.new_task_save);
+ mPositiveButtonString = getString(mTask != null && mTask.isHistory() ? R.string.new_task_restore : R.string.new_task_save);
mNegativeButtonString = getString(R.string.new_task_cancel);
- if (mTask != null) mNeutralButtonString = getString(mTask.isHistory() ? R.string.new_task_restore : R.string.new_task_delete);
+ mNeutralButtonString = getString(R.string.new_task_delete);
listId = args.getInt("list");
isToday = args.getBoolean("today");
}
diff --git a/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java b/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java
index 57e344d..c4036a7 100644
--- a/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java
+++ b/app/src/main/java/com/wismna/geoffroy/donext/fragments/TasksFragment.java
@@ -99,7 +99,6 @@ public class TasksFragment extends Fragment implements
view = inflater.inflate(R.layout.fragment_tasks, container, false);
final Context context = view.getContext();
- // TODO: is null...
FragmentManager manager = getParentFragmentManager();
mAdapter = (MainFragment)manager.findFragmentById(R.id.fragment_main);
@@ -132,10 +131,11 @@ public class TasksFragment extends Fragment implements
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(requireContext());
Bundle args = new Bundle();
args.putBoolean("today", sharedPref.getBoolean("pref_conf_today_enable", false));
- args.putInt("button_count", isHistory ? 1 : 3);
- args.putString("button_positive", getString(R.string.new_task_save));
+ args.putInt("button_count", isHistory ? 2 : 3);
+ args.putString("button_positive",
+ getString(isHistory ? R.string.new_task_restore : R.string.new_task_save));
args.putString("button_negative",
- isHistory ? getString(R.string.task_list_ok) : getString(R.string.new_task_cancel));
+ getString(isHistory ? R.string.task_list_ok : R.string.new_task_cancel));
args.putString("button_neutral", getString(R.string.new_task_delete));
args.putInt("position", position);
@@ -251,29 +251,30 @@ public class TasksFragment extends Fragment implements
Task task = ((TaskFormDialogFragment)dialog).getTask();
if (task != null) id = task.getId();
+
// Get the controls
- Spinner listSpinner = dialogView.findViewById(R.id.new_task_list);
EditText nameText = dialogView.findViewById(R.id.new_task_name);
EditText descText = dialogView.findViewById(R.id.new_task_description);
- SeekBar seekBar = dialogView.findViewById(R.id.new_task_priority);
- CheckBox setDueDate = dialogView.findViewById(R.id.new_task_due_date_set);
+ SeekBar prioritySeekBar = dialogView.findViewById(R.id.new_task_priority);
+ CheckBox hasDueDateCheckBox = dialogView.findViewById(R.id.new_task_due_date_set);
DatePicker dueDatePicker = dialogView.findViewById(R.id.new_task_due_date);
- TaskList taskList = (TaskList) listSpinner.getSelectedItem();
- CheckBox todayList = dialogView.findViewById(R.id.new_task_today);
- boolean isToday = todayList.isChecked();
+ Spinner listSpinner = dialogView.findViewById(R.id.new_task_list);
+ TaskList selectedTaskList = (TaskList) listSpinner.getSelectedItem();
+ CheckBox isOnTodayViewCheckBox = dialogView.findViewById(R.id.new_task_today);
+ boolean isOnTodayView = isOnTodayViewCheckBox.isChecked();
// Add the task to the database
try (TaskDataAccess taskDataAccess = new TaskDataAccess(view.getContext(), TaskDataAccess.MODE.WRITE)) {
Task newTask = taskDataAccess.createOrUpdateTask(id,
nameText.getText().toString(),
descText.getText().toString(),
- seekBar.getProgress(),
- taskList.getId(),
- setDueDate.isChecked() ?
+ prioritySeekBar.getProgress(),
+ selectedTaskList.getId(),
+ hasDueDateCheckBox.isChecked() ?
new LocalDate(dueDatePicker.getYear(),
dueDatePicker.getMonth() + 1,
dueDatePicker.getDayOfMonth()).toString()
: "",
- isToday);
+ isOnTodayView);
Bundle args = dialog.getArguments();
// Should never happen because we will have to be on this tab to open the dialog
@@ -283,7 +284,7 @@ public class TasksFragment extends Fragment implements
// Add the task
if (task == null) {
// If the new task is added to another task list, update the tab
- if (mAdapter != null && taskListId != taskList.getId()) {
+ if (mAdapter != null && taskListId != selectedTaskList.getId()) {
mAdapter.onTaskListChanged(newTask, listSpinner.getSelectedItemPosition());
}
// Otherwise add it to the current one
@@ -297,13 +298,13 @@ public class TasksFragment extends Fragment implements
else {
position = args != null ? args.getInt("position") : 0;
// Check if task list was changed
- if ((isTodayView && !isToday) || (!isTodayView && task.getTaskListId() != taskList.getId()))
+ if ((isTodayView && !isOnTodayView) || (!isTodayView && task.getTaskListId() != selectedTaskList.getId()) || isHistory)
{
// Remove item from current tab
taskRecyclerViewAdapter.remove(position);
// Add it to the corresponding tab provided it is already instantiated
- if (mAdapter != null) mAdapter.onTaskListChanged(newTask, listSpinner.getSelectedItemPosition());
+ if (mAdapter != null && !isHistory) mAdapter.onTaskListChanged(newTask, listSpinner.getSelectedItemPosition());
} else {
taskRecyclerViewAdapter.update(newTask, position);
}
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index c3f0e17..b953fba 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -13,14 +13,6 @@
android:key="pref_conf_del"
android:title="@string/settings_confirm_delete"
android:defaultValue="true" />
-