From 2b139c17a25c326a4541f36ad3ba8334713ce846 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Thu, 4 Jan 2024 16:32:55 +0200 Subject: [PATCH] Set server domains as list in config --- app/src/main/java/org/futo/circles/App.kt | 8 ++++++-- app/src/main/res/values/strings.xml | 14 ++++++++++---- .../auth/feature/log_in/LogInFragment.kt | 8 ++++---- .../circles/core/base/CirclesAppConfig.kt | 19 +++++-------------- .../org/futo/circles/core/base/Constants.kt | 7 ++----- 5 files changed, 27 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/org/futo/circles/App.kt b/app/src/main/java/org/futo/circles/App.kt index 1baa30e00..71156c948 100644 --- a/app/src/main/java/org/futo/circles/App.kt +++ b/app/src/main/java/org/futo/circles/App.kt @@ -46,8 +46,12 @@ class App : Application() { BuildConfig.FLAVOR ) .appName(getString(R.string.app_name)) - .euDomain(getString(if (BuildConfig.DEBUG) R.string.debug_eu_domain else R.string.release_eu_domain)) - .usDomain(getString(if (BuildConfig.DEBUG) R.string.debug_us_domain else R.string.release_us_domain)) + .serverDomains( + applicationContext.resources.getStringArray( + if (BuildConfig.DEBUG) R.array.debug_domains + else R.array.release_domains + ).toList() + ) .init() MatrixSessionProvider.initSession( diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 265530ea7..068dd8856 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,8 +1,4 @@ <resources> - <string name="debug_eu_domain" translatable="false">matrix.org</string> - <string name="debug_us_domain" translatable="false">nl.circles-dev.net</string> - <string name="release_eu_domain" translatable="false">eu.circu.li</string> - <string name="release_us_domain" translatable="false">circu.li</string> <string name="app_name">Circles</string> <string name="futo">FUTO</string> <string name="circles">Circles</string> @@ -221,6 +217,16 @@ <string name="invite_to_connect">Invite to connect</string> <string name="empty_media_storage_info">0 MB used</string> + <string-array name="debug_domains"> + <item>nl.circles-dev.net</item> + <item>matrix.org</item> + </string-array> + + <string-array name="release_domains"> + <item>circu.li</item> + <item>eu.circu.li</item> + </string-array> + <string-array name="report_categories"> <item>@string/crude_language</item> <item>@string/copyright_violation</item> diff --git a/auth/src/main/java/org/futo/circles/auth/feature/log_in/LogInFragment.kt b/auth/src/main/java/org/futo/circles/auth/feature/log_in/LogInFragment.kt index ec5d06f5d..e1ea34e4a 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/log_in/LogInFragment.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/log_in/LogInFragment.kt @@ -39,7 +39,7 @@ class LogInFragment : Fragment(R.layout.fragment_log_in), HasLoadingState { ArrayAdapter( requireContext(), android.R.layout.simple_dropdown_item_1line, - listOf(CirclesAppConfig.usServerDomain, CirclesAppConfig.euServerDomain) + CirclesAppConfig.serverDomains ) } @@ -71,11 +71,11 @@ class LogInFragment : Fragment(R.layout.fragment_log_in), HasLoadingState { setAdapter(autocompleteAdapter) onFocusChangeListener = OnFocusChangeListener { _, hasFocus -> tilDomain.hint = - if (!hasFocus && tvDomain.text.isEmpty()) CirclesAppConfig.usServerDomain + if (!hasFocus && tvDomain.text.isEmpty()) CirclesAppConfig.serverDomains.first() else getString(R.string.domain) } } - tilDomain.hint = CirclesAppConfig.usServerDomain + tilDomain.hint = CirclesAppConfig.serverDomains.first() binding.rvSwitchUsers.apply { adapter = switchUsersAdapter addItemDecoration( @@ -121,5 +121,5 @@ class LogInFragment : Fragment(R.layout.fragment_log_in), HasLoadingState { } private fun getDomain() = binding.tvDomain.text.toString().takeIf { it.isNotEmpty() } - ?: CirclesAppConfig.usServerDomain + ?: CirclesAppConfig.serverDomains.first() } \ No newline at end of file diff --git a/core/src/main/java/org/futo/circles/core/base/CirclesAppConfig.kt b/core/src/main/java/org/futo/circles/core/base/CirclesAppConfig.kt index e5337064d..feb74f9e4 100644 --- a/core/src/main/java/org/futo/circles/core/base/CirclesAppConfig.kt +++ b/core/src/main/java/org/futo/circles/core/base/CirclesAppConfig.kt @@ -14,10 +14,7 @@ object CirclesAppConfig { var appName = "" private set - var usServerDomain = "" - private set - - var euServerDomain = "" + var serverDomains = emptyList<String>() private set var isMediaBackupEnabled = false @@ -32,9 +29,8 @@ object CirclesAppConfig { private var version: String? = null, private var flavour: String? = null, private var appName: String? = null, - private var usDomain: String? = null, + private var serverDomains: List<String> = emptyList(), private var euDomain: String? = null, - private var subscriptionEnabled: Boolean = false, private var mediaBackupEnabled: Boolean = false, private var rageshakeEnabled: Boolean = false ) { @@ -48,9 +44,7 @@ object CirclesAppConfig { fun appName(appName: String) = apply { this.appName = appName } - fun usDomain(domain: String) = apply { this.usDomain = domain } - - fun euDomain(domain: String) = apply { this.euDomain = domain } + fun serverDomains(domains: List<String>) = apply { this.serverDomains = domains } fun isMediaBackupEnabled(isEnabled: Boolean) = apply { this.mediaBackupEnabled = isEnabled } @@ -70,11 +64,8 @@ object CirclesAppConfig { CirclesAppConfig.appName = appName?.takeIf { it.isNotEmpty() } ?: throw IllegalArgumentException("appName is empty $appName") - usServerDomain = usDomain?.takeIf { it.isNotEmpty() } - ?: throw IllegalArgumentException("Illegal US server domain $usDomain") - - euServerDomain = euDomain?.takeIf { it.isNotEmpty() } - ?: throw IllegalArgumentException("Illegal EU server domain $euDomain") + CirclesAppConfig.serverDomains = serverDomains.takeIf { it.isNotEmpty() } + ?: throw IllegalArgumentException("Illegal empty server domains") isMediaBackupEnabled = mediaBackupEnabled isRageshakeEnabled = rageshakeEnabled diff --git a/core/src/main/java/org/futo/circles/core/base/Constants.kt b/core/src/main/java/org/futo/circles/core/base/Constants.kt index da27a0b25..8ead7f0d1 100644 --- a/core/src/main/java/org/futo/circles/core/base/Constants.kt +++ b/core/src/main/java/org/futo/circles/core/base/Constants.kt @@ -1,6 +1,5 @@ package org.futo.circles.core.base -import org.futo.circles.core.BuildConfig import org.futo.circles.core.provider.MatrixSessionProvider const val FILE_PROVIDER_AUTHORITY_EXTENSION = ".provider" @@ -8,9 +7,7 @@ const val MediaCaptionFieldKey = "caption" const val READ_ONLY_ROLE = -10 fun getCirclesDomain(): String { - if (BuildConfig.DEBUG) return CirclesAppConfig.usServerDomain val homeServerUrl = MatrixSessionProvider.currentSession?.sessionParams?.homeServerUrl ?: "" - if (homeServerUrl.contains(CirclesAppConfig.usServerDomain)) return CirclesAppConfig.usServerDomain - if (homeServerUrl.contains(CirclesAppConfig.euServerDomain)) return CirclesAppConfig.euServerDomain - return CirclesAppConfig.usServerDomain + return CirclesAppConfig.serverDomains.firstOrNull { homeServerUrl.contains(it) } + ?: CirclesAppConfig.serverDomains.first() } -- GitLab