mirror of
https://github.com/thunderbird/thunderbird-android.git
synced 2024-09-19 19:52:14 +02:00
Move widget provider to apps
This commit is contained in:
parent
ba337a3730
commit
7c7c2223ec
@ -17,8 +17,8 @@ dependencies {
|
||||
|
||||
implementation(projects.app.core)
|
||||
implementation(projects.app.ui.legacy)
|
||||
implementation(projects.app.ui.messageListWidget)
|
||||
|
||||
implementation(projects.feature.widget.messageList)
|
||||
implementation(projects.feature.widget.unread)
|
||||
|
||||
implementation(libs.androidx.work.runtime)
|
||||
|
@ -22,6 +22,22 @@
|
||||
|
||||
</provider>
|
||||
|
||||
<!-- This component is disabled by default (if possible). It will be enabled programmatically if necessary. -->
|
||||
<!-- IMPORTANT: The component name must be `com.fsck.k9.widget.list.MessageListWidgetProvider` and can't be changed. -->
|
||||
<receiver
|
||||
android:name="com.fsck.k9.widget.list.MessageListWidgetProvider"
|
||||
android:icon="@drawable/message_list_widget_preview"
|
||||
android:label="@string/mail_list_widget_text"
|
||||
android:enabled="@bool/home_screen_widgets_enabled"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/message_list_widget_info" />
|
||||
</receiver>
|
||||
|
||||
<!-- This component is disabled by default (if possible). It will be enabled programmatically if necessary. -->
|
||||
<!-- IMPORTANT: The component name must be `com.fsck.k9.provider.UnreadWidgetProvider` and can't be changed. -->
|
||||
<receiver
|
||||
|
@ -5,9 +5,9 @@ import app.k9mail.core.common.oauth.OAuthConfigurationFactory
|
||||
import app.k9mail.core.common.provider.AppNameProvider
|
||||
import app.k9mail.dev.developmentModuleAdditions
|
||||
import app.k9mail.feature.launcher.FeatureLauncherExternalContract.FeatureThemeProvider
|
||||
import app.k9mail.feature.widget.unread.UnreadWidgetClassProvider
|
||||
import app.k9mail.provider.K9AppNameProvider
|
||||
import app.k9mail.provider.K9FeatureThemeProvider
|
||||
import app.k9mail.widget.appWidgetModule
|
||||
import com.fsck.k9.AppConfig
|
||||
import com.fsck.k9.BuildConfig
|
||||
import com.fsck.k9.activity.LauncherShortcuts
|
||||
@ -19,15 +19,14 @@ import org.koin.core.qualifier.named
|
||||
import org.koin.dsl.module
|
||||
|
||||
val appModule = module {
|
||||
includes(appWidgetModule)
|
||||
|
||||
single(named("ClientInfoAppName")) { BuildConfig.CLIENT_INFO_APP_NAME }
|
||||
single(named("ClientInfoAppVersion")) { BuildConfig.VERSION_NAME }
|
||||
single<AppConfig> { appConfig }
|
||||
single<OAuthConfigurationFactory> { K9OAuthConfigurationFactory() }
|
||||
single<AppNameProvider> { K9AppNameProvider(androidContext()) }
|
||||
single<FeatureThemeProvider> { K9FeatureThemeProvider() }
|
||||
single<UnreadWidgetClassProvider> {
|
||||
UnreadWidgetClassProvider { UnreadWidgetProvider::class.java }
|
||||
}
|
||||
|
||||
developmentModuleAdditions()
|
||||
}
|
||||
|
@ -0,0 +1,8 @@
|
||||
package app.k9mail.widget
|
||||
|
||||
import app.k9mail.feature.widget.message.list.MessageListWidgetConfig
|
||||
import com.fsck.k9.widget.list.MessageListWidgetProvider
|
||||
|
||||
class K9MessageListWidgetConfig : MessageListWidgetConfig {
|
||||
override val providerClass = MessageListWidgetProvider::class.java
|
||||
}
|
14
app-k9mail/src/main/kotlin/app/k9mail/widget/KoinModule.kt
Normal file
14
app-k9mail/src/main/kotlin/app/k9mail/widget/KoinModule.kt
Normal file
@ -0,0 +1,14 @@
|
||||
package app.k9mail.widget
|
||||
|
||||
import app.k9mail.feature.widget.message.list.MessageListWidgetConfig
|
||||
import app.k9mail.feature.widget.unread.UnreadWidgetClassProvider
|
||||
import com.fsck.k9.provider.UnreadWidgetProvider
|
||||
import org.koin.dsl.module
|
||||
|
||||
val appWidgetModule = module {
|
||||
single<MessageListWidgetConfig> { K9MessageListWidgetConfig() }
|
||||
|
||||
single<UnreadWidgetClassProvider> {
|
||||
UnreadWidgetClassProvider { UnreadWidgetProvider::class.java }
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.fsck.k9.widget.list
|
||||
|
||||
import app.k9mail.feature.widget.message.list.BaseMessageListWidgetProvider
|
||||
|
||||
/**
|
||||
* IMPORTANT: The fully qualified name for this class must be
|
||||
* `com.fsck.k9.widget.list.MessageListWidgetProvider`.
|
||||
* Otherwise widgets created with older versions of the app using a different name
|
||||
* will stop working or disappear.
|
||||
*/
|
||||
class MessageListWidgetProvider : BaseMessageListWidgetProvider()
|
@ -17,8 +17,8 @@ dependencies {
|
||||
|
||||
implementation(projects.app.core)
|
||||
implementation(projects.app.ui.legacy)
|
||||
implementation(projects.app.ui.messageListWidget)
|
||||
|
||||
implementation(projects.feature.widget.messageList)
|
||||
implementation(projects.feature.widget.unread)
|
||||
|
||||
implementation(libs.androidx.work.runtime)
|
||||
|
@ -22,6 +22,22 @@
|
||||
|
||||
</provider>
|
||||
|
||||
<!-- This component is disabled by default (if possible). It will be enabled programmatically if necessary. -->
|
||||
<!-- IMPORTANT: The component name must be `net.thunderbird.android.widget.provider.MessageListWidgetProvider` and can't be changed. -->
|
||||
<receiver
|
||||
android:name="net.thunderbird.android.widget.provider.MessageListWidgetProvider"
|
||||
android:icon="@drawable/message_list_widget_preview"
|
||||
android:label="@string/mail_list_widget_text"
|
||||
android:enabled="@bool/home_screen_widgets_enabled"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/message_list_widget_info" />
|
||||
</receiver>
|
||||
|
||||
<!-- This component is disabled by default (if possible). It will be enabled programmatically if necessary. -->
|
||||
<!-- IMPORTANT: The component name and can't be changed and always must be:
|
||||
`net.thunderbird.android.widget.provider.UnreadWidgetProvider`
|
||||
|
@ -3,30 +3,29 @@ package net.thunderbird.android
|
||||
import app.k9mail.core.common.oauth.OAuthConfigurationFactory
|
||||
import app.k9mail.core.common.provider.AppNameProvider
|
||||
import app.k9mail.feature.launcher.FeatureLauncherExternalContract.FeatureThemeProvider
|
||||
import app.k9mail.feature.widget.unread.UnreadWidgetClassProvider
|
||||
import com.fsck.k9.AppConfig
|
||||
import com.fsck.k9.activity.LauncherShortcuts
|
||||
import com.fsck.k9.activity.MessageCompose
|
||||
import com.fsck.k9.widget.list.MessageListWidgetProvider
|
||||
import net.thunderbird.android.auth.ThunderbirdOAuthConfigurationFactory
|
||||
import net.thunderbird.android.dev.developmentModuleAdditions
|
||||
import net.thunderbird.android.provider.TbAppNameProvider
|
||||
import net.thunderbird.android.provider.TbFeatureThemeProvider
|
||||
import net.thunderbird.android.widget.appWidgetModule
|
||||
import net.thunderbird.android.widget.provider.MessageListWidgetProvider
|
||||
import net.thunderbird.android.widget.provider.UnreadWidgetProvider
|
||||
import org.koin.android.ext.koin.androidContext
|
||||
import org.koin.core.qualifier.named
|
||||
import org.koin.dsl.module
|
||||
|
||||
val appModule = module {
|
||||
includes(appWidgetModule)
|
||||
|
||||
single(named("ClientInfoAppName")) { BuildConfig.CLIENT_INFO_APP_NAME }
|
||||
single(named("ClientInfoAppVersion")) { BuildConfig.VERSION_NAME }
|
||||
single<AppConfig> { appConfig }
|
||||
single<OAuthConfigurationFactory> { ThunderbirdOAuthConfigurationFactory() }
|
||||
single<AppNameProvider> { TbAppNameProvider(androidContext()) }
|
||||
single<FeatureThemeProvider> { TbFeatureThemeProvider() }
|
||||
single<UnreadWidgetClassProvider> {
|
||||
UnreadWidgetClassProvider { UnreadWidgetProvider::class.java }
|
||||
}
|
||||
|
||||
developmentModuleAdditions()
|
||||
}
|
||||
|
@ -0,0 +1,14 @@
|
||||
package net.thunderbird.android.widget
|
||||
|
||||
import app.k9mail.feature.widget.message.list.MessageListWidgetConfig
|
||||
import app.k9mail.feature.widget.unread.UnreadWidgetClassProvider
|
||||
import net.thunderbird.android.widget.provider.UnreadWidgetProvider
|
||||
import org.koin.dsl.module
|
||||
|
||||
val appWidgetModule = module {
|
||||
single<MessageListWidgetConfig> { TbMessageListWidgetConfig() }
|
||||
|
||||
single<UnreadWidgetClassProvider> {
|
||||
UnreadWidgetClassProvider { UnreadWidgetProvider::class.java }
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package net.thunderbird.android.widget
|
||||
|
||||
import app.k9mail.feature.widget.message.list.MessageListWidgetConfig
|
||||
import net.thunderbird.android.widget.provider.MessageListWidgetProvider
|
||||
|
||||
class TbMessageListWidgetConfig : MessageListWidgetConfig {
|
||||
override val providerClass = MessageListWidgetProvider::class.java
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package net.thunderbird.android.widget.provider
|
||||
|
||||
import app.k9mail.feature.widget.message.list.BaseMessageListWidgetProvider
|
||||
|
||||
/**
|
||||
* IMPORTANT: The fully qualified name for this class must be
|
||||
* `net.thunderbird.android.widget.provider.MessageListWidgetProvider`.
|
||||
* Otherwise widgets created with older versions of the app using a different name
|
||||
* will stop working or disappear.
|
||||
*/
|
||||
class MessageListWidgetProvider : BaseMessageListWidgetProvider()
|
@ -230,21 +230,6 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<!-- This component is disabled by default (if possible). It will be enabled programmatically if necessary. -->
|
||||
<receiver
|
||||
android:name="com.fsck.k9.widget.list.MessageListWidgetProvider"
|
||||
android:icon="@drawable/message_list_widget_preview"
|
||||
android:label="@string/mail_list_widget_text"
|
||||
android:enabled="@bool/home_screen_widgets_enabled"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/message_list_widget_info" />
|
||||
</receiver>
|
||||
|
||||
<!-- This component is disabled by default. It will be enabled programmatically if necessary. -->
|
||||
<receiver
|
||||
android:name="com.fsck.k9.controller.push.BootCompleteReceiver"
|
||||
|
@ -18,7 +18,6 @@ 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 org.koin.core.qualifier.named
|
||||
import org.koin.dsl.module
|
||||
|
||||
@ -43,7 +42,6 @@ val commonAppModule = module {
|
||||
|
||||
val commonAppModules = listOf(
|
||||
commonAppModule,
|
||||
messageListWidgetConfigModule,
|
||||
messageListWidgetModule,
|
||||
unreadWidgetModule,
|
||||
notificationModule,
|
||||
|
@ -1,8 +0,0 @@
|
||||
package com.fsck.k9.widget.list
|
||||
|
||||
import app.k9mail.feature.widget.message.list.MessageListWidgetConfig
|
||||
import org.koin.dsl.module
|
||||
|
||||
val messageListWidgetConfigModule = module {
|
||||
single<MessageListWidgetConfig> { K9MessageListWidgetConfig() }
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
package com.fsck.k9.widget.list
|
||||
|
||||
import app.k9mail.feature.widget.message.list.MessageListWidgetConfig
|
||||
|
||||
class MessageListWidgetProvider : app.k9mail.feature.widget.message.list.MessageListWidgetProvider()
|
||||
|
||||
internal class K9MessageListWidgetConfig : MessageListWidgetConfig {
|
||||
override val providerClass = MessageListWidgetProvider::class.java
|
||||
}
|
@ -15,7 +15,7 @@ import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
import com.fsck.k9.ui.R as UiR
|
||||
|
||||
open class MessageListWidgetProvider : AppWidgetProvider(), KoinComponent {
|
||||
abstract class BaseMessageListWidgetProvider : AppWidgetProvider(), KoinComponent {
|
||||
private val messageListWidgetManager: MessageListWidgetManager by inject()
|
||||
|
||||
override fun onEnabled(context: Context) {
|
@ -1,5 +1,5 @@
|
||||
package app.k9mail.feature.widget.message.list
|
||||
|
||||
interface MessageListWidgetConfig {
|
||||
val providerClass: Class<out MessageListWidgetProvider>
|
||||
val providerClass: Class<out BaseMessageListWidgetProvider>
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user