diff --git a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/DefaultPushService.kt b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/DefaultPushService.kt index 9bf4afa7ea..1d9397d9a9 100644 --- a/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/DefaultPushService.kt +++ b/libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/DefaultPushService.kt @@ -35,8 +35,7 @@ class DefaultPushService @Inject constructor( } override fun getAvailablePushProviders(): List { - // TODO Sort by priority? - return pushProviders.toList() + return pushProviders.sortedBy { it.index } } override suspend fun registerWith(matrixClient: MatrixClient, pushProvider: PushProvider, distributorName: String) { diff --git a/libraries/pushproviders/api/src/main/kotlin/io/element/android/libraries/push/providers/api/PushProvider.kt b/libraries/pushproviders/api/src/main/kotlin/io/element/android/libraries/push/providers/api/PushProvider.kt index 2b90c3d5b3..6476e4f815 100644 --- a/libraries/pushproviders/api/src/main/kotlin/io/element/android/libraries/push/providers/api/PushProvider.kt +++ b/libraries/pushproviders/api/src/main/kotlin/io/element/android/libraries/push/providers/api/PushProvider.kt @@ -22,6 +22,10 @@ import io.element.android.libraries.matrix.api.MatrixClient * This is the main API for this module */ interface PushProvider { + /** + * Allow to sort provider, from lower index to higher index + */ + val index: Int fun getDistributorNames(): List suspend fun registerWith(matrixClient: MatrixClient, distributorName: String) } diff --git a/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/push/providers/firebase/FirebasePushProvider.kt b/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/push/providers/firebase/FirebasePushProvider.kt index 855762e5ab..0e96fc4a26 100644 --- a/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/push/providers/firebase/FirebasePushProvider.kt +++ b/libraries/pushproviders/firebase/src/main/kotlin/io/element/android/libraries/push/providers/firebase/FirebasePushProvider.kt @@ -29,6 +29,7 @@ class FirebasePushProvider @Inject constructor( private val googleFcmHelper: GoogleFcmHelper, private val pusherSubscriber: PusherSubscriber, ) : PushProvider { + override val index = 0 override fun getDistributorNames(): List { // Must return an non-empty list for now diff --git a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/push/providers/unifiedpush/UnifiedPushProvider.kt b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/push/providers/unifiedpush/UnifiedPushProvider.kt index a37e9da5e2..dcf629fe98 100644 --- a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/push/providers/unifiedpush/UnifiedPushProvider.kt +++ b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/push/providers/unifiedpush/UnifiedPushProvider.kt @@ -20,7 +20,9 @@ import io.element.android.libraries.matrix.api.MatrixClient import io.element.android.libraries.push.providers.api.PushProvider import javax.inject.Inject -class UnifiedPushProvider @Inject constructor(): PushProvider { +class UnifiedPushProvider @Inject constructor() : PushProvider { + override val index = 1 + override fun getDistributorNames(): List { TODO("Not yet implemented") }