mirror of
https://github.com/vector-im/riotX-android
synced 2025-10-05 15:52:47 +02:00
Implement Mobile Device Manager feature with 3 keys.
This commit is contained in:
@@ -26,6 +26,8 @@ import im.vector.app.core.pushers.PushParser
|
||||
import im.vector.app.core.pushers.PushersManager
|
||||
import im.vector.app.core.pushers.UnifiedPushHelper
|
||||
import im.vector.app.core.pushers.VectorPushHandler
|
||||
import im.vector.app.features.mdm.MdmData
|
||||
import im.vector.app.features.mdm.MdmService
|
||||
import im.vector.app.features.settings.VectorPreferences
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.SupervisorJob
|
||||
@@ -46,6 +48,7 @@ class VectorFirebaseMessagingService : FirebaseMessagingService() {
|
||||
@Inject lateinit var pushParser: PushParser
|
||||
@Inject lateinit var vectorPushHandler: VectorPushHandler
|
||||
@Inject lateinit var unifiedPushHelper: UnifiedPushHelper
|
||||
@Inject lateinit var mdmService: MdmService
|
||||
|
||||
private val scope = CoroutineScope(SupervisorJob())
|
||||
|
||||
@@ -53,6 +56,7 @@ class VectorFirebaseMessagingService : FirebaseMessagingService() {
|
||||
scope.cancel()
|
||||
super.onDestroy()
|
||||
}
|
||||
|
||||
override fun onNewToken(token: String) {
|
||||
Timber.tag(loggerTag.value).d("New Firebase token")
|
||||
fcmHelper.storeFcmToken(token)
|
||||
@@ -62,7 +66,13 @@ class VectorFirebaseMessagingService : FirebaseMessagingService() {
|
||||
unifiedPushHelper.isEmbeddedDistributor()
|
||||
) {
|
||||
scope.launch {
|
||||
pushersManager.enqueueRegisterPusher(token, getString(R.string.pusher_http_url))
|
||||
pushersManager.enqueueRegisterPusher(
|
||||
pushKey = token,
|
||||
gateway = mdmService.getData(
|
||||
mdmData = MdmData.DefaultPushGatewayUrl,
|
||||
defaultValue = getString(R.string.pusher_http_url),
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -20,6 +20,10 @@
|
||||
tools:ignore="UnusedAttribute"
|
||||
tools:replace="android:allowBackup">
|
||||
|
||||
<meta-data
|
||||
android:name="android.content.APP_RESTRICTIONS"
|
||||
android:resource="@xml/vector_app_restrictions" />
|
||||
|
||||
<!-- Activity alias for the launcher Activity (must be declared after the Activity it targets) -->
|
||||
<!-- exported="true" is required to launch application -->
|
||||
<activity-alias
|
||||
|
@@ -50,6 +50,9 @@ import im.vector.app.features.analytics.metrics.VectorPlugins
|
||||
import im.vector.app.features.configuration.VectorCustomEventTypesProvider
|
||||
import im.vector.app.features.invite.AutoAcceptInvites
|
||||
import im.vector.app.features.invite.CompileTimeAutoAcceptInvites
|
||||
import im.vector.app.features.mdm.DefaultMdmService
|
||||
import im.vector.app.features.mdm.MdmData
|
||||
import im.vector.app.features.mdm.MdmService
|
||||
import im.vector.app.features.navigation.DefaultNavigator
|
||||
import im.vector.app.features.navigation.Navigator
|
||||
import im.vector.app.features.pin.PinCodeStore
|
||||
@@ -145,6 +148,7 @@ import javax.inject.Singleton
|
||||
flipperProxy: FlipperProxy,
|
||||
vectorPlugins: VectorPlugins,
|
||||
vectorCustomEventTypesProvider: VectorCustomEventTypesProvider,
|
||||
mdmService: MdmService,
|
||||
): MatrixConfiguration {
|
||||
return MatrixConfiguration(
|
||||
applicationFlavor = BuildConfig.FLAVOR_DESCRIPTION,
|
||||
@@ -156,6 +160,7 @@ import javax.inject.Singleton
|
||||
metricPlugins = vectorPlugins.plugins(),
|
||||
cryptoAnalyticsPlugin = vectorPlugins.cryptoMetricPlugin,
|
||||
customEventTypesProvider = vectorCustomEventTypesProvider,
|
||||
clientPermalinkBaseUrl = mdmService.getData(MdmData.PermalinkBaseUrl),
|
||||
syncConfig = SyncConfig(
|
||||
syncFilterParams = SyncFilterParams(lazyLoadMembersForStateEvents = true, useThreadNotifications = true)
|
||||
)
|
||||
@@ -168,6 +173,11 @@ import javax.inject.Singleton
|
||||
return Matrix(context, configuration)
|
||||
}
|
||||
|
||||
@Provides
|
||||
fun providesMdmService(context: Context): MdmService {
|
||||
return DefaultMdmService(context)
|
||||
}
|
||||
|
||||
@Provides
|
||||
fun providesCurrentSession(activeSessionHolder: ActiveSessionHolder): Session {
|
||||
// TODO handle session injection better
|
||||
|
@@ -2,4 +2,8 @@
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<!-- The https://github.com/LikeTheSalad/android-stem requires a non empty strings.xml -->
|
||||
<string name="ignored_placeholder" tools:ignore="UnusedResources">ignored</string>
|
||||
|
||||
<string name="restriction_default_homeserver_url_title">Default homeserver URL</string>
|
||||
<string name="restriction_default_push_gateway_title">Default Push gateway</string>
|
||||
<string name="restriction_permalink_base_url_title">Permalink base url</string>
|
||||
</resources>
|
||||
|
18
vector-app/src/main/res/xml/vector_app_restrictions.xml
Normal file
18
vector-app/src/main/res/xml/vector_app_restrictions.xml
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<restrictions xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<restriction
|
||||
android:key="im.vector.app.serverConfigDefaultHomeserverUrlString"
|
||||
android:restrictionType="string"
|
||||
android:title="@string/restriction_default_homeserver_url_title" />
|
||||
|
||||
<restriction
|
||||
android:key="im.vector.app.serverConfigSygnalAPIUrlString"
|
||||
android:restrictionType="string"
|
||||
android:title="@string/restriction_default_push_gateway_title" />
|
||||
|
||||
<restriction
|
||||
android:key="im.vector.app.clientPermalinkBaseUrl"
|
||||
android:restrictionType="string"
|
||||
android:title="@string/restriction_permalink_base_url_title" />
|
||||
|
||||
</restrictions>
|
Reference in New Issue
Block a user