Commit 27d2d71b authored by Tiago Cunha's avatar Tiago Cunha

Moving thigs around

parent df93fe8b
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda' apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'realm-android'
apply plugin: 'com.jakewharton.hugo' apply plugin: 'com.jakewharton.hugo'
apply plugin: 'com.github.triplet.play' apply plugin: 'com.github.triplet.play'
apply from: '../config/quality/quality.gradle' apply from: '../config/quality/quality.gradle'
...@@ -76,6 +75,9 @@ android { ...@@ -76,6 +75,9 @@ android {
//avoiding okio error: https://github.com/square/okhttp/issues/896 //avoiding okio error: https://github.com/square/okhttp/issues/896
lintConfig file("lint.xml") lintConfig file("lint.xml")
} }
dexOptions {
javaMaxHeapSize '4g'
}
} }
play { play {
jsonFile = file('rocket-chat.json') jsonFile = file('rocket-chat.json')
...@@ -92,6 +94,7 @@ repositories { ...@@ -92,6 +94,7 @@ repositories {
dependencies { dependencies {
compile project(':log-wrapper') compile project(':log-wrapper')
compile project(':android-ddp') compile project(':android-ddp')
compile project(':rocket-chat-core')
compile project(':rocket-chat-android-widgets') compile project(':rocket-chat-android-widgets')
compile project(':persistence-realm') compile project(':persistence-realm')
compile rootProject.ext.supportAppCompat compile rootProject.ext.supportAppCompat
...@@ -127,10 +130,6 @@ dependencies { ...@@ -127,10 +130,6 @@ dependencies {
compile 'com.github.hotchemi:permissionsdispatcher:2.3.0' compile 'com.github.hotchemi:permissionsdispatcher:2.3.0'
annotationProcessor 'com.github.hotchemi:permissionsdispatcher-processor:2.3.0' annotationProcessor 'com.github.hotchemi:permissionsdispatcher-processor:2.3.0'
provided "com.google.auto.value:auto-value:1.3"
annotationProcessor "com.google.auto.value:auto-value:1.3"
annotationProcessor 'com.gabrielittner.auto.value:auto-value-with:1.0.0'
} }
apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.gms.google-services'
...@@ -3,16 +3,15 @@ package chat.rocket.android; ...@@ -3,16 +3,15 @@ package chat.rocket.android;
import android.support.multidex.MultiDexApplication; import android.support.multidex.MultiDexApplication;
import com.facebook.stetho.Stetho; import com.facebook.stetho.Stetho;
import com.uphyca.stetho_realm.RealmInspectorModulesProvider; import com.uphyca.stetho_realm.RealmInspectorModulesProvider;
import io.realm.Realm;
import io.realm.RealmConfiguration;
import java.util.List; import java.util.List;
import chat.rocket.android.helper.OkHttpHelper; import chat.rocket.android.helper.OkHttpHelper;
import chat.rocket.persistence.realm.RealmStore; import chat.rocket.persistence.realm.RealmStore;
import chat.rocket.android.service.ConnectivityManager; import chat.rocket.android.service.ConnectivityManager;
import chat.rocket.android.service.ServerInfo; import chat.rocket.core.models.ServerInfo;
import chat.rocket.android.widget.RocketChatWidgets; import chat.rocket.android.widget.RocketChatWidgets;
import chat.rocket.android.wrappers.InstabugWrapper; import chat.rocket.android.wrappers.InstabugWrapper;
import chat.rocket.persistence.realm.RocketChatPersistenceRealm;
/** /**
* Customized Application-class for Rocket.Chat * Customized Application-class for Rocket.Chat
...@@ -22,13 +21,11 @@ public class RocketChatApplication extends MultiDexApplication { ...@@ -22,13 +21,11 @@ public class RocketChatApplication extends MultiDexApplication {
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
Realm.init(this); RocketChatPersistenceRealm.init(this);
Realm.setDefaultConfiguration(
new RealmConfiguration.Builder().deleteRealmIfMigrationNeeded().build());
List<ServerInfo> serverInfoList = ConnectivityManager.getInstance(this).getServerList(); List<ServerInfo> serverInfoList = ConnectivityManager.getInstance(this).getServerList();
for (ServerInfo serverInfo : serverInfoList) { for (ServerInfo serverInfo : serverInfoList) {
RealmStore.put(serverInfo.hostname); RealmStore.put(serverInfo.getHostname());
} }
Stetho.initialize(Stetho.newInitializerBuilder(this) Stetho.initialize(Stetho.newInitializerBuilder(this)
......
...@@ -8,12 +8,12 @@ import android.support.annotation.Nullable; ...@@ -8,12 +8,12 @@ import android.support.annotation.Nullable;
import java.util.List; import java.util.List;
import chat.rocket.android.LaunchUtil; import chat.rocket.android.LaunchUtil;
import chat.rocket.android.RocketChatCache; import chat.rocket.android.RocketChatCache;
import chat.rocket.android.model.ddp.RoomSubscription; import chat.rocket.persistence.realm.models.ddp.RealmRoom;
import chat.rocket.android.push.PushConstants; import chat.rocket.android.push.PushConstants;
import chat.rocket.android.push.PushNotificationHandler; import chat.rocket.android.push.PushNotificationHandler;
import chat.rocket.persistence.realm.RealmStore; import chat.rocket.persistence.realm.RealmStore;
import chat.rocket.android.service.ConnectivityManager; import chat.rocket.android.service.ConnectivityManager;
import chat.rocket.android.service.ServerInfo; import chat.rocket.core.models.ServerInfo;
import icepick.State; import icepick.State;
abstract class AbstractAuthedActivity extends AbstractFragmentActivity { abstract class AbstractAuthedActivity extends AbstractFragmentActivity {
...@@ -107,7 +107,7 @@ abstract class AbstractAuthedActivity extends AbstractFragmentActivity { ...@@ -107,7 +107,7 @@ abstract class AbstractAuthedActivity extends AbstractFragmentActivity {
// just connect to the first available // just connect to the first available
final ServerInfo serverInfo = serverInfoList.get(0); final ServerInfo serverInfo = serverInfoList.get(0);
prefs.edit() prefs.edit()
.putString(RocketChatCache.KEY_SELECTED_SERVER_HOSTNAME, serverInfo.hostname) .putString(RocketChatCache.KEY_SELECTED_SERVER_HOSTNAME, serverInfo.getHostname())
.remove(RocketChatCache.KEY_SELECTED_ROOM_ID) .remove(RocketChatCache.KEY_SELECTED_ROOM_ID)
.apply(); .apply();
} }
...@@ -130,8 +130,8 @@ abstract class AbstractAuthedActivity extends AbstractFragmentActivity { ...@@ -130,8 +130,8 @@ abstract class AbstractAuthedActivity extends AbstractFragmentActivity {
return false; return false;
} }
RoomSubscription room = RealmStore.get(hostname).executeTransactionForRead(realm -> RealmRoom room = RealmStore.get(hostname).executeTransactionForRead(realm ->
realm.where(RoomSubscription.class).equalTo(RoomSubscription.ROOM_ID, roomId).findFirst()); realm.where(RealmRoom.class).equalTo(RealmRoom.ROOM_ID, roomId).findFirst());
if (room == null) { if (room == null) {
prefs.edit() prefs.edit()
.remove(RocketChatCache.KEY_SELECTED_ROOM_ID) .remove(RocketChatCache.KEY_SELECTED_ROOM_ID)
......
...@@ -9,7 +9,7 @@ import chat.rocket.android.R; ...@@ -9,7 +9,7 @@ import chat.rocket.android.R;
import chat.rocket.android.fragment.server_config.LoginFragment; import chat.rocket.android.fragment.server_config.LoginFragment;
import chat.rocket.android.fragment.server_config.RetryLoginFragment; import chat.rocket.android.fragment.server_config.RetryLoginFragment;
import chat.rocket.android.helper.TextUtils; import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.model.internal.Session; import chat.rocket.persistence.realm.models.internal.Session;
import chat.rocket.persistence.realm.RealmObjectObserver; import chat.rocket.persistence.realm.RealmObjectObserver;
import chat.rocket.persistence.realm.RealmStore; import chat.rocket.persistence.realm.RealmStore;
import chat.rocket.android.service.ConnectivityManager; import chat.rocket.android.service.ConnectivityManager;
......
...@@ -17,9 +17,9 @@ import chat.rocket.android.fragment.chatroom.RoomFragment; ...@@ -17,9 +17,9 @@ import chat.rocket.android.fragment.chatroom.RoomFragment;
import chat.rocket.android.fragment.sidebar.SidebarMainFragment; import chat.rocket.android.fragment.sidebar.SidebarMainFragment;
import chat.rocket.android.helper.LogcatIfError; import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.helper.TextUtils; import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.model.ddp.RoomSubscription; import chat.rocket.persistence.realm.models.ddp.RealmRoom;
import chat.rocket.android.model.ddp.RealmUser; import chat.rocket.persistence.realm.models.ddp.RealmUser;
import chat.rocket.android.model.internal.Session; import chat.rocket.persistence.realm.models.internal.Session;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.persistence.realm.RealmListObserver; import chat.rocket.persistence.realm.RealmListObserver;
import chat.rocket.persistence.realm.RealmObjectObserver; import chat.rocket.persistence.realm.RealmObjectObserver;
...@@ -34,7 +34,7 @@ import hugo.weaving.DebugLog; ...@@ -34,7 +34,7 @@ import hugo.weaving.DebugLog;
public class MainActivity extends AbstractAuthedActivity { public class MainActivity extends AbstractAuthedActivity {
private RealmObjectObserver<Session> sessionObserver; private RealmObjectObserver<Session> sessionObserver;
private RealmListObserver<RoomSubscription> unreadRoomSubscriptionObserver; private RealmListObserver<RealmRoom> unreadRoomSubscriptionObserver;
private boolean isForeground; private boolean isForeground;
private StatusTicker statusTicker; private StatusTicker statusTicker;
...@@ -228,21 +228,21 @@ public class MainActivity extends AbstractAuthedActivity { ...@@ -228,21 +228,21 @@ public class MainActivity extends AbstractAuthedActivity {
unreadRoomSubscriptionObserver = realmHelper unreadRoomSubscriptionObserver = realmHelper
.createListObserver(realm -> .createListObserver(realm ->
realm.where(RoomSubscription.class) realm.where(RealmRoom.class)
.equalTo(RoomSubscription.ALERT, true) .equalTo(RealmRoom.ALERT, true)
.equalTo(RoomSubscription.OPEN, true) .equalTo(RealmRoom.OPEN, true)
.findAll()) .findAll())
.setOnUpdateListener(this::updateRoomToolbarUnreadCount); .setOnUpdateListener(this::updateRoomToolbarUnreadCount);
unreadRoomSubscriptionObserver.sub(); unreadRoomSubscriptionObserver.sub();
} }
private void updateRoomToolbarUnreadCount(List<RoomSubscription> unreadRooms) { private void updateRoomToolbarUnreadCount(List<RealmRoom> unreadRooms) {
RoomToolbar toolbar = (RoomToolbar) findViewById(R.id.activity_main_toolbar); RoomToolbar toolbar = (RoomToolbar) findViewById(R.id.activity_main_toolbar);
if (toolbar != null) { if (toolbar != null) {
//ref: Rocket.Chat:client/startup/unread.js //ref: Rocket.Chat:client/startup/unread.js
final int numUnreadChannels = unreadRooms.size(); final int numUnreadChannels = unreadRooms.size();
int numMentionsSum = 0; int numMentionsSum = 0;
for (RoomSubscription room : unreadRooms) { for (RealmRoom room : unreadRooms) {
numMentionsSum += room.getUnread(); numMentionsSum += room.getUnread();
} }
toolbar.setUnreadBudge(numUnreadChannels, numMentionsSum); toolbar.setUnreadBudge(numUnreadChannels, numMentionsSum);
......
...@@ -11,12 +11,13 @@ import bolts.Continuation; ...@@ -11,12 +11,13 @@ import bolts.Continuation;
import bolts.Task; import bolts.Task;
import chat.rocket.android.helper.CheckSum; import chat.rocket.android.helper.CheckSum;
import chat.rocket.android.helper.TextUtils; import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.model.SyncState; import chat.rocket.android.service.ConnectivityManager;
import chat.rocket.android.model.ddp.RealmMessage; import chat.rocket.persistence.realm.models.ddp.RealmPublicSetting;
import chat.rocket.android.model.ddp.PublicSetting; import chat.rocket.core.SyncState;
import chat.rocket.android.model.ddp.RoomSubscription; import chat.rocket.persistence.realm.models.ddp.RealmMessage;
import chat.rocket.android.model.internal.MethodCall; import chat.rocket.persistence.realm.models.ddp.RealmRoom;
import chat.rocket.android.model.internal.Session; import chat.rocket.persistence.realm.models.internal.MethodCall;
import chat.rocket.persistence.realm.models.internal.Session;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.persistence.realm.RealmStore; import chat.rocket.persistence.realm.RealmStore;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
...@@ -63,7 +64,12 @@ public class MethodCallHelper { ...@@ -63,7 +64,12 @@ public class MethodCallHelper {
return ddpClientRef.get().rpc(UUID.randomUUID().toString(), methodName, param, timeout) return ddpClientRef.get().rpc(UUID.randomUUID().toString(), methodName, param, timeout)
.onSuccessTask(task -> Task.forResult(task.getResult().result)); .onSuccessTask(task -> Task.forResult(task.getResult().result));
} else { } else {
return MethodCall.execute(context, realmHelper, methodName, param, timeout); return MethodCall.execute(realmHelper, methodName, param, timeout)
.onSuccessTask(task -> {
ConnectivityManager.getInstance(context.getApplicationContext())
.keepAliveServer();
return task;
});
} }
} }
...@@ -211,13 +217,13 @@ public class MethodCallHelper { ...@@ -211,13 +217,13 @@ public class MethodCallHelper {
final JSONArray result = task.getResult(); final JSONArray result = task.getResult();
try { try {
for (int i = 0; i < result.length(); i++) { for (int i = 0; i < result.length(); i++) {
RoomSubscription.customizeJson(result.getJSONObject(i)); RealmRoom.customizeJson(result.getJSONObject(i));
} }
return realmHelper.executeTransaction(realm -> { return realmHelper.executeTransaction(realm -> {
realm.delete(RoomSubscription.class); realm.delete(RealmRoom.class);
realm.createOrUpdateAllFromJson( realm.createOrUpdateAllFromJson(
RoomSubscription.class, result); RealmRoom.class, result);
return null; return null;
}); });
} catch (JSONException exception) { } catch (JSONException exception) {
...@@ -334,12 +340,12 @@ public class MethodCallHelper { ...@@ -334,12 +340,12 @@ public class MethodCallHelper {
.onSuccessTask(task -> { .onSuccessTask(task -> {
final JSONArray settings = task.getResult(); final JSONArray settings = task.getResult();
for (int i = 0; i < settings.length(); i++) { for (int i = 0; i < settings.length(); i++) {
PublicSetting.customizeJson(settings.getJSONObject(i)); RealmPublicSetting.customizeJson(settings.getJSONObject(i));
} }
return realmHelper.executeTransaction(realm -> { return realmHelper.executeTransaction(realm -> {
realm.delete(PublicSetting.class); realm.delete(RealmPublicSetting.class);
realm.createOrUpdateAllFromJson(PublicSetting.class, settings); realm.createOrUpdateAllFromJson(RealmPublicSetting.class, settings);
return null; return null;
}); });
}); });
......
...@@ -3,8 +3,8 @@ package chat.rocket.android.api.rest; ...@@ -3,8 +3,8 @@ package chat.rocket.android.api.rest;
import android.content.Context; import android.content.Context;
import chat.rocket.android.RocketChatCache; import chat.rocket.android.RocketChatCache;
import chat.rocket.android.model.ddp.RealmUser; import chat.rocket.persistence.realm.models.ddp.RealmUser;
import chat.rocket.android.model.internal.Session; import chat.rocket.persistence.realm.models.internal.Session;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.persistence.realm.RealmStore; import chat.rocket.persistence.realm.RealmStore;
......
...@@ -2,7 +2,7 @@ package chat.rocket.android.fragment.chatroom; ...@@ -2,7 +2,7 @@ package chat.rocket.android.fragment.chatroom;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import chat.rocket.android.model.core.Room; import chat.rocket.core.models.Room;
public interface RoomContract { public interface RoomContract {
......
...@@ -47,15 +47,15 @@ import chat.rocket.android.layouthelper.extra_action.upload.AudioUploadActionIte ...@@ -47,15 +47,15 @@ import chat.rocket.android.layouthelper.extra_action.upload.AudioUploadActionIte
import chat.rocket.android.layouthelper.extra_action.upload.ImageUploadActionItem; import chat.rocket.android.layouthelper.extra_action.upload.ImageUploadActionItem;
import chat.rocket.android.layouthelper.extra_action.upload.VideoUploadActionItem; import chat.rocket.android.layouthelper.extra_action.upload.VideoUploadActionItem;
import chat.rocket.android.log.RCLog; import chat.rocket.android.log.RCLog;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.android.model.core.Room; import chat.rocket.core.models.Room;
import chat.rocket.android.model.ddp.RealmMessage; import chat.rocket.persistence.realm.models.ddp.RealmMessage;
import chat.rocket.android.model.ddp.RoomSubscription; import chat.rocket.persistence.realm.models.ddp.RealmRoom;
import chat.rocket.android.model.ddp.RealmUser; import chat.rocket.persistence.realm.models.ddp.RealmUser;
import chat.rocket.android.model.internal.Session; import chat.rocket.persistence.realm.models.internal.Session;
import chat.rocket.android.repositories.RealmMessageRepository; import chat.rocket.persistence.realm.repositories.RealmMessageRepository;
import chat.rocket.android.repositories.RealmRoomRepository; import chat.rocket.persistence.realm.repositories.RealmRoomRepository;
import chat.rocket.android.repositories.RealmUserRepository; import chat.rocket.persistence.realm.repositories.RealmUserRepository;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.persistence.realm.RealmModelListAdapter; import chat.rocket.persistence.realm.RealmModelListAdapter;
import chat.rocket.persistence.realm.RealmStore; import chat.rocket.persistence.realm.RealmStore;
...@@ -234,8 +234,8 @@ public class RoomFragment extends AbstractChatRoomFragment ...@@ -234,8 +234,8 @@ public class RoomFragment extends AbstractChatRoomFragment
} }
private int getUnreadMessageCount() { private int getUnreadMessageCount() {
RoomSubscription room = realmHelper.executeTransactionForRead(realm -> RealmRoom room = realmHelper.executeTransactionForRead(realm ->
realm.where(RoomSubscription.class).equalTo(RoomSubscription.ROOM_ID, roomId).findFirst()); realm.where(RealmRoom.class).equalTo(RealmRoom.ROOM_ID, roomId).findFirst());
if (room != null) { if (room != null) {
return realmHelper.executeTransactionForReadResults(realm -> return realmHelper.executeTransactionForReadResults(realm ->
realm.where(RealmMessage.class) realm.where(RealmMessage.class)
...@@ -343,11 +343,11 @@ public class RoomFragment extends AbstractChatRoomFragment ...@@ -343,11 +343,11 @@ public class RoomFragment extends AbstractChatRoomFragment
private void onRenderRoom(Room room) { private void onRenderRoom(Room room) {
String type = room.getType(); String type = room.getType();
if (RoomSubscription.TYPE_CHANNEL.equals(type)) { if (RealmRoom.TYPE_CHANNEL.equals(type)) {
setToolbarRoomIcon(R.drawable.ic_hashtag_gray_24dp); setToolbarRoomIcon(R.drawable.ic_hashtag_gray_24dp);
} else if (RoomSubscription.TYPE_PRIVATE.equals(type)) { } else if (RealmRoom.TYPE_PRIVATE.equals(type)) {
setToolbarRoomIcon(R.drawable.ic_lock_gray_24dp); setToolbarRoomIcon(R.drawable.ic_lock_gray_24dp);
} else if (RoomSubscription.TYPE_DIRECT_MESSAGE.equals(type)) { } else if (RealmRoom.TYPE_DIRECT_MESSAGE.equals(type)) {
setToolbarRoomIcon(R.drawable.ic_at_gray_24dp); setToolbarRoomIcon(R.drawable.ic_at_gray_24dp);
} else { } else {
setToolbarRoomIcon(0); setToolbarRoomIcon(0);
...@@ -370,8 +370,8 @@ public class RoomFragment extends AbstractChatRoomFragment ...@@ -370,8 +370,8 @@ public class RoomFragment extends AbstractChatRoomFragment
} }
private void markAsReadIfNeeded() { private void markAsReadIfNeeded() {
RoomSubscription room = realmHelper.executeTransactionForRead(realm -> RealmRoom room = realmHelper.executeTransactionForRead(realm ->
realm.where(RoomSubscription.class).equalTo(RoomSubscription.ROOM_ID, roomId).findFirst()); realm.where(RealmRoom.class).equalTo(RealmRoom.ROOM_ID, roomId).findFirst());
if (room != null && room.isAlert()) { if (room != null && room.isAlert()) {
new MethodCallHelper(getContext(), hostname).readMessages(roomId) new MethodCallHelper(getContext(), hostname).readMessages(roomId)
.continueWith(new LogcatIfError()); .continueWith(new LogcatIfError());
......
...@@ -4,12 +4,12 @@ import android.support.annotation.NonNull; ...@@ -4,12 +4,12 @@ import android.support.annotation.NonNull;
import java.util.UUID; import java.util.UUID;
import chat.rocket.android.BackgroundLooper; import chat.rocket.android.BackgroundLooper;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.android.model.core.Message; import chat.rocket.core.models.Message;
import chat.rocket.android.model.core.RoomHistoryState; import chat.rocket.core.models.RoomHistoryState;
import chat.rocket.android.repositories.core.MessageRepository; import chat.rocket.core.repositories.MessageRepository;
import chat.rocket.android.repositories.core.RoomRepository; import chat.rocket.core.repositories.RoomRepository;
import chat.rocket.android.repositories.core.UserRepository; import chat.rocket.core.repositories.UserRepository;
import chat.rocket.android.service.ConnectivityManagerApi; import chat.rocket.android.service.ConnectivityManagerApi;
import rx.Subscription; import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers; import rx.android.schedulers.AndroidSchedulers;
......
...@@ -9,8 +9,8 @@ import android.widget.TextView; ...@@ -9,8 +9,8 @@ import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import chat.rocket.android.R; import chat.rocket.android.R;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.android.model.internal.FileUploading; import chat.rocket.persistence.realm.models.internal.FileUploading;
import chat.rocket.persistence.realm.RealmObjectObserver; import chat.rocket.persistence.realm.RealmObjectObserver;
import chat.rocket.android.renderer.FileUploadingRenderer; import chat.rocket.android.renderer.FileUploadingRenderer;
......
...@@ -17,8 +17,8 @@ import chat.rocket.android.R; ...@@ -17,8 +17,8 @@ import chat.rocket.android.R;
import chat.rocket.android.helper.LogcatIfError; import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.layouthelper.chatroom.dialog.RoomUserAdapter; import chat.rocket.android.layouthelper.chatroom.dialog.RoomUserAdapter;
import chat.rocket.android.log.RCLog; import chat.rocket.android.log.RCLog;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.android.model.internal.GetUsersOfRoomsProcedure; import chat.rocket.persistence.realm.models.internal.GetUsersOfRoomsProcedure;
import chat.rocket.persistence.realm.RealmObjectObserver; import chat.rocket.persistence.realm.RealmObjectObserver;
import chat.rocket.android.service.ConnectivityManager; import chat.rocket.android.service.ConnectivityManager;
......
...@@ -14,7 +14,7 @@ import chat.rocket.android.api.MethodCallHelper; ...@@ -14,7 +14,7 @@ import chat.rocket.android.api.MethodCallHelper;
import chat.rocket.android.fragment.AbstractWebViewFragment; import chat.rocket.android.fragment.AbstractWebViewFragment;
import chat.rocket.android.helper.LogcatIfError; import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.log.RCLog; import chat.rocket.android.log.RCLog;
import chat.rocket.android.model.ddp.MeteorLoginServiceConfiguration; import chat.rocket.persistence.realm.models.ddp.RealmMeteorLoginServiceConfiguration;
import chat.rocket.persistence.realm.RealmStore; import chat.rocket.persistence.realm.RealmStore;
public abstract class AbstractOAuthFragment extends AbstractWebViewFragment { public abstract class AbstractOAuthFragment extends AbstractWebViewFragment {
...@@ -25,7 +25,7 @@ public abstract class AbstractOAuthFragment extends AbstractWebViewFragment { ...@@ -25,7 +25,7 @@ public abstract class AbstractOAuthFragment extends AbstractWebViewFragment {
protected abstract String getOAuthServiceName(); protected abstract String getOAuthServiceName();
protected abstract String generateURL(MeteorLoginServiceConfiguration oauthConfig); protected abstract String generateURL(RealmMeteorLoginServiceConfiguration oauthConfig);
private boolean hasValidArgs(Bundle args) { private boolean hasValidArgs(Bundle args) {
return args != null return args != null
...@@ -54,10 +54,10 @@ public abstract class AbstractOAuthFragment extends AbstractWebViewFragment { ...@@ -54,10 +54,10 @@ public abstract class AbstractOAuthFragment extends AbstractWebViewFragment {
} }
hostname = args.getString("hostname"); hostname = args.getString("hostname");
MeteorLoginServiceConfiguration oauthConfig = RealmMeteorLoginServiceConfiguration oauthConfig =
RealmStore.get(hostname).executeTransactionForRead(realm -> RealmStore.get(hostname).executeTransactionForRead(realm ->
realm.where(MeteorLoginServiceConfiguration.class) realm.where(RealmMeteorLoginServiceConfiguration.class)
.equalTo(MeteorLoginServiceConfiguration.SERVICE, getOAuthServiceName()) .equalTo(RealmMeteorLoginServiceConfiguration.SERVICE, getOAuthServiceName())
.findFirst()); .findFirst());
if (oauthConfig == null) { if (oauthConfig == null) {
throw new IllegalArgumentException( throw new IllegalArgumentException(
......
package chat.rocket.android.fragment.oauth; package chat.rocket.android.fragment.oauth;
import chat.rocket.android.model.ddp.MeteorLoginServiceConfiguration; import chat.rocket.persistence.realm.models.ddp.RealmMeteorLoginServiceConfiguration;
import okhttp3.HttpUrl; import okhttp3.HttpUrl;
public class FacebookOAuthFragment extends AbstractOAuthFragment { public class FacebookOAuthFragment extends AbstractOAuthFragment {
...@@ -11,7 +11,7 @@ public class FacebookOAuthFragment extends AbstractOAuthFragment { ...@@ -11,7 +11,7 @@ public class FacebookOAuthFragment extends AbstractOAuthFragment {
} }
@Override @Override
protected String generateURL(MeteorLoginServiceConfiguration oauthConfig) { protected String generateURL(RealmMeteorLoginServiceConfiguration oauthConfig) {
return new HttpUrl.Builder().scheme("https") return new HttpUrl.Builder().scheme("https")
.host("www.facebook.com") .host("www.facebook.com")
.addPathSegment("v2.2") .addPathSegment("v2.2")
......
package chat.rocket.android.fragment.oauth; package chat.rocket.android.fragment.oauth;
import chat.rocket.android.model.ddp.MeteorLoginServiceConfiguration; import chat.rocket.persistence.realm.models.ddp.RealmMeteorLoginServiceConfiguration;
import okhttp3.HttpUrl; import okhttp3.HttpUrl;
public class GitHubOAuthFragment extends AbstractOAuthFragment { public class GitHubOAuthFragment extends AbstractOAuthFragment {
...@@ -11,7 +11,7 @@ public class GitHubOAuthFragment extends AbstractOAuthFragment { ...@@ -11,7 +11,7 @@ public class GitHubOAuthFragment extends AbstractOAuthFragment {
} }
@Override @Override
protected String generateURL(MeteorLoginServiceConfiguration oauthConfig) { protected String generateURL(RealmMeteorLoginServiceConfiguration oauthConfig) {
return new HttpUrl.Builder().scheme("https") return new HttpUrl.Builder().scheme("https")
.host("github.com") .host("github.com")
.addPathSegment("login") .addPathSegment("login")
......
package chat.rocket.android.fragment.oauth; package chat.rocket.android.fragment.oauth;
import chat.rocket.android.model.ddp.MeteorLoginServiceConfiguration; import chat.rocket.persistence.realm.models.ddp.RealmMeteorLoginServiceConfiguration;
import okhttp3.HttpUrl; import okhttp3.HttpUrl;
public class GoogleOAuthFragment extends AbstractOAuthFragment { public class GoogleOAuthFragment extends AbstractOAuthFragment {
...@@ -11,7 +11,7 @@ public class GoogleOAuthFragment extends AbstractOAuthFragment { ...@@ -11,7 +11,7 @@ public class GoogleOAuthFragment extends AbstractOAuthFragment {
} }
@Override @Override
protected String generateURL(MeteorLoginServiceConfiguration oauthConfig) { protected String generateURL(RealmMeteorLoginServiceConfiguration oauthConfig) {
return new HttpUrl.Builder().scheme("https") return new HttpUrl.Builder().scheme("https")
.host("accounts.google.com") .host("accounts.google.com")
.addPathSegment("o") .addPathSegment("o")
......
package chat.rocket.android.fragment.oauth; package chat.rocket.android.fragment.oauth;
import chat.rocket.android.model.ddp.MeteorLoginServiceConfiguration; import chat.rocket.persistence.realm.models.ddp.RealmMeteorLoginServiceConfiguration;
public class TwitterOAuthFragment extends AbstractOAuthFragment { public class TwitterOAuthFragment extends AbstractOAuthFragment {
...@@ -10,7 +10,7 @@ public class TwitterOAuthFragment extends AbstractOAuthFragment { ...@@ -10,7 +10,7 @@ public class TwitterOAuthFragment extends AbstractOAuthFragment {
} }
@Override @Override
protected String generateURL(MeteorLoginServiceConfiguration oauthConfig) { protected String generateURL(RealmMeteorLoginServiceConfiguration oauthConfig) {
return "https://" + hostname + "/_oauth/twitter/" return "https://" + hostname + "/_oauth/twitter/"
+ "?requestTokenAndRedirect=true&state=" + getStateString(); + "?requestTokenAndRedirect=true&state=" + getStateString();
} }
......
...@@ -14,7 +14,7 @@ import chat.rocket.android.api.MethodCallHelper; ...@@ -14,7 +14,7 @@ import chat.rocket.android.api.MethodCallHelper;
import chat.rocket.android.helper.TextUtils; import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.layouthelper.oauth.OAuthProviderInfo; import chat.rocket.android.layouthelper.oauth.OAuthProviderInfo;
import chat.rocket.android.log.RCLog; import chat.rocket.android.log.RCLog;
import chat.rocket.android.model.ddp.MeteorLoginServiceConfiguration; import chat.rocket.persistence.realm.models.ddp.RealmMeteorLoginServiceConfiguration;
import chat.rocket.persistence.realm.RealmListObserver; import chat.rocket.persistence.realm.RealmListObserver;
import chat.rocket.persistence.realm.RealmStore; import chat.rocket.persistence.realm.RealmStore;
...@@ -22,7 +22,7 @@ import chat.rocket.persistence.realm.RealmStore; ...@@ -22,7 +22,7 @@ import chat.rocket.persistence.realm.RealmStore;
* Login screen. * Login screen.
*/ */
public class LoginFragment extends AbstractServerConfigFragment { public class LoginFragment extends AbstractServerConfigFragment {
private RealmListObserver<MeteorLoginServiceConfiguration> authProvidersObserver; private RealmListObserver<RealmMeteorLoginServiceConfiguration> authProvidersObserver;
@Override @Override
protected int getLayout() { protected int getLayout() {
...@@ -33,7 +33,7 @@ public class LoginFragment extends AbstractServerConfigFragment { ...@@ -33,7 +33,7 @@ public class LoginFragment extends AbstractServerConfigFragment {
public void onCreate(@Nullable Bundle savedInstanceState) { public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
authProvidersObserver = RealmStore.get(hostname) authProvidersObserver = RealmStore.get(hostname)
.createListObserver(realm -> realm.where(MeteorLoginServiceConfiguration.class).findAll()) .createListObserver(realm -> realm.where(RealmMeteorLoginServiceConfiguration.class).findAll())
.setOnUpdateListener(this::onRenderAuthProviders); .setOnUpdateListener(this::onRenderAuthProviders);
} }
...@@ -74,7 +74,7 @@ public class LoginFragment extends AbstractServerConfigFragment { ...@@ -74,7 +74,7 @@ public class LoginFragment extends AbstractServerConfigFragment {
Snackbar.make(rootView, errString, Snackbar.LENGTH_SHORT).show(); Snackbar.make(rootView, errString, Snackbar.LENGTH_SHORT).show();
} }
private void onRenderAuthProviders(List<MeteorLoginServiceConfiguration> authProviders) { private void onRenderAuthProviders(List<RealmMeteorLoginServiceConfiguration> authProviders) {
HashMap<String, View> viewMap = new HashMap<>(); HashMap<String, View> viewMap = new HashMap<>();
HashMap<String, Boolean> supportedMap = new HashMap<>(); HashMap<String, Boolean> supportedMap = new HashMap<>();
for (OAuthProviderInfo info : OAuthProviderInfo.LIST) { for (OAuthProviderInfo info : OAuthProviderInfo.LIST) {
...@@ -82,7 +82,7 @@ public class LoginFragment extends AbstractServerConfigFragment { ...@@ -82,7 +82,7 @@ public class LoginFragment extends AbstractServerConfigFragment {
supportedMap.put(info.serviceName, false); supportedMap.put(info.serviceName, false);
} }
for (MeteorLoginServiceConfiguration authProvider : authProviders) { for (RealmMeteorLoginServiceConfiguration authProvider : authProviders) {
for (OAuthProviderInfo info : OAuthProviderInfo.LIST) { for (OAuthProviderInfo info : OAuthProviderInfo.LIST) {
if (!supportedMap.get(info.serviceName) if (!supportedMap.get(info.serviceName)
&& info.serviceName.equals(authProvider.getService())) { && info.serviceName.equals(authProvider.getService())) {
......
...@@ -8,7 +8,7 @@ import android.widget.TextView; ...@@ -8,7 +8,7 @@ import android.widget.TextView;
import chat.rocket.android.R; import chat.rocket.android.R;
import chat.rocket.android.api.MethodCallHelper; import chat.rocket.android.api.MethodCallHelper;
import chat.rocket.android.helper.TextUtils; import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.model.internal.Session; import chat.rocket.persistence.realm.models.internal.Session;
import chat.rocket.persistence.realm.RealmObjectObserver; import chat.rocket.persistence.realm.RealmObjectObserver;
import chat.rocket.persistence.realm.RealmStore; import chat.rocket.persistence.realm.RealmStore;
......
...@@ -3,8 +3,8 @@ package chat.rocket.android.fragment.sidebar; ...@@ -3,8 +3,8 @@ package chat.rocket.android.fragment.sidebar;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import java.util.List; import java.util.List;
import chat.rocket.android.model.core.Room; import chat.rocket.core.models.Room;
import chat.rocket.android.model.core.User; import chat.rocket.core.models.User;
public interface SidebarMainContract { public interface SidebarMainContract {
......
...@@ -22,11 +22,11 @@ import chat.rocket.android.fragment.sidebar.dialog.AddChannelDialogFragment; ...@@ -22,11 +22,11 @@ import chat.rocket.android.fragment.sidebar.dialog.AddChannelDialogFragment;
import chat.rocket.android.fragment.sidebar.dialog.AddDirectMessageDialogFragment; import chat.rocket.android.fragment.sidebar.dialog.AddDirectMessageDialogFragment;
import chat.rocket.android.helper.TextUtils; import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.layouthelper.chatroom.RoomListManager; import chat.rocket.android.layouthelper.chatroom.RoomListManager;
import chat.rocket.android.model.core.Room; import chat.rocket.core.models.Room;
import chat.rocket.android.model.core.User; import chat.rocket.core.models.User;
import chat.rocket.android.renderer.UserRenderer; import chat.rocket.android.renderer.UserRenderer;
import chat.rocket.android.repositories.RealmRoomRepository; import chat.rocket.persistence.realm.repositories.RealmRoomRepository;
import chat.rocket.android.repositories.RealmUserRepository; import chat.rocket.persistence.realm.repositories.RealmUserRepository;
import chat.rocket.android.widget.RocketChatAvatar; import chat.rocket.android.widget.RocketChatAvatar;
public class SidebarMainFragment extends AbstractFragment implements SidebarMainContract.View { public class SidebarMainFragment extends AbstractFragment implements SidebarMainContract.View {
......
...@@ -6,9 +6,9 @@ import chat.rocket.android.BackgroundLooper; ...@@ -6,9 +6,9 @@ import chat.rocket.android.BackgroundLooper;
import chat.rocket.android.api.MethodCallHelper; import chat.rocket.android.api.MethodCallHelper;
import chat.rocket.android.helper.LogcatIfError; import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.helper.TextUtils; import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.model.core.User; import chat.rocket.core.models.User;
import chat.rocket.android.repositories.core.RoomRepository; import chat.rocket.core.repositories.RoomRepository;
import chat.rocket.android.repositories.core.UserRepository; import chat.rocket.core.repositories.UserRepository;
import rx.Subscription; import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers; import rx.android.schedulers.AndroidSchedulers;
import rx.subscriptions.CompositeSubscription; import rx.subscriptions.CompositeSubscription;
......
...@@ -12,7 +12,7 @@ import bolts.Task; ...@@ -12,7 +12,7 @@ import bolts.Task;
import chat.rocket.android.R; import chat.rocket.android.R;
import chat.rocket.android.helper.TextUtils; import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.layouthelper.sidebar.dialog.SuggestUserAdapter; import chat.rocket.android.layouthelper.sidebar.dialog.SuggestUserAdapter;
import chat.rocket.android.model.ddp.RealmUser; import chat.rocket.persistence.realm.models.ddp.RealmUser;
import chat.rocket.persistence.realm.RealmAutoCompleteAdapter; import chat.rocket.persistence.realm.RealmAutoCompleteAdapter;
/** /**
......
...@@ -14,9 +14,9 @@ import java.io.FileNotFoundException; ...@@ -14,9 +14,9 @@ import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.util.UUID; import java.util.UUID;
import chat.rocket.android.log.RCLog; import chat.rocket.android.log.RCLog;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.android.model.ddp.PublicSetting; import chat.rocket.persistence.realm.models.ddp.RealmPublicSetting;
import chat.rocket.android.model.internal.FileUploading; import chat.rocket.persistence.realm.models.internal.FileUploading;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
/** /**
...@@ -59,7 +59,7 @@ public class FileUploadHelper { ...@@ -59,7 +59,7 @@ public class FileUploadHelper {
Uri uri, String filename, long filesize, String mimeType) { Uri uri, String filename, long filesize, String mimeType) {
final String uplId = UUID.randomUUID().toString(); final String uplId = UUID.randomUUID().toString();
final String storageType = final String storageType =
PublicSetting.getString(realmHelper, "FileUpload_Storage_Type", null); RealmPublicSetting.getString(realmHelper, "FileUpload_Storage_Type", null);
realmHelper.executeTransaction(realm -> realmHelper.executeTransaction(realm ->
realm.createOrUpdateObjectFromJson(FileUploading.class, new JSONObject() realm.createOrUpdateObjectFromJson(FileUploading.class, new JSONObject()
......
...@@ -4,28 +4,28 @@ import io.realm.Realm; ...@@ -4,28 +4,28 @@ import io.realm.Realm;
import io.realm.RealmResults; import io.realm.RealmResults;
import java.util.List; import java.util.List;
import chat.rocket.android.model.ddp.PublicSetting; import chat.rocket.persistence.realm.models.ddp.RealmPublicSetting;
import chat.rocket.android.model.ddp.PublicSettingsConstants; import chat.rocket.core.PublicSettingsConstants;
/** /**
* utility class for getting value comprehensibly from public settings list. * utility class for getting value comprehensibly from public settings list.
*/ */
public class GcmPushSettingHelper { public class GcmPushSettingHelper {
public static RealmResults<PublicSetting> queryForGcmPushEnabled(Realm realm) { public static RealmResults<RealmPublicSetting> queryForGcmPushEnabled(Realm realm) {
return realm.where(PublicSetting.class) return realm.where(RealmPublicSetting.class)
.equalTo(PublicSetting.ID, PublicSettingsConstants.Push.ENABLE) .equalTo(RealmPublicSetting.ID, PublicSettingsConstants.Push.ENABLE)
.or() .or()
.equalTo(PublicSetting.ID, PublicSettingsConstants.Push.GCM_PROJECT_NUMBER) .equalTo(RealmPublicSetting.ID, PublicSettingsConstants.Push.GCM_PROJECT_NUMBER)
.findAll(); .findAll();
} }
public static boolean isGcmPushEnabled(List<PublicSetting> results) { public static boolean isGcmPushEnabled(List<RealmPublicSetting> results) {
return isPushEnabled(results) && hasValidGcmConfig(results); return isPushEnabled(results) && hasValidGcmConfig(results);
} }
private static boolean isPushEnabled(List<PublicSetting> results) { private static boolean isPushEnabled(List<RealmPublicSetting> results) {
for (PublicSetting setting : results) { for (RealmPublicSetting setting : results) {
if (PublicSettingsConstants.Push.ENABLE.equals(setting.getId())) { if (PublicSettingsConstants.Push.ENABLE.equals(setting.getId())) {
return "true".equals(setting.getValue()); return "true".equals(setting.getValue());
} }
...@@ -33,8 +33,8 @@ public class GcmPushSettingHelper { ...@@ -33,8 +33,8 @@ public class GcmPushSettingHelper {
return false; return false;
} }
private static boolean hasValidGcmConfig(List<PublicSetting> results) { private static boolean hasValidGcmConfig(List<RealmPublicSetting> results) {
for (PublicSetting setting : results) { for (RealmPublicSetting setting : results) {
if (PublicSettingsConstants.Push.GCM_PROJECT_NUMBER.equals(setting.getId())) { if (PublicSettingsConstants.Push.GCM_PROJECT_NUMBER.equals(setting.getId())) {
return !TextUtils.isEmpty(setting.getValue()); return !TextUtils.isEmpty(setting.getValue());
} }
......
...@@ -7,7 +7,7 @@ import android.widget.TextView; ...@@ -7,7 +7,7 @@ import android.widget.TextView;
import chat.rocket.android.R; import chat.rocket.android.R;
import chat.rocket.android.helper.DateTime; import chat.rocket.android.helper.DateTime;
import chat.rocket.android.helper.TextUtils; import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.persistence.realm.RealmModelViewHolder; import chat.rocket.persistence.realm.RealmModelViewHolder;
import chat.rocket.android.widget.RocketChatAvatar; import chat.rocket.android.widget.RocketChatAvatar;
......
...@@ -10,7 +10,7 @@ import java.util.List; ...@@ -10,7 +10,7 @@ import java.util.List;
import chat.rocket.android.R; import chat.rocket.android.R;
import chat.rocket.android.helper.TextUtils; import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.layouthelper.ExtRealmModelListAdapter; import chat.rocket.android.layouthelper.ExtRealmModelListAdapter;
import chat.rocket.android.model.ddp.RealmMessage; import chat.rocket.persistence.realm.models.ddp.RealmMessage;
/** /**
* target list adapter for chat room. * target list adapter for chat room.
......
...@@ -3,7 +3,7 @@ package chat.rocket.android.layouthelper.chatroom; ...@@ -3,7 +3,7 @@ package chat.rocket.android.layouthelper.chatroom;
import android.content.Context; import android.content.Context;
import chat.rocket.android.R; import chat.rocket.android.R;
import chat.rocket.android.model.ddp.RealmMessage; import chat.rocket.persistence.realm.models.ddp.RealmMessage;
/** /**
* message type. * message type.
......
package chat.rocket.android.layouthelper.chatroom; package chat.rocket.android.layouthelper.chatroom;
import chat.rocket.android.helper.DateTime; import chat.rocket.android.helper.DateTime;
import chat.rocket.android.model.ddp.RealmMessage; import chat.rocket.persistence.realm.models.ddp.RealmMessage;
/** /**
* ViewData Model for messages in chatroom. * ViewData Model for messages in chatroom.
......
...@@ -4,7 +4,7 @@ import android.view.View; ...@@ -4,7 +4,7 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import chat.rocket.android.helper.TextUtils; import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.model.core.Room; import chat.rocket.core.models.Room;
import chat.rocket.android.widget.internal.RoomListItemView; import chat.rocket.android.widget.internal.RoomListItemView;
import java.util.List; import java.util.List;
......
...@@ -9,7 +9,7 @@ import android.view.ViewGroup; ...@@ -9,7 +9,7 @@ import android.view.ViewGroup;
import java.util.List; import java.util.List;
import chat.rocket.android.R; import chat.rocket.android.R;
import chat.rocket.android.helper.TextUtils; import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.model.ddp.RealmUser; import chat.rocket.persistence.realm.models.ddp.RealmUser;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.renderer.UserRenderer; import chat.rocket.android.renderer.UserRenderer;
......
...@@ -7,7 +7,7 @@ import android.widget.ImageView; ...@@ -7,7 +7,7 @@ import android.widget.ImageView;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import chat.rocket.android.R; import chat.rocket.android.R;
import chat.rocket.android.model.ddp.RealmUser; import chat.rocket.persistence.realm.models.ddp.RealmUser;
import chat.rocket.persistence.realm.RealmAutoCompleteAdapter; import chat.rocket.persistence.realm.RealmAutoCompleteAdapter;
import chat.rocket.android.renderer.UserRenderer; import chat.rocket.android.renderer.UserRenderer;
import chat.rocket.android.widget.RocketChatAvatar; import chat.rocket.android.widget.RocketChatAvatar;
......
...@@ -34,7 +34,7 @@ import java.util.Random; ...@@ -34,7 +34,7 @@ import java.util.Random;
import chat.rocket.android.activity.MainActivity; import chat.rocket.android.activity.MainActivity;
import chat.rocket.android.helper.ServerPolicyHelper; import chat.rocket.android.helper.ServerPolicyHelper;
import chat.rocket.android.service.ConnectivityManager; import chat.rocket.android.service.ConnectivityManager;
import chat.rocket.android.service.ServerInfo; import chat.rocket.core.models.ServerInfo;
public class PushNotificationHandler implements PushConstants { public class PushNotificationHandler implements PushConstants {
...@@ -661,7 +661,7 @@ public class PushNotificationHandler implements PushConstants { ...@@ -661,7 +661,7 @@ public class PushNotificationHandler implements PushConstants {
ConnectivityManager.getInstance(context.getApplicationContext()).getServerList(); ConnectivityManager.getInstance(context.getApplicationContext()).getServerList();
for (ServerInfo serverInfo : serverInfoList) { for (ServerInfo serverInfo : serverInfoList) {
if (serverInfo.hostname.equals(hostname)) { if (serverInfo.getHostname().equals(hostname)) {
return true; return true;
} }
} }
......
...@@ -4,12 +4,12 @@ import com.google.android.gms.iid.InstanceIDListenerService; ...@@ -4,12 +4,12 @@ import com.google.android.gms.iid.InstanceIDListenerService;
import java.util.List; import java.util.List;
import chat.rocket.android.helper.GcmPushSettingHelper; import chat.rocket.android.helper.GcmPushSettingHelper;
import chat.rocket.android.model.ddp.PublicSetting; import chat.rocket.persistence.realm.models.ddp.RealmPublicSetting;
import chat.rocket.android.model.internal.GcmPushRegistration; import chat.rocket.persistence.realm.models.internal.GcmPushRegistration;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.persistence.realm.RealmStore; import chat.rocket.persistence.realm.RealmStore;
import chat.rocket.android.service.ConnectivityManager; import chat.rocket.android.service.ConnectivityManager;
import chat.rocket.android.service.ServerInfo; import chat.rocket.core.models.ServerInfo;
public class GcmInstanceIDListenerService extends InstanceIDListenerService { public class GcmInstanceIDListenerService extends InstanceIDListenerService {
...@@ -18,7 +18,7 @@ public class GcmInstanceIDListenerService extends InstanceIDListenerService { ...@@ -18,7 +18,7 @@ public class GcmInstanceIDListenerService extends InstanceIDListenerService {
List<ServerInfo> serverInfoList = ConnectivityManager.getInstance(getApplicationContext()) List<ServerInfo> serverInfoList = ConnectivityManager.getInstance(getApplicationContext())
.getServerList(); .getServerList();
for (ServerInfo serverInfo : serverInfoList) { for (ServerInfo serverInfo : serverInfoList) {
RealmHelper realmHelper = RealmStore.get(serverInfo.hostname); RealmHelper realmHelper = RealmStore.get(serverInfo.getHostname());
if (realmHelper != null) { if (realmHelper != null) {
updateGcmToken(realmHelper); updateGcmToken(realmHelper);
} }
...@@ -26,7 +26,7 @@ public class GcmInstanceIDListenerService extends InstanceIDListenerService { ...@@ -26,7 +26,7 @@ public class GcmInstanceIDListenerService extends InstanceIDListenerService {
} }
private void updateGcmToken(RealmHelper realmHelper) { private void updateGcmToken(RealmHelper realmHelper) {
final List<PublicSetting> results = realmHelper.executeTransactionForReadResults( final List<RealmPublicSetting> results = realmHelper.executeTransactionForReadResults(
GcmPushSettingHelper::queryForGcmPushEnabled); GcmPushSettingHelper::queryForGcmPushEnabled);
final boolean gcmPushEnabled = GcmPushSettingHelper.isGcmPushEnabled(results); final boolean gcmPushEnabled = GcmPushSettingHelper.isGcmPushEnabled(results);
......
...@@ -4,7 +4,7 @@ import android.content.Context; ...@@ -4,7 +4,7 @@ import android.content.Context;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
import chat.rocket.android.model.internal.FileUploading; import chat.rocket.persistence.realm.models.internal.FileUploading;
/** /**
* rendering FileUploading status. * rendering FileUploading status.
......
...@@ -9,9 +9,9 @@ import chat.rocket.android.R; ...@@ -9,9 +9,9 @@ import chat.rocket.android.R;
import chat.rocket.android.helper.Avatar; import chat.rocket.android.helper.Avatar;
import chat.rocket.android.helper.DateTime; import chat.rocket.android.helper.DateTime;
import chat.rocket.android.helper.TextUtils; import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.android.model.ddp.RealmMessage; import chat.rocket.persistence.realm.models.ddp.RealmMessage;
import chat.rocket.android.model.ddp.RealmUser; import chat.rocket.persistence.realm.models.ddp.RealmUser;
import chat.rocket.android.widget.RocketChatAvatar; import chat.rocket.android.widget.RocketChatAvatar;
import chat.rocket.android.widget.message.RocketChatMessageAttachmentsLayout; import chat.rocket.android.widget.message.RocketChatMessageAttachmentsLayout;
import chat.rocket.android.widget.message.RocketChatMessageLayout; import chat.rocket.android.widget.message.RocketChatMessageLayout;
......
...@@ -7,7 +7,7 @@ import android.widget.TextView; ...@@ -7,7 +7,7 @@ import android.widget.TextView;
import chat.rocket.android.R; import chat.rocket.android.R;
import chat.rocket.android.helper.Avatar; import chat.rocket.android.helper.Avatar;
import chat.rocket.android.helper.TextUtils; import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.model.core.User; import chat.rocket.core.models.User;
import chat.rocket.android.widget.RocketChatAvatar; import chat.rocket.android.widget.RocketChatAvatar;
/** /**
......
...@@ -3,6 +3,7 @@ package chat.rocket.android.service; ...@@ -3,6 +3,7 @@ package chat.rocket.android.service;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import java.util.List; import java.util.List;
import chat.rocket.core.models.ServerInfo;
import rx.Observable; import rx.Observable;
import rx.Single; import rx.Single;
......
package chat.rocket.android.service; package chat.rocket.android.service;
import java.util.List; import java.util.List;
import chat.rocket.core.models.ServerInfo;
/** /**
* interfaces used for RocketChatService and RocketChatwebSocketThread. * interfaces used for RocketChatService and RocketChatwebSocketThread.
......
...@@ -13,6 +13,8 @@ import java.util.Map; ...@@ -13,6 +13,8 @@ import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import chat.rocket.android.helper.RxHelper; import chat.rocket.android.helper.RxHelper;
import chat.rocket.android.log.RCLog; import chat.rocket.android.log.RCLog;
import chat.rocket.core.models.ServerInfo;
import chat.rocket.persistence.realm.models.RealmBasedServerInfo;
import hugo.weaving.DebugLog; import hugo.weaving.DebugLog;
import rx.Observable; import rx.Observable;
import rx.Single; import rx.Single;
...@@ -49,7 +51,7 @@ import rx.subjects.PublishSubject; ...@@ -49,7 +51,7 @@ import rx.subjects.PublishSubject;
public void resetConnectivityStateList() { public void resetConnectivityStateList() {
serverConnectivityList.clear(); serverConnectivityList.clear();
for (ServerInfo serverInfo : RealmBasedServerInfo.getServerInfoList()) { for (ServerInfo serverInfo : RealmBasedServerInfo.getServerInfoList()) {
serverConnectivityList.put(serverInfo.hostname, ServerConnectivity.STATE_DISCONNECTED); serverConnectivityList.put(serverInfo.getHostname(), ServerConnectivity.STATE_DISCONNECTED);
} }
} }
......
...@@ -14,7 +14,8 @@ import chat.rocket.android.api.MethodCallHelper; ...@@ -14,7 +14,8 @@ import chat.rocket.android.api.MethodCallHelper;
import chat.rocket.android.helper.LogcatIfError; import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.helper.TextUtils; import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.log.RCLog; import chat.rocket.android.log.RCLog;
import chat.rocket.android.model.internal.Session; import chat.rocket.core.models.ServerInfo;
import chat.rocket.persistence.realm.models.internal.Session;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.persistence.realm.RealmStore; import chat.rocket.persistence.realm.RealmStore;
import chat.rocket.android.service.ddp.base.ActiveUsersSubscriber; import chat.rocket.android.service.ddp.base.ActiveUsersSubscriber;
...@@ -225,7 +226,7 @@ public class RocketChatWebSocketThread extends HandlerThread { ...@@ -225,7 +226,7 @@ public class RocketChatWebSocketThread extends HandlerThread {
.flatMap(_val -> Single.fromEmitter(emitter -> { .flatMap(_val -> Single.fromEmitter(emitter -> {
ServerInfo info = connectivityManager.getServerInfoForHost(hostname); ServerInfo info = connectivityManager.getServerInfoForHost(hostname);
RCLog.d("DDPClient#connect"); RCLog.d("DDPClient#connect");
ddpClient.connect(info.session, !info.insecure) ddpClient.connect(info.getSession(), info.isSecure())
.onSuccessTask(task -> { .onSuccessTask(task -> {
final String newSession = task.getResult().session; final String newSession = task.getResult().session;
connectivityManager.notifyConnectionEstablished(hostname, newSession); connectivityManager.notifyConnectionEstablished(hostname, newSession);
......
package chat.rocket.android.service;
/**
* Stores information just for required for initializing connectivity manager.
*/
public class ServerInfo {
public final String hostname;
public final String name;
/*package*/ final String session;
public final boolean insecure;
public ServerInfo(String hostname, String name, String session, boolean insecure) {
this.hostname = hostname;
this.name = name;
this.session = session;
this.insecure = insecure;
}
}
...@@ -5,7 +5,7 @@ import io.realm.RealmObject; ...@@ -5,7 +5,7 @@ import io.realm.RealmObject;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import chat.rocket.android.model.ddp.RealmUser; import chat.rocket.persistence.realm.models.ddp.RealmUser;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
......
...@@ -3,7 +3,7 @@ package chat.rocket.android.service.ddp.base; ...@@ -3,7 +3,7 @@ package chat.rocket.android.service.ddp.base;
import android.content.Context; import android.content.Context;
import io.realm.RealmObject; import io.realm.RealmObject;
import chat.rocket.android.model.ddp.MeteorLoginServiceConfiguration; import chat.rocket.persistence.realm.models.ddp.RealmMeteorLoginServiceConfiguration;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
...@@ -28,6 +28,6 @@ public class LoginServiceConfigurationSubscriber extends AbstractBaseSubscriber ...@@ -28,6 +28,6 @@ public class LoginServiceConfigurationSubscriber extends AbstractBaseSubscriber
@Override @Override
protected Class<? extends RealmObject> getModelClass() { protected Class<? extends RealmObject> getModelClass() {
return MeteorLoginServiceConfiguration.class; return RealmMeteorLoginServiceConfiguration.class;
} }
} }
...@@ -5,7 +5,7 @@ import io.realm.RealmObject; ...@@ -5,7 +5,7 @@ import io.realm.RealmObject;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import chat.rocket.android.model.ddp.RealmUser; import chat.rocket.persistence.realm.models.ddp.RealmUser;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
......
...@@ -5,7 +5,7 @@ import io.realm.RealmObject; ...@@ -5,7 +5,7 @@ import io.realm.RealmObject;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import chat.rocket.android.model.ddp.RoomSubscription; import chat.rocket.persistence.realm.models.ddp.RealmRoom;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
...@@ -23,12 +23,12 @@ public class StreamNotifyUserSubscriptionsChanged extends AbstractStreamNotifyUs ...@@ -23,12 +23,12 @@ public class StreamNotifyUserSubscriptionsChanged extends AbstractStreamNotifyUs
@Override @Override
protected Class<? extends RealmObject> getModelClass() { protected Class<? extends RealmObject> getModelClass() {
return RoomSubscription.class; return RealmRoom.class;
} }
@Override @Override
protected JSONObject customizeFieldJson(JSONObject json) throws JSONException { protected JSONObject customizeFieldJson(JSONObject json) throws JSONException {
return RoomSubscription.customizeJson(super.customizeFieldJson(json)); return RealmRoom.customizeJson(super.customizeFieldJson(json));
} }
@Override @Override
......
...@@ -5,7 +5,7 @@ import io.realm.RealmObject; ...@@ -5,7 +5,7 @@ import io.realm.RealmObject;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import chat.rocket.android.model.ddp.RealmMessage; import chat.rocket.persistence.realm.models.ddp.RealmMessage;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
......
...@@ -5,7 +5,7 @@ import android.content.SharedPreferences; ...@@ -5,7 +5,7 @@ import android.content.SharedPreferences;
import chat.rocket.android.RocketChatCache; import chat.rocket.android.RocketChatCache;
import chat.rocket.android.helper.TextUtils; import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.model.ddp.RoomSubscription; import chat.rocket.persistence.realm.models.ddp.RealmRoom;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.Registrable; import chat.rocket.android.service.Registrable;
...@@ -28,8 +28,8 @@ public abstract class AbstractRocketChatCacheObserver implements Registrable { ...@@ -28,8 +28,8 @@ public abstract class AbstractRocketChatCacheObserver implements Registrable {
private void updateRoomIdWith(SharedPreferences prefs) { private void updateRoomIdWith(SharedPreferences prefs) {
String roomId = prefs.getString(RocketChatCache.KEY_SELECTED_ROOM_ID, null); String roomId = prefs.getString(RocketChatCache.KEY_SELECTED_ROOM_ID, null);
if (!TextUtils.isEmpty(roomId)) { if (!TextUtils.isEmpty(roomId)) {
RoomSubscription room = realmHelper.executeTransactionForRead(realm -> RealmRoom room = realmHelper.executeTransactionForRead(realm ->
realm.where(RoomSubscription.class).equalTo("rid", roomId).findFirst()); realm.where(RealmRoom.class).equalTo("rid", roomId).findFirst());
if (room != null) { if (room != null) {
if (this.roomId == null || !this.roomId.equals(roomId)) { if (this.roomId == null || !this.roomId.equals(roomId)) {
this.roomId = roomId; this.roomId = roomId;
......
...@@ -8,7 +8,7 @@ import java.util.ArrayList; ...@@ -8,7 +8,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import chat.rocket.android.api.MethodCallHelper; import chat.rocket.android.api.MethodCallHelper;
import chat.rocket.android.helper.LogcatIfError; import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.model.ddp.RealmUser; import chat.rocket.persistence.realm.models.ddp.RealmUser;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
import chat.rocket.android.service.Registrable; import chat.rocket.android.service.Registrable;
......
...@@ -15,8 +15,8 @@ import chat.rocket.android.api.FileUploadingHelper; ...@@ -15,8 +15,8 @@ import chat.rocket.android.api.FileUploadingHelper;
import chat.rocket.android.helper.LogcatIfError; import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.helper.OkHttpHelper; import chat.rocket.android.helper.OkHttpHelper;
import chat.rocket.android.log.RCLog; import chat.rocket.android.log.RCLog;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.android.model.internal.FileUploading; import chat.rocket.persistence.realm.models.internal.FileUploading;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
import okhttp3.MediaType; import okhttp3.MediaType;
......
...@@ -13,10 +13,10 @@ import chat.rocket.android.api.FileUploadingHelper; ...@@ -13,10 +13,10 @@ import chat.rocket.android.api.FileUploadingHelper;
import chat.rocket.android.helper.LogcatIfError; import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.helper.OkHttpHelper; import chat.rocket.android.helper.OkHttpHelper;
import chat.rocket.android.log.RCLog; import chat.rocket.android.log.RCLog;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.android.model.ddp.RealmUser; import chat.rocket.persistence.realm.models.ddp.RealmUser;
import chat.rocket.android.model.internal.FileUploading; import chat.rocket.persistence.realm.models.internal.FileUploading;
import chat.rocket.android.model.internal.Session; import chat.rocket.persistence.realm.models.internal.Session;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
import okhttp3.MediaType; import okhttp3.MediaType;
......
...@@ -13,11 +13,11 @@ import bolts.Task; ...@@ -13,11 +13,11 @@ import bolts.Task;
import chat.rocket.android.RocketChatCache; import chat.rocket.android.RocketChatCache;
import chat.rocket.android.api.RaixPushHelper; import chat.rocket.android.api.RaixPushHelper;
import chat.rocket.android.helper.LogcatIfError; import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.android.model.ddp.PublicSetting; import chat.rocket.persistence.realm.models.ddp.RealmPublicSetting;
import chat.rocket.android.model.ddp.PublicSettingsConstants; import chat.rocket.core.PublicSettingsConstants;
import chat.rocket.android.model.ddp.RealmUser; import chat.rocket.persistence.realm.models.ddp.RealmUser;
import chat.rocket.android.model.internal.GcmPushRegistration; import chat.rocket.persistence.realm.models.internal.GcmPushRegistration;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
...@@ -66,7 +66,7 @@ public class GcmPushRegistrationObserver extends AbstractModelObserver<GcmPushRe ...@@ -66,7 +66,7 @@ public class GcmPushRegistrationObserver extends AbstractModelObserver<GcmPushRe
} }
private Task<Void> registerGcmTokenForServer() throws IOException { private Task<Void> registerGcmTokenForServer() throws IOException {
final String senderId = PublicSetting final String senderId = RealmPublicSetting
.getString(realmHelper, PublicSettingsConstants.Push.GCM_PROJECT_NUMBER, "").trim(); .getString(realmHelper, PublicSettingsConstants.Push.GCM_PROJECT_NUMBER, "").trim();
final String gcmToken = getGcmToken(senderId); final String gcmToken = getGcmToken(senderId);
......
...@@ -9,8 +9,8 @@ import java.util.List; ...@@ -9,8 +9,8 @@ import java.util.List;
import bolts.Task; import bolts.Task;
import chat.rocket.android.api.MethodCallHelper; import chat.rocket.android.api.MethodCallHelper;
import chat.rocket.android.log.RCLog; import chat.rocket.android.log.RCLog;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.android.model.internal.GetUsersOfRoomsProcedure; import chat.rocket.persistence.realm.models.internal.GetUsersOfRoomsProcedure;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
......
...@@ -10,9 +10,9 @@ import java.util.List; ...@@ -10,9 +10,9 @@ import java.util.List;
import bolts.Task; import bolts.Task;
import chat.rocket.android.api.MethodCallHelper; import chat.rocket.android.api.MethodCallHelper;
import chat.rocket.android.log.RCLog; import chat.rocket.android.log.RCLog;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.android.model.ddp.RealmMessage; import chat.rocket.persistence.realm.models.ddp.RealmMessage;
import chat.rocket.android.model.internal.LoadMessageProcedure; import chat.rocket.persistence.realm.models.internal.LoadMessageProcedure;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
......
...@@ -8,8 +8,8 @@ import org.json.JSONObject; ...@@ -8,8 +8,8 @@ import org.json.JSONObject;
import java.util.List; import java.util.List;
import chat.rocket.android.helper.CheckSum; import chat.rocket.android.helper.CheckSum;
import chat.rocket.android.helper.LogcatIfError; import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.android.model.internal.MethodCall; import chat.rocket.persistence.realm.models.internal.MethodCall;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
import chat.rocket.android_ddp.DDPClientCallback; import chat.rocket.android_ddp.DDPClientCallback;
......
...@@ -9,8 +9,8 @@ import java.util.List; ...@@ -9,8 +9,8 @@ import java.util.List;
import chat.rocket.android.api.MethodCallHelper; import chat.rocket.android.api.MethodCallHelper;
import chat.rocket.android.helper.LogcatIfError; import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.log.RCLog; import chat.rocket.android.log.RCLog;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.android.model.ddp.RealmMessage; import chat.rocket.persistence.realm.models.ddp.RealmMessage;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
......
...@@ -6,12 +6,12 @@ import io.realm.RealmResults; ...@@ -6,12 +6,12 @@ import io.realm.RealmResults;
import java.util.List; import java.util.List;
import chat.rocket.android.helper.GcmPushSettingHelper; import chat.rocket.android.helper.GcmPushSettingHelper;
import chat.rocket.android.model.ddp.PublicSetting; import chat.rocket.persistence.realm.models.ddp.RealmPublicSetting;
import chat.rocket.android.model.internal.GcmPushRegistration; import chat.rocket.persistence.realm.models.internal.GcmPushRegistration;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
public class PushSettingsObserver extends AbstractModelObserver<PublicSetting> { public class PushSettingsObserver extends AbstractModelObserver<RealmPublicSetting> {
public PushSettingsObserver(Context context, String hostname, public PushSettingsObserver(Context context, String hostname,
RealmHelper realmHelper, DDPClientRef ddpClientRef) { RealmHelper realmHelper, DDPClientRef ddpClientRef) {
...@@ -19,12 +19,12 @@ public class PushSettingsObserver extends AbstractModelObserver<PublicSetting> { ...@@ -19,12 +19,12 @@ public class PushSettingsObserver extends AbstractModelObserver<PublicSetting> {
} }
@Override @Override
public RealmResults<PublicSetting> queryItems(Realm realm) { public RealmResults<RealmPublicSetting> queryItems(Realm realm) {
return GcmPushSettingHelper.queryForGcmPushEnabled(realm); return GcmPushSettingHelper.queryForGcmPushEnabled(realm);
} }
@Override @Override
public void onUpdateResults(List<PublicSetting> results) { public void onUpdateResults(List<RealmPublicSetting> results) {
boolean gcmPushEnabled = GcmPushSettingHelper.isGcmPushEnabled(results); boolean gcmPushEnabled = GcmPushSettingHelper.isGcmPushEnabled(results);
if (gcmPushEnabled) { if (gcmPushEnabled) {
......
...@@ -8,10 +8,10 @@ import java.util.List; ...@@ -8,10 +8,10 @@ import java.util.List;
import chat.rocket.android.RocketChatCache; import chat.rocket.android.RocketChatCache;
import chat.rocket.android.api.RaixPushHelper; import chat.rocket.android.api.RaixPushHelper;
import chat.rocket.android.helper.LogcatIfError; import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.model.internal.GetUsersOfRoomsProcedure; import chat.rocket.persistence.realm.models.internal.GetUsersOfRoomsProcedure;
import chat.rocket.android.model.internal.LoadMessageProcedure; import chat.rocket.persistence.realm.models.internal.LoadMessageProcedure;
import chat.rocket.android.model.internal.MethodCall; import chat.rocket.persistence.realm.models.internal.MethodCall;
import chat.rocket.android.model.internal.Session; import chat.rocket.persistence.realm.models.internal.Session;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
import chat.rocket.android.service.internal.StreamRoomMessageManager; import chat.rocket.android.service.internal.StreamRoomMessageManager;
......
...@@ -7,7 +7,7 @@ import io.realm.RealmResults; ...@@ -7,7 +7,7 @@ import io.realm.RealmResults;
import java.util.List; import java.util.List;
import chat.rocket.android.api.MethodCallHelper; import chat.rocket.android.api.MethodCallHelper;
import chat.rocket.android.helper.LogcatIfError; import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.model.internal.Session; import chat.rocket.persistence.realm.models.internal.Session;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.android.service.DDPClientRef; import chat.rocket.android.service.DDPClientRef;
......
...@@ -6,8 +6,12 @@ ...@@ -6,8 +6,12 @@
# http://www.gradle.org/docs/current/userguide/build_environment.html # http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process. # Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings. # The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m # org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode. # When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit # This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true # org.gradle.parallel=true
org.gradle.jvmargs=-Xmx6144M
#org.gradle.parallel=true
android.enableBuildCache=true
\ No newline at end of file
apply plugin: 'com.android.library' apply plugin: 'com.android.library'
apply plugin: 'realm-android' apply plugin: 'realm-android'
apply plugin: 'com.jakewharton.hugo'
apply plugin: 'me.tatarka.retrolambda' apply plugin: 'me.tatarka.retrolambda'
buildscript { buildscript {
...@@ -11,6 +12,7 @@ buildscript { ...@@ -11,6 +12,7 @@ buildscript {
classpath rootProject.ext.realmPlugin classpath rootProject.ext.realmPlugin
classpath rootProject.ext.retroLambdaPlugin classpath rootProject.ext.retroLambdaPlugin
classpath rootProject.ext.retroLambdaPatch classpath rootProject.ext.retroLambdaPatch
classpath 'com.jakewharton.hugo:hugo-plugin:1.2.1'
} }
} }
...@@ -39,6 +41,9 @@ android { ...@@ -39,6 +41,9 @@ android {
dependencies { dependencies {
testCompile 'junit:junit:4.12' testCompile 'junit:junit:4.12'
compile project(':log-wrapper') compile project(':log-wrapper')
compile project(':rocket-chat-core')
compile 'io.reactivex:rxjava:1.2.3'
compile 'io.reactivex:rxandroid:1.2.1'
compile rootProject.ext.boltsTask compile rootProject.ext.boltsTask
compile rootProject.ext.supportAnnotations compile rootProject.ext.supportAnnotations
compile rootProject.ext.supportAppCompat compile rootProject.ext.supportAppCompat
......
...@@ -4,6 +4,8 @@ import io.realm.Realm; ...@@ -4,6 +4,8 @@ import io.realm.Realm;
import io.realm.RealmConfiguration; import io.realm.RealmConfiguration;
import java.util.HashMap; import java.util.HashMap;
import chat.rocket.persistence.realm.modules.RocketChatLibraryModule;
import chat.rocket.persistence.realm.modules.RocketChatServerModule;
public class RealmStore { public class RealmStore {
public static HashMap<String, RealmConfiguration> sStore = new HashMap<>(); public static HashMap<String, RealmConfiguration> sStore = new HashMap<>();
...@@ -11,6 +13,7 @@ public class RealmStore { ...@@ -11,6 +13,7 @@ public class RealmStore {
private static RealmConfiguration createConfigFor(String name) { private static RealmConfiguration createConfigFor(String name) {
return new RealmConfiguration.Builder() return new RealmConfiguration.Builder()
.name(name + ".realm") .name(name + ".realm")
.modules(new RocketChatLibraryModule())
.deleteRealmIfMigrationNeeded().build(); .deleteRealmIfMigrationNeeded().build();
} }
...@@ -37,6 +40,16 @@ public class RealmStore { ...@@ -37,6 +40,16 @@ public class RealmStore {
return new RealmHelper(sStore.get(name)); return new RealmHelper(sStore.get(name));
} }
public static RealmHelper getOrCreateForServerScope(String name) {
if (!sStore.containsKey(name)) {
sStore.put(name, new RealmConfiguration.Builder()
.name(name + ".realm")
.modules(new RocketChatServerModule())
.deleteRealmIfMigrationNeeded().build());
}
return new RealmHelper(sStore.get(name));
}
public static Realm getRealm(String name) { public static Realm getRealm(String name) {
RealmHelper realmHelper = get(name); RealmHelper realmHelper = get(name);
......
package chat.rocket.persistence.realm;
import android.content.Context;
import io.realm.Realm;
import io.realm.RealmConfiguration;
import chat.rocket.persistence.realm.modules.RocketChatLibraryModule;
public class RocketChatPersistenceRealm {
public static void init(Context context) {
Realm.init(context);
Realm.setDefaultConfiguration(
new RealmConfiguration.Builder()
.name("rocket.chat.persistence.realm")
.modules(new RocketChatLibraryModule())
.deleteRealmIfMigrationNeeded()
.build());
}
}
package chat.rocket.persistence.realm.helpers;
import bolts.Continuation;
import bolts.Task;
import chat.rocket.android.log.RCLog;
/**
* Bolts-Task continuation for just logging if error occurred.
*/
public class LogcatIfError implements Continuation {
@Override
public Object then(Task task) throws Exception {
if (task.isFaulted()) {
RCLog.w(task.getError());
}
return task;
}
}
package chat.rocket.android.service; package chat.rocket.persistence.realm.models;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.text.TextUtils; import android.text.TextUtils;
...@@ -9,6 +9,7 @@ import org.json.JSONObject; ...@@ -9,6 +9,7 @@ import org.json.JSONObject;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import chat.rocket.core.models.ServerInfo;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.persistence.realm.RealmStore; import chat.rocket.persistence.realm.RealmStore;
...@@ -16,7 +17,7 @@ import chat.rocket.persistence.realm.RealmStore; ...@@ -16,7 +17,7 @@ import chat.rocket.persistence.realm.RealmStore;
* Backend implementation to store ServerInfo. * Backend implementation to store ServerInfo.
*/ */
public class RealmBasedServerInfo extends RealmObject { public class RealmBasedServerInfo extends RealmObject {
private static final String DB_NAME = "serverlist"; private static final String DB_NAME = "server.list";
@PrimaryKey private String hostname; @PrimaryKey private String hostname;
private String name; private String name;
...@@ -31,21 +32,26 @@ public class RealmBasedServerInfo extends RealmObject { ...@@ -31,21 +32,26 @@ public class RealmBasedServerInfo extends RealmObject {
} }
ServerInfo getServerInfo() { ServerInfo getServerInfo() {
return new ServerInfo(hostname, name, session, insecure); return ServerInfo.builder()
.setHostname(hostname)
.setName(name)
.setSession(session)
.setSecure(!insecure)
.build();
} }
static RealmHelper getRealm() { public static RealmHelper getRealm() {
return RealmStore.getOrCreate(DB_NAME); return RealmStore.getOrCreateForServerScope(DB_NAME);
} }
static void addOrUpdate(String hostname, String name) { public static void addOrUpdate(String hostname, String name) {
getRealm().executeTransaction(realm -> getRealm().executeTransaction(realm ->
realm.createOrUpdateObjectFromJson(RealmBasedServerInfo.class, new JSONObject() realm.createOrUpdateObjectFromJson(RealmBasedServerInfo.class, new JSONObject()
.put(ColumnName.HOSTNAME, hostname) .put(ColumnName.HOSTNAME, hostname)
.put(ColumnName.NAME, TextUtils.isEmpty(name) ? JSONObject.NULL : name))); .put(ColumnName.NAME, TextUtils.isEmpty(name) ? JSONObject.NULL : name)));
} }
static void remove(String hostname) { public static void remove(String hostname) {
getRealm().executeTransaction(realm -> { getRealm().executeTransaction(realm -> {
realm.where(RealmBasedServerInfo.class).equalTo(ColumnName.HOSTNAME, hostname) realm.where(RealmBasedServerInfo.class).equalTo(ColumnName.HOSTNAME, hostname)
.findAll() .findAll()
...@@ -54,7 +60,7 @@ public class RealmBasedServerInfo extends RealmObject { ...@@ -54,7 +60,7 @@ public class RealmBasedServerInfo extends RealmObject {
}); });
} }
static void updateSession(String hostname, String session) { public static void updateSession(String hostname, String session) {
RealmBasedServerInfo impl = getRealm().executeTransactionForRead(realm -> RealmBasedServerInfo impl = getRealm().executeTransactionForRead(realm ->
realm.where(RealmBasedServerInfo.class).equalTo(ColumnName.HOSTNAME, hostname).findFirst()); realm.where(RealmBasedServerInfo.class).equalTo(ColumnName.HOSTNAME, hostname).findFirst());
...@@ -67,13 +73,14 @@ public class RealmBasedServerInfo extends RealmObject { ...@@ -67,13 +73,14 @@ public class RealmBasedServerInfo extends RealmObject {
} }
} }
static @Nullable ServerInfo getServerInfoForHost(String hostname) { @Nullable
public static ServerInfo getServerInfoForHost(String hostname) {
RealmBasedServerInfo impl = getRealm().executeTransactionForRead(realm -> RealmBasedServerInfo impl = getRealm().executeTransactionForRead(realm ->
realm.where(RealmBasedServerInfo.class).equalTo(ColumnName.HOSTNAME, hostname).findFirst()); realm.where(RealmBasedServerInfo.class).equalTo(ColumnName.HOSTNAME, hostname).findFirst());
return impl == null ? null : impl.getServerInfo(); return impl == null ? null : impl.getServerInfo();
} }
static void setInsecure(String hostname, boolean insecure) { public static void setInsecure(String hostname, boolean insecure) {
RealmBasedServerInfo impl = getRealm().executeTransactionForRead(realm -> RealmBasedServerInfo impl = getRealm().executeTransactionForRead(realm ->
realm.where(RealmBasedServerInfo.class).equalTo(ColumnName.HOSTNAME, hostname).findFirst()); realm.where(RealmBasedServerInfo.class).equalTo(ColumnName.HOSTNAME, hostname).findFirst());
...@@ -86,7 +93,7 @@ public class RealmBasedServerInfo extends RealmObject { ...@@ -86,7 +93,7 @@ public class RealmBasedServerInfo extends RealmObject {
} }
} }
static List<ServerInfo> getServerInfoList() { public static List<ServerInfo> getServerInfoList() {
List<RealmBasedServerInfo> results = getRealm().executeTransactionForReadResults(realm -> List<RealmBasedServerInfo> results = getRealm().executeTransactionForReadResults(realm ->
realm.where(RealmBasedServerInfo.class).findAll()); realm.where(RealmBasedServerInfo.class).findAll());
ArrayList<ServerInfo> list = new ArrayList<>(); ArrayList<ServerInfo> list = new ArrayList<>();
......
package chat.rocket.android.model.ddp; package chat.rocket.persistence.realm.models.ddp;
import io.realm.RealmObject; import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey; import io.realm.annotations.PrimaryKey;
import chat.rocket.android.model.core.Email; import chat.rocket.core.models.Email;
/** /**
* Login-RealmUser's email. * Login-RealmUser's email.
......
package chat.rocket.android.model.ddp; package chat.rocket.persistence.realm.models.ddp;
import io.realm.RealmObject; import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey; import io.realm.annotations.PrimaryKey;
...@@ -8,14 +8,14 @@ import org.json.JSONObject; ...@@ -8,14 +8,14 @@ import org.json.JSONObject;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import chat.rocket.android.model.JsonConstants; import chat.rocket.core.JsonConstants;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.android.model.core.Attachment; import chat.rocket.core.models.Attachment;
import chat.rocket.android.model.core.AttachmentAuthor; import chat.rocket.core.models.AttachmentAuthor;
import chat.rocket.android.model.core.AttachmentField; import chat.rocket.core.models.AttachmentField;
import chat.rocket.android.model.core.AttachmentTitle; import chat.rocket.core.models.AttachmentTitle;
import chat.rocket.android.model.core.Message; import chat.rocket.core.models.Message;
import chat.rocket.android.model.core.WebContent; import chat.rocket.core.models.WebContent;
/** /**
* RealmMessage. * RealmMessage.
......
package chat.rocket.android.model.ddp; package chat.rocket.persistence.realm.models.ddp;
import io.realm.RealmObject; import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey; import io.realm.annotations.PrimaryKey;
...@@ -8,7 +8,7 @@ import io.realm.annotations.PrimaryKey; ...@@ -8,7 +8,7 @@ import io.realm.annotations.PrimaryKey;
*/ */
@SuppressWarnings({"PMD.ShortClassName", "PMD.ShortVariable", @SuppressWarnings({"PMD.ShortClassName", "PMD.ShortVariable",
"PMD.MethodNamingConventions", "PMD.VariableNamingConventions"}) "PMD.MethodNamingConventions", "PMD.VariableNamingConventions"})
public class MeteorLoginServiceConfiguration public class RealmMeteorLoginServiceConfiguration
extends RealmObject { extends RealmObject {
public static final String ID = "_id"; public static final String ID = "_id";
......
package chat.rocket.android.model.ddp; package chat.rocket.persistence.realm.models.ddp;
import io.realm.RealmObject; import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey; import io.realm.annotations.PrimaryKey;
import chat.rocket.android.model.core.Preferences; import chat.rocket.core.models.Preferences;
@SuppressWarnings({"PMD.ShortVariable"}) @SuppressWarnings({"PMD.ShortVariable"})
public class RealmPreferences extends RealmObject { public class RealmPreferences extends RealmObject {
......
package chat.rocket.android.model.ddp; package chat.rocket.persistence.realm.models.ddp;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import io.realm.RealmObject; import io.realm.RealmObject;
...@@ -6,7 +6,7 @@ import io.realm.annotations.PrimaryKey; ...@@ -6,7 +6,7 @@ import io.realm.annotations.PrimaryKey;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import chat.rocket.android.model.JsonConstants; import chat.rocket.core.JsonConstants;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
/** /**
...@@ -14,7 +14,7 @@ import chat.rocket.persistence.realm.RealmHelper; ...@@ -14,7 +14,7 @@ import chat.rocket.persistence.realm.RealmHelper;
*/ */
@SuppressWarnings({"PMD.ShortClassName", "PMD.ShortVariable", @SuppressWarnings({"PMD.ShortClassName", "PMD.ShortVariable",
"PMD.MethodNamingConventions", "PMD.VariableNamingConventions"}) "PMD.MethodNamingConventions", "PMD.VariableNamingConventions"})
public class PublicSetting extends RealmObject { public class RealmPublicSetting extends RealmObject {
public static final String ID = "_id"; public static final String ID = "_id";
public static final String GROUP = "group"; public static final String GROUP = "group";
...@@ -42,15 +42,15 @@ public class PublicSetting extends RealmObject { ...@@ -42,15 +42,15 @@ public class PublicSetting extends RealmObject {
} }
@Nullable @Nullable
private static PublicSetting get(RealmHelper realmHelper, String _id) { private static RealmPublicSetting get(RealmHelper realmHelper, String _id) {
return realmHelper.executeTransactionForRead(realm -> return realmHelper.executeTransactionForRead(realm ->
realm.where(PublicSetting.class).equalTo(ID, _id).findFirst()); realm.where(RealmPublicSetting.class).equalTo(ID, _id).findFirst());
} }
@Nullable @Nullable
public static String getString(RealmHelper realmHelper, public static String getString(RealmHelper realmHelper,
String _id, String defaultValue) { String _id, String defaultValue) {
PublicSetting setting = get(realmHelper, _id); RealmPublicSetting setting = get(realmHelper, _id);
if (setting != null) { if (setting != null) {
return setting.getValue(); return setting.getValue();
} }
...@@ -59,7 +59,7 @@ public class PublicSetting extends RealmObject { ...@@ -59,7 +59,7 @@ public class PublicSetting extends RealmObject {
public static boolean getBoolean(RealmHelper realmHelper, public static boolean getBoolean(RealmHelper realmHelper,
String _id, boolean defaultValue) { String _id, boolean defaultValue) {
PublicSetting setting = get(realmHelper, _id); RealmPublicSetting setting = get(realmHelper, _id);
if (setting != null) { if (setting != null) {
return Boolean.parseBoolean(setting.getValue()); return Boolean.parseBoolean(setting.getValue());
} }
......
package chat.rocket.android.model.ddp; package chat.rocket.persistence.realm.models.ddp;
import io.realm.RealmObject; import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey; import io.realm.annotations.PrimaryKey;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import chat.rocket.android.model.JsonConstants; import chat.rocket.core.JsonConstants;
import chat.rocket.android.model.core.Room; import chat.rocket.core.models.Room;
/** /**
* Chat Room(Subscription). * Chat Room(Subscription).
*/ */
@SuppressWarnings({"PMD.ShortClassName", "PMD.ShortVariable", @SuppressWarnings({"PMD.ShortClassName", "PMD.ShortVariable",
"PMD.MethodNamingConventions", "PMD.VariableNamingConventions"}) "PMD.MethodNamingConventions", "PMD.VariableNamingConventions"})
public class RoomSubscription extends RealmObject { public class RealmRoom extends RealmObject {
public static final String ID = "_id"; public static final String ID = "_id";
public static final String ROOM_ID = "rid"; public static final String ROOM_ID = "rid";
......
package chat.rocket.android.model.ddp; package chat.rocket.persistence.realm.models.ddp;
import io.realm.RealmObject; import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey; import io.realm.annotations.PrimaryKey;
import chat.rocket.android.model.core.Settings; import chat.rocket.core.models.Settings;
@SuppressWarnings({"PMD.ShortVariable"}) @SuppressWarnings({"PMD.ShortVariable"})
public class RealmSettings extends RealmObject { public class RealmSettings extends RealmObject {
......
package chat.rocket.android.model.ddp; package chat.rocket.persistence.realm.models.ddp;
import io.realm.Realm; import io.realm.Realm;
import io.realm.RealmList; import io.realm.RealmList;
...@@ -8,8 +8,8 @@ import io.realm.annotations.PrimaryKey; ...@@ -8,8 +8,8 @@ import io.realm.annotations.PrimaryKey;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import chat.rocket.android.model.core.Email; import chat.rocket.core.models.Email;
import chat.rocket.android.model.core.User; import chat.rocket.core.models.User;
/** /**
* RealmUser. * RealmUser.
......
package chat.rocket.android.model.internal; package chat.rocket.persistence.realm.models.internal;
import io.realm.RealmObject; import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey; import io.realm.annotations.PrimaryKey;
......
package chat.rocket.android.model.internal; package chat.rocket.persistence.realm.models.internal;
import io.realm.Realm; import io.realm.Realm;
import io.realm.RealmObject; import io.realm.RealmObject;
...@@ -7,7 +7,7 @@ import io.realm.annotations.PrimaryKey; ...@@ -7,7 +7,7 @@ import io.realm.annotations.PrimaryKey;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
/** /**
* just stores gcm registration status. * just stores gcm registration status.
......
package chat.rocket.android.model.internal; package chat.rocket.persistence.realm.models.internal;
import io.realm.RealmObject; import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey; import io.realm.annotations.PrimaryKey;
......
package chat.rocket.android.model.internal; package chat.rocket.persistence.realm.models.internal;
import io.realm.RealmObject; import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey; import io.realm.annotations.PrimaryKey;
import chat.rocket.android.model.core.RoomHistoryState; import chat.rocket.core.models.RoomHistoryState;
/** /**
* Load messages in the room. * Load messages in the room.
......
package chat.rocket.android.model.internal; package chat.rocket.persistence.realm.models.internal;
import android.content.Context; import android.text.TextUtils;
import android.support.annotation.Nullable;
import io.realm.RealmObject; import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey; import io.realm.annotations.PrimaryKey;
import org.json.JSONObject; import org.json.JSONObject;
...@@ -10,13 +9,11 @@ import java.util.HashMap; ...@@ -10,13 +9,11 @@ import java.util.HashMap;
import java.util.UUID; import java.util.UUID;
import bolts.Task; import bolts.Task;
import bolts.TaskCompletionSource; import bolts.TaskCompletionSource;
import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.helper.TextUtils;
import chat.rocket.android.log.RCLog; import chat.rocket.android.log.RCLog;
import chat.rocket.android.model.SyncState; import chat.rocket.core.SyncState;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.persistence.realm.RealmObjectObserver; import chat.rocket.persistence.realm.RealmObjectObserver;
import chat.rocket.android.service.ConnectivityManager; import chat.rocket.persistence.realm.helpers.LogcatIfError;
public class MethodCall extends RealmObject { public class MethodCall extends RealmObject {
...@@ -39,8 +36,7 @@ public class MethodCall extends RealmObject { ...@@ -39,8 +36,7 @@ public class MethodCall extends RealmObject {
/** /**
* insert a new record to request a method call. * insert a new record to request a method call.
*/ */
public static Task<String> execute(@Nullable final Context context, public static Task<String> execute(RealmHelper realmHelper, String name, String paramsJson,
RealmHelper realmHelper, String name, String paramsJson,
long timeout) { long timeout) {
final String newId = UUID.randomUUID().toString(); final String newId = UUID.randomUUID().toString();
TaskCompletionSource<String> task = new TaskCompletionSource<>(); TaskCompletionSource<String> task = new TaskCompletionSource<>();
...@@ -87,11 +83,6 @@ public class MethodCall extends RealmObject { ...@@ -87,11 +83,6 @@ public class MethodCall extends RealmObject {
}); });
observer.sub(); observer.sub();
REF_MAP.put(newId, observer); REF_MAP.put(newId, observer);
if (context != null) {
ConnectivityManager.getInstance(context.getApplicationContext())
.keepAliveServer();
}
} }
return null; return null;
}); });
......
package chat.rocket.android.model.internal; package chat.rocket.persistence.realm.models.internal;
import android.text.TextUtils;
import io.realm.Realm; import io.realm.Realm;
import io.realm.RealmObject; import io.realm.RealmObject;
import io.realm.RealmQuery; import io.realm.RealmQuery;
import io.realm.annotations.PrimaryKey; import io.realm.annotations.PrimaryKey;
import org.json.JSONObject; import org.json.JSONObject;
import chat.rocket.android.helper.LogcatIfError;
import chat.rocket.android.helper.TextUtils;
import chat.rocket.persistence.realm.RealmHelper; import chat.rocket.persistence.realm.RealmHelper;
import chat.rocket.persistence.realm.helpers.LogcatIfError;
import hugo.weaving.DebugLog; import hugo.weaving.DebugLog;
/** /**
......
package chat.rocket.persistence.realm.modules;
import io.realm.annotations.RealmModule;
@RealmModule(library = true, allClasses = true)
public class RocketChatLibraryModule {
}
package chat.rocket.persistence.realm.modules;
import io.realm.annotations.RealmModule;
import chat.rocket.persistence.realm.models.RealmBasedServerInfo;
@RealmModule(library = true, classes = {RealmBasedServerInfo.class})
public class RocketChatServerModule {
}
package chat.rocket.android.repositories; package chat.rocket.persistence.realm.repositories;
import android.os.Looper; import android.os.Looper;
import io.realm.Realm; import io.realm.Realm;
...@@ -6,12 +6,12 @@ import io.realm.RealmResults; ...@@ -6,12 +6,12 @@ import io.realm.RealmResults;
import org.json.JSONObject; import org.json.JSONObject;
import chat.rocket.android.model.core.Message; import chat.rocket.core.models.Message;
import chat.rocket.android.model.core.Room; import chat.rocket.core.models.Room;
import chat.rocket.android.model.ddp.RealmMessage; import chat.rocket.core.repositories.MessageRepository;
import chat.rocket.android.model.ddp.RealmUser;
import chat.rocket.android.repositories.core.MessageRepository;
import chat.rocket.persistence.realm.RealmStore; import chat.rocket.persistence.realm.RealmStore;
import chat.rocket.persistence.realm.models.ddp.RealmMessage;
import chat.rocket.persistence.realm.models.ddp.RealmUser;
import rx.Observable; import rx.Observable;
import rx.Single; import rx.Single;
import rx.android.schedulers.AndroidSchedulers; import rx.android.schedulers.AndroidSchedulers;
......
package chat.rocket.android.repositories; package chat.rocket.persistence.realm.repositories;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
......
package chat.rocket.android.repositories; package chat.rocket.persistence.realm.repositories;
import android.os.Looper; import android.os.Looper;
import io.realm.Realm; import io.realm.Realm;
...@@ -6,12 +6,12 @@ import io.realm.RealmResults; ...@@ -6,12 +6,12 @@ import io.realm.RealmResults;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import chat.rocket.android.model.core.Room; import chat.rocket.core.models.Room;
import chat.rocket.android.model.core.RoomHistoryState; import chat.rocket.core.models.RoomHistoryState;
import chat.rocket.android.model.ddp.RoomSubscription; import chat.rocket.core.repositories.RoomRepository;
import chat.rocket.android.model.internal.LoadMessageProcedure;
import chat.rocket.android.repositories.core.RoomRepository;
import chat.rocket.persistence.realm.RealmStore; import chat.rocket.persistence.realm.RealmStore;
import chat.rocket.persistence.realm.models.ddp.RealmRoom;
import chat.rocket.persistence.realm.models.internal.LoadMessageProcedure;
import rx.Observable; import rx.Observable;
import rx.Single; import rx.Single;
import rx.android.schedulers.AndroidSchedulers; import rx.android.schedulers.AndroidSchedulers;
...@@ -34,8 +34,8 @@ public class RealmRoomRepository extends RealmRepository implements RoomReposito ...@@ -34,8 +34,8 @@ public class RealmRoomRepository extends RealmRepository implements RoomReposito
return Observable.just(null); return Observable.just(null);
} }
return realm.where(RoomSubscription.class) return realm.where(RealmRoom.class)
.equalTo(RoomSubscription.OPEN, true) .equalTo(RealmRoom.OPEN, true)
.findAll() .findAll()
.asObservable() .asObservable()
.unsubscribeOn(AndroidSchedulers.from(looper)) .unsubscribeOn(AndroidSchedulers.from(looper))
...@@ -56,10 +56,10 @@ public class RealmRoomRepository extends RealmRepository implements RoomReposito ...@@ -56,10 +56,10 @@ public class RealmRoomRepository extends RealmRepository implements RoomReposito
return Observable.just(null); return Observable.just(null);
} }
return realm.where(RoomSubscription.class) return realm.where(RealmRoom.class)
.equalTo(RoomSubscription.ROOM_ID, roomId) .equalTo(RealmRoom.ROOM_ID, roomId)
.findFirst() .findFirst()
.<RoomSubscription>asObservable() .<RealmRoom>asObservable()
.unsubscribeOn(AndroidSchedulers.from(looper)) .unsubscribeOn(AndroidSchedulers.from(looper))
.doOnUnsubscribe(() -> close(realm, looper)) .doOnUnsubscribe(() -> close(realm, looper))
.filter(roomSubscription -> roomSubscription != null && roomSubscription.isLoaded() .filter(roomSubscription -> roomSubscription != null && roomSubscription.isLoaded()
...@@ -123,13 +123,13 @@ public class RealmRoomRepository extends RealmRepository implements RoomReposito ...@@ -123,13 +123,13 @@ public class RealmRoomRepository extends RealmRepository implements RoomReposito
}); });
} }
private List<Room> toList(RealmResults<RoomSubscription> roomSubscriptions) { private List<Room> toList(RealmResults<RealmRoom> realmRooms) {
int total = roomSubscriptions.size(); int total = realmRooms.size();
final List<Room> roomList = new ArrayList<>(total); final List<Room> roomList = new ArrayList<>(total);
for (int i = 0; i < total; i++) { for (int i = 0; i < total; i++) {
roomList.add(roomSubscriptions.get(i).asRoom()); roomList.add(realmRooms.get(i).asRoom());
} }
return roomList; return roomList;
......
package chat.rocket.android.repositories; package chat.rocket.persistence.realm.repositories;
import android.os.Looper; import android.os.Looper;
import io.realm.Realm; import io.realm.Realm;
import chat.rocket.android.model.core.User; import chat.rocket.core.models.User;
import chat.rocket.android.model.ddp.RealmUser; import chat.rocket.core.repositories.UserRepository;
import chat.rocket.android.repositories.core.UserRepository;
import chat.rocket.persistence.realm.RealmStore; import chat.rocket.persistence.realm.RealmStore;
import chat.rocket.persistence.realm.models.ddp.RealmUser;
import rx.Observable; import rx.Observable;
import rx.android.schedulers.AndroidSchedulers; import rx.android.schedulers.AndroidSchedulers;
......
plugins {
id "net.ltgt.apt" version "0.9"
}
apply plugin: 'idea'
apply plugin: 'java'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.code.findbugs:jsr305:3.0.1'
compile 'io.reactivex:rxjava:1.2.3'
compile 'com.google.auto.value:auto-value:1.3'
apt 'com.google.auto.value:auto-value:1.3'
apt 'com.gabrielittner.auto.value:auto-value-with:1.0.0'
}
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
package chat.rocket.android.model; package chat.rocket.core;
public interface JsonConstants { public interface JsonConstants {
String DATE = "$date"; String DATE = "$date";
......
package chat.rocket.android.model.ddp; package chat.rocket.core;
@SuppressWarnings({"PMD.ShortClassName"}) @SuppressWarnings({"PMD.ShortClassName"})
public interface PublicSettingsConstants { public interface PublicSettingsConstants {
......
package chat.rocket.android.model; package chat.rocket.core;
/** /**
* The sync status of each model. * The sync status of each model.
......
package chat.rocket.android.model.core; package chat.rocket.core.models;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
import android.support.annotation.Nullable;
import java.util.List; import java.util.List;
import javax.annotation.Nullable;
@AutoValue @AutoValue
public abstract class Attachment { public abstract class Attachment {
......
package chat.rocket.android.model.core; package chat.rocket.core.models;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
......
package chat.rocket.android.model.core; package chat.rocket.core.models;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
......
package chat.rocket.android.model.core; package chat.rocket.core.models;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
import android.support.annotation.Nullable; import javax.annotation.Nullable;
@AutoValue @AutoValue
public abstract class AttachmentTitle { public abstract class AttachmentTitle {
......
package chat.rocket.android.model.core; package chat.rocket.core.models;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
......
package chat.rocket.android.model.core; package chat.rocket.core.models;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
import android.support.annotation.Nullable;
import java.util.List; import java.util.List;
import javax.annotation.Nullable;
@AutoValue @AutoValue
public abstract class Message { public abstract class Message {
......
package chat.rocket.android.model.core; package chat.rocket.core.models;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
......
package chat.rocket.android.model.core; package chat.rocket.core.models;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
......
package chat.rocket.android.model.core; package chat.rocket.core.models;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
......
package chat.rocket.core.models;
import com.google.auto.value.AutoValue;
import javax.annotation.Nullable;
/**
* Stores information just for required for initializing connectivity manager.
*/
@AutoValue
public abstract class ServerInfo {
public abstract String getHostname();
public abstract String getName();
@Nullable
public abstract String getSession();
public abstract boolean isSecure();
public static Builder builder() {
return new AutoValue_ServerInfo.Builder();
}
@AutoValue.Builder
public abstract static class Builder {
public abstract Builder setHostname(String hostname);
public abstract Builder setName(String name);
public abstract Builder setSession(String session);
public abstract Builder setSecure(boolean isSecure);
public abstract ServerInfo build();
}
}
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment