From b37996e4c3a054f6faf6dea37869040873ebf150 Mon Sep 17 00:00:00 2001 From: Nikita Fedrunov <66663241+fedrunov@users.noreply.github.com> Date: Mon, 5 Sep 2022 16:11:50 +0200 Subject: [PATCH] space switcher empty spaces (#6988) --- changelog.d/6754.bugfix | 1 + .../src/main/res/values/strings.xml | 4 ++ .../app/features/spaces/SpaceListFragment.kt | 16 ++++++- .../main/res/layout/fragment_space_list.xml | 44 +++++++++++++++++++ 4 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 changelog.d/6754.bugfix diff --git a/changelog.d/6754.bugfix b/changelog.d/6754.bugfix new file mode 100644 index 0000000000..e9f6960595 --- /dev/null +++ b/changelog.d/6754.bugfix @@ -0,0 +1 @@ +[App Layout] - space switcher now has empty state diff --git a/library/ui-strings/src/main/res/values/strings.xml b/library/ui-strings/src/main/res/values/strings.xml index df0e10627a..6b44377b79 100644 --- a/library/ui-strings/src/main/res/values/strings.xml +++ b/library/ui-strings/src/main/res/values/strings.xml @@ -442,6 +442,10 @@ "System Alerts" Suggested Rooms + + No spaces yet. + Spaces are a new way to group rooms and people. Create a space to get started. + Invites diff --git a/vector/src/main/java/im/vector/app/features/spaces/SpaceListFragment.kt b/vector/src/main/java/im/vector/app/features/spaces/SpaceListFragment.kt index ca9279cb37..0153d64df7 100644 --- a/vector/src/main/java/im/vector/app/features/spaces/SpaceListFragment.kt +++ b/vector/src/main/java/im/vector/app/features/spaces/SpaceListFragment.kt @@ -21,6 +21,7 @@ import android.view.HapticFeedbackConstants import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.view.isVisible import com.airbnb.epoxy.EpoxyTouchHelper import com.airbnb.mvrx.Loading import com.airbnb.mvrx.Success @@ -28,6 +29,7 @@ import com.airbnb.mvrx.Uninitialized import com.airbnb.mvrx.fragmentViewModel import com.airbnb.mvrx.withState import dagger.hilt.android.AndroidEntryPoint +import im.vector.app.core.epoxy.onClick import im.vector.app.core.extensions.cleanup import im.vector.app.core.extensions.configureWith import im.vector.app.core.platform.StateView @@ -71,6 +73,7 @@ class SpaceListFragment : homeActivitySharedActionViewModel = activityViewModelProvider[HomeSharedActionViewModel::class.java] roomListSharedActionViewModel = activityViewModelProvider[RoomListSharedActionViewModel::class.java] views.stateView.contentView = views.groupListView + views.spacesEmptyButton.onClick { onAddSpaceSelected() } setupSpaceController() observeViewEvents() } @@ -147,13 +150,22 @@ class SpaceListFragment : } override fun invalidate() = withState(viewModel) { state -> - when (state.asyncSpaces) { + when (val spaces = state.asyncSpaces) { Uninitialized, is Loading -> { views.stateView.state = StateView.State.Loading return@withState } - is Success -> views.stateView.state = StateView.State.Content + is Success -> { + views.stateView.state = StateView.State.Content + if (spaces.invoke().isEmpty()) { + views.spacesEmptyGroup.isVisible = true + views.groupListView.isVisible = false + } else { + views.spacesEmptyGroup.isVisible = false + views.groupListView.isVisible = true + } + } else -> Unit } diff --git a/vector/src/main/res/layout/fragment_space_list.xml b/vector/src/main/res/layout/fragment_space_list.xml index d54ffa7155..8dfbb4a9c6 100644 --- a/vector/src/main/res/layout/fragment_space_list.xml +++ b/vector/src/main/res/layout/fragment_space_list.xml @@ -12,4 +12,48 @@ android:overScrollMode="always" tools:listitem="@layout/item_space" /> + + + + + + + +