0
0
mirror of https://github.com/thunderbird/thunderbird-android.git synced 2024-09-20 20:13:04 +02:00

Retain fully-qualified name of MessageListWidgetProvider in the manifest

This commit is contained in:
cketti 2022-10-17 19:17:51 +02:00
parent c9d89657b0
commit 2640c0e0a7
6 changed files with 33 additions and 4 deletions

View File

@ -315,7 +315,7 @@
</receiver>
<receiver
android:name="app.k9mail.ui.widget.list.MessageListWidgetProvider"
android:name=".widget.list.MessageListWidgetProvider"
android:icon="@drawable/message_list_widget_preview"
android:label="@string/mail_list_widget_text"
android:exported="false">

View File

@ -12,6 +12,7 @@ import com.fsck.k9.preferences.K9StoragePersister
import com.fsck.k9.preferences.StoragePersister
import com.fsck.k9.resources.resourcesModule
import com.fsck.k9.storage.storageModule
import com.fsck.k9.widget.list.messageListWidgetConfigModule
import com.fsck.k9.widget.unread.UnreadWidgetUpdateListener
import com.fsck.k9.widget.unread.unreadWidgetModule
import org.koin.core.qualifier.named
@ -35,6 +36,7 @@ private val mainAppModule = module {
val appModules = listOf(
mainAppModule,
messageListWidgetConfigModule,
messageListWidgetModule,
unreadWidgetModule,
notificationModule,

View File

@ -0,0 +1,8 @@
package com.fsck.k9.widget.list
import app.k9mail.ui.widget.list.MessageListWidgetConfig
import org.koin.dsl.module
val messageListWidgetConfigModule = module {
single<MessageListWidgetConfig> { K9MessageListWidgetConfig() }
}

View File

@ -0,0 +1,9 @@
package com.fsck.k9.widget.list
import app.k9mail.ui.widget.list.MessageListWidgetConfig
class MessageListWidgetProvider : app.k9mail.ui.widget.list.MessageListWidgetProvider()
internal class K9MessageListWidgetConfig : MessageListWidgetConfig {
override val providerClass = MessageListWidgetProvider::class.java
}

View File

@ -0,0 +1,5 @@
package app.k9mail.ui.widget.list
interface MessageListWidgetConfig {
val providerClass: Class<out MessageListWidgetProvider>
}

View File

@ -14,6 +14,8 @@ import com.fsck.k9.activity.MessageList.Companion.intentDisplaySearch
import com.fsck.k9.helper.PendingIntentCompat.FLAG_IMMUTABLE
import com.fsck.k9.helper.PendingIntentCompat.FLAG_MUTABLE
import com.fsck.k9.search.SearchAccount.Companion.createUnifiedInboxAccount
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
import com.fsck.k9.ui.R as UiR
open class MessageListWidgetProvider : AppWidgetProvider() {
@ -84,16 +86,19 @@ open class MessageListWidgetProvider : AppWidgetProvider() {
return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT or FLAG_IMMUTABLE)
}
companion object {
companion object : KoinComponent {
private const val ACTION_UPDATE_MESSAGE_LIST = "UPDATE_MESSAGE_LIST"
private val messageListWidgetConfig: MessageListWidgetConfig by inject()
fun triggerMessageListWidgetUpdate(context: Context) {
val appContext = context.applicationContext
val widgetManager = AppWidgetManager.getInstance(appContext)
val widget = ComponentName(appContext, MessageListWidgetProvider::class.java)
val providerClass = messageListWidgetConfig.providerClass
val widget = ComponentName(appContext, providerClass)
val widgetIds = widgetManager.getAppWidgetIds(widget)
val intent = Intent(context, MessageListWidgetProvider::class.java).apply {
val intent = Intent(context, providerClass).apply {
action = ACTION_UPDATE_MESSAGE_LIST
putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, widgetIds)
}