diff --git a/vector/src/main/java/im/vector/app/core/pushers/UnifiedPushHelper.kt b/vector/src/main/java/im/vector/app/core/pushers/UnifiedPushHelper.kt index 5ceeaf9430..d4af90ca0a 100644 --- a/vector/src/main/java/im/vector/app/core/pushers/UnifiedPushHelper.kt +++ b/vector/src/main/java/im/vector/app/core/pushers/UnifiedPushHelper.kt @@ -19,6 +19,7 @@ package im.vector.app.core.pushers import android.content.Context import android.content.pm.PackageManager import androidx.core.content.edit +import androidx.fragment.app.FragmentActivity import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.squareup.moshi.JsonClass import im.vector.app.BuildConfig @@ -91,18 +92,24 @@ class UnifiedPushHelper @Inject constructor( } } - fun register(onDoneRunnable: Runnable? = null) { + fun register( + activity: FragmentActivity, + onDoneRunnable: Runnable? = null, + ) { gRegister( + activity, onDoneRunnable = onDoneRunnable ) } fun reRegister( + activity: FragmentActivity, pushersManager: PushersManager, vectorPreferences: VectorPreferences, onDoneRunnable: Runnable? = null ) { gRegister( + activity, force = true, pushersManager = pushersManager, vectorPreferences = vectorPreferences, @@ -111,6 +118,7 @@ class UnifiedPushHelper @Inject constructor( } private fun gRegister( + activity: FragmentActivity, force: Boolean = false, pushersManager: PushersManager? = null, vectorPreferences: VectorPreferences? = null, @@ -163,7 +171,7 @@ class UnifiedPushHelper @Inject constructor( } }.toTypedArray() - MaterialAlertDialogBuilder(context) + MaterialAlertDialogBuilder(activity) .setTitle(stringProvider.getString(R.string.unifiedpush_getdistributors_dialog_title)) .setItems(distributorsNameArray) { _, which -> val distributor = distributorsArray[which] diff --git a/vector/src/main/java/im/vector/app/features/home/HomeActivity.kt b/vector/src/main/java/im/vector/app/features/home/HomeActivity.kt index dd99f6afe7..26bb72b26f 100644 --- a/vector/src/main/java/im/vector/app/features/home/HomeActivity.kt +++ b/vector/src/main/java/im/vector/app/features/home/HomeActivity.kt @@ -189,7 +189,7 @@ class HomeActivity : super.onCreate(savedInstanceState) analyticsScreenName = MobileScreen.ScreenName.Home supportFragmentManager.registerFragmentLifecycleCallbacks(fragmentLifecycleCallbacks, false) - unifiedPushHelper.register { + unifiedPushHelper.register(this) { if (unifiedPushHelper.isEmbeddedDistributor()) { FcmHelper.ensureFcmTokenIsRetrieved( this, diff --git a/vector/src/main/java/im/vector/app/features/settings/notifications/VectorSettingsNotificationPreferenceFragment.kt b/vector/src/main/java/im/vector/app/features/settings/notifications/VectorSettingsNotificationPreferenceFragment.kt index 27b2b727a9..0dcb0f37bc 100644 --- a/vector/src/main/java/im/vector/app/features/settings/notifications/VectorSettingsNotificationPreferenceFragment.kt +++ b/vector/src/main/java/im/vector/app/features/settings/notifications/VectorSettingsNotificationPreferenceFragment.kt @@ -100,7 +100,7 @@ class VectorSettingsNotificationPreferenceFragment @Inject constructor( findPreference(VectorPreferences.SETTINGS_ENABLE_THIS_DEVICE_PREFERENCE_KEY)?.let { it.setTransactionalSwitchChangeListener(lifecycleScope) { isChecked -> if (isChecked) { - unifiedPushHelper.register() + unifiedPushHelper.register(requireActivity()) } else { unifiedPushHelper.unregister( pushersManager, @@ -153,6 +153,7 @@ class VectorSettingsNotificationPreferenceFragment @Inject constructor( if (BuildConfig.ALLOW_EXTERNAL_UNIFIEDPUSH_DISTRIB) { it.onPreferenceClickListener = Preference.OnPreferenceClickListener { unifiedPushHelper.reRegister( + requireActivity(), pushersManager, vectorPreferences ) { diff --git a/vector/src/main/java/im/vector/app/features/settings/troubleshoot/TestEndpointAsTokenRegistration.kt b/vector/src/main/java/im/vector/app/features/settings/troubleshoot/TestEndpointAsTokenRegistration.kt index 9df4ca5298..c7c997ee82 100644 --- a/vector/src/main/java/im/vector/app/features/settings/troubleshoot/TestEndpointAsTokenRegistration.kt +++ b/vector/src/main/java/im/vector/app/features/settings/troubleshoot/TestEndpointAsTokenRegistration.kt @@ -61,6 +61,7 @@ class TestEndpointAsTokenRegistration @Inject constructor( quickFix = object : TroubleshootQuickFix(R.string.settings_troubleshoot_test_endpoint_registration_quick_fix) { override fun doFix() { unifiedPushHelper.reRegister( + context, pushersManager, vectorPreferences )