Change BuildConfig field to a VectorFeature.
This commit is contained in:
parent
80d42f0963
commit
18b49068c1
@ -165,10 +165,6 @@ android {
|
|||||||
buildConfigField "Boolean", "enableLocationSharing", "true"
|
buildConfigField "Boolean", "enableLocationSharing", "true"
|
||||||
buildConfigField "String", "mapTilerKey", "\"fU3vlMsMn4Jb6dnEIFsx\""
|
buildConfigField "String", "mapTilerKey", "\"fU3vlMsMn4Jb6dnEIFsx\""
|
||||||
|
|
||||||
// Set to false to prevent usage of UnifiedPush. For Gplay variant it means that only FCM will be used,
|
|
||||||
// And for F-Droid variant, it means that only background polling will be available to the user.
|
|
||||||
buildConfigField "boolean", "ALLOW_EXTERNAL_UNIFIEDPUSH_DISTRIB", "true"
|
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
|
|
||||||
// Keep abiFilter for the universalApk
|
// Keep abiFilter for the universalApk
|
||||||
|
@ -65,6 +65,11 @@ class DebugFeaturesStateFactory @Inject constructor(
|
|||||||
key = DebugFeatureKeys.onboardingCombinedLogin,
|
key = DebugFeatureKeys.onboardingCombinedLogin,
|
||||||
factory = VectorFeatures::isOnboardingCombinedLoginEnabled
|
factory = VectorFeatures::isOnboardingCombinedLoginEnabled
|
||||||
),
|
),
|
||||||
|
createBooleanFeature(
|
||||||
|
label = "Allow external UnifiedPush distributors",
|
||||||
|
key = DebugFeatureKeys.allowExternalUnifiedPushDistributors,
|
||||||
|
factory = VectorFeatures::allowExternalUnifiedPushDistributors
|
||||||
|
),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -60,6 +60,9 @@ class DebugVectorFeatures(
|
|||||||
override fun isOnboardingCombinedLoginEnabled(): Boolean = read(DebugFeatureKeys.onboardingCombinedLogin)
|
override fun isOnboardingCombinedLoginEnabled(): Boolean = read(DebugFeatureKeys.onboardingCombinedLogin)
|
||||||
?: vectorFeatures.isOnboardingCombinedLoginEnabled()
|
?: vectorFeatures.isOnboardingCombinedLoginEnabled()
|
||||||
|
|
||||||
|
override fun allowExternalUnifiedPushDistributors(): Boolean = read(DebugFeatureKeys.allowExternalUnifiedPushDistributors)
|
||||||
|
?: vectorFeatures.allowExternalUnifiedPushDistributors()
|
||||||
|
|
||||||
override fun isScreenSharingEnabled(): Boolean = read(DebugFeatureKeys.screenSharing)
|
override fun isScreenSharingEnabled(): Boolean = read(DebugFeatureKeys.screenSharing)
|
||||||
?: vectorFeatures.isScreenSharingEnabled()
|
?: vectorFeatures.isScreenSharingEnabled()
|
||||||
|
|
||||||
@ -117,6 +120,7 @@ object DebugFeatureKeys {
|
|||||||
val onboardingPersonalize = booleanPreferencesKey("onboarding-personalize")
|
val onboardingPersonalize = booleanPreferencesKey("onboarding-personalize")
|
||||||
val onboardingCombinedRegister = booleanPreferencesKey("onboarding-combined-register")
|
val onboardingCombinedRegister = booleanPreferencesKey("onboarding-combined-register")
|
||||||
val onboardingCombinedLogin = booleanPreferencesKey("onboarding-combined-login")
|
val onboardingCombinedLogin = booleanPreferencesKey("onboarding-combined-login")
|
||||||
|
val allowExternalUnifiedPushDistributors = booleanPreferencesKey("allow-external-unified-push-distributors")
|
||||||
val liveLocationSharing = booleanPreferencesKey("live-location-sharing")
|
val liveLocationSharing = booleanPreferencesKey("live-location-sharing")
|
||||||
val screenSharing = booleanPreferencesKey("screen-sharing")
|
val screenSharing = booleanPreferencesKey("screen-sharing")
|
||||||
}
|
}
|
||||||
|
@ -16,11 +16,11 @@
|
|||||||
package im.vector.app.push.fcm
|
package im.vector.app.push.fcm
|
||||||
|
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import im.vector.app.BuildConfig
|
|
||||||
import im.vector.app.core.pushers.UnifiedPushHelper
|
import im.vector.app.core.pushers.UnifiedPushHelper
|
||||||
import im.vector.app.fdroid.features.settings.troubleshoot.TestAutoStartBoot
|
import im.vector.app.fdroid.features.settings.troubleshoot.TestAutoStartBoot
|
||||||
import im.vector.app.fdroid.features.settings.troubleshoot.TestBackgroundRestrictions
|
import im.vector.app.fdroid.features.settings.troubleshoot.TestBackgroundRestrictions
|
||||||
import im.vector.app.fdroid.features.settings.troubleshoot.TestBatteryOptimization
|
import im.vector.app.fdroid.features.settings.troubleshoot.TestBatteryOptimization
|
||||||
|
import im.vector.app.features.VectorFeatures
|
||||||
import im.vector.app.features.settings.troubleshoot.NotificationTroubleshootTestManager
|
import im.vector.app.features.settings.troubleshoot.NotificationTroubleshootTestManager
|
||||||
import im.vector.app.features.settings.troubleshoot.TestAccountSettings
|
import im.vector.app.features.settings.troubleshoot.TestAccountSettings
|
||||||
import im.vector.app.features.settings.troubleshoot.TestAvailableUnifiedPushDistributors
|
import im.vector.app.features.settings.troubleshoot.TestAvailableUnifiedPushDistributors
|
||||||
@ -50,7 +50,8 @@ class NotificationTroubleshootTestManagerFactory @Inject constructor(
|
|||||||
private val testAutoStartBoot: TestAutoStartBoot,
|
private val testAutoStartBoot: TestAutoStartBoot,
|
||||||
private val testBackgroundRestrictions: TestBackgroundRestrictions,
|
private val testBackgroundRestrictions: TestBackgroundRestrictions,
|
||||||
private val testBatteryOptimization: TestBatteryOptimization,
|
private val testBatteryOptimization: TestBatteryOptimization,
|
||||||
private val testNotification: TestNotification
|
private val testNotification: TestNotification,
|
||||||
|
private val vectorFeatures: VectorFeatures,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
fun create(fragment: Fragment): NotificationTroubleshootTestManager {
|
fun create(fragment: Fragment): NotificationTroubleshootTestManager {
|
||||||
@ -59,7 +60,7 @@ class NotificationTroubleshootTestManagerFactory @Inject constructor(
|
|||||||
mgr.addTest(testAccountSettings)
|
mgr.addTest(testAccountSettings)
|
||||||
mgr.addTest(testDeviceSettings)
|
mgr.addTest(testDeviceSettings)
|
||||||
mgr.addTest(testPushRulesSettings)
|
mgr.addTest(testPushRulesSettings)
|
||||||
if (BuildConfig.ALLOW_EXTERNAL_UNIFIEDPUSH_DISTRIB) {
|
if (vectorFeatures.allowExternalUnifiedPushDistributors()) {
|
||||||
mgr.addTest(testAvailableUnifiedPushDistributors)
|
mgr.addTest(testAvailableUnifiedPushDistributors)
|
||||||
mgr.addTest(testCurrentUnifiedPushDistributor)
|
mgr.addTest(testCurrentUnifiedPushDistributor)
|
||||||
}
|
}
|
||||||
|
@ -16,8 +16,8 @@
|
|||||||
package im.vector.app.push.fcm
|
package im.vector.app.push.fcm
|
||||||
|
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import im.vector.app.BuildConfig
|
|
||||||
import im.vector.app.core.pushers.UnifiedPushHelper
|
import im.vector.app.core.pushers.UnifiedPushHelper
|
||||||
|
import im.vector.app.features.VectorFeatures
|
||||||
import im.vector.app.features.settings.troubleshoot.NotificationTroubleshootTestManager
|
import im.vector.app.features.settings.troubleshoot.NotificationTroubleshootTestManager
|
||||||
import im.vector.app.features.settings.troubleshoot.TestAccountSettings
|
import im.vector.app.features.settings.troubleshoot.TestAccountSettings
|
||||||
import im.vector.app.features.settings.troubleshoot.TestAvailableUnifiedPushDistributors
|
import im.vector.app.features.settings.troubleshoot.TestAvailableUnifiedPushDistributors
|
||||||
@ -50,7 +50,8 @@ class NotificationTroubleshootTestManagerFactory @Inject constructor(
|
|||||||
private val testAvailableUnifiedPushDistributors: TestAvailableUnifiedPushDistributors,
|
private val testAvailableUnifiedPushDistributors: TestAvailableUnifiedPushDistributors,
|
||||||
private val testEndpointAsTokenRegistration: TestEndpointAsTokenRegistration,
|
private val testEndpointAsTokenRegistration: TestEndpointAsTokenRegistration,
|
||||||
private val testPushFromPushGateway: TestPushFromPushGateway,
|
private val testPushFromPushGateway: TestPushFromPushGateway,
|
||||||
private val testNotification: TestNotification
|
private val testNotification: TestNotification,
|
||||||
|
private val vectorFeatures: VectorFeatures,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
fun create(fragment: Fragment): NotificationTroubleshootTestManager {
|
fun create(fragment: Fragment): NotificationTroubleshootTestManager {
|
||||||
@ -59,7 +60,7 @@ class NotificationTroubleshootTestManagerFactory @Inject constructor(
|
|||||||
mgr.addTest(testAccountSettings)
|
mgr.addTest(testAccountSettings)
|
||||||
mgr.addTest(testDeviceSettings)
|
mgr.addTest(testDeviceSettings)
|
||||||
mgr.addTest(testPushRulesSettings)
|
mgr.addTest(testPushRulesSettings)
|
||||||
if (BuildConfig.ALLOW_EXTERNAL_UNIFIEDPUSH_DISTRIB) {
|
if (vectorFeatures.allowExternalUnifiedPushDistributors()) {
|
||||||
mgr.addTest(testAvailableUnifiedPushDistributors)
|
mgr.addTest(testAvailableUnifiedPushDistributors)
|
||||||
mgr.addTest(testCurrentUnifiedPushDistributor)
|
mgr.addTest(testCurrentUnifiedPushDistributor)
|
||||||
}
|
}
|
||||||
|
@ -22,9 +22,9 @@ import androidx.fragment.app.FragmentActivity
|
|||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import com.squareup.moshi.Json
|
import com.squareup.moshi.Json
|
||||||
import com.squareup.moshi.JsonClass
|
import com.squareup.moshi.JsonClass
|
||||||
import im.vector.app.BuildConfig
|
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.resources.StringProvider
|
import im.vector.app.core.resources.StringProvider
|
||||||
|
import im.vector.app.features.VectorFeatures
|
||||||
import im.vector.app.features.settings.BackgroundSyncMode
|
import im.vector.app.features.settings.BackgroundSyncMode
|
||||||
import im.vector.app.features.settings.VectorPreferences
|
import im.vector.app.features.settings.VectorPreferences
|
||||||
import im.vector.app.push.fcm.FcmHelper
|
import im.vector.app.push.fcm.FcmHelper
|
||||||
@ -43,6 +43,7 @@ class UnifiedPushHelper @Inject constructor(
|
|||||||
private val stringProvider: StringProvider,
|
private val stringProvider: StringProvider,
|
||||||
private val vectorPreferences: VectorPreferences,
|
private val vectorPreferences: VectorPreferences,
|
||||||
private val matrix: Matrix,
|
private val matrix: Matrix,
|
||||||
|
private val vectorFeatures: VectorFeatures,
|
||||||
) {
|
) {
|
||||||
private val up = UnifiedPush
|
private val up = UnifiedPush
|
||||||
|
|
||||||
@ -75,7 +76,7 @@ class UnifiedPushHelper @Inject constructor(
|
|||||||
pushersManager: PushersManager? = null,
|
pushersManager: PushersManager? = null,
|
||||||
onDoneRunnable: Runnable? = null
|
onDoneRunnable: Runnable? = null
|
||||||
) {
|
) {
|
||||||
if (!BuildConfig.ALLOW_EXTERNAL_UNIFIEDPUSH_DISTRIB) {
|
if (!vectorFeatures.allowExternalUnifiedPushDistributors()) {
|
||||||
up.saveDistributor(context, context.packageName)
|
up.saveDistributor(context, context.packageName)
|
||||||
up.registerApp(context)
|
up.registerApp(context)
|
||||||
onDoneRunnable?.run()
|
onDoneRunnable?.run()
|
||||||
|
@ -27,6 +27,7 @@ interface VectorFeatures {
|
|||||||
fun isOnboardingPersonalizeEnabled(): Boolean
|
fun isOnboardingPersonalizeEnabled(): Boolean
|
||||||
fun isOnboardingCombinedRegisterEnabled(): Boolean
|
fun isOnboardingCombinedRegisterEnabled(): Boolean
|
||||||
fun isOnboardingCombinedLoginEnabled(): Boolean
|
fun isOnboardingCombinedLoginEnabled(): Boolean
|
||||||
|
fun allowExternalUnifiedPushDistributors(): Boolean
|
||||||
fun isScreenSharingEnabled(): Boolean
|
fun isScreenSharingEnabled(): Boolean
|
||||||
|
|
||||||
enum class OnboardingVariant {
|
enum class OnboardingVariant {
|
||||||
@ -44,5 +45,15 @@ class DefaultVectorFeatures : VectorFeatures {
|
|||||||
override fun isOnboardingPersonalizeEnabled() = false
|
override fun isOnboardingPersonalizeEnabled() = false
|
||||||
override fun isOnboardingCombinedRegisterEnabled() = false
|
override fun isOnboardingCombinedRegisterEnabled() = false
|
||||||
override fun isOnboardingCombinedLoginEnabled() = false
|
override fun isOnboardingCombinedLoginEnabled() = false
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return false to prevent usage of external UnifiedPush distributors.
|
||||||
|
* - For Gplay variant it means that only FCM will be used;
|
||||||
|
* - For F-Droid variant, it means that only background polling will be available to the user.
|
||||||
|
* Return true to allow any available external UnifiedPush distributor to be chosen by the user.
|
||||||
|
* - For Gplay variant it means that FCM will be used by default, but user can choose another UnifiedPush distributor;
|
||||||
|
* - For F-Droid variant, it means that background polling will be used by default, but user can choose another UnifiedPush distributor.
|
||||||
|
*/
|
||||||
|
override fun allowExternalUnifiedPushDistributors(): Boolean = true
|
||||||
override fun isScreenSharingEnabled(): Boolean = true
|
override fun isScreenSharingEnabled(): Boolean = true
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,6 @@ import androidx.lifecycle.lifecycleScope
|
|||||||
import androidx.lifecycle.map
|
import androidx.lifecycle.map
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
import androidx.preference.SwitchPreference
|
import androidx.preference.SwitchPreference
|
||||||
import im.vector.app.BuildConfig
|
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.di.ActiveSessionHolder
|
import im.vector.app.core.di.ActiveSessionHolder
|
||||||
import im.vector.app.core.extensions.registerStartForActivityResult
|
import im.vector.app.core.extensions.registerStartForActivityResult
|
||||||
@ -44,6 +43,7 @@ import im.vector.app.core.services.GuardServiceStarter
|
|||||||
import im.vector.app.core.utils.combineLatest
|
import im.vector.app.core.utils.combineLatest
|
||||||
import im.vector.app.core.utils.isIgnoringBatteryOptimizations
|
import im.vector.app.core.utils.isIgnoringBatteryOptimizations
|
||||||
import im.vector.app.core.utils.requestDisablingBatteryOptimization
|
import im.vector.app.core.utils.requestDisablingBatteryOptimization
|
||||||
|
import im.vector.app.features.VectorFeatures
|
||||||
import im.vector.app.features.analytics.plan.MobileScreen
|
import im.vector.app.features.analytics.plan.MobileScreen
|
||||||
import im.vector.app.features.notifications.NotificationUtils
|
import im.vector.app.features.notifications.NotificationUtils
|
||||||
import im.vector.app.features.settings.BackgroundSyncMode
|
import im.vector.app.features.settings.BackgroundSyncMode
|
||||||
@ -67,7 +67,8 @@ class VectorSettingsNotificationPreferenceFragment @Inject constructor(
|
|||||||
private val pushersManager: PushersManager,
|
private val pushersManager: PushersManager,
|
||||||
private val activeSessionHolder: ActiveSessionHolder,
|
private val activeSessionHolder: ActiveSessionHolder,
|
||||||
private val vectorPreferences: VectorPreferences,
|
private val vectorPreferences: VectorPreferences,
|
||||||
private val guardServiceStarter: GuardServiceStarter
|
private val guardServiceStarter: GuardServiceStarter,
|
||||||
|
private val vectorFeatures: VectorFeatures,
|
||||||
) : VectorSettingsBaseFragment(),
|
) : VectorSettingsBaseFragment(),
|
||||||
BackgroundSyncModeChooserDialog.InteractionListener {
|
BackgroundSyncModeChooserDialog.InteractionListener {
|
||||||
|
|
||||||
@ -147,7 +148,7 @@ class VectorSettingsNotificationPreferenceFragment @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
findPreference<VectorPreference>(VectorPreferences.SETTINGS_UNIFIED_PUSH_RE_REGISTER_KEY)?.let {
|
findPreference<VectorPreference>(VectorPreferences.SETTINGS_UNIFIED_PUSH_RE_REGISTER_KEY)?.let {
|
||||||
if (BuildConfig.ALLOW_EXTERNAL_UNIFIEDPUSH_DISTRIB) {
|
if (vectorFeatures.allowExternalUnifiedPushDistributors()) {
|
||||||
it.summary = unifiedPushHelper.getCurrentDistributorName()
|
it.summary = unifiedPushHelper.getCurrentDistributorName()
|
||||||
it.onPreferenceClickListener = Preference.OnPreferenceClickListener {
|
it.onPreferenceClickListener = Preference.OnPreferenceClickListener {
|
||||||
unifiedPushHelper.reRegister(
|
unifiedPushHelper.reRegister(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user