From aa0a851b353251c7f928b4ab84fdedef1b2a7673 Mon Sep 17 00:00:00 2001
From: Benoit Marty <benoit@matrix.org>
Date: Wed, 16 Dec 2020 13:32:49 +0100
Subject: [PATCH] Restore waiting view management

---
 .../vector/app/core/platform/SimpleFragmentActivity.kt   | 4 ++--
 .../im/vector/app/core/platform/VectorBaseActivity.kt    | 9 +++++++--
 .../app/features/home/room/detail/RoomDetailFragment.kt  | 6 +-----
 3 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/vector/src/main/java/im/vector/app/core/platform/SimpleFragmentActivity.kt b/vector/src/main/java/im/vector/app/core/platform/SimpleFragmentActivity.kt
index 4674d04f28..066bd165a9 100644
--- a/vector/src/main/java/im/vector/app/core/platform/SimpleFragmentActivity.kt
+++ b/vector/src/main/java/im/vector/app/core/platform/SimpleFragmentActivity.kt
@@ -74,10 +74,10 @@ abstract class SimpleFragmentActivity : VectorBaseActivity<ActivityBinding>() {
         }
     }
 
-    override fun showWaitingView() {
+    override fun showWaitingView(text: String?) {
         hideKeyboard()
         views.waitingView.waitingStatusText.isGone = views.waitingView.waitingStatusText.text.isNullOrBlank()
-        super.showWaitingView()
+        super.showWaitingView(text)
     }
 
     override fun hideWaitingView() {
diff --git a/vector/src/main/java/im/vector/app/core/platform/VectorBaseActivity.kt b/vector/src/main/java/im/vector/app/core/platform/VectorBaseActivity.kt
index 2d88606b60..a585e8ea77 100644
--- a/vector/src/main/java/im/vector/app/core/platform/VectorBaseActivity.kt
+++ b/vector/src/main/java/im/vector/app/core/platform/VectorBaseActivity.kt
@@ -24,6 +24,7 @@ import android.view.Menu
 import android.view.MenuItem
 import android.view.View
 import android.view.WindowManager
+import android.widget.TextView
 import androidx.annotation.AttrRes
 import androidx.annotation.CallSuper
 import androidx.annotation.MainThread
@@ -56,6 +57,7 @@ import im.vector.app.core.extensions.observeEvent
 import im.vector.app.core.extensions.observeNotNull
 import im.vector.app.core.extensions.registerStartForActivityResult
 import im.vector.app.core.extensions.restart
+import im.vector.app.core.extensions.setTextOrHide
 import im.vector.app.core.extensions.vectorComponent
 import im.vector.app.core.utils.toast
 import im.vector.app.features.MainActivity
@@ -520,10 +522,13 @@ abstract class VectorBaseActivity<VB: ViewBinding> : AppCompatActivity(), HasScr
     fun isWaitingViewVisible() = waitingView?.isVisible == true
 
     /**
-     * Show the waiting view
+     * Show the waiting view, and set text if not null.
      */
-    open fun showWaitingView() {
+    open fun showWaitingView(text: String? = null) {
         waitingView?.isVisible = true
+        if (text != null) {
+            waitingView?.findViewById<TextView>(R.id.waitingStatusText)?.setTextOrHide(text)
+        }
     }
 
     /**
diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailFragment.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailFragment.kt
index 908c55c1fc..8d0ed34c1e 100644
--- a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailFragment.kt
+++ b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailFragment.kt
@@ -1294,11 +1294,7 @@ class RoomDetailFragment @Inject constructor(
         when (async) {
             is Loading -> {
                 // TODO Better handling progress
-                /* TODO BMA Yes, improve that
-                vectorBaseActivity.showWaitingView()
-                vectorBaseActivity.waitingStatusText.visibility = View.VISIBLE
-                vectorBaseActivity.waitingStatusText.text = getString(R.string.joining_room)
-                 */
+                vectorBaseActivity.showWaitingView(getString(R.string.joining_room))
             }
             is Success -> {
                 navigator.openRoom(vectorBaseActivity, async())