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
0c7a5148
Commit
0c7a5148
authored
Nov 17, 2017
by
Leonardo Aramaki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Migrate RxJava 1.x to 2.x
parent
e302d26c
Changes
131
Hide whitespace changes
Inline
Side-by-side
Showing
131 changed files
with
404 additions
and
368 deletions
+404
-368
DDPClientCallback.java
.../main/java/chat/rocket/android_ddp/DDPClientCallback.java
+1
-0
DDPSubscription.java
...rc/main/java/chat/rocket/android_ddp/DDPSubscription.java
+1
-0
RxWebSocket.java
...src/main/java/chat/rocket/android_ddp/rx/RxWebSocket.java
+0
-1
RocketChatApplicationDebug.java
.../java/chat/rocket/android/RocketChatApplicationDebug.java
+1
-0
OkHttpHelper.kt
...src/debug/java/chat/rocket/android/helper/OkHttpHelper.kt
+1
-1
RocketChatCache.java
app/src/main/java/chat/rocket/android/RocketChatCache.java
+0
-1
LoginActivity.java
...main/java/chat/rocket/android/activity/LoginActivity.java
+1
-1
LoginPresenter.java
...ain/java/chat/rocket/android/activity/LoginPresenter.java
+2
-3
MainPresenter.java
...main/java/chat/rocket/android/activity/MainPresenter.java
+1
-2
CookieInterceptor.java
.../java/chat/rocket/android/api/rest/CookieInterceptor.java
+1
-0
DefaultCookieProvider.java
...a/chat/rocket/android/api/rest/DefaultCookieProvider.java
+2
-2
DefaultServerPolicyApi.java
.../chat/rocket/android/api/rest/DefaultServerPolicyApi.java
+4
-3
ServerPolicyApi.java
...in/java/chat/rocket/android/api/rest/ServerPolicyApi.java
+2
-1
AbstractFragment.java
...n/java/chat/rocket/android/fragment/AbstractFragment.java
+1
-0
InputHostnameFragment.java
...et/android/fragment/add_server/InputHostnameFragment.java
+1
-0
InputHostnamePresenter.java
...t/android/fragment/add_server/InputHostnamePresenter.java
+4
-5
MessageOptionsDialogFragment.java
...ragment/chatroom/dialog/MessageOptionsDialogFragment.java
+4
-5
OAuthPresenter.java
...va/chat/rocket/android/fragment/oauth/OAuthPresenter.java
+1
-1
LoginContract.java
.../rocket/android/fragment/server_config/LoginContract.java
+1
-0
LoginFragment.java
.../rocket/android/fragment/server_config/LoginFragment.java
+1
-0
LoginPresenter.java
...rocket/android/fragment/server_config/LoginPresenter.java
+1
-1
RetryLoginPresenter.java
...t/android/fragment/server_config/RetryLoginPresenter.java
+1
-1
SidebarMainContract.java
.../rocket/android/fragment/sidebar/SidebarMainContract.java
+4
-3
AddDirectMessageDialogFragment.java
...agment/sidebar/dialog/AddDirectMessageDialogFragment.java
+5
-4
AbsoluteUrlHelper.java
...in/java/chat/rocket/android/helper/AbsoluteUrlHelper.java
+2
-2
DateTime.java
app/src/main/java/chat/rocket/android/helper/DateTime.java
+1
-0
FileUploadHelper.java
...ain/java/chat/rocket/android/helper/FileUploadHelper.java
+3
-1
GcmPushSettingHelper.java
...java/chat/rocket/android/helper/GcmPushSettingHelper.java
+4
-4
RxHelper.java
app/src/main/java/chat/rocket/android/helper/RxHelper.java
+6
-5
ServerPolicyApiValidationHelper.java
...ocket/android/helper/ServerPolicyApiValidationHelper.java
+1
-2
ServerPolicyHelper.java
...n/java/chat/rocket/android/helper/ServerPolicyHelper.java
+2
-1
AbstractMessageViewHolder.java
...roid/layouthelper/chatroom/AbstractMessageViewHolder.java
+1
-0
MessageListAdapter.java
...ket/android/layouthelper/chatroom/MessageListAdapter.java
+1
-0
MessageNormalViewHolder.java
...ndroid/layouthelper/chatroom/MessageNormalViewHolder.java
+1
-0
RoomUserAdapter.java
...t/android/layouthelper/chatroom/list/RoomUserAdapter.java
+3
-2
ChannelRoomListHeader.java
...layouthelper/chatroom/roomlist/ChannelRoomListHeader.java
+2
-1
DirectMessageRoomListHeader.java
...helper/chatroom/roomlist/DirectMessageRoomListHeader.java
+2
-1
FavoriteRoomListHeader.java
...ayouthelper/chatroom/roomlist/FavoriteRoomListHeader.java
+2
-1
RoomListAdapter.java
...droid/layouthelper/chatroom/roomlist/RoomListAdapter.java
+3
-2
RoomListHeader.java
...ndroid/layouthelper/chatroom/roomlist/RoomListHeader.java
+2
-1
UnreadRoomListHeader.java
.../layouthelper/chatroom/roomlist/UnreadRoomListHeader.java
+2
-1
OAuthProviderInfo.java
.../rocket/android/layouthelper/oauth/OAuthProviderInfo.java
+1
-0
SuggestUserAdapter.java
...droid/layouthelper/sidebar/dialog/SuggestUserAdapter.java
+3
-2
BackgroundActionButtonHandler.java
...at/rocket/android/push/BackgroundActionButtonHandler.java
+1
-1
GcmInstanceIDListenerService.java
...rocket/android/push/gcm/GcmInstanceIDListenerService.java
+5
-4
ConnectivityManagerApi.java
...a/chat/rocket/android/service/ConnectivityManagerApi.java
+3
-2
ConnectivityManagerInternal.java
...t/rocket/android/service/ConnectivityManagerInternal.java
+1
-0
ConnectivityServiceInterface.java
.../rocket/android/service/ConnectivityServiceInterface.java
+1
-1
RealmBasedConnectivityManager.java
...rocket/android/service/RealmBasedConnectivityManager.java
+7
-12
RocketChatService.java
...n/java/chat/rocket/android/service/RocketChatService.java
+3
-4
RocketChatWebSocketThread.java
...hat/rocket/android/service/RocketChatWebSocketThread.java
+27
-24
build.gradle
build.gradle
+3
-1
build.gradle
persistence-realm/build.gradle
+0
-1
Migration.java
...rc/main/java/chat/rocket/persistence/realm/Migration.java
+5
-6
RealmAutoCompleteAdapter.java
...at/rocket/persistence/realm/RealmAutoCompleteAdapter.java
+4
-3
RealmHelper.java
.../main/java/chat/rocket/persistence/realm/RealmHelper.java
+7
-5
RealmListObserver.java
...java/chat/rocket/persistence/realm/RealmListObserver.java
+2
-2
RealmStore.java
...c/main/java/chat/rocket/persistence/realm/RealmStore.java
+3
-3
RocketChatPersistenceRealm.java
.../rocket/persistence/realm/RocketChatPersistenceRealm.java
+1
-0
RealmBasedServerInfo.java
...rocket/persistence/realm/models/RealmBasedServerInfo.java
+5
-4
RealmEmail.java
.../chat/rocket/persistence/realm/models/ddp/RealmEmail.java
+1
-2
RealmMessage.java
...hat/rocket/persistence/realm/models/ddp/RealmMessage.java
+3
-2
RealmMeteorLoginServiceConfiguration.java
...ealm/models/ddp/RealmMeteorLoginServiceConfiguration.java
+1
-2
RealmPermission.java
.../rocket/persistence/realm/models/ddp/RealmPermission.java
+4
-3
RealmPreferences.java
...rocket/persistence/realm/models/ddp/RealmPreferences.java
+1
-2
RealmPublicSetting.java
...cket/persistence/realm/models/ddp/RealmPublicSetting.java
+3
-2
RealmRole.java
...a/chat/rocket/persistence/realm/models/ddp/RealmRole.java
+2
-2
RealmRoom.java
...a/chat/rocket/persistence/realm/models/ddp/RealmRoom.java
+2
-2
RealmRoomRole.java
...at/rocket/persistence/realm/models/ddp/RealmRoomRole.java
+4
-3
RealmSettings.java
...at/rocket/persistence/realm/models/ddp/RealmSettings.java
+1
-2
RealmSpotlightRoom.java
...cket/persistence/realm/models/ddp/RealmSpotlightRoom.java
+1
-2
RealmSpotlightUser.java
...cket/persistence/realm/models/ddp/RealmSpotlightUser.java
+1
-2
GcmPushRegistration.java
...ersistence/realm/models/internal/GcmPushRegistration.java
+4
-4
LoadMessageProcedure.java
...rsistence/realm/models/internal/LoadMessageProcedure.java
+1
-2
MethodCall.java
.../rocket/persistence/realm/models/internal/MethodCall.java
+4
-2
RealmSession.java
...ocket/persistence/realm/models/internal/RealmSession.java
+5
-4
RocketChatServerModule.java
...ket/persistence/realm/modules/RocketChatServerModule.java
+1
-2
RealmLoginServiceConfigurationRepository.java
...epositories/RealmLoginServiceConfigurationRepository.java
+10
-11
RealmMessageRepository.java
...ersistence/realm/repositories/RealmMessageRepository.java
+17
-19
RealmPermissionRepository.java
...istence/realm/repositories/RealmPermissionRepository.java
+7
-8
RealmPublicSettingRepository.java
...ence/realm/repositories/RealmPublicSettingRepository.java
+7
-8
RealmRepository.java
...ocket/persistence/realm/repositories/RealmRepository.java
+3
-2
RealmRoomRepository.java
...t/persistence/realm/repositories/RealmRoomRepository.java
+10
-18
RealmRoomRoleRepository.java
...rsistence/realm/repositories/RealmRoomRoleRepository.java
+7
-8
RealmServerInfoRepository.java
...istence/realm/repositories/RealmServerInfoRepository.java
+6
-7
RealmSessionRepository.java
...ersistence/realm/repositories/RealmSessionRepository.java
+9
-10
RealmSpotlightRepository.kt
...ersistence/realm/repositories/RealmSpotlightRepository.kt
+3
-4
RealmSpotlightRoomRepository.java
...ence/realm/repositories/RealmSpotlightRoomRepository.java
+7
-8
RealmSpotlightUserRepository.java
...ence/realm/repositories/RealmSpotlightUserRepository.java
+7
-8
RealmUserRepository.java
...t/persistence/realm/repositories/RealmUserRepository.java
+8
-14
RocketChatAvatar.java
...ain/java/chat/rocket/android/widget/RocketChatAvatar.java
+3
-1
IconProvider.java
.../java/chat/rocket/android/widget/helper/IconProvider.java
+1
-0
InlineHightlighter.java
...chat/rocket/android/widget/helper/InlineHightlighter.java
+1
-0
LinkMovementMethodCompat.java
...ocket/android/widget/helper/LinkMovementMethodCompat.java
+0
-1
Linkify.java
.../main/java/chat/rocket/android/widget/helper/Linkify.java
+1
-0
ExtraActionPickerDialogFragment.java
...roid/widget/internal/ExtraActionPickerDialogFragment.java
+1
-0
MessageExtraActionListAdapter.java
...id/widget/layouthelper/MessageExtraActionListAdapter.java
+1
-0
RocketChatMessageAttachmentsLayout.java
...id/widget/message/RocketChatMessageAttachmentsLayout.java
+6
-4
RocketChatMessageLayout.java
...ocket/android/widget/message/RocketChatMessageLayout.java
+1
-0
RocketChatMessageUrlsLayout.java
...t/android/widget/message/RocketChatMessageUrlsLayout.java
+3
-1
AutocompleteManager.java
...roid/widget/message/autocomplete/AutocompleteManager.java
+6
-5
AutocompleteSource.java
...droid/widget/message/autocomplete/AutocompleteSource.java
+1
-0
ChannelSource.java
...id/widget/message/autocomplete/channel/ChannelSource.java
+6
-6
UserSource.java
.../android/widget/message/autocomplete/user/UserSource.java
+6
-5
AutocompleteChannelInteractor.kt
.../rocket/core/interactors/AutocompleteChannelInteractor.kt
+2
-3
AutocompleteUserInteractor.kt
...hat/rocket/core/interactors/AutocompleteUserInteractor.kt
+1
-1
CanCreateRoomInteractor.kt
...a/chat/rocket/core/interactors/CanCreateRoomInteractor.kt
+2
-3
EditMessageInteractor.kt
...ava/chat/rocket/core/interactors/EditMessageInteractor.kt
+8
-2
MessageInteractor.kt
...in/java/chat/rocket/core/interactors/MessageInteractor.kt
+4
-4
PermissionInteractor.kt
...java/chat/rocket/core/interactors/PermissionInteractor.kt
+3
-1
RoomInteractor.kt
.../main/java/chat/rocket/core/interactors/RoomInteractor.kt
+1
-1
SessionInteractor.kt
...in/java/chat/rocket/core/interactors/SessionInteractor.kt
+2
-3
UserInteractor.java
...ain/java/chat/rocket/core/interactors/UserInteractor.java
+2
-2
Attachment.java
...ore/src/main/java/chat/rocket/core/models/Attachment.java
+1
-0
Message.java
...t-core/src/main/java/chat/rocket/core/models/Message.java
+1
-0
User.java
...chat-core/src/main/java/chat/rocket/core/models/User.java
+1
-0
WebContent.java
...ore/src/main/java/chat/rocket/core/models/WebContent.java
+1
-0
LoginServiceConfigurationRepository.java
...ore/repositories/LoginServiceConfigurationRepository.java
+3
-2
MessageRepository.java
...java/chat/rocket/core/repositories/MessageRepository.java
+3
-2
PermissionRepository.java
...a/chat/rocket/core/repositories/PermissionRepository.java
+1
-1
PublicSettingRepository.java
...hat/rocket/core/repositories/PublicSettingRepository.java
+1
-1
RoomRepository.java
...in/java/chat/rocket/core/repositories/RoomRepository.java
+3
-2
RoomRoleRepository.java
...ava/chat/rocket/core/repositories/RoomRoleRepository.java
+1
-1
ServerInfoRepository.java
...a/chat/rocket/core/repositories/ServerInfoRepository.java
+1
-2
SessionRepository.java
...java/chat/rocket/core/repositories/SessionRepository.java
+2
-2
SpotlightRoomRepository.java
...hat/rocket/core/repositories/SpotlightRoomRepository.java
+2
-2
SpotlightUserRepository.java
...hat/rocket/core/repositories/SpotlightUserRepository.java
+2
-2
UserRepository.kt
...main/java/chat/rocket/core/repositories/UserRepository.kt
+1
-1
AutocompleteChannelInteractorTest.java
...t/core/interactors/AutocompleteChannelInteractorTest.java
+11
-4
EditMessageInteractorTest.kt
...chat/rocket/core/interactors/EditMessageInteractorTest.kt
+4
-2
PermissionInteractorTest.kt
.../chat/rocket/core/interactors/PermissionInteractorTest.kt
+2
-2
No files found.
android-ddp/src/main/java/chat/rocket/android_ddp/DDPClientCallback.java
View file @
0c7a5148
...
...
@@ -2,6 +2,7 @@ package chat.rocket.android_ddp;
import
android.support.annotation.NonNull
;
import
android.support.annotation.Nullable
;
import
org.json.JSONObject
;
public
class
DDPClientCallback
{
...
...
android-ddp/src/main/java/chat/rocket/android_ddp/DDPSubscription.java
View file @
0c7a5148
package
chat
.
rocket
.
android_ddp
;
import
android.support.annotation.NonNull
;
import
org.json.JSONArray
;
import
org.json.JSONObject
;
...
...
android-ddp/src/main/java/chat/rocket/android_ddp/rx/RxWebSocket.java
View file @
0c7a5148
package
chat
.
rocket
.
android_ddp
.
rx
;
import
java.io.IOException
;
import
java.util.concurrent.TimeUnit
;
import
chat.rocket.android.log.RCLog
;
import
io.reactivex.BackpressureStrategy
;
...
...
app/src/debug/java/chat/rocket/android/RocketChatApplicationDebug.java
View file @
0c7a5148
package
chat
.
rocket
.
android
;
import
android.os.StrictMode
;
import
com.facebook.stetho.Stetho
;
import
com.tspoon.traceur.Traceur
;
import
com.uphyca.stetho_realm.RealmInspectorModulesProvider
;
...
...
app/src/debug/java/chat/rocket/android/helper/OkHttpHelper.kt
View file @
0c7a5148
...
...
@@ -5,8 +5,8 @@ import chat.rocket.android.RocketChatCache
import
chat.rocket.android.api.rest.CookieInterceptor
import
chat.rocket.android.api.rest.DefaultCookieProvider
import
com.facebook.stetho.okhttp3.StethoInterceptor
import
java.util.concurrent.TimeUnit
import
okhttp3.OkHttpClient
import
java.util.concurrent.TimeUnit
object
OkHttpHelper
{
...
...
app/src/main/java/chat/rocket/android/RocketChatCache.java
View file @
0c7a5148
...
...
@@ -17,7 +17,6 @@ import java.util.UUID;
import
chat.rocket.android.helper.Logger
;
import
chat.rocket.android.helper.TextUtils
;
import
chat.rocket.android.log.RCLog
;
import
chat.rocket.android.push.PushManager
;
import
chat.rocket.core.utils.Pair
;
import
io.reactivex.BackpressureStrategy
;
import
io.reactivex.Flowable
;
...
...
app/src/main/java/chat/rocket/android/activity/LoginActivity.java
View file @
0c7a5148
...
...
@@ -8,8 +8,8 @@ import android.support.v4.app.Fragment;
import
chat.rocket.android.R
;
import
chat.rocket.android.fragment.server_config.LoginFragment
;
import
chat.rocket.android.fragment.server_config.RetryLoginFragment
;
import
chat.rocket.core.interactors.SessionInteractor
;
import
chat.rocket.android.service.ConnectivityManager
;
import
chat.rocket.core.interactors.SessionInteractor
;
import
chat.rocket.persistence.realm.repositories.RealmSessionRepository
;
/**
...
...
app/src/main/java/chat/rocket/android/activity/LoginPresenter.java
View file @
0c7a5148
...
...
@@ -2,14 +2,13 @@ package chat.rocket.android.activity;
import
android.support.annotation.NonNull
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.disposables.Disposable
;
import
chat.rocket.android.BackgroundLooper
;
import
chat.rocket.android.helper.Logger
;
import
chat.rocket.android.service.ConnectivityManagerApi
;
import
chat.rocket.android.shared.BasePresenter
;
import
chat.rocket.core.interactors.SessionInteractor
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.disposables.Disposable
;
public
class
LoginPresenter
extends
BasePresenter
<
LoginContract
.
View
>
implements
LoginContract
.
Presenter
{
...
...
app/src/main/java/chat/rocket/android/activity/MainPresenter.java
View file @
0c7a5148
...
...
@@ -28,7 +28,6 @@ import chat.rocket.core.models.Session;
import
chat.rocket.core.models.User
;
import
chat.rocket.core.repositories.PublicSettingRepository
;
import
chat.rocket.core.utils.Pair
;
import
hu.akarnokd.rxjava.interop.RxJavaInterop
;
import
io.reactivex.Flowable
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.disposables.Disposable
;
...
...
@@ -220,7 +219,7 @@ public class MainPresenter extends BasePresenter<MainContract.View>
}
private
void
subscribeToNetworkChanges
()
{
Disposable
disposable
=
RxJavaInterop
.
toV2Flowable
(
connectivityManagerApi
.
getServerConnectivityAsObservable
()
)
Disposable
disposable
=
connectivityManagerApi
.
getServerConnectivityAsObservable
(
)
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
connectivity
->
{
...
...
app/src/main/java/chat/rocket/android/api/rest/CookieInterceptor.java
View file @
0c7a5148
package
chat
.
rocket
.
android
.
api
.
rest
;
import
java.io.IOException
;
import
chat.rocket.android.helper.TextUtils
;
import
okhttp3.Interceptor
;
import
okhttp3.Request
;
...
...
app/src/main/java/chat/rocket/android/api/rest/DefaultCookieProvider.java
View file @
0c7a5148
package
chat
.
rocket
.
android
.
api
.
rest
;
import
chat.rocket.android.RocketChatCache
;
import
chat.rocket.persistence.realm.models.ddp.RealmUser
;
import
chat.rocket.persistence.realm.models.internal.RealmSession
;
import
chat.rocket.persistence.realm.RealmHelper
;
import
chat.rocket.persistence.realm.RealmStore
;
import
chat.rocket.persistence.realm.models.ddp.RealmUser
;
import
chat.rocket.persistence.realm.models.internal.RealmSession
;
public
class
DefaultCookieProvider
implements
CookieProvider
{
...
...
app/src/main/java/chat/rocket/android/api/rest/DefaultServerPolicyApi.java
View file @
0c7a5148
...
...
@@ -2,12 +2,13 @@ package chat.rocket.android.api.rest;
import
android.support.annotation.NonNull
;
import
io.reactivex.BackpressureStrategy
;
import
io.reactivex.Flowable
;
import
io.reactivex.FlowableEmitter
;
import
org.json.JSONObject
;
import
java.io.IOException
;
import
io.reactivex.BackpressureStrategy
;
import
io.reactivex.Flowable
;
import
io.reactivex.FlowableEmitter
;
import
okhttp3.Call
;
import
okhttp3.OkHttpClient
;
import
okhttp3.Request
;
...
...
app/src/main/java/chat/rocket/android/api/rest/ServerPolicyApi.java
View file @
0c7a5148
package
chat
.
rocket
.
android
.
api
.
rest
;
import
io.reactivex.Flowable
;
import
org.json.JSONObject
;
import
io.reactivex.Flowable
;
public
interface
ServerPolicyApi
{
String
SECURE_PROTOCOL
=
"https://"
;
...
...
app/src/main/java/chat/rocket/android/fragment/AbstractFragment.java
View file @
0c7a5148
...
...
@@ -6,6 +6,7 @@ import android.support.annotation.Nullable;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
com.trello.rxlifecycle2.components.support.RxFragment
;
/**
...
...
app/src/main/java/chat/rocket/android/fragment/add_server/InputHostnameFragment.java
View file @
0c7a5148
...
...
@@ -7,6 +7,7 @@ import android.support.constraint.ConstraintLayout;
import
android.support.design.widget.Snackbar
;
import
android.view.View
;
import
android.widget.TextView
;
import
chat.rocket.android.BuildConfig
;
import
chat.rocket.android.LaunchUtil
;
import
chat.rocket.android.R
;
...
...
app/src/main/java/chat/rocket/android/fragment/add_server/InputHostnamePresenter.java
View file @
0c7a5148
package
chat
.
rocket
.
android
.
fragment
.
add_server
;
import
chat.rocket.android.BackgroundLooper
;
import
chat.rocket.android.helper.Logger
;
import
chat.rocket.android.helper.OkHttpHelper
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.disposables.Disposable
;
import
chat.rocket.android.RocketChatCache
;
import
chat.rocket.android.api.rest.DefaultServerPolicyApi
;
import
chat.rocket.android.api.rest.ServerPolicyApi
;
import
chat.rocket.android.helper.Logger
;
import
chat.rocket.android.helper.OkHttpHelper
;
import
chat.rocket.android.helper.ServerPolicyApiValidationHelper
;
import
chat.rocket.android.helper.ServerPolicyHelper
;
import
chat.rocket.android.service.ConnectivityManagerApi
;
import
chat.rocket.android.shared.BasePresenter
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.disposables.Disposable
;
public
class
InputHostnamePresenter
extends
BasePresenter
<
InputHostnameContract
.
View
>
implements
InputHostnameContract
.
Presenter
{
private
final
RocketChatCache
rocketChatCache
;
...
...
app/src/main/java/chat/rocket/android/fragment/chatroom/dialog/MessageOptionsDialogFragment.java
View file @
0c7a5148
...
...
@@ -10,11 +10,6 @@ import android.support.v4.util.Pair;
import
android.view.View
;
import
android.widget.TextView
;
import
io.reactivex.Single
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.disposables.CompositeDisposable
;
import
io.reactivex.disposables.Disposable
;
import
chat.rocket.android.BackgroundLooper
;
import
chat.rocket.android.R
;
import
chat.rocket.android.RocketChatCache
;
...
...
@@ -34,6 +29,10 @@ import chat.rocket.persistence.realm.repositories.RealmPublicSettingRepository;
import
chat.rocket.persistence.realm.repositories.RealmRoomRepository
;
import
chat.rocket.persistence.realm.repositories.RealmRoomRoleRepository
;
import
chat.rocket.persistence.realm.repositories.RealmUserRepository
;
import
io.reactivex.Single
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.disposables.CompositeDisposable
;
import
io.reactivex.disposables.Disposable
;
public
class
MessageOptionsDialogFragment
extends
BottomSheetDialogFragment
{
...
...
app/src/main/java/chat/rocket/android/fragment/oauth/OAuthPresenter.java
View file @
0c7a5148
package
chat
.
rocket
.
android
.
fragment
.
oauth
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
org.json.JSONObject
;
import
chat.rocket.android.BackgroundLooper
;
...
...
@@ -10,6 +9,7 @@ import chat.rocket.android.helper.Logger;
import
chat.rocket.android.helper.TextUtils
;
import
chat.rocket.android.shared.BasePresenter
;
import
chat.rocket.core.repositories.LoginServiceConfigurationRepository
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
public
class
OAuthPresenter
extends
BasePresenter
<
OAuthContract
.
View
>
implements
OAuthContract
.
Presenter
{
...
...
app/src/main/java/chat/rocket/android/fragment/server_config/LoginContract.java
View file @
0c7a5148
package
chat
.
rocket
.
android
.
fragment
.
server_config
;
import
java.util.List
;
import
chat.rocket.android.shared.BaseContract
;
import
chat.rocket.core.models.LoginServiceConfiguration
;
...
...
app/src/main/java/chat/rocket/android/fragment/server_config/LoginFragment.java
View file @
0c7a5148
...
...
@@ -11,6 +11,7 @@ import android.widget.TextView;
import
java.util.HashMap
;
import
java.util.List
;
import
chat.rocket.android.R
;
import
chat.rocket.android.api.MethodCallHelper
;
import
chat.rocket.android.layouthelper.oauth.OAuthProviderInfo
;
...
...
app/src/main/java/chat/rocket/android/fragment/server_config/LoginPresenter.java
View file @
0c7a5148
...
...
@@ -3,7 +3,6 @@ package chat.rocket.android.fragment.server_config;
import
android.support.annotation.NonNull
;
import
com.hadisatrio.optional.Optional
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
bolts.Task
;
import
chat.rocket.android.BackgroundLooper
;
...
...
@@ -16,6 +15,7 @@ import chat.rocket.core.PublicSettingsConstants;
import
chat.rocket.core.models.PublicSetting
;
import
chat.rocket.core.repositories.LoginServiceConfigurationRepository
;
import
chat.rocket.core.repositories.PublicSettingRepository
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
public
class
LoginPresenter
extends
BasePresenter
<
LoginContract
.
View
>
implements
LoginContract
.
Presenter
{
...
...
app/src/main/java/chat/rocket/android/fragment/server_config/RetryLoginPresenter.java
View file @
0c7a5148
...
...
@@ -3,7 +3,6 @@ package chat.rocket.android.fragment.server_config;
import
android.support.annotation.NonNull
;
import
com.hadisatrio.optional.Optional
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
chat.rocket.android.BackgroundLooper
;
import
chat.rocket.android.api.MethodCallHelper
;
...
...
@@ -12,6 +11,7 @@ import chat.rocket.android.helper.TextUtils;
import
chat.rocket.android.shared.BasePresenter
;
import
chat.rocket.core.interactors.SessionInteractor
;
import
chat.rocket.core.models.Session
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
public
class
RetryLoginPresenter
extends
BasePresenter
<
RetryLoginContract
.
View
>
implements
RetryLoginContract
.
Presenter
{
...
...
app/src/main/java/chat/rocket/android/fragment/sidebar/SidebarMainContract.java
View file @
0c7a5148
...
...
@@ -2,13 +2,14 @@ package chat.rocket.android.fragment.sidebar;
import
android.support.annotation.NonNull
;
import
bolts.Continuation
;
import
chat.rocket.core.models.RoomSidebar
;
import
io.reactivex.Flowable
;
import
java.util.List
;
import
bolts.Continuation
;
import
chat.rocket.android.shared.BaseContract
;
import
chat.rocket.core.models.RoomSidebar
;
import
chat.rocket.core.models.Spotlight
;
import
chat.rocket.core.models.User
;
import
io.reactivex.Flowable
;
public
interface
SidebarMainContract
{
...
...
app/src/main/java/chat/rocket/android/fragment/sidebar/dialog/AddDirectMessageDialogFragment.java
View file @
0c7a5148
...
...
@@ -5,11 +5,9 @@ import android.os.Bundle;
import
android.view.View
;
import
android.widget.AutoCompleteTextView
;
import
android.widget.TextView
;
import
com.hadisatrio.optional.Optional
;
import
com.jakewharton.rxbinding2.widget.RxTextView
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.disposables.CompositeDisposable
;
import
io.realm.Case
;
import
bolts.Task
;
import
chat.rocket.android.BackgroundLooper
;
...
...
@@ -20,11 +18,14 @@ import chat.rocket.android.helper.Logger;
import
chat.rocket.android.helper.TextUtils
;
import
chat.rocket.android.layouthelper.sidebar.dialog.SuggestUserAdapter
;
import
chat.rocket.core.interactors.SessionInteractor
;
import
chat.rocket.persistence.realm.models.ddp.RealmUser
;
import
chat.rocket.persistence.realm.RealmAutoCompleteAdapter
;
import
chat.rocket.persistence.realm.models.ddp.RealmUser
;
import
chat.rocket.persistence.realm.repositories.RealmServerInfoRepository
;
import
chat.rocket.persistence.realm.repositories.RealmSessionRepository
;
import
chat.rocket.persistence.realm.repositories.RealmUserRepository
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.disposables.CompositeDisposable
;
import
io.realm.Case
;
/**
* add Direct RealmMessage.
...
...
app/src/main/java/chat/rocket/android/helper/AbsoluteUrlHelper.java
View file @
0c7a5148
package
chat
.
rocket
.
android
.
helper
;
import
com.hadisatrio.optional.Optional
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
chat.rocket.android.fragment.chatroom.RocketChatAbsoluteUrl
;
import
chat.rocket.core.interactors.SessionInteractor
;
import
chat.rocket.core.repositories.ServerInfoRepository
;
import
chat.rocket.core.repositories.UserRepository
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
public
class
AbsoluteUrlHelper
{
...
...
app/src/main/java/chat/rocket/android/helper/DateTime.java
View file @
0c7a5148
...
...
@@ -9,6 +9,7 @@ import java.util.Calendar;
import
java.util.GregorianCalendar
;
import
java.util.Locale
;
import
java.util.TimeZone
;
import
chat.rocket.android.log.RCLog
;
/**
...
...
app/src/main/java/chat/rocket/android/helper/FileUploadHelper.java
View file @
0c7a5148
...
...
@@ -8,16 +8,18 @@ import android.os.ParcelFileDescriptor;
import
android.provider.OpenableColumns
;
import
android.support.annotation.Nullable
;
import
android.webkit.MimeTypeMap
;
import
org.json.JSONObject
;
import
java.io.FileNotFoundException
;
import
java.io.IOException
;
import
java.util.UUID
;
import
chat.rocket.android.log.RCLog
;
import
chat.rocket.core.SyncState
;
import
chat.rocket.persistence.realm.RealmHelper
;
import
chat.rocket.persistence.realm.models.ddp.RealmPublicSetting
;
import
chat.rocket.persistence.realm.models.internal.FileUploading
;
import
chat.rocket.persistence.realm.RealmHelper
;
/**
* utility class for uploading file.
...
...
app/src/main/java/chat/rocket/android/helper/GcmPushSettingHelper.java
View file @
0c7a5148
package
chat
.
rocket
.
android
.
helper
;
import
io.realm.Realm
;
import
io.realm.RealmResults
;
import
java.util.List
;
import
chat.rocket.persistence.realm.models.ddp.RealmPublicSetting
;
import
chat.rocket.core.PublicSettingsConstants
;
import
chat.rocket.persistence.realm.models.ddp.RealmPublicSetting
;
import
io.realm.Realm
;
import
io.realm.RealmResults
;
/**
* utility class for getting value comprehensibly from public settings list.
...
...
app/src/main/java/chat/rocket/android/helper/RxHelper.java
View file @
0c7a5148
package
chat
.
rocket
.
android
.
helper
;
import
java.util.concurrent.TimeUnit
;
import
rx.Observable
;
import
rx.functions.Func1
;
import
io.reactivex.Flowable
;
import
io.reactivex.functions.Function
;
/**
* Rx operator and so on.
*/
public
class
RxHelper
{
public
static
Func
1
<
Observable
<?
extends
Throwable
>,
Observ
able
<?>>
exponentialBackoff
(
public
static
Func
tion
<
Flowable
<?
extends
Throwable
>,
Flow
able
<?>>
exponentialBackoff
(
int
maxRetryCount
,
long
base
,
TimeUnit
unit
)
{
// ref: https://github.com/ReactiveX/RxJava/blob/a8ba158839b67246a742b6f1531995ffd7545c08/src/main/java/io/reactivex/Observable.java#L9601
return
attempts
->
attempts
.
zipWith
(
Observ
able
.
range
(
0
,
maxRetryCount
),
(
error
,
retryCount
)
->
retryCount
)
.
flatMap
(
retryCount
->
Observ
able
.
timer
(
base
*
(
long
)
Math
.
pow
(
2
,
retryCount
),
unit
));
.
zipWith
(
Flow
able
.
range
(
0
,
maxRetryCount
),
(
error
,
retryCount
)
->
retryCount
)
.
flatMap
(
retryCount
->
Flow
able
.
timer
(
base
*
(
long
)
Math
.
pow
(
2
,
retryCount
),
unit
));
}
}
app/src/main/java/chat/rocket/android/helper/ServerPolicyApiValidationHelper.java
View file @
0c7a5148
...
...
@@ -2,9 +2,8 @@ package chat.rocket.android.helper;
import
android.support.annotation.NonNull
;
import
io.reactivex.Flowable
;
import
chat.rocket.android.api.rest.ServerPolicyApi
;
import
io.reactivex.Flowable
;
public
class
ServerPolicyApiValidationHelper
{
...
...
app/src/main/java/chat/rocket/android/helper/ServerPolicyHelper.java
View file @
0c7a5148
...
...
@@ -2,9 +2,10 @@ package chat.rocket.android.helper;
import
android.support.annotation.NonNull
;
import
io.reactivex.Flowable
;
import
org.json.JSONObject
;
import
io.reactivex.Flowable
;
public
class
ServerPolicyHelper
{
private
static
final
String
DEFAULT_HOST
=
".rocket.chat"
;
...
...
app/src/main/java/chat/rocket/android/layouthelper/chatroom/AbstractMessageViewHolder.java
View file @
0c7a5148
...
...
@@ -4,6 +4,7 @@ import android.support.annotation.Nullable;
import
android.view.View
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
chat.rocket.android.R
;
import
chat.rocket.android.helper.DateTime
;
import
chat.rocket.android.helper.TextUtils
;
...
...
app/src/main/java/chat/rocket/android/layouthelper/chatroom/MessageListAdapter.java
View file @
0c7a5148
...
...
@@ -7,6 +7,7 @@ import android.view.View;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
import
chat.rocket.android.R
;
import
chat.rocket.android.helper.TextUtils
;
import
chat.rocket.android.layouthelper.ExtModelListAdapter
;
...
...
app/src/main/java/chat/rocket/android/layouthelper/chatroom/MessageNormalViewHolder.java
View file @
0c7a5148
package
chat
.
rocket
.
android
.
layouthelper
.
chatroom
;
import
android.view.View
;
import
chat.rocket.android.R
;
import
chat.rocket.android.renderer.MessageRenderer
;
import
chat.rocket.android.widget.AbsoluteUrl
;
...
...
app/src/main/java/chat/rocket/android/layouthelper/chatroom/list/RoomUserAdapter.java
View file @
0c7a5148
...
...
@@ -7,13 +7,14 @@ import android.view.View;
import
android.view.ViewGroup
;
import
java.util.List
;
import
chat.rocket.android.R
;
import
chat.rocket.android.helper.TextUtils
;
import
chat.rocket.android.renderer.UserRenderer
;
import
chat.rocket.android.widget.AbsoluteUrl
;
import
chat.rocket.core.models.User
;
import
chat.rocket.persistence.realm.models.ddp.RealmUser
;
import
chat.rocket.persistence.realm.RealmHelper
;
import
chat.rocket.
android.renderer.UserRender
er
;
import
chat.rocket.
persistence.realm.models.ddp.RealmUs
er
;
/**
* RecyclerView adapter for UsersOfRooms.
...
...
app/src/main/java/chat/rocket/android/layouthelper/chatroom/roomlist/ChannelRoomListHeader.java
View file @
0c7a5148
...
...
@@ -2,9 +2,10 @@ package chat.rocket.android.layouthelper.chatroom.roomlist;
import
android.support.annotation.NonNull
;
import
chat.rocket.core.models.RoomSidebar
;
import
java.util.List
;
import
chat.rocket.core.models.Room
;
import
chat.rocket.core.models.RoomSidebar
;
public
class
ChannelRoomListHeader
implements
RoomListHeader
{
...
...
app/src/main/java/chat/rocket/android/layouthelper/chatroom/roomlist/DirectMessageRoomListHeader.java
View file @
0c7a5148
...
...
@@ -2,9 +2,10 @@ package chat.rocket.android.layouthelper.chatroom.roomlist;
import
android.support.annotation.NonNull
;
import
chat.rocket.core.models.RoomSidebar
;
import
java.util.List
;
import
chat.rocket.core.models.Room
;
import
chat.rocket.core.models.RoomSidebar
;
public
class
DirectMessageRoomListHeader
implements
RoomListHeader
{
...
...
app/src/main/java/chat/rocket/android/layouthelper/chatroom/roomlist/FavoriteRoomListHeader.java
View file @
0c7a5148
...
...
@@ -2,9 +2,10 @@ package chat.rocket.android.layouthelper.chatroom.roomlist;
import
android.support.annotation.NonNull
;
import
chat.rocket.core.models.RoomSidebar
;
import
java.util.List
;
import
chat.rocket.core.models.RoomSidebar
;
public
class
FavoriteRoomListHeader
implements
RoomListHeader
{
private
final
String
title
;
...
...
app/src/main/java/chat/rocket/android/layouthelper/chatroom/roomlist/RoomListAdapter.java
View file @
0c7a5148
...
...
@@ -5,14 +5,15 @@ import android.support.v7.widget.RecyclerView;
import
android.view.LayoutInflater
;
import
android.view.ViewGroup
;
import
chat.rocket.core.models.RoomSidebar
;
import
chat.rocket.core.models.Spotlight
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
chat.rocket.android.R
;
import
chat.rocket.android.widget.internal.RoomListItemView
;
import
chat.rocket.core.models.RoomSidebar
;
import
chat.rocket.core.models.Spotlight
;
public
class
RoomListAdapter
extends
RecyclerView
.
Adapter
<
RecyclerView
.
ViewHolder
>
{
...
...
app/src/main/java/chat/rocket/android/layouthelper/chatroom/roomlist/RoomListHeader.java
View file @
0c7a5148
...
...
@@ -2,9 +2,10 @@ package chat.rocket.android.layouthelper.chatroom.roomlist;
import
android.support.annotation.NonNull
;
import
chat.rocket.core.models.RoomSidebar
;
import
java.util.List
;
import
chat.rocket.core.models.RoomSidebar
;
public
interface
RoomListHeader
{
String
getTitle
();
...
...
app/src/main/java/chat/rocket/android/layouthelper/chatroom/roomlist/UnreadRoomListHeader.java
View file @
0c7a5148
...
...
@@ -2,9 +2,10 @@ package chat.rocket.android.layouthelper.chatroom.roomlist;
import
android.support.annotation.NonNull
;
import
chat.rocket.core.models.RoomSidebar
;
import
java.util.List
;
import
chat.rocket.core.models.RoomSidebar
;
public
class
UnreadRoomListHeader
implements
RoomListHeader
{
private
final
String
title
;
...
...
app/src/main/java/chat/rocket/android/layouthelper/oauth/OAuthProviderInfo.java
View file @
0c7a5148
...
...
@@ -3,6 +3,7 @@ package chat.rocket.android.layouthelper.oauth;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
import
chat.rocket.android.R
;
import
chat.rocket.android.fragment.oauth.AbstractOAuthFragment
;
import
chat.rocket.android.fragment.oauth.FacebookOAuthFragment
;
...
...
app/src/main/java/chat/rocket/android/layouthelper/sidebar/dialog/SuggestUserAdapter.java
View file @
0c7a5148
...
...
@@ -5,11 +5,12 @@ import android.view.View;
import
java.util.Iterator
;
import
java.util.List
;
import
chat.rocket.android.R
;
import
chat.rocket.android.renderer.UserRenderer
;
import
chat.rocket.android.widget.AbsoluteUrl
;
import
chat.rocket.persistence.realm.models.ddp.RealmUser
;
import
chat.rocket.persistence.realm.RealmAutoCompleteAdapter
;
import
chat.rocket.
android.renderer.UserRender
er
;
import
chat.rocket.
persistence.realm.models.ddp.RealmUs
er
;
/**
* adapter to suggest user names.
...
...
app/src/main/java/chat/rocket/android/push/BackgroundActionButtonHandler.java
View file @
0c7a5148
...
...
@@ -5,8 +5,8 @@ import android.content.BroadcastReceiver;
import
android.content.Context
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.util.Log
;
import
android.support.v4.app.RemoteInput
;
import
android.util.Log
;
import
chat.rocket.android.push.gcm.GCMIntentService
;
...
...
app/src/main/java/chat/rocket/android/push/gcm/GcmInstanceIDListenerService.java
View file @
0c7a5148
...
...
@@ -3,13 +3,14 @@ package chat.rocket.android.push.gcm;
import
com.google.android.gms.iid.InstanceIDListenerService
;
import
java.util.List
;
import
chat.rocket.android.helper.GcmPushSettingHelper
;
import
chat.rocket.persistence.realm.models.ddp.RealmPublicSetting
;
import
chat.rocket.persistence.realm.models.internal.GcmPushRegistration
;
import
chat.rocket.persistence.realm.RealmHelper
;
import
chat.rocket.persistence.realm.RealmStore
;
import
chat.rocket.android.service.ConnectivityManager
;
import
chat.rocket.core.models.ServerInfo
;
import
chat.rocket.persistence.realm.RealmHelper
;
import
chat.rocket.persistence.realm.RealmStore
;
import
chat.rocket.persistence.realm.models.ddp.RealmPublicSetting
;
import
chat.rocket.persistence.realm.models.internal.GcmPushRegistration
;
public
class
GcmInstanceIDListenerService
extends
InstanceIDListenerService
{
...
...
app/src/main/java/chat/rocket/android/service/ConnectivityManagerApi.java
View file @
0c7a5148
...
...
@@ -4,9 +4,10 @@ import android.support.annotation.NonNull;
import
android.support.annotation.Nullable
;
import
java.util.List
;
import
chat.rocket.core.models.ServerInfo
;
import
r
x.Observable
;
import
r
x.Single
;
import
io.reactive
x.Observable
;
import
io.reactive
x.Single
;
/**
* interfaces used for Activity/Fragment and other UI-related logic.
...
...
app/src/main/java/chat/rocket/android/service/ConnectivityManagerInternal.java
View file @
0c7a5148
package
chat
.
rocket
.
android
.
service
;
import
java.util.List
;
import
chat.rocket.core.models.ServerInfo
;
/**
...
...
app/src/main/java/chat/rocket/android/service/ConnectivityServiceInterface.java
View file @
0c7a5148
package
chat
.
rocket
.
android
.
service
;
import
r
x.Single
;
import
io.reactive
x.Single
;
public
interface
ConnectivityServiceInterface
{
Single
<
Boolean
>
ensureConnectionToServer
(
String
hostname
);
...
...
app/src/main/java/chat/rocket/android/service/RealmBasedConnectivityManager.java
View file @
0c7a5148
...
...
@@ -20,10 +20,10 @@ import chat.rocket.android_ddp.DDPClient;
import
chat.rocket.core.models.ServerInfo
;
import
chat.rocket.persistence.realm.models.RealmBasedServerInfo
;
import
hugo.weaving.DebugLog
;
import
r
x.Observable
;
import
r
x.Single
;
import
r
x.schedulers.Schedulers
;
import
r
x.subjects.PublishSubject
;
import
io.reactive
x.Observable
;
import
io.reactive
x.Single
;
import
io.reactive
x.schedulers.Schedulers
;
import
io.reactive
x.subjects.PublishSubject
;
/**
* Connectivity management implementation.
...
...
@@ -155,7 +155,7 @@ import rx.subjects.PublishSubject;
@Override
public
Observable
<
ServerConnectivity
>
getServerConnectivityAsObservable
()
{
return
Observable
.
concat
(
Observable
.
from
(
getCurrentConnectivityList
()),
connectivitySubject
);
return
Observable
.
concat
(
Observable
.
from
Iterable
(
getCurrentConnectivityList
()),
connectivitySubject
);
}
@Override
...
...
@@ -176,11 +176,6 @@ import rx.subjects.PublishSubject;
.
flatMap
(
_val
->
connectToServerIfNeeded
(
hostname
,
forceConnect
));
}
// if (connectivity == ServerConnectivity.STATE_CONNECTING) {
// return waitForConnected(hostname)
// .doOnError(error -> notifyConnectionLost(hostname, REASON_NETWORK_ERROR));
// }
if
(
connectivity
==
ServerConnectivity
.
STATE_DISCONNECTED
)
{
notifyConnecting
(
hostname
);
}
...
...
@@ -219,7 +214,7 @@ import rx.subjects.PublishSubject;
.
filter
(
state
->
state
==
ServerConnectivity
.
STATE_CONNECTED
||
state
==
ServerConnectivity
.
STATE_DISCONNECTED
)
.
first
()
.
first
Element
()
.
toSingle
()
.
flatMap
(
state
->
state
==
ServerConnectivity
.
STATE_CONNECTED
...
...
@@ -233,7 +228,7 @@ import rx.subjects.PublishSubject;
.
filter
(
serverConnectivity
->
hostname
.
equals
(
serverConnectivity
.
hostname
))
.
map
(
serverConnectivity
->
serverConnectivity
.
state
)
.
filter
(
state
->
state
==
ServerConnectivity
.
STATE_DISCONNECTED
)
.
first
()
.
first
Element
()
.
toSingle
()
.
map
(
state
->
true
);
}
...
...
app/src/main/java/chat/rocket/android/service/RocketChatService.java
View file @
0c7a5148
...
...
@@ -15,8 +15,8 @@ import chat.rocket.android.helper.Logger;
import
chat.rocket.android.log.RCLog
;
import
chat.rocket.persistence.realm.RealmStore
;
import
hugo.weaving.DebugLog
;
import
r
x.Observable
;
import
r
x.Single
;
import
io.reactive
x.Observable
;
import
io.reactive
x.Single
;
/**
* Background service for Rocket.Chat.Application class.
...
...
@@ -72,7 +72,6 @@ public class RocketChatService extends Service implements ConnectivityServiceInt
.
doOnError
(
err
->
{
err
.
printStackTrace
();
currentWebSocketThread
=
null
;
// connectivityManager.notifyConnectionLost(hostname, ConnectivityManagerInternal.REASON_NETWORK_ERROR);
})
.
flatMap
(
webSocketThreads
->
webSocketThreads
.
keepAlive
());
}
...
...
@@ -93,7 +92,7 @@ public class RocketChatService extends Service implements ConnectivityServiceInt
RealmStore
.
sStore
.
remove
(
hostname
);
});
}
else
{
return
Observable
.
timer
(
1
,
TimeUnit
.
SECONDS
).
toSingle
()
return
Observable
.
timer
(
1
,
TimeUnit
.
SECONDS
).
singleOrError
()
.
flatMap
(
_val
->
disconnectFromServer
(
hostname
));
}
});
...
...
app/src/main/java/chat/rocket/android/service/RocketChatWebSocketThread.java
View file @
0c7a5148
...
...
@@ -41,11 +41,10 @@ import chat.rocket.persistence.realm.RealmHelper;
import
chat.rocket.persistence.realm.RealmStore
;
import
chat.rocket.persistence.realm.models.internal.RealmSession
;
import
hugo.weaving.DebugLog
;
import
io.reactivex.Completable
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
io.reactivex.disposables.CompositeDisposable
;
import
rx.Completable
;
import
rx.Single
;
import
rx.subscriptions.CompositeSubscription
;
/**
* Thread for handling WebSocket connection.
...
...
@@ -74,7 +73,7 @@ public class RocketChatWebSocketThread extends HandlerThread {
private
final
ConnectivityManagerInternal
connectivityManager
;
private
final
ArrayList
<
Registrable
>
listeners
=
new
ArrayList
<>();
private
final
CompositeDisposable
hearbeatDisposable
=
new
CompositeDisposable
();
private
final
Composite
Subscription
reconnectSubscription
=
new
CompositeSubscription
();
private
final
Composite
Disposable
reconnectSubscription
=
new
CompositeDisposable
();
private
boolean
listenersRegistered
;
private
static
class
KeepAliveTimer
{
...
...
@@ -110,13 +109,14 @@ public class RocketChatWebSocketThread extends HandlerThread {
*/
@DebugLog
public
static
Single
<
RocketChatWebSocketThread
>
getStarted
(
Context
appContext
,
String
hostname
)
{
return
Single
.<
RocketChatWebSocketThread
>
from
Emitt
er
(
objectSingleEmitter
->
{
return
Single
.<
RocketChatWebSocketThread
>
from
Publish
er
(
objectSingleEmitter
->
{
new
RocketChatWebSocketThread
(
appContext
,
hostname
)
{
@Override
protected
void
onLooperPrepared
()
{
try
{
super
.
onLooperPrepared
();
objectSingleEmitter
.
onSuccess
(
this
);
objectSingleEmitter
.
onNext
(
this
);
objectSingleEmitter
.
onComplete
();
}
catch
(
Exception
exception
)
{
objectSingleEmitter
.
onError
(
exception
);
}
...
...
@@ -151,14 +151,15 @@ public class RocketChatWebSocketThread extends HandlerThread {
@DebugLog
public
Single
<
Boolean
>
terminate
()
{
if
(
isAlive
())
{
return
Single
.
from
Emitt
er
(
emitter
->
{
return
Single
.
from
Publish
er
(
emitter
->
{
new
Handler
(
getLooper
()).
post
(()
->
{
RCLog
.
d
(
"thread %s: terminated()"
,
Thread
.
currentThread
().
getId
());
unregisterListenersAndClose
();
connectivityManager
.
notifyConnectionLost
(
hostname
,
DDPClient
.
REASON_CLOSED_BY_USER
);
RocketChatWebSocketThread
.
super
.
quit
();
emitter
.
onSuccess
(
true
);
emitter
.
onNext
(
true
);
emitter
.
onComplete
();
});
});
}
else
{
...
...
@@ -198,7 +199,7 @@ public class RocketChatWebSocketThread extends HandlerThread {
}
keepAliveTimer
.
update
();
return
Single
.
from
Emitt
er
(
emitter
->
{
return
Single
.
from
Publish
er
(
emitter
->
{
new
Thread
()
{
@Override
public
void
run
()
{
...
...
@@ -211,7 +212,8 @@ public class RocketChatWebSocketThread extends HandlerThread {
emitter
.
onError
(
error
);
}
else
{
keepAliveTimer
.
update
();
emitter
.
onSuccess
(
true
);
emitter
.
onNext
(
true
);
emitter
.
onComplete
();
}
return
null
;
});
...
...
@@ -251,10 +253,11 @@ public class RocketChatWebSocketThread extends HandlerThread {
private
Single
<
Boolean
>
connectDDPClient
()
{
return
prepareDDPClient
()
.
flatMap
(
_val
->
Single
.
from
Emitt
er
(
emitter
->
{
.
flatMap
(
_val
->
Single
.
from
Publish
er
(
emitter
->
{
ServerInfo
info
=
connectivityManager
.
getServerInfoForHost
(
hostname
);
if
(
info
==
null
)
{
emitter
.
onSuccess
(
false
);
emitter
.
onNext
(
false
);
emitter
.
onComplete
();
return
;
}
RCLog
.
d
(
"DDPClient#connect"
);
...
...
@@ -292,7 +295,8 @@ public class RocketChatWebSocketThread extends HandlerThread {
if
(
task
.
isFaulted
())
{
emitter
.
onError
(
task
.
getError
());
}
else
{
emitter
.
onSuccess
(
true
);
emitter
.
onNext
(
true
);
emitter
.
onComplete
();
}
return
null
;
});
...
...
@@ -301,13 +305,11 @@ public class RocketChatWebSocketThread extends HandlerThread {
private
void
reconnect
()
{
// if we are already trying to reconnect then return.
if
(
reconnectSubscription
.
hasSubscriptions
()
)
{
if
(
reconnectSubscription
.
size
()
>
0
)
{
return
;
}
forceInvalidateTokens
();
connectivityManager
.
notifyConnecting
(
hostname
);
// Needed to use subscriptions because of legacy code.
// TODO: Should update to RxJava 2
reconnectSubscription
.
add
(
connectWithExponentialBackoff
()
.
subscribe
(
...
...
@@ -326,9 +328,9 @@ public class RocketChatWebSocketThread extends HandlerThread {
);
}
private
void
logErrorAndUnsubscribe
(
Composite
Subscription
subscription
s
,
Throwable
err
)
{
private
void
logErrorAndUnsubscribe
(
Composite
Disposable
disposable
s
,
Throwable
err
)
{
RCLog
.
e
(
err
);
subscription
s
.
clear
();
disposable
s
.
clear
();
}
private
Single
<
Boolean
>
connectWithExponentialBackoff
()
{
...
...
@@ -338,11 +340,12 @@ public class RocketChatWebSocketThread extends HandlerThread {
@DebugLog
private
Single
<
Boolean
>
connect
()
{
return
connectDDPClient
()
.
flatMap
(
_val
->
Single
.
from
Emitt
er
(
emitter
->
{
.
flatMap
(
_val
->
Single
.
from
Publish
er
(
emitter
->
{
fetchPublicSettings
();
fetchPermissions
();
registerListeners
();
emitter
.
onSuccess
(
true
);
emitter
.
onNext
(
true
);
emitter
.
onComplete
();
}));
}
...
...
@@ -376,9 +379,9 @@ public class RocketChatWebSocketThread extends HandlerThread {
if
(
sessions
!=
null
&&
sessions
.
size
()
>
0
)
{
// if we have a session try to resume it. At this point we're probably recovering from
// a disconnection state
final
Composite
Subscription
subscriptions
=
new
CompositeSubscription
();
final
Composite
Disposable
disposables
=
new
CompositeDisposable
();
MethodCallHelper
methodCall
=
new
MethodCallHelper
(
realmHelper
);
subscription
s
.
add
(
disposable
s
.
add
(
Completable
.
defer
(()
->
{
Task
<
Void
>
result
=
methodCall
.
loginWithToken
(
sessions
.
get
(
0
).
getToken
());
if
(
result
.
isFaulted
())
{
...
...
@@ -390,9 +393,9 @@ public class RocketChatWebSocketThread extends HandlerThread {
.
subscribe
(
()
->
{
createObserversAndRegister
();
subscription
s
.
clear
();
disposable
s
.
clear
();
},
error
->
logErrorAndUnsubscribe
(
subscription
s
,
error
)
error
->
logErrorAndUnsubscribe
(
disposable
s
,
error
)
)
);
}
else
{
...
...
build.gradle
View file @
0c7a5148
...
...
@@ -12,11 +12,12 @@ buildscript {
google
()
jcenter
()
maven
{
url
'https://maven.fabric.io/public'
}
maven
{
url
'http://oss.jfrog.org/artifactory/oss-snapshot-local'
}
}
dependencies
{
classpath
'com.android.tools.build:gradle:3.0.0'
classpath
"org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.51"
classpath
'io.realm:realm-gradle-plugin:
3.0.0
'
classpath
'io.realm:realm-gradle-plugin:
4.2.0-SNAPSHOT
'
classpath
'com.jakewharton.hugo:hugo-plugin:1.2.1'
classpath
'com.google.gms:google-services:3.0.0'
classpath
'com.github.triplet.gradle:play-publisher:1.1.5'
...
...
@@ -35,6 +36,7 @@ allprojects {
maven
{
url
'http://dl.bintray.com/amulyakhare/maven'
}
//for TextDrawable.
maven
{
url
"https://clojars.org/repo/"
}
//for icepick.
maven
{
url
'https://jitpack.io'
}
//for widget-fontawesome.
maven
{
url
'http://oss.jfrog.org/artifactory/oss-snapshot-local'
}
//for widget-fontawesome.
}
}
...
...
persistence-realm/build.gradle
View file @
0c7a5148
...
...
@@ -37,7 +37,6 @@ dependencies {
compile
supportDependencies
.
annotation
compile
supportDependencies
.
designSupportLibrary
compile
extraDependencies
.
rxAndroid
compile
'com.github.akarnokd:rxjava2-interop:0.10.2'
provided
extraDependencies
.
optional
testCompile
"org.jetbrains.kotlin:kotlin-test:$rootProject.ext.kotlinVersion"
testCompile
"org.jetbrains.kotlin:kotlin-test-junit:$rootProject.ext.kotlinVersion"
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/Migration.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
;
import
io.realm.DynamicRealm
;
import
io.realm.FieldAttribute
;
import
io.realm.RealmMigration
;
import
io.realm.RealmObjectSchema
;
import
io.realm.RealmSchema
;
import
chat.rocket.persistence.realm.models.ddp.RealmMessage
;
import
chat.rocket.persistence.realm.models.ddp.RealmPermission
;
import
chat.rocket.persistence.realm.models.ddp.RealmRole
;
import
chat.rocket.persistence.realm.models.ddp.RealmRoomRole
;
import
chat.rocket.persistence.realm.models.ddp.RealmSpotlightRoom
;
import
chat.rocket.persistence.realm.models.ddp.RealmSpotlightUser
;
import
io.realm.DynamicRealm
;
import
io.realm.FieldAttribute
;
import
io.realm.RealmMigration
;
import
io.realm.RealmObjectSchema
;
import
io.realm.RealmSchema
;
public
class
Migration
implements
RealmMigration
{
@Override
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/RealmAutoCompleteAdapter.java
View file @
0c7a5148
...
...
@@ -8,13 +8,14 @@ import android.view.ViewGroup;
import
android.widget.ArrayAdapter
;
import
android.widget.Filter
;
import
android.widget.TextView
;
import
io.realm.Realm
;
import
io.realm.RealmObject
;
import
io.realm.RealmResults
;
import
java.util.Collections
;
import
java.util.List
;
import
io.realm.Realm
;
import
io.realm.RealmObject
;
import
io.realm.RealmResults
;
/**
* ListAdapter for AutoCompleteTextView.
*/
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/RealmHelper.java
View file @
0c7a5148
...
...
@@ -3,18 +3,20 @@ package chat.rocket.persistence.realm;
import
android.annotation.SuppressLint
;
import
android.content.Context
;
import
android.os.Looper
;
import
io.realm.Realm
;
import
io.realm.RealmConfiguration
;
import
io.realm.RealmObject
;
import
io.realm.RealmQuery
;
import
io.realm.RealmResults
;
import
org.json.JSONException
;
import
java.util.Collections
;
import
java.util.List
;
import
bolts.Task
;
import
bolts.TaskCompletionSource
;
import
chat.rocket.android.log.RCLog
;
import
io.realm.Realm
;
import
io.realm.RealmConfiguration
;
import
io.realm.RealmObject
;
import
io.realm.RealmQuery
;
import
io.realm.RealmResults
;
@SuppressLint
(
"NewApi"
)
public
class
RealmHelper
{
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/RealmListObserver.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
;
import
java.util.List
;
import
io.realm.Realm
;
import
io.realm.RealmChangeListener
;
import
io.realm.RealmObject
;
import
io.realm.RealmResults
;
import
java.util.List
;
public
class
RealmListObserver
<
T
extends
RealmObject
>
extends
AbstractRealmResultsObserver
<
T
>
{
private
final
Query
<
T
>
query
;
private
OnUpdateListener
<
T
>
onUpdateListener
;
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/RealmStore.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
;
import
io.realm.Realm
;
import
io.realm.RealmConfiguration
;
import
java.util.HashMap
;
import
chat.rocket.persistence.realm.modules.RocketChatLibraryModule
;
import
chat.rocket.persistence.realm.modules.RocketChatServerModule
;
import
io.realm.Realm
;
import
io.realm.RealmConfiguration
;
public
class
RealmStore
{
public
static
HashMap
<
String
,
RealmConfiguration
>
sStore
=
new
HashMap
<>();
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/RocketChatPersistenceRealm.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
;
import
android.content.Context
;
import
io.realm.Realm
;
import
io.realm.RealmConfiguration
;
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/RealmBasedServerInfo.java
View file @
0c7a5148
...
...
@@ -2,17 +2,18 @@ package chat.rocket.persistence.realm.models;
import
android.support.annotation.Nullable
;
import
android.text.TextUtils
;
import
io.realm.Realm
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
import
org.json.JSONObject
;
import
java.util.ArrayList
;
import
java.util.List
;
import
chat.rocket.core.models.ServerInfo
;
import
chat.rocket.persistence.realm.RealmHelper
;
import
chat.rocket.persistence.realm.RealmStore
;
import
io.realm.Realm
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
/**
* Backend implementation to store ServerInfo.
...
...
@@ -41,7 +42,7 @@ public class RealmBasedServerInfo extends RealmObject {
.
build
();
}
public
static
Realm
getRealm
()
{
public
static
Realm
get
Server
Realm
()
{
return
RealmStore
.
getRealm
(
DB_NAME
);
}
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/ddp/RealmEmail.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
models
.
ddp
;
import
chat.rocket.core.models.Email
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
import
chat.rocket.core.models.Email
;
/**
* Login-RealmUser's email.
*/
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/ddp/RealmMessage.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
models
.
ddp
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
import
org.json.JSONArray
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
...
...
@@ -10,6 +8,7 @@ import java.util.ArrayList;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
chat.rocket.core.JsonConstants
;
import
chat.rocket.core.SyncState
;
import
chat.rocket.core.models.Attachment
;
...
...
@@ -21,6 +20,8 @@ import chat.rocket.core.models.WebContent;
import
chat.rocket.core.models.WebContentHeaders
;
import
chat.rocket.core.models.WebContentMeta
;
import
chat.rocket.core.models.WebContentParsedUrl
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
/**
* RealmMessage.
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/ddp/RealmMeteorLoginServiceConfiguration.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
models
.
ddp
;
import
chat.rocket.core.models.LoginServiceConfiguration
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
import
chat.rocket.core.models.LoginServiceConfiguration
;
/**
* subscription model for "meteor_accounts_loginServiceConfiguration".
*/
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/ddp/RealmPermission.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
models
.
ddp
;
import
io.realm.RealmList
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
import
org.json.JSONArray
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
java.util.ArrayList
;
import
java.util.List
;
import
chat.rocket.core.models.Permission
;
import
chat.rocket.core.models.Role
;
import
io.realm.RealmList
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
public
class
RealmPermission
extends
RealmObject
{
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/ddp/RealmPreferences.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
models
.
ddp
;
import
chat.rocket.core.models.Preferences
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
import
chat.rocket.core.models.Preferences
;
@SuppressWarnings
({
"PMD.ShortVariable"
})
public
class
RealmPreferences
extends
RealmObject
{
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/ddp/RealmPublicSetting.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
models
.
ddp
;
import
android.support.annotation.Nullable
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
chat.rocket.core.JsonConstants
;
import
chat.rocket.core.models.PublicSetting
;
import
chat.rocket.persistence.realm.RealmHelper
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
/**
* public setting model.
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/ddp/RealmRole.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
models
.
ddp
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
chat.rocket.core.models.Role
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
public
class
RealmRole
extends
RealmObject
{
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/ddp/RealmRoom.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
models
.
ddp
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
chat.rocket.core.JsonConstants
;
import
chat.rocket.core.models.Room
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
/**
* Chat Room(Subscription).
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/ddp/RealmRoomRole.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
models
.
ddp
;
import
io.realm.RealmList
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
import
org.json.JSONArray
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
java.util.ArrayList
;
import
java.util.List
;
import
chat.rocket.core.models.Role
;
import
chat.rocket.core.models.RoomRole
;
import
io.realm.RealmList
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
public
class
RealmRoomRole
extends
RealmObject
{
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/ddp/RealmSettings.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
models
.
ddp
;
import
chat.rocket.core.models.Settings
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
import
chat.rocket.core.models.Settings
;
@SuppressWarnings
({
"PMD.ShortVariable"
})
public
class
RealmSettings
extends
RealmObject
{
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/ddp/RealmSpotlightRoom.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
models
.
ddp
;
import
chat.rocket.core.models.SpotlightRoom
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
import
chat.rocket.core.models.SpotlightRoom
;
public
class
RealmSpotlightRoom
extends
RealmObject
{
public
interface
Columns
{
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/ddp/RealmSpotlightUser.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
models
.
ddp
;
import
chat.rocket.core.models.SpotlightUser
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
import
chat.rocket.core.models.SpotlightUser
;
public
class
RealmSpotlightUser
extends
RealmObject
{
public
interface
Columns
{
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/internal/GcmPushRegistration.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
models
.
internal
;
import
io.realm.Realm
;
import
io.realm.RealmObject
;
import
io.realm.RealmQuery
;
import
io.realm.annotations.PrimaryKey
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
chat.rocket.core.SyncState
;
import
io.realm.Realm
;
import
io.realm.RealmObject
;
import
io.realm.RealmQuery
;
import
io.realm.annotations.PrimaryKey
;
/**
* just stores gcm registration status.
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/internal/LoadMessageProcedure.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
models
.
internal
;
import
chat.rocket.core.models.RoomHistoryState
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
import
chat.rocket.core.models.RoomHistoryState
;
/**
* Load messages in the room.
*/
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/internal/MethodCall.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
models
.
internal
;
import
android.text.TextUtils
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
import
org.json.JSONObject
;
import
java.util.HashMap
;
import
java.util.UUID
;
import
bolts.Task
;
import
bolts.TaskCompletionSource
;
import
chat.rocket.android.log.RCLog
;
...
...
@@ -14,6 +14,8 @@ import chat.rocket.core.SyncState;
import
chat.rocket.persistence.realm.RealmHelper
;
import
chat.rocket.persistence.realm.RealmObjectObserver
;
import
chat.rocket.persistence.realm.helpers.LogcatIfError
;
import
io.realm.RealmObject
;
import
io.realm.annotations.PrimaryKey
;
public
class
MethodCall
extends
RealmObject
{
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/models/internal/RealmSession.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
models
.
internal
;
import
android.text.TextUtils
;
import
io.realm.Realm
;
import
io.realm.RealmObject
;
import
io.realm.RealmQuery
;
import
io.realm.annotations.PrimaryKey
;
import
org.json.JSONObject
;
import
chat.rocket.core.models.Session
;
import
chat.rocket.persistence.realm.RealmHelper
;
import
chat.rocket.persistence.realm.helpers.LogcatIfError
;
import
hugo.weaving.DebugLog
;
import
io.realm.Realm
;
import
io.realm.RealmObject
;
import
io.realm.RealmQuery
;
import
io.realm.annotations.PrimaryKey
;
/**
* Login session info.
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/modules/RocketChatServerModule.java
View file @
0c7a5148
package
chat
.
rocket
.
persistence
.
realm
.
modules
;
import
io.realm.annotations.RealmModule
;
import
chat.rocket.persistence.realm.models.RealmBasedServerInfo
;
import
io.realm.annotations.RealmModule
;
@RealmModule
(
library
=
true
,
classes
=
{
RealmBasedServerInfo
.
class
})
public
class
RocketChatServerModule
{
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmLoginServiceConfigurationRepository.java
View file @
0c7a5148
...
...
@@ -2,19 +2,20 @@ package chat.rocket.persistence.realm.repositories;
import
android.os.Looper
;
import
android.support.v4.util.Pair
;
import
com.hadisatrio.optional.Optional
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.realm.RealmResults
;
import
java.util.ArrayList
;
import
java.util.List
;
import
chat.rocket.core.models.LoginServiceConfiguration
;
import
chat.rocket.core.repositories.LoginServiceConfigurationRepository
;
import
chat.rocket.persistence.realm.RealmStore
;
import
chat.rocket.persistence.realm.models.ddp.RealmMeteorLoginServiceConfiguration
;
import
hu.akarnokd.rxjava.interop.RxJavaInterop
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.realm.RealmResults
;
public
class
RealmLoginServiceConfigurationRepository
extends
RealmRepository
implements
LoginServiceConfigurationRepository
{
...
...
@@ -34,11 +35,10 @@ public class RealmLoginServiceConfigurationRepository extends RealmRepository
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmMeteorLoginServiceConfiguration
.
class
)
return
pair
.
first
.
where
(
RealmMeteorLoginServiceConfiguration
.
class
)
.
equalTo
(
RealmMeteorLoginServiceConfiguration
.
SERVICE
,
serviceName
)
.
findAll
()
.<
RealmResults
<
RealmMeteorLoginServiceConfiguration
>>
as
Observable
()
);
.<
RealmResults
<
RealmMeteorLoginServiceConfiguration
>>
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
@@ -57,10 +57,9 @@ public class RealmLoginServiceConfigurationRepository extends RealmRepository
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmMeteorLoginServiceConfiguration
.
class
)
return
pair
.
first
.
where
(
RealmMeteorLoginServiceConfiguration
.
class
)
.
findAll
()
.
as
Observable
()
);
.
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmMessageRepository.java
View file @
0c7a5148
...
...
@@ -5,17 +5,10 @@ import android.support.v4.util.Pair;
import
com.hadisatrio.optional.Optional
;
import
chat.rocket.core.SyncState
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.realm.Realm
;
import
io.realm.RealmResults
;
import
io.realm.Sort
;
import
java.util.ArrayList
;
import
java.util.List
;
import
chat.rocket.core.SyncState
;
import
chat.rocket.core.models.Message
;
import
chat.rocket.core.models.Room
;
import
chat.rocket.core.models.User
;
...
...
@@ -23,7 +16,12 @@ import chat.rocket.core.repositories.MessageRepository;
import
chat.rocket.persistence.realm.RealmStore
;
import
chat.rocket.persistence.realm.models.ddp.RealmMessage
;
import
chat.rocket.persistence.realm.models.ddp.RealmUser
;
import
hu.akarnokd.rxjava.interop.RxJavaInterop
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.realm.Realm
;
import
io.realm.RealmResults
;
import
io.realm.Sort
;
public
class
RealmMessageRepository
extends
RealmRepository
implements
MessageRepository
{
...
...
@@ -42,11 +40,11 @@ public class RealmMessageRepository extends RealmRepository implements MessageRe
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
return
pair
.
first
.
where
(
RealmMessage
.
class
)
.
equalTo
(
RealmMessage
.
ID
,
messageId
)
.
findAll
()
.<
RealmResults
<
RealmMessage
>>
as
Observable
()
);
.<
RealmResults
<
RealmMessage
>>
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
@@ -93,8 +91,8 @@ public class RealmMessageRepository extends RealmRepository implements MessageRe
realm
.
beginTransaction
();
return
RxJavaInterop
.
toV2Flowable
(
realm
.
copyToRealmOrUpdate
(
realmMessage
)
.
as
Observable
()
)
return
realm
.
copyToRealmOrUpdate
(
realmMessage
)
.
as
Flowable
(
)
.
filter
(
it
->
it
.
isLoaded
()
&&
it
.
isValid
())
.
firstElement
()
.
doOnSuccess
(
it
->
realm
.
commitTransaction
())
...
...
@@ -117,10 +115,10 @@ public class RealmMessageRepository extends RealmRepository implements MessageRe
realm
.
beginTransaction
();
return
RxJavaInterop
.
toV2Flowable
(
realm
.
where
(
RealmMessage
.
class
)
return
realm
.
where
(
RealmMessage
.
class
)
.
equalTo
(
RealmMessage
.
ID
,
message
.
getId
())
.
findAll
()
.<
RealmResults
<
RealmMessage
>>
as
Observable
()
)
.<
RealmResults
<
RealmMessage
>>
as
Flowable
(
)
.
filter
(
realmObject
->
realmObject
.
isLoaded
()
&&
realmObject
.
isValid
())
.
firstElement
()
.
toSingle
()
...
...
@@ -145,13 +143,13 @@ public class RealmMessageRepository extends RealmRepository implements MessageRe
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmMessage
.
class
)
return
pair
.
first
.
where
(
RealmMessage
.
class
)
.
notEqualTo
(
RealmMessage
.
SYNC_STATE
,
SyncState
.
DELETE_NOT_SYNCED
)
.
notEqualTo
(
RealmMessage
.
SYNC_STATE
,
SyncState
.
DELETING
)
.
equalTo
(
RealmMessage
.
ROOM_ID
,
room
.
getRoomId
())
.
isNotNull
(
RealmMessage
.
USER
)
.
findAllSorted
(
RealmMessage
.
TIMESTAMP
,
Sort
.
DESCENDING
)
.
as
Observable
()
);
.
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
@@ -170,12 +168,12 @@ public class RealmMessageRepository extends RealmRepository implements MessageRe
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmMessage
.
class
)
return
pair
.
first
.
where
(
RealmMessage
.
class
)
.
equalTo
(
RealmMessage
.
ROOM_ID
,
room
.
getId
())
.
greaterThanOrEqualTo
(
RealmMessage
.
TIMESTAMP
,
room
.
getLastSeen
())
.
notEqualTo
(
RealmMessage
.
USER_ID
,
user
.
getId
())
.
findAll
()
.
as
Observable
()
);
.
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmPermissionRepository.java
View file @
0c7a5148
...
...
@@ -2,17 +2,17 @@ package chat.rocket.persistence.realm.repositories;
import
android.os.Looper
;
import
android.support.v4.util.Pair
;
import
com.hadisatrio.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
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.realm.RealmResults
;
public
class
RealmPermissionRepository
extends
RealmRepository
implements
PermissionRepository
{
...
...
@@ -30,11 +30,10 @@ public class RealmPermissionRepository extends RealmRepository implements Permis
if
(
pair
.
first
==
null
)
{
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmPermission
.
class
)
return
pair
.
first
.
where
(
RealmPermission
.
class
)
.
equalTo
(
RealmPermission
.
Columns
.
ID
,
id
)
.
findAll
()
.<
RealmResults
<
RealmPermission
>>
as
Observable
()
);
.<
RealmResults
<
RealmPermission
>>
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmPublicSettingRepository.java
View file @
0c7a5148
...
...
@@ -2,17 +2,17 @@ package chat.rocket.persistence.realm.repositories;
import
android.os.Looper
;
import
android.support.v4.util.Pair
;
import
com.hadisatrio.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.PublicSetting
;
import
chat.rocket.core.repositories.PublicSettingRepository
;
import
chat.rocket.persistence.realm.RealmStore
;
import
chat.rocket.persistence.realm.models.ddp.RealmPublicSetting
;
import
hu.akarnokd.rxjava.interop.RxJavaInterop
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.realm.RealmResults
;
public
class
RealmPublicSettingRepository
extends
RealmRepository
implements
PublicSettingRepository
{
...
...
@@ -31,11 +31,10 @@ public class RealmPublicSettingRepository extends RealmRepository
if
(
pair
.
first
==
null
)
{
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmPublicSetting
.
class
)
return
pair
.
first
.
where
(
RealmPublicSetting
.
class
)
.
equalTo
(
RealmPublicSetting
.
ID
,
id
)
.
findAll
()
.<
RealmResults
<
RealmPublicSetting
>>
as
Observable
()
);
.<
RealmResults
<
RealmPublicSetting
>>
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmRepository.java
View file @
0c7a5148
...
...
@@ -2,12 +2,13 @@ package chat.rocket.persistence.realm.repositories;
import
android.os.Handler
;
import
android.os.Looper
;
import
java.util.List
;
import
io.realm.Realm
;
import
io.realm.RealmObject
;
import
io.realm.RealmResults
;
import
java.util.List
;
public
class
RealmRepository
{
protected
void
close
(
Realm
realm
,
Looper
looper
)
{
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmRoomRepository.java
View file @
0c7a5148
...
...
@@ -15,7 +15,6 @@ import chat.rocket.core.repositories.RoomRepository;
import
chat.rocket.persistence.realm.RealmStore
;
import
chat.rocket.persistence.realm.models.ddp.RealmRoom
;
import
chat.rocket.persistence.realm.models.internal.LoadMessageProcedure
;
import
hu.akarnokd.rxjava.interop.RxJavaInterop
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
...
...
@@ -42,10 +41,9 @@ public class RealmRoomRepository extends RealmRepository implements RoomReposito
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmRoom
.
class
)
return
pair
.
first
.
where
(
RealmRoom
.
class
)
.
findAll
()
.
as
Observable
()
);
.
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
@@ -72,13 +70,11 @@ public class RealmRoomRepository extends RealmRepository implements RoomReposito
return
Flowable
.
just
(
Optional
.<
RealmRoom
>
absent
());
}
return
RxJavaInterop
.
toV2Flowable
(
realmRoom
.<
RealmRoom
>
asObservable
()
return
realmRoom
.<
RealmRoom
>
asFlowable
()
.
filter
(
roomSubscription
->
roomSubscription
.
isLoaded
()
&&
roomSubscription
.
isValid
())
.
map
(
Optional:
:
of
)
)
;
.
map
(
Optional:
:
of
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
@@ -109,12 +105,10 @@ public class RealmRoomRepository extends RealmRepository implements RoomReposito
return
Flowable
.
just
(
Optional
.<
LoadMessageProcedure
>
absent
());
}
return
RxJavaInterop
.
toV2Flowable
(
messageProcedure
.<
LoadMessageProcedure
>
asObservable
()
return
messageProcedure
.<
LoadMessageProcedure
>
asFlowable
()
.
filter
(
loadMessageProcedure
->
loadMessageProcedure
.
isLoaded
()
&&
loadMessageProcedure
.
isValid
())
.
map
(
Optional:
:
of
)
)
;
.
map
(
Optional:
:
of
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
@@ -177,8 +171,7 @@ public class RealmRoomRepository extends RealmRepository implements RoomReposito
if
(
pair
.
first
==
null
)
{
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmRoom
.
class
)
return
pair
.
first
.
where
(
RealmRoom
.
class
)
.
like
(
RealmRoom
.
NAME
,
"*"
+
name
+
"*"
,
Case
.
INSENSITIVE
)
.
beginGroup
()
.
equalTo
(
RealmRoom
.
TYPE
,
RealmRoom
.
TYPE_CHANNEL
)
...
...
@@ -187,7 +180,7 @@ public class RealmRoomRepository extends RealmRepository implements RoomReposito
.
endGroup
()
.
findAllSorted
(
RealmRoom
.
NAME
,
direction
.
equals
(
SortDirection
.
ASC
)
?
Sort
.
ASCENDING
:
Sort
.
DESCENDING
)
.
as
Observable
()
);
.
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
@@ -205,15 +198,14 @@ public class RealmRoomRepository extends RealmRepository implements RoomReposito
if
(
pair
.
first
==
null
)
{
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmRoom
.
class
)
return
pair
.
first
.
where
(
RealmRoom
.
class
)
.
beginGroup
()
.
equalTo
(
RealmRoom
.
TYPE
,
RealmRoom
.
TYPE_CHANNEL
)
.
or
()
.
equalTo
(
RealmRoom
.
TYPE
,
RealmRoom
.
TYPE_PRIVATE
)
.
endGroup
()
.
findAllSorted
(
RealmRoom
.
LAST_SEEN
,
Sort
.
ASCENDING
)
.
as
Observable
()
);
.
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmRoomRoleRepository.java
View file @
0c7a5148
...
...
@@ -2,11 +2,8 @@ package chat.rocket.persistence.realm.repositories;
import
android.os.Looper
;
import
android.support.v4.util.Pair
;
import
com.hadisatrio.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
;
...
...
@@ -15,7 +12,10 @@ import chat.rocket.core.repositories.RoomRoleRepository;
import
chat.rocket.persistence.realm.RealmStore
;
import
chat.rocket.persistence.realm.models.ddp.RealmRoomRole
;
import
chat.rocket.persistence.realm.models.ddp.RealmUser
;
import
hu.akarnokd.rxjava.interop.RxJavaInterop
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.realm.RealmResults
;
public
class
RealmRoomRoleRepository
extends
RealmRepository
implements
RoomRoleRepository
{
...
...
@@ -33,12 +33,11 @@ public class RealmRoomRoleRepository extends RealmRepository implements RoomRole
if
(
pair
.
first
==
null
)
{
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmRoomRole
.
class
)
return
pair
.
first
.
where
(
RealmRoomRole
.
class
)
.
equalTo
(
RealmRoomRole
.
Columns
.
ROOM_ID
,
room
.
getId
())
.
equalTo
(
RealmRoomRole
.
Columns
.
USER
+
"."
+
RealmUser
.
ID
,
user
.
getId
())
.
findAll
()
.<
RealmResults
<
RealmRoomRole
>>
as
Observable
()
);
.<
RealmResults
<
RealmRoomRole
>>
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmServerInfoRepository.java
View file @
0c7a5148
...
...
@@ -2,21 +2,21 @@ package chat.rocket.persistence.realm.repositories;
import
android.os.Looper
;
import
android.support.v4.util.Pair
;
import
com.hadisatrio.optional.Optional
;
import
io.reactivex.Flowable
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
chat.rocket.core.models.ServerInfo
;
import
chat.rocket.core.repositories.ServerInfoRepository
;
import
chat.rocket.persistence.realm.models.RealmBasedServerInfo
;
import
hu.akarnokd.rxjava.interop.RxJavaInterop
;
import
io.reactivex.Flowable
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
public
class
RealmServerInfoRepository
extends
RealmRepository
implements
ServerInfoRepository
{
@Override
public
Flowable
<
Optional
<
ServerInfo
>>
getByHostname
(
String
hostname
)
{
return
Flowable
.
defer
(()
->
Flowable
.
using
(
()
->
new
Pair
<>(
RealmBasedServerInfo
.
getRealm
(),
Looper
.
myLooper
()),
()
->
new
Pair
<>(
RealmBasedServerInfo
.
get
Server
Realm
(),
Looper
.
myLooper
()),
pair
->
{
RealmBasedServerInfo
info
=
pair
.
first
.
where
(
RealmBasedServerInfo
.
class
)
.
equalTo
(
RealmBasedServerInfo
.
ColumnName
.
HOSTNAME
,
hostname
)
...
...
@@ -26,10 +26,9 @@ public class RealmServerInfoRepository extends RealmRepository implements Server
return
Flowable
.
just
(
Optional
.<
RealmBasedServerInfo
>
absent
());
}
return
RxJavaInterop
.
toV2Flowable
(
info
.<
RealmBasedServerInfo
>
asObservable
()
return
info
.<
RealmBasedServerInfo
>
asFlowable
()
.
filter
(
it
->
it
.
isLoaded
()
&&
it
.
isValid
())
.
map
(
Optional:
:
of
)
)
;
.
map
(
Optional:
:
of
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmSessionRepository.java
View file @
0c7a5148
...
...
@@ -2,17 +2,17 @@ package chat.rocket.persistence.realm.repositories;
import
android.os.Looper
;
import
android.support.v4.util.Pair
;
import
com.hadisatrio.optional.Optional
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.realm.Realm
;
import
chat.rocket.core.models.Session
;
import
chat.rocket.core.repositories.SessionRepository
;
import
chat.rocket.persistence.realm.RealmStore
;
import
chat.rocket.persistence.realm.models.internal.RealmSession
;
import
hu.akarnokd.rxjava.interop.RxJavaInterop
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.realm.Realm
;
public
class
RealmSessionRepository
extends
RealmRepository
implements
SessionRepository
{
...
...
@@ -31,11 +31,10 @@ public class RealmSessionRepository extends RealmRepository implements SessionRe
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmSession
.
class
)
return
pair
.
first
.
where
(
RealmSession
.
class
)
.
equalTo
(
RealmSession
.
ID
,
id
)
.
findAll
()
.<
RealmSession
>
as
Observable
()
);
.<
RealmSession
>
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
@@ -76,8 +75,8 @@ public class RealmSessionRepository extends RealmRepository implements SessionRe
realm
.
beginTransaction
();
return
RxJavaInterop
.
toV2Flowable
(
realm
.
copyToRealmOrUpdate
(
realmSession
)
.
as
Observable
()
)
return
realm
.
copyToRealmOrUpdate
(
realmSession
)
.
as
Flowable
(
)
.
filter
(
it
->
it
!=
null
&&
it
.
isLoaded
()
&&
it
.
isValid
())
.
firstElement
()
.
doOnSuccess
(
it
->
realm
.
commitTransaction
())
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmSpotlightRepository.kt
View file @
0c7a5148
...
...
@@ -6,13 +6,12 @@ import chat.rocket.core.repositories.SpotlightRepository
import
chat.rocket.persistence.realm.RealmStore
import
chat.rocket.persistence.realm.models.ddp.RealmSpotlight
import
chat.rocket.persistence.realm.models.ddp.RealmSpotlight.Columns
import
hu.akarnokd.rxjava.interop.RxJavaInterop
import
io.reactivex.Flowable
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.realm.Realm
import
io.realm.RealmResults
import
io.realm.Sort
import
java.util.
ArrayList
import
java.util.
*
class
RealmSpotlightRepository
(
private
val
hostname
:
String
)
:
RealmRepository
(),
SpotlightRepository
{
...
...
@@ -24,9 +23,9 @@ class RealmSpotlightRepository(private val hostname: String) : RealmRepository()
return
@using
Flowable
.
empty
()
}
return
@using
RxJavaInterop
.
toV2Flowable
<
RealmResults
<
RealmSpotlight
>>(
pair
.
first
.
where
(
RealmSpotlight
::
class
.
java
)
return
@using
pair
.
first
.
where
(
RealmSpotlight
::
class
.
java
)
.
findAllSorted
(
Columns
.
TYPE
,
Sort
.
DESCENDING
)
.
as
Observable
()
)
.
as
Flowable
(
)
})
{
pair
->
close
(
pair
.
first
,
pair
.
second
)
}
.
unsubscribeOn
(
AndroidSchedulers
.
from
(
Looper
.
myLooper
()
!!
))
.
filter
{
realmSpotlightResults
->
realmSpotlightResults
.
isLoaded
&&
realmSpotlightResults
.
isValid
}
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmSpotlightRoomRepository.java
View file @
0c7a5148
...
...
@@ -2,20 +2,20 @@ package chat.rocket.persistence.realm.repositories;
import
android.os.Looper
;
import
android.support.v4.util.Pair
;
import
io.reactivex.Flowable
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.realm.Case
;
import
io.realm.Sort
;
import
java.util.ArrayList
;
import
java.util.List
;
import
chat.rocket.core.SortDirection
;
import
chat.rocket.core.models.SpotlightRoom
;
import
chat.rocket.core.repositories.SpotlightRoomRepository
;
import
chat.rocket.persistence.realm.RealmStore
;
import
chat.rocket.persistence.realm.models.ddp.RealmRoom
;
import
chat.rocket.persistence.realm.models.ddp.RealmSpotlightRoom
;
import
hu.akarnokd.rxjava.interop.RxJavaInterop
;
import
io.reactivex.Flowable
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.realm.Case
;
import
io.realm.Sort
;
public
class
RealmSpotlightRoomRepository
extends
RealmRepository
implements
SpotlightRoomRepository
{
...
...
@@ -34,8 +34,7 @@ public class RealmSpotlightRoomRepository extends RealmRepository implements Spo
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmSpotlightRoom
.
class
)
return
pair
.
first
.
where
(
RealmSpotlightRoom
.
class
)
.
like
(
RealmSpotlightRoom
.
Columns
.
NAME
,
"*"
+
name
+
"*"
,
Case
.
INSENSITIVE
)
.
beginGroup
()
.
equalTo
(
RealmSpotlightRoom
.
Columns
.
TYPE
,
RealmRoom
.
TYPE_CHANNEL
)
...
...
@@ -43,7 +42,7 @@ public class RealmSpotlightRoomRepository extends RealmRepository implements Spo
.
equalTo
(
RealmSpotlightRoom
.
Columns
.
TYPE
,
RealmRoom
.
TYPE_PRIVATE
)
.
endGroup
()
.
findAllSorted
(
RealmSpotlightRoom
.
Columns
.
NAME
,
direction
.
equals
(
SortDirection
.
ASC
)
?
Sort
.
ASCENDING
:
Sort
.
DESCENDING
)
.
as
Observable
()
);
.
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmSpotlightUserRepository.java
View file @
0c7a5148
...
...
@@ -2,19 +2,19 @@ package chat.rocket.persistence.realm.repositories;
import
android.os.Looper
;
import
android.support.v4.util.Pair
;
import
io.reactivex.Flowable
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.realm.Case
;
import
io.realm.Sort
;
import
java.util.ArrayList
;
import
java.util.List
;
import
chat.rocket.core.SortDirection
;
import
chat.rocket.core.models.SpotlightUser
;
import
chat.rocket.core.repositories.SpotlightUserRepository
;
import
chat.rocket.persistence.realm.RealmStore
;
import
chat.rocket.persistence.realm.models.ddp.RealmSpotlightUser
;
import
hu.akarnokd.rxjava.interop.RxJavaInterop
;
import
io.reactivex.Flowable
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.realm.Case
;
import
io.realm.Sort
;
public
class
RealmSpotlightUserRepository
extends
RealmRepository
implements
SpotlightUserRepository
{
...
...
@@ -33,8 +33,7 @@ public class RealmSpotlightUserRepository extends RealmRepository implements Spo
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmSpotlightUser
.
class
)
return
pair
.
first
.
where
(
RealmSpotlightUser
.
class
)
.
beginGroup
()
.
like
(
RealmSpotlightUser
.
Columns
.
USERNAME
,
"*"
+
name
+
"*"
,
Case
.
INSENSITIVE
)
.
isNull
(
RealmSpotlightUser
.
Columns
.
NAME
)
...
...
@@ -46,7 +45,7 @@ public class RealmSpotlightUserRepository extends RealmRepository implements Spo
.
endGroup
()
.
findAllSorted
(
RealmSpotlightUser
.
Columns
.
USERNAME
,
direction
.
equals
(
SortDirection
.
ASC
)
?
Sort
.
ASCENDING
:
Sort
.
DESCENDING
)
.
as
Observable
()
);
.
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
)
)
...
...
persistence-realm/src/main/java/chat/rocket/persistence/realm/repositories/RealmUserRepository.java
View file @
0c7a5148
...
...
@@ -12,7 +12,6 @@ import chat.rocket.core.models.User;
import
chat.rocket.core.repositories.UserRepository
;
import
chat.rocket.persistence.realm.RealmStore
;
import
chat.rocket.persistence.realm.models.ddp.RealmUser
;
import
hu.akarnokd.rxjava.interop.RxJavaInterop
;
import
io.reactivex.Flowable
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.realm.Case
;
...
...
@@ -36,10 +35,9 @@ public class RealmUserRepository extends RealmRepository implements UserReposito
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmUser
.
class
)
return
pair
.
first
.
where
(
RealmUser
.
class
)
.
findAll
()
.
as
Observable
()
);
.
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
))
.
unsubscribeOn
(
AndroidSchedulers
.
from
(
Looper
.
myLooper
()))
...
...
@@ -71,11 +69,10 @@ public class RealmUserRepository extends RealmRepository implements UserReposito
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmUser
.
class
)
return
pair
.
first
.
where
(
RealmUser
.
class
)
.
isNotEmpty
(
RealmUser
.
EMAILS
)
.
findAll
()
.<
RealmResults
<
RealmUser
>>
as
Observable
()
);
.<
RealmResults
<
RealmUser
>>
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
));
}
...
...
@@ -114,11 +111,9 @@ public class RealmUserRepository extends RealmRepository implements UserReposito
return
Flowable
.
just
(
Optional
.
absent
());
}
return
RxJavaInterop
.
toV2Flowable
(
realmUser
.<
RealmUser
>
asObservable
()
return
realmUser
.<
RealmUser
>
asFlowable
()
.
filter
(
user
->
user
.
isLoaded
()
&&
user
.
isValid
())
.
map
(
Optional:
:
of
)
)
;
.
map
(
Optional:
:
of
);
}
@Override
...
...
@@ -139,11 +134,10 @@ public class RealmUserRepository extends RealmRepository implements UserReposito
return
Flowable
.
empty
();
}
return
RxJavaInterop
.
toV2Flowable
(
pair
.
first
.
where
(
RealmUser
.
class
)
return
pair
.
first
.
where
(
RealmUser
.
class
)
.
like
(
RealmUser
.
USERNAME
,
"*"
+
name
+
"*"
,
Case
.
INSENSITIVE
)
.
findAllSorted
(
RealmUser
.
USERNAME
,
Sort
.
DESCENDING
)
.
as
Observable
()
);
.
as
Flowable
(
);
},
pair
->
close
(
pair
.
first
,
pair
.
second
));
}
...
...
rocket-chat-android-widgets/src/main/java/chat/rocket/android/widget/RocketChatAvatar.java
View file @
0c7a5148
...
...
@@ -7,9 +7,11 @@ import android.os.Build;
import
android.util.AttributeSet
;
import
android.view.LayoutInflater
;
import
android.widget.FrameLayout
;
import
chat.rocket.android.widget.helper.FrescoHelper
;
import
com.facebook.drawee.view.SimpleDraweeView
;
import
chat.rocket.android.widget.helper.FrescoHelper
;
public
class
RocketChatAvatar
extends
FrameLayout
{
private
SimpleDraweeView
simpleDraweeViewAvatar
;
...
...
rocket-chat-android-widgets/src/main/java/chat/rocket/android/widget/helper/IconProvider.java
View file @
0c7a5148
...
...
@@ -3,6 +3,7 @@ package chat.rocket.android.widget.helper;
import
android.support.annotation.StringRes
;
import
java.util.HashMap
;
import
chat.rocket.android.widget.R
;
public
class
IconProvider
{
...
...
rocket-chat-android-widgets/src/main/java/chat/rocket/android/widget/helper/InlineHightlighter.java
View file @
0c7a5148
...
...
@@ -15,6 +15,7 @@ import android.widget.TextView;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
import
chat.rocket.android.widget.R
;
public
class
InlineHightlighter
{
...
...
rocket-chat-android-widgets/src/main/java/chat/rocket/android/widget/helper/LinkMovementMethodCompat.java
View file @
0c7a5148
...
...
@@ -5,7 +5,6 @@ import android.text.Selection;
import
android.text.Spannable
;
import
android.text.method.LinkMovementMethod
;
import
android.text.method.MovementMethod
;
import
android.text.method.Touch
;
import
android.text.style.ClickableSpan
;
import
android.view.MotionEvent
;
import
android.widget.TextView
;
...
...
rocket-chat-android-widgets/src/main/java/chat/rocket/android/widget/helper/Linkify.java
View file @
0c7a5148
...
...
@@ -3,6 +3,7 @@ package chat.rocket.android.widget.helper;
import
android.text.SpannableString
;
import
android.text.Spanned
;
import
android.widget.TextView
;
import
org.nibor.autolink.LinkExtractor
;
import
org.nibor.autolink.LinkSpan
;
import
org.nibor.autolink.LinkType
;
...
...
rocket-chat-android-widgets/src/main/java/chat/rocket/android/widget/internal/ExtraActionPickerDialogFragment.java
View file @
0c7a5148
...
...
@@ -6,6 +6,7 @@ import android.support.v4.app.Fragment;
import
android.support.v7.widget.RecyclerView
;
import
java.util.List
;
import
chat.rocket.android.widget.R
;
import
chat.rocket.android.widget.layouthelper.MessageExtraActionListAdapter
;
import
chat.rocket.android.widget.message.MessageExtraActionItemPresenter
;
...
...
rocket-chat-android-widgets/src/main/java/chat/rocket/android/widget/layouthelper/MessageExtraActionListAdapter.java
View file @
0c7a5148
...
...
@@ -6,6 +6,7 @@ import android.view.View;
import
android.view.ViewGroup
;
import
java.util.List
;
import
chat.rocket.android.widget.R
;
import
chat.rocket.android.widget.message.MessageExtraActionItemPresenter
;
...
...
rocket-chat-android-widgets/src/main/java/chat/rocket/android/widget/message/RocketChatMessageAttachmentsLayout.java
View file @
0c7a5148
...
...
@@ -16,6 +16,12 @@ import android.view.View;
import
android.view.ViewGroup
;
import
android.widget.LinearLayout
;
import
android.widget.TextView
;
import
com.facebook.drawee.generic.GenericDraweeHierarchyBuilder
;
import
com.facebook.drawee.view.SimpleDraweeView
;
import
java.util.List
;
import
chat.rocket.android.widget.AbsoluteUrl
;
import
chat.rocket.android.widget.R
;
import
chat.rocket.android.widget.helper.FrescoHelper
;
...
...
@@ -24,10 +30,6 @@ import chat.rocket.core.models.AttachmentAuthor;
import
chat.rocket.core.models.AttachmentField
;
import
chat.rocket.core.models.AttachmentTitle
;
import
com.facebook.drawee.generic.GenericDraweeHierarchyBuilder
;
import
com.facebook.drawee.view.SimpleDraweeView
;
import
java.util.List
;
/**
*/
public
class
RocketChatMessageAttachmentsLayout
extends
LinearLayout
{
...
...
rocket-chat-android-widgets/src/main/java/chat/rocket/android/widget/message/RocketChatMessageLayout.java
View file @
0c7a5148
...
...
@@ -8,6 +8,7 @@ import android.util.AttributeSet;
import
android.view.LayoutInflater
;
import
android.widget.LinearLayout
;
import
android.widget.TextView
;
import
com.emojione.Emojione
;
import
chat.rocket.android.widget.R
;
...
...
rocket-chat-android-widgets/src/main/java/chat/rocket/android/widget/message/RocketChatMessageUrlsLayout.java
View file @
0c7a5148
...
...
@@ -11,12 +11,14 @@ import android.view.LayoutInflater;
import
android.view.View
;
import
android.widget.LinearLayout
;
import
android.widget.TextView
;
import
chat.rocket.android.widget.helper.FrescoHelper
;
import
com.facebook.drawee.view.SimpleDraweeView
;
import
java.util.List
;
import
java.util.Map
;
import
chat.rocket.android.widget.R
;
import
chat.rocket.android.widget.helper.FrescoHelper
;
import
chat.rocket.android.widget.helper.ImageFormat
;
import
chat.rocket.core.models.WebContent
;
import
chat.rocket.core.models.WebContentHeaders
;
...
...
rocket-chat-android-widgets/src/main/java/chat/rocket/android/widget/message/autocomplete/AutocompleteManager.java
View file @
0c7a5148
...
...
@@ -12,6 +12,12 @@ import android.widget.RelativeLayout;
import
com.jakewharton.rxbinding2.widget.RxTextView
;
import
com.jakewharton.rxbinding2.widget.TextViewAfterTextChangeEvent
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
import
chat.rocket.android.widget.R
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.annotations.NonNull
;
import
io.reactivex.disposables.CompositeDisposable
;
...
...
@@ -20,11 +26,6 @@ import io.reactivex.functions.Consumer;
import
io.reactivex.functions.Function
;
import
io.reactivex.internal.util.AppendOnlyLinkedArrayList
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
import
chat.rocket.android.widget.R
;
public
class
AutocompleteManager
{
private
final
Map
<
String
,
AutocompleteSource
>
autocompleteSourceMap
=
new
HashMap
<>();
...
...
rocket-chat-android-widgets/src/main/java/chat/rocket/android/widget/message/autocomplete/AutocompleteSource.java
View file @
0c7a5148
package
chat
.
rocket
.
android
.
widget
.
message
.
autocomplete
;
import
android.support.annotation.NonNull
;
import
io.reactivex.disposables.Disposable
;
public
abstract
class
AutocompleteSource
<
A
extends
AutocompleteAdapter
,
I
extends
AutocompleteItem
>
{
...
...
rocket-chat-android-widgets/src/main/java/chat/rocket/android/widget/message/autocomplete/channel/ChannelSource.java
View file @
0c7a5148
...
...
@@ -2,19 +2,19 @@ package chat.rocket.android.widget.message.autocomplete.channel;
import
android.support.annotation.NonNull
;
import
io.reactivex.Flowable
;
import
io.reactivex.Scheduler
;
import
io.reactivex.disposables.Disposable
;
import
io.reactivex.functions.Consumer
;
import
io.reactivex.functions.Function
;
import
org.reactivestreams.Publisher
;
import
java.util.ArrayList
;
import
java.util.List
;
import
chat.rocket.android.widget.message.autocomplete.AutocompleteSource
;
import
chat.rocket.core.interactors.AutocompleteChannelInteractor
;
import
chat.rocket.core.models.SpotlightRoom
;
import
io.reactivex.Flowable
;
import
io.reactivex.Scheduler
;
import
io.reactivex.disposables.Disposable
;
import
io.reactivex.functions.Consumer
;
import
io.reactivex.functions.Function
;
public
class
ChannelSource
extends
AutocompleteSource
<
ChannelAdapter
,
ChannelItem
>
{
...
...
rocket-chat-android-widgets/src/main/java/chat/rocket/android/widget/message/autocomplete/user/UserSource.java
View file @
0c7a5148
package
chat
.
rocket
.
android
.
widget
.
message
.
autocomplete
.
user
;
import
android.support.annotation.NonNull
;
import
io.reactivex.Flowable
;
import
io.reactivex.Scheduler
;
import
io.reactivex.disposables.Disposable
;
import
io.reactivex.functions.Consumer
;
import
io.reactivex.functions.Function
;
import
org.reactivestreams.Publisher
;
import
java.util.ArrayList
;
import
java.util.List
;
import
chat.rocket.android.widget.AbsoluteUrl
;
import
chat.rocket.android.widget.helper.UserStatusProvider
;
import
chat.rocket.android.widget.message.autocomplete.AutocompleteSource
;
import
chat.rocket.core.interactors.AutocompleteUserInteractor
;
import
chat.rocket.core.models.SpotlightUser
;
import
io.reactivex.Flowable
;
import
io.reactivex.Scheduler
;
import
io.reactivex.disposables.Disposable
;
import
io.reactivex.functions.Consumer
;
import
io.reactivex.functions.Function
;
public
class
UserSource
extends
AutocompleteSource
<
UserAdapter
,
UserItem
>
{
...
...
rocket-chat-core/src/main/java/chat/rocket/core/interactors/AutocompleteChannelInteractor.kt
View file @
0c7a5148
package
chat.rocket.core.interactors
import
io.reactivex.Flowable
import
java.util.ArrayList
import
chat.rocket.core.SortDirection
import
chat.rocket.core.models.Room
import
chat.rocket.core.models.SpotlightRoom
...
...
@@ -11,8 +8,10 @@ import chat.rocket.core.repositories.SpotlightRoomRepository
import
chat.rocket.core.temp.TempSpotlightRoomCaller
import
chat.rocket.core.utils.Pair
import
chat.rocket.core.utils.Triple
import
io.reactivex.Flowable
import
io.reactivex.functions.BiFunction
import
io.reactivex.functions.Function3
import
java.util.*
class
AutocompleteChannelInteractor
(
private
val
roomRepository
:
RoomRepository
,
private
val
spotlightRoomRepository
:
SpotlightRoomRepository
,
...
...
rocket-chat-core/src/main/java/chat/rocket/core/interactors/AutocompleteUserInteractor.kt
View file @
0c7a5148
...
...
@@ -12,7 +12,7 @@ import chat.rocket.core.temp.TempSpotlightUserCaller
import
chat.rocket.core.utils.Triple
import
io.reactivex.Flowable
import
io.reactivex.functions.Function3
import
java.util.
ArrayList
import
java.util.
*
class
AutocompleteUserInteractor
(
private
val
room
:
Room
,
private
val
userRepository
:
UserRepository
,
...
...
rocket-chat-core/src/main/java/chat/rocket/core/interactors/CanCreateRoomInteractor.kt
View file @
0c7a5148
...
...
@@ -2,11 +2,10 @@ package chat.rocket.core.interactors
import
chat.rocket.core.models.Session
import
chat.rocket.core.models.User
import
io.reactivex.Flowable
import
io.reactivex.Single
import
chat.rocket.core.repositories.UserRepository
import
com.hadisatrio.optional.Optional
import
io.reactivex.Flowable
import
io.reactivex.Single
import
io.reactivex.functions.Function3
class
CanCreateRoomInteractor
(
private
val
userRepository
:
UserRepository
,
...
...
rocket-chat-core/src/main/java/chat/rocket/core/interactors/EditMessageInteractor.kt
View file @
0c7a5148
...
...
@@ -2,8 +2,14 @@ package chat.rocket.core.interactors
import
chat.rocket.core.PermissionsConstants
import
chat.rocket.core.PublicSettingsConstants
import
chat.rocket.core.models.*
import
chat.rocket.core.repositories.*
import
chat.rocket.core.models.Message
import
chat.rocket.core.models.PublicSetting
import
chat.rocket.core.models.Room
import
chat.rocket.core.models.User
import
chat.rocket.core.repositories.MessageRepository
import
chat.rocket.core.repositories.PublicSettingRepository
import
chat.rocket.core.repositories.RoomRepository
import
chat.rocket.core.repositories.UserRepository
import
chat.rocket.core.utils.Pair
import
com.hadisatrio.optional.Optional
import
io.reactivex.Single
...
...
rocket-chat-core/src/main/java/chat/rocket/core/interactors/MessageInteractor.kt
View file @
0c7a5148
package
chat.rocket.core.interactors
import
com.hadisatrio.optional.Optional
import
io.reactivex.Flowable
import
io.reactivex.Single
import
java.util.UUID
import
chat.rocket.core.SyncState
import
chat.rocket.core.models.Message
import
chat.rocket.core.models.Room
...
...
@@ -11,6 +7,10 @@ import chat.rocket.core.models.RoomHistoryState
import
chat.rocket.core.models.User
import
chat.rocket.core.repositories.MessageRepository
import
chat.rocket.core.repositories.RoomRepository
import
com.hadisatrio.optional.Optional
import
io.reactivex.Flowable
import
io.reactivex.Single
import
java.util.*
class
MessageInteractor
(
private
val
messageRepository
:
MessageRepository
,
private
val
roomRepository
:
RoomRepository
)
{
...
...
rocket-chat-core/src/main/java/chat/rocket/core/interactors/PermissionInteractor.kt
View file @
0c7a5148
...
...
@@ -3,7 +3,9 @@ package chat.rocket.core.interactors
import
chat.rocket.core.models.Permission
import
chat.rocket.core.models.Room
import
chat.rocket.core.models.RoomRole
import
chat.rocket.core.repositories.*
import
chat.rocket.core.repositories.PermissionRepository
import
chat.rocket.core.repositories.RoomRoleRepository
import
chat.rocket.core.repositories.UserRepository
import
chat.rocket.core.utils.Pair
import
com.hadisatrio.optional.Optional
import
io.reactivex.Single
...
...
rocket-chat-core/src/main/java/chat/rocket/core/interactors/RoomInteractor.kt
View file @
0c7a5148
package
chat.rocket.core.interactors
import
io.reactivex.Flowable
import
chat.rocket.core.SortDirection
import
chat.rocket.core.models.Room
import
chat.rocket.core.repositories.RoomRepository
import
io.reactivex.Flowable
class
RoomInteractor
(
private
val
roomRepository
:
RoomRepository
)
{
...
...
rocket-chat-core/src/main/java/chat/rocket/core/interactors/SessionInteractor.kt
View file @
0c7a5148
package
chat.rocket.core.interactors
import
chat.rocket.core.models.Session
import
chat.rocket.core.repositories.SessionRepository
import
com.hadisatrio.optional.Optional
import
io.reactivex.Flowable
import
io.reactivex.Single
import
chat.rocket.core.models.Session
import
chat.rocket.core.repositories.SessionRepository
class
SessionInteractor
(
private
val
sessionRepository
:
SessionRepository
)
{
companion
object
{
...
...
rocket-chat-core/src/main/java/chat/rocket/core/interactors/UserInteractor.java
View file @
0c7a5148
package
chat
.
rocket
.
core
.
interactors
;
import
io.reactivex.Flowable
;
import
java.util.List
;
import
chat.rocket.core.models.User
;
import
chat.rocket.core.repositories.UserRepository
;
import
io.reactivex.Flowable
;
public
class
UserInteractor
{
...
...
rocket-chat-core/src/main/java/chat/rocket/core/models/Attachment.java
View file @
0c7a5148
...
...
@@ -3,6 +3,7 @@ package chat.rocket.core.models;
import
com.google.auto.value.AutoValue
;
import
java.util.List
;
import
javax.annotation.Nullable
;
@AutoValue
...
...
rocket-chat-core/src/main/java/chat/rocket/core/models/Message.java
View file @
0c7a5148
...
...
@@ -3,6 +3,7 @@ package chat.rocket.core.models;
import
com.google.auto.value.AutoValue
;
import
java.util.List
;
import
javax.annotation.Nullable
;
@AutoValue
...
...
rocket-chat-core/src/main/java/chat/rocket/core/models/User.java
View file @
0c7a5148
...
...
@@ -3,6 +3,7 @@ package chat.rocket.core.models;
import
com.google.auto.value.AutoValue
;
import
java.util.List
;
import
javax.annotation.Nullable
;
@AutoValue
...
...
rocket-chat-core/src/main/java/chat/rocket/core/models/WebContent.java
View file @
0c7a5148
...
...
@@ -3,6 +3,7 @@ package chat.rocket.core.models;
import
com.google.auto.value.AutoValue
;
import
java.util.Map
;
import
javax.annotation.Nullable
;
@AutoValue
...
...
rocket-chat-core/src/main/java/chat/rocket/core/repositories/LoginServiceConfigurationRepository.java
View file @
0c7a5148
package
chat
.
rocket
.
core
.
repositories
;
import
com.hadisatrio.optional.Optional
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
java.util.List
;
import
chat.rocket.core.models.LoginServiceConfiguration
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
public
interface
LoginServiceConfigurationRepository
{
...
...
rocket-chat-core/src/main/java/chat/rocket/core/repositories/MessageRepository.java
View file @
0c7a5148
package
chat
.
rocket
.
core
.
repositories
;
import
com.hadisatrio.optional.Optional
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
java.util.List
;
import
chat.rocket.core.models.Message
;
import
chat.rocket.core.models.Room
;
import
chat.rocket.core.models.User
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
public
interface
MessageRepository
{
...
...
rocket-chat-core/src/main/java/chat/rocket/core/repositories/PermissionRepository.java
View file @
0c7a5148
package
chat
.
rocket
.
core
.
repositories
;
import
com.hadisatrio.optional.Optional
;
import
io.reactivex.Single
;
import
chat.rocket.core.models.Permission
;
import
io.reactivex.Single
;
public
interface
PermissionRepository
{
...
...
rocket-chat-core/src/main/java/chat/rocket/core/repositories/PublicSettingRepository.java
View file @
0c7a5148
package
chat
.
rocket
.
core
.
repositories
;
import
com.hadisatrio.optional.Optional
;
import
io.reactivex.Single
;
import
chat.rocket.core.models.PublicSetting
;
import
io.reactivex.Single
;
public
interface
PublicSettingRepository
{
...
...
rocket-chat-core/src/main/java/chat/rocket/core/repositories/RoomRepository.java
View file @
0c7a5148
package
chat
.
rocket
.
core
.
repositories
;
import
com.hadisatrio.optional.Optional
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
java.util.List
;
import
chat.rocket.core.SortDirection
;
import
chat.rocket.core.models.Room
;
import
chat.rocket.core.models.RoomHistoryState
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
public
interface
RoomRepository
{
...
...
rocket-chat-core/src/main/java/chat/rocket/core/repositories/RoomRoleRepository.java
View file @
0c7a5148
package
chat
.
rocket
.
core
.
repositories
;
import
com.hadisatrio.optional.Optional
;
import
io.reactivex.Single
;
import
chat.rocket.core.models.Room
;
import
chat.rocket.core.models.RoomRole
;
import
chat.rocket.core.models.User
;
import
io.reactivex.Single
;
public
interface
RoomRoleRepository
{
...
...
rocket-chat-core/src/main/java/chat/rocket/core/repositories/ServerInfoRepository.java
View file @
0c7a5148
...
...
@@ -2,9 +2,8 @@ package chat.rocket.core.repositories;
import
com.hadisatrio.optional.Optional
;
import
io.reactivex.Flowable
;
import
chat.rocket.core.models.ServerInfo
;
import
io.reactivex.Flowable
;
public
interface
ServerInfoRepository
{
...
...
rocket-chat-core/src/main/java/chat/rocket/core/repositories/SessionRepository.java
View file @
0c7a5148
package
chat
.
rocket
.
core
.
repositories
;
import
com.hadisatrio.optional.Optional
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
import
chat.rocket.core.models.Session
;
import
io.reactivex.Flowable
;
import
io.reactivex.Single
;
public
interface
SessionRepository
{
...
...
rocket-chat-core/src/main/java/chat/rocket/core/repositories/SpotlightRoomRepository.java
View file @
0c7a5148
package
chat
.
rocket
.
core
.
repositories
;
import
io.reactivex.Flowable
;
import
java.util.List
;
import
chat.rocket.core.SortDirection
;
import
chat.rocket.core.models.SpotlightRoom
;
import
io.reactivex.Flowable
;
public
interface
SpotlightRoomRepository
{
...
...
rocket-chat-core/src/main/java/chat/rocket/core/repositories/SpotlightUserRepository.java
View file @
0c7a5148
package
chat
.
rocket
.
core
.
repositories
;
import
io.reactivex.Flowable
;
import
java.util.List
;
import
chat.rocket.core.SortDirection
;
import
chat.rocket.core.models.SpotlightUser
;
import
io.reactivex.Flowable
;
public
interface
SpotlightUserRepository
{
...
...
rocket-chat-core/src/main/java/chat/rocket/core/repositories/UserRepository.kt
View file @
0c7a5148
package
chat.rocket.core.repositories
import
chat.rocket.core.models.User
import
com.hadisatrio.optional.Optional
import
io.reactivex.Flowable
import
chat.rocket.core.models.User
interface
UserRepository
{
...
...
rocket-chat-core/src/test/java/chat/rocket/core/interactors/AutocompleteChannelInteractorTest.java
View file @
0c7a5148
package
chat
.
rocket
.
core
.
interactors
;
import
static
org
.
mockito
.
Mockito
.*;
import
io.reactivex.Flowable
;
import
io.reactivex.subscribers.TestSubscriber
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
...
...
@@ -12,12 +8,23 @@ import org.mockito.junit.MockitoJUnitRunner;
import
java.util.ArrayList
;
import
java.util.List
;
import
chat.rocket.core.SortDirection
;
import
chat.rocket.core.models.Room
;
import
chat.rocket.core.models.SpotlightRoom
;
import
chat.rocket.core.repositories.RoomRepository
;
import
chat.rocket.core.repositories.SpotlightRoomRepository
;
import
chat.rocket.core.temp.TempSpotlightRoomCaller
;
import
io.reactivex.Flowable
;
import
io.reactivex.subscribers.TestSubscriber
;
import
static
org
.
mockito
.
Mockito
.
any
;
import
static
org
.
mockito
.
Mockito
.
anyInt
;
import
static
org
.
mockito
.
Mockito
.
anyString
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
times
;
import
static
org
.
mockito
.
Mockito
.
verify
;
import
static
org
.
mockito
.
Mockito
.
when
;
@RunWith
(
MockitoJUnitRunner
.
class
)
public
class
AutocompleteChannelInteractorTest
{
...
...
rocket-chat-core/src/test/java/chat/rocket/core/interactors/EditMessageInteractorTest.kt
View file @
0c7a5148
...
...
@@ -6,12 +6,14 @@ import chat.rocket.core.models.Message
import
chat.rocket.core.models.PublicSetting
import
chat.rocket.core.models.Room
import
chat.rocket.core.models.User
import
chat.rocket.core.repositories.*
import
chat.rocket.core.repositories.MessageRepository
import
chat.rocket.core.repositories.PublicSettingRepository
import
chat.rocket.core.repositories.RoomRepository
import
chat.rocket.core.repositories.UserRepository
import
com.hadisatrio.optional.Optional
import
io.reactivex.Flowable
import
io.reactivex.Single
import
io.reactivex.observers.TestObserver
import
org.junit.Before
import
org.junit.Test
import
org.junit.runner.RunWith
...
...
rocket-chat-core/src/test/java/chat/rocket/core/interactors/PermissionInteractorTest.kt
View file @
0c7a5148
...
...
@@ -8,12 +8,12 @@ import com.hadisatrio.optional.Optional
import
io.reactivex.Flowable
import
io.reactivex.Single
import
io.reactivex.observers.TestObserver
import
org.junit.Before
import
org.junit.Test
import
org.junit.runner.RunWith
import
org.mockito.Mock
import
org.mockito.Mockito.*
import
org.mockito.Mockito.`when`
import
org.mockito.Mockito.any
import
org.mockito.junit.MockitoJUnitRunner
@RunWith
(
MockitoJUnitRunner
::
class
)
...
...
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