Create progress bar and empty text for dishes list

This commit is contained in:
Reimar 2025-05-15 11:07:52 +02:00
parent b912210bbd
commit a175e1ad3e
Signed by: Reimar
GPG Key ID: 93549FA07F0AE268
3 changed files with 41 additions and 6 deletions

View File

@ -68,7 +68,13 @@ class DishesFragment : Fragment() {
return root return root
} }
fun DishesFragment.loadRecipes() { fun DishesFragment.loadRecipes() {
binding.dishesList.visibility = View.GONE
binding.emptyDishesList.visibility = View.GONE
binding.addDish.visibility = View.GONE
binding.loading.visibility = View.VISIBLE
thread { thread {
val recipes: List<GetAllRecipesResponse> val recipes: List<GetAllRecipesResponse>
try { try {
@ -85,6 +91,13 @@ class DishesFragment : Fragment() {
} }
activity?.runOnUiThread { activity?.runOnUiThread {
binding.dishesList.visibility = View.VISIBLE
binding.emptyDishesList.visibility = View.VISIBLE
binding.addDish.visibility = View.VISIBLE
binding.loading.visibility = View.GONE
binding.dishesList.emptyView = binding.emptyDishesList
val adapter = DishAdapter(requireContext(), dishes) { selectedDish -> val adapter = DishAdapter(requireContext(), dishes) { selectedDish ->
// Open details activity // Open details activity
val intent = Intent(requireContext(), DishDetailsActivity::class.java) val intent = Intent(requireContext(), DishDetailsActivity::class.java)

View File

@ -1,26 +1,47 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/dishes_fragment_root" android:id="@+id/dishes_fragment_root"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<!-- Your list view --> <ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="gone"
android:indeterminate="true"
/>
<ListView <ListView
android:id="@+id/dishes_list" android:id="@+id/dishes_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:divider="@android:color/darker_gray" android:divider="@android:color/darker_gray"
android:dividerHeight="1dp" /> android:dividerHeight="1dp"
/>
<TextView
android:id="@+id/empty_dishes_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/empty_dishes_list"
/>
<!-- FloatingActionButton -->
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/add_dish" android:id="@+id/add_dish"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="bottom|end" android:layout_gravity="bottom|end"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_margin="16dp" android:layout_margin="16dp"
android:backgroundTint="@color/cyan" android:backgroundTint="@color/cyan"
app:srcCompat="@android:drawable/ic_input_add" app:srcCompat="@android:drawable/ic_input_add"
app:tint="@android:color/white"/> app:tint="@android:color/white"
</FrameLayout> />
</RelativeLayout>

View File

@ -57,6 +57,7 @@
<string name="increment_multiplier_desc">Increment portion count</string> <string name="increment_multiplier_desc">Increment portion count</string>
<string name="decrement_multiplier_desc">Decrement portion size</string> <string name="decrement_multiplier_desc">Decrement portion size</string>
<string name="edit_recipe">Edit Recipe</string> <string name="edit_recipe">Edit Recipe</string>
<string name="empty_dishes_list">You have not created any dishes yet</string>
<string-array name="units"> <string-array name="units">
<item></item> <item></item>
<item>g</item> <item>g</item>