Finish restore task feature

Remove deprecated change task layout preference
This commit is contained in:
Geoffroy Bonneville
2023-12-21 22:45:45 +01:00
parent 2c78ee88bc
commit bc087f5aae
5 changed files with 31 additions and 36 deletions

View File

@@ -59,6 +59,8 @@ public class TaskDataAccess implements AutoCloseable {
values.put(DatabaseHelper.TASKS_COLUMN_LIST, taskList); values.put(DatabaseHelper.TASKS_COLUMN_LIST, taskList);
values.put(DatabaseHelper.TASKS_COLUMN_DUEDATE, dueDate); values.put(DatabaseHelper.TASKS_COLUMN_DUEDATE, dueDate);
values.put(DatabaseHelper.TASKS_COLUMN_TODAYDATE, isTodayList? LocalDate.now().toString() : ""); 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); values.put(DatabaseHelper.COLUMN_ORDER, getMaxOrder(taskList) + 1);
long insertId; long insertId;
if (id == 0) if (id == 0)

View File

@@ -101,18 +101,18 @@ public abstract class DynamicDialogFragment extends DialogFragment {
@Override @Override
public void onPrepareOptionsMenu(@NonNull Menu menu) { public void onPrepareOptionsMenu(@NonNull Menu menu) {
/*switch (mButtonCount) { /*switch (mButtonCount) {
case 1: case 1 -> {
menu.removeItem(R.id.menu_positive_button); menu.removeItem(R.id.menu_positive_button);
menu.removeItem(R.id.menu_neutral_button); menu.removeItem(R.id.menu_neutral_button);
break; }
case 2: case 2 -> {
menu.removeItem(R.id.menu_neutral_button); menu.removeItem(R.id.menu_neutral_button);
menu.findItem(R.id.menu_positive_button).setTitle(args.getString("button_positive")); menu.findItem(R.id.menu_positive_button).setTitle(mPositiveButtonString);
break; }
case 3: case 3 -> {
menu.findItem(R.id.menu_neutral_button).setTitle(args.getString("button_neutral")); menu.findItem(R.id.menu_neutral_button).setTitle(mNeutralButtonString);
menu.findItem(R.id.menu_positive_button).setTitle(args.getString("button_positive")); menu.findItem(R.id.menu_positive_button).setTitle(mPositiveButtonString);
break; }
}*/ }*/
// Hide buttons depending on count // Hide buttons depending on count

View File

@@ -63,9 +63,9 @@ public class TaskFormDialogFragment extends DynamicDialogFragment {
Bundle args = getArguments(); Bundle args = getArguments();
if (args != null) { if (args != null) {
mButtonCount = args.getInt("button_count"); 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); 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"); listId = args.getInt("list");
isToday = args.getBoolean("today"); isToday = args.getBoolean("today");
} }

View File

@@ -99,7 +99,6 @@ public class TasksFragment extends Fragment implements
view = inflater.inflate(R.layout.fragment_tasks, container, false); view = inflater.inflate(R.layout.fragment_tasks, container, false);
final Context context = view.getContext(); final Context context = view.getContext();
// TODO: is null...
FragmentManager manager = getParentFragmentManager(); FragmentManager manager = getParentFragmentManager();
mAdapter = (MainFragment)manager.findFragmentById(R.id.fragment_main); mAdapter = (MainFragment)manager.findFragmentById(R.id.fragment_main);
@@ -132,10 +131,11 @@ public class TasksFragment extends Fragment implements
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(requireContext()); SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(requireContext());
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putBoolean("today", sharedPref.getBoolean("pref_conf_today_enable", false)); args.putBoolean("today", sharedPref.getBoolean("pref_conf_today_enable", false));
args.putInt("button_count", isHistory ? 1 : 3); args.putInt("button_count", isHistory ? 2 : 3);
args.putString("button_positive", getString(R.string.new_task_save)); args.putString("button_positive",
getString(isHistory ? R.string.new_task_restore : R.string.new_task_save));
args.putString("button_negative", 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.putString("button_neutral", getString(R.string.new_task_delete));
args.putInt("position", position); args.putInt("position", position);
@@ -251,29 +251,30 @@ public class TasksFragment extends Fragment implements
Task task = ((TaskFormDialogFragment)dialog).getTask(); Task task = ((TaskFormDialogFragment)dialog).getTask();
if (task != null) id = task.getId(); if (task != null) id = task.getId();
// Get the controls // Get the controls
Spinner listSpinner = dialogView.findViewById(R.id.new_task_list);
EditText nameText = dialogView.findViewById(R.id.new_task_name); EditText nameText = dialogView.findViewById(R.id.new_task_name);
EditText descText = dialogView.findViewById(R.id.new_task_description); EditText descText = dialogView.findViewById(R.id.new_task_description);
SeekBar seekBar = dialogView.findViewById(R.id.new_task_priority); SeekBar prioritySeekBar = dialogView.findViewById(R.id.new_task_priority);
CheckBox setDueDate = dialogView.findViewById(R.id.new_task_due_date_set); CheckBox hasDueDateCheckBox = dialogView.findViewById(R.id.new_task_due_date_set);
DatePicker dueDatePicker = dialogView.findViewById(R.id.new_task_due_date); DatePicker dueDatePicker = dialogView.findViewById(R.id.new_task_due_date);
TaskList taskList = (TaskList) listSpinner.getSelectedItem(); Spinner listSpinner = dialogView.findViewById(R.id.new_task_list);
CheckBox todayList = dialogView.findViewById(R.id.new_task_today); TaskList selectedTaskList = (TaskList) listSpinner.getSelectedItem();
boolean isToday = todayList.isChecked(); CheckBox isOnTodayViewCheckBox = dialogView.findViewById(R.id.new_task_today);
boolean isOnTodayView = isOnTodayViewCheckBox.isChecked();
// Add the task to the database // Add the task to the database
try (TaskDataAccess taskDataAccess = new TaskDataAccess(view.getContext(), TaskDataAccess.MODE.WRITE)) { try (TaskDataAccess taskDataAccess = new TaskDataAccess(view.getContext(), TaskDataAccess.MODE.WRITE)) {
Task newTask = taskDataAccess.createOrUpdateTask(id, Task newTask = taskDataAccess.createOrUpdateTask(id,
nameText.getText().toString(), nameText.getText().toString(),
descText.getText().toString(), descText.getText().toString(),
seekBar.getProgress(), prioritySeekBar.getProgress(),
taskList.getId(), selectedTaskList.getId(),
setDueDate.isChecked() ? hasDueDateCheckBox.isChecked() ?
new LocalDate(dueDatePicker.getYear(), new LocalDate(dueDatePicker.getYear(),
dueDatePicker.getMonth() + 1, dueDatePicker.getMonth() + 1,
dueDatePicker.getDayOfMonth()).toString() dueDatePicker.getDayOfMonth()).toString()
: "", : "",
isToday); isOnTodayView);
Bundle args = dialog.getArguments(); Bundle args = dialog.getArguments();
// Should never happen because we will have to be on this tab to open the dialog // 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 // Add the task
if (task == null) { if (task == null) {
// If the new task is added to another task list, update the tab // 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()); mAdapter.onTaskListChanged(newTask, listSpinner.getSelectedItemPosition());
} }
// Otherwise add it to the current one // Otherwise add it to the current one
@@ -297,13 +298,13 @@ public class TasksFragment extends Fragment implements
else { else {
position = args != null ? args.getInt("position") : 0; position = args != null ? args.getInt("position") : 0;
// Check if task list was changed // 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 // Remove item from current tab
taskRecyclerViewAdapter.remove(position); taskRecyclerViewAdapter.remove(position);
// Add it to the corresponding tab provided it is already instantiated // 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 { } else {
taskRecyclerViewAdapter.update(newTask, position); taskRecyclerViewAdapter.update(newTask, position);
} }

View File

@@ -13,14 +13,6 @@
android:key="pref_conf_del" android:key="pref_conf_del"
android:title="@string/settings_confirm_delete" android:title="@string/settings_confirm_delete"
android:defaultValue="true" /> android:defaultValue="true" />
<ListPreference
android:key="pref_conf_task_layout"
android:title="@string/settings_task_layout"
android:dialogTitle="@string/settings_task_layout"
android:entries="@array/settings_task_layouts"
android:entryValues="@array/settings_task_layout_values"
android:summary="%s"
android:defaultValue="1" />
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory android:title="@string/settings_category_tasklists"> <PreferenceCategory android:title="@string/settings_category_tasklists">
<SwitchPreference <SwitchPreference