Cleanup Navigator

This commit is contained in:
Benoit Marty 2020-07-10 12:48:35 +02:00
parent e979bee920
commit 5a65eddf59
5 changed files with 34 additions and 69 deletions

View File

@ -1171,14 +1171,24 @@ class RoomDetailFragment @Inject constructor(
} }
override fun onImageMessageClicked(messageImageContent: MessageImageInfoContent, mediaData: ImageContentRenderer.Data, view: View) { override fun onImageMessageClicked(messageImageContent: MessageImageInfoContent, mediaData: ImageContentRenderer.Data, view: View) {
navigator.openImageViewer(requireActivity(), roomDetailArgs.roomId, mediaData, view) { pairs -> navigator.openMediaViewer(
activity = requireActivity(),
roomId = roomDetailArgs.roomId,
mediaData = mediaData,
view = view
) { pairs ->
pairs.add(Pair(roomToolbar, ViewCompat.getTransitionName(roomToolbar) ?: "")) pairs.add(Pair(roomToolbar, ViewCompat.getTransitionName(roomToolbar) ?: ""))
pairs.add(Pair(composerLayout, ViewCompat.getTransitionName(composerLayout) ?: "")) pairs.add(Pair(composerLayout, ViewCompat.getTransitionName(composerLayout) ?: ""))
} }
} }
override fun onVideoMessageClicked(messageVideoContent: MessageVideoContent, mediaData: VideoContentRenderer.Data, view: View) { override fun onVideoMessageClicked(messageVideoContent: MessageVideoContent, mediaData: VideoContentRenderer.Data, view: View) {
navigator.openVideoViewer(requireActivity(), roomDetailArgs.roomId, mediaData, view) { pairs -> navigator.openMediaViewer(
activity = requireActivity(),
roomId = roomDetailArgs.roomId,
mediaData = mediaData,
view = view
) { pairs ->
pairs.add(Pair(roomToolbar, ViewCompat.getTransitionName(roomToolbar) ?: "")) pairs.add(Pair(roomToolbar, ViewCompat.getTransitionName(roomToolbar) ?: ""))
pairs.add(Pair(composerLayout, ViewCompat.getTransitionName(composerLayout) ?: "")) pairs.add(Pair(composerLayout, ViewCompat.getTransitionName(composerLayout) ?: ""))
} }

View File

@ -237,7 +237,6 @@ class VectorAttachmentViewerActivity : AttachmentViewerActivity(), BaseAttachmen
} }
companion object { companion object {
const val EXTRA_ARGS = "EXTRA_ARGS" const val EXTRA_ARGS = "EXTRA_ARGS"
const val EXTRA_IMAGE_DATA = "EXTRA_IMAGE_DATA" const val EXTRA_IMAGE_DATA = "EXTRA_IMAGE_DATA"
const val EXTRA_IN_MEMORY_DATA = "EXTRA_IN_MEMORY_DATA" const val EXTRA_IN_MEMORY_DATA = "EXTRA_IN_MEMORY_DATA"
@ -246,11 +245,11 @@ class VectorAttachmentViewerActivity : AttachmentViewerActivity(), BaseAttachmen
mediaData: AttachmentData, mediaData: AttachmentData,
roomId: String?, roomId: String?,
eventId: String, eventId: String,
inMemoryData: List<AttachmentData>?, inMemoryData: List<AttachmentData>,
sharedTransitionName: String?) = Intent(context, VectorAttachmentViewerActivity::class.java).also { sharedTransitionName: String?) = Intent(context, VectorAttachmentViewerActivity::class.java).also {
it.putExtra(EXTRA_ARGS, Args(roomId, eventId, sharedTransitionName)) it.putExtra(EXTRA_ARGS, Args(roomId, eventId, sharedTransitionName))
it.putExtra(EXTRA_IMAGE_DATA, mediaData) it.putExtra(EXTRA_IMAGE_DATA, mediaData)
if (inMemoryData != null) { if (inMemoryData.isNotEmpty()) {
it.putParcelableArrayListExtra(EXTRA_IN_MEMORY_DATA, ArrayList(inMemoryData)) it.putParcelableArrayListExtra(EXTRA_IN_MEMORY_DATA, ArrayList(inMemoryData))
} }
} }

View File

@ -19,7 +19,6 @@ package im.vector.riotx.features.navigation
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Build
import android.view.View import android.view.View
import android.view.Window import android.view.Window
import androidx.core.app.ActivityOptionsCompat import androidx.core.app.ActivityOptionsCompat
@ -52,7 +51,6 @@ import im.vector.riotx.features.invite.InviteUsersToRoomActivity
import im.vector.riotx.features.media.AttachmentData import im.vector.riotx.features.media.AttachmentData
import im.vector.riotx.features.media.BigImageViewerActivity import im.vector.riotx.features.media.BigImageViewerActivity
import im.vector.riotx.features.media.VectorAttachmentViewerActivity import im.vector.riotx.features.media.VectorAttachmentViewerActivity
import im.vector.riotx.features.media.VideoContentRenderer
import im.vector.riotx.features.roomdirectory.RoomDirectoryActivity import im.vector.riotx.features.roomdirectory.RoomDirectoryActivity
import im.vector.riotx.features.roomdirectory.createroom.CreateRoomActivity import im.vector.riotx.features.roomdirectory.createroom.CreateRoomActivity
import im.vector.riotx.features.roomdirectory.roompreview.RoomPreviewActivity import im.vector.riotx.features.roomdirectory.roompreview.RoomPreviewActivity
@ -245,11 +243,11 @@ class DefaultNavigator @Inject constructor(
context.startActivity(WidgetActivity.newIntent(context, widgetArgs)) context.startActivity(WidgetActivity.newIntent(context, widgetArgs))
} }
override fun openImageViewer(activity: Activity, override fun openMediaViewer(activity: Activity,
roomId: String, roomId: String,
mediaData: AttachmentData, mediaData: AttachmentData,
view: View, view: View,
inMemory: List<AttachmentData>?, inMemory: List<AttachmentData>,
options: ((MutableList<Pair<View, String>>) -> Unit)?) { options: ((MutableList<Pair<View, String>>) -> Unit)?) {
VectorAttachmentViewerActivity.newIntent(activity, VectorAttachmentViewerActivity.newIntent(activity,
mediaData, mediaData,
@ -268,52 +266,6 @@ class DefaultNavigator @Inject constructor(
pairs.add(Pair(view, ViewCompat.getTransitionName(view) ?: "")) pairs.add(Pair(view, ViewCompat.getTransitionName(view) ?: ""))
options?.invoke(pairs) options?.invoke(pairs)
val bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, *pairs.toTypedArray()).toBundle()
activity.startActivity(intent, bundle)
}
// val intent = ImageMediaViewerActivity.newIntent(activity, mediaData, ViewCompat.getTransitionName(view))
// val pairs = ArrayList<Pair<View, String>>()
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// activity.window.decorView.findViewById<View>(android.R.id.statusBarBackground)?.let {
// pairs.add(Pair(it, Window.STATUS_BAR_BACKGROUND_TRANSITION_NAME))
// }
// activity.window.decorView.findViewById<View>(android.R.id.navigationBarBackground)?.let {
// pairs.add(Pair(it, Window.NAVIGATION_BAR_BACKGROUND_TRANSITION_NAME))
// }
// }
// pairs.add(Pair(view, ViewCompat.getTransitionName(view) ?: ""))
// options?.invoke(pairs)
//
// val bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, *pairs.toTypedArray()).toBundle()
// activity.startActivity(intent, bundle)
}
override fun openVideoViewer(activity: Activity,
roomId: String,
mediaData: AttachmentData,
view: View,
inMemory: List<AttachmentData>?,
options: ((MutableList<Pair<View, String>>) -> Unit)?) {
// val intent = VideoMediaViewerActivity.newIntent(activity, mediaData)
// activity.startActivity(intent)
VectorAttachmentViewerActivity.newIntent(activity,
mediaData,
roomId,
mediaData.eventId,
inMemory,
ViewCompat.getTransitionName(view)).let { intent ->
val pairs = ArrayList<Pair<View, String>>()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
activity.window.decorView.findViewById<View>(android.R.id.statusBarBackground)?.let {
pairs.add(Pair(it, Window.STATUS_BAR_BACKGROUND_TRANSITION_NAME))
}
activity.window.decorView.findViewById<View>(android.R.id.navigationBarBackground)?.let {
pairs.add(Pair(it, Window.NAVIGATION_BAR_BACKGROUND_TRANSITION_NAME))
}
}
pairs.add(Pair(view, ViewCompat.getTransitionName(view) ?: ""))
options?.invoke(pairs)
val bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, *pairs.toTypedArray()).toBundle() val bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, *pairs.toTypedArray()).toBundle()
activity.startActivity(intent, bundle) activity.startActivity(intent, bundle)
} }

View File

@ -91,17 +91,10 @@ interface Navigator {
fun openRoomWidget(context: Context, roomId: String, widget: Widget) fun openRoomWidget(context: Context, roomId: String, widget: Widget)
fun openImageViewer(activity: Activity, fun openMediaViewer(activity: Activity,
roomId: String, roomId: String,
mediaData: AttachmentData, mediaData: AttachmentData,
view: View, view: View,
inMemory: List<AttachmentData>? = null, inMemory: List<AttachmentData> = emptyList(),
options: ((MutableList<Pair<View, String>>) -> Unit)?)
fun openVideoViewer(activity: Activity,
roomId: String,
mediaData: VideoContentRenderer.Data,
view: View,
inMemory: List<AttachmentData>? = null,
options: ((MutableList<Pair<View, String>>) -> Unit)?) options: ((MutableList<Pair<View, String>>) -> Unit)?)
} }

View File

@ -97,9 +97,14 @@ class RoomUploadsMediaFragment @Inject constructor(
} }
override fun onOpenImageClicked(view: View, mediaData: ImageContentRenderer.Data) = withState(uploadsViewModel) { state -> override fun onOpenImageClicked(view: View, mediaData: ImageContentRenderer.Data) = withState(uploadsViewModel) { state ->
val inMemory = getItemsArgs(state) val inMemory = getItemsArgs(state)
navigator.openImageViewer(requireActivity(), state.roomId, mediaData, view, inMemory) { pairs -> navigator.openMediaViewer(
activity = requireActivity(),
roomId = state.roomId,
mediaData = mediaData,
view = view,
inMemory = inMemory
) { pairs ->
trickFindAppBar()?.let { trickFindAppBar()?.let {
pairs.add(Pair(it, ViewCompat.getTransitionName(it) ?: "")) pairs.add(Pair(it, ViewCompat.getTransitionName(it) ?: ""))
} }
@ -151,7 +156,13 @@ class RoomUploadsMediaFragment @Inject constructor(
override fun onOpenVideoClicked(view: View, mediaData: VideoContentRenderer.Data) = withState(uploadsViewModel) { state -> override fun onOpenVideoClicked(view: View, mediaData: VideoContentRenderer.Data) = withState(uploadsViewModel) { state ->
val inMemory = getItemsArgs(state) val inMemory = getItemsArgs(state)
navigator.openVideoViewer(requireActivity(), state.roomId, mediaData, view, inMemory) { pairs -> navigator.openMediaViewer(
activity = requireActivity(),
roomId = state.roomId,
mediaData = mediaData,
view = view,
inMemory = inMemory
) { pairs ->
trickFindAppBar()?.let { trickFindAppBar()?.let {
pairs.add(Pair(it, ViewCompat.getTransitionName(it) ?: "")) pairs.add(Pair(it, ViewCompat.getTransitionName(it) ?: ""))
} }