From 9df847a01a1c0f63f009638e02bc84fea03c26f6 Mon Sep 17 00:00:00 2001 From: bg45 Date: Tue, 14 Mar 2017 17:45:27 -0400 Subject: [PATCH] New Today list via settings Code cleanup WIP Today tasks --- DoNExt/app/build.gradle | 4 +- .../donext/activities/MainActivity.java | 27 ++++++- .../adapters/TaskListRecyclerViewAdapter.java | 31 +++++--- .../com/wismna/geoffroy/donext/dao/Task.java | 12 +++ .../wismna/geoffroy/donext/dao/TaskList.java | 8 ++ .../donext/database/DatabaseHelper.java | 76 +++++++++++-------- .../donext/database/TaskDataAccess.java | 27 +++++-- .../donext/database/TaskListDataAccess.java | 56 +++++++++++--- .../donext/fragments/TaskListsFragment.java | 8 +- DoNExt/app/src/main/res/values-fr/arrays.xml | 7 ++ DoNExt/app/src/main/res/values-fr/strings.xml | 6 ++ DoNExt/app/src/main/res/values/arrays.xml | 28 +++++++ DoNExt/app/src/main/res/values/strings.xml | 24 ++---- DoNExt/app/src/main/res/xml/preferences.xml | 17 +++++ 14 files changed, 246 insertions(+), 85 deletions(-) create mode 100644 DoNExt/app/src/main/res/values-fr/arrays.xml create mode 100644 DoNExt/app/src/main/res/values/arrays.xml diff --git a/DoNExt/app/build.gradle b/DoNExt/app/build.gradle index 03fd045..0898f05 100644 --- a/DoNExt/app/build.gradle +++ b/DoNExt/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "com.wismna.geoffroy.donext" minSdkVersion 15 targetSdkVersion 25 - versionCode 13 - versionName "1.2.0" + versionCode 14 + versionName "1.3.0" } buildTypes { release { diff --git a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/activities/MainActivity.java b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/activities/MainActivity.java index c0f5daa..6f5456b 100644 --- a/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/activities/MainActivity.java +++ b/DoNExt/app/src/main/java/com/wismna/geoffroy/donext/activities/MainActivity.java @@ -63,10 +63,16 @@ public class MainActivity extends AppCompatActivity implements TasksFragment.Tas // primary sections of the activity. mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); + SharedPreferences sharedPref = + PreferenceManager.getDefaultSharedPreferences(MainActivity.this); + // Access database to retrieve Tabs TaskListDataAccess taskListDataAccess = new TaskListDataAccess(this); taskListDataAccess.open(); + // Handle Today list + handleTodayList(sharedPref, taskListDataAccess); + taskLists = taskListDataAccess.getAllTaskLists(); mSectionsPagerAdapter.notifyDataSetChanged(); taskListDataAccess.close(); @@ -81,8 +87,6 @@ public class MainActivity extends AppCompatActivity implements TasksFragment.Tas mViewPager = (ViewPager) findViewById(R.id.container); mViewPager.setAdapter(mSectionsPagerAdapter); // Open last opened tab - SharedPreferences sharedPref = - PreferenceManager.getDefaultSharedPreferences(MainActivity.this); mViewPager.setCurrentItem(sharedPref.getInt("last_opened_tab", 0)); View tabs = findViewById(R.id.tabs); @@ -256,6 +260,25 @@ public class MainActivity extends AppCompatActivity implements TasksFragment.Tas } } + private void handleTodayList(SharedPreferences sharedPref, TaskListDataAccess taskListDataAccess) { + String todayListName = getString(R.string.task_list_today); + TaskList todayList = taskListDataAccess.getTaskListByName(todayListName); + if (sharedPref.getBoolean("pref_conf_today_enable", false)) { + // Get or create the Today list + if (todayList == null) { + // TODO: set order correctly + todayList = taskListDataAccess.createTaskList(todayListName, 0); + } + if (!todayList.isVisible()) taskListDataAccess.updateVisibility(todayList.getId(), true); + // Mark all tasks with an earlier do date as done + } + else { + if (todayList != null){ + taskListDataAccess.updateVisibility(todayList.getId(), false); + } + } + } + /** * A {@link FragmentPagerAdapter} that returns a fragment corresponding to * one of the sections/tabs/pages. 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 1798009..851475d 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 @@ -17,6 +17,7 @@ import com.wismna.geoffroy.donext.helpers.TaskListTouchHelper; import java.util.Collections; import java.util.List; +import java.util.Objects; /** * {@link RecyclerView.Adapter} that can display a {@link TaskList}. @@ -34,10 +35,14 @@ public class TaskListRecyclerViewAdapter extends RecyclerView.Adapter mValues; private TaskListRecyclerViewAdapterListener mListener; + private String mReservedTaskListName; - public TaskListRecyclerViewAdapter(List items, TaskListRecyclerViewAdapterListener listener) { + public TaskListRecyclerViewAdapter(List items, + TaskListRecyclerViewAdapterListener listener, + String reservedTaskListName) { mValues = items; mListener = listener; + mReservedTaskListName = reservedTaskListName; } @Override @@ -53,6 +58,7 @@ public class TaskListRecyclerViewAdapter extends RecyclerView.Adapter= maxTaskLists) layout.setVisibility(View.GONE); else layout.setVisibility(View.VISIBLE); @@ -192,7 +196,7 @@ public class TaskListsFragment extends Fragment implements protected void onPostExecute(List taskLists) { super.onPostExecute(taskLists); taskListRecyclerViewAdapter = - new TaskListRecyclerViewAdapter(taskLists, TaskListsFragment.this); + new TaskListRecyclerViewAdapter(taskLists, TaskListsFragment.this, getString(R.string.task_list_today)); // Set the adapter Context context = mView.getContext(); diff --git a/DoNExt/app/src/main/res/values-fr/arrays.xml b/DoNExt/app/src/main/res/values-fr/arrays.xml new file mode 100644 index 0000000..f0a1c98 --- /dev/null +++ b/DoNExt/app/src/main/res/values-fr/arrays.xml @@ -0,0 +1,7 @@ + + + + Terminé + Supprimé + + \ No newline at end of file diff --git a/DoNExt/app/src/main/res/values-fr/strings.xml b/DoNExt/app/src/main/res/values-fr/strings.xml index 83a1c93..b737bdb 100644 --- a/DoNExt/app/src/main/res/values-fr/strings.xml +++ b/DoNExt/app/src/main/res/values-fr/strings.xml @@ -63,4 +63,10 @@ %1$d tâche%2$s %1$d cycle%2$s TaskListActivity + Liste Aujourd\'hui + Activer la liste Aujourd\'hui? + La liste Aujourd\'hui est une liste spéciale, dans laquelle les tâches n\'existent que pour la journée en cours. Chaque jour, cette liste est réinitialisée. + Aujourd\'hui + Le nom \"Aujourd\'hui\" est réservé. Vous pouvez activer la liste Aujourd\'hui dans les paramètres. + Action à entreprendre à la fin de la journée: \ No newline at end of file diff --git a/DoNExt/app/src/main/res/values/arrays.xml b/DoNExt/app/src/main/res/values/arrays.xml new file mode 100644 index 0000000..c478e39 --- /dev/null +++ b/DoNExt/app/src/main/res/values/arrays.xml @@ -0,0 +1,28 @@ + + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + + + Simple + Detailed + + + 1 + 2 + + + Done + Delete + + + 1 + 2 + + \ No newline at end of file diff --git a/DoNExt/app/src/main/res/values/strings.xml b/DoNExt/app/src/main/res/values/strings.xml index 9fedaf8..754fa53 100644 --- a/DoNExt/app/src/main/res/values/strings.xml +++ b/DoNExt/app/src/main/res/values/strings.xml @@ -69,28 +69,18 @@ Confirm on done? Confirm on delete? Task layout: - - Simple - Detailed - - - 1 - 2 - + Maximum number of lists: - - 1 - 2 - 3 - 4 - 5 - 6 - 7 - TaskListActivity DoNext version %s Android version %s https://github.com/wismna + Today list + Enable Today list? + The Today list is a special kind of list, in which tasks only exist for the current day. Each day, the list is reset. + Today + Name \"Today\" is reserved. You may activate the Today list from the Settings. + Action at the end of the day diff --git a/DoNExt/app/src/main/res/xml/preferences.xml b/DoNExt/app/src/main/res/xml/preferences.xml index 3c3bb6d..673dd44 100644 --- a/DoNExt/app/src/main/res/xml/preferences.xml +++ b/DoNExt/app/src/main/res/xml/preferences.xml @@ -35,5 +35,22 @@ android:entryValues="@array/settings_max_lists_number" android:summary="%s" android:defaultValue="5" /> + + + + + \ No newline at end of file