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
b920ef07
Commit
b920ef07
authored
Apr 28, 2017
by
Tiago Cunha
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Realm repositories
parent
5c68ce74
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
88 additions
and
7 deletions
+88
-7
RealmPermissionRepository.java
...istence/realm/repositories/RealmPermissionRepository.java
+41
-0
RealmRepository.java
...ocket/persistence/realm/repositories/RealmRepository.java
+3
-3
RealmRoomRoleRepository.java
...rsistence/realm/repositories/RealmRoomRoleRepository.java
+44
-0
PermissionRepository.java
...a/chat/rocket/core/repositories/PermissionRepository.java
+0
-4
No files found.
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmPermissionRepository.java
0 → 100644
View file @
b920ef07
package
chat
.
rocket
.
persistence
.
realm
.
repositories
;
import
android.os.Looper
;
import
android.support.v4.util.Pair
;
import
com.fernandocejas.arrow.optional.Optional
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.realm.RealmResults
;
import
chat.rocket.core.models.Permission
;
import
chat.rocket.core.repositories.PermissionRepository
;
import
chat.rocket.persistence.realm.RealmStore
;
import
chat.rocket.persistence.realm.models.ddp.RealmPermission
;
import
hu.akarnokd.rxjava.interop.RxJavaInterop
;
public
class
RealmPermissionRepository
extends
RealmRepository
implements
PermissionRepository
{
private
final
String
hostname
;
public
RealmPermissionRepository
(
String
hostname
)
{
this
.
hostname
=
hostname
;
}
@Override
public
Single
<
Optional
<
Permission
>>
getById
(
String
id
)
{
return
Single
.
defer
(()
->
Flowable
.
using
(
()
->
new
Pair
<>(
RealmStore
.
getRealm
(
hostname
),
Looper
.
myLooper
()),
pair
->
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmPermission
.
class
)
.
equalTo
(
RealmPermission
.
Columns
.
ID
,
id
)
.
findAll
()
.<
RealmResults
<
RealmPermission
>>
asObservable
()),
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
.
unsubscribeOn
(
AndroidSchedulers
.
from
(
Looper
.
myLooper
()))
.
filter
(
it
->
it
.
isLoaded
()
&&
it
.
isValid
()
&&
it
.
size
()
>
0
)
.
map
(
it
->
Optional
.
of
(
it
.
get
(
0
).
asPermission
()))
.
first
(
Optional
.
absent
()));
}
}
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmRepository.java
View file @
b920ef07
...
@@ -17,9 +17,9 @@ public class RealmRepository {
...
@@ -17,9 +17,9 @@ public class RealmRepository {
new
Handler
(
looper
).
post
(
realm:
:
close
);
new
Handler
(
looper
).
post
(
realm:
:
close
);
}
}
protected
<
T
extends
RealmObject
>
List
<
T
>
safeSubList
(
RealmResults
<
T
>
realmObjects
,
<
T
extends
RealmObject
>
List
<
T
>
safeSubList
(
RealmResults
<
T
>
realmObjects
,
int
fromIndex
,
int
fromIndex
,
int
toIndex
)
{
int
toIndex
)
{
return
realmObjects
.
subList
(
Math
.
max
(
0
,
fromIndex
),
Math
.
min
(
realmObjects
.
size
(),
toIndex
));
return
realmObjects
.
subList
(
Math
.
max
(
0
,
fromIndex
),
Math
.
min
(
realmObjects
.
size
(),
toIndex
));
}
}
}
}
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmRoomRoleRepository.java
0 → 100644
View file @
b920ef07
package
chat
.
rocket
.
persistence
.
realm
.
repositories
;
import
android.os.Looper
;
import
android.support.v4.util.Pair
;
import
com.fernandocejas.arrow.optional.Optional
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.realm.RealmResults
;
import
chat.rocket.core.models.Room
;
import
chat.rocket.core.models.RoomRole
;
import
chat.rocket.core.models.User
;
import
chat.rocket.core.repositories.RoomRoleRepository
;
import
chat.rocket.persistence.realm.RealmStore
;
import
chat.rocket.persistence.realm.models.ddp.RealmRoomRole
;
import
hu.akarnokd.rxjava.interop.RxJavaInterop
;
public
class
RealmRoomRoleRepository
extends
RealmRepository
implements
RoomRoleRepository
{
private
final
String
hostname
;
public
RealmRoomRoleRepository
(
String
hostname
)
{
this
.
hostname
=
hostname
;
}
@Override
public
Single
<
Optional
<
RoomRole
>>
getFor
(
Room
room
,
User
user
)
{
return
Single
.
defer
(()
->
Flowable
.
using
(
()
->
new
Pair
<>(
RealmStore
.
getRealm
(
hostname
),
Looper
.
myLooper
()),
pair
->
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmRoomRole
.
class
)
.
equalTo
(
RealmRoomRole
.
Columns
.
ROOM_ID
,
room
.
getId
())
.
equalTo
(
RealmRoomRole
.
Columns
.
USER
+
".id"
,
user
.
getId
())
.
findAll
()
.<
RealmResults
<
RealmRoomRole
>>
asObservable
()),
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
.
unsubscribeOn
(
AndroidSchedulers
.
from
(
Looper
.
myLooper
()))
.
filter
(
it
->
it
.
isLoaded
()
&&
it
.
isValid
()
&&
it
.
size
()
>
0
)
.
map
(
it
->
Optional
.
of
(
it
.
get
(
0
).
asRoomRole
()))
.
first
(
Optional
.
absent
()));
}
}
rocket-chat-core/src/main/java/chat/rocket/core/repositories/PermissionRepository.java
View file @
b920ef07
...
@@ -3,13 +3,9 @@ package chat.rocket.core.repositories;
...
@@ -3,13 +3,9 @@ package chat.rocket.core.repositories;
import
com.fernandocejas.arrow.optional.Optional
;
import
com.fernandocejas.arrow.optional.Optional
;
import
io.reactivex.Single
;
import
io.reactivex.Single
;
import
java.util.List
;
import
chat.rocket.core.models.Permission
;
import
chat.rocket.core.models.Permission
;
import
chat.rocket.core.models.Role
;
public
interface
PermissionRepository
{
public
interface
PermissionRepository
{
Single
<
List
<
Permission
>>
getFor
(
Role
role
);
Single
<
Optional
<
Permission
>>
getById
(
String
id
);
Single
<
Optional
<
Permission
>>
getById
(
String
id
);
}
}
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