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
fa6ed6cd
Unverified
Commit
fa6ed6cd
authored
Nov 13, 2018
by
Lucio Maciel
Committed by
GitHub
Nov 13, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' into new/delete-my-account
parents
722b8caa
ad7e04f5
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
120 additions
and
75 deletions
+120
-75
ChatRoomPresenter.kt
...rocket/android/chatroom/presentation/ChatRoomPresenter.kt
+6
-2
ChatRoomFragment.kt
.../java/chat/rocket/android/chatroom/ui/ChatRoomFragment.kt
+9
-1
RoomUiModel.kt
...hat/rocket/android/chatrooms/adapter/model/RoomUiModel.kt
+3
-2
ChatRoomsPresenter.kt
...cket/android/chatrooms/presentation/ChatRoomsPresenter.kt
+2
-1
ChatRoomsViewModel.kt
.../rocket/android/chatrooms/viewmodel/ChatRoomsViewModel.kt
+2
-2
DatabaseManager.kt
app/src/main/java/chat/rocket/android/db/DatabaseManager.kt
+51
-46
RCDatabase.kt
app/src/main/java/chat/rocket/android/db/RCDatabase.kt
+5
-2
ChatRoomEntity.kt
.../main/java/chat/rocket/android/db/model/ChatRoomEntity.kt
+6
-2
strings.xml
app/src/main/res/values-de/strings.xml
+2
-0
strings.xml
app/src/main/res/values-es/strings.xml
+2
-0
strings.xml
app/src/main/res/values-fr/strings.xml
+2
-0
strings.xml
app/src/main/res/values-hi-rIN/strings.xml
+2
-0
strings.xml
app/src/main/res/values-ja/strings.xml
+18
-15
strings.xml
app/src/main/res/values-pt-rBR/strings.xml
+3
-2
strings.xml
app/src/main/res/values-ru-rRU/strings.xml
+2
-0
strings.xml
app/src/main/res/values-tr/strings.xml
+2
-0
strings.xml
app/src/main/res/values-uk/strings.xml
+2
-0
strings.xml
app/src/main/res/values/strings.xml
+1
-0
No files found.
app/src/main/java/chat/rocket/android/chatroom/presentation/ChatRoomPresenter.kt
View file @
fa6ed6cd
...
@@ -38,6 +38,7 @@ import chat.rocket.android.util.extension.compressImageAndGetByteArray
...
@@ -38,6 +38,7 @@ import chat.rocket.android.util.extension.compressImageAndGetByteArray
import
chat.rocket.android.util.extension.getByteArray
import
chat.rocket.android.util.extension.getByteArray
import
chat.rocket.android.util.extension.launchUI
import
chat.rocket.android.util.extension.launchUI
import
chat.rocket.android.util.extensions.avatarUrl
import
chat.rocket.android.util.extensions.avatarUrl
import
chat.rocket.android.util.extensions.exhaustive
import
chat.rocket.android.util.retryIO
import
chat.rocket.android.util.retryIO
import
chat.rocket.common.RocketChatException
import
chat.rocket.common.RocketChatException
import
chat.rocket.common.model.RoomType
import
chat.rocket.common.model.RoomType
...
@@ -137,9 +138,12 @@ class ChatRoomPresenter @Inject constructor(
...
@@ -137,9 +138,12 @@ class ChatRoomPresenter @Inject constructor(
}
finally
{
}
finally
{
// User has at least an 'owner' or 'moderator' role.
// User has at least an 'owner' or 'moderator' role.
val
userCanMod
=
isOwnerOrMod
()
val
userCanMod
=
isOwnerOrMod
()
val
chatRoom
=
dbManager
.
getRoom
(
roomId
)
val
muted
=
chatRoom
?.
chatRoom
?.
muted
?:
emptyList
()
// Can post anyway if has the 'post-readonly' permission on server.
// Can post anyway if has the 'post-readonly' permission on server.
val
userCanPost
=
userCanMod
||
permissions
.
canPostToReadOnlyChannels
()
val
userCanPost
=
userCanMod
||
permissions
.
canPostToReadOnlyChannels
()
||
chatIsBroadcast
=
dbManager
.
getRoom
(
roomId
)
?.
chatRoom
?.
run
{
!
muted
.
contains
(
currentLoggedUsername
)
chatIsBroadcast
=
chatRoom
?.
chatRoom
?.
run
{
broadcast
broadcast
}
?:
false
}
?:
false
view
.
onRoomUpdated
(
userCanPost
,
chatIsBroadcast
,
userCanMod
)
view
.
onRoomUpdated
(
userCanPost
,
chatIsBroadcast
,
userCanMod
)
...
...
app/src/main/java/chat/rocket/android/chatroom/ui/ChatRoomFragment.kt
View file @
fa6ed6cd
...
@@ -770,9 +770,17 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
...
@@ -770,9 +770,17 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
}
}
private
fun
setupMessageComposer
(
canPost
:
Boolean
)
{
private
fun
setupMessageComposer
(
canPost
:
Boolean
)
{
if
(
isReadOnly
&&
!
canPost
)
{
if
(!
canPost
)
{
text_room_is_read_only
.
isVisible
=
true
text_room_is_read_only
.
isVisible
=
true
input_container
.
isVisible
=
false
input_container
.
isVisible
=
false
text_room_is_read_only
.
setText
(
if
(
isReadOnly
)
{
R
.
string
.
msg_this_room_is_read_only
}
else
{
// Not a read-only channel but user has been muted.
R
.
string
.
msg_muted_on_this_channel
}
)
}
else
if
(!
isSubscribed
&&
roomTypeOf
(
chatRoomType
)
!
is
RoomType
.
DirectMessage
)
{
}
else
if
(!
isSubscribed
&&
roomTypeOf
(
chatRoomType
)
!
is
RoomType
.
DirectMessage
)
{
input_container
.
isVisible
=
false
input_container
.
isVisible
=
false
button_join_chat
.
isVisible
=
true
button_join_chat
.
isVisible
=
true
...
...
app/src/main/java/chat/rocket/android/chatrooms/adapter/model/RoomUiModel.kt
View file @
fa6ed6cd
...
@@ -14,5 +14,6 @@ data class RoomUiModel(
...
@@ -14,5 +14,6 @@ data class RoomUiModel(
val
alert
:
Boolean
=
false
,
val
alert
:
Boolean
=
false
,
val
lastMessage
:
CharSequence
?
=
null
,
val
lastMessage
:
CharSequence
?
=
null
,
val
status
:
UserStatus
?
=
null
,
val
status
:
UserStatus
?
=
null
,
val
username
:
String
?
=
null
val
username
:
String
?
=
null
,
)
val
muted
:
List
<
String
>
=
emptyList
()
\ No newline at end of file
)
app/src/main/java/chat/rocket/android/chatrooms/presentation/ChatRoomsPresenter.kt
View file @
fa6ed6cd
...
@@ -56,7 +56,8 @@ class ChatRoomsPresenter @Inject constructor(
...
@@ -56,7 +56,8 @@ class ChatRoomsPresenter @Inject constructor(
type
=
type
.
toString
(),
type
=
type
.
toString
(),
name
=
username
?:
name
.
toString
(),
name
=
username
?:
name
.
toString
(),
fullname
=
name
.
toString
(),
fullname
=
name
.
toString
(),
open
=
open
open
=
open
,
muted
=
muted
)
)
loadChatRoom
(
entity
,
false
)
loadChatRoom
(
entity
,
false
)
}
}
...
...
app/src/main/java/chat/rocket/android/chatrooms/viewmodel/ChatRoomsViewModel.kt
View file @
fa6ed6cd
...
@@ -27,7 +27,7 @@ import kotlinx.coroutines.experimental.launch
...
@@ -27,7 +27,7 @@ import kotlinx.coroutines.experimental.launch
import
kotlinx.coroutines.experimental.newSingleThreadContext
import
kotlinx.coroutines.experimental.newSingleThreadContext
import
kotlinx.coroutines.experimental.withContext
import
kotlinx.coroutines.experimental.withContext
import
timber.log.Timber
import
timber.log.Timber
import
java.
security.InvalidParameter
Exception
import
java.
lang.IllegalArgument
Exception
import
kotlin.coroutines.experimental.coroutineContext
import
kotlin.coroutines.experimental.coroutineContext
...
@@ -171,6 +171,6 @@ fun Query.asSortingOrder(): ChatRoomsRepository.Order {
...
@@ -171,6 +171,6 @@ fun Query.asSortingOrder(): ChatRoomsRepository.Order {
ChatRoomsRepository
.
Order
.
ACTIVITY
ChatRoomsRepository
.
Order
.
ACTIVITY
}
}
}
}
else
->
throw
I
nvalidParameter
Exception
(
"Should be ByName or ByActivity"
)
else
->
throw
I
llegalArgument
Exception
(
"Should be ByName or ByActivity"
)
}
}
}
}
app/src/main/java/chat/rocket/android/db/DatabaseManager.kt
View file @
fa6ed6cd
...
@@ -41,13 +41,12 @@ import timber.log.Timber
...
@@ -41,13 +41,12 @@ import timber.log.Timber
import
java.util.HashSet
import
java.util.HashSet
import
kotlin.system.measureTimeMillis
import
kotlin.system.measureTimeMillis
class
DatabaseManager
(
val
context
:
Application
,
class
DatabaseManager
(
val
context
:
Application
,
val
serverUrl
:
String
)
{
val
serverUrl
:
String
)
{
private
val
database
:
RCDatabase
=
androidx
.
room
.
Room
.
databaseBuilder
(
context
,
private
val
database
:
RCDatabase
=
androidx
.
room
.
Room
.
databaseBuilder
(
context
,
RCDatabase
::
class
.
java
,
serverUrl
.
databaseName
())
RCDatabase
::
class
.
java
,
serverUrl
.
databaseName
())
.
fallbackToDestructiveMigration
()
.
fallbackToDestructiveMigration
()
.
build
()
.
build
()
private
val
dbContext
=
newSingleThreadContext
(
"$serverUrl-db-context"
)
private
val
dbContext
=
newSingleThreadContext
(
"$serverUrl-db-context"
)
private
val
dbManagerContext
=
newSingleThreadContext
(
"$serverUrl-db-manager-context"
)
private
val
dbManagerContext
=
newSingleThreadContext
(
"$serverUrl-db-manager-context"
)
...
@@ -124,11 +123,11 @@ class DatabaseManager(val context: Application,
...
@@ -124,11 +123,11 @@ class DatabaseManager(val context: Application,
val
toInsert
=
ArrayList
<
ChatRoomEntity
>(
batch
.
size
/
2
)
val
toInsert
=
ArrayList
<
ChatRoomEntity
>(
batch
.
size
/
2
)
val
toUpdate
=
ArrayList
<
ChatRoomEntity
>(
batch
.
size
)
val
toUpdate
=
ArrayList
<
ChatRoomEntity
>(
batch
.
size
)
batch
.
forEach
{
batch
.
forEach
{
when
(
it
.
type
)
{
when
(
it
.
type
)
{
is
Type
.
Removed
->
toRemove
.
add
(
removeChatRoom
(
it
.
data
))
is
Type
.
Removed
->
toRemove
.
add
(
removeChatRoom
(
it
.
data
))
is
Type
.
Inserted
->
insertChatRoom
(
it
.
data
)
?.
let
{
toInsert
.
add
(
it
)
}
is
Type
.
Inserted
->
insertChatRoom
(
it
.
data
)
?.
let
{
toInsert
.
add
(
it
)
}
is
Type
.
Updated
->
{
is
Type
.
Updated
->
{
when
(
it
.
data
)
{
when
(
it
.
data
)
{
is
Subscription
->
updateSubs
[(
it
.
data
as
Subscription
).
roomId
]
=
it
.
data
as
Subscription
is
Subscription
->
updateSubs
[(
it
.
data
as
Subscription
).
roomId
]
=
it
.
data
as
Subscription
is
Room
->
updateRooms
[(
it
.
data
as
Room
).
id
]
=
it
.
data
as
Room
is
Room
->
updateRooms
[(
it
.
data
as
Room
).
id
]
=
it
.
data
as
Room
}
}
...
@@ -154,10 +153,10 @@ class DatabaseManager(val context: Application,
...
@@ -154,10 +153,10 @@ class DatabaseManager(val context: Application,
launch
(
dbManagerContext
)
{
launch
(
dbManagerContext
)
{
val
user
=
userDao
().
getUser
(
myself
.
id
)
val
user
=
userDao
().
getUser
(
myself
.
id
)
val
entity
=
user
?.
copy
(
val
entity
=
user
?.
copy
(
name
=
myself
.
name
?:
user
.
name
,
name
=
myself
.
name
?:
user
.
name
,
username
=
myself
.
username
?:
user
.
username
,
username
=
myself
.
username
?:
user
.
username
,
utcOffset
=
myself
.
utcOffset
?:
user
.
utcOffset
,
utcOffset
=
myself
.
utcOffset
?:
user
.
utcOffset
,
status
=
myself
.
status
?.
toString
()
?:
user
.
status
status
=
myself
.
status
?.
toString
()
?:
user
.
status
)
?:
myself
.
asUser
().
toEntity
()
)
?:
myself
.
asUser
().
toEntity
()
Timber
.
d
(
"UPDATING SELF: $entity"
)
Timber
.
d
(
"UPDATING SELF: $entity"
)
...
@@ -187,7 +186,7 @@ class DatabaseManager(val context: Application,
...
@@ -187,7 +186,7 @@ class DatabaseManager(val context: Application,
private
suspend
fun
createMessageEntities
(
message
:
Message
):
Pair
<
MessageEntity
,
List
<
BaseMessageEntity
>>
{
private
suspend
fun
createMessageEntities
(
message
:
Message
):
Pair
<
MessageEntity
,
List
<
BaseMessageEntity
>>
{
val
messageEntity
=
message
.
toEntity
()
val
messageEntity
=
message
.
toEntity
()
val
list
=
mutableListOf
<
BaseMessageEntity
>()
val
list
=
mutableListOf
<
BaseMessageEntity
>()
createAttachments
(
message
)
?.
let
{
list
.
addAll
(
it
)
}
createAttachments
(
message
)
?.
let
{
list
.
addAll
(
it
)
}
createFavoriteRelations
(
message
)
?.
let
{
list
.
addAll
(
it
)
}
createFavoriteRelations
(
message
)
?.
let
{
list
.
addAll
(
it
)
}
createMentionRelations
(
message
)
?.
let
{
list
.
addAll
(
it
)
}
createMentionRelations
(
message
)
?.
let
{
list
.
addAll
(
it
)
}
createChannelRelations
(
message
)
?.
let
{
list
.
addAll
(
it
)
}
createChannelRelations
(
message
)
?.
let
{
list
.
addAll
(
it
)
}
...
@@ -225,7 +224,7 @@ class DatabaseManager(val context: Application,
...
@@ -225,7 +224,7 @@ class DatabaseManager(val context: Application,
val
list
=
mutableListOf
<
UrlEntity
>()
val
list
=
mutableListOf
<
UrlEntity
>()
message
.
urls
!!
.
forEach
{
url
->
message
.
urls
!!
.
forEach
{
url
->
list
.
add
(
UrlEntity
(
message
.
id
,
url
.
url
,
url
.
parsedUrl
?.
host
,
url
.
meta
?.
title
,
list
.
add
(
UrlEntity
(
message
.
id
,
url
.
url
,
url
.
parsedUrl
?.
host
,
url
.
meta
?.
title
,
url
.
meta
?.
description
,
url
.
meta
?.
imageUrl
))
url
.
meta
?.
description
,
url
.
meta
?.
imageUrl
))
}
}
return
list
return
list
...
@@ -329,7 +328,7 @@ class DatabaseManager(val context: Application,
...
@@ -329,7 +328,7 @@ class DatabaseManager(val context: Application,
}
}
private
fun
removeChatRoom
(
data
:
BaseRoom
):
String
{
private
fun
removeChatRoom
(
data
:
BaseRoom
):
String
{
return
when
(
data
)
{
return
when
(
data
)
{
is
Subscription
->
data
.
roomId
is
Subscription
->
data
.
roomId
else
->
data
.
id
else
->
data
.
id
}
}
...
@@ -344,14 +343,15 @@ class DatabaseManager(val context: Application,
...
@@ -344,14 +343,15 @@ class DatabaseManager(val context: Application,
insertUserIfMissing
(
user
)
insertUserIfMissing
(
user
)
chatRoom
.
copy
(
chatRoom
.
copy
(
name
=
name
?:
chatRoom
.
name
,
name
=
name
?:
chatRoom
.
name
,
fullname
=
fullName
?:
chatRoom
.
fullname
,
fullname
=
fullName
?:
chatRoom
.
fullname
,
ownerId
=
user
?.
id
?:
chatRoom
.
ownerId
,
ownerId
=
user
?.
id
?:
chatRoom
.
ownerId
,
readonly
=
readonly
,
readonly
=
readonly
,
updatedAt
=
updatedAt
?:
chatRoom
.
updatedAt
,
updatedAt
=
updatedAt
?:
chatRoom
.
updatedAt
,
lastMessageText
=
mapLastMessageText
(
lastMessage
),
lastMessageText
=
mapLastMessageText
(
lastMessage
),
lastMessageUserId
=
lastMessage
?.
sender
?.
id
,
lastMessageUserId
=
lastMessage
?.
sender
?.
id
,
lastMessageTimestamp
=
lastMessage
?.
timestamp
lastMessageTimestamp
=
lastMessage
?.
timestamp
,
muted
=
muted
)
)
}
}
}
}
...
@@ -386,30 +386,32 @@ class DatabaseManager(val context: Application,
...
@@ -386,30 +386,32 @@ class DatabaseManager(val context: Application,
val
chatRoom
=
current
.
chatRoom
val
chatRoom
=
current
.
chatRoom
chatRoom
.
copy
(
chatRoom
.
copy
(
id
=
roomId
,
id
=
roomId
,
subscriptionId
=
id
,
subscriptionId
=
id
,
type
=
type
.
toString
(),
type
=
type
.
toString
(),
name
=
name
?:
throw
NullPointerException
(),
// this should be filtered on the SDK
name
=
name
fullname
=
fullName
?:
chatRoom
.
fullname
,
?:
throw
NullPointerException
(),
// this should be filtered on the SDK
userId
=
userId
?:
chatRoom
.
userId
,
fullname
=
fullName
?:
chatRoom
.
fullname
,
readonly
=
readonly
?:
chatRoom
.
readonly
,
userId
=
userId
?:
chatRoom
.
userId
,
isDefault
=
isDefault
,
readonly
=
readonly
?:
chatRoom
.
readonly
,
favorite
=
isFavorite
,
isDefault
=
isDefault
,
open
=
open
,
favorite
=
isFavorite
,
alert
=
alert
,
open
=
open
,
unread
=
unread
,
alert
=
alert
,
userMentions
=
userMentions
?:
chatRoom
.
userMentions
,
unread
=
unread
,
groupMentions
=
groupMentions
?:
chatRoom
.
groupMentions
,
userMentions
=
userMentions
?:
chatRoom
.
userMentions
,
updatedAt
=
updatedAt
?:
chatRoom
.
updatedAt
,
groupMentions
=
groupMentions
?:
chatRoom
.
groupMentions
,
timestamp
=
timestamp
?:
chatRoom
.
timestamp
,
updatedAt
=
updatedAt
?:
chatRoom
.
updatedAt
,
lastSeen
=
lastSeen
?:
chatRoom
.
lastSeen
timestamp
=
timestamp
?:
chatRoom
.
timestamp
,
lastSeen
=
lastSeen
?:
chatRoom
.
lastSeen
,
muted
=
chatRoom
.
muted
)
)
}
}
}
}
}
}
private
suspend
fun
insertChatRoom
(
data
:
BaseRoom
):
ChatRoomEntity
?
{
private
suspend
fun
insertChatRoom
(
data
:
BaseRoom
):
ChatRoomEntity
?
{
return
when
(
data
)
{
return
when
(
data
)
{
is
Room
->
insertRoom
(
data
)
is
Room
->
insertRoom
(
data
)
is
Subscription
->
insertSubscription
(
data
)
is
Subscription
->
insertSubscription
(
data
)
else
->
null
else
->
null
...
@@ -451,7 +453,8 @@ class DatabaseManager(val context: Application,
...
@@ -451,7 +453,8 @@ class DatabaseManager(val context: Application,
id
=
room
.
id
,
id
=
room
.
id
,
subscriptionId
=
subscription
.
id
,
subscriptionId
=
subscription
.
id
,
type
=
room
.
type
.
toString
(),
type
=
room
.
type
.
toString
(),
name
=
room
.
name
?:
subscription
.
name
?:
throw
NullPointerException
(),
// this should be filtered on the SDK
name
=
room
.
name
?:
subscription
.
name
?:
throw
NullPointerException
(),
// this should be filtered on the SDK
fullname
=
subscription
.
fullName
?:
room
.
fullName
,
fullname
=
subscription
.
fullName
?:
room
.
fullName
,
userId
=
userId
,
userId
=
userId
,
ownerId
=
room
.
user
?.
id
,
ownerId
=
room
.
user
?.
id
,
...
@@ -506,7 +509,8 @@ class DatabaseManager(val context: Application,
...
@@ -506,7 +509,8 @@ class DatabaseManager(val context: Application,
lastMessageText
=
mapLastMessageText
(
lastMessage
),
lastMessageText
=
mapLastMessageText
(
lastMessage
),
lastMessageUserId
=
lastMessage
?.
sender
?.
id
,
lastMessageUserId
=
lastMessage
?.
sender
?.
id
,
lastMessageTimestamp
=
lastMessage
?.
timestamp
,
lastMessageTimestamp
=
lastMessage
?.
timestamp
,
broadcast
=
broadcast
broadcast
=
broadcast
,
muted
=
room
.
muted
)
)
}
}
}
}
...
@@ -579,6 +583,7 @@ sealed class Operation {
...
@@ -579,6 +583,7 @@ sealed class Operation {
val
toUpdate
:
List
<
ChatRoomEntity
>,
val
toUpdate
:
List
<
ChatRoomEntity
>,
val
toRemove
:
List
<
String
>
val
toRemove
:
List
<
String
>
)
:
Operation
()
)
:
Operation
()
data class
InsertRooms
(
val
chatRooms
:
List
<
ChatRoomEntity
>)
:
Operation
()
data class
InsertRooms
(
val
chatRooms
:
List
<
ChatRoomEntity
>)
:
Operation
()
data class
CleanInsertRooms
(
val
chatRooms
:
List
<
ChatRoomEntity
>)
:
Operation
()
data class
CleanInsertRooms
(
val
chatRooms
:
List
<
ChatRoomEntity
>)
:
Operation
()
...
@@ -607,10 +612,10 @@ private fun Myself.asUser(): User {
...
@@ -607,10 +612,10 @@ private fun Myself.asUser(): User {
private
fun
String
.
databaseName
():
String
{
private
fun
String
.
databaseName
():
String
{
val
tmp
=
this
.
removePrefix
(
"https://"
)
val
tmp
=
this
.
removePrefix
(
"https://"
)
.
removePrefix
(
"http://"
)
.
removePrefix
(
"http://"
)
.
removeTrailingSlash
()
.
removeTrailingSlash
()
.
replace
(
"/"
,
"-"
)
.
replace
(
"/"
,
"-"
)
.
replace
(
"."
,
"_"
)
.
replace
(
"."
,
"_"
)
return
"$tmp.db"
return
"$tmp.db"
}
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/db/RCDatabase.kt
View file @
fa6ed6cd
...
@@ -2,6 +2,7 @@ package chat.rocket.android.db
...
@@ -2,6 +2,7 @@ package chat.rocket.android.db
import
androidx.room.Database
import
androidx.room.Database
import
androidx.room.RoomDatabase
import
androidx.room.RoomDatabase
import
androidx.room.TypeConverters
import
chat.rocket.android.db.model.AttachmentActionEntity
import
chat.rocket.android.db.model.AttachmentActionEntity
import
chat.rocket.android.db.model.AttachmentEntity
import
chat.rocket.android.db.model.AttachmentEntity
import
chat.rocket.android.db.model.AttachmentFieldEntity
import
chat.rocket.android.db.model.AttachmentFieldEntity
...
@@ -14,6 +15,7 @@ import chat.rocket.android.db.model.MessagesSync
...
@@ -14,6 +15,7 @@ import chat.rocket.android.db.model.MessagesSync
import
chat.rocket.android.db.model.ReactionEntity
import
chat.rocket.android.db.model.ReactionEntity
import
chat.rocket.android.db.model.UrlEntity
import
chat.rocket.android.db.model.UrlEntity
import
chat.rocket.android.db.model.UserEntity
import
chat.rocket.android.db.model.UserEntity
import
chat.rocket.android.emoji.internal.db.StringListConverter
@Database
(
@Database
(
entities
=
[
entities
=
[
...
@@ -23,11 +25,12 @@ import chat.rocket.android.db.model.UserEntity
...
@@ -23,11 +25,12 @@ import chat.rocket.android.db.model.UserEntity
AttachmentFieldEntity
::
class
,
AttachmentActionEntity
::
class
,
UrlEntity
::
class
,
AttachmentFieldEntity
::
class
,
AttachmentActionEntity
::
class
,
UrlEntity
::
class
,
ReactionEntity
::
class
,
MessagesSync
::
class
ReactionEntity
::
class
,
MessagesSync
::
class
],
],
version
=
1
0
,
version
=
1
2
,
exportSchema
=
true
exportSchema
=
true
)
)
@TypeConverters
(
StringListConverter
::
class
)
abstract
class
RCDatabase
:
RoomDatabase
()
{
abstract
class
RCDatabase
:
RoomDatabase
()
{
abstract
fun
userDao
():
UserDao
abstract
fun
userDao
():
UserDao
abstract
fun
chatRoomDao
():
ChatRoomDao
abstract
fun
chatRoomDao
():
ChatRoomDao
abstract
fun
messageDao
():
MessageDao
abstract
fun
messageDao
():
MessageDao
}
}
\ No newline at end of file
app/src/main/java/chat/rocket/android/db/model/ChatRoomEntity.kt
View file @
fa6ed6cd
...
@@ -5,6 +5,8 @@ import androidx.room.Entity
...
@@ -5,6 +5,8 @@ import androidx.room.Entity
import
androidx.room.ForeignKey
import
androidx.room.ForeignKey
import
androidx.room.Index
import
androidx.room.Index
import
androidx.room.PrimaryKey
import
androidx.room.PrimaryKey
import
androidx.room.TypeConverters
import
chat.rocket.android.emoji.internal.db.StringListConverter
@Entity
(
tableName
=
"chatrooms"
,
@Entity
(
tableName
=
"chatrooms"
,
indices
=
[
indices
=
[
...
@@ -20,6 +22,7 @@ import androidx.room.PrimaryKey
...
@@ -20,6 +22,7 @@ import androidx.room.PrimaryKey
ForeignKey
(
entity
=
UserEntity
::
class
,
parentColumns
=
[
"id"
],
childColumns
=
[
"lastMessageUserId"
])
ForeignKey
(
entity
=
UserEntity
::
class
,
parentColumns
=
[
"id"
],
childColumns
=
[
"lastMessageUserId"
])
]
]
)
)
@TypeConverters
(
StringListConverter
::
class
)
data class
ChatRoomEntity
(
data class
ChatRoomEntity
(
@PrimaryKey
var
id
:
String
,
@PrimaryKey
var
id
:
String
,
var
subscriptionId
:
String
,
var
subscriptionId
:
String
,
...
@@ -42,7 +45,8 @@ data class ChatRoomEntity(
...
@@ -42,7 +45,8 @@ data class ChatRoomEntity(
var
lastMessageText
:
String
?
=
null
,
var
lastMessageText
:
String
?
=
null
,
var
lastMessageUserId
:
String
?
=
null
,
var
lastMessageUserId
:
String
?
=
null
,
var
lastMessageTimestamp
:
Long
?
=
null
,
var
lastMessageTimestamp
:
Long
?
=
null
,
var
broadcast
:
Boolean
?
=
false
var
broadcast
:
Boolean
?
=
false
,
var
muted
:
List
<
String
>?
=
null
)
)
data class
ChatRoom
(
data class
ChatRoom
(
...
@@ -52,4 +56,4 @@ data class ChatRoom(
...
@@ -52,4 +56,4 @@ data class ChatRoom(
var
status
:
String
?,
var
status
:
String
?,
var
lastMessageUserName
:
String
?,
var
lastMessageUserName
:
String
?,
var
lastMessageUserFullName
:
String
?
var
lastMessageUserFullName
:
String
?
)
)
\ No newline at end of file
app/src/main/res/values-de/strings.xml
View file @
fa6ed6cd
...
@@ -148,6 +148,8 @@
...
@@ -148,6 +148,8 @@
<string
name=
"msg_continue_with_wordpress"
>
Continue with
<b>
WordPress
</b></string>
<!-- TODO Add translation -->
<string
name=
"msg_continue_with_wordpress"
>
Continue with
<b>
WordPress
</b></string>
<!-- TODO Add translation -->
<string
name=
"msg_two_factor_authentication"
>
Two-factor Authentication
</string>
<!-- TODO Add translation -->
<string
name=
"msg_two_factor_authentication"
>
Two-factor Authentication
</string>
<!-- TODO Add translation -->
<string
name=
"msg__your_2fa_code"
>
What’s your 2FA code?
</string>
<!-- TODO Add translation -->
<string
name=
"msg__your_2fa_code"
>
What’s your 2FA code?
</string>
<!-- TODO Add translation -->
<!-- TODO - Add proper translation -->
<string
name=
"msg_muted_on_this_channel"
>
You are muted on this channel
</string>
<!-- Create channel messages -->
<!-- Create channel messages -->
<string
name=
"msg_private_channel"
>
Privat
</string>
<string
name=
"msg_private_channel"
>
Privat
</string>
...
...
app/src/main/res/values-es/strings.xml
View file @
fa6ed6cd
...
@@ -166,6 +166,8 @@
...
@@ -166,6 +166,8 @@
<string
name=
"msg_view_less"
>
view less
</string>
<string
name=
"msg_view_less"
>
view less
</string>
<!-- TODO - Add proper translation -->
<!-- TODO - Add proper translation -->
<string
name=
"msg_permalink_copied"
>
Permalink copied
</string>
<string
name=
"msg_permalink_copied"
>
Permalink copied
</string>
<!-- TODO - Add proper translation -->
<string
name=
"msg_muted_on_this_channel"
>
You are muted on this channel
</string>
<!-- Preferences messages -->
<!-- Preferences messages -->
<string
name=
"msg_analytics_tracking"
>
Analytics tracking
</string>
<!-- TODO Add translation -->
<string
name=
"msg_analytics_tracking"
>
Analytics tracking
</string>
<!-- TODO Add translation -->
...
...
app/src/main/res/values-fr/strings.xml
View file @
fa6ed6cd
...
@@ -158,6 +158,8 @@
...
@@ -158,6 +158,8 @@
<string
name=
"msg_view_less"
>
view less
</string>
<string
name=
"msg_view_less"
>
view less
</string>
<!-- TODO - Add proper translation -->
<!-- TODO - Add proper translation -->
<string
name=
"msg_permalink_copied"
>
Permalink copied
</string>
<string
name=
"msg_permalink_copied"
>
Permalink copied
</string>
<!-- TODO - Add proper translation -->
<string
name=
"msg_muted_on_this_channel"
>
You are muted on this channel
</string>
<!-- Create channel messages -->
<!-- Create channel messages -->
<string
name=
"msg_private_channel"
>
Privé
</string>
<string
name=
"msg_private_channel"
>
Privé
</string>
...
...
app/src/main/res/values-hi-rIN/strings.xml
View file @
fa6ed6cd
...
@@ -170,6 +170,8 @@
...
@@ -170,6 +170,8 @@
<string
name=
"msg_view_less"
>
कम देखें
</string>
<string
name=
"msg_view_less"
>
कम देखें
</string>
<!-- TODO - Add proper translation -->
<!-- TODO - Add proper translation -->
<string
name=
"msg_permalink_copied"
>
Permalink copied
</string>
<string
name=
"msg_permalink_copied"
>
Permalink copied
</string>
<!-- TODO - Add proper translation -->
<string
name=
"msg_muted_on_this_channel"
>
You are muted on this channel
</string>
<!-- Preferences messages -->
<!-- Preferences messages -->
<string
name=
"msg_analytics_tracking"
>
एनालिटिक्स ट्रैकिंग
</string>
<string
name=
"msg_analytics_tracking"
>
एनालिटिक्स ट्रैकिंग
</string>
...
...
app/src/main/res/values-ja/strings.xml
View file @
fa6ed6cd
...
@@ -141,22 +141,25 @@
...
@@ -141,22 +141,25 @@
<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_sent_attachment"
>
添付ファイルを送信しました
</string>
<string
name=
"msg_welcome_to_rocket_chat"
>
Welcome to Rocket.Chat
</string>
<!-- TODO Add translation -->
<string
name=
"msg_team_communication"
>
Team Communication
</string>
<!-- TODO Add translation -->
<string
name=
"msg_welcome_to_rocket_chat"
>
Rocket.Chatへようこそ
</string>
<string
name=
"msg_login_with_email"
>
Login with
<b>
e-mail
</b></string>
<!-- TODO Add translation -->
<string
name=
"msg_team_communication"
>
チームコミュニケーション
</string>
<string
name=
"msg_create_account"
>
Create an account
</string>
<!-- TODO Add translation -->
<string
name=
"msg_login_with_email"
><b>
e-mail
</b>
でログイン
</string>
<string
name=
"msg_continue_with_facebook"
>
Continue with
<b>
Facebook
</b></string>
<!-- TODO Add translation -->
<string
name=
"msg_create_account"
>
アカウントを作成
</string>
<string
name=
"msg_continue_with_github"
>
Continue with
<b>
Github
</b></string>
<!-- TODO Add translation -->
<string
name=
"msg_continue_with_facebook"
><b>
Facebook
</b>
でログイン
</string>
<string
name=
"msg_continue_with_google"
>
Continue with
<b>
Google
</b></string>
<!-- TODO Add translation -->
<string
name=
"msg_continue_with_github"
><b>
Github
</b>
でログイン
</string>
<string
name=
"msg_continue_with_linkedin"
>
Continue with
<b>
Linkedin
</b></string>
<!-- TODO Add translation -->
<string
name=
"msg_continue_with_google"
><b>
Google
</b>
でログイン
</string>
<string
name=
"msg_continue_with_gitlab"
>
Continue with
<b>
GitLab
</b></string>
<!-- TODO Add translation -->
<string
name=
"msg_continue_with_linkedin"
><b>
Linkedin
</b>
でログイン
</string>
<string
name=
"msg_continue_with_wordpress"
>
Continue with
<b>
WordPress
</b></string>
<!-- TODO Add translation -->
<string
name=
"msg_continue_with_gitlab"
><b>
GitLab
</b>
でログイン
</string>
<string
name=
"msg_two_factor_authentication"
>
Two-factor Authentication
</string>
<!-- TODO Add translation -->
<string
name=
"msg_continue_with_wordpress"
><b>
WordPress
</b>
でログイン
</string>
<string
name=
"msg__your_2fa_code"
>
What’s your 2FA code?
</string>
<!-- TODO Add translation -->
<string
name=
"msg_two_factor_authentication"
>
二要素認証
</string>
<!-- TODO - Add proper translation -->
<string
name=
"msg__your_2fa_code"
>
あなたの 2FA コードは何ですか?
</string>
<string
name=
"msg_view_more"
>
view more
</string>
<string
name=
"msg_view_more"
>
更に表示
</string>
<string
name=
"msg_view_less"
>
隠す
</string>
<!-- TODO - Add proper translation -->
<!-- TODO - Add proper translation -->
<string
name=
"msg_
view_less"
>
view less
</string>
<string
name=
"msg_
muted_on_this_channel"
>
You are muted on this channel
</string>
<!-- Create channel messages -->
<!-- Create channel messages -->
<string
name=
"msg_private_channel"
>
プライベート
</string>
<string
name=
"msg_private_channel"
>
プライベート
</string>
...
...
app/src/main/res/values-pt-rBR/strings.xml
View file @
fa6ed6cd
...
@@ -157,6 +157,7 @@
...
@@ -157,6 +157,7 @@
<string
name=
"msg_view_less"
>
visualizar menos
</string>
<string
name=
"msg_view_less"
>
visualizar menos
</string>
<!-- TODO - Add proper translation -->
<!-- TODO - Add proper translation -->
<string
name=
"msg_permalink_copied"
>
Permalink copiado
</string>
<string
name=
"msg_permalink_copied"
>
Permalink copiado
</string>
<string
name=
"msg_muted_on_this_channel"
>
Você está silenciado neste canal
</string>
<!-- Create channel messages -->
<!-- Create channel messages -->
<string
name=
"msg_private_channel"
>
Privado
</string>
<string
name=
"msg_private_channel"
>
Privado
</string>
...
@@ -185,8 +186,8 @@
...
@@ -185,8 +186,8 @@
<string
name=
"message_welcome"
>
Bem-vindo, %s
</string>
<string
name=
"message_welcome"
>
Bem-vindo, %s
</string>
<string
name=
"message_removed"
>
Mensagem removida
</string>
<string
name=
"message_removed"
>
Mensagem removida
</string>
<string
name=
"message_pinned"
>
Pinou uma mensagem:
</string>
<string
name=
"message_pinned"
>
Pinou uma mensagem:
</string>
<string
name=
"message_muted"
>
Usuário %1$s
entrou no modo mu
do por %2$s
</string>
<string
name=
"message_muted"
>
Usuário %1$s
foi silencia
do por %2$s
</string>
<string
name=
"message_unmuted"
>
Usuário %1$s saiu do modo
mu
do por %2$s
</string>
<string
name=
"message_unmuted"
>
Usuário %1$s saiu do modo
silencia
do por %2$s
</string>
<string
name=
"message_role_add"
>
%1$s foi definido %2$s por %3$s
</string>
<string
name=
"message_role_add"
>
%1$s foi definido %2$s por %3$s
</string>
<string
name=
"message_role_removed"
>
%1$s não é mais %2$s por %3$s
</string>
<string
name=
"message_role_removed"
>
%1$s não é mais %2$s por %3$s
</string>
// TODO:Add proper translation.
// TODO:Add proper translation.
...
...
app/src/main/res/values-ru-rRU/strings.xml
View file @
fa6ed6cd
...
@@ -154,6 +154,8 @@
...
@@ -154,6 +154,8 @@
<string
name=
"msg_view_more"
>
больше
</string>
<string
name=
"msg_view_more"
>
больше
</string>
<string
name=
"msg_view_less"
>
меньше
</string>
<string
name=
"msg_view_less"
>
меньше
</string>
<string
name=
"msg_permalink_copied"
>
Ссылка скопирована
</string>
<string
name=
"msg_permalink_copied"
>
Ссылка скопирована
</string>
<!-- TODO - Add proper translation -->
<string
name=
"msg_muted_on_this_channel"
>
You are muted on this channel
</string>
<!-- Create channel messages -->
<!-- Create channel messages -->
<string
name=
"msg_private_channel"
>
Приватный
</string>
<string
name=
"msg_private_channel"
>
Приватный
</string>
...
...
app/src/main/res/values-tr/strings.xml
View file @
fa6ed6cd
...
@@ -171,6 +171,8 @@
...
@@ -171,6 +171,8 @@
<string
name=
"msg_view_less"
>
Daha az göster
</string>
<string
name=
"msg_view_less"
>
Daha az göster
</string>
<!-- TODO - Add proper translation -->
<!-- TODO - Add proper translation -->
<string
name=
"msg_permalink_copied"
>
Permalink copied
</string>
<string
name=
"msg_permalink_copied"
>
Permalink copied
</string>
<!-- TODO - Add proper translation -->
<string
name=
"msg_muted_on_this_channel"
>
You are muted on this channel
</string>
<!-- Preferences messages -->
<!-- Preferences messages -->
<string
name=
"msg_analytics_tracking"
>
İstatistik takibi
</string>
<string
name=
"msg_analytics_tracking"
>
İstatistik takibi
</string>
...
...
app/src/main/res/values-uk/strings.xml
View file @
fa6ed6cd
...
@@ -156,6 +156,8 @@
...
@@ -156,6 +156,8 @@
<string
name=
"msg_view_less"
>
view less
</string>
<string
name=
"msg_view_less"
>
view less
</string>
<!-- TODO - Add proper translation -->
<!-- TODO - Add proper translation -->
<string
name=
"msg_permalink_copied"
>
Permalink copied
</string>
<string
name=
"msg_permalink_copied"
>
Permalink copied
</string>
<!-- TODO - Add proper translation -->
<string
name=
"msg_muted_on_this_channel"
>
You are muted on this channel
</string>
<!-- Create channel messages -->
<!-- Create channel messages -->
<string
name=
"msg_private_channel"
>
Приватний
</string>
<string
name=
"msg_private_channel"
>
Приватний
</string>
...
...
app/src/main/res/values/strings.xml
View file @
fa6ed6cd
...
@@ -183,6 +183,7 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
...
@@ -183,6 +183,7 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
<string
name=
"msg_delete_description"
>
Are you sure you want to delete this message
</string>
<string
name=
"msg_delete_description"
>
Are you sure you want to delete this message
</string>
<string
name=
"msg_view_more"
>
view more
</string>
<string
name=
"msg_view_more"
>
view more
</string>
<string
name=
"msg_view_less"
>
view less
</string>
<string
name=
"msg_view_less"
>
view less
</string>
<string
name=
"msg_muted_on_this_channel"
>
You are muted on this channel
</string>
<!-- Preferences messages -->
<!-- Preferences messages -->
<string
name=
"msg_analytics_tracking"
>
Analytics tracking
</string>
<string
name=
"msg_analytics_tracking"
>
Analytics tracking
</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