Refactor badges and notifications, migrate badge settings

This commit is contained in:
MM20
2022-01-15 14:31:13 +01:00
parent dc64fdebdd
commit 6ca440f553
40 changed files with 937 additions and 303 deletions
@@ -21,6 +21,7 @@ import de.mm20.launcher2.websites.websitesModule
import de.mm20.launcher2.widgets.widgetsModule
import de.mm20.launcher2.wikipedia.wikipediaModule
import de.mm20.launcher2.database.databaseModule
import de.mm20.launcher2.notifications.notificationsModule
import de.mm20.launcher2.permissions.permissionsModule
import de.mm20.launcher2.preferences.preferencesModule
import de.mm20.launcher2.weather.weatherModule
@@ -68,6 +69,7 @@ class LauncherApplication : Application(), CoroutineScope {
hiddenItemsModule,
iconsModule,
musicModule,
notificationsModule,
permissionsModule,
preferencesModule,
searchModule,
@@ -5,37 +5,26 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import de.mm20.launcher2.R
import de.mm20.launcher2.badges.BadgeProvider
import de.mm20.launcher2.notifications.NotificationService
import org.koin.android.ext.android.inject
class PreferencesBadgesFragment : PreferenceFragmentCompat() {
private val badgesProvider: BadgeProvider by inject()
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.preferences_badges)
findPreference<Preference>("notification_badges")?.setOnPreferenceChangeListener { _, newValue ->
if (newValue as Boolean) {
NotificationService.getInstance()?.generateBadges()
} else {
badgesProvider.removeNotificationBadges()
}
true
}
findPreference<Preference>("suspended_badges")?.setOnPreferenceChangeListener { _, newValue ->
if (newValue as Boolean) {
badgesProvider.addSuspendBadges()
} else {
badgesProvider.removeSuspendBadges()
}
true
}
findPreference<Preference>("cloud_badges")?.setOnPreferenceChangeListener { _, newValue ->
if (newValue as Boolean) {
badgesProvider.addCloudBadges()
} else {
badgesProvider.removeCloudBadges()
}
true
}