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
77bcd4d6
Unverified
Commit
77bcd4d6
authored
Jun 26, 2018
by
Leonardo Aramaki
Committed by
GitHub
Jun 26, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' into project/emoji-as-a-module
parents
e4f40bb8
80cfd440
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
403 additions
and
18 deletions
+403
-18
ChatRoomNavigator.kt
...rocket/android/chatroom/presentation/ChatRoomNavigator.kt
+28
-10
ChatRoomPresenter.kt
...rocket/android/chatroom/presentation/ChatRoomPresenter.kt
+3
-0
ChatRoomFragment.kt
.../java/chat/rocket/android/chatroom/ui/ChatRoomFragment.kt
+5
-2
ActivityBuilder.kt
...java/chat/rocket/android/dagger/module/ActivityBuilder.kt
+2
-0
FilesView.kt
.../java/chat/rocket/android/files/presentation/FilesView.kt
+1
-1
MentionsFragmentModule.kt
...chat/rocket/android/mentions/di/MentionsFragmentModule.kt
+45
-0
MentionsFragmentProvider.kt
...at/rocket/android/mentions/di/MentionsFragmentProvider.kt
+14
-0
MentionsPresenter.kt
...ocket/android/mentions/presentention/MentionsPresenter.kt
+49
-0
MentionsView.kt
...hat/rocket/android/mentions/presentention/MentionsView.kt
+15
-0
MentionsFragment.kt
.../java/chat/rocket/android/mentions/ui/MentionsFragment.kt
+124
-0
PinnedMessagesFragmentModule.kt
...android/pinnedmessages/di/PinnedMessagesFragmentModule.kt
+1
-1
PinnedMessagesFragmentProvider.kt
...droid/pinnedmessages/di/PinnedMessagesFragmentProvider.kt
+0
-1
fragment_mentions.xml
app/src/main/res/layout/fragment_mentions.xml
+75
-0
chatroom_actions.xml
app/src/main/res/menu/chatroom_actions.xml
+5
-0
strings.xml
app/src/main/res/values-es/strings.xml
+6
-0
strings.xml
app/src/main/res/values-fr/strings.xml
+6
-0
strings.xml
app/src/main/res/values-hi-rIN/strings.xml
+6
-0
strings.xml
app/src/main/res/values-pt-rBR/strings.xml
+8
-3
strings.xml
app/src/main/res/values-uk-rRU/strings.xml
+5
-0
strings.xml
app/src/main/res/values/strings.xml
+5
-0
No files found.
app/src/main/java/chat/rocket/android/chatroom/presentation/ChatRoomNavigator.kt
View file @
77bcd4d6
...
@@ -14,6 +14,12 @@ class ChatRoomNavigator(internal val activity: ChatRoomActivity) {
...
@@ -14,6 +14,12 @@ class ChatRoomNavigator(internal val activity: ChatRoomActivity) {
}
}
}
}
fun
toMentions
(
chatRoomId
:
String
)
{
activity
.
addFragmentBackStack
(
"MentionsFragment"
,
R
.
id
.
fragment_container
)
{
chat
.
rocket
.
android
.
mentions
.
ui
.
newInstance
(
chatRoomId
)
}
}
fun
toPinnedMessageList
(
chatRoomId
:
String
)
{
fun
toPinnedMessageList
(
chatRoomId
:
String
)
{
activity
.
addFragmentBackStack
(
"PinnedMessages"
,
R
.
id
.
fragment_container
)
{
activity
.
addFragmentBackStack
(
"PinnedMessages"
,
R
.
id
.
fragment_container
)
{
chat
.
rocket
.
android
.
pinnedmessages
.
ui
.
newInstance
(
chatRoomId
)
chat
.
rocket
.
android
.
pinnedmessages
.
ui
.
newInstance
(
chatRoomId
)
...
@@ -37,16 +43,28 @@ class ChatRoomNavigator(internal val activity: ChatRoomActivity) {
...
@@ -37,16 +43,28 @@ class ChatRoomNavigator(internal val activity: ChatRoomActivity) {
activity
.
finish
()
activity
.
finish
()
}
}
fun
toDirectMessage
(
chatRoomId
:
String
,
fun
toDirectMessage
(
chatRoomName
:
String
,
chatRoomId
:
String
,
chatRoomType
:
String
,
chatRoomName
:
String
,
isChatRoomReadOnly
:
Boolean
,
chatRoomType
:
String
,
chatRoomLastSeen
:
Long
,
isChatRoomReadOnly
:
Boolean
,
isChatRoomSubscribed
:
Boolean
,
chatRoomLastSeen
:
Long
,
isChatRoomCreator
:
Boolean
,
isChatRoomSubscribed
:
Boolean
,
chatRoomMessage
:
String
)
{
isChatRoomCreator
:
Boolean
,
activity
.
startActivity
(
activity
.
chatRoomIntent
(
chatRoomId
,
chatRoomName
,
chatRoomType
,
chatRoomMessage
:
String
isChatRoomReadOnly
,
chatRoomLastSeen
,
isChatRoomSubscribed
,
isChatRoomCreator
,
chatRoomMessage
))
)
{
activity
.
startActivity
(
activity
.
chatRoomIntent
(
chatRoomId
,
chatRoomName
,
chatRoomType
,
isChatRoomReadOnly
,
chatRoomLastSeen
,
isChatRoomSubscribed
,
isChatRoomCreator
,
chatRoomMessage
)
)
activity
.
overridePendingTransition
(
R
.
anim
.
open_enter
,
R
.
anim
.
open_exit
)
activity
.
overridePendingTransition
(
R
.
anim
.
open_enter
,
R
.
anim
.
open_exit
)
}
}
}
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/chatroom/presentation/ChatRoomPresenter.kt
View file @
77bcd4d6
...
@@ -713,6 +713,9 @@ class ChatRoomPresenter @Inject constructor(
...
@@ -713,6 +713,9 @@ class ChatRoomPresenter @Inject constructor(
fun
toMembersList
(
chatRoomId
:
String
)
=
fun
toMembersList
(
chatRoomId
:
String
)
=
navigator
.
toMembersList
(
chatRoomId
)
navigator
.
toMembersList
(
chatRoomId
)
fun
toMentions
(
chatRoomId
:
String
)
=
navigator
.
toMentions
(
chatRoomId
)
fun
toPinnedMessageList
(
chatRoomId
:
String
)
=
fun
toPinnedMessageList
(
chatRoomId
:
String
)
=
navigator
.
toPinnedMessageList
(
chatRoomId
)
navigator
.
toPinnedMessageList
(
chatRoomId
)
...
...
app/src/main/java/chat/rocket/android/chatroom/ui/ChatRoomFragment.kt
View file @
77bcd4d6
...
@@ -232,6 +232,9 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
...
@@ -232,6 +232,9 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
R
.
id
.
action_members_list
->
{
R
.
id
.
action_members_list
->
{
presenter
.
toMembersList
(
chatRoomId
)
presenter
.
toMembersList
(
chatRoomId
)
}
}
R
.
id
.
action_mentions
->
{
presenter
.
toMentions
(
chatRoomId
)
}
R
.
id
.
action_pinned_messages
->
{
R
.
id
.
action_pinned_messages
->
{
presenter
.
toPinnedMessageList
(
chatRoomId
)
presenter
.
toPinnedMessageList
(
chatRoomId
)
}
}
...
@@ -775,10 +778,10 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
...
@@ -775,10 +778,10 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
private
fun
setupActionSnackbar
()
{
private
fun
setupActionSnackbar
()
{
actionSnackbar
=
ActionSnackbar
.
make
(
message_list_container
,
parser
=
parser
)
actionSnackbar
=
ActionSnackbar
.
make
(
message_list_container
,
parser
=
parser
)
actionSnackbar
.
cancelView
.
setOnClickListener
(
{
actionSnackbar
.
cancelView
.
setOnClickListener
{
clearMessageComposition
()
clearMessageComposition
()
KeyboardHelper
.
showSoftKeyboard
(
text_message
)
KeyboardHelper
.
showSoftKeyboard
(
text_message
)
}
)
}
}
}
private
fun
subscribeComposeTextMessage
()
{
private
fun
subscribeComposeTextMessage
()
{
...
...
app/src/main/java/chat/rocket/android/dagger/module/ActivityBuilder.kt
View file @
77bcd4d6
...
@@ -19,6 +19,7 @@ import chat.rocket.android.files.di.FilesFragmentProvider
...
@@ -19,6 +19,7 @@ import chat.rocket.android.files.di.FilesFragmentProvider
import
chat.rocket.android.main.di.MainModule
import
chat.rocket.android.main.di.MainModule
import
chat.rocket.android.main.ui.MainActivity
import
chat.rocket.android.main.ui.MainActivity
import
chat.rocket.android.members.di.MembersFragmentProvider
import
chat.rocket.android.members.di.MembersFragmentProvider
import
chat.rocket.android.mentions.di.MentionsFragmentProvider
import
chat.rocket.android.pinnedmessages.di.PinnedMessagesFragmentProvider
import
chat.rocket.android.pinnedmessages.di.PinnedMessagesFragmentProvider
import
chat.rocket.android.profile.di.ProfileFragmentProvider
import
chat.rocket.android.profile.di.ProfileFragmentProvider
import
chat.rocket.android.server.di.ChangeServerModule
import
chat.rocket.android.server.di.ChangeServerModule
...
@@ -62,6 +63,7 @@ abstract class ActivityBuilder {
...
@@ -62,6 +63,7 @@ abstract class ActivityBuilder {
ChatRoomModule
::
class
,
ChatRoomModule
::
class
,
ChatRoomFragmentProvider
::
class
,
ChatRoomFragmentProvider
::
class
,
MembersFragmentProvider
::
class
,
MembersFragmentProvider
::
class
,
MentionsFragmentProvider
::
class
,
PinnedMessagesFragmentProvider
::
class
,
PinnedMessagesFragmentProvider
::
class
,
FavoriteMessagesFragmentProvider
::
class
,
FavoriteMessagesFragmentProvider
::
class
,
FilesFragmentProvider
::
class
FilesFragmentProvider
::
class
...
...
app/src/main/java/chat/rocket/android/files/presentation/FilesView.kt
View file @
77bcd4d6
...
@@ -8,7 +8,7 @@ import chat.rocket.android.files.uimodel.FileUiModel
...
@@ -8,7 +8,7 @@ import chat.rocket.android.files.uimodel.FileUiModel
interface
FilesView
:
MessageView
,
LoadingView
{
interface
FilesView
:
MessageView
,
LoadingView
{
/**
/**
* Show list of files for the current room.
* Show
s the
list of files for the current room.
*
*
* @param dataSet The data set to show.
* @param dataSet The data set to show.
* @param total The total number of files.
* @param total The total number of files.
...
...
app/src/main/java/chat/rocket/android/mentions/di/MentionsFragmentModule.kt
0 → 100644
View file @
77bcd4d6
package
chat.rocket.android.mentions.di
import
androidx.lifecycle.LifecycleOwner
import
chat.rocket.android.core.lifecycle.CancelStrategy
import
chat.rocket.android.dagger.scope.PerFragment
import
chat.rocket.android.mentions.presentention.MentionsView
import
chat.rocket.android.mentions.ui.MentionsFragment
import
chat.rocket.android.server.domain.GetCurrentServerInteractor
import
dagger.Module
import
dagger.Provides
import
kotlinx.coroutines.experimental.Job
import
javax.inject.Named
@Module
class
MentionsFragmentModule
{
@Provides
@PerFragment
fun
provideMentionsView
(
frag
:
MentionsFragment
):
MentionsView
{
return
frag
}
@Provides
@PerFragment
@Named
(
"currentServer"
)
fun
provideCurrentServer
(
currentServerInteractor
:
GetCurrentServerInteractor
):
String
{
return
currentServerInteractor
.
get
()
!!
}
@Provides
@PerFragment
fun
provideJob
()
=
Job
()
@Provides
@PerFragment
fun
provideLifecycleOwner
(
frag
:
MentionsFragment
):
LifecycleOwner
{
return
frag
}
@Provides
@PerFragment
fun
provideCancelStrategy
(
owner
:
LifecycleOwner
,
jobs
:
Job
):
CancelStrategy
{
return
CancelStrategy
(
owner
,
jobs
)
}
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/mentions/di/MentionsFragmentProvider.kt
0 → 100644
View file @
77bcd4d6
package
chat.rocket.android.mentions.di
import
chat.rocket.android.dagger.scope.PerFragment
import
chat.rocket.android.mentions.ui.MentionsFragment
import
dagger.Module
import
dagger.android.ContributesAndroidInjector
@Module
abstract
class
MentionsFragmentProvider
{
@ContributesAndroidInjector
(
modules
=
[
MentionsFragmentModule
::
class
])
@PerFragment
abstract
fun
provideMentionsFragment
():
MentionsFragment
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/mentions/presentention/MentionsPresenter.kt
0 → 100644
View file @
77bcd4d6
package
chat.rocket.android.mentions.presentention
import
chat.rocket.android.chatroom.uimodel.UiModelMapper
import
chat.rocket.android.core.lifecycle.CancelStrategy
import
chat.rocket.android.server.infraestructure.RocketChatClientFactory
import
chat.rocket.android.util.extensions.launchUI
import
chat.rocket.common.RocketChatException
import
chat.rocket.common.util.ifNull
import
chat.rocket.core.internal.rest.getMentions
import
timber.log.Timber
import
javax.inject.Inject
import
javax.inject.Named
class
MentionsPresenter
@Inject
constructor
(
private
val
view
:
MentionsView
,
@Named
(
"currentServer"
)
private
val
currentServer
:
String
,
private
val
strategy
:
CancelStrategy
,
private
val
mapper
:
UiModelMapper
,
val
factory
:
RocketChatClientFactory
)
{
private
val
client
=
factory
.
create
(
currentServer
)
private
var
offset
:
Long
=
0
/**
* Loads all the authenticated user mentions for the given room id.
*
* @param roomId The id of the room to get the mentions for the authenticated user from.
*/
fun
loadMentions
(
roomId
:
String
)
{
launchUI
(
strategy
)
{
try
{
view
.
showLoading
()
val
mentions
=
client
.
getMentions
(
roomId
,
offset
,
30
)
val
mentionsList
=
mapper
.
map
(
mentions
.
result
,
asNotReversed
=
true
)
view
.
showMentions
(
mentionsList
)
offset
+=
1
*
30
}
catch
(
exception
:
RocketChatException
)
{
Timber
.
e
(
exception
)
exception
.
message
?.
let
{
view
.
showMessage
(
it
)
}.
ifNull
{
view
.
showGenericErrorMessage
()
}
}
finally
{
view
.
hideLoading
()
}
}
}
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/mentions/presentention/MentionsView.kt
0 → 100644
View file @
77bcd4d6
package
chat.rocket.android.mentions.presentention
import
chat.rocket.android.chatroom.uimodel.BaseUiModel
import
chat.rocket.android.core.behaviours.LoadingView
import
chat.rocket.android.core.behaviours.MessageView
interface
MentionsView
:
MessageView
,
LoadingView
{
/**
* Shows the list of mentions for the current room.
*
* @param mentions The list of mentions.
*/
fun
showMentions
(
mentions
:
List
<
BaseUiModel
<*
>>)
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/mentions/ui/MentionsFragment.kt
0 → 100644
View file @
77bcd4d6
package
chat.rocket.android.mentions.ui
import
android.os.Bundle
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
androidx.core.view.isVisible
import
androidx.fragment.app.Fragment
import
androidx.recyclerview.widget.DefaultItemAnimator
import
androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.RecyclerView
import
chat.rocket.android.R
import
chat.rocket.android.chatroom.adapter.ChatRoomAdapter
import
chat.rocket.android.chatroom.ui.ChatRoomActivity
import
chat.rocket.android.chatroom.uimodel.BaseUiModel
import
chat.rocket.android.helper.EndlessRecyclerViewScrollListener
import
chat.rocket.android.mentions.presentention.MentionsPresenter
import
chat.rocket.android.mentions.presentention.MentionsView
import
chat.rocket.android.util.extensions.inflate
import
chat.rocket.android.util.extensions.showToast
import
chat.rocket.android.util.extensions.ui
import
dagger.android.support.AndroidSupportInjection
import
kotlinx.android.synthetic.main.fragment_mentions.*
import
javax.inject.Inject
fun
newInstance
(
chatRoomId
:
String
):
Fragment
{
return
MentionsFragment
().
apply
{
arguments
=
Bundle
(
1
).
apply
{
putString
(
BUNDLE_CHAT_ROOM_ID
,
chatRoomId
)
}
}
}
private
const
val
BUNDLE_CHAT_ROOM_ID
=
"chat_room_id"
class
MentionsFragment
:
Fragment
(),
MentionsView
{
private
lateinit
var
chatRoomId
:
String
private
lateinit
var
adapter
:
ChatRoomAdapter
@Inject
lateinit
var
presenter
:
MentionsPresenter
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
AndroidSupportInjection
.
inject
(
this
)
val
bundle
=
arguments
if
(
bundle
!=
null
)
{
chatRoomId
=
bundle
.
getString
(
BUNDLE_CHAT_ROOM_ID
)
}
else
{
requireNotNull
(
bundle
)
{
"no arguments supplied when the fragment was instantiated"
}
}
}
override
fun
onCreateView
(
inflater
:
LayoutInflater
,
container
:
ViewGroup
?,
savedInstanceState
:
Bundle
?
):
View
?
=
container
?.
inflate
(
R
.
layout
.
fragment_mentions
)
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
super
.
onViewCreated
(
view
,
savedInstanceState
)
setupToolbar
()
presenter
.
loadMentions
(
chatRoomId
)
}
override
fun
showMentions
(
mentions
:
List
<
BaseUiModel
<*
>>)
{
ui
{
if
(
recycler_view
.
adapter
==
null
)
{
adapter
=
ChatRoomAdapter
(
enableActions
=
false
)
recycler_view
.
adapter
=
adapter
val
linearLayoutManager
=
LinearLayoutManager
(
context
)
recycler_view
.
layoutManager
=
linearLayoutManager
recycler_view
.
itemAnimator
=
DefaultItemAnimator
()
if
(
mentions
.
size
>=
30
)
{
recycler_view
.
addOnScrollListener
(
object
:
EndlessRecyclerViewScrollListener
(
linearLayoutManager
)
{
override
fun
onLoadMore
(
page
:
Int
,
totalItemsCount
:
Int
,
recyclerView
:
RecyclerView
)
{
presenter
.
loadMentions
(
chatRoomId
)
}
})
}
group_no_mention
.
isVisible
=
mentions
.
isEmpty
()
}
adapter
.
appendData
(
mentions
)
}
}
override
fun
showMessage
(
resId
:
Int
)
{
ui
{
showToast
(
resId
)
}
}
override
fun
showMessage
(
message
:
String
)
{
ui
{
showToast
(
message
)
}
}
override
fun
showGenericErrorMessage
()
=
showMessage
(
getString
(
R
.
string
.
msg_generic_error
))
override
fun
showLoading
()
{
ui
{
view_loading
.
isVisible
=
true
}
}
override
fun
hideLoading
()
{
ui
{
view_loading
.
isVisible
=
false
}
}
private
fun
setupToolbar
()
{
(
activity
as
ChatRoomActivity
).
let
{
it
.
showToolbarTitle
(
getString
(
R
.
string
.
msg_mentions
))
it
.
hideToolbarChatRoomIcon
()
}
}
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/pinnedmessages/di/PinnedMessagesFragmentModule.kt
View file @
77bcd4d6
package
chat.rocket.android.
chatroom
.di
package
chat.rocket.android.
pinnedmessages
.di
import
androidx.lifecycle.LifecycleOwner
import
androidx.lifecycle.LifecycleOwner
import
chat.rocket.android.core.lifecycle.CancelStrategy
import
chat.rocket.android.core.lifecycle.CancelStrategy
...
...
app/src/main/java/chat/rocket/android/pinnedmessages/di/PinnedMessagesFragmentProvider.kt
View file @
77bcd4d6
package
chat.rocket.android.pinnedmessages.di
package
chat.rocket.android.pinnedmessages.di
import
chat.rocket.android.dagger.scope.PerFragment
import
chat.rocket.android.dagger.scope.PerFragment
import
chat.rocket.android.chatroom.di.PinnedMessagesFragmentModule
import
chat.rocket.android.pinnedmessages.ui.PinnedMessagesFragment
import
chat.rocket.android.pinnedmessages.ui.PinnedMessagesFragment
import
dagger.Module
import
dagger.Module
import
dagger.android.ContributesAndroidInjector
import
dagger.android.ContributesAndroidInjector
...
...
app/src/main/res/layout/fragment_mentions.xml
0 → 100644
View file @
77bcd4d6
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".mentions.ui.MentionsFragment"
>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/recycler_view"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:scrollbars=
"vertical"
/>
<com.wang.avi.AVLoadingIndicatorView
android:id=
"@+id/view_loading"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:visibility=
"gone"
app:indicatorColor=
"@color/colorBlack"
app:indicatorName=
"BallPulseIndicator"
app:layout_constraintBottom_toBottomOf=
"@+id/recycler_view"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ImageView
android:id=
"@+id/image_mention"
android:layout_width=
"100dp"
android:layout_height=
"100dp"
android:src=
"@drawable/ic_at_black_24dp"
android:tint=
"@color/icon_grey"
app:layout_constraintBottom_toTopOf=
"@+id/text_no_mention"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintVertical_chainStyle=
"packed"
/>
<TextView
android:id=
"@+id/text_no_mention"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"24dp"
android:text=
"@string/msg_no_mention"
android:textColor=
"@color/colorSecondaryText"
android:textSize=
"20sp"
android:textStyle=
"bold"
app:layout_constraintBottom_toTopOf=
"@+id/text_all_mentions_appear_here"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/image_mention"
/>
<TextView
android:id=
"@+id/text_all_mentions_appear_here"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"16dp"
android:text=
"@string/msg_all_the_mentions_appear_here"
android:textAlignment=
"center"
android:textColor=
"@color/colorSecondaryTextLight"
android:textSize=
"16sp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/text_no_mention"
/>
<androidx.constraintlayout.widget.Group
android:id=
"@+id/group_no_mention"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:visibility=
"gone"
app:constraint_referenced_ids=
"image_mention,text_no_mention,text_all_mentions_appear_here"
tools:visibility=
"visible"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/menu/chatroom_actions.xml
View file @
77bcd4d6
...
@@ -6,6 +6,11 @@
...
@@ -6,6 +6,11 @@
android:title=
"@string/title_members_list"
android:title=
"@string/title_members_list"
android:showAsAction=
"never"
/>
android:showAsAction=
"never"
/>
<item
android:id=
"@+id/action_mentions"
android:title=
"@string/msg_mentions"
app:showAsAction=
"never"
/>
<item
<item
android:id=
"@+id/action_pinned_messages"
android:id=
"@+id/action_pinned_messages"
android:title=
"@string/title_pinned_messages"
android:title=
"@string/title_pinned_messages"
...
...
app/src/main/res/values-es/strings.xml
View file @
77bcd4d6
...
@@ -191,6 +191,12 @@
...
@@ -191,6 +191,12 @@
<!-- Members List -->
<!-- Members List -->
<string
name=
"title_members_list"
>
Miembros
</string>
<string
name=
"title_members_list"
>
Miembros
</string>
<!-- Mentions -->
<!-- TODO Add proper translation-->
<string
name=
"msg_mentions"
>
Mentions
</string>
<string
name=
"msg_no_mention"
>
No mention
</string>
<string
name=
"msg_all_the_mentions_appear_here"
>
All the mentions\nappear here
</string>
<!-- Pinned Messages -->
<!-- Pinned Messages -->
<string
name=
"title_pinned_messages"
>
Mensajes fijados
</string>
<string
name=
"title_pinned_messages"
>
Mensajes fijados
</string>
<string
name=
"no_pinned_messages"
>
Sin mensajes fijadas
</string>
<string
name=
"no_pinned_messages"
>
Sin mensajes fijadas
</string>
...
...
app/src/main/res/values-fr/strings.xml
View file @
77bcd4d6
...
@@ -192,6 +192,12 @@
...
@@ -192,6 +192,12 @@
<!-- Members List -->
<!-- Members List -->
<string
name=
"title_members_list"
>
Membres
</string>
<string
name=
"title_members_list"
>
Membres
</string>
<!-- Mentions -->
<!-- TODO Add proper translation-->
<string
name=
"msg_mentions"
>
Mentions
</string>
<string
name=
"msg_no_mention"
>
No mention
</string>
<string
name=
"msg_all_the_mentions_appear_here"
>
All the mentions\nappear here
</string>
<!-- Pinned Messages -->
<!-- Pinned Messages -->
<string
name=
"title_pinned_messages"
>
Messages épinglés
</string>
<string
name=
"title_pinned_messages"
>
Messages épinglés
</string>
<string
name=
"no_pinned_messages"
>
Aucun message épinglé
</string>
<string
name=
"no_pinned_messages"
>
Aucun message épinglé
</string>
...
...
app/src/main/res/values-hi-rIN/strings.xml
View file @
77bcd4d6
...
@@ -178,6 +178,12 @@
...
@@ -178,6 +178,12 @@
<!-- Members List -->
<!-- Members List -->
<string
name=
"title_members_list"
>
सदस्य
</string>
<string
name=
"title_members_list"
>
सदस्य
</string>
<!-- Mentions -->
<!-- TODO Add proper translation-->
<string
name=
"msg_mentions"
>
Mentions
</string>
<string
name=
"msg_no_mention"
>
No mention
</string>
<string
name=
"msg_all_the_mentions_appear_here"
>
All the mentions\nappear here
</string>
<!-- Pinned Messages -->
<!-- Pinned Messages -->
<string
name=
"title_pinned_messages"
>
पिन किए गए संदेश
</string>
<string
name=
"title_pinned_messages"
>
पिन किए गए संदेश
</string>
<string
name=
"no_pinned_messages"
>
कोई पिन संदेश नहीं
</string>
<string
name=
"no_pinned_messages"
>
कोई पिन संदेश नहीं
</string>
...
...
app/src/main/res/values-pt-rBR/strings.xml
View file @
77bcd4d6
...
@@ -175,21 +175,26 @@
...
@@ -175,21 +175,26 @@
<!-- Members List -->
<!-- Members List -->
<string
name=
"title_members_list"
>
Membros
</string>
<string
name=
"title_members_list"
>
Membros
</string>
<!-- Mentions -->
<string
name=
"msg_mentions"
>
Menções
</string>
<string
name=
"msg_no_mention"
>
Nenhuma menção
</string>
<string
name=
"msg_all_the_mentions_appear_here"
>
Todas menções\naparecerão aqui
</string>
<!-- Pinned Messages -->
<!-- Pinned Messages -->
<string
name=
"title_pinned_messages"
>
Mensagens Pinadas
</string>
<string
name=
"title_pinned_messages"
>
Mensagens Pinadas
</string>
<string
name=
"no_pinned_messages"
>
Nenhuma mensagem pinada
</string>
<string
name=
"no_pinned_messages"
>
Nenhuma mensagem pinada
</string>
<string
name=
"no_pinned_description"
>
Todas
as
mensagens pinadas\naparecerão aqui
</string>
<string
name=
"no_pinned_description"
>
Todas mensagens pinadas\naparecerão aqui
</string>
<!-- Favorite Messages -->
<!-- Favorite Messages -->
<string
name=
"title_favorite_messages"
>
Messagens Favoritas
</string>
<string
name=
"title_favorite_messages"
>
Messagens Favoritas
</string>
<string
name=
"no_favorite_messages"
>
Nenhuma messagem favorita
</string>
<string
name=
"no_favorite_messages"
>
Nenhuma messagem favorita
</string>
<string
name=
"no_favorite_description"
>
Todas
as
mensagens favoritas\naparecerão aqui
</string>
<string
name=
"no_favorite_description"
>
Todas mensagens favoritas\naparecerão aqui
</string>
<!-- Files -->
<!-- Files -->
<string
name=
"msg_files"
>
Arquivos
</string>
<string
name=
"msg_files"
>
Arquivos
</string>
<string
name=
"title_files_total"
>
Arquivos (%d)
</string>
<string
name=
"title_files_total"
>
Arquivos (%d)
</string>
<string
name=
"msg_no_files"
>
Nenhum arquivo
</string>
<string
name=
"msg_no_files"
>
Nenhum arquivo
</string>
<string
name=
"msg_all_files_appear_here"
>
Todos
os
arquivos aparecerão aqui
</string>
<string
name=
"msg_all_files_appear_here"
>
Todos arquivos aparecerão aqui
</string>
<!-- Upload Messages -->
<!-- Upload Messages -->
<string
name=
"max_file_size_exceeded"
>
Tamanho de arquivo (%1$d bytes) excedeu tamanho máximo de upload (%2$d bytes)
</string>
<string
name=
"max_file_size_exceeded"
>
Tamanho de arquivo (%1$d bytes) excedeu tamanho máximo de upload (%2$d bytes)
</string>
...
...
app/src/main/res/values-uk-rRU/strings.xml
View file @
77bcd4d6
...
@@ -171,6 +171,11 @@
...
@@ -171,6 +171,11 @@
<!-- Members List -->
<!-- Members List -->
<string
name=
"title_members_list"
>
Пользователи
</string>
<string
name=
"title_members_list"
>
Пользователи
</string>
<!-- Mentions -->
<string
name=
"msg_mentions"
>
Упоминания
</string>
<string
name=
"msg_no_mention"
>
Нет упоминаний
</string>
<string
name=
"msg_all_the_mentions_appear_here"
>
Все упоминания\nотображаются здесь
</string>
<!-- Pinned Messages -->
<!-- Pinned Messages -->
<string
name=
"title_pinned_messages"
>
Прикрепленные сообщения
</string>
<string
name=
"title_pinned_messages"
>
Прикрепленные сообщения
</string>
<string
name=
"no_pinned_messages"
>
Нет прикрепленных сообщений
</string>
<string
name=
"no_pinned_messages"
>
Нет прикрепленных сообщений
</string>
...
...
app/src/main/res/values/strings.xml
View file @
77bcd4d6
...
@@ -174,6 +174,11 @@
...
@@ -174,6 +174,11 @@
<!-- Members List -->
<!-- Members List -->
<string
name=
"title_members_list"
>
Members
</string>
<string
name=
"title_members_list"
>
Members
</string>
<!-- Mentions -->
<string
name=
"msg_mentions"
>
Mentions
</string>
<string
name=
"msg_no_mention"
>
No mention
</string>
<string
name=
"msg_all_the_mentions_appear_here"
>
All the mentions\nappear here
</string>
<!-- Pinned Messages -->
<!-- Pinned Messages -->
<string
name=
"title_pinned_messages"
>
Pinned Messages
</string>
<string
name=
"title_pinned_messages"
>
Pinned Messages
</string>
<string
name=
"no_pinned_messages"
>
No pinned messages
</string>
<string
name=
"no_pinned_messages"
>
No pinned messages
</string>
...
...
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