Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
AloqaIM-Android
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
AloqaIM-Android
Commits
5df2bf4b
Commit
5df2bf4b
authored
Feb 09, 2018
by
Leonardo Aramaki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove serverUrl from ChatRoomAdapter constructor
parent
2cd3446d
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
27 additions
and
30 deletions
+27
-30
ChatRoomPresenter.kt
...rocket/android/chatroom/presentation/ChatRoomPresenter.kt
+3
-2
ChatRoomView.kt
...chat/rocket/android/chatroom/presentation/ChatRoomView.kt
+1
-2
ChatRoomAdapter.kt
...n/java/chat/rocket/android/chatroom/ui/ChatRoomAdapter.kt
+6
-8
ChatRoomFragment.kt
.../java/chat/rocket/android/chatroom/ui/ChatRoomFragment.kt
+2
-2
PinnedMessagesAdapter.kt
.../chat/rocket/android/chatroom/ui/PinnedMessagesAdapter.kt
+1
-1
MessageViewModel.kt
...hat/rocket/android/chatroom/viewmodel/MessageViewModel.kt
+7
-6
MessageViewModelMapper.kt
...cket/android/chatroom/viewmodel/MessageViewModelMapper.kt
+7
-9
No files found.
app/src/main/java/chat/rocket/android/chatroom/presentation/ChatRoomPresenter.kt
View file @
5df2bf4b
...
@@ -45,7 +45,7 @@ class ChatRoomPresenter @Inject constructor(private val view: ChatRoomView,
...
@@ -45,7 +45,7 @@ class ChatRoomPresenter @Inject constructor(private val view: ChatRoomView,
messagesRepository
.
saveAll
(
messages
)
messagesRepository
.
saveAll
(
messages
)
val
messagesViewModels
=
mapper
.
mapToViewModelList
(
messages
,
settings
)
val
messagesViewModels
=
mapper
.
mapToViewModelList
(
messages
,
settings
)
view
.
showMessages
(
messagesViewModels
,
serverInteractor
.
get
()
!!
)
view
.
showMessages
(
messagesViewModels
)
// Subscribe after getting the first page of messages from REST
// Subscribe after getting the first page of messages from REST
if
(
offset
==
0L
)
{
if
(
offset
==
0L
)
{
...
@@ -175,10 +175,11 @@ class ChatRoomPresenter @Inject constructor(private val view: ChatRoomView,
...
@@ -175,10 +175,11 @@ class ChatRoomPresenter @Inject constructor(private val view: ChatRoomView,
* @param text The actual message to send along with the citation.
* @param text The actual message to send along with the citation.
* @param mentionAuthor true if you want to cite replying or false just to quote.
* @param mentionAuthor true if you want to cite replying or false just to quote.
*/
*/
fun
citeMessage
(
serverUrl
:
String
,
roomType
:
String
,
roomName
:
String
,
messageId
:
String
,
text
:
String
,
mentionAuthor
:
Boolean
)
{
fun
citeMessage
(
roomType
:
String
,
roomName
:
String
,
messageId
:
String
,
text
:
String
,
mentionAuthor
:
Boolean
)
{
launchUI
(
strategy
)
{
launchUI
(
strategy
)
{
val
message
=
messagesRepository
.
getById
(
messageId
)
val
message
=
messagesRepository
.
getById
(
messageId
)
val
me
=
client
.
me
()
//TODO: Cache this and use an interactor
val
me
=
client
.
me
()
//TODO: Cache this and use an interactor
val
serverUrl
=
serverInteractor
.
get
()
!!
message
?.
let
{
m
->
message
?.
let
{
m
->
val
id
=
m
.
id
val
id
=
m
.
id
val
username
=
m
.
sender
?.
username
val
username
=
m
.
sender
?.
username
...
...
app/src/main/java/chat/rocket/android/chatroom/presentation/ChatRoomView.kt
View file @
5df2bf4b
...
@@ -10,9 +10,8 @@ interface ChatRoomView : LoadingView, MessageView {
...
@@ -10,9 +10,8 @@ interface ChatRoomView : LoadingView, MessageView {
* Shows the chat room messages.
* Shows the chat room messages.
*
*
* @param dataSet The data set to show.
* @param dataSet The data set to show.
* @param serverUrl The server URL.
*/
*/
fun
showMessages
(
dataSet
:
List
<
MessageViewModel
>
,
serverUrl
:
String
)
fun
showMessages
(
dataSet
:
List
<
MessageViewModel
>)
/**
/**
* Send a message to a chat room.
* Send a message to a chat room.
...
...
app/src/main/java/chat/rocket/android/chatroom/ui/ChatRoomAdapter.kt
View file @
5df2bf4b
...
@@ -9,8 +9,8 @@ import android.widget.ImageView
...
@@ -9,8 +9,8 @@ import android.widget.ImageView
import
android.widget.TextView
import
android.widget.TextView
import
chat.rocket.android.R
import
chat.rocket.android.R
import
chat.rocket.android.chatroom.presentation.ChatRoomPresenter
import
chat.rocket.android.chatroom.presentation.ChatRoomPresenter
import
chat.rocket.android.chatroom.ui.bottomsheet.adapter.ActionListAdapter
import
chat.rocket.android.chatroom.ui.bottomsheet.BottomSheetMenu
import
chat.rocket.android.chatroom.ui.bottomsheet.BottomSheetMenu
import
chat.rocket.android.chatroom.ui.bottomsheet.adapter.ActionListAdapter
import
chat.rocket.android.chatroom.viewmodel.AttachmentType
import
chat.rocket.android.chatroom.viewmodel.AttachmentType
import
chat.rocket.android.chatroom.viewmodel.MessageViewModel
import
chat.rocket.android.chatroom.viewmodel.MessageViewModel
import
chat.rocket.android.player.PlayerActivity
import
chat.rocket.android.player.PlayerActivity
...
@@ -26,8 +26,7 @@ import kotlinx.android.synthetic.main.message_attachment.view.*
...
@@ -26,8 +26,7 @@ import kotlinx.android.synthetic.main.message_attachment.view.*
import
ru.whalemare.sheetmenu.extension.inflate
import
ru.whalemare.sheetmenu.extension.inflate
import
ru.whalemare.sheetmenu.extension.toList
import
ru.whalemare.sheetmenu.extension.toList
class
ChatRoomAdapter
(
private
val
serverUrl
:
String
,
class
ChatRoomAdapter
(
private
val
roomType
:
String
,
private
val
roomType
:
String
,
private
val
roomName
:
String
,
private
val
roomName
:
String
,
private
val
presenter
:
ChatRoomPresenter
)
:
RecyclerView
.
Adapter
<
ChatRoomAdapter
.
ViewHolder
>()
{
private
val
presenter
:
ChatRoomPresenter
)
:
RecyclerView
.
Adapter
<
ChatRoomAdapter
.
ViewHolder
>()
{
...
@@ -38,7 +37,7 @@ class ChatRoomAdapter(private val serverUrl: String,
...
@@ -38,7 +37,7 @@ class ChatRoomAdapter(private val serverUrl: String,
val
dataSet
=
ArrayList
<
MessageViewModel
>()
val
dataSet
=
ArrayList
<
MessageViewModel
>()
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
,
viewType
:
Int
):
ViewHolder
=
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
,
viewType
:
Int
):
ViewHolder
=
ViewHolder
(
parent
.
inflate
(
R
.
layout
.
item_message
),
serverUrl
,
roomType
,
roomName
,
presenter
)
ViewHolder
(
parent
.
inflate
(
R
.
layout
.
item_message
),
roomType
,
roomName
,
presenter
)
override
fun
onBindViewHolder
(
holder
:
ViewHolder
,
position
:
Int
)
=
holder
.
bind
(
dataSet
[
position
])
override
fun
onBindViewHolder
(
holder
:
ViewHolder
,
position
:
Int
)
=
holder
.
bind
(
dataSet
[
position
])
...
@@ -82,7 +81,6 @@ class ChatRoomAdapter(private val serverUrl: String,
...
@@ -82,7 +81,6 @@ class ChatRoomAdapter(private val serverUrl: String,
}
}
class
ViewHolder
(
itemView
:
View
,
class
ViewHolder
(
itemView
:
View
,
val
serverUrl
:
String
,
val
roomType
:
String
,
val
roomType
:
String
,
val
roomName
:
String
,
val
roomName
:
String
,
val
presenter
:
ChatRoomPresenter
)
:
RecyclerView
.
ViewHolder
(
itemView
),
MenuItem
.
OnMenuItemClickListener
{
val
presenter
:
ChatRoomPresenter
)
:
RecyclerView
.
ViewHolder
(
itemView
),
MenuItem
.
OnMenuItemClickListener
{
...
@@ -120,8 +118,8 @@ class ChatRoomAdapter(private val serverUrl: String,
...
@@ -120,8 +118,8 @@ class ChatRoomAdapter(private val serverUrl: String,
messageViewModel
.
apply
{
messageViewModel
.
apply
{
when
(
item
.
itemId
)
{
when
(
item
.
itemId
)
{
R
.
id
.
action_menu_msg_delete
->
presenter
.
deleteMessage
(
roomId
,
id
)
R
.
id
.
action_menu_msg_delete
->
presenter
.
deleteMessage
(
roomId
,
id
)
R
.
id
.
action_menu_msg_quote
->
presenter
.
citeMessage
(
serverUrl
,
roomType
,
roomName
,
id
,
""
,
false
)
R
.
id
.
action_menu_msg_quote
->
presenter
.
citeMessage
(
roomType
,
roomName
,
id
,
""
,
false
)
R
.
id
.
action_menu_msg_reply
->
presenter
.
citeMessage
(
serverUrl
,
roomType
,
roomName
,
id
,
""
,
true
)
R
.
id
.
action_menu_msg_reply
->
presenter
.
citeMessage
(
roomType
,
roomName
,
id
,
""
,
true
)
R
.
id
.
action_menu_msg_copy
->
presenter
.
copyMessage
(
id
)
R
.
id
.
action_menu_msg_copy
->
presenter
.
copyMessage
(
id
)
R
.
id
.
action_menu_msg_edit
->
presenter
.
editMessage
(
roomId
,
id
,
getOriginalMessage
())
R
.
id
.
action_menu_msg_edit
->
presenter
.
editMessage
(
roomId
,
id
,
getOriginalMessage
())
R
.
id
.
action_menu_msg_pin_unpin
->
{
R
.
id
.
action_menu_msg_pin_unpin
->
{
...
@@ -183,7 +181,7 @@ class ChatRoomAdapter(private val serverUrl: String,
...
@@ -183,7 +181,7 @@ class ChatRoomAdapter(private val serverUrl: String,
}
}
}
}
private
fun
bindUserAvatar
(
message
:
MessageViewModel
,
drawee
:
SimpleDraweeView
,
imageUnknownAvatar
:
ImageView
)
=
message
.
getAvatarUrl
(
serverUrl
).
let
{
private
fun
bindUserAvatar
(
message
:
MessageViewModel
,
drawee
:
SimpleDraweeView
,
imageUnknownAvatar
:
ImageView
)
=
message
.
getAvatarUrl
().
let
{
drawee
.
setImageURI
(
it
.
toString
())
drawee
.
setImageURI
(
it
.
toString
())
drawee
.
setVisible
(
true
)
drawee
.
setVisible
(
true
)
imageUnknownAvatar
.
setVisible
(
false
)
imageUnknownAvatar
.
setVisible
(
false
)
...
...
app/src/main/java/chat/rocket/android/chatroom/ui/ChatRoomFragment.kt
View file @
5df2bf4b
...
@@ -103,10 +103,10 @@ class ChatRoomFragment : Fragment(), ChatRoomView {
...
@@ -103,10 +103,10 @@ class ChatRoomFragment : Fragment(), ChatRoomView {
return
true
return
true
}
}
override
fun
showMessages
(
dataSet
:
List
<
MessageViewModel
>
,
serverUrl
:
String
)
{
override
fun
showMessages
(
dataSet
:
List
<
MessageViewModel
>)
{
activity
?.
apply
{
activity
?.
apply
{
if
(
recycler_view
.
adapter
==
null
)
{
if
(
recycler_view
.
adapter
==
null
)
{
adapter
=
ChatRoomAdapter
(
serverUrl
,
chatRoomType
,
chatRoomName
,
presenter
)
adapter
=
ChatRoomAdapter
(
chatRoomType
,
chatRoomName
,
presenter
)
recycler_view
.
adapter
=
adapter
recycler_view
.
adapter
=
adapter
val
linearLayoutManager
=
LinearLayoutManager
(
context
,
LinearLayoutManager
.
VERTICAL
,
true
)
val
linearLayoutManager
=
LinearLayoutManager
(
context
,
LinearLayoutManager
.
VERTICAL
,
true
)
recycler_view
.
layoutManager
=
linearLayoutManager
recycler_view
.
layoutManager
=
linearLayoutManager
...
...
app/src/main/java/chat/rocket/android/chatroom/ui/PinnedMessagesAdapter.kt
View file @
5df2bf4b
...
@@ -133,7 +133,7 @@ class PinnedMessagesAdapter(private val serverUrl: String) : RecyclerView.Adapte
...
@@ -133,7 +133,7 @@ class PinnedMessagesAdapter(private val serverUrl: String) : RecyclerView.Adapte
}
}
private
fun
bindUserAvatar
(
message
:
MessageViewModel
,
drawee
:
SimpleDraweeView
,
imageUnknownAvatar
:
ImageView
)
{
private
fun
bindUserAvatar
(
message
:
MessageViewModel
,
drawee
:
SimpleDraweeView
,
imageUnknownAvatar
:
ImageView
)
{
message
.
getAvatarUrl
(
serverUrl
).
let
{
message
.
getAvatarUrl
().
let
{
drawee
.
setImageURI
(
it
.
toString
())
drawee
.
setImageURI
(
it
.
toString
())
drawee
.
setVisible
(
true
)
drawee
.
setVisible
(
true
)
imageUnknownAvatar
.
setVisible
(
false
)
imageUnknownAvatar
.
setVisible
(
false
)
...
...
app/src/main/java/chat/rocket/android/chatroom/viewmodel/MessageViewModel.kt
View file @
5df2bf4b
...
@@ -13,6 +13,7 @@ import chat.rocket.android.R
...
@@ -13,6 +13,7 @@ import chat.rocket.android.R
import
chat.rocket.android.helper.MessageParser
import
chat.rocket.android.helper.MessageParser
import
chat.rocket.android.helper.UrlHelper
import
chat.rocket.android.helper.UrlHelper
import
chat.rocket.android.infrastructure.LocalRepository
import
chat.rocket.android.infrastructure.LocalRepository
import
chat.rocket.android.server.domain.CurrentServerRepository
import
chat.rocket.android.server.domain.MessagesRepository
import
chat.rocket.android.server.domain.MessagesRepository
import
chat.rocket.android.server.domain.SITE_URL
import
chat.rocket.android.server.domain.SITE_URL
import
chat.rocket.android.server.domain.useRealName
import
chat.rocket.android.server.domain.useRealName
...
@@ -23,7 +24,6 @@ import chat.rocket.core.model.Value
...
@@ -23,7 +24,6 @@ import chat.rocket.core.model.Value
import
chat.rocket.core.model.attachment.*
import
chat.rocket.core.model.attachment.*
import
chat.rocket.core.model.url.Url
import
chat.rocket.core.model.url.Url
import
okhttp3.HttpUrl
import
okhttp3.HttpUrl
import
timber.log.Timber
data class
MessageViewModel
(
val
context
:
Context
,
data class
MessageViewModel
(
val
context
:
Context
,
private
val
token
:
Token
?,
private
val
token
:
Token
?,
...
@@ -31,7 +31,8 @@ data class MessageViewModel(val context: Context,
...
@@ -31,7 +31,8 @@ data class MessageViewModel(val context: Context,
private
val
settings
:
Map
<
String
,
Value
<
Any
>>,
private
val
settings
:
Map
<
String
,
Value
<
Any
>>,
private
val
parser
:
MessageParser
,
private
val
parser
:
MessageParser
,
private
val
messagesRepository
:
MessagesRepository
,
private
val
messagesRepository
:
MessagesRepository
,
private
val
localRepository
:
LocalRepository
)
{
private
val
localRepository
:
LocalRepository
,
private
val
currentServerRepository
:
CurrentServerRepository
)
{
val
id
:
String
=
message
.
id
val
id
:
String
=
message
.
id
val
roomId
:
String
=
message
.
roomId
val
roomId
:
String
=
message
.
roomId
val
time
:
CharSequence
val
time
:
CharSequence
...
@@ -106,16 +107,15 @@ data class MessageViewModel(val context: Context,
...
@@ -106,16 +107,15 @@ data class MessageViewModel(val context: Context,
private
fun
makeQuote
(
quoteUrl
:
HttpUrl
,
serverUrl
:
HttpUrl
)
{
private
fun
makeQuote
(
quoteUrl
:
HttpUrl
,
serverUrl
:
HttpUrl
)
{
if
(
quoteUrl
.
host
()
==
serverUrl
.
host
())
{
if
(
quoteUrl
.
host
()
==
serverUrl
.
host
())
{
val
msgIdToQuote
=
quoteUrl
.
queryParameter
(
"msg"
)
val
msgIdToQuote
=
quoteUrl
.
queryParameter
(
"msg"
)
Timber
.
d
(
"Will quote message Id: $msgIdToQuote"
)
if
(
msgIdToQuote
!=
null
)
{
if
(
msgIdToQuote
!=
null
)
{
quote
=
messagesRepository
.
getById
(
msgIdToQuote
)
quote
=
messagesRepository
.
getById
(
msgIdToQuote
)
}
}
}
}
}
}
fun
getAvatarUrl
(
serverUrl
:
String
):
String
?
{
fun
getAvatarUrl
():
String
?
{
return
message
.
sender
?.
username
.
let
{
return
message
.
sender
?.
username
.
let
{
return
@let
UrlHelper
.
getAvatarUrl
(
serverUrl
,
it
.
toString
())
return
@let
UrlHelper
.
getAvatarUrl
(
currentServerRepository
.
get
()
!!
,
it
.
toString
())
}
}
}
}
...
@@ -157,7 +157,8 @@ data class MessageViewModel(val context: Context,
...
@@ -157,7 +157,8 @@ data class MessageViewModel(val context: Context,
var
quoteViewModel
:
MessageViewModel
?
=
null
var
quoteViewModel
:
MessageViewModel
?
=
null
if
(
quote
!=
null
)
{
if
(
quote
!=
null
)
{
val
quoteMessage
:
Message
=
quote
!!
val
quoteMessage
:
Message
=
quote
!!
quoteViewModel
=
MessageViewModel
(
context
,
token
,
quoteMessage
,
settings
,
parser
,
messagesRepository
,
localRepository
)
quoteViewModel
=
MessageViewModel
(
context
,
token
,
quoteMessage
,
settings
,
parser
,
messagesRepository
,
localRepository
,
currentServerRepository
)
}
}
return
parser
.
renderMarkdown
(
message
.
message
,
quoteViewModel
,
currentUsername
)
return
parser
.
renderMarkdown
(
message
.
message
,
quoteViewModel
,
currentUsername
)
}
}
...
...
app/src/main/java/chat/rocket/android/chatroom/viewmodel/MessageViewModelMapper.kt
View file @
5df2bf4b
...
@@ -3,6 +3,7 @@ package chat.rocket.android.chatroom.viewmodel
...
@@ -3,6 +3,7 @@ package chat.rocket.android.chatroom.viewmodel
import
android.content.Context
import
android.content.Context
import
chat.rocket.android.helper.MessageParser
import
chat.rocket.android.helper.MessageParser
import
chat.rocket.android.infrastructure.LocalRepository
import
chat.rocket.android.infrastructure.LocalRepository
import
chat.rocket.android.server.domain.CurrentServerRepository
import
chat.rocket.android.server.domain.MessagesRepository
import
chat.rocket.android.server.domain.MessagesRepository
import
chat.rocket.core.TokenRepository
import
chat.rocket.core.TokenRepository
import
chat.rocket.core.model.Message
import
chat.rocket.core.model.Message
...
@@ -15,7 +16,8 @@ class MessageViewModelMapper @Inject constructor(private val context: Context,
...
@@ -15,7 +16,8 @@ class MessageViewModelMapper @Inject constructor(private val context: Context,
private
val
tokenRepository
:
TokenRepository
,
private
val
tokenRepository
:
TokenRepository
,
private
val
messageParser
:
MessageParser
,
private
val
messageParser
:
MessageParser
,
private
val
messagesRepository
:
MessagesRepository
,
private
val
messagesRepository
:
MessagesRepository
,
private
val
localRepository
:
LocalRepository
)
{
private
val
localRepository
:
LocalRepository
,
private
val
currentServerRepository
:
CurrentServerRepository
)
{
suspend
fun
mapToViewModel
(
message
:
Message
,
settings
:
Map
<
String
,
Value
<
Any
>>):
MessageViewModel
=
withContext
(
CommonPool
)
{
suspend
fun
mapToViewModel
(
message
:
Message
,
settings
:
Map
<
String
,
Value
<
Any
>>):
MessageViewModel
=
withContext
(
CommonPool
)
{
MessageViewModel
(
MessageViewModel
(
...
@@ -25,17 +27,13 @@ class MessageViewModelMapper @Inject constructor(private val context: Context,
...
@@ -25,17 +27,13 @@ class MessageViewModelMapper @Inject constructor(private val context: Context,
settings
,
settings
,
messageParser
,
messageParser
,
messagesRepository
,
messagesRepository
,
localRepository
localRepository
,
currentServerRepository
)
)
}
}
suspend
fun
mapToViewModelList
(
messageList
:
List
<
Message
>,
settings
:
Map
<
String
,
Value
<
Any
>>):
List
<
MessageViewModel
>
{
suspend
fun
mapToViewModelList
(
messageList
:
List
<
Message
>,
settings
:
Map
<
String
,
Value
<
Any
>>):
List
<
MessageViewModel
>
{
return
messageList
.
map
{
MessageViewModel
(
context
,
return
messageList
.
map
{
MessageViewModel
(
context
,
tokenRepository
.
get
(),
it
,
settings
,
tokenRepository
.
get
(),
messageParser
,
messagesRepository
,
localRepository
,
currentServerRepository
)
}
it
,
settings
,
messageParser
,
messagesRepository
,
localRepository
)
}
}
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment