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
f9a904a5
Commit
f9a904a5
authored
Feb 24, 2017
by
Tiago Cunha
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Crashes
parent
6020eaf7
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
46 additions
and
19 deletions
+46
-19
RoomPresenter.java
.../chat/rocket/android/fragment/chatroom/RoomPresenter.java
+9
-1
RoomUserAdapter.java
...android/layouthelper/chatroom/dialog/RoomUserAdapter.java
+10
-6
RealmMessageRepository.java
...ersistence/realm/repositories/RealmMessageRepository.java
+1
-2
RealmRoomRepository.java
...t/persistence/realm/repositories/RealmRoomRepository.java
+25
-9
RoomRepository.java
...in/java/chat/rocket/core/repositories/RoomRepository.java
+1
-1
No files found.
app/src/main/java/chat/rocket/android/fragment/chatroom/RoomPresenter.java
View file @
f9a904a5
...
@@ -152,8 +152,10 @@ public class RoomPresenter extends BasePresenter<RoomContract.View>
...
@@ -152,8 +152,10 @@ public class RoomPresenter extends BasePresenter<RoomContract.View>
@Override
@Override
public
void
onMarkAsRead
()
{
public
void
onMarkAsRead
()
{
final
Disposable
subscription
=
roomRepository
.
getById
(
roomId
)
final
Disposable
subscription
=
roomRepository
.
getById
(
roomId
)
.
filter
(
Optional:
:
isPresent
)
.
map
(
Optional:
:
get
)
.
firstElement
()
.
firstElement
()
.
filter
(
room
->
room
!=
null
&&
room
.
isAlert
()
)
.
filter
(
Room:
:
isAlert
)
.
subscribeOn
(
AndroidSchedulers
.
from
(
BackgroundLooper
.
get
()))
.
subscribeOn
(
AndroidSchedulers
.
from
(
BackgroundLooper
.
get
()))
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
.
subscribe
(
...
@@ -167,6 +169,8 @@ public class RoomPresenter extends BasePresenter<RoomContract.View>
...
@@ -167,6 +169,8 @@ public class RoomPresenter extends BasePresenter<RoomContract.View>
private
void
getRoomInfo
()
{
private
void
getRoomInfo
()
{
final
Disposable
subscription
=
roomRepository
.
getById
(
roomId
)
final
Disposable
subscription
=
roomRepository
.
getById
(
roomId
)
.
distinctUntilChanged
()
.
distinctUntilChanged
()
.
filter
(
Optional:
:
isPresent
)
.
map
(
Optional:
:
get
)
.
subscribeOn
(
AndroidSchedulers
.
from
(
BackgroundLooper
.
get
()))
.
subscribeOn
(
AndroidSchedulers
.
from
(
BackgroundLooper
.
get
()))
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
.
subscribe
(
...
@@ -198,6 +202,8 @@ public class RoomPresenter extends BasePresenter<RoomContract.View>
...
@@ -198,6 +202,8 @@ public class RoomPresenter extends BasePresenter<RoomContract.View>
private
void
getMessages
()
{
private
void
getMessages
()
{
final
Disposable
subscription
=
roomRepository
.
getById
(
roomId
)
final
Disposable
subscription
=
roomRepository
.
getById
(
roomId
)
.
filter
(
Optional:
:
isPresent
)
.
map
(
Optional:
:
get
)
.
flatMap
(
messageInteractor:
:
getAllFrom
)
.
flatMap
(
messageInteractor:
:
getAllFrom
)
.
subscribeOn
(
AndroidSchedulers
.
from
(
BackgroundLooper
.
get
()))
.
subscribeOn
(
AndroidSchedulers
.
from
(
BackgroundLooper
.
get
()))
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
...
@@ -238,6 +244,8 @@ public class RoomPresenter extends BasePresenter<RoomContract.View>
...
@@ -238,6 +244,8 @@ public class RoomPresenter extends BasePresenter<RoomContract.View>
private
Single
<
Room
>
getSingleRoom
()
{
private
Single
<
Room
>
getSingleRoom
()
{
return
roomRepository
.
getById
(
roomId
)
return
roomRepository
.
getById
(
roomId
)
.
filter
(
Optional:
:
isPresent
)
.
map
(
Optional:
:
get
)
.
firstElement
()
.
firstElement
()
.
toSingle
();
.
toSingle
();
}
}
...
...
app/src/main/java/chat/rocket/android/layouthelper/chatroom/dialog/RoomUserAdapter.java
View file @
f9a904a5
...
@@ -9,6 +9,7 @@ import android.view.ViewGroup;
...
@@ -9,6 +9,7 @@ import android.view.ViewGroup;
import
java.util.List
;
import
java.util.List
;
import
chat.rocket.android.R
;
import
chat.rocket.android.R
;
import
chat.rocket.android.helper.TextUtils
;
import
chat.rocket.android.helper.TextUtils
;
import
chat.rocket.core.models.User
;
import
chat.rocket.persistence.realm.models.ddp.RealmUser
;
import
chat.rocket.persistence.realm.models.ddp.RealmUser
;
import
chat.rocket.persistence.realm.RealmHelper
;
import
chat.rocket.persistence.realm.RealmHelper
;
import
chat.rocket.android.renderer.UserRenderer
;
import
chat.rocket.android.renderer.UserRenderer
;
...
@@ -47,16 +48,19 @@ public class RoomUserAdapter extends RecyclerView.Adapter<RoomUserViewHolder> {
...
@@ -47,16 +48,19 @@ public class RoomUserAdapter extends RecyclerView.Adapter<RoomUserViewHolder> {
return
;
return
;
}
}
RealmUser
u
ser
=
realmHelper
.
executeTransactionForRead
(
realm
->
RealmUser
realmU
ser
=
realmHelper
.
executeTransactionForRead
(
realm
->
realm
.
where
(
RealmUser
.
class
).
equalTo
(
RealmUser
.
USERNAME
,
username
).
findFirst
());
realm
.
where
(
RealmUser
.
class
).
equalTo
(
RealmUser
.
USERNAME
,
username
).
findFirst
());
if
(
user
==
null
)
{
if
(
realmUser
==
null
)
{
user
=
new
RealmUser
();
User
user
=
User
.
builder
()
user
.
setUsername
(
username
);
.
setId
(
"some-local-is"
)
new
UserRenderer
(
context
,
user
.
asUser
())
.
setUsername
(
username
)
.
setUtcOffset
(
0
)
.
build
();
new
UserRenderer
(
context
,
user
)
.
avatarInto
(
holder
.
avatar
,
hostname
)
.
avatarInto
(
holder
.
avatar
,
hostname
)
.
usernameInto
(
holder
.
username
);
.
usernameInto
(
holder
.
username
);
}
else
{
}
else
{
new
UserRenderer
(
context
,
u
ser
.
asUser
())
new
UserRenderer
(
context
,
realmU
ser
.
asUser
())
.
statusColorInto
(
holder
.
status
)
.
statusColorInto
(
holder
.
status
)
.
avatarInto
(
holder
.
avatar
,
hostname
)
.
avatarInto
(
holder
.
avatar
,
hostname
)
.
usernameInto
(
holder
.
username
);
.
usernameInto
(
holder
.
username
);
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmMessageRepository.java
View file @
f9a904a5
...
@@ -117,8 +117,7 @@ public class RealmMessageRepository extends RealmRepository implements MessageRe
...
@@ -117,8 +117,7 @@ public class RealmMessageRepository extends RealmRepository implements MessageRe
.
equalTo
(
RealmMessage
.
ID
,
message
.
getId
())
.
equalTo
(
RealmMessage
.
ID
,
message
.
getId
())
.
findAll
()
.
findAll
()
.<
RealmResults
<
RealmMessage
>>
asObservable
())
.<
RealmResults
<
RealmMessage
>>
asObservable
())
.
filter
(
realmObject
->
realmObject
!=
null
.
filter
(
realmObject
->
realmObject
.
isLoaded
()
&&
realmObject
.
isValid
())
&&
realmObject
.
isLoaded
()
&&
realmObject
.
isValid
())
.
firstElement
()
.
firstElement
()
.
toSingle
()
.
toSingle
()
.
flatMap
(
realmMessages
->
Single
.
just
(
realmMessages
.
deleteAllFromRealm
()))
.
flatMap
(
realmMessages
->
Single
.
just
(
realmMessages
.
deleteAllFromRealm
()))
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmRoomRepository.java
View file @
f9a904a5
...
@@ -44,20 +44,36 @@ public class RealmRoomRepository extends RealmRepository implements RoomReposito
...
@@ -44,20 +44,36 @@ public class RealmRoomRepository extends RealmRepository implements RoomReposito
}
}
@Override
@Override
public
Flowable
<
Room
>
getById
(
String
roomId
)
{
public
Flowable
<
Optional
<
Room
>
>
getById
(
String
roomId
)
{
return
Flowable
.
defer
(()
->
Flowable
.
using
(
return
Flowable
.
defer
(()
->
Flowable
.
using
(
()
->
new
Pair
<>(
RealmStore
.
getRealm
(
hostname
),
Looper
.
myLooper
()),
()
->
new
Pair
<>(
RealmStore
.
getRealm
(
hostname
),
Looper
.
myLooper
()),
pair
->
RxJavaInterop
.
toV2Flowable
(
pair
->
{
pair
.
first
.
where
(
RealmRoom
.
class
)
RealmRoom
realmRoom
=
pair
.
first
.
where
(
RealmRoom
.
class
)
.
equalTo
(
RealmRoom
.
ROOM_ID
,
roomId
)
.
equalTo
(
RealmRoom
.
ROOM_ID
,
roomId
)
.
findFirst
()
.
findFirst
();
if
(
realmRoom
==
null
)
{
return
Flowable
.
just
(
Optional
.<
RealmRoom
>
absent
());
}
return
RxJavaInterop
.
toV2Flowable
(
realmRoom
.<
RealmRoom
>
asObservable
()
.<
RealmRoom
>
asObservable
()
.
filter
(
roomSubscription
->
roomSubscription
!=
null
&&
roomSubscription
.
isLoaded
()
.
filter
(
&&
roomSubscription
.
isValid
())),
roomSubscription
->
roomSubscription
.
isLoaded
()
&&
roomSubscription
.
isValid
())
.
map
(
Optional:
:
of
));
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
)
.
unsubscribeOn
(
AndroidSchedulers
.
from
(
Looper
.
myLooper
()))
.
unsubscribeOn
(
AndroidSchedulers
.
from
(
Looper
.
myLooper
()))
.
map
(
RealmRoom:
:
asRoom
));
.
map
(
optional
->
{
if
(
optional
.
isPresent
())
{
return
Optional
.
of
(
optional
.
get
().
asRoom
());
}
return
Optional
.
absent
();
}));
}
}
@Override
@Override
...
...
rocket-chat-core/src/main/java/chat/rocket/core/repositories/RoomRepository.java
View file @
f9a904a5
...
@@ -12,7 +12,7 @@ public interface RoomRepository {
...
@@ -12,7 +12,7 @@ public interface RoomRepository {
Flowable
<
List
<
Room
>>
getAll
();
Flowable
<
List
<
Room
>>
getAll
();
Flowable
<
Room
>
getById
(
String
roomId
);
Flowable
<
Optional
<
Room
>
>
getById
(
String
roomId
);
Flowable
<
Optional
<
RoomHistoryState
>>
getHistoryStateByRoomId
(
String
roomId
);
Flowable
<
Optional
<
RoomHistoryState
>>
getHistoryStateByRoomId
(
String
roomId
);
...
...
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