Code review

This commit is contained in:
Valere 2021-09-17 14:26:25 +02:00
parent 6d023188da
commit d2af7e3f91
11 changed files with 28 additions and 35 deletions

View file

@ -1 +1 @@
Better expose adding spaces as Subspaces #3752 Better expose adding spaces as Subspaces

View file

@ -67,11 +67,10 @@ class AppStateHandler @Inject constructor(
return selectedSpaceDataSource.currentValue?.orNull()?.let { return selectedSpaceDataSource.currentValue?.orNull()?.let {
if (it is RoomGroupingMethod.BySpace) { if (it is RoomGroupingMethod.BySpace) {
// try to refresh sum? // try to refresh sum?
return it.spaceSummary?.roomId?.let { activeSessionHolder.getSafeActiveSession()?.getRoomSummary(it) }?.let { it.spaceSummary?.roomId?.let { activeSessionHolder.getSafeActiveSession()?.getRoomSummary(it) }?.let {
RoomGroupingMethod.BySpace(it) RoomGroupingMethod.BySpace(it)
} ?: it } ?: it
} } else it
return it
} }
} }

View file

@ -16,11 +16,14 @@
package im.vector.app.core.extensions package im.vector.app.core.extensions
import android.graphics.drawable.Drawable
import android.text.InputType import android.text.InputType
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.EditText import android.widget.EditText
import android.widget.ImageView
import androidx.appcompat.widget.SearchView import androidx.appcompat.widget.SearchView
import androidx.core.view.isVisible
import im.vector.app.R import im.vector.app.R
/** /**
@ -50,3 +53,8 @@ fun View.getMeasurements(): Pair<Int, Int> {
val height = measuredHeight val height = measuredHeight
return width to height return width to height
} }
fun ImageView.setDrawableOrHide(drawableRes: Drawable?) {
setImageDrawable(drawableRes)
isVisible = drawableRes != null
}

View file

@ -26,6 +26,7 @@ import androidx.core.view.isGone
import androidx.core.view.isInvisible import androidx.core.view.isInvisible
import androidx.core.view.isVisible import androidx.core.view.isVisible
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.extensions.setDrawableOrHide
import im.vector.app.core.extensions.setTextOrHide import im.vector.app.core.extensions.setTextOrHide
import im.vector.app.databinding.ViewBottomSheetActionButtonBinding import im.vector.app.databinding.ViewBottomSheetActionButtonBinding
import im.vector.app.features.themes.ThemeUtils import im.vector.app.features.themes.ThemeUtils
@ -80,8 +81,7 @@ class BottomSheetActionButton @JvmOverloads constructor(
var rightIcon: Drawable? = null var rightIcon: Drawable? = null
set(value) { set(value) {
field = value field = value
views.bottomSheetActionIcon.setImageDrawable(value) views.bottomSheetActionIcon.setDrawableOrHide(value)
views.bottomSheetActionIcon.isVisible = field != null
} }
var tint: Int? = null var tint: Int? = null

View file

@ -55,7 +55,7 @@ class CreateRoomActivity : VectorBaseActivity<ActivitySimpleBinding>(), ToolbarC
CreateRoomFragment::class.java, CreateRoomFragment::class.java,
CreateRoomArgs( CreateRoomArgs(
intent?.getStringExtra(INITIAL_NAME) ?: "", intent?.getStringExtra(INITIAL_NAME) ?: "",
isSubSpace = intent?.getBooleanExtra(IS_SPACE, false) ?: false isSpace = intent?.getBooleanExtra(IS_SPACE, false) ?: false
) )
) )
} }

View file

@ -53,7 +53,7 @@ import javax.inject.Inject
data class CreateRoomArgs( data class CreateRoomArgs(
val initialName: String, val initialName: String,
val parentSpaceId: String? = null, val parentSpaceId: String? = null,
val isSubSpace: Boolean = false val isSpace: Boolean = false
) : Parcelable ) : Parcelable
class CreateRoomFragment @Inject constructor( class CreateRoomFragment @Inject constructor(
@ -98,7 +98,7 @@ class CreateRoomFragment @Inject constructor(
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
views.createRoomTitle.text = getString(if (args.isSubSpace) R.string.create_new_space else R.string.create_new_room) views.createRoomTitle.text = getString(if (args.isSpace) R.string.create_new_space else R.string.create_new_room)
} }
private fun setupRoomJoinRuleSharedActionViewModel() { private fun setupRoomJoinRuleSharedActionViewModel() {
@ -121,7 +121,7 @@ class CreateRoomFragment @Inject constructor(
private fun setupWaitingView() { private fun setupWaitingView() {
views.waitingView.waitingStatusText.isVisible = true views.waitingView.waitingStatusText.isVisible = true
views.waitingView.waitingStatusText.setText( views.waitingView.waitingStatusText.setText(
if (args.isSubSpace) R.string.create_space_in_progress else R.string.create_room_in_progress if (args.isSpace) R.string.create_space_in_progress else R.string.create_room_in_progress
) )
} }
@ -133,7 +133,7 @@ class CreateRoomFragment @Inject constructor(
} }
private fun setupRecyclerView() { private fun setupRecyclerView() {
if (args.isSubSpace) { if (args.isSpace) {
views.createRoomForm.configureWith(createSpaceController) views.createRoomForm.configureWith(createSpaceController)
createSpaceController.listener = this createSpaceController.listener = this
} else { } else {
@ -236,7 +236,7 @@ class CreateRoomFragment @Inject constructor(
sharedActionViewModel.post(RoomDirectorySharedAction.Close) sharedActionViewModel.post(RoomDirectorySharedAction.Close)
} else { } else {
// Populate list with Epoxy // Populate list with Epoxy
if (args.isSubSpace) { if (args.isSpace) {
createSpaceController.setData(state) createSpaceController.setData(state)
} else { } else {
createRoomController.setData(state) createRoomController.setData(state)

View file

@ -44,7 +44,7 @@ data class CreateRoomViewState(
constructor(args: CreateRoomArgs) : this( constructor(args: CreateRoomArgs) : this(
roomName = args.initialName, roomName = args.initialName,
parentSpaceId = args.parentSpaceId, parentSpaceId = args.parentSpaceId,
isSubSpace = args.isSubSpace isSubSpace = args.isSpace
) )
/** /**

View file

@ -47,13 +47,11 @@ class CreateSubSpaceController @Inject constructor(
private fun buildForm(data: CreateRoomViewState, enableFormElement: Boolean) { private fun buildForm(data: CreateRoomViewState, enableFormElement: Boolean) {
val host = this val host = this
if (data.isSubSpace) { genericPillItem {
genericPillItem { id("beta")
id("beta") imageRes(R.drawable.ic_beta_pill)
imageRes(R.drawable.ic_beta_pill) tintIcon(false)
tintIcon(false) text(host.stringProvider.getString(R.string.space_add_space_to_any_space_you_manage))
text(host.stringProvider.getString(R.string.space_add_space_to_any_space_you_manage))
}
} }
formEditableSquareAvatarItem { formEditableSquareAvatarItem {

View file

@ -17,27 +17,17 @@
package im.vector.app.features.spaces.manage package im.vector.app.features.spaces.manage
import android.os.Bundle import android.os.Bundle
import android.os.Parcelable
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.setFragmentResult import androidx.fragment.app.setFragmentResult
import com.airbnb.mvrx.args
import im.vector.app.core.platform.VectorBaseBottomSheetDialogFragment import im.vector.app.core.platform.VectorBaseBottomSheetDialogFragment
import im.vector.app.databinding.BottomSheetAddRoomsOrSpacesToSpaceBinding import im.vector.app.databinding.BottomSheetAddRoomsOrSpacesToSpaceBinding
import kotlinx.parcelize.Parcelize
class SpaceAddRoomSpaceChooserBottomSheet : VectorBaseBottomSheetDialogFragment<BottomSheetAddRoomsOrSpacesToSpaceBinding>() { class SpaceAddRoomSpaceChooserBottomSheet : VectorBaseBottomSheetDialogFragment<BottomSheetAddRoomsOrSpacesToSpaceBinding>() {
@Parcelize
data class Args(
val spaceId: String
) : Parcelable
override val showExpanded = true override val showExpanded = true
private val addSubRoomsArgs: Args by args()
override fun getBinding(inflater: LayoutInflater, container: ViewGroup?) = override fun getBinding(inflater: LayoutInflater, container: ViewGroup?) =
BottomSheetAddRoomsOrSpacesToSpaceBinding.inflate(inflater, container, false) BottomSheetAddRoomsOrSpacesToSpaceBinding.inflate(inflater, container, false)
@ -68,9 +58,7 @@ class SpaceAddRoomSpaceChooserBottomSheet : VectorBaseBottomSheetDialogFragment<
fun newInstance(spaceId: String) fun newInstance(spaceId: String)
: SpaceAddRoomSpaceChooserBottomSheet { : SpaceAddRoomSpaceChooserBottomSheet {
return SpaceAddRoomSpaceChooserBottomSheet().apply { return SpaceAddRoomSpaceChooserBottomSheet()
setArguments(Args(spaceId))
}
} }
} }
} }

View file

@ -153,7 +153,7 @@ class SpaceManageActivity : VectorBaseActivity<ActivitySimpleLoadingBinding>(),
addFragmentToBackstack( addFragmentToBackstack(
R.id.simpleFragmentContainer, R.id.simpleFragmentContainer,
CreateRoomFragment::class.java, CreateRoomFragment::class.java,
CreateRoomArgs("", parentSpaceId = args?.spaceId, isSubSpace = true) CreateRoomArgs("", parentSpaceId = args?.spaceId, isSpace = true)
) )
} }
SpaceManagedSharedViewEvents.NavigateToManageRooms -> { SpaceManagedSharedViewEvents.NavigateToManageRooms -> {

View file

@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?colorSurface" android:background="?android:colorBackground"
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView