Browse Source

Fix state handling in SharedItemsActivity

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
Álvaro Brey 3 years ago
parent
commit
1c9730f909

+ 21 - 17
app/src/main/java/com/nextcloud/talk/shareditems/activities/SharedItemsActivity.kt

@@ -85,8 +85,14 @@ class SharedItemsActivity : AppCompatActivity() {
         viewModel = ViewModelProvider(this, viewModelFactory)[SharedItemsViewModel::class.java]
 
         viewModel.viewState.observe(this) { state ->
-            handleEmptyLoadingView(state)
+            clearEmptyLoading()
             when (state) {
+                is SharedItemsViewModel.LoadingItemsState, SharedItemsViewModel.InitialState -> {
+                    showLoading()
+                }
+                is SharedItemsViewModel.NoSharedItemsState -> {
+                    showEmpty()
+                }
                 is SharedItemsViewModel.LoadedState -> {
                     val sharedMediaItems = state.items
                     Log.d(TAG, "Items received: $sharedMediaItems")
@@ -107,9 +113,6 @@ class SharedItemsActivity : AppCompatActivity() {
                 is SharedItemsViewModel.TypesLoadedState -> {
                     initTabs(state.types)
                 }
-                else -> {
-                    // noop
-                }
             }
         }
 
@@ -125,19 +128,20 @@ class SharedItemsActivity : AppCompatActivity() {
         viewModel.initialize(userEntity, roomToken)
     }
 
-    private fun handleEmptyLoadingView(state: SharedItemsViewModel.ViewState?) {
-        binding.emptyContainer.emptyListViewHeadline.text = when (state) {
-            SharedItemsViewModel.NoSharedItemsState -> getString(R.string.nc_shared_items_description)
-            else -> getString(R.string.file_list_loading)
-        }
-        binding.emptyContainer.emptyListView.visibility = when (state) {
-            SharedItemsViewModel.NoSharedItemsState, is SharedItemsViewModel.LoadingItemsState -> View.VISIBLE
-            else -> View.GONE
-        }
-        binding.sharedItemsTabs.visibility = when (state) {
-            SharedItemsViewModel.NoSharedItemsState -> View.GONE
-            else -> View.VISIBLE
-        }
+    private fun clearEmptyLoading() {
+        binding.sharedItemsTabs.visibility = View.VISIBLE
+        binding.emptyContainer.emptyListView.visibility = View.GONE
+    }
+
+    private fun showLoading() {
+        binding.emptyContainer.emptyListViewHeadline.text = getString(R.string.file_list_loading)
+        binding.emptyContainer.emptyListView.visibility = View.VISIBLE
+    }
+
+    private fun showEmpty() {
+        binding.emptyContainer.emptyListViewHeadline.text = getString(R.string.nc_shared_items_empty)
+        binding.emptyContainer.emptyListView.visibility = View.VISIBLE
+        binding.sharedItemsTabs.visibility = View.GONE
     }
 
     private fun initTabs(sharedItemTypes: Set<SharedItemType>) {