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

Commit affce286 authored by Ricki Hirner's avatar Ricki Hirner
Browse files

Don't rely on Manifest-declared implicit broadcast to detect when a tasks app...

Don't rely on Manifest-declared implicit broadcast to detect when a tasks app is being installed/removed (Android 8 compatibility)
parent b319fef8
Loading
Loading
Loading
Loading
+6 −9
Original line number Diff line number Diff line
@@ -9,7 +9,6 @@
package at.bitfire.davdroid

import android.accounts.Account
import android.annotation.SuppressLint
import android.content.BroadcastReceiver
import android.content.ContentResolver
import android.content.Context
@@ -24,18 +23,11 @@ import at.bitfire.ical4android.TaskProvider.ProviderName.OpenTasks

class PackageChangedReceiver: BroadcastReceiver() {

    @SuppressLint("MissingPermission")
    override fun onReceive(context: Context, intent: Intent) {
        if (intent.action == Intent.ACTION_PACKAGE_ADDED || intent.action == Intent.ACTION_PACKAGE_FULLY_REMOVED)
            updateTaskSync(context)
    }


    companion object {

        fun updateTaskSync(context: Context) {
            val tasksInstalled = LocalTaskList.tasksProviderAvailable(context)
            Logger.log.info("Package (un)installed; OpenTasks provider now available = $tasksInstalled")
            Logger.log.info("Tasks provider available = $tasksInstalled")

            // check all accounts and (de)activate OpenTasks if a CalDAV service is defined
            ServiceDB.OpenHelper(context).use { dbHelper ->
@@ -61,4 +53,9 @@ class PackageChangedReceiver: BroadcastReceiver() {

    }


    override fun onReceive(context: Context, intent: Intent) {
        updateTaskSync(context)
    }

}