Loading data/src/main/java/com/moez/QKSMS/manager/WidgetManagerImpl.kt +11 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ */ package com.moez.QKSMS.manager import android.appwidget.AppWidgetManager import android.content.ComponentName import android.content.Context import android.content.Intent import com.klinker.android.send_message.BroadcastUtils Loading @@ -29,4 +31,13 @@ class WidgetManagerImpl @Inject constructor(private val context: Context) : Widg BroadcastUtils.sendExplicitBroadcast(context, Intent(), WidgetManager.ACTION_NOTIFY_DATASET_CHANGED) } override fun updateTheme() { val ids = AppWidgetManager.getInstance(context) .getAppWidgetIds(ComponentName("com.moez.QKSMS", "com.moez.QKSMS.feature.widget.WidgetProvider")) val intent = Intent().putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids) BroadcastUtils.sendExplicitBroadcast(context, intent, AppWidgetManager.ACTION_APPWIDGET_UPDATE) } } No newline at end of file data/src/main/java/com/moez/QKSMS/util/NightModeManager.kt +5 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.app.AlarmManager import android.app.PendingIntent import android.content.Context import android.content.Intent import com.moez.QKSMS.manager.WidgetManager import com.moez.QKSMS.receiver.NightModeReceiver import java.text.SimpleDateFormat import java.util.* Loading @@ -32,7 +33,8 @@ import javax.inject.Singleton @Singleton class NightModeManager @Inject constructor( private val context: Context, private val prefs: Preferences) { private val prefs: Preferences, private val widgetManager: WidgetManager) { fun updateCurrentTheme() { // If night mode is not on auto, then there's nothing to do here Loading @@ -45,6 +47,7 @@ class NightModeManager @Inject constructor( // If the last nightStart was more recent than the last nightEnd, then it's night time prefs.night.set(nightStartTime > nightEndTime) widgetManager.updateTheme() } fun updateNightMode(mode: Int) { Loading @@ -53,6 +56,7 @@ class NightModeManager @Inject constructor( // If it's not on auto mode, set the appropriate night mode if (mode != Preferences.NIGHT_MODE_AUTO) { prefs.night.set(mode == Preferences.NIGHT_MODE_ON) widgetManager.updateTheme() } updateAlarms() Loading domain/src/main/java/com/moez/QKSMS/manager/WidgetManager.kt +2 −0 Original line number Diff line number Diff line Loading @@ -26,4 +26,6 @@ interface WidgetManager { fun updateUnreadCount() fun updateTheme() } No newline at end of file presentation/src/main/AndroidManifest.xml +0 −2 Original line number Diff line number Diff line Loading @@ -151,8 +151,6 @@ <receiver android:name=".feature.widget.WidgetProvider"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <intent-filter> <action android:name="com.moez.QKSMS.intent.action.ACTION_NOTIFY_DATASET_CHANGED" /> </intent-filter> Loading presentation/src/main/java/com/moez/QKSMS/feature/themepicker/ThemePickerPresenter.kt +13 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import com.moez.QKSMS.common.Navigator import com.moez.QKSMS.common.base.QkPresenter import com.moez.QKSMS.common.util.BillingManager import com.moez.QKSMS.common.util.Colors import com.moez.QKSMS.manager.WidgetManager import com.moez.QKSMS.util.Preferences import com.uber.autodispose.kotlin.autoDisposable import io.reactivex.rxkotlin.Observables Loading @@ -31,11 +32,12 @@ import javax.inject.Inject import javax.inject.Named class ThemePickerPresenter @Inject constructor( @Named("threadId") threadId: Long, prefs: Preferences, @Named("threadId") private val threadId: Long, private val billingManager: BillingManager, private val colors: Colors, private val navigator: Navigator private val navigator: Navigator, private val widgetManager: WidgetManager ) : QkPresenter<ThemePickerView, ThemePickerState>(ThemePickerState(threadId = threadId)) { private val theme: Preference<Int> = prefs.theme(threadId) Loading @@ -50,7 +52,12 @@ class ThemePickerPresenter @Inject constructor( // Update the theme when a material theme is clicked view.themeSelected() .autoDisposable(view.scope()) .subscribe { color -> theme.set(color) } .subscribe { color -> theme.set(color) if (threadId == 0L) { widgetManager.updateTheme() } } // Update the color of the apply button view.hsvThemeSelected() Loading @@ -73,6 +80,9 @@ class ThemePickerPresenter @Inject constructor( view.showQksmsPlusSnackbar() } else { theme.set(color) if (threadId == 0L) { widgetManager.updateTheme() } } } .autoDisposable(view.scope()) Loading Loading
data/src/main/java/com/moez/QKSMS/manager/WidgetManagerImpl.kt +11 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ */ package com.moez.QKSMS.manager import android.appwidget.AppWidgetManager import android.content.ComponentName import android.content.Context import android.content.Intent import com.klinker.android.send_message.BroadcastUtils Loading @@ -29,4 +31,13 @@ class WidgetManagerImpl @Inject constructor(private val context: Context) : Widg BroadcastUtils.sendExplicitBroadcast(context, Intent(), WidgetManager.ACTION_NOTIFY_DATASET_CHANGED) } override fun updateTheme() { val ids = AppWidgetManager.getInstance(context) .getAppWidgetIds(ComponentName("com.moez.QKSMS", "com.moez.QKSMS.feature.widget.WidgetProvider")) val intent = Intent().putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids) BroadcastUtils.sendExplicitBroadcast(context, intent, AppWidgetManager.ACTION_APPWIDGET_UPDATE) } } No newline at end of file
data/src/main/java/com/moez/QKSMS/util/NightModeManager.kt +5 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.app.AlarmManager import android.app.PendingIntent import android.content.Context import android.content.Intent import com.moez.QKSMS.manager.WidgetManager import com.moez.QKSMS.receiver.NightModeReceiver import java.text.SimpleDateFormat import java.util.* Loading @@ -32,7 +33,8 @@ import javax.inject.Singleton @Singleton class NightModeManager @Inject constructor( private val context: Context, private val prefs: Preferences) { private val prefs: Preferences, private val widgetManager: WidgetManager) { fun updateCurrentTheme() { // If night mode is not on auto, then there's nothing to do here Loading @@ -45,6 +47,7 @@ class NightModeManager @Inject constructor( // If the last nightStart was more recent than the last nightEnd, then it's night time prefs.night.set(nightStartTime > nightEndTime) widgetManager.updateTheme() } fun updateNightMode(mode: Int) { Loading @@ -53,6 +56,7 @@ class NightModeManager @Inject constructor( // If it's not on auto mode, set the appropriate night mode if (mode != Preferences.NIGHT_MODE_AUTO) { prefs.night.set(mode == Preferences.NIGHT_MODE_ON) widgetManager.updateTheme() } updateAlarms() Loading
domain/src/main/java/com/moez/QKSMS/manager/WidgetManager.kt +2 −0 Original line number Diff line number Diff line Loading @@ -26,4 +26,6 @@ interface WidgetManager { fun updateUnreadCount() fun updateTheme() } No newline at end of file
presentation/src/main/AndroidManifest.xml +0 −2 Original line number Diff line number Diff line Loading @@ -151,8 +151,6 @@ <receiver android:name=".feature.widget.WidgetProvider"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <intent-filter> <action android:name="com.moez.QKSMS.intent.action.ACTION_NOTIFY_DATASET_CHANGED" /> </intent-filter> Loading
presentation/src/main/java/com/moez/QKSMS/feature/themepicker/ThemePickerPresenter.kt +13 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import com.moez.QKSMS.common.Navigator import com.moez.QKSMS.common.base.QkPresenter import com.moez.QKSMS.common.util.BillingManager import com.moez.QKSMS.common.util.Colors import com.moez.QKSMS.manager.WidgetManager import com.moez.QKSMS.util.Preferences import com.uber.autodispose.kotlin.autoDisposable import io.reactivex.rxkotlin.Observables Loading @@ -31,11 +32,12 @@ import javax.inject.Inject import javax.inject.Named class ThemePickerPresenter @Inject constructor( @Named("threadId") threadId: Long, prefs: Preferences, @Named("threadId") private val threadId: Long, private val billingManager: BillingManager, private val colors: Colors, private val navigator: Navigator private val navigator: Navigator, private val widgetManager: WidgetManager ) : QkPresenter<ThemePickerView, ThemePickerState>(ThemePickerState(threadId = threadId)) { private val theme: Preference<Int> = prefs.theme(threadId) Loading @@ -50,7 +52,12 @@ class ThemePickerPresenter @Inject constructor( // Update the theme when a material theme is clicked view.themeSelected() .autoDisposable(view.scope()) .subscribe { color -> theme.set(color) } .subscribe { color -> theme.set(color) if (threadId == 0L) { widgetManager.updateTheme() } } // Update the color of the apply button view.hsvThemeSelected() Loading @@ -73,6 +80,9 @@ class ThemePickerPresenter @Inject constructor( view.showQksmsPlusSnackbar() } else { theme.set(color) if (threadId == 0L) { widgetManager.updateTheme() } } } .autoDisposable(view.scope()) Loading