mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2024-11-26 11:26:01 +03:00
Add flag to allow QR login on all servers + split flag for showing in device manager
This commit is contained in:
parent
efa70fa0ff
commit
d72371906e
5 changed files with 32 additions and 1 deletions
|
@ -95,6 +95,16 @@ class DebugFeaturesStateFactory @Inject constructor(
|
||||||
key = DebugFeatureKeys.qrCodeLoginEnabled,
|
key = DebugFeatureKeys.qrCodeLoginEnabled,
|
||||||
factory = VectorFeatures::isQrCodeLoginEnabled
|
factory = VectorFeatures::isQrCodeLoginEnabled
|
||||||
),
|
),
|
||||||
|
createBooleanFeature(
|
||||||
|
label = "Allow QR Code Login for all servers",
|
||||||
|
key = DebugFeatureKeys.allowQrCodeLoginForAllServers,
|
||||||
|
factory = VectorFeatures::allowQrCodeLoginForAllServers
|
||||||
|
),
|
||||||
|
createBooleanFeature(
|
||||||
|
label = "Show QR Code Login in Device Manager",
|
||||||
|
key = DebugFeatureKeys.allowReciprocateQrCodeLogin,
|
||||||
|
factory = VectorFeatures::allowReciprocateQrCodeLogin
|
||||||
|
),
|
||||||
createBooleanFeature(
|
createBooleanFeature(
|
||||||
label = "Enable Voice Broadcast",
|
label = "Enable Voice Broadcast",
|
||||||
key = DebugFeatureKeys.voiceBroadcastEnabled,
|
key = DebugFeatureKeys.voiceBroadcastEnabled,
|
||||||
|
|
|
@ -82,6 +82,12 @@ class DebugVectorFeatures(
|
||||||
override fun isQrCodeLoginEnabled() = read(DebugFeatureKeys.qrCodeLoginEnabled)
|
override fun isQrCodeLoginEnabled() = read(DebugFeatureKeys.qrCodeLoginEnabled)
|
||||||
?: vectorFeatures.isQrCodeLoginEnabled()
|
?: vectorFeatures.isQrCodeLoginEnabled()
|
||||||
|
|
||||||
|
override fun allowQrCodeLoginForAllServers() = read(DebugFeatureKeys.allowQrCodeLoginForAllServers)
|
||||||
|
?: vectorFeatures.allowQrCodeLoginForAllServers()
|
||||||
|
|
||||||
|
override fun allowReciprocateQrCodeLogin() = read(DebugFeatureKeys.allowReciprocateQrCodeLogin)
|
||||||
|
?: vectorFeatures.allowReciprocateQrCodeLogin()
|
||||||
|
|
||||||
override fun isVoiceBroadcastEnabled(): Boolean = read(DebugFeatureKeys.voiceBroadcastEnabled)
|
override fun isVoiceBroadcastEnabled(): Boolean = read(DebugFeatureKeys.voiceBroadcastEnabled)
|
||||||
?: vectorFeatures.isVoiceBroadcastEnabled()
|
?: vectorFeatures.isVoiceBroadcastEnabled()
|
||||||
|
|
||||||
|
@ -147,5 +153,7 @@ object DebugFeatureKeys {
|
||||||
val newAppLayoutEnabled = booleanPreferencesKey("new-app-layout-enabled")
|
val newAppLayoutEnabled = booleanPreferencesKey("new-app-layout-enabled")
|
||||||
val newDeviceManagementEnabled = booleanPreferencesKey("new-device-management-enabled")
|
val newDeviceManagementEnabled = booleanPreferencesKey("new-device-management-enabled")
|
||||||
val qrCodeLoginEnabled = booleanPreferencesKey("qr-code-login-enabled")
|
val qrCodeLoginEnabled = booleanPreferencesKey("qr-code-login-enabled")
|
||||||
|
val allowQrCodeLoginForAllServers = booleanPreferencesKey("allow-qr-code-login-for-all-servers")
|
||||||
|
val allowReciprocateQrCodeLogin = booleanPreferencesKey("allow-reciprocate-qr-code-login")
|
||||||
val voiceBroadcastEnabled = booleanPreferencesKey("voice-broadcast-enabled")
|
val voiceBroadcastEnabled = booleanPreferencesKey("voice-broadcast-enabled")
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,6 +42,8 @@ interface VectorFeatures {
|
||||||
fun isNewAppLayoutFeatureEnabled(): Boolean
|
fun isNewAppLayoutFeatureEnabled(): Boolean
|
||||||
fun isNewDeviceManagementEnabled(): Boolean
|
fun isNewDeviceManagementEnabled(): Boolean
|
||||||
fun isQrCodeLoginEnabled(): Boolean
|
fun isQrCodeLoginEnabled(): Boolean
|
||||||
|
fun allowQrCodeLoginForAllServers(): Boolean
|
||||||
|
fun allowReciprocateQrCodeLogin(): Boolean
|
||||||
fun isVoiceBroadcastEnabled(): Boolean
|
fun isVoiceBroadcastEnabled(): Boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,5 +62,7 @@ class DefaultVectorFeatures : VectorFeatures {
|
||||||
override fun isNewAppLayoutFeatureEnabled(): Boolean = true
|
override fun isNewAppLayoutFeatureEnabled(): Boolean = true
|
||||||
override fun isNewDeviceManagementEnabled(): Boolean = false
|
override fun isNewDeviceManagementEnabled(): Boolean = false
|
||||||
override fun isQrCodeLoginEnabled(): Boolean = false
|
override fun isQrCodeLoginEnabled(): Boolean = false
|
||||||
|
override fun allowQrCodeLoginForAllServers(): Boolean = false
|
||||||
|
override fun allowReciprocateQrCodeLogin(): Boolean = false
|
||||||
override fun isVoiceBroadcastEnabled(): Boolean = false
|
override fun isVoiceBroadcastEnabled(): Boolean = false
|
||||||
}
|
}
|
||||||
|
|
|
@ -124,7 +124,16 @@ class OnboardingViewModel @AssistedInject constructor(
|
||||||
canLoginWithQrCode = false
|
canLoginWithQrCode = false
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
} else if (vectorFeatures.allowQrCodeLoginForAllServers()) {
|
||||||
|
// allow for all servers
|
||||||
|
setState {
|
||||||
|
copy(
|
||||||
|
canLoginWithQrCode = true
|
||||||
|
)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// check if selected server supports MSC3882 first
|
||||||
|
// FIXME: this should be checking the selected homeserver not defaultHomeserverUrl
|
||||||
homeServerConnectionConfigFactory.create(defaultHomeserverUrl)?.let {
|
homeServerConnectionConfigFactory.create(defaultHomeserverUrl)?.let {
|
||||||
val canLoginWithQrCode = authenticationService.isQrLoginSupported(it)
|
val canLoginWithQrCode = authenticationService.isQrLoginSupported(it)
|
||||||
setState {
|
setState {
|
||||||
|
|
|
@ -158,7 +158,7 @@ class VectorSettingsDevicesFragment :
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initQrLoginView() {
|
private fun initQrLoginView() {
|
||||||
if (!vectorFeatures.isQrCodeLoginEnabled()) {
|
if (!vectorFeatures.allowReciprocateQrCodeLogin()) {
|
||||||
views.deviceListHeaderSignInWithQrCode.isVisible = false
|
views.deviceListHeaderSignInWithQrCode.isVisible = false
|
||||||
views.deviceListHeaderScanQrCodeButton.isVisible = false
|
views.deviceListHeaderScanQrCodeButton.isVisible = false
|
||||||
views.deviceListHeaderShowQrCodeButton.isVisible = false
|
views.deviceListHeaderShowQrCodeButton.isVisible = false
|
||||||
|
|
Loading…
Reference in a new issue