mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-09 13:59:48 +01:00
fix Conscrypt initialization order
SSLSocketFactoryCompat relies on SSLContext.getInstance("TLS"), which is called from componentApplication.inject(this) in NextcloudTalkApplication .onCreate() - before Conscrypt is set as the provider. This caused issues on Android 7.0 devices when connecting to Nextcloud's push notification server. The result was a handshake error, because Android 7.0's native implementation only supports TLSv1.2 and the secp256r1 group, while the server supports only secp384r1. Setting Conscrypt as a provider earlier ensures that the native implementation is not used and the connection completes successfully. Call stack: <init>:44, SSLSocketFactoryCompat (com.nextcloud.talk.utils.ssl) provideSslSocketFactoryCompat:156, RestModule (com.nextcloud.talk.dagger.modules) provideSslSocketFactoryCompat:56, RestModule_ProvideSslSocketFactoryCompatFactory (com.nextcloud.talk.dagger.modules) get:46, RestModule_ProvideSslSocketFactoryCompatFactory (com.nextcloud.talk.dagger.modules) get:14, RestModule_ProvideSslSocketFactoryCompatFactory (com.nextcloud.talk.dagger.modules) getSynchronized:54, DoubleCheck (dagger.internal) get:45, DoubleCheck (dagger.internal) get:69, RestModule_ProvideHttpClientFactory (com.nextcloud.talk.dagger.modules) get:19, RestModule_ProvideHttpClientFactory (com.nextcloud.talk.dagger.modules) getSynchronized:54, DoubleCheck (dagger.internal) get:45, DoubleCheck (dagger.internal) injectNextcloudTalkApplication:1393, DaggerNextcloudTalkApplicationComponent$NextcloudTalkApplicationComponentImpl (com.nextcloud.talk.application) inject:867, DaggerNextcloudTalkApplicationComponent$NextcloudTalkApplicationComponentImpl (com.nextcloud.talk.application) onCreate:145, NextcloudTalkApplication (com.nextcloud.talk.application) Signed-off-by: Viktor Balogh <viktor.balogh45@gmail.com>
This commit is contained in:
parent
d63f8d3fb4
commit
f0bdae1417
@ -142,14 +142,14 @@ class NextcloudTalkApplication : MultiDexApplication(), LifecycleObserver {
|
||||
buildComponent()
|
||||
DavUtils.registerCustomFactories()
|
||||
|
||||
Security.insertProviderAt(Conscrypt.newProvider(), 1)
|
||||
|
||||
componentApplication.inject(this)
|
||||
|
||||
Coil.setImageLoader(buildDefaultImageLoader())
|
||||
setAppTheme(appPreferences.theme)
|
||||
super.onCreate()
|
||||
|
||||
Security.insertProviderAt(Conscrypt.newProvider(), 1)
|
||||
|
||||
ClosedInterfaceImpl().providerInstallerInstallIfNeededAsync()
|
||||
DeviceUtils.ignoreSpecialBatteryFeatures()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user