Dagger: merge develop compiling now.

This commit is contained in:
ganfra
2019-06-27 15:25:01 +02:00
parent b2d2582e0f
commit 1fa7b7367a
25 changed files with 192 additions and 732 deletions

View File

@ -54,6 +54,10 @@ interface Session :
*/
val sessionParams: SessionParams
val myUserId : String
get() = sessionParams.credentials.userId
/**
* This method allow to open a session. It does start some service on the background.
*/

View File

@ -22,6 +22,7 @@ import im.vector.matrix.android.api.auth.data.SessionParams
import im.vector.matrix.android.api.session.Session
import im.vector.matrix.android.internal.crypto.CryptoModule
import im.vector.matrix.android.internal.di.MatrixComponent
import im.vector.matrix.android.internal.network.NetworkConnectivityChecker
import im.vector.matrix.android.internal.session.cache.CacheModule
import im.vector.matrix.android.internal.session.content.ContentModule
import im.vector.matrix.android.internal.session.content.UploadContentWorker
@ -37,8 +38,11 @@ import im.vector.matrix.android.internal.session.room.send.RedactEventWorker
import im.vector.matrix.android.internal.session.room.send.SendEventWorker
import im.vector.matrix.android.internal.session.signout.SignOutModule
import im.vector.matrix.android.internal.session.sync.SyncModule
import im.vector.matrix.android.internal.session.sync.SyncTask
import im.vector.matrix.android.internal.session.sync.SyncTokenStore
import im.vector.matrix.android.internal.session.sync.job.SyncWorker
import im.vector.matrix.android.internal.session.user.UserModule
import im.vector.matrix.android.internal.task.TaskExecutor
@Component(dependencies = [MatrixComponent::class],
modules = [
@ -61,6 +65,14 @@ internal interface SessionComponent {
fun session(): Session
fun syncTask(): SyncTask
fun syncTokenStore(): SyncTokenStore
fun networkConnectivityChecker(): NetworkConnectivityChecker
fun taskExecutor(): TaskExecutor
fun inject(sendEventWorker: SendEventWorker)
fun inject(sendEventWorker: SendRelationWorker)
@ -77,7 +89,6 @@ internal interface SessionComponent {
fun inject(addHttpPusherWorker: AddHttpPusherWorker)
@Component.Factory
interface Factory {
fun create(
@ -86,4 +97,6 @@ internal interface SessionComponent {
}
}
}

View File

@ -27,6 +27,7 @@ import im.vector.matrix.android.internal.database.mapper.PushRulesMapper
import im.vector.matrix.android.internal.database.model.PushRulesEntity
import im.vector.matrix.android.internal.database.model.PusherEntityFields
import im.vector.matrix.android.internal.database.query.where
import im.vector.matrix.android.internal.session.SessionScope
import im.vector.matrix.android.internal.session.pushers.GetPushRulesTask
import im.vector.matrix.android.internal.session.pushers.UpdatePushRuleEnableStatusTask
import im.vector.matrix.android.internal.task.TaskExecutor
@ -34,7 +35,7 @@ import im.vector.matrix.android.internal.task.configureWith
import timber.log.Timber
import javax.inject.Inject
@SessionScope
internal class DefaultPushRuleService @Inject constructor(
private val sessionParams: SessionParams,
private val pushRulesTask: GetPushRulesTask,
@ -43,10 +44,8 @@ internal class DefaultPushRuleService @Inject constructor(
private val monarchy: Monarchy
) : PushRuleService {
private var listeners = ArrayList<PushRuleService.PushRuleListener>()
override fun fetchPushRules(scope: String) {
pushRulesTask
.configureWith(Unit)

View File

@ -19,7 +19,9 @@ import android.app.Service
import android.content.Intent
import android.os.Binder
import android.os.IBinder
import androidx.work.ListenableWorker
import com.squareup.moshi.JsonEncodingException
import im.vector.matrix.android.api.Matrix
import im.vector.matrix.android.api.MatrixCallback
import im.vector.matrix.android.api.failure.Failure
import im.vector.matrix.android.api.failure.MatrixError
@ -31,6 +33,7 @@ import im.vector.matrix.android.internal.session.sync.model.SyncResponse
import im.vector.matrix.android.internal.task.TaskExecutor
import im.vector.matrix.android.internal.task.TaskThread
import im.vector.matrix.android.internal.task.configureWith
import im.vector.matrix.android.internal.worker.getSessionComponent
import timber.log.Timber
import java.net.SocketTimeoutException
import java.util.*
@ -46,15 +49,15 @@ private const val BACKGROUND_LONG_POOL_TIMEOUT = 0L
* in order to be able to perform a sync even if the app is not running.
* The <receiver> and <service> must be declared in the Manifest or the app using the SDK
*/
internal open class SyncService : Service() {
open class SyncService : Service() {
private var mIsSelfDestroyed: Boolean = false
private var cancelableTask: Cancelable? = null
@Inject lateinit var syncTokenStore: SyncTokenStore
@Inject lateinit var syncTask: SyncTask
@Inject lateinit var networkConnectivityChecker: NetworkConnectivityChecker
@Inject lateinit var taskExecutor: TaskExecutor
private lateinit var syncTokenStore: SyncTokenStore
private lateinit var syncTask: SyncTask
private lateinit var networkConnectivityChecker: NetworkConnectivityChecker
private lateinit var taskExecutor: TaskExecutor
private var localBinder = LocalBinder()
@ -68,6 +71,12 @@ internal open class SyncService : Service() {
nextBatchDelay = 60_000L
timeout = 0
intent?.let {
val userId = it.getStringExtra(EXTRA_USER_ID)
val sessionComponent = Matrix.getInstance(applicationContext).sessionManager.getSessionComponent(userId) ?: return@let
syncTokenStore = sessionComponent.syncTokenStore()
syncTask = sessionComponent.syncTask()
networkConnectivityChecker = sessionComponent.networkConnectivityChecker()
taskExecutor = sessionComponent.taskExecutor()
if (cancelableTask == null) {
timer.cancel()
timer = Timer()
@ -191,7 +200,6 @@ internal open class SyncService : Service() {
}
internal fun notifySyncFinish() {
listeners.forEach {
try {
it.onSyncFinsh()
@ -235,6 +243,8 @@ internal open class SyncService : Service() {
companion object {
const val EXTRA_USER_ID = "EXTRA_USER_ID"
fun startLongPool(delay: Long) {
}