mirror of
https://github.com/wismna/DoNext.git
synced 2025-10-03 07:30:13 -04:00
Finish restore task feature
Remove deprecated change task layout preference
This commit is contained in:
@@ -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)
|
||||
|
@@ -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
|
||||
|
@@ -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");
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user