improve empty task view

This commit is contained in:
Phillip Thelen 2020-01-15 18:32:17 +01:00
parent 3646831f4d
commit 48a99e1412
4 changed files with 56 additions and 36 deletions

View file

@ -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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:visibility="visible"
style="@style/EmptyView">
<TextView
android:layout_width="wrap_content"
@ -48,13 +43,6 @@
android:gravity="center"
tools:text="No Items" />
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/justin_textbox"
android:layout_marginTop="16dp"
/>
</LinearLayout>
</FrameLayout>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

View file

@ -487,6 +487,13 @@
<string name="empty_title_todos">You don\'t have any To-Dos</string>
<string name="empty_description_todos">To-Dos are tasks that only need to be completed once. Add checklists to your To-Dos to increase their value.</string>
<string name="empty_title_rewards">You don\'t have any Rewards</string>
<string name="empty_title_habits_filtered">No Habits</string>
<string name="empty_description_habits_filtered">There aren\'t any Habits visible with your current filters.</string>
<string name="empty_title_dailies_filtered">No Dailies</string>
<string name="empty_description_dailies_filtered">There aren\'t any Dailies visible with your current filters.</string>
<string name="empty_title_todos_filtered">No To-Dos</string>
<string name="empty_description_todos_filtered">There aren\'t any To-Dos visible with your current filters.</string>
<string name="empty_title_rewards_filtered">No Rewards</string>
<string name="reset_walkthrough">Reset Tutorials</string>
<string name="read_community_guidelines">Review our <u>Community Guidelines</u> before posting</string>
<string name="maintenance">Maintenance</string>

View file

@ -310,9 +310,7 @@
<style name="EmptyView">
<item name="android:padding">@dimen/section_top_padding</item>
<item name="android:layout_gravity">center</item>
<item name="android:gravity">center</item>
<item name="android:background">@color/white</item>
<item name="android:layout_marginLeft">20dp</item>
<item name="android:layout_marginRight">20dp</item>
</style>

View file

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