Commit c576db29 authored by Lucio Maciel's avatar Lucio Maciel

Some fixes for multi server

parent bd38ebcb
...@@ -24,7 +24,7 @@ import chat.rocket.android.server.domain.* ...@@ -24,7 +24,7 @@ import chat.rocket.android.server.domain.*
import chat.rocket.android.server.domain.model.Account import chat.rocket.android.server.domain.model.Account
import chat.rocket.android.widget.emoji.EmojiRepository import chat.rocket.android.widget.emoji.EmojiRepository
import chat.rocket.common.model.Token import chat.rocket.common.model.Token
import chat.rocket.core.TokenRepository import chat.rocket.common.util.ifNull
import chat.rocket.core.model.Value import chat.rocket.core.model.Value
import com.crashlytics.android.Crashlytics import com.crashlytics.android.Crashlytics
import com.crashlytics.android.core.CrashlyticsCore import com.crashlytics.android.core.CrashlyticsCore
...@@ -73,6 +73,7 @@ class RocketChatApplication : Application(), HasActivityInjector, HasServiceInje ...@@ -73,6 +73,7 @@ class RocketChatApplication : Application(), HasActivityInjector, HasServiceInje
lateinit var accountRepository: AccountsRepository lateinit var accountRepository: AccountsRepository
@Inject @Inject
lateinit var saveCurrentServerRepository: SaveCurrentServerInteractor lateinit var saveCurrentServerRepository: SaveCurrentServerInteractor
@Inject
lateinit var prefs: SharedPreferences lateinit var prefs: SharedPreferences
@Inject @Inject
lateinit var getAccountsInteractor: GetAccountsInteractor lateinit var getAccountsInteractor: GetAccountsInteractor
...@@ -189,21 +190,23 @@ class RocketChatApplication : Application(), HasActivityInjector, HasServiceInje ...@@ -189,21 +190,23 @@ class RocketChatApplication : Application(), HasActivityInjector, HasServiceInje
} }
private fun migrateCurrentServer(serversList: List<RealmBasedServerInfo>) { private fun migrateCurrentServer(serversList: List<RealmBasedServerInfo>) {
var currentServer = getSharedPreferences("cache", Context.MODE_PRIVATE) if (getCurrentServerInteractor.get() == null) {
.getString("KEY_SELECTED_SERVER_HOSTNAME", null) var currentServer = getSharedPreferences("cache", Context.MODE_PRIVATE)
.getString("KEY_SELECTED_SERVER_HOSTNAME", null)
currentServer = if (serversList.isNotEmpty()) {
val server = serversList.find { it.hostname == currentServer } currentServer = if (serversList.isNotEmpty()) {
val hostname = server!!.hostname val server = serversList.find { it.hostname == currentServer }
if (server.insecure) { val hostname = server!!.hostname
"http://$hostname" if (server.insecure) {
"http://$hostname"
} else {
"https://$hostname"
}
} else { } else {
"https://$hostname" "http://$currentServer"
} }
} else { saveCurrentServerRepository.save(currentServer)
"http://$currentServer"
} }
saveCurrentServerRepository.save(currentServer)
} }
private fun migrateInternalTokens() { private fun migrateInternalTokens() {
......
...@@ -54,7 +54,7 @@ class TwoFAPresenter @Inject constructor(private val view: TwoFAView, ...@@ -54,7 +54,7 @@ class TwoFAPresenter @Inject constructor(private val view: TwoFAView,
client.login(usernameOrEmail, password, twoFactorAuthenticationCode) client.login(usernameOrEmail, password, twoFactorAuthenticationCode)
val me = client.me() val me = client.me()
saveAccount(me) saveAccount(me)
tokenRepository.save(token) tokenRepository.save(server, token)
registerPushToken() registerPushToken()
navigator.toChatList() navigator.toChatList()
} catch (exception: RocketChatException) { } catch (exception: RocketChatException) {
......
...@@ -26,6 +26,8 @@ class AuthenticationActivity : AppCompatActivity(), HasSupportFragmentInjector { ...@@ -26,6 +26,8 @@ class AuthenticationActivity : AppCompatActivity(), HasSupportFragmentInjector {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
AndroidInjection.inject(this) AndroidInjection.inject(this)
setContentView(R.layout.activity_authentication)
setTheme(R.style.AuthenticationTheme)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
launch(UI + job) { launch(UI + job) {
...@@ -48,11 +50,6 @@ class AuthenticationActivity : AppCompatActivity(), HasSupportFragmentInjector { ...@@ -48,11 +50,6 @@ class AuthenticationActivity : AppCompatActivity(), HasSupportFragmentInjector {
} }
fun showServerInput(savedInstanceState: Bundle?) { fun showServerInput(savedInstanceState: Bundle?) {
setContentView(R.layout.activity_authentication)
setTheme(R.style.AuthenticationTheme)
super.onCreate(savedInstanceState)
addFragment("ServerFragment", R.id.fragment_container) { addFragment("ServerFragment", R.id.fragment_container) {
ServerFragment.newInstance() ServerFragment.newInstance()
} }
......
...@@ -402,7 +402,7 @@ class ChatRoomPresenter @Inject constructor(private val view: ChatRoomView, ...@@ -402,7 +402,7 @@ class ChatRoomPresenter @Inject constructor(private val view: ChatRoomView,
} }
} }
fun spotlight(query: String, @AutoCompleteType type: Long, filterSelfOut: Boolean = false) { fun spotlight(query: String, @AutoCompleteType type: Int, filterSelfOut: Boolean = false) {
launchUI(strategy) { launchUI(strategy) {
try { try {
val (users, rooms) = client.spotlight(query) val (users, rooms) = client.spotlight(query)
......
...@@ -9,16 +9,33 @@ import androidx.content.systemService ...@@ -9,16 +9,33 @@ import androidx.content.systemService
import chat.rocket.android.BuildConfig import chat.rocket.android.BuildConfig
import chat.rocket.android.R import chat.rocket.android.R
import chat.rocket.android.app.RocketChatDatabase import chat.rocket.android.app.RocketChatDatabase
import chat.rocket.android.authentication.infraestructure.SharedPreferencesTokenRepository
import chat.rocket.android.authentication.infraestructure.SharedPreferencesMultiServerTokenRepository import chat.rocket.android.authentication.infraestructure.SharedPreferencesMultiServerTokenRepository
import chat.rocket.android.authentication.infraestructure.SharedPreferencesTokenRepository
import chat.rocket.android.dagger.qualifier.ForFresco import chat.rocket.android.dagger.qualifier.ForFresco
import chat.rocket.android.helper.FrescoAuthInterceptor import chat.rocket.android.helper.FrescoAuthInterceptor
import chat.rocket.android.helper.MessageParser import chat.rocket.android.helper.MessageParser
import chat.rocket.android.infrastructure.LocalRepository import chat.rocket.android.infrastructure.LocalRepository
import chat.rocket.android.infrastructure.SharedPrefsLocalRepository import chat.rocket.android.infrastructure.SharedPrefsLocalRepository
import chat.rocket.android.push.GroupedPush import chat.rocket.android.push.GroupedPush
import chat.rocket.android.server.domain.* import chat.rocket.android.server.domain.AccountsRepository
import chat.rocket.android.server.infraestructure.* import chat.rocket.android.server.domain.ChatRoomsRepository
import chat.rocket.android.server.domain.CurrentServerRepository
import chat.rocket.android.server.domain.GetCurrentServerInteractor
import chat.rocket.android.server.domain.GetPermissionsInteractor
import chat.rocket.android.server.domain.MessagesRepository
import chat.rocket.android.server.domain.MultiServerTokenRepository
import chat.rocket.android.server.domain.RoomRepository
import chat.rocket.android.server.domain.SettingsRepository
import chat.rocket.android.server.domain.TokenRepository
import chat.rocket.android.server.domain.UsersRepository
import chat.rocket.android.server.infraestructure.MemoryChatRoomsRepository
import chat.rocket.android.server.infraestructure.MemoryMessagesRepository
import chat.rocket.android.server.infraestructure.MemoryRoomRepository
import chat.rocket.android.server.infraestructure.MemoryUsersRepository
import chat.rocket.android.server.infraestructure.ServerDao
import chat.rocket.android.server.infraestructure.SharedPreferencesAccountsRepository
import chat.rocket.android.server.infraestructure.SharedPreferencesSettingsRepository
import chat.rocket.android.server.infraestructure.SharedPrefsCurrentServerRepository
import chat.rocket.android.util.AppJsonAdapterFactory import chat.rocket.android.util.AppJsonAdapterFactory
import chat.rocket.android.util.TimberLogger import chat.rocket.android.util.TimberLogger
import chat.rocket.common.internal.FallbackSealedClassJsonAdapter import chat.rocket.common.internal.FallbackSealedClassJsonAdapter
......
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