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_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)

View File

@@ -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

View File

@@ -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");
}

View File

@@ -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);
}

View File

@@ -13,14 +13,6 @@
android:key="pref_conf_del"
android:title="@string/settings_confirm_delete"
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 android:title="@string/settings_category_tasklists">
<SwitchPreference