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

Moving thigs around

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