Dagger: fix no session

This commit is contained in:
ganfra 2019-06-27 19:12:46 +02:00
parent f91959ea96
commit f18bc9bd00
3 changed files with 10 additions and 4 deletions

View File

@ -15,8 +15,13 @@
*/ */
package im.vector.matrix.android.internal.session.pushers package im.vector.matrix.android.internal.session.pushers


import android.content.Context
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.work.* import androidx.work.BackoffPolicy
import androidx.work.Constraints
import androidx.work.NetworkType
import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.WorkManager
import com.zhuinden.monarchy.Monarchy import com.zhuinden.monarchy.Monarchy
import im.vector.matrix.android.api.MatrixCallback import im.vector.matrix.android.api.MatrixCallback
import im.vector.matrix.android.api.auth.data.SessionParams import im.vector.matrix.android.api.auth.data.SessionParams
@ -37,6 +42,7 @@ import javax.inject.Inject




internal class DefaultPusherService @Inject constructor( internal class DefaultPusherService @Inject constructor(
private val context: Context,
private val monarchy: Monarchy, private val monarchy: Monarchy,
private val sessionParam: SessionParams, private val sessionParam: SessionParams,
private val getPusherTask: GetPushersTask, private val getPusherTask: GetPushersTask,
@ -93,7 +99,7 @@ internal class DefaultPusherService @Inject constructor(
.setInputData(WorkerParamsFactory.toData(params)) .setInputData(WorkerParamsFactory.toData(params))
.setBackoffCriteria(BackoffPolicy.LINEAR, 10_000L, TimeUnit.MILLISECONDS) .setBackoffCriteria(BackoffPolicy.LINEAR, 10_000L, TimeUnit.MILLISECONDS)
.build() .build()
WorkManager.getInstance().enqueue(request) WorkManager.getInstance(context).enqueue(request)
return request.id return request.id
} }



View File

@ -105,7 +105,7 @@ class VectorFirebaseMessagingService : FirebaseMessagingService() {
if (refreshedToken == null) { if (refreshedToken == null) {
Timber.w("onNewToken:received null token") Timber.w("onNewToken:received null token")
} else { } else {
if (PreferencesManager.areNotificationEnabledForDevice(applicationContext)) { if (PreferencesManager.areNotificationEnabledForDevice(applicationContext) && activeSessionHolder.hasActiveSession()) {
pusherManager.registerPusherWithFcmKey(refreshedToken) pusherManager.registerPusherWithFcmKey(refreshedToken)
} }
} }

View File

@ -36,7 +36,7 @@ class PushersManager @Inject constructor(
} }


fun unregisterPusher(pushKey: String, callback: MatrixCallback<Unit>) { fun unregisterPusher(pushKey: String, callback: MatrixCallback<Unit>) {
val currentSession = activeSessionHolder.getActiveSession() val currentSession = activeSessionHolder.getSafeActiveSession() ?: return
currentSession.removeHttpPusher(pushKey, stringProvider.getString(R.string.pusher_app_id), callback) currentSession.removeHttpPusher(pushKey, stringProvider.getString(R.string.pusher_app_id), callback)
} }
} }