Commit c8f8cb1a authored by Lucio Maciel's avatar Lucio Maciel

Merge branch 'upstrem-button-action' of...

Merge branch 'upstrem-button-action' of https://github.com/Shailesh351/Rocket.Chat.Android into Shailesh351-upstrem-button-action
parents 8837b6df 433c5455
...@@ -24,35 +24,44 @@ class ChatRoomFragmentTest { ...@@ -24,35 +24,44 @@ class ChatRoomFragmentTest {
@Before @Before
fun stubAllExternalIntents() { fun stubAllExternalIntents() {
val activityIntent = InstrumentationRegistry.getTargetContext().chatRoomIntent("id", "name", "type", false, 0L) val activityIntent = InstrumentationRegistry.getTargetContext()
.chatRoomIntent("id", "name", "type", false, 0L)
activityRule.launchActivity(activityIntent) activityRule.launchActivity(activityIntent)
intending(not(isInternal())).respondWith(ActivityResult(Activity.RESULT_OK, null)) intending(not(isInternal())).respondWith(ActivityResult(Activity.RESULT_OK, null))
} }
@Test @Test
fun showFileSelection_nonNullFiltersAreApplied() { fun showFileSelection_nonNullFiltersAreApplied() {
val fragment = activityRule.activity.supportFragmentManager.findFragmentByTag(ChatRoomActivity.TAG_CHAT_ROOM_FRAGMENT) as ChatRoomFragment val fragment =
activityRule.activity.supportFragmentManager.findFragmentByTag("ChatRoomFragment") as ChatRoomFragment
val filters = arrayOf("image/*") val filters = arrayOf("image/*")
fragment.showFileSelection(filters) fragment.showFileSelection(filters)
intended(allOf( intended(
allOf(
hasAction(Intent.ACTION_GET_CONTENT), hasAction(Intent.ACTION_GET_CONTENT),
hasType("*/*"), hasType("*/*"),
hasCategories(setOf(Intent.CATEGORY_OPENABLE)), hasCategories(setOf(Intent.CATEGORY_OPENABLE)),
hasExtra(Intent.EXTRA_MIME_TYPES, filters))) hasExtra(Intent.EXTRA_MIME_TYPES, filters)
)
)
} }
@Test @Test
fun showFileSelection_nullFiltersAreNotApplied() { fun showFileSelection_nullFiltersAreNotApplied() {
val fragment = activityRule.activity.supportFragmentManager.findFragmentByTag(ChatRoomActivity.TAG_CHAT_ROOM_FRAGMENT) as ChatRoomFragment val fragment =
activityRule.activity.supportFragmentManager.findFragmentByTag("ChatRoomFragment") as ChatRoomFragment
fragment.showFileSelection(null) fragment.showFileSelection(null)
intended(allOf( intended(
allOf(
hasAction(Intent.ACTION_GET_CONTENT), hasAction(Intent.ACTION_GET_CONTENT),
hasType("*/*"), hasType("*/*"),
hasCategories(setOf(Intent.CATEGORY_OPENABLE)), hasCategories(setOf(Intent.CATEGORY_OPENABLE)),
not(hasExtraWithKey(Intent.EXTRA_MIME_TYPES)))) not(hasExtraWithKey(Intent.EXTRA_MIME_TYPES))
)
)
} }
} }
\ No newline at end of file
package chat.rocket.android.chatroom.adapter package chat.rocket.android.chatroom.adapter
import android.app.AlertDialog
import android.content.Context
import android.net.Uri
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import android.view.MenuItem import android.view.MenuItem
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import chat.rocket.android.R import chat.rocket.android.R
import chat.rocket.android.chatroom.presentation.ChatRoomPresenter
import chat.rocket.android.chatroom.uimodel.* import chat.rocket.android.chatroom.uimodel.*
import chat.rocket.android.util.extensions.inflate import chat.rocket.android.util.extensions.inflate
import chat.rocket.android.emoji.EmojiReactionListener import chat.rocket.android.emoji.EmojiReactionListener
...@@ -219,19 +215,19 @@ class ChatRoomAdapter( ...@@ -219,19 +215,19 @@ class ChatRoomAdapter(
override fun onActionClicked(view: View, action: Action) { override fun onActionClicked(view: View, action: Action) {
val temp = action as ButtonAction val temp = action as ButtonAction
if (temp.url != null && temp.isWebView != null) { if (temp.url != null && temp.isWebView != null) {
if (temp.isWebView!!) { if (temp.isWebView == true) {
//TODO: Open in a configurable sizable webview //TODO: Open in a configurable sizable webview
Timber.d("Open in a configurable sizable webview") Timber.d("Open in a configurable sizable webview")
} else { } else {
//Open in chrome custom tab //Open in chrome custom tab
view.openTabbedUrl(Uri.parse(temp.url)) temp.url?.let { view.openTabbedUrl(it) }
} }
} else if (temp.message != null && temp.isMessageInChatWindow != null) { } else if (temp.message != null && temp.isMessageInChatWindow != null) {
if (temp.isMessageInChatWindow!!) { if (temp.isMessageInChatWindow == true) {
//Send to chat window //Send to chat window
temp.message.run { temp.message?.let {
if (roomId != null) { if (roomId != null) {
presenter?.sendMessage(roomId, temp.message!!, null) actionSelectListener?.sendMessage(roomId, it)
} }
} }
} else { } else {
...@@ -298,5 +294,6 @@ class ChatRoomAdapter( ...@@ -298,5 +294,6 @@ class ChatRoomAdapter(
fun deleteMessage(roomId: String, id: String) fun deleteMessage(roomId: String, id: String)
fun showReactions(id: String) fun showReactions(id: String)
fun openDirectMessage(roomName: String, message: String) fun openDirectMessage(roomName: String, message: String)
fun sendMessage(chatRoomId: String, text: String)
} }
} }
\ No newline at end of file
...@@ -209,7 +209,7 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR ...@@ -209,7 +209,7 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
requireNotNull(bundle) { "no arguments supplied when the fragment was instantiated" } requireNotNull(bundle) { "no arguments supplied when the fragment was instantiated" }
} }
adapter = ChatRoomAdapter(chatRoomType, chatRoomName, this, adapter = ChatRoomAdapter(chatRoomId, chatRoomType, chatRoomName, this,
reactionListener = this) reactionListener = this)
} }
...@@ -350,14 +350,6 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR ...@@ -350,14 +350,6 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
} }
if (recycler_view.adapter == null) { if (recycler_view.adapter == null) {
adapter = ChatRoomAdapter(
chatRoomId,
chatRoomType,
chatRoomName,
presenter,
reactionListener = this@ChatRoomFragment,
context = context
)
recycler_view.adapter = adapter recycler_view.adapter = adapter
if (dataSet.size >= 30) { if (dataSet.size >= 30) {
recycler_view.addOnScrollListener(endlessRecyclerViewScrollListener) recycler_view.addOnScrollListener(endlessRecyclerViewScrollListener)
...@@ -1034,4 +1026,8 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR ...@@ -1034,4 +1026,8 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
override fun openDirectMessage(roomName: String, message: String) { override fun openDirectMessage(roomName: String, message: String) {
presenter.openDirectMessage(roomName, message) presenter.openDirectMessage(roomName, message)
} }
override fun sendMessage(chatRoomId: String, text: String) {
presenter.sendMessage(chatRoomId, text, null)
}
} }
...@@ -6,24 +6,24 @@ import chat.rocket.core.model.attachment.actions.Action ...@@ -6,24 +6,24 @@ import chat.rocket.core.model.attachment.actions.Action
import chat.rocket.core.model.attachment.actions.ActionsAttachment import chat.rocket.core.model.attachment.actions.ActionsAttachment
data class ActionsAttachmentUiModel( data class ActionsAttachmentUiModel(
override val attachmentUrl: String, override val attachmentUrl: String,
val title: String?, val title: String?,
val actions: List<Action>, val actions: List<Action>,
val buttonAlignment: String, val buttonAlignment: String,
override val message: Message, override val message: Message,
override val rawData: ActionsAttachment, override val rawData: ActionsAttachment,
override val messageId: String, override val messageId: String,
override var reactions: List<ReactionUiModel>, override var reactions: List<ReactionUiModel>,
override var nextDownStreamMessage: BaseUiModel<*>? = null, override var nextDownStreamMessage: BaseUiModel<*>? = null,
override var preview: Message? = null, override var preview: Message? = null,
override var isTemporary: Boolean = false, override var isTemporary: Boolean = false,
override var unread: Boolean? = null, override var unread: Boolean? = null,
override var menuItemsToHide: MutableList<Int> = mutableListOf(), override var menuItemsToHide: MutableList<Int> = mutableListOf(),
override var currentDayMarkerText: String, override var currentDayMarkerText: String,
override var showDayMarker: Boolean override var showDayMarker: Boolean
) : BaseAttachmentUiModel<ActionsAttachment> { ) : BaseAttachmentUiModel<ActionsAttachment> {
override val viewType: Int override val viewType: Int
get() = BaseUiModel.ViewType.ACTIONS_ATTACHMENT.viewType get() = BaseUiModel.ViewType.ACTIONS_ATTACHMENT.viewType
override val layoutId: Int override val layoutId: Int
get() = R.layout.item_actions_attachment get() = R.layout.item_actions_attachment
} }
\ No newline at end of file
...@@ -35,6 +35,7 @@ import chat.rocket.android.server.domain.MultiServerTokenRepository ...@@ -35,6 +35,7 @@ import chat.rocket.android.server.domain.MultiServerTokenRepository
import chat.rocket.android.server.domain.PermissionsRepository import chat.rocket.android.server.domain.PermissionsRepository
import chat.rocket.android.server.domain.RoomRepository import chat.rocket.android.server.domain.RoomRepository
import chat.rocket.android.server.domain.SettingsRepository import chat.rocket.android.server.domain.SettingsRepository
import chat.rocket.android.server.domain.TokenRepository
import chat.rocket.android.server.domain.UsersRepository import chat.rocket.android.server.domain.UsersRepository
import chat.rocket.android.server.infraestructure.JobSchedulerInteractorImpl import chat.rocket.android.server.infraestructure.JobSchedulerInteractorImpl
import chat.rocket.android.server.infraestructure.MemoryActiveUsersRepository import chat.rocket.android.server.infraestructure.MemoryActiveUsersRepository
...@@ -57,7 +58,6 @@ import chat.rocket.common.model.TimestampAdapter ...@@ -57,7 +58,6 @@ import chat.rocket.common.model.TimestampAdapter
import chat.rocket.common.util.CalendarISO8601Converter import chat.rocket.common.util.CalendarISO8601Converter
import chat.rocket.common.util.Logger import chat.rocket.common.util.Logger
import chat.rocket.common.util.PlatformLogger import chat.rocket.common.util.PlatformLogger
import chat.rocket.core.TokenRepository
import chat.rocket.core.internal.AttachmentAdapterFactory import chat.rocket.core.internal.AttachmentAdapterFactory
import chat.rocket.core.internal.ReactionsAdapter import chat.rocket.core.internal.ReactionsAdapter
import com.facebook.drawee.backends.pipeline.DraweeConfig import com.facebook.drawee.backends.pipeline.DraweeConfig
......
...@@ -10,7 +10,7 @@ buildscript { ...@@ -10,7 +10,7 @@ buildscript {
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.3.0-alpha06' classpath 'com.android.tools.build:gradle:3.3.0-alpha05'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}"
classpath "org.jetbrains.dokka:dokka-gradle-plugin:${versions.dokka}" classpath "org.jetbrains.dokka:dokka-gradle-plugin:${versions.dokka}"
classpath 'com.google.gms:google-services:4.0.2' classpath 'com.google.gms:google-services:4.0.2'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment