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
ec005ba9
Unverified
Commit
ec005ba9
authored
Jul 23, 2018
by
Filipe de Lima Brito
Committed by
GitHub
Jul 23, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'beta' into fix/fix-temporary-status-on-reconnection
parents
bfe48550
33adccb6
Changes
48
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
48 changed files
with
565 additions
and
322 deletions
+565
-322
build.gradle
app/build.gradle
+1
-1
DateTimeHelper.kt
app/src/main/java/chat/rocket/android/app/DateTimeHelper.kt
+39
-30
MessageInfoFragment.kt
.../rocket/android/chatinformation/ui/MessageInfoFragment.kt
+1
-1
MessageViewHolder.kt
...chat/rocket/android/chatroom/adapter/MessageViewHolder.kt
+15
-5
ChatRoomFragment.kt
.../java/chat/rocket/android/chatroom/ui/ChatRoomFragment.kt
+42
-26
AudioAttachmentUiModel.kt
...rocket/android/chatroom/uimodel/AudioAttachmentUiModel.kt
+3
-1
AuthorAttachmentUiModel.kt
...ocket/android/chatroom/uimodel/AuthorAttachmentUiModel.kt
+16
-14
BaseUiModel.kt
.../java/chat/rocket/android/chatroom/uimodel/BaseUiModel.kt
+2
-0
ColorAttachmentUiModel.kt
...rocket/android/chatroom/uimodel/ColorAttachmentUiModel.kt
+15
-13
GenericFileAttachmentUiModel.kt
.../android/chatroom/uimodel/GenericFileAttachmentUiModel.kt
+14
-12
ImageAttachmentUiModel.kt
...rocket/android/chatroom/uimodel/ImageAttachmentUiModel.kt
+16
-14
MessageAttachmentUiModel.kt
...cket/android/chatroom/uimodel/MessageAttachmentUiModel.kt
+16
-14
MessageReplyUiModel.kt
...at/rocket/android/chatroom/uimodel/MessageReplyUiModel.kt
+3
-1
MessageUiModel.kt
...va/chat/rocket/android/chatroom/uimodel/MessageUiModel.kt
+2
-0
UiModelMapper.kt
...ava/chat/rocket/android/chatroom/uimodel/UiModelMapper.kt
+47
-11
UrlPreviewUiModel.kt
...chat/rocket/android/chatroom/uimodel/UrlPreviewUiModel.kt
+15
-13
VideoAttachmentUiModel.kt
...rocket/android/chatroom/uimodel/VideoAttachmentUiModel.kt
+3
-1
activity_add_members.xml
app/src/main/res/layout/activity_add_members.xml
+10
-2
avatar_profile.xml
app/src/main/res/layout/avatar_profile.xml
+2
-0
fragment_authentication_log_in.xml
app/src/main/res/layout/fragment_authentication_log_in.xml
+8
-6
fragment_chat_room.xml
app/src/main/res/layout/fragment_chat_room.xml
+28
-15
fragment_create_channel.xml
app/src/main/res/layout/fragment_create_channel.xml
+17
-9
fragment_favorite_messages.xml
app/src/main/res/layout/fragment_favorite_messages.xml
+9
-3
fragment_files.xml
app/src/main/res/layout/fragment_files.xml
+11
-3
fragment_member_bottom_sheet.xml
app/src/main/res/layout/fragment_member_bottom_sheet.xml
+6
-3
fragment_mentions.xml
app/src/main/res/layout/fragment_mentions.xml
+11
-3
fragment_pinned_messages.xml
app/src/main/res/layout/fragment_pinned_messages.xml
+10
-4
item_color_attachment.xml
app/src/main/res/layout/item_color_attachment.xml
+8
-7
item_message.xml
app/src/main/res/layout/item_message.xml
+45
-3
item_message_reply.xml
app/src/main/res/layout/item_message_reply.xml
+7
-6
layout_toolbar.xml
app/src/main/res/layout/layout_toolbar.xml
+4
-1
message_composer.xml
app/src/main/res/layout/message_composer.xml
+17
-10
message_url_preview.xml
app/src/main/res/layout/message_url_preview.xml
+8
-7
nav_header.xml
app/src/main/res/layout/nav_header.xml
+10
-5
suggestion_member_item.xml
app/src/main/res/layout/suggestion_member_item.xml
+3
-0
chatrooms.xml
app/src/main/res/menu/chatrooms.xml
+3
-1
image_actions.xml
app/src/main/res/menu/image_actions.xml
+3
-1
strings.xml
app/src/main/res/values-es/strings.xml
+50
-68
strings.xml
app/src/main/res/values-fr/strings.xml
+3
-0
strings.xml
app/src/main/res/values-hi-rIN/strings.xml
+4
-0
strings.xml
app/src/main/res/values-pt-rBR/strings.xml
+4
-1
strings.xml
app/src/main/res/values-uk-rRU/strings.xml
+9
-3
colors.xml
app/src/main/res/values/colors.xml
+2
-0
fonts.xml
app/src/main/res/values/fonts.xml
+4
-0
strings.xml
app/src/main/res/values/strings.xml
+3
-0
styles.xml
app/src/main/res/values/styles.xml
+7
-1
activity_drawing.xml
draw/src/main/res/layout/activity_drawing.xml
+6
-2
emoji_keyboard.xml
emoji/src/main/res/layout/emoji_keyboard.xml
+3
-1
No files found.
app/build.gradle
View file @
ec005ba9
...
@@ -12,7 +12,7 @@ android {
...
@@ -12,7 +12,7 @@ android {
applicationId
"chat.rocket.android"
applicationId
"chat.rocket.android"
minSdkVersion
versions
.
minSdk
minSdkVersion
versions
.
minSdk
targetSdkVersion
versions
.
targetSdk
targetSdkVersion
versions
.
targetSdk
versionCode
203
2
versionCode
203
3
versionName
"2.5.0"
versionName
"2.5.0"
testInstrumentationRunner
"androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunner
"androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled
true
multiDexEnabled
true
...
...
app/src/main/java/chat/rocket/android/app/DateTimeHelper.kt
View file @
ec005ba9
...
@@ -44,39 +44,48 @@ object DateTimeHelper {
...
@@ -44,39 +44,48 @@ object DateTimeHelper {
}
}
}
}
/**
fun
getFormattedDateForMessages
(
localDateTime
:
LocalDateTime
,
context
:
Context
):
String
{
* Returns a time from a [LocalDateTime].
val
localDate
=
localDateTime
.
toLocalDate
()
*
return
when
(
localDate
)
{
* @param localDateTime The [LocalDateTime].
today
->
context
.
getString
(
R
.
string
.
msg_today
)
* @return The time from a [LocalDateTime].
yesterday
->
context
.
getString
(
R
.
string
.
msg_yesterday
)
*/
else
->
formatLocalDate
(
localDate
)
fun
getTime
(
localDateTime
:
LocalDateTime
):
String
{
}
val
formatter
=
DateTimeFormatter
.
ofLocalizedTime
(
FormatStyle
.
SHORT
)
return
localDateTime
.
toLocalTime
().
format
(
formatter
).
toString
()
}
}
/**
/**
* Returns a date time from a [LocalDateTime].
* Returns a time from a [LocalDateTime].
*
*
* @param localDateTime The [LocalDateTime].
* @param localDateTime The [LocalDateTime].
* @return The time from a [LocalDateTime].
* @return The time from a [LocalDateTime].
*/
*/
fun
getDateTime
(
localDateTime
:
LocalDateTime
):
String
{
fun
getTime
(
localDateTime
:
LocalDateTime
):
String
{
return
formatLocalDateTime
(
localDateTime
)
val
formatter
=
DateTimeFormatter
.
ofLocalizedTime
(
FormatStyle
.
SHORT
)
}
return
localDateTime
.
toLocalTime
().
format
(
formatter
).
toString
()
}
private
fun
formatLocalDateTime
(
localDateTime
:
LocalDateTime
):
String
{
/**
val
formatter
=
DateTimeFormatter
.
ofLocalizedDateTime
(
FormatStyle
.
SHORT
)
* Returns a date time from a [LocalDateTime].
return
localDateTime
.
format
(
formatter
).
toString
()
*
}
* @param localDateTime The [LocalDateTime].
* @return The time from a [LocalDateTime].
*/
fun
getDateTime
(
localDateTime
:
LocalDateTime
):
String
{
return
formatLocalDateTime
(
localDateTime
)
}
private
fun
formatLocalDate
(
localDate
:
LocalDat
e
):
String
{
private
fun
formatLocalDateTime
(
localDateTime
:
LocalDateTim
e
):
String
{
val
formatter
=
DateTimeFormatter
.
ofLocalizedDat
e
(
FormatStyle
.
SHORT
)
val
formatter
=
DateTimeFormatter
.
ofLocalizedDateTim
e
(
FormatStyle
.
SHORT
)
return
localDat
e
.
format
(
formatter
).
toString
()
return
localDateTim
e
.
format
(
formatter
).
toString
()
}
}
private
fun
formatLocalTime
(
localTime
:
LocalTime
):
String
{
private
fun
formatLocalDate
(
localDate
:
LocalDate
):
String
{
val
formatter
=
DateTimeFormatter
.
ofLocalizedTime
(
FormatStyle
.
SHORT
)
val
formatter
=
DateTimeFormatter
.
ofLocalizedDate
(
FormatStyle
.
SHORT
)
return
localTime
.
format
(
formatter
).
toString
()
return
localDate
.
format
(
formatter
).
toString
()
}
}
private
fun
formatLocalTime
(
localTime
:
LocalTime
):
String
{
val
formatter
=
DateTimeFormatter
.
ofLocalizedTime
(
FormatStyle
.
SHORT
)
return
localTime
.
format
(
formatter
).
toString
()
}
}
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/chatinformation/ui/MessageInfoFragment.kt
View file @
ec005ba9
...
@@ -68,7 +68,7 @@ class MessageInfoFragment : Fragment(), MessageInfoView {
...
@@ -68,7 +68,7 @@ class MessageInfoFragment : Fragment(), MessageInfoView {
private
fun
setupRecyclerView
()
{
private
fun
setupRecyclerView
()
{
// Initialize the endlessRecyclerViewScrollListener so we don't NPE at onDestroyView
// Initialize the endlessRecyclerViewScrollListener so we don't NPE at onDestroyView
val
linearLayoutManager
=
LinearLayoutManager
(
context
,
LinearLayoutManager
.
VERTICAL
,
true
)
val
linearLayoutManager
=
LinearLayoutManager
(
context
,
RecyclerView
.
VERTICAL
,
true
)
adapter
=
ReadReceiptAdapter
()
adapter
=
ReadReceiptAdapter
()
linearLayoutManager
.
stackFromEnd
=
true
linearLayoutManager
.
stackFromEnd
=
true
receipt_list
.
layoutManager
=
linearLayoutManager
receipt_list
.
layoutManager
=
linearLayoutManager
...
...
app/src/main/java/chat/rocket/android/chatroom/adapter/MessageViewHolder.kt
View file @
ec005ba9
...
@@ -26,20 +26,30 @@ class MessageViewHolder(
...
@@ -26,20 +26,30 @@ class MessageViewHolder(
override
fun
bindViews
(
data
:
MessageUiModel
)
{
override
fun
bindViews
(
data
:
MessageUiModel
)
{
with
(
itemView
)
{
with
(
itemView
)
{
if
(
data
.
isFirstUnread
)
new_messages_notif
.
visibility
=
View
.
VISIBLE
day_marker_layout
.
visibility
=
if
(
data
.
showDayMarker
)
{
else
new_messages_notif
.
visibility
=
View
.
GONE
day
.
text
=
data
.
currentDayMarkerText
View
.
VISIBLE
}
else
{
View
.
GONE
}
if
(
data
.
isFirstUnread
)
{
new_messages_notif
.
visibility
=
View
.
VISIBLE
}
else
{
new_messages_notif
.
visibility
=
View
.
GONE
}
text_message_time
.
text
=
data
.
time
text_message_time
.
text
=
data
.
time
text_sender
.
text
=
data
.
senderName
text_sender
.
text
=
data
.
senderName
text_content
.
text
=
data
.
content
text_content
.
text
=
data
.
content
image_avatar
.
setImageURI
(
data
.
avatar
)
image_avatar
.
setImageURI
(
data
.
avatar
)
text_content
.
setTextColor
(
text_content
.
setTextColor
(
if
(
data
.
isTemporary
)
Color
.
GRAY
else
Color
.
BLACK
)
if
(
data
.
isTemporary
)
Color
.
GRAY
else
Color
.
BLACK
)
data
.
message
.
let
{
data
.
message
.
let
{
text_edit_indicator
.
isVisible
=
!
it
.
isSystemMessage
()
&&
it
.
editedBy
!=
null
text_edit_indicator
.
isVisible
=
!
it
.
isSystemMessage
()
&&
it
.
editedBy
!=
null
image_star_indicator
.
isVisible
=
it
.
starred
?.
isNotEmpty
()
?:
false
image_star_indicator
.
isVisible
=
it
.
starred
?.
isNotEmpty
()
?:
false
}
}
if
(
data
.
unread
==
null
)
{
if
(
data
.
unread
==
null
)
{
read_receipt_view
.
isVisible
=
false
read_receipt_view
.
isVisible
=
false
}
else
{
}
else
{
...
...
app/src/main/java/chat/rocket/android/chatroom/ui/ChatRoomFragment.kt
View file @
ec005ba9
...
@@ -12,15 +12,14 @@ import android.text.SpannableStringBuilder
...
@@ -12,15 +12,14 @@ import android.text.SpannableStringBuilder
import
android.view.KeyEvent
import
android.view.KeyEvent
import
android.view.LayoutInflater
import
android.view.LayoutInflater
import
android.view.Menu
import
android.view.Menu
import
android.view.MenuInflater
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
android.widget.ImageView
import
android.widget.Button
import
android.widget.Button
import
android.widget.EditText
import
android.widget.EditText
import
android.widget.TextView
import
android.widget.FrameLayout
import
android.widget.FrameLayout
import
android.widget.ImageView
import
android.widget.TextView
import
androidx.annotation.DrawableRes
import
androidx.annotation.DrawableRes
import
androidx.core.text.bold
import
androidx.core.text.bold
import
androidx.core.view.isVisible
import
androidx.core.view.isVisible
...
@@ -53,9 +52,9 @@ import chat.rocket.android.emoji.EmojiParser
...
@@ -53,9 +52,9 @@ import chat.rocket.android.emoji.EmojiParser
import
chat.rocket.android.emoji.EmojiPickerPopup
import
chat.rocket.android.emoji.EmojiPickerPopup
import
chat.rocket.android.emoji.EmojiReactionListener
import
chat.rocket.android.emoji.EmojiReactionListener
import
chat.rocket.android.helper.EndlessRecyclerViewScrollListener
import
chat.rocket.android.helper.EndlessRecyclerViewScrollListener
import
chat.rocket.android.helper.ImageHelper
import
chat.rocket.android.helper.KeyboardHelper
import
chat.rocket.android.helper.KeyboardHelper
import
chat.rocket.android.helper.MessageParser
import
chat.rocket.android.helper.MessageParser
import
chat.rocket.android.helper.ImageHelper
import
chat.rocket.android.util.extension.asObservable
import
chat.rocket.android.util.extension.asObservable
import
chat.rocket.android.util.extensions.circularRevealOrUnreveal
import
chat.rocket.android.util.extensions.circularRevealOrUnreveal
import
chat.rocket.android.util.extensions.fadeIn
import
chat.rocket.android.util.extensions.fadeIn
...
@@ -296,24 +295,42 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
...
@@ -296,24 +295,42 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
adapter
.
clearData
()
adapter
.
clearData
()
}
}
// track the message sent immediately after the current message
if
(
dataSet
.
isNotEmpty
())
{
var
prevMessageUiModel
:
MessageUiModel
?
=
null
var
prevMsgModel
=
dataSet
[
0
]
// track the message sent immediately after the current message
var
prevMessageUiModel
:
MessageUiModel
?
=
null
// Loop over received messages to determine first unread
// Checking for all messages to assign true to the required showDayMaker
for
(
i
in
dataSet
.
indices
)
{
// Loop over received messages to determine first unread
val
msgModel
=
dataSet
[
i
]
var
firstUnread
=
false
for
(
i
in
dataSet
.
indices
)
{
val
msgModel
=
dataSet
[
i
]
if
(
msgModel
is
MessageUiModel
)
{
if
(
i
>
0
)
{
val
msg
=
msgModel
.
rawData
prevMsgModel
=
dataSet
[
i
-
1
]
if
(
msg
.
timestamp
<
chatRoomLastSeen
)
{
}
// This message was sent before the last seen of the room. Hence, it was seen.
// if there is a message after (below) this, mark it firstUnread.
val
currentDayMarkerText
=
msgModel
.
currentDayMarkerText
if
(
prevMessageUiModel
!=
null
)
{
val
previousDayMarkerText
=
prevMsgModel
.
currentDayMarkerText
prevMessageUiModel
.
isFirstUnread
=
true
println
(
"$previousDayMarkerText then $currentDayMarkerText"
)
if
(
previousDayMarkerText
!=
currentDayMarkerText
)
{
prevMsgModel
.
showDayMarker
=
true
}
if
(!
firstUnread
&&
msgModel
is
MessageUiModel
)
{
val
msg
=
msgModel
.
rawData
if
(
msg
.
timestamp
<
chatRoomLastSeen
)
{
// This message was sent before the last seen of the room. Hence, it was seen.
// if there is a message after (below) this, mark it firstUnread.
if
(
prevMessageUiModel
!=
null
)
{
prevMessageUiModel
.
isFirstUnread
=
true
}
// Found first unread message.
firstUnread
=
true
}
}
break
prevMessageUiModel
=
msgModel
}
}
prevMessageUiModel
=
msgModel
}
}
}
}
...
@@ -428,7 +445,7 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
...
@@ -428,7 +445,7 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
}
else
{
}
else
{
if
(
dy
<
0
&&
!
button_fab
.
isVisible
)
{
if
(
dy
<
0
&&
!
button_fab
.
isVisible
)
{
button_fab
.
show
()
button_fab
.
show
()
if
(
newMessageCount
!=
0
)
text_count
.
isVisible
=
true
if
(
newMessageCount
!=
0
)
text_count
.
isVisible
=
true
}
}
}
}
}
}
...
@@ -487,14 +504,13 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
...
@@ -487,14 +504,13 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
if
(
isMessageReceived
&&
button_fab
.
isVisible
)
{
if
(
isMessageReceived
&&
button_fab
.
isVisible
)
{
newMessageCount
++
newMessageCount
++
if
(
newMessageCount
<=
99
)
if
(
newMessageCount
<=
99
)
text_count
.
text
=
newMessageCount
.
toString
()
text_count
.
text
=
newMessageCount
.
toString
()
else
else
text_count
.
text
=
"99+"
text_count
.
text
=
"99+"
text_count
.
isVisible
=
true
text_count
.
isVisible
=
true
}
}
else
if
(!
button_fab
.
isVisible
)
else
if
(!
button_fab
.
isVisible
)
recycler_view
.
scrollToPosition
(
0
)
recycler_view
.
scrollToPosition
(
0
)
verticalScrollOffset
.
set
(
0
)
verticalScrollOffset
.
set
(
0
)
empty_chat_view
.
isVisible
=
adapter
.
itemCount
==
0
empty_chat_view
.
isVisible
=
adapter
.
itemCount
==
0
...
@@ -883,7 +899,7 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
...
@@ -883,7 +899,7 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
clearMessageComposition
(
false
)
clearMessageComposition
(
false
)
if
(
text_message
.
textContent
.
isEmpty
())
{
if
(
text_message
.
textContent
.
isEmpty
())
{
KeyboardHelper
.
showSoftKeyboard
(
text_message
)
KeyboardHelper
.
showSoftKeyboard
(
text_message
)
}
}
}
}
}
}
...
...
app/src/main/java/chat/rocket/android/chatroom/uimodel/AudioAttachmentUiModel.kt
View file @
ec005ba9
...
@@ -16,7 +16,9 @@ data class AudioAttachmentUiModel(
...
@@ -16,7 +16,9 @@ data class AudioAttachmentUiModel(
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
showDayMarker
:
Boolean
)
:
BaseFileAttachmentUiModel
<
AudioAttachment
>
{
)
:
BaseFileAttachmentUiModel
<
AudioAttachment
>
{
override
val
viewType
:
Int
override
val
viewType
:
Int
get
()
=
BaseUiModel
.
ViewType
.
AUDIO_ATTACHMENT
.
viewType
get
()
=
BaseUiModel
.
ViewType
.
AUDIO_ATTACHMENT
.
viewType
...
...
app/src/main/java/chat/rocket/android/chatroom/uimodel/AuthorAttachmentUiModel.kt
View file @
ec005ba9
...
@@ -5,20 +5,22 @@ import chat.rocket.core.model.Message
...
@@ -5,20 +5,22 @@ import chat.rocket.core.model.Message
import
chat.rocket.core.model.attachment.AuthorAttachment
import
chat.rocket.core.model.attachment.AuthorAttachment
data class
AuthorAttachmentUiModel
(
data class
AuthorAttachmentUiModel
(
override
val
attachmentUrl
:
String
,
override
val
attachmentUrl
:
String
,
val
id
:
Long
,
val
id
:
Long
,
val
name
:
CharSequence
?,
val
name
:
CharSequence
?,
val
icon
:
String
?,
val
icon
:
String
?,
val
fields
:
CharSequence
?,
val
fields
:
CharSequence
?,
override
val
message
:
Message
,
override
val
message
:
Message
,
override
val
rawData
:
AuthorAttachment
,
override
val
rawData
:
AuthorAttachment
,
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
showDayMarker
:
Boolean
)
:
BaseAttachmentUiModel
<
AuthorAttachment
>
{
)
:
BaseAttachmentUiModel
<
AuthorAttachment
>
{
override
val
viewType
:
Int
override
val
viewType
:
Int
get
()
=
BaseUiModel
.
ViewType
.
AUTHOR_ATTACHMENT
.
viewType
get
()
=
BaseUiModel
.
ViewType
.
AUTHOR_ATTACHMENT
.
viewType
...
...
app/src/main/java/chat/rocket/android/chatroom/uimodel/BaseUiModel.kt
View file @
ec005ba9
...
@@ -14,6 +14,8 @@ interface BaseUiModel<out T> {
...
@@ -14,6 +14,8 @@ interface BaseUiModel<out T> {
var
preview
:
Message
?
var
preview
:
Message
?
var
isTemporary
:
Boolean
var
isTemporary
:
Boolean
var
unread
:
Boolean
?
var
unread
:
Boolean
?
var
currentDayMarkerText
:
String
var
showDayMarker
:
Boolean
var
menuItemsToHide
:
MutableList
<
Int
>
var
menuItemsToHide
:
MutableList
<
Int
>
enum
class
ViewType
(
val
viewType
:
Int
)
{
enum
class
ViewType
(
val
viewType
:
Int
)
{
...
...
app/src/main/java/chat/rocket/android/chatroom/uimodel/ColorAttachmentUiModel.kt
View file @
ec005ba9
...
@@ -5,19 +5,21 @@ import chat.rocket.core.model.Message
...
@@ -5,19 +5,21 @@ import chat.rocket.core.model.Message
import
chat.rocket.core.model.attachment.ColorAttachment
import
chat.rocket.core.model.attachment.ColorAttachment
data class
ColorAttachmentUiModel
(
data class
ColorAttachmentUiModel
(
override
val
attachmentUrl
:
String
,
override
val
attachmentUrl
:
String
,
val
id
:
Long
,
val
id
:
Long
,
val
color
:
Int
,
val
color
:
Int
,
val
text
:
CharSequence
,
val
text
:
CharSequence
,
override
val
message
:
Message
,
override
val
message
:
Message
,
override
val
rawData
:
ColorAttachment
,
override
val
rawData
:
ColorAttachment
,
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
?,
override
var
unread
:
Boolean
?,
override
var
menuItemsToHide
:
MutableList
<
Int
>
=
mutableListOf
()
override
var
menuItemsToHide
:
MutableList
<
Int
>
=
mutableListOf
(),
override
var
currentDayMarkerText
:
String
,
override
var
showDayMarker
:
Boolean
)
:
BaseAttachmentUiModel
<
ColorAttachment
>
{
)
:
BaseAttachmentUiModel
<
ColorAttachment
>
{
override
val
viewType
:
Int
override
val
viewType
:
Int
get
()
=
BaseUiModel
.
ViewType
.
COLOR_ATTACHMENT
.
viewType
get
()
=
BaseUiModel
.
ViewType
.
COLOR_ATTACHMENT
.
viewType
...
...
app/src/main/java/chat/rocket/android/chatroom/uimodel/GenericFileAttachmentUiModel.kt
View file @
ec005ba9
...
@@ -5,18 +5,20 @@ import chat.rocket.core.model.Message
...
@@ -5,18 +5,20 @@ import chat.rocket.core.model.Message
import
chat.rocket.core.model.attachment.GenericFileAttachment
import
chat.rocket.core.model.attachment.GenericFileAttachment
data class
GenericFileAttachmentUiModel
(
data class
GenericFileAttachmentUiModel
(
override
val
message
:
Message
,
override
val
message
:
Message
,
override
val
rawData
:
GenericFileAttachment
,
override
val
rawData
:
GenericFileAttachment
,
override
val
messageId
:
String
,
override
val
messageId
:
String
,
override
val
attachmentUrl
:
String
,
override
val
attachmentUrl
:
String
,
override
val
attachmentTitle
:
CharSequence
,
override
val
attachmentTitle
:
CharSequence
,
override
val
id
:
Long
,
override
val
id
:
Long
,
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
showDayMarker
:
Boolean
)
:
BaseFileAttachmentUiModel
<
GenericFileAttachment
>
{
)
:
BaseFileAttachmentUiModel
<
GenericFileAttachment
>
{
override
val
viewType
:
Int
override
val
viewType
:
Int
get
()
=
BaseUiModel
.
ViewType
.
GENERIC_FILE_ATTACHMENT
.
viewType
get
()
=
BaseUiModel
.
ViewType
.
GENERIC_FILE_ATTACHMENT
.
viewType
...
...
app/src/main/java/chat/rocket/android/chatroom/uimodel/ImageAttachmentUiModel.kt
View file @
ec005ba9
...
@@ -5,20 +5,22 @@ import chat.rocket.core.model.Message
...
@@ -5,20 +5,22 @@ import chat.rocket.core.model.Message
import
chat.rocket.core.model.attachment.ImageAttachment
import
chat.rocket.core.model.attachment.ImageAttachment
data class
ImageAttachmentUiModel
(
data class
ImageAttachmentUiModel
(
override
val
message
:
Message
,
override
val
message
:
Message
,
override
val
rawData
:
ImageAttachment
,
override
val
rawData
:
ImageAttachment
,
override
val
messageId
:
String
,
override
val
messageId
:
String
,
override
val
attachmentUrl
:
String
,
override
val
attachmentUrl
:
String
,
override
val
attachmentTitle
:
CharSequence
,
override
val
attachmentTitle
:
CharSequence
,
val
attachmentText
:
String
?,
val
attachmentText
:
String
?,
val
attachmentDescription
:
String
?,
val
attachmentDescription
:
String
?,
override
val
id
:
Long
,
override
val
id
:
Long
,
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
showDayMarker
:
Boolean
)
:
BaseFileAttachmentUiModel
<
ImageAttachment
>
{
)
:
BaseFileAttachmentUiModel
<
ImageAttachment
>
{
override
val
viewType
:
Int
override
val
viewType
:
Int
get
()
=
BaseUiModel
.
ViewType
.
IMAGE_ATTACHMENT
.
viewType
get
()
=
BaseUiModel
.
ViewType
.
IMAGE_ATTACHMENT
.
viewType
...
...
app/src/main/java/chat/rocket/android/chatroom/uimodel/MessageAttachmentUiModel.kt
View file @
ec005ba9
...
@@ -4,20 +4,22 @@ import chat.rocket.android.R
...
@@ -4,20 +4,22 @@ import chat.rocket.android.R
import
chat.rocket.core.model.Message
import
chat.rocket.core.model.Message
data class
MessageAttachmentUiModel
(
data class
MessageAttachmentUiModel
(
override
val
message
:
Message
,
override
val
message
:
Message
,
override
val
rawData
:
Message
,
override
val
rawData
:
Message
,
override
val
messageId
:
String
,
override
val
messageId
:
String
,
var
senderName
:
String
?,
var
senderName
:
String
?,
val
time
:
CharSequence
?,
val
time
:
CharSequence
?,
val
content
:
CharSequence
,
val
content
:
CharSequence
,
val
isPinned
:
Boolean
,
val
isPinned
:
Boolean
,
override
var
reactions
:
List
<
ReactionUiModel
>,
override
var
reactions
:
List
<
ReactionUiModel
>,
override
var
nextDownStreamMessage
:
BaseUiModel
<*>?
=
null
,
override
var
nextDownStreamMessage
:
BaseUiModel
<*>?
=
null
,
var
messageLink
:
String
?
=
null
,
var
messageLink
:
String
?
=
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
showDayMarker
:
Boolean
)
:
BaseUiModel
<
Message
>
{
)
:
BaseUiModel
<
Message
>
{
override
val
viewType
:
Int
override
val
viewType
:
Int
get
()
=
BaseUiModel
.
ViewType
.
MESSAGE_ATTACHMENT
.
viewType
get
()
=
BaseUiModel
.
ViewType
.
MESSAGE_ATTACHMENT
.
viewType
...
...
app/src/main/java/chat/rocket/android/chatroom/uimodel/MessageReplyUiModel.kt
View file @
ec005ba9
...
@@ -13,7 +13,9 @@ data class MessageReplyUiModel(
...
@@ -13,7 +13,9 @@ data class MessageReplyUiModel(
override
var
isTemporary
:
Boolean
=
false
,
override
var
isTemporary
:
Boolean
=
false
,
override
val
message
:
Message
,
override
val
message
:
Message
,
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
showDayMarker
:
Boolean
)
:
BaseUiModel
<
MessageReply
>
{
)
:
BaseUiModel
<
MessageReply
>
{
override
val
viewType
:
Int
override
val
viewType
:
Int
get
()
=
BaseUiModel
.
ViewType
.
MESSAGE_REPLY
.
viewType
get
()
=
BaseUiModel
.
ViewType
.
MESSAGE_REPLY
.
viewType
...
...
app/src/main/java/chat/rocket/android/chatroom/uimodel/MessageUiModel.kt
View file @
ec005ba9
...
@@ -12,6 +12,8 @@ data class MessageUiModel(
...
@@ -12,6 +12,8 @@ data class MessageUiModel(
override
val
senderName
:
CharSequence
,
override
val
senderName
:
CharSequence
,
override
val
content
:
CharSequence
,
override
val
content
:
CharSequence
,
override
val
isPinned
:
Boolean
,
override
val
isPinned
:
Boolean
,
override
var
currentDayMarkerText
:
String
,
override
var
showDayMarker
:
Boolean
,
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
,
...
...
app/src/main/java/chat/rocket/android/chatroom/uimodel/UiModelMapper.kt
View file @
ec005ba9
...
@@ -265,6 +265,10 @@ class UiModelMapper @Inject constructor(
...
@@ -265,6 +265,10 @@ class UiModelMapper @Inject constructor(
val
roomName
=
val
roomName
=
if
(
settings
.
useRealName
()
&&
name
!=
null
)
name
else
message
.
sender
?.
username
?:
""
if
(
settings
.
useRealName
()
&&
name
!=
null
)
name
else
message
.
sender
?.
username
?:
""
val
permalink
=
messageHelper
.
createPermalink
(
message
,
chatRoom
)
val
permalink
=
messageHelper
.
createPermalink
(
message
,
chatRoom
)
val
localDateTime
=
DateTimeHelper
.
getLocalDateTime
(
message
.
timestamp
)
val
dayMarkerText
=
DateTimeHelper
.
getFormattedDateForMessages
(
localDateTime
,
context
)
return
MessageReplyUiModel
(
return
MessageReplyUiModel
(
messageId
=
message
.
id
,
messageId
=
message
.
id
,
isTemporary
=
false
,
isTemporary
=
false
,
...
@@ -273,7 +277,9 @@ class UiModelMapper @Inject constructor(
...
@@ -273,7 +277,9 @@ class UiModelMapper @Inject constructor(
preview
=
mapMessagePreview
(
message
),
preview
=
mapMessagePreview
(
message
),
rawData
=
MessageReply
(
roomName
=
roomName
,
permalink
=
permalink
),
rawData
=
MessageReply
(
roomName
=
roomName
,
permalink
=
permalink
),
nextDownStreamMessage
=
null
,
nextDownStreamMessage
=
null
,
unread
=
message
.
unread
unread
=
message
.
unread
,
currentDayMarkerText
=
dayMarkerText
,
showDayMarker
=
false
)
)
}
}
...
@@ -285,8 +291,12 @@ class UiModelMapper @Inject constructor(
...
@@ -285,8 +291,12 @@ class UiModelMapper @Inject constructor(
val
title
=
url
.
meta
?.
title
val
title
=
url
.
meta
?.
title
val
description
=
url
.
meta
?.
description
val
description
=
url
.
meta
?.
description
val
localDateTime
=
DateTimeHelper
.
getLocalDateTime
(
message
.
timestamp
)
val
dayMarkerText
=
DateTimeHelper
.
getFormattedDateForMessages
(
localDateTime
,
context
)
return
UrlPreviewUiModel
(
message
,
url
,
message
.
id
,
title
,
hostname
,
description
,
thumb
,
return
UrlPreviewUiModel
(
message
,
url
,
message
.
id
,
title
,
hostname
,
description
,
thumb
,
getReactions
(
message
),
preview
=
message
.
copy
(
message
=
url
.
url
),
unread
=
message
.
unread
)
getReactions
(
message
),
preview
=
message
.
copy
(
message
=
url
.
url
),
unread
=
message
.
unread
,
showDayMarker
=
false
,
currentDayMarkerText
=
dayMarkerText
)
}
}
private
fun
mapAttachment
(
message
:
Message
,
attachment
:
Attachment
):
BaseUiModel
<
*
>?
{
private
fun
mapAttachment
(
message
:
Message
,
attachment
:
Attachment
):
BaseUiModel
<
*
>?
{
...
@@ -304,10 +314,14 @@ class UiModelMapper @Inject constructor(
...
@@ -304,10 +314,14 @@ class UiModelMapper @Inject constructor(
val
content
=
stripMessageQuotes
(
message
)
val
content
=
stripMessageQuotes
(
message
)
val
id
=
attachmentId
(
message
,
attachment
)
val
id
=
attachmentId
(
message
,
attachment
)
val
localDateTime
=
DateTimeHelper
.
getLocalDateTime
(
message
.
timestamp
)
val
dayMarkerText
=
DateTimeHelper
.
getFormattedDateForMessages
(
localDateTime
,
context
)
ColorAttachmentUiModel
(
attachmentUrl
=
url
,
id
=
id
,
color
=
color
.
color
,
ColorAttachmentUiModel
(
attachmentUrl
=
url
,
id
=
id
,
color
=
color
.
color
,
text
=
text
,
message
=
message
,
rawData
=
attachment
,
text
=
text
,
message
=
message
,
rawData
=
attachment
,
messageId
=
message
.
id
,
reactions
=
getReactions
(
message
),
messageId
=
message
.
id
,
reactions
=
getReactions
(
message
),
preview
=
message
.
copy
(
message
=
content
.
message
),
unread
=
message
.
unread
)
preview
=
message
.
copy
(
message
=
content
.
message
),
unread
=
message
.
unread
,
showDayMarker
=
false
,
currentDayMarkerText
=
dayMarkerText
)
}
}
}
}
...
@@ -332,10 +346,14 @@ class UiModelMapper @Inject constructor(
...
@@ -332,10 +346,14 @@ class UiModelMapper @Inject constructor(
}
}
val
id
=
attachmentId
(
message
,
attachment
)
val
id
=
attachmentId
(
message
,
attachment
)
val
localDateTime
=
DateTimeHelper
.
getLocalDateTime
(
message
.
timestamp
)
val
dayMarkerText
=
DateTimeHelper
.
getFormattedDateForMessages
(
localDateTime
,
context
)
AuthorAttachmentUiModel
(
attachmentUrl
=
url
,
id
=
id
,
name
=
authorName
,
AuthorAttachmentUiModel
(
attachmentUrl
=
url
,
id
=
id
,
name
=
authorName
,
icon
=
authorIcon
,
fields
=
fieldsText
,
message
=
message
,
rawData
=
attachment
,
icon
=
authorIcon
,
fields
=
fieldsText
,
message
=
message
,
rawData
=
attachment
,
messageId
=
message
.
id
,
reactions
=
getReactions
(
message
),
messageId
=
message
.
id
,
reactions
=
getReactions
(
message
),
preview
=
message
.
copy
(
message
=
content
.
message
),
unread
=
message
.
unread
)
preview
=
message
.
copy
(
message
=
content
.
message
),
unread
=
message
.
unread
,
showDayMarker
=
false
,
currentDayMarkerText
=
dayMarkerText
)
}
}
}
}
...
@@ -349,11 +367,17 @@ class UiModelMapper @Inject constructor(
...
@@ -349,11 +367,17 @@ class UiModelMapper @Inject constructor(
is
GenericFileAttachment
->
context
.
getString
(
R
.
string
.
msg_preview_file
)
is
GenericFileAttachment
->
context
.
getString
(
R
.
string
.
msg_preview_file
)
else
->
attachment
.
text
?:
""
else
->
attachment
.
text
?:
""
}
}
val
localDateTime
=
DateTimeHelper
.
getLocalDateTime
(
message
.
timestamp
)
val
dayMarkerText
=
DateTimeHelper
.
getFormattedDateForMessages
(
localDateTime
,
context
)
val
content
=
stripMessageQuotes
(
message
)
val
content
=
stripMessageQuotes
(
message
)
return
MessageAttachmentUiModel
(
message
=
content
,
rawData
=
message
,
return
MessageAttachmentUiModel
(
message
=
content
,
rawData
=
message
,
messageId
=
message
.
id
,
time
=
time
,
senderName
=
attachmentAuthor
,
messageId
=
message
.
id
,
time
=
time
,
senderName
=
attachmentAuthor
,
content
=
attachmentText
,
isPinned
=
message
.
pinned
,
reactions
=
getReactions
(
message
),
content
=
attachmentText
,
isPinned
=
message
.
pinned
,
reactions
=
getReactions
(
message
),
preview
=
message
.
copy
(
message
=
content
.
message
),
unread
=
message
.
unread
)
preview
=
message
.
copy
(
message
=
content
.
message
),
unread
=
message
.
unread
,
currentDayMarkerText
=
dayMarkerText
,
showDayMarker
=
false
)
}
}
private
fun
mapFileAttachment
(
message
:
Message
,
attachment
:
FileAttachment
):
BaseUiModel
<
*
>?
{
private
fun
mapFileAttachment
(
message
:
Message
,
attachment
:
FileAttachment
):
BaseUiModel
<
*
>?
{
...
@@ -362,19 +386,27 @@ class UiModelMapper @Inject constructor(
...
@@ -362,19 +386,27 @@ class UiModelMapper @Inject constructor(
val
attachmentText
=
attachmentText
(
attachment
)
val
attachmentText
=
attachmentText
(
attachment
)
val
attachmentDescription
=
attachmentDescription
(
attachment
)
val
attachmentDescription
=
attachmentDescription
(
attachment
)
val
id
=
attachmentId
(
message
,
attachment
)
val
id
=
attachmentId
(
message
,
attachment
)
val
localDateTime
=
DateTimeHelper
.
getLocalDateTime
(
message
.
timestamp
)
val
dayMarkerText
=
DateTimeHelper
.
getFormattedDateForMessages
(
localDateTime
,
context
)
return
when
(
attachment
)
{
return
when
(
attachment
)
{
is
ImageAttachment
->
ImageAttachmentUiModel
(
message
,
attachment
,
message
.
id
,
is
ImageAttachment
->
ImageAttachmentUiModel
(
message
,
attachment
,
message
.
id
,
attachmentUrl
,
attachmentTitle
,
attachmentText
,
attachmentDescription
,
id
,
getReactions
(
message
),
attachmentUrl
,
attachmentTitle
,
attachmentText
,
attachmentDescription
,
id
,
getReactions
(
message
),
preview
=
message
.
copy
(
message
=
context
.
getString
(
R
.
string
.
msg_preview_photo
)),
unread
=
message
.
unread
)
preview
=
message
.
copy
(
message
=
context
.
getString
(
R
.
string
.
msg_preview_photo
)),
unread
=
message
.
unread
,
showDayMarker
=
false
,
currentDayMarkerText
=
dayMarkerText
)
is
VideoAttachment
->
VideoAttachmentUiModel
(
message
,
attachment
,
message
.
id
,
is
VideoAttachment
->
VideoAttachmentUiModel
(
message
,
attachment
,
message
.
id
,
attachmentUrl
,
attachmentTitle
,
id
,
getReactions
(
message
),
attachmentUrl
,
attachmentTitle
,
id
,
getReactions
(
message
),
preview
=
message
.
copy
(
message
=
context
.
getString
(
R
.
string
.
msg_preview_video
)),
unread
=
message
.
unread
)
preview
=
message
.
copy
(
message
=
context
.
getString
(
R
.
string
.
msg_preview_video
)),
unread
=
message
.
unread
,
showDayMarker
=
false
,
currentDayMarkerText
=
dayMarkerText
)
is
AudioAttachment
->
AudioAttachmentUiModel
(
message
,
attachment
,
message
.
id
,
is
AudioAttachment
->
AudioAttachmentUiModel
(
message
,
attachment
,
message
.
id
,
attachmentUrl
,
attachmentTitle
,
id
,
getReactions
(
message
),
attachmentUrl
,
attachmentTitle
,
id
,
getReactions
(
message
),
preview
=
message
.
copy
(
message
=
context
.
getString
(
R
.
string
.
msg_preview_audio
)),
unread
=
message
.
unread
)
preview
=
message
.
copy
(
message
=
context
.
getString
(
R
.
string
.
msg_preview_audio
)),
unread
=
message
.
unread
,
showDayMarker
=
false
,
currentDayMarkerText
=
dayMarkerText
)
is
GenericFileAttachment
->
GenericFileAttachmentUiModel
(
message
,
attachment
,
is
GenericFileAttachment
->
GenericFileAttachmentUiModel
(
message
,
attachment
,
message
.
id
,
attachmentUrl
,
attachmentTitle
,
id
,
getReactions
(
message
),
message
.
id
,
attachmentUrl
,
attachmentTitle
,
id
,
getReactions
(
message
),
preview
=
message
.
copy
(
message
=
context
.
getString
(
R
.
string
.
msg_preview_file
)),
unread
=
message
.
unread
)
preview
=
message
.
copy
(
message
=
context
.
getString
(
R
.
string
.
msg_preview_file
)),
unread
=
message
.
unread
,
showDayMarker
=
false
,
currentDayMarkerText
=
dayMarkerText
)
else
->
null
else
->
null
}
}
}
}
...
@@ -434,11 +466,15 @@ class UiModelMapper @Inject constructor(
...
@@ -434,11 +466,15 @@ class UiModelMapper @Inject constructor(
null
null
}
}
val
localDateTime
=
DateTimeHelper
.
getLocalDateTime
(
message
.
timestamp
)
val
dayMarkerText
=
DateTimeHelper
.
getFormattedDateForMessages
(
localDateTime
,
context
)
val
content
=
getContent
(
stripMessageQuotes
(
message
))
val
content
=
getContent
(
stripMessageQuotes
(
message
))
MessageUiModel
(
message
=
stripMessageQuotes
(
message
),
rawData
=
message
,
MessageUiModel
(
message
=
stripMessageQuotes
(
message
),
rawData
=
message
,
messageId
=
message
.
id
,
avatar
=
avatar
!!
,
time
=
time
,
senderName
=
sender
,
messageId
=
message
.
id
,
avatar
=
avatar
!!
,
time
=
time
,
senderName
=
sender
,
content
=
content
,
isPinned
=
message
.
pinned
,
reactions
=
getReactions
(
message
),
content
=
content
,
isPinned
=
message
.
pinned
,
currentDayMarkerText
=
dayMarkerText
,
isFirstUnread
=
false
,
preview
=
preview
,
isTemporary
=
isTemp
,
unread
=
unread
)
showDayMarker
=
false
,
reactions
=
getReactions
(
message
),
isFirstUnread
=
false
,
preview
=
preview
,
isTemporary
=
isTemp
,
unread
=
unread
)
}
}
private
fun
mapMessagePreview
(
message
:
Message
):
Message
{
private
fun
mapMessagePreview
(
message
:
Message
):
Message
{
...
...
app/src/main/java/chat/rocket/android/chatroom/uimodel/UrlPreviewUiModel.kt
View file @
ec005ba9
...
@@ -5,19 +5,21 @@ import chat.rocket.core.model.Message
...
@@ -5,19 +5,21 @@ import chat.rocket.core.model.Message
import
chat.rocket.core.model.url.Url
import
chat.rocket.core.model.url.Url
data class
UrlPreviewUiModel
(
data class
UrlPreviewUiModel
(
override
val
message
:
Message
,
override
val
message
:
Message
,
override
val
rawData
:
Url
,
override
val
rawData
:
Url
,
override
val
messageId
:
String
,
override
val
messageId
:
String
,
val
title
:
CharSequence
?,
val
title
:
CharSequence
?,
val
hostname
:
String
,
val
hostname
:
String
,
val
description
:
CharSequence
?,
val
description
:
CharSequence
?,
val
thumbUrl
:
String
?,
val
thumbUrl
:
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
showDayMarker
:
Boolean
)
:
BaseUiModel
<
Url
>
{
)
:
BaseUiModel
<
Url
>
{
override
val
viewType
:
Int
override
val
viewType
:
Int
get
()
=
BaseUiModel
.
ViewType
.
URL_PREVIEW
.
viewType
get
()
=
BaseUiModel
.
ViewType
.
URL_PREVIEW
.
viewType
...
...
app/src/main/java/chat/rocket/android/chatroom/uimodel/VideoAttachmentUiModel.kt
View file @
ec005ba9
...
@@ -16,7 +16,9 @@ data class VideoAttachmentUiModel(
...
@@ -16,7 +16,9 @@ data class VideoAttachmentUiModel(
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
showDayMarker
:
Boolean
)
:
BaseFileAttachmentUiModel
<
VideoAttachment
>
{
)
:
BaseFileAttachmentUiModel
<
VideoAttachment
>
{
override
val
viewType
:
Int
override
val
viewType
:
Int
get
()
=
BaseUiModel
.
ViewType
.
VIDEO_ATTACHMENT
.
viewType
get
()
=
BaseUiModel
.
ViewType
.
VIDEO_ATTACHMENT
.
viewType
...
...
app/src/main/res/layout/activity_add_members.xml
View file @
ec005ba9
...
@@ -9,6 +9,8 @@
...
@@ -9,6 +9,8 @@
layout=
"@layout/layout_toolbar"
layout=
"@layout/layout_toolbar"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toTopOf=
"parent"
/>
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout
...
@@ -51,9 +53,11 @@
...
@@ -51,9 +53,11 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:backgroundTint=
"@android:color/transparent"
android:backgroundTint=
"@android:color/transparent"
android:hint=
"@string/msg_search"
android:hint=
"@string/msg_search"
android:paddingBottom=
"8dp"
android:paddingEnd=
"8dp"
android:paddingStart=
"8dp"
android:paddingStart=
"8dp"
android:paddingEnd=
"8dp"
android:paddingBottom=
"8dp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/members_chips"
/>
app:layout_constraintTop_toBottomOf=
"@id/members_chips"
/>
<View
<View
...
@@ -61,6 +65,8 @@
...
@@ -61,6 +65,8 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"0.2dp"
android:layout_height=
"0.2dp"
android:background=
"@color/colorDividerMessageComposer"
android:background=
"@color/colorDividerMessageComposer"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/text_search_member"
/>
app:layout_constraintTop_toBottomOf=
"@id/text_search_member"
/>
<androidx.recyclerview.widget.RecyclerView
<androidx.recyclerview.widget.RecyclerView
...
@@ -69,6 +75,8 @@
...
@@ -69,6 +75,8 @@
android:layout_height=
"0dp"
android:layout_height=
"0dp"
android:scrollbars=
"vertical"
android:scrollbars=
"vertical"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/separator_1"
/>
app:layout_constraintTop_toBottomOf=
"@id/separator_1"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/avatar_profile.xml
View file @
ec005ba9
...
@@ -10,8 +10,10 @@
...
@@ -10,8 +10,10 @@
android:layout_width=
"120dp"
android:layout_width=
"120dp"
android:layout_height=
"120dp"
android:layout_height=
"120dp"
android:layout_centerHorizontal=
"true"
android:layout_centerHorizontal=
"true"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:roundedCornerRadius=
"2dp"
/>
app:roundedCornerRadius=
"2dp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_authentication_log_in.xml
View file @
ec005ba9
...
@@ -59,9 +59,9 @@
...
@@ -59,9 +59,9 @@
<Button
<Button
android:id=
"@+id/button_cas"
android:id=
"@+id/button_cas"
style=
"@style/Authentication.Button"
style=
"@style/Authentication.Button"
android:layout_marginEnd=
"@dimen/screen_edge_left_and_right_margins"
android:layout_marginStart=
"@dimen/screen_edge_left_and_right_margins"
android:layout_marginStart=
"@dimen/screen_edge_left_and_right_margins"
android:layout_marginTop=
"16dp"
android:layout_marginTop=
"16dp"
android:layout_marginEnd=
"@dimen/screen_edge_left_and_right_margins"
android:text=
"@string/action_login_or_sign_up"
android:text=
"@string/action_login_or_sign_up"
android:visibility=
"gone"
android:visibility=
"gone"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
...
@@ -73,9 +73,9 @@
...
@@ -73,9 +73,9 @@
android:id=
"@+id/text_new_to_rocket_chat"
android:id=
"@+id/text_new_to_rocket_chat"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"@dimen/screen_edge_left_and_right_margins"
android:layout_marginStart=
"@dimen/screen_edge_left_and_right_margins"
android:layout_marginStart=
"@dimen/screen_edge_left_and_right_margins"
android:layout_marginTop=
"16dp"
android:layout_marginTop=
"16dp"
android:layout_marginEnd=
"@dimen/screen_edge_left_and_right_margins"
android:gravity=
"center"
android:gravity=
"center"
android:textColorLink=
"@color/colorAccent"
android:textColorLink=
"@color/colorAccent"
android:visibility=
"gone"
android:visibility=
"gone"
...
@@ -88,9 +88,9 @@
...
@@ -88,9 +88,9 @@
android:id=
"@+id/text_forgot_your_password"
android:id=
"@+id/text_forgot_your_password"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"@dimen/screen_edge_left_and_right_margins"
android:layout_marginStart=
"@dimen/screen_edge_left_and_right_margins"
android:layout_marginStart=
"@dimen/screen_edge_left_and_right_margins"
android:layout_marginTop=
"8dp"
android:layout_marginTop=
"8dp"
android:layout_marginEnd=
"@dimen/screen_edge_left_and_right_margins"
android:gravity=
"center"
android:gravity=
"center"
android:textColorLink=
"@color/colorAccent"
android:textColorLink=
"@color/colorAccent"
android:visibility=
"gone"
android:visibility=
"gone"
...
@@ -115,14 +115,14 @@
...
@@ -115,14 +115,14 @@
android:id=
"@+id/social_accounts_container"
android:id=
"@+id/social_accounts_container"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"@dimen/screen_edge_left_and_right_margins"
android:layout_marginStart=
"@dimen/screen_edge_left_and_right_margins"
android:layout_marginStart=
"@dimen/screen_edge_left_and_right_margins"
android:layout_marginTop=
"20dp"
android:layout_marginTop=
"20dp"
android:layout_marginEnd=
"@dimen/screen_edge_left_and_right_margins"
android:background=
"@color/colorPrimaryDark"
android:background=
"@color/colorPrimaryDark"
android:gravity=
"center"
android:gravity=
"center"
android:orientation=
"vertical"
android:orientation=
"vertical"
android:paddingBottom=
"32dp"
android:paddingTop=
"@dimen/screen_edge_left_and_right_margins"
android:paddingTop=
"@dimen/screen_edge_left_and_right_margins"
android:paddingBottom=
"32dp"
android:visibility=
"gone"
android:visibility=
"gone"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
...
@@ -242,7 +242,9 @@
...
@@ -242,7 +242,9 @@
style=
"@style/Authentication.Button"
style=
"@style/Authentication.Button"
android:text=
"@string/title_log_in"
android:text=
"@string/title_log_in"
android:visibility=
"gone"
android:visibility=
"gone"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</ScrollView>
\ No newline at end of file
app/src/main/res/layout/fragment_chat_room.xml
View file @
ec005ba9
...
@@ -12,9 +12,9 @@
...
@@ -12,9 +12,9 @@
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"0dp"
android:layout_height=
"0dp"
app:layout_constraintBottom_toTopOf=
"@id/text_typing_status"
app:layout_constraintBottom_toTopOf=
"@id/text_typing_status"
app:layout_constraintTop_toBottomOf=
"@+id/text_connection_status"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
>
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/text_connection_status"
>
<include
<include
android:id=
"@+id/layout_message_list"
android:id=
"@+id/layout_message_list"
...
@@ -68,25 +68,29 @@
...
@@ -68,25 +68,29 @@
android:id=
"@+id/empty_chat_view"
android:id=
"@+id/empty_chat_view"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
app:constraint_referenced_ids=
"image_chat_icon, text_chat_title, text_chat_description"
android:visibility=
"gone"
android:visibility=
"gone"
app:constraint_referenced_ids=
"image_chat_icon, text_chat_title, text_chat_description"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:visibility=
"visible"
/>
tools:visibility=
"visible"
/>
<chat.rocket.android.widget.autocompletion.ui.SuggestionsView
<chat.rocket.android.widget.autocompletion.ui.SuggestionsView
android:id=
"@+id/suggestions_view"
android:id=
"@+id/suggestions_view"
android:layout_width=
"
match_parent
"
android:layout_width=
"
0dp
"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"@color/suggestion_background_color"
android:background=
"@color/suggestion_background_color"
app:layout_constraintBottom_toTopOf=
"@id/layout_message_composer"
/>
app:layout_constraintBottom_toTopOf=
"@id/layout_message_composer"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
/>
<TextView
<TextView
android:id=
"@+id/text_typing_status"
android:id=
"@+id/text_typing_status"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"5dp"
android:layout_marginEnd=
"16dp"
android:layout_marginStart=
"16dp"
android:layout_marginStart=
"16dp"
android:layout_marginTop=
"16dp"
android:layout_marginTop=
"16dp"
android:layout_marginEnd=
"16dp"
android:layout_marginBottom=
"5dp"
android:maxLines=
"2"
android:maxLines=
"2"
android:visibility=
"gone"
android:visibility=
"gone"
app:layout_constraintBottom_toTopOf=
"@id/layout_message_composer"
app:layout_constraintBottom_toTopOf=
"@id/layout_message_composer"
...
@@ -95,30 +99,37 @@
...
@@ -95,30 +99,37 @@
<include
<include
android:id=
"@+id/layout_message_composer"
android:id=
"@+id/layout_message_composer"
layout=
"@layout/message_composer"
layout=
"@layout/message_composer"
android:layout_width=
"
match_parent
"
android:layout_width=
"
0dp
"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
/>
<View
<View
android:id=
"@+id/view_dim"
android:id=
"@+id/view_dim"
android:layout_width=
"
match_parent
"
android:layout_width=
"
0dp
"
android:layout_height=
"
match_parent
"
android:layout_height=
"
0dp
"
android:background=
"@color/colorDim"
android:background=
"@color/colorDim"
android:visibility=
"gone"
android:visibility=
"gone"
app:layout_constraintBottom_toTopOf=
"@id/layout_message_composer"
/>
app:layout_constraintBottom_toTopOf=
"@id/layout_message_composer"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<include
<include
android:id=
"@+id/layout_message_attachment_options"
android:id=
"@+id/layout_message_attachment_options"
layout=
"@layout/message_attachment_options"
layout=
"@layout/message_attachment_options"
android:layout_width=
"
match_parent
"
android:layout_width=
"
0dp
"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_margin=
"5dp"
android:layout_margin=
"5dp"
android:visibility=
"gone"
android:visibility=
"gone"
app:layout_constraintBottom_toTopOf=
"@id/layout_message_composer"
/>
app:layout_constraintBottom_toTopOf=
"@id/layout_message_composer"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
/>
<TextView
<TextView
android:id=
"@+id/text_connection_status"
android:id=
"@+id/text_connection_status"
android:layout_width=
"
match_parent
"
android:layout_width=
"
0dp
"
android:layout_height=
"32dp"
android:layout_height=
"32dp"
android:alpha=
"0"
android:alpha=
"0"
android:background=
"@color/colorPrimary"
android:background=
"@color/colorPrimary"
...
@@ -127,6 +138,8 @@
...
@@ -127,6 +138,8 @@
android:textAppearance=
"@style/TextAppearance.AppCompat.Body2"
android:textAppearance=
"@style/TextAppearance.AppCompat.Body2"
android:textColor=
"@color/colorWhite"
android:textColor=
"@color/colorWhite"
android:visibility=
"gone"
android:visibility=
"gone"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:alpha=
"1"
tools:alpha=
"1"
tools:text=
"connected"
tools:text=
"connected"
...
...
app/src/main/res/layout/fragment_create_channel.xml
View file @
ec005ba9
...
@@ -95,8 +95,8 @@
...
@@ -95,8 +95,8 @@
android:hint=
"@string/msg_channel_name"
android:hint=
"@string/msg_channel_name"
android:inputType=
"text"
android:inputType=
"text"
android:maxLines=
"1"
android:maxLines=
"1"
android:paddingEnd=
"10dp"
android:paddingStart=
"24dp"
android:paddingStart=
"24dp"
android:paddingEnd=
"10dp"
android:textSize=
"16sp"
android:textSize=
"16sp"
app:layout_constraintBottom_toBottomOf=
"@+id/image_channel_icon"
app:layout_constraintBottom_toBottomOf=
"@+id/image_channel_icon"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
...
@@ -120,8 +120,8 @@
...
@@ -120,8 +120,8 @@
android:hint=
"@string/msg_invite_members"
android:hint=
"@string/msg_invite_members"
android:inputType=
"text"
android:inputType=
"text"
android:maxLines=
"1"
android:maxLines=
"1"
android:paddingEnd=
"10dp"
android:paddingStart=
"24dp"
android:paddingStart=
"24dp"
android:paddingEnd=
"10dp"
android:textSize=
"16sp"
android:textSize=
"16sp"
app:layout_constraintBottom_toBottomOf=
"@+id/image_invite_member"
app:layout_constraintBottom_toBottomOf=
"@+id/image_invite_member"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
...
@@ -130,21 +130,27 @@
...
@@ -130,21 +130,27 @@
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/view_member_suggestion"
android:id=
"@+id/view_member_suggestion"
android:layout_width=
"
match_parent
"
android:layout_width=
"
0dp
"
android:layout_height=
"100dp"
android:layout_height=
"100dp"
android:layout_marginEnd=
"12dp"
android:layout_marginStart=
"12dp"
android:layout_marginStart=
"12dp"
android:layout_marginEnd=
"12dp"
android:background=
"@color/colorWhite"
android:background=
"@color/colorWhite"
android:elevation=
"2dp"
android:elevation=
"2dp"
android:orientation=
"vertical"
android:orientation=
"vertical"
android:visibility=
"gone"
android:visibility=
"gone"
app:layout_constraintBottom_toTopOf=
"@+id/text_invite_members"
>
app:layout_constraintBottom_toTopOf=
"@+id/text_invite_members"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
>
<androidx.recyclerview.widget.RecyclerView
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/recycler_view"
android:id=
"@+id/recycler_view"
android:layout_width=
"match_parent"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_height=
"0dp"
android:visibility=
"gone"
/>
android:visibility=
"gone"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<com.wang.avi.AVLoadingIndicatorView
<com.wang.avi.AVLoadingIndicatorView
android:id=
"@+id/view_member_suggestion_loading"
android:id=
"@+id/view_member_suggestion_loading"
...
@@ -173,11 +179,13 @@
...
@@ -173,11 +179,13 @@
<com.google.android.material.chip.ChipGroup
<com.google.android.material.chip.ChipGroup
android:id=
"@+id/chip_group_member"
android:id=
"@+id/chip_group_member"
style=
"@style/Widget.MaterialComponents.Chip.Entry"
style=
"@style/Widget.MaterialComponents.Chip.Entry"
android:layout_width=
"
match_parent
"
android:layout_width=
"
0dp
"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"16dp"
android:layout_marginTop=
"16dp"
android:visibility=
"gone"
android:visibility=
"gone"
app:chipSpacing=
"3dp"
app:chipSpacing=
"3dp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/text_invite_members"
/>
app:layout_constraintTop_toBottomOf=
"@+id/text_invite_members"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_favorite_messages.xml
View file @
ec005ba9
...
@@ -8,9 +8,13 @@
...
@@ -8,9 +8,13 @@
<androidx.recyclerview.widget.RecyclerView
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/recycler_view"
android:id=
"@+id/recycler_view"
android:layout_width=
"match_parent"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_height=
"0dp"
android:scrollbars=
"vertical"
/>
android:scrollbars=
"vertical"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<com.wang.avi.AVLoadingIndicatorView
<com.wang.avi.AVLoadingIndicatorView
android:id=
"@+id/view_loading"
android:id=
"@+id/view_loading"
...
@@ -72,6 +76,8 @@
...
@@ -72,6 +76,8 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:visibility=
"gone"
android:visibility=
"gone"
app:constraint_referenced_ids=
"text_no_favorite_messages_description,image_star,text_no_favorite_messages"
app:constraint_referenced_ids=
"text_no_favorite_messages_description,image_star,text_no_favorite_messages"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:visibility=
"visible"
/>
tools:visibility=
"visible"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_files.xml
View file @
ec005ba9
...
@@ -9,9 +9,13 @@
...
@@ -9,9 +9,13 @@
<androidx.recyclerview.widget.RecyclerView
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/recycler_view"
android:id=
"@+id/recycler_view"
android:layout_width=
"match_parent"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_height=
"0dp"
android:scrollbars=
"vertical"
/>
android:scrollbars=
"vertical"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<com.wang.avi.AVLoadingIndicatorView
<com.wang.avi.AVLoadingIndicatorView
android:id=
"@+id/view_loading"
android:id=
"@+id/view_loading"
...
@@ -68,6 +72,10 @@
...
@@ -68,6 +72,10 @@
android:id=
"@+id/group_no_file"
android:id=
"@+id/group_no_file"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
android:visibility=
"gone"
android:visibility=
"gone"
app:constraint_referenced_ids=
"image_file,text_no_file,text_all_files_appear_here"
app:constraint_referenced_ids=
"image_file,text_no_file,text_all_files_appear_here"
tools:visibility=
"visible"
/>
tools:visibility=
"visible"
/>
...
...
app/src/main/res/layout/fragment_member_bottom_sheet.xml
View file @
ec005ba9
...
@@ -10,8 +10,11 @@
...
@@ -10,8 +10,11 @@
<com.facebook.drawee.view.SimpleDraweeView
<com.facebook.drawee.view.SimpleDraweeView
android:id=
"@+id/image_bottom_sheet_avatar"
android:id=
"@+id/image_bottom_sheet_avatar"
android:layout_width=
"match_parent"
android:layout_width=
"0dp"
android:layout_height=
"200dp"
/>
android:layout_height=
"200dp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<LinearLayout
<LinearLayout
android:id=
"@+id/name_and_username_container"
android:id=
"@+id/name_and_username_container"
...
@@ -19,9 +22,9 @@
...
@@ -19,9 +22,9 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"@color/colorBackgroundMemberContainer"
android:background=
"@color/colorBackgroundMemberContainer"
android:orientation=
"vertical"
android:orientation=
"vertical"
android:paddingBottom=
"10dp"
android:paddingStart=
"16dp"
android:paddingStart=
"16dp"
android:paddingTop=
"10dp"
android:paddingTop=
"10dp"
android:paddingBottom=
"10dp"
app:layout_constraintBottom_toBottomOf=
"@+id/image_bottom_sheet_avatar"
app:layout_constraintBottom_toBottomOf=
"@+id/image_bottom_sheet_avatar"
app:layout_constraintLeft_toLeftOf=
"parent"
>
app:layout_constraintLeft_toLeftOf=
"parent"
>
...
...
app/src/main/res/layout/fragment_mentions.xml
View file @
ec005ba9
...
@@ -8,9 +8,13 @@
...
@@ -8,9 +8,13 @@
<androidx.recyclerview.widget.RecyclerView
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/recycler_view"
android:id=
"@+id/recycler_view"
android:layout_width=
"match_parent"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_height=
"0dp"
android:scrollbars=
"vertical"
/>
android:scrollbars=
"vertical"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<com.wang.avi.AVLoadingIndicatorView
<com.wang.avi.AVLoadingIndicatorView
android:id=
"@+id/view_loading"
android:id=
"@+id/view_loading"
...
@@ -70,6 +74,10 @@
...
@@ -70,6 +74,10 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:visibility=
"gone"
android:visibility=
"gone"
app:constraint_referenced_ids=
"image_mention,text_no_mention,text_all_mentions_appear_here"
app:constraint_referenced_ids=
"image_mention,text_no_mention,text_all_mentions_appear_here"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:visibility=
"visible"
/>
tools:visibility=
"visible"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_pinned_messages.xml
View file @
ec005ba9
...
@@ -8,17 +8,21 @@
...
@@ -8,17 +8,21 @@
<androidx.recyclerview.widget.RecyclerView
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/recycler_view_pinned"
android:id=
"@+id/recycler_view_pinned"
android:layout_width=
"match_parent"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_height=
"0dp"
android:scrollbars=
"vertical"
/>
android:scrollbars=
"vertical"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<com.wang.avi.AVLoadingIndicatorView
<com.wang.avi.AVLoadingIndicatorView
android:id=
"@+id/view_loading"
android:id=
"@+id/view_loading"
android:layout_width=
"48dp"
android:layout_width=
"48dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_centerInParent=
"true"
android:layout_centerInParent=
"true"
android:layout_marginBottom=
"8dp"
android:layout_marginTop=
"8dp"
android:layout_marginTop=
"8dp"
android:layout_marginBottom=
"8dp"
android:visibility=
"gone"
android:visibility=
"gone"
app:indicatorColor=
"@color/colorBlack"
app:indicatorColor=
"@color/colorBlack"
app:indicatorName=
"BallPulseIndicator"
app:indicatorName=
"BallPulseIndicator"
...
@@ -74,6 +78,8 @@
...
@@ -74,6 +78,8 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:visibility=
"gone"
android:visibility=
"gone"
app:constraint_referenced_ids=
"tv_pin_description,iv_pin_icon,tv_pin_title"
app:constraint_referenced_ids=
"tv_pin_description,iv_pin_icon,tv_pin_title"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:visibility=
"visible"
/>
tools:visibility=
"visible"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/item_color_attachment.xml
View file @
ec005ba9
...
@@ -8,10 +8,10 @@
...
@@ -8,10 +8,10 @@
android:background=
"?android:attr/selectableItemBackground"
android:background=
"?android:attr/selectableItemBackground"
android:clickable=
"true"
android:clickable=
"true"
android:focusable=
"true"
android:focusable=
"true"
android:paddingBottom=
"@dimen/message_item_top_and_bottom_padding"
android:paddingEnd=
"@dimen/screen_edge_left_and_right_padding"
android:paddingStart=
"@dimen/screen_edge_left_and_right_padding"
android:paddingStart=
"@dimen/screen_edge_left_and_right_padding"
android:paddingTop=
"@dimen/message_item_top_and_bottom_padding"
>
android:paddingTop=
"@dimen/message_item_top_and_bottom_padding"
android:paddingEnd=
"@dimen/screen_edge_left_and_right_padding"
android:paddingBottom=
"@dimen/message_item_top_and_bottom_padding"
>
<View
<View
android:id=
"@+id/quote_bar"
android:id=
"@+id/quote_bar"
...
@@ -19,19 +19,20 @@
...
@@ -19,19 +19,20 @@
android:layout_height=
"0dp"
android:layout_height=
"0dp"
android:layout_marginStart=
"56dp"
android:layout_marginStart=
"56dp"
android:background=
"@drawable/quote_vertical_gray_bar"
android:background=
"@drawable/quote_vertical_gray_bar"
app:layout_constraintBottom_toTopOf=
"@id/recycler_view_reactions"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintBottom_toTopOf=
"@id/recycler_view_reactions"
/>
<TextView
<TextView
android:id=
"@+id/attachment_text"
android:id=
"@+id/attachment_text"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"8dp"
android:layout_marginStart=
"8dp"
android:textAppearance=
"@style/TextAppearance.AppCompat.Body1"
android:autoLink=
"web"
android:autoLink=
"web"
a
pp:layout_constraintStart_toEndOf=
"@id/quote_bar
"
a
ndroid:textAppearance=
"@style/TextAppearance.AppCompat.Body1
"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toEndOf=
"@id/quote_bar"
app:layout_constraintTop_toTopOf=
"parent"
tools:text=
"#5571 - User profile from SSO must not have password change option"
/>
tools:text=
"#5571 - User profile from SSO must not have password change option"
/>
<include
<include
...
...
app/src/main/res/layout/item_message.xml
View file @
ec005ba9
...
@@ -13,6 +13,47 @@
...
@@ -13,6 +13,47 @@
android:paddingEnd=
"@dimen/screen_edge_left_and_right_padding"
android:paddingEnd=
"@dimen/screen_edge_left_and_right_padding"
android:paddingBottom=
"@dimen/message_item_top_and_bottom_padding"
>
android:paddingBottom=
"@dimen/message_item_top_and_bottom_padding"
>
<LinearLayout
android:id=
"@+id/day_marker_layout"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
android:paddingBottom=
"8dp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/new_messages_notif"
>
<View
android:layout_width=
"0px"
android:layout_height=
"1dp"
android:layout_weight=
"1"
android:background=
"@color/colorDivider"
/>
<TextView
android:id=
"@+id/day"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"16dp"
android:layout_marginRight=
"16dp"
android:textAppearance=
"@style/Message.DayMarker"
tools:text=
"Wednesday"
/>
<View
android:layout_width=
"0dp"
android:layout_height=
"1dp"
android:layout_weight=
"1"
android:background=
"@color/colorDivider"
/>
</LinearLayout>
<include
android:id=
"@+id/layout_avatar"
layout=
"@layout/avatar"
android:layout_width=
"40dp"
android:layout_height=
"40dp"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintTop_toTopOf=
"@+id/text_sender"
/>
<LinearLayout
<LinearLayout
android:id=
"@+id/new_messages_notif"
android:id=
"@+id/new_messages_notif"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
...
@@ -50,7 +91,7 @@
...
@@ -50,7 +91,7 @@
<include
<include
android:id=
"@+id/layout_avatar"
android:id=
"@+id/layout_avatar"
layout=
"@layout/avatar"
layout=
"@layout/avatar"
android:layout_width=
"
40
dp"
android:layout_width=
"
38
dp"
android:layout_height=
"40dp"
android:layout_height=
"40dp"
android:layout_marginTop=
"5dp"
android:layout_marginTop=
"5dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
...
@@ -63,8 +104,9 @@
...
@@ -63,8 +104,9 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"16dp"
android:layout_marginStart=
"16dp"
app:layout_constraintHorizontal_bias=
"0.5"
app:layout_constraintHorizontal_bias=
"0.5"
app:layout_constraintLeft_toRightOf=
"@+id/layout_avatar"
app:layout_constraintStart_toEndOf=
"@+id/layout_avatar"
app:layout_constraintStart_toEndOf=
"@+id/layout_avatar"
app:layout_constraintTop_toBottomOf=
"@+id/
new_messages_notif
"
app:layout_constraintTop_toBottomOf=
"@+id/
day_marker_layout
"
tools:text=
"Ronald Perkins"
/>
tools:text=
"Ronald Perkins"
/>
<TextView
<TextView
...
@@ -139,4 +181,4 @@
...
@@ -139,4 +181,4 @@
app:layout_constraintStart_toStartOf=
"@+id/text_content"
app:layout_constraintStart_toStartOf=
"@+id/text_content"
app:layout_constraintTop_toBottomOf=
"@+id/text_content"
/>
app:layout_constraintTop_toBottomOf=
"@+id/text_content"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/item_message_reply.xml
View file @
ec005ba9
...
@@ -7,24 +7,25 @@
...
@@ -7,24 +7,25 @@
android:background=
"?android:attr/selectableItemBackground"
android:background=
"?android:attr/selectableItemBackground"
android:clickable=
"true"
android:clickable=
"true"
android:focusable=
"true"
android:focusable=
"true"
android:paddingBottom=
"@dimen/message_item_top_and_bottom_padding"
android:paddingEnd=
"@dimen/screen_edge_left_and_right_padding"
android:paddingStart=
"@dimen/screen_edge_left_and_right_padding"
android:paddingStart=
"@dimen/screen_edge_left_and_right_padding"
android:paddingTop=
"@dimen/message_item_top_and_bottom_padding"
>
android:paddingTop=
"@dimen/message_item_top_and_bottom_padding"
android:paddingEnd=
"@dimen/screen_edge_left_and_right_padding"
android:paddingBottom=
"@dimen/message_item_top_and_bottom_padding"
>
<Button
<Button
android:id=
"@+id/button_message_reply"
android:id=
"@+id/button_message_reply"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"2dp"
android:layout_marginTop=
"5dp"
android:layout_marginStart=
"56dp"
android:layout_marginStart=
"56dp"
android:layout_marginTop=
"5dp"
android:layout_marginBottom=
"2dp"
android:background=
"@drawable/message_reply_button_bg"
android:background=
"@drawable/message_reply_button_bg"
android:text=
"@string/action_msg_reply"
android:text=
"@string/action_msg_reply"
android:textAllCaps=
"false"
android:textAllCaps=
"false"
android:textColor=
"#1D74F5"
android:textColor=
"#1D74F5"
android:textSize=
"14sp"
android:textSize=
"14sp"
app:layout_constraintLeft_toLeftOf=
"parent"
/>
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<include
<include
layout=
"@layout/layout_reactions"
layout=
"@layout/layout_reactions"
...
...
app/src/main/res/layout/layout_toolbar.xml
View file @
ec005ba9
...
@@ -7,9 +7,12 @@
...
@@ -7,9 +7,12 @@
<androidx.appcompat.widget.Toolbar
<androidx.appcompat.widget.Toolbar
android:id=
"@+id/toolbar"
android:id=
"@+id/toolbar"
android:layout_width=
"
match_parent
"
android:layout_width=
"
0dp
"
android:layout_height=
"@dimen/toolbar_height"
android:layout_height=
"@dimen/toolbar_height"
android:background=
"@color/colorPrimary"
android:background=
"@color/colorPrimary"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_scrollFlags=
"scroll|enterAlways"
app:layout_scrollFlags=
"scroll|enterAlways"
app:popupTheme=
"@style/ThemeOverlay.AppCompat.Light"
app:popupTheme=
"@style/ThemeOverlay.AppCompat.Light"
app:theme=
"@style/ThemeOverlay.AppCompat.Dark.ActionBar"
>
app:theme=
"@style/ThemeOverlay.AppCompat.Dark.ActionBar"
>
...
...
app/src/main/res/layout/message_composer.xml
View file @
ec005ba9
...
@@ -3,8 +3,8 @@
...
@@ -3,8 +3,8 @@
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:
orientation=
"vertical
"
android:
background=
"@color/default_background
"
android:
background=
"@color/default_background
"
>
android:
orientation=
"vertical
"
>
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/composer"
android:id=
"@+id/composer"
...
@@ -13,19 +13,24 @@
...
@@ -13,19 +13,24 @@
<View
<View
android:id=
"@+id/divider"
android:id=
"@+id/divider"
android:layout_width=
"
match_parent
"
android:layout_width=
"
0dp
"
android:layout_height=
"1dp"
android:layout_height=
"1dp"
android:background=
"@color/colorDividerMessageComposer"
/>
android:background=
"@color/colorDividerMessageComposer"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
<TextView
android:id=
"@+id/text_room_is_read_only"
android:id=
"@+id/text_room_is_read_only"
android:layout_width=
"
match_parent
"
android:layout_width=
"
0dp
"
android:layout_height=
"45dp"
android:layout_height=
"45dp"
android:background=
"@color/colorWhite"
android:background=
"@color/colorWhite"
android:gravity=
"center"
android:gravity=
"center"
android:text=
"@string/msg_this_room_is_read_only"
android:text=
"@string/msg_this_room_is_read_only"
android:textColor=
"@color/colorBlack"
android:textColor=
"@color/colorBlack"
android:visibility=
"gone"
android:visibility=
"gone"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/divider"
/>
app:layout_constraintTop_toBottomOf=
"@+id/divider"
/>
<Button
<Button
...
@@ -42,13 +47,15 @@
...
@@ -42,13 +47,15 @@
<LinearLayout
<LinearLayout
android:id=
"@+id/input_container"
android:id=
"@+id/input_container"
android:layout_width=
"
match_parent
"
android:layout_width=
"
0dp
"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"10dp"
android:layout_marginStart=
"10dp"
android:layout_marginStart=
"10dp"
android:layout_marginEnd=
"10dp"
android:orientation=
"horizontal"
android:orientation=
"horizontal"
android:paddingBottom=
"10dp"
android:paddingTop=
"10dp"
android:paddingTop=
"10dp"
android:paddingBottom=
"10dp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/divider"
>
app:layout_constraintTop_toBottomOf=
"@+id/divider"
>
<ImageButton
<ImageButton
...
@@ -70,12 +77,12 @@
...
@@ -70,12 +77,12 @@
android:layout_weight=
"1"
android:layout_weight=
"1"
android:background=
"@android:color/transparent"
android:background=
"@android:color/transparent"
android:hint=
"@string/msg_message"
android:hint=
"@string/msg_message"
android:imeOptions=
"flagNoExtractUi"
android:inputType=
"textCapSentences|textMultiLine"
android:inputType=
"textCapSentences|textMultiLine"
android:lineSpacingExtra=
"4dp"
android:lineSpacingExtra=
"4dp"
android:maxLines=
"4"
android:maxLines=
"4"
android:minHeight=
"24dp"
android:minHeight=
"24dp"
android:scrollbars=
"vertical"
android:scrollbars=
"vertical"
/>
android:imeOptions=
"flagNoExtractUi"
/>
<ImageButton
<ImageButton
android:id=
"@+id/button_show_attachment_options"
android:id=
"@+id/button_show_attachment_options"
...
...
app/src/main/res/layout/message_url_preview.xml
View file @
ec005ba9
...
@@ -6,16 +6,16 @@
...
@@ -6,16 +6,16 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"?android:attr/selectableItemBackground"
android:background=
"?android:attr/selectableItemBackground"
android:padding
End=
"24
dp"
android:padding
Start=
"72
dp"
android:padding
Start=
"72
dp"
>
android:padding
End=
"24
dp"
>
<com.facebook.drawee.view.SimpleDraweeView
<com.facebook.drawee.view.SimpleDraweeView
android:id=
"@+id/image_preview"
android:id=
"@+id/image_preview"
android:layout_width=
"70dp"
android:layout_width=
"70dp"
android:layout_height=
"50dp"
android:layout_height=
"50dp"
app:actualImageScaleType=
"centerCrop"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:actualImageScaleType=
"centerCrop"
/>
<TextView
<TextView
android:id=
"@+id/text_host"
android:id=
"@+id/text_host"
...
@@ -23,9 +23,10 @@
...
@@ -23,9 +23,10 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"8dp"
android:layout_marginStart=
"8dp"
android:textColor=
"@color/colorSecondaryText"
android:textColor=
"@color/colorSecondaryText"
android:textDirection=
"locale"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toEndOf=
"@+id/image_preview"
app:layout_constraintStart_toEndOf=
"@+id/image_preview"
a
ndroid:textDirection=
"locale
"
a
pp:layout_constraintTop_toTopOf=
"parent
"
tools:text=
"www.uol.com.br"
/>
tools:text=
"www.uol.com.br"
/>
<TextView
<TextView
...
@@ -33,20 +34,20 @@
...
@@ -33,20 +34,20 @@
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:textColor=
"@color/colorAccent"
android:textColor=
"@color/colorAccent"
android:textDirection=
"locale"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"@+id/text_host"
app:layout_constraintStart_toStartOf=
"@+id/text_host"
app:layout_constraintTop_toBottomOf=
"@id/text_host"
app:layout_constraintTop_toBottomOf=
"@id/text_host"
android:textDirection=
"locale"
tools:text=
"Web page title"
/>
tools:text=
"Web page title"
/>
<TextView
<TextView
android:id=
"@+id/text_description"
android:id=
"@+id/text_description"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:textDirection=
"locale"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"@+id/text_host"
app:layout_constraintStart_toStartOf=
"@+id/text_host"
app:layout_constraintTop_toBottomOf=
"@id/text_title"
app:layout_constraintTop_toBottomOf=
"@id/text_title"
android:textDirection=
"locale"
tools:text=
"description"
/>
tools:text=
"description"
/>
<include
<include
...
...
app/src/main/res/layout/nav_header.xml
View file @
ec005ba9
...
@@ -30,30 +30,35 @@
...
@@ -30,30 +30,35 @@
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/account_container"
android:id=
"@+id/account_container"
android:layout_width=
"
match_parent
"
android:layout_width=
"
0dp
"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"16dp"
android:layout_marginTop=
"16dp"
android:background=
"?selectableItemBackground"
android:background=
"?selectableItemBackground"
android:elevation=
"2dp"
android:elevation=
"2dp"
android:paddingBottom=
"4dp"
android:paddingEnd=
"12dp"
android:paddingStart=
"12dp"
android:paddingStart=
"12dp"
android:paddingTop=
"4dp"
android:paddingTop=
"4dp"
android:paddingEnd=
"12dp"
android:paddingBottom=
"4dp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/image_avatar"
>
app:layout_constraintTop_toBottomOf=
"@+id/image_avatar"
>
<ImageView
<ImageView
android:id=
"@+id/image_user_status"
android:id=
"@+id/image_user_status"
android:layout_width=
"12dp"
android:layout_width=
"12dp"
android:layout_height=
"12dp"
android:layout_height=
"12dp"
app:layout_constraintStart_toStartOf=
"parent"
/>
app:layout_constraintBottom_toTopOf=
"@+id/text_user_name"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@+id/text_user_name"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
<TextView
android:id=
"@+id/text_user_name"
android:id=
"@+id/text_user_name"
style=
"@style/Sender.Name.TextView"
style=
"@style/Sender.Name.TextView"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"10dp"
android:layout_marginStart=
"10dp"
android:layout_marginStart=
"10dp"
android:layout_marginEnd=
"10dp"
android:textColor=
"@color/colorWhite"
android:textColor=
"@color/colorWhite"
app:layout_constraintBottom_toBottomOf=
"@+id/image_user_status"
app:layout_constraintBottom_toBottomOf=
"@+id/image_user_status"
app:layout_constraintEnd_toStartOf=
"@+id/image_account_expand"
app:layout_constraintEnd_toStartOf=
"@+id/image_account_expand"
...
...
app/src/main/res/layout/suggestion_member_item.xml
View file @
ec005ba9
...
@@ -15,6 +15,9 @@
...
@@ -15,6 +15,9 @@
android:layout_width=
"24dp"
android:layout_width=
"24dp"
android:layout_height=
"24dp"
android:layout_height=
"24dp"
app:roundedCornerRadius=
"3dp"
app:roundedCornerRadius=
"3dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
tools:src=
"@tools:sample/avatars"
/>
tools:src=
"@tools:sample/avatars"
/>
<ImageView
<ImageView
...
...
app/src/main/res/menu/chatrooms.xml
View file @
ec005ba9
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android=
"http://schemas.android.com/apk/res/android"
<menu
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
>
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
tools:ignore=
"AppCompatResource"
>
<item
<item
android:id=
"@+id/action_search"
android:id=
"@+id/action_search"
...
...
app/src/main/res/menu/image_actions.xml
View file @
ec005ba9
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android=
"http://schemas.android.com/apk/res/android"
<menu
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
>
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
tools:ignore=
"AppCompatResource"
>
<item
<item
android:id=
"@+id/action_save_image"
android:id=
"@+id/action_save_image"
...
...
app/src/main/res/values-es/strings.xml
View file @
ec005ba9
This diff is collapsed.
Click to expand it.
app/src/main/res/values-fr/strings.xml
View file @
ec005ba9
...
@@ -72,6 +72,7 @@
...
@@ -72,6 +72,7 @@
<string
name=
"msg_new_user_agreement"
>
En procédant, vous acceptez notre\n%1$s et %2$s
</string>
<string
name=
"msg_new_user_agreement"
>
En procédant, vous acceptez notre\n%1$s et %2$s
</string>
<string
name=
"msg_2fa_code"
>
Code 2FA
</string>
<string
name=
"msg_2fa_code"
>
Code 2FA
</string>
<string
name=
"msg_yesterday"
>
Hier
</string>
<string
name=
"msg_yesterday"
>
Hier
</string>
<string
name=
"msg_today"
>
Aujourd\'hui
</string>
<string
name=
"msg_message"
>
Message
</string>
<string
name=
"msg_message"
>
Message
</string>
<string
name=
"msg_this_room_is_read_only"
>
Cette salle est seulement de lecture
</string>
<string
name=
"msg_this_room_is_read_only"
>
Cette salle est seulement de lecture
</string>
<string
name=
"msg_invalid_2fa_code"
>
Code 2FA non valide
</string>
<string
name=
"msg_invalid_2fa_code"
>
Code 2FA non valide
</string>
...
@@ -184,6 +185,7 @@
...
@@ -184,6 +185,7 @@
<string
name=
"action_msg_share"
>
Partager
</string>
<string
name=
"action_msg_share"
>
Partager
</string>
<string
name=
"action_title_editing"
>
Modification du message
</string>
<string
name=
"action_title_editing"
>
Modification du message
</string>
<string
name=
"action_msg_add_reaction"
>
Ajouter une réaction
</string>
<string
name=
"action_msg_add_reaction"
>
Ajouter une réaction
</string>
<string
name=
"action_share"
>
Partager
</string>
<!-- Permission messages -->
<!-- Permission messages -->
<string
name=
"permission_editing_not_allowed"
>
L\'édition n\'est pas autorisée
</string>
<string
name=
"permission_editing_not_allowed"
>
L\'édition n\'est pas autorisée
</string>
...
@@ -287,6 +289,7 @@
...
@@ -287,6 +289,7 @@
<string
name=
"header_unknown"
>
Inconnu
</string>
<string
name=
"header_unknown"
>
Inconnu
</string>
<!--Notifications-->
<!--Notifications-->
<string
name=
"share_label"
>
Modifier le message partagé
</string>
<string
name=
"notif_action_reply_hint"
>
RÉPONDRE
</string>
<string
name=
"notif_action_reply_hint"
>
RÉPONDRE
</string>
<string
name=
"notif_error_sending"
>
La réponse a échoué. Veuillez réessayer.
</string>
<string
name=
"notif_error_sending"
>
La réponse a échoué. Veuillez réessayer.
</string>
<string
name=
"notif_success_sending"
>
Message envoyé à %1$s!
</string>
<string
name=
"notif_success_sending"
>
Message envoyé à %1$s!
</string>
...
...
app/src/main/res/values-hi-rIN/strings.xml
View file @
ec005ba9
...
@@ -39,6 +39,7 @@
...
@@ -39,6 +39,7 @@
<string
name=
"action_invisible"
>
अदृश्य
</string>
<string
name=
"action_invisible"
>
अदृश्य
</string>
<string
name=
"action_save_to_gallery"
>
गैलरी में सहेजें
</string>
<string
name=
"action_save_to_gallery"
>
गैलरी में सहेजें
</string>
<string
name=
"action_drawing"
>
चित्रकारी
</string>
<string
name=
"action_drawing"
>
चित्रकारी
</string>
<string
name=
"action_share"
>
शेयर
</string>
<!-- Settings List -->
<!-- Settings List -->
<string-array
name=
"settings_actions"
>
<string-array
name=
"settings_actions"
>
...
@@ -65,6 +66,7 @@
...
@@ -65,6 +66,7 @@
<string
name=
"msg_new_user_agreement"
>
आगे बढ़कर आप हमारे %1$s और %2$s से सहमत हो रहे हैं
</string>
<string
name=
"msg_new_user_agreement"
>
आगे बढ़कर आप हमारे %1$s और %2$s से सहमत हो रहे हैं
</string>
<string
name=
"msg_2fa_code"
>
कोड 2FA
</string>
<string
name=
"msg_2fa_code"
>
कोड 2FA
</string>
<string
name=
"msg_yesterday"
>
कल
</string>
<string
name=
"msg_yesterday"
>
कल
</string>
<string
name=
"msg_today"
>
आज
</string>
<string
name=
"msg_message"
>
संदेश
</string>
<string
name=
"msg_message"
>
संदेश
</string>
<string
name=
"msg_this_room_is_read_only"
>
यह रूम केवल पढ़ने के लिए है
</string>
<string
name=
"msg_this_room_is_read_only"
>
यह रूम केवल पढ़ने के लिए है
</string>
<string
name=
"msg_invalid_2fa_code"
>
अमान्य 2FA कोड
</string>
<string
name=
"msg_invalid_2fa_code"
>
अमान्य 2FA कोड
</string>
...
@@ -123,6 +125,7 @@
...
@@ -123,6 +125,7 @@
<string
name=
"msg_upload_file"
>
फाइल अपलोड करें
</string>
<string
name=
"msg_upload_file"
>
फाइल अपलोड करें
</string>
<string
name=
"msg_file_description"
>
फाइल विवरण
</string>
<string
name=
"msg_file_description"
>
फाइल विवरण
</string>
<string
name=
"msg_send"
>
भेजें
</string>
<string
name=
"msg_send"
>
भेजें
</string>
<string
name=
"msg_sent_attachment"
>
एक अनुलग्नक भेजा
</string>
<string
name=
"msg_delete_message"
>
संदेश को हटाएं
</string>
<string
name=
"msg_delete_message"
>
संदेश को हटाएं
</string>
<string
name=
"msg_delete_description"
>
क्या आप निश्चित रूप से यह संदेश हटाना चाहते हैं
</string>
<string
name=
"msg_delete_description"
>
क्या आप निश्चित रूप से यह संदेश हटाना चाहते हैं
</string>
...
@@ -266,6 +269,7 @@
...
@@ -266,6 +269,7 @@
<string
name=
"header_unknown"
>
अज्ञात
</string>
<string
name=
"header_unknown"
>
अज्ञात
</string>
<!--Notifications-->
<!--Notifications-->
<string
name=
"share_label"
>
साझा संदेश संपादित करें
</string>
<string
name=
"notif_action_reply_hint"
>
जवाब
</string>
<string
name=
"notif_action_reply_hint"
>
जवाब
</string>
<string
name=
"notif_error_sending"
>
उत्तर विफल हुआ है। कृपया फिर से प्रयास करें।
</string>
<string
name=
"notif_error_sending"
>
उत्तर विफल हुआ है। कृपया फिर से प्रयास करें।
</string>
<string
name=
"notif_success_sending"
>
संदेश भेजा गया %1$s!
</string>
<string
name=
"notif_success_sending"
>
संदेश भेजा गया %1$s!
</string>
...
...
app/src/main/res/values-pt-rBR/strings.xml
View file @
ec005ba9
...
@@ -64,7 +64,8 @@
...
@@ -64,7 +64,8 @@
<string
name=
"msg_invalid_email"
>
Por favor informe um e-mail válido
</string>
<string
name=
"msg_invalid_email"
>
Por favor informe um e-mail válido
</string>
<string
name=
"msg_new_user_agreement"
>
Ao proceder você concorda com nossos %1$s e %2$s
</string>
<string
name=
"msg_new_user_agreement"
>
Ao proceder você concorda com nossos %1$s e %2$s
</string>
<string
name=
"msg_2fa_code"
>
Código 2FA
</string>
<string
name=
"msg_2fa_code"
>
Código 2FA
</string>
<string
name=
"msg_yesterday"
>
ontem
</string>
<string
name=
"msg_yesterday"
>
Ontem
</string>
<string
name=
"msg_today"
>
Hoje
</string>
<string
name=
"msg_message"
>
Mensagem
</string>
<string
name=
"msg_message"
>
Mensagem
</string>
<string
name=
"msg_this_room_is_read_only"
>
Este chat é apenas de leitura
</string>
<string
name=
"msg_this_room_is_read_only"
>
Este chat é apenas de leitura
</string>
<string
name=
"msg_invalid_2fa_code"
>
Código 2FA inválido
</string>
<string
name=
"msg_invalid_2fa_code"
>
Código 2FA inválido
</string>
...
@@ -266,9 +267,11 @@
...
@@ -266,9 +267,11 @@
<string
name=
"header_unknown"
>
Desconhecido
</string>
<string
name=
"header_unknown"
>
Desconhecido
</string>
<!--Notifications-->
<!--Notifications-->
<string
name=
"share_label"
>
Editar mensagem compartilhada
</string>
<string
name=
"notif_action_reply_hint"
>
RESPONDER
</string>
<string
name=
"notif_action_reply_hint"
>
RESPONDER
</string>
<string
name=
"notif_error_sending"
>
Falha ao enviar a mensagem.
</string>
<string
name=
"notif_error_sending"
>
Falha ao enviar a mensagem.
</string>
<string
name=
"notif_success_sending"
>
Mensagem enviada para %1$s!
</string>
<string
name=
"notif_success_sending"
>
Mensagem enviada para %1$s!
</string>
<string
name=
"action_share"
>
Compartilhar
</string>
<string
name=
"read_by"
>
Lida por
</string>
<string
name=
"read_by"
>
Lida por
</string>
<string
name=
"message_information_title"
>
Informações da mensagem
</string>
<string
name=
"message_information_title"
>
Informações da mensagem
</string>
<string
name=
"msg_log_out"
>
Deslogando…
</string>
<string
name=
"msg_log_out"
>
Deslogando…
</string>
...
...
app/src/main/res/values-uk-rRU/strings.xml
View file @
ec005ba9
...
@@ -37,6 +37,7 @@
...
@@ -37,6 +37,7 @@
<string
name=
"action_away"
>
Отошел
</string>
<string
name=
"action_away"
>
Отошел
</string>
<string
name=
"action_busy"
>
Занят
</string>
<string
name=
"action_busy"
>
Занят
</string>
<string
name=
"action_invisible"
>
Невидимый
</string>
<string
name=
"action_invisible"
>
Невидимый
</string>
<string
name=
"action_drawing"
>
малюнок
</string>
<string
name=
"action_save_to_gallery"
>
Сохранить в галерею
</string>
<string
name=
"action_save_to_gallery"
>
Сохранить в галерею
</string>
<!-- Settings List -->
<!-- Settings List -->
...
@@ -64,6 +65,7 @@
...
@@ -64,6 +65,7 @@
<string
name=
"msg_new_user_agreement"
>
Продолжая, вы соглашаетесь с нашими\n%1$s и %2$s
</string>
<string
name=
"msg_new_user_agreement"
>
Продолжая, вы соглашаетесь с нашими\n%1$s и %2$s
</string>
<string
name=
"msg_2fa_code"
>
Код 2FA
</string>
<string
name=
"msg_2fa_code"
>
Код 2FA
</string>
<string
name=
"msg_yesterday"
>
Вчера
</string>
<string
name=
"msg_yesterday"
>
Вчера
</string>
<string
name=
"msg_today"
>
Сьогодні
</string>
<string
name=
"msg_message"
>
Сообщение
</string>
<string
name=
"msg_message"
>
Сообщение
</string>
<string
name=
"msg_this_room_is_read_only"
>
Этот канал только для чтения
</string>
<string
name=
"msg_this_room_is_read_only"
>
Этот канал только для чтения
</string>
<string
name=
"msg_invalid_2fa_code"
>
Неверный код 2FA
</string>
<string
name=
"msg_invalid_2fa_code"
>
Неверный код 2FA
</string>
...
@@ -119,6 +121,7 @@
...
@@ -119,6 +121,7 @@
<string
name=
"msg_upload_file"
>
Загрузить файл
</string>
<string
name=
"msg_upload_file"
>
Загрузить файл
</string>
<string
name=
"msg_file_description"
>
Описание файла
</string>
<string
name=
"msg_file_description"
>
Описание файла
</string>
<string
name=
"msg_send"
>
послать
</string>
<string
name=
"msg_send"
>
послать
</string>
<string
name=
"msg_sent_attachment"
>
Надіслано вкладення
</string>
<string
name=
"msg_delete_message"
>
Удалить сообщение
</string>
<string
name=
"msg_delete_message"
>
Удалить сообщение
</string>
<string
name=
"msg_delete_description"
>
Вы уверены, что хотите удалить это сообщение?
</string>
<string
name=
"msg_delete_description"
>
Вы уверены, что хотите удалить это сообщение?
</string>
<string
name=
"msg_channel_name"
>
Название канала
</string>
<string
name=
"msg_channel_name"
>
Название канала
</string>
...
@@ -165,6 +168,7 @@
...
@@ -165,6 +168,7 @@
<string
name=
"action_msg_share"
>
Поделиться
</string>
<string
name=
"action_msg_share"
>
Поделиться
</string>
<string
name=
"action_title_editing"
>
Редактирование сообщения
</string>
<string
name=
"action_title_editing"
>
Редактирование сообщения
</string>
<string
name=
"action_msg_add_reaction"
>
Добавить реакцию
</string>
<string
name=
"action_msg_add_reaction"
>
Добавить реакцию
</string>
<string
name=
"action_share"
>
Поділитися
</string>
<!-- Permission messages -->
<!-- Permission messages -->
<string
name=
"permission_editing_not_allowed"
>
Редактирование запрещено
</string>
<string
name=
"permission_editing_not_allowed"
>
Редактирование запрещено
</string>
...
@@ -173,8 +177,7 @@
...
@@ -173,8 +177,7 @@
<string
name=
"permission_starring_not_allowed"
>
Отмечивание запрещено
</string>
<string
name=
"permission_starring_not_allowed"
>
Отмечивание запрещено
</string>
<!-- Search message -->
<!-- Search message -->
<!-- TODO Add proper translation-->
<string
name=
"title_search_message"
>
Поиск сообщения
</string>
<string
name=
"title_search_message"
>
Search message
</string>
<!-- Favorite/Unfavorite chat room -->
<!-- Favorite/Unfavorite chat room -->
<string
name=
"title_favorite_chat"
>
Добавить чат в избранное
</string>
<string
name=
"title_favorite_chat"
>
Добавить чат в избранное
</string>
...
@@ -263,8 +266,11 @@
...
@@ -263,8 +266,11 @@
<string
name=
"header_unknown"
>
Неизвестные
</string>
<string
name=
"header_unknown"
>
Неизвестные
</string>
<!--Notifications-->
<!--Notifications-->
<string
name=
"share_label"
>
Редагування спільного повідомлення
</string>
<string
name=
"notif_action_reply_hint"
>
ОТВЕТИТЬ
</string>
<string
name=
"notif_action_reply_hint"
>
ОТВЕТИТЬ
</string>
<string
name=
"notif_error_sending"
>
Ошибка ответа. Пожалуйста, попробуйте еще раз.
</string>
<string
name=
"notif_error_sending"
>
Ошибка ответа. Пожалуйста, попробуйте еще раз.
</string>
<string
name=
"notif_success_sending"
>
Сообщение отправлено %1$s!
</string>
<string
name=
"notif_success_sending"
>
Сообщение отправлено %1$s!
</string>
<string
name=
"msg_log_out"
>
Виходьте…
</string>
<string
name=
"read_by"
>
Прочитано
</string>
<string
name=
"message_information_title"
>
Інформація про повідомлення
</string>
<string
name=
"msg_log_out"
>
Выход…
</string>
</resources>
</resources>
app/src/main/res/values/colors.xml
View file @
ec005ba9
...
@@ -44,6 +44,8 @@
...
@@ -44,6 +44,8 @@
<color
name=
"quoteBar"
>
#A0A0A0
</color>
<color
name=
"quoteBar"
>
#A0A0A0
</color>
<color
name=
"colorDivider"
>
#1F000000
</color>
<!-- Suggestions -->
<!-- Suggestions -->
<color
name=
"suggestion_background_color"
>
@color/colorWhite
</color>
<color
name=
"suggestion_background_color"
>
@color/colorWhite
</color>
...
...
app/src/main/res/values/fonts.xml
0 → 100644
View file @
ec005ba9
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string
name=
"font_fontFamily_medium"
translatable=
"false"
>
sans-serif-medium
</string>
</resources>
app/src/main/res/values/strings.xml
View file @
ec005ba9
...
@@ -67,6 +67,7 @@
...
@@ -67,6 +67,7 @@
<string
name=
"msg_2fa_code"
>
2FA Code
</string>
<string
name=
"msg_2fa_code"
>
2FA Code
</string>
<string
name=
"msg_more_than_ninety_nine_unread_messages"
translatable=
"false"
>
99+
</string>
<string
name=
"msg_more_than_ninety_nine_unread_messages"
translatable=
"false"
>
99+
</string>
<string
name=
"msg_yesterday"
>
Yesterday
</string>
<string
name=
"msg_yesterday"
>
Yesterday
</string>
<string
name=
"msg_today"
>
Today
</string>
<string
name=
"msg_message"
>
Message
</string>
<string
name=
"msg_message"
>
Message
</string>
<string
name=
"msg_this_room_is_read_only"
>
This room is read only
</string>
<string
name=
"msg_this_room_is_read_only"
>
This room is read only
</string>
<string
name=
"msg_invalid_2fa_code"
>
Invalid 2FA Code
</string>
<string
name=
"msg_invalid_2fa_code"
>
Invalid 2FA Code
</string>
...
@@ -170,6 +171,7 @@
...
@@ -170,6 +171,7 @@
<string
name=
"action_msg_share"
>
Share
</string>
<string
name=
"action_msg_share"
>
Share
</string>
<string
name=
"action_title_editing"
>
Editing Message
</string>
<string
name=
"action_title_editing"
>
Editing Message
</string>
<string
name=
"action_msg_add_reaction"
>
Add reaction
</string>
<string
name=
"action_msg_add_reaction"
>
Add reaction
</string>
<string
name=
"action_share"
>
Share
</string>
<!-- Permission messages -->
<!-- Permission messages -->
<string
name=
"permission_editing_not_allowed"
>
Editing is not allowed
</string>
<string
name=
"permission_editing_not_allowed"
>
Editing is not allowed
</string>
...
@@ -267,6 +269,7 @@
...
@@ -267,6 +269,7 @@
<string
name=
"header_unknown"
>
Unknown
</string>
<string
name=
"header_unknown"
>
Unknown
</string>
<!--Notifications-->
<!--Notifications-->
<string
name=
"share_label"
>
Edit shared message
</string>
<string
name=
"notif_action_reply_hint"
>
REPLY
</string>
<string
name=
"notif_action_reply_hint"
>
REPLY
</string>
<string
name=
"notif_error_sending"
>
Reply has failed. Please try again.
</string>
<string
name=
"notif_error_sending"
>
Reply has failed. Please try again.
</string>
<string
name=
"notif_success_sending"
>
Message sent to %1$s!
</string>
<string
name=
"notif_success_sending"
>
Message sent to %1$s!
</string>
...
...
app/src/main/res/values/styles.xml
View file @
ec005ba9
...
@@ -101,6 +101,12 @@
...
@@ -101,6 +101,12 @@
<item
name=
"android:textColor"
>
@color/colorPrimaryText
</item>
<item
name=
"android:textColor"
>
@color/colorPrimaryText
</item>
</style>
</style>
<style
name=
"Message.DayMarker"
parent=
"TextAppearance.AppCompat"
>
<item
name=
"android:textSize"
>
14sp
</item>
<item
name=
"android:textColor"
>
@color/colorPrimaryText
</item>
<item
name=
"android:fontFamily"
>
@string/font_fontFamily_medium
</item>
</style>
<style
name=
"Message.Quote.TextView"
parent=
"Message.TextView"
>
<style
name=
"Message.Quote.TextView"
parent=
"Message.TextView"
>
<item
name=
"android:textColor"
>
@color/colorPrimaryText
</item>
<item
name=
"android:textColor"
>
@color/colorPrimaryText
</item>
</style>
</style>
...
@@ -118,4 +124,4 @@
...
@@ -118,4 +124,4 @@
<item
name=
"actionModeCloseDrawable"
>
@drawable/ic_close_white_24dp
</item>
<item
name=
"actionModeCloseDrawable"
>
@drawable/ic_close_white_24dp
</item>
</style>
</style>
</resources>
</resources>
\ No newline at end of file
draw/src/main/res/layout/activity_drawing.xml
View file @
ec005ba9
...
@@ -4,13 +4,17 @@
...
@@ -4,13 +4,17 @@
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=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".ui.DrawingActivity"
>
tools:context=
".
main.
ui.DrawingActivity"
>
<chat.rocket.android.draw.widget.CustomDrawView
<chat.rocket.android.draw.widget.CustomDrawView
android:id=
"@+id/custom_draw_view"
android:id=
"@+id/custom_draw_view"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/color_white"
/>
android:background=
"@color/color_white"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
<ImageView
android:id=
"@+id/image_close_drawing"
android:id=
"@+id/image_close_drawing"
...
...
emoji/src/main/res/layout/emoji_keyboard.xml
View file @
ec005ba9
...
@@ -55,8 +55,10 @@
...
@@ -55,8 +55,10 @@
android:padding=
"8dp"
android:padding=
"8dp"
android:src=
"@drawable/ic_search_gray_24px"
android:src=
"@drawable/ic_search_gray_24px"
android:visibility=
"invisible"
android:visibility=
"invisible"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@+id/emoji_backspace"
app:layout_constraintEnd_toStartOf=
"@+id/emoji_backspace"
app:layout_constraintStart_toEndOf=
"@+id/color_change_view"
/>
app:layout_constraintStart_toEndOf=
"@+id/color_change_view"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
<ImageView
android:id=
"@+id/emoji_backspace"
android:id=
"@+id/emoji_backspace"
...
...
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