Make the small avatar also clickable and little change in the API to factorize code

This commit is contained in:
Benoit Marty 2020-02-26 17:17:39 +01:00
parent a3af0be103
commit d3e7e7e109
4 changed files with 21 additions and 19 deletions

View File

@ -26,6 +26,7 @@ import androidx.core.view.ViewCompat
import im.vector.matrix.android.api.session.crypto.verification.IncomingSasVerificationTransaction
import im.vector.matrix.android.api.session.crypto.verification.VerificationMethod
import im.vector.matrix.android.api.session.room.model.roomdirectory.PublicRoom
import im.vector.matrix.android.api.util.MatrixItem
import im.vector.riotx.R
import im.vector.riotx.core.di.ActiveSessionHolder
import im.vector.riotx.core.error.fatalError
@ -179,12 +180,16 @@ class DefaultNavigator @Inject constructor(
context.startActivity(RoomProfileActivity.newIntent(context, roomId))
}
override fun openBigImageViewer(activity: Activity, sharedElement: View?, title: String, avatarUrl: String) {
val intent = BigImageViewerActivity.newIntent(activity, title, avatarUrl)
val options = sharedElement?.let {
ActivityOptionsCompat.makeSceneTransitionAnimation(activity, it, ViewCompat.getTransitionName(it) ?: "")
}
activity.startActivity(intent, options?.toBundle())
override fun openBigImageViewer(activity: Activity, sharedElement: View?, matrixItem: MatrixItem) {
matrixItem.avatarUrl
?.takeIf { it.isNotBlank() }
?.let { avatarUrl ->
val intent = BigImageViewerActivity.newIntent(activity, matrixItem.getBestName(), avatarUrl)
val options = sharedElement?.let {
ActivityOptionsCompat.makeSceneTransitionAnimation(activity, it, ViewCompat.getTransitionName(it) ?: "")
}
activity.startActivity(intent, options?.toBundle())
}
}
private fun startActivity(context: Context, intent: Intent, buildTask: Boolean) {

View File

@ -20,6 +20,7 @@ import android.app.Activity
import android.content.Context
import android.view.View
import im.vector.matrix.android.api.session.room.model.roomdirectory.PublicRoom
import im.vector.matrix.android.api.util.MatrixItem
import im.vector.riotx.features.settings.VectorSettingsActivity
import im.vector.riotx.features.share.SharedData
@ -61,5 +62,5 @@ interface Navigator {
fun openRoomProfile(context: Context, roomId: String)
fun openBigImageViewer(activity: Activity, sharedElement: View?, title: String, avatarUrl: String)
fun openBigImageViewer(activity: Activity, sharedElement: View?, matrixItem: MatrixItem)
}

View File

@ -196,6 +196,9 @@ class RoomMemberProfileFragment @Inject constructor(
memberProfileAvatarView.setOnClickListener { view ->
onAvatarClicked(view, userMatrixItem)
}
matrixProfileToolbarAvatarImageView.setOnClickListener { view ->
onAvatarClicked(view, userMatrixItem)
}
}
}
memberProfilePowerLevelView.setTextOrHide(state.userPowerLevelString())
@ -233,11 +236,6 @@ class RoomMemberProfileFragment @Inject constructor(
}
private fun onAvatarClicked(view: View, userMatrixItem: MatrixItem) {
userMatrixItem.avatarUrl
?.takeIf { it.isNotBlank() }
?.let { avatarUrl ->
val title = userMatrixItem.getBestName()
navigator.openBigImageViewer(requireActivity(), view, title, avatarUrl)
}
navigator.openBigImageViewer(requireActivity(), view, userMatrixItem)
}
}

View File

@ -169,6 +169,9 @@ class RoomProfileFragment @Inject constructor(
roomProfileAvatarView.setOnClickListener { view ->
onAvatarClicked(view, matrixItem)
}
matrixProfileToolbarAvatarImageView.setOnClickListener { view ->
onAvatarClicked(view, matrixItem)
}
}
}
roomProfileController.setData(state)
@ -218,11 +221,6 @@ class RoomProfileFragment @Inject constructor(
}
private fun onAvatarClicked(view: View, matrixItem: MatrixItem.RoomItem) {
matrixItem.avatarUrl
?.takeIf { it.isNotBlank() }
?.let { avatarUrl ->
val title = matrixItem.getBestName()
navigator.openBigImageViewer(requireActivity(), view, title, avatarUrl)
}
navigator.openBigImageViewer(requireActivity(), view, matrixItem)
}
}