Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 8263b5fc authored by Ricki Hirner's avatar Ricki Hirner
Browse files

WorkManager: add stop reason to debug info and sync logs (bitfireAT/davx5#413)

parent fe679da0
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -63,6 +63,11 @@ class App: Application(), Thread.UncaughtExceptionHandler, Configuration.Provide

    @Inject lateinit var workerFactory: HiltWorkerFactory

    override val workManagerConfiguration: Configuration
        get() = Configuration.Builder()
            .setWorkerFactory(workerFactory)
            .build()

    override fun onCreate() {
        super.onCreate()
        Logger.initialize(this)
@@ -108,11 +113,6 @@ class App: Application(), Thread.UncaughtExceptionHandler, Configuration.Provide
        }
    }

    override fun getWorkManagerConfiguration() =
        Configuration.Builder()
            .setWorkerFactory(workerFactory)
            .build()

    override fun uncaughtException(t: Thread, e: Throwable) {
        Logger.log.log(Level.SEVERE, "Unhandled exception!", e)

+2 −1
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ import android.accounts.Account
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.os.Build
import androidx.concurrent.futures.CallbackToFutureAdapter
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
@@ -238,7 +239,7 @@ class RefreshCollectionsWorker @AssistedInject constructor(
    }

    override fun onStopped() {
        Logger.log.info("Stopping refresh")
        Logger.log.info("Stopping refresh (reason ${if (Build.VERSION.SDK_INT >= 31) stopReason else "n/a"})")
        refreshThread?.interrupt()
    }

+3 −20
Original line number Diff line number Diff line
@@ -5,11 +5,7 @@
package at.bitfire.davdroid.syncadapter

import android.accounts.Account
import android.content.ContentProviderClient
import android.content.ContentResolver
import android.content.Context
import android.content.Intent
import android.content.SyncResult
import android.content.*
import android.net.ConnectivityManager
import android.net.wifi.WifiManager
import android.os.Build
@@ -23,20 +19,7 @@ import androidx.core.content.getSystemService
import androidx.hilt.work.HiltWorker
import androidx.lifecycle.LiveData
import androidx.lifecycle.map
import androidx.work.BackoffPolicy
import androidx.work.Constraints
import androidx.work.Data
import androidx.work.ExistingWorkPolicy
import androidx.work.ForegroundInfo
import androidx.work.NetworkType
import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.OutOfQuotaPolicy
import androidx.work.WorkInfo
import androidx.work.WorkManager
import androidx.work.WorkQuery
import androidx.work.WorkRequest
import androidx.work.Worker
import androidx.work.WorkerParameters
import androidx.work.*
import at.bitfire.davdroid.R
import at.bitfire.davdroid.log.Logger
import at.bitfire.davdroid.network.ConnectionUtils.internetAvailable
@@ -432,7 +415,7 @@ class SyncWorker @AssistedInject constructor(
    }

    override fun onStopped() {
        Logger.log.info("Stopping sync thread")
        Logger.log.info("Work stopped (reason ${if (Build.VERSION.SDK_INT >= 31) stopReason else "n/a"}), stopping sync thread")
        syncThread?.interrupt()
    }

+1 −2
Original line number Diff line number Diff line
@@ -61,7 +61,6 @@ import org.apache.commons.lang3.StringUtils
import org.apache.commons.lang3.exception.ExceptionUtils
import org.dmfs.tasks.contract.TaskContract
import java.io.*
import java.util.Locale
import java.util.TimeZone
import java.util.logging.Level
import java.util.zip.ZipEntry
@@ -680,7 +679,7 @@ class DebugInfoActivity : AppCompatActivity() {
                        table.addLine(
                            workInfo.tags.map { StringUtils.removeStartIgnoreCase(it, SyncWorker::class.java.getPackage()!!.name + ".") },
                            authority,
                            workInfo.state,
                            "${workInfo.state} (${workInfo.stopReason})",
                            workInfo.runAttemptCount,
                            workInfo.generation,
                            workInfo.id
+1 −3
Original line number Diff line number Diff line
@@ -38,9 +38,7 @@ import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.NonCancellable
import kotlinx.coroutines.launch
import kotlinx.coroutines.*
import java.util.logging.Level
import javax.inject.Inject

Loading