0
0
mirror of https://github.com/thunderbird/thunderbird-android.git synced 2024-09-19 19:52:14 +02:00

Bump AndroidX Core 1.12.0 -> 1.13.1 and remove AlarmManagerCompat

This commit is contained in:
Wolf-Martell Montwé 2024-05-15 14:34:55 +02:00
parent 23f0d1438a
commit 5441b2b6a3
No known key found for this signature in database
GPG Key ID: 6D45B21512ACBF72
9 changed files with 23 additions and 44 deletions

View File

@ -54,9 +54,9 @@ androidx.concurrent:concurrent-futures:1.1.0
androidx.constraintlayout:constraintlayout-core:1.0.4
androidx.constraintlayout:constraintlayout:2.1.4
androidx.coordinatorlayout:coordinatorlayout:1.2.0
androidx.core:core-ktx:1.12.0
androidx.core:core-ktx:1.13.1
androidx.core:core-splashscreen:1.0.1
androidx.core:core:1.12.0
androidx.core:core:1.13.1
androidx.cursoradapter:cursoradapter:1.0.0
androidx.customview:customview-poolingcontainer:1.0.0
androidx.customview:customview:1.1.0

View File

@ -54,9 +54,9 @@ androidx.concurrent:concurrent-futures:1.1.0
androidx.constraintlayout:constraintlayout-core:1.0.4
androidx.constraintlayout:constraintlayout:2.1.4
androidx.coordinatorlayout:coordinatorlayout:1.2.0
androidx.core:core-ktx:1.12.0
androidx.core:core-ktx:1.13.1
androidx.core:core-splashscreen:1.0.1
androidx.core:core:1.12.0
androidx.core:core:1.13.1
androidx.cursoradapter:cursoradapter:1.0.0
androidx.customview:customview-poolingcontainer:1.0.0
androidx.customview:customview:1.1.0

View File

@ -1,15 +1,16 @@
package com.fsck.k9.backends
import android.app.AlarmManager
import android.app.PendingIntent
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.os.SystemClock
import androidx.core.app.AlarmManagerCompat
import androidx.core.app.PendingIntentCompat
import androidx.core.content.ContextCompat
import com.fsck.k9.backend.imap.SystemAlarmManager
import com.fsck.k9.helper.AlarmManagerCompat
import java.util.concurrent.atomic.AtomicReference
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
@ -24,7 +25,7 @@ private typealias Callback = () -> Unit
class AndroidAlarmManager(
private val context: Context,
private val alarmManager: AlarmManagerCompat,
private val alarmManager: AlarmManager,
backgroundDispatcher: CoroutineDispatcher = Dispatchers.IO,
) : SystemAlarmManager {
private val coroutineScope = CoroutineScope(backgroundDispatcher)
@ -62,12 +63,18 @@ class AndroidAlarmManager(
override fun setAlarm(triggerTime: Long, callback: Callback) {
this.callback.set(callback)
alarmManager.scheduleAlarm(triggerTime, pendingIntent)
AlarmManagerCompat.setExactAndAllowWhileIdle(
alarmManager,
AlarmManager.ELAPSED_REALTIME_WAKEUP,
triggerTime,
pendingIntent,
)
}
override fun cancelAlarm() {
callback.set(null)
alarmManager.cancelAlarm(pendingIntent)
alarmManager.cancel(pendingIntent)
}
override fun now(): Long = SystemClock.elapsedRealtime()

View File

@ -1,9 +1,9 @@
package com.fsck.k9.controller.push
import android.app.AlarmManager
import android.content.Context
import android.os.Build
import android.provider.Settings
import com.fsck.k9.helper.AlarmManagerCompat
/**
* Checks whether the app can schedule exact alarms.
@ -31,9 +31,9 @@ internal interface AlarmPermissionManager {
/**
* Factory method to create an Android API-specific instance of [AlarmPermissionManager].
*/
internal fun AlarmPermissionManager(context: Context, alarmManagerCompat: AlarmManagerCompat): AlarmPermissionManager {
internal fun AlarmPermissionManager(context: Context, alarmManager: AlarmManager): AlarmPermissionManager {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
AlarmPermissionManagerApi31(context, alarmManagerCompat)
AlarmPermissionManagerApi31(context, alarmManager)
} else {
AlarmPermissionManagerApi21()
}

View File

@ -7,8 +7,8 @@ import android.content.Intent
import android.content.IntentFilter
import android.os.Build
import androidx.annotation.RequiresApi
import androidx.core.app.AlarmManagerCompat
import androidx.core.content.ContextCompat
import com.fsck.k9.helper.AlarmManagerCompat
import timber.log.Timber
/**
@ -17,7 +17,7 @@ import timber.log.Timber
@RequiresApi(Build.VERSION_CODES.S)
internal class AlarmPermissionManagerApi31(
private val context: Context,
private val alarmManagerCompat: AlarmManagerCompat,
private val alarmManager: AlarmManager,
) : AlarmPermissionManager {
private var isRegistered = false
private var listener: AlarmPermissionListener? = null
@ -34,7 +34,7 @@ internal class AlarmPermissionManagerApi31(
}
override fun canScheduleExactAlarms(): Boolean {
return alarmManagerCompat.canScheduleExactAlarms()
return AlarmManagerCompat.canScheduleExactAlarms(alarmManager)
}
@Synchronized

View File

@ -29,5 +29,5 @@ internal val controllerPushModule = module {
)
}
single<AlarmPermissionManager> { AlarmPermissionManager(context = get(), alarmManagerCompat = get()) }
single<AlarmPermissionManager> { AlarmPermissionManager(context = get(), alarmManager = get()) }
}

View File

@ -1,27 +0,0 @@
package com.fsck.k9.helper
import android.app.AlarmManager
import android.app.PendingIntent
import android.os.Build
class AlarmManagerCompat(private val alarmManager: AlarmManager) {
fun canScheduleExactAlarms(): Boolean {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
alarmManager.canScheduleExactAlarms()
} else {
true
}
}
fun scheduleAlarm(triggerAtMillis: Long, operation: PendingIntent) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
alarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtMillis, operation)
} else {
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtMillis, operation)
}
}
fun cancelAlarm(operation: PendingIntent) {
alarmManager.cancel(operation)
}
}

View File

@ -10,6 +10,5 @@ val helperModule = module {
single { MessageHelper(resourceProvider = get(), contactRepository = get()) }
factory<KeyStoreDirectoryProvider> { AndroidKeyStoreDirectoryProvider(context = get()) }
factory { get<Context>().getSystemService(Context.ALARM_SERVICE) as AlarmManager }
single { AlarmManagerCompat(alarmManager = get()) }
factory<ContactNameProvider> { RealContactNameProvider(contactRepository = get()) }
}

View File

@ -25,7 +25,7 @@ androidxComposeBom = "2024.04.00"
androidxComposeCompiler = "1.5.11"
androidxConstraintLayout = "2.1.4"
androidxCoordinatorLayout = "1.2.0"
androidxCore = "1.12.0"
androidxCore = "1.13.1"
androidxCoreSplashscreen = "1.0.1"
androidxDrawerLayout = "1.1.1"
androidxFragment = "1.6.2"