VectorPreferences can be injected.

This commit is contained in:
Benoit Marty 2022-06-01 16:33:49 +02:00 committed by Benoit Marty
parent ad8cb22863
commit ff6aa1147c
3 changed files with 7 additions and 19 deletions

View File

@ -41,6 +41,7 @@ import javax.inject.Inject
class UnifiedPushHelper @Inject constructor( class UnifiedPushHelper @Inject constructor(
private val context: Context, private val context: Context,
private val stringProvider: StringProvider, private val stringProvider: StringProvider,
private val vectorPreferences: VectorPreferences,
private val matrix: Matrix, private val matrix: Matrix,
) { ) {
companion object { companion object {
@ -105,14 +106,12 @@ class UnifiedPushHelper @Inject constructor(
fun reRegister( fun reRegister(
activity: FragmentActivity, activity: FragmentActivity,
pushersManager: PushersManager, pushersManager: PushersManager,
vectorPreferences: VectorPreferences,
onDoneRunnable: Runnable? = null onDoneRunnable: Runnable? = null
) { ) {
gRegister( gRegister(
activity, activity,
force = true, force = true,
pushersManager = pushersManager, pushersManager = pushersManager,
vectorPreferences = vectorPreferences,
onDoneRunnable = onDoneRunnable onDoneRunnable = onDoneRunnable
) )
} }
@ -121,7 +120,6 @@ class UnifiedPushHelper @Inject constructor(
activity: FragmentActivity, activity: FragmentActivity,
force: Boolean = false, force: Boolean = false,
pushersManager: PushersManager? = null, pushersManager: PushersManager? = null,
vectorPreferences: VectorPreferences? = null,
onDoneRunnable: Runnable? = null onDoneRunnable: Runnable? = null
) { ) {
if (!BuildConfig.ALLOW_EXTERNAL_UNIFIEDPUSH_DISTRIB) { if (!BuildConfig.ALLOW_EXTERNAL_UNIFIEDPUSH_DISTRIB) {
@ -132,7 +130,7 @@ class UnifiedPushHelper @Inject constructor(
} }
if (force) { if (force) {
// Un-register first // Un-register first
unregister(pushersManager, vectorPreferences) unregister(pushersManager)
} }
if (up.getDistributor(context).isNotEmpty()) { if (up.getDistributor(context).isNotEmpty()) {
up.registerApp(context) up.registerApp(context)
@ -186,12 +184,9 @@ class UnifiedPushHelper @Inject constructor(
} }
} }
fun unregister( fun unregister(pushersManager: PushersManager? = null) {
pushersManager: PushersManager? = null,
vectorPreferences: VectorPreferences? = null
) {
val mode = BackgroundSyncMode.FDROID_BACKGROUND_SYNC_MODE_FOR_REALTIME val mode = BackgroundSyncMode.FDROID_BACKGROUND_SYNC_MODE_FOR_REALTIME
vectorPreferences?.setFdroidSyncBackgroundMode(mode) vectorPreferences.setFdroidSyncBackgroundMode(mode)
runBlocking { runBlocking {
try { try {
pushersManager?.unregisterPusher(getEndpointOrToken().orEmpty()) pushersManager?.unregisterPusher(getEndpointOrToken().orEmpty())

View File

@ -102,10 +102,7 @@ class VectorSettingsNotificationPreferenceFragment @Inject constructor(
if (isChecked) { if (isChecked) {
unifiedPushHelper.register(requireActivity()) unifiedPushHelper.register(requireActivity())
} else { } else {
unifiedPushHelper.unregister( unifiedPushHelper.unregister(pushersManager)
pushersManager,
vectorPreferences
)
session.pushersService().refreshPushers() session.pushersService().refreshPushers()
} }
} }
@ -154,8 +151,7 @@ class VectorSettingsNotificationPreferenceFragment @Inject constructor(
it.onPreferenceClickListener = Preference.OnPreferenceClickListener { it.onPreferenceClickListener = Preference.OnPreferenceClickListener {
unifiedPushHelper.reRegister( unifiedPushHelper.reRegister(
requireActivity(), requireActivity(),
pushersManager, pushersManager
vectorPreferences
) { ) {
session.pushersService().refreshPushers() session.pushersService().refreshPushers()
refreshBackgroundSyncPrefs() refreshBackgroundSyncPrefs()

View File

@ -27,7 +27,6 @@ import im.vector.app.core.di.ActiveSessionHolder
import im.vector.app.core.pushers.PushersManager import im.vector.app.core.pushers.PushersManager
import im.vector.app.core.pushers.UnifiedPushHelper import im.vector.app.core.pushers.UnifiedPushHelper
import im.vector.app.core.resources.StringProvider import im.vector.app.core.resources.StringProvider
import im.vector.app.features.settings.VectorPreferences
import org.matrix.android.sdk.api.session.pushers.PusherState import org.matrix.android.sdk.api.session.pushers.PusherState
import javax.inject.Inject import javax.inject.Inject
@ -35,7 +34,6 @@ class TestEndpointAsTokenRegistration @Inject constructor(
private val context: FragmentActivity, private val context: FragmentActivity,
private val stringProvider: StringProvider, private val stringProvider: StringProvider,
private val pushersManager: PushersManager, private val pushersManager: PushersManager,
private val vectorPreferences: VectorPreferences,
private val activeSessionHolder: ActiveSessionHolder, private val activeSessionHolder: ActiveSessionHolder,
private val unifiedPushHelper: UnifiedPushHelper, private val unifiedPushHelper: UnifiedPushHelper,
) : TroubleshootTest(R.string.settings_troubleshoot_test_endpoint_registration_title) { ) : TroubleshootTest(R.string.settings_troubleshoot_test_endpoint_registration_title) {
@ -62,8 +60,7 @@ class TestEndpointAsTokenRegistration @Inject constructor(
override fun doFix() { override fun doFix() {
unifiedPushHelper.reRegister( unifiedPushHelper.reRegister(
context, context,
pushersManager, pushersManager
vectorPreferences
) )
val workId = pushersManager.enqueueRegisterPusherWithFcmKey(endpoint) val workId = pushersManager.enqueueRegisterPusherWithFcmKey(endpoint)
WorkManager.getInstance(context).getWorkInfoByIdLiveData(workId).observe(context, Observer { workInfo -> WorkManager.getInstance(context).getWorkInfoByIdLiveData(workId).observe(context, Observer { workInfo ->