From 48a99e141268abc3c7926c4b275c8d5d1bf2c10c Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Wed, 15 Jan 2020 18:32:17 +0100 Subject: [PATCH] improve empty task view --- .../layout/fragment_refresh_recyclerview.xml | 16 +---- Habitica/res/values/strings.xml | 7 ++ Habitica/res/values/styles.xml | 2 - .../tasks/TaskRecyclerViewFragment.kt | 67 +++++++++++++------ 4 files changed, 56 insertions(+), 36 deletions(-) diff --git a/Habitica/res/layout/fragment_refresh_recyclerview.xml b/Habitica/res/layout/fragment_refresh_recyclerview.xml index ce1745c57..64d3c0e80 100644 --- a/Habitica/res/layout/fragment_refresh_recyclerview.xml +++ b/Habitica/res/layout/fragment_refresh_recyclerview.xml @@ -25,14 +25,9 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" - android:layout_marginTop="30dp" - android:gravity="center" + android:layout_marginTop="60dp" android:visibility="gone" - tools:visibility="visible"> - - - diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index 97a96591a..b7c231502 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -487,6 +487,13 @@ You don\'t have any To-Dos To-Dos are tasks that only need to be completed once. Add checklists to your To-Dos to increase their value. You don\'t have any Rewards + No Habits + There aren\'t any Habits visible with your current filters. + No Dailies + There aren\'t any Dailies visible with your current filters. + No To-Dos + There aren\'t any To-Dos visible with your current filters. + No Rewards Reset Tutorials Review our Community Guidelines before posting Maintenance diff --git a/Habitica/res/values/styles.xml b/Habitica/res/values/styles.xml index 8e66f75c9..5e78d1f5b 100644 --- a/Habitica/res/values/styles.xml +++ b/Habitica/res/values/styles.xml @@ -310,9 +310,7 @@ diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt index adc5213e2..da21c70c5 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt @@ -277,26 +277,7 @@ open class TaskRecyclerViewFragment : BaseFragment(), androidx.swiperefreshlayou } }) - if (this.classType != null) { - binding.recyclerView.setEmptyView(binding.emptyView) - when (this.classType) { - Task.TYPE_HABIT -> { - binding.emptyViewTitle.setText(R.string.empty_title_habits) - binding.emptyViewDescription.setText(R.string.empty_description_habits) - } - Task.TYPE_DAILY -> { - binding.emptyViewTitle.setText(R.string.empty_title_dailies) - binding.emptyViewDescription.setText(R.string.empty_description_dailies) - } - Task.TYPE_TODO -> { - binding.emptyViewTitle.setText(R.string.empty_title_todos) - binding.emptyViewDescription.setText(R.string.empty_description_todos) - } - Task.TYPE_REWARD -> { - binding.emptyViewTitle.setText(R.string.empty_title_rewards) - } - } - } + setEmptyLabels() if (Task.TYPE_REWARD == className) { compositeSubscription.add(taskRepository.getTasks(this.className, userID) @@ -304,6 +285,50 @@ open class TaskRecyclerViewFragment : BaseFragment(), androidx.swiperefreshlayou } } + private fun setEmptyLabels() { + if (this.classType != null) { + binding.recyclerView.setEmptyView(binding.emptyView) + if (taskFilterHelper.howMany(classType) > 0) { + when (this.classType) { + Task.TYPE_HABIT -> { + binding.emptyViewTitle.setText(R.string.empty_title_habits_filtered) + binding.emptyViewDescription.setText(R.string.empty_description_habits_filtered) + } + Task.TYPE_DAILY -> { + binding.emptyViewTitle.setText(R.string.empty_title_dailies_filtered) + binding.emptyViewDescription.setText(R.string.empty_description_dailies_filtered) + } + Task.TYPE_TODO -> { + binding.emptyViewTitle.setText(R.string.empty_title_todos_filtered) + binding.emptyViewDescription.setText(R.string.empty_description_todos_filtered) + } + Task.TYPE_REWARD -> { + binding.emptyViewTitle.setText(R.string.empty_title_rewards) + } + } + } else { + when (this.classType) { + Task.TYPE_HABIT -> { + binding.emptyViewTitle.setText(R.string.empty_title_habits) + binding.emptyViewDescription.setText(R.string.empty_description_habits) + } + Task.TYPE_DAILY -> { + binding.emptyViewTitle.setText(R.string.empty_title_dailies) + binding.emptyViewDescription.setText(R.string.empty_description_dailies) + } + Task.TYPE_TODO -> { + binding.emptyViewTitle.setText(R.string.empty_title_todos) + binding.emptyViewDescription.setText(R.string.empty_description_todos) + } + Task.TYPE_REWARD -> { + binding.emptyViewTitle.setText(R.string.empty_title_rewards) + } + } + } + + } + } + private fun scoreTask(task: Task, direction: TaskDirection) { compositeSubscription.add(taskRepository.taskChecked(user, task, direction == TaskDirection.UP, false) { result -> handleTaskResult(result, task.value.toInt()) @@ -330,6 +355,8 @@ open class TaskRecyclerViewFragment : BaseFragment(), androidx.swiperefreshlayou taskFilterHelper.setActiveFilter(classType ?: "", activeFilter) recyclerAdapter?.filter() + setEmptyLabels() + if (activeFilter == Task.FILTER_COMPLETED) { compositeSubscription.add(taskRepository.retrieveCompletedTodos(userID).subscribe(Consumer {}, RxErrorHandler.handleEmptyError())) }