From e0dda5bdc2176969eda12098cca474db218ea508 Mon Sep 17 00:00:00 2001 From: vincent Bourgmayer Date: Thu, 17 Oct 2024 10:34:56 +0200 Subject: [PATCH 1/6] chore: bump minimum sdk to android API 26 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 1039ffb0a..3320d6921 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -46,7 +46,7 @@ android { defaultConfig { applicationId "foundation.e.apps" - minSdk 25 + minSdk 26 targetSdk 30 versionCode versionMajor * 1000000 + versionMinor * 1000 + versionPatch versionName "${versionMajor}.${versionMinor}.${versionPatch}" -- GitLab From 1724262b2d0dd6d96c5f63b53dbc090feabea0bc Mon Sep 17 00:00:00 2001 From: vincent Bourgmayer Date: Wed, 16 Oct 2024 15:20:32 +0200 Subject: [PATCH 2/6] chore: remove check if SDK is below API 26 --- .../e/apps/data/install/AppManagerImpl.kt | 1 - .../e/apps/data/install/AppManagerWrapper.kt | 1 - .../e/apps/di/NotificationManagerModule.kt | 2 -- .../install/pkg/AppLoungePackageManager.kt | 5 ++--- .../splitinstall/SplitInstallBinder.kt | 8 -------- .../e/apps/install/updates/UpdatesNotifier.kt | 20 +++++++++---------- .../install/workmanager/InstallAppWorker.kt | 16 +++++++-------- .../e/apps/provider/AgeRatingProvider.kt | 16 +++++++-------- .../java/foundation/e/apps/ui/MainActivity.kt | 6 +++--- .../e/apps/ui/MainActivityViewModel.kt | 1 - .../e/apps/ui/purchase/AppPurchaseFragment.kt | 4 +--- .../signin/google/GoogleSignInFragment.kt | 4 +--- .../utils/CustomUncaughtExceptionHandler.kt | 18 ++++++++--------- 13 files changed, 38 insertions(+), 64 deletions(-) diff --git a/app/src/main/java/foundation/e/apps/data/install/AppManagerImpl.kt b/app/src/main/java/foundation/e/apps/data/install/AppManagerImpl.kt index 27670c9be..94f2b2f61 100644 --- a/app/src/main/java/foundation/e/apps/data/install/AppManagerImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/install/AppManagerImpl.kt @@ -65,7 +65,6 @@ class AppManagerImpl @Inject constructor( private val mutex = Mutex() - @RequiresApi(Build.VERSION_CODES.O) override fun createNotificationChannels() { notificationManager.apply { createNotificationChannel(downloadNotificationChannel) diff --git a/app/src/main/java/foundation/e/apps/data/install/AppManagerWrapper.kt b/app/src/main/java/foundation/e/apps/data/install/AppManagerWrapper.kt index 83cc3f3f9..359681c6c 100644 --- a/app/src/main/java/foundation/e/apps/data/install/AppManagerWrapper.kt +++ b/app/src/main/java/foundation/e/apps/data/install/AppManagerWrapper.kt @@ -21,7 +21,6 @@ class AppManagerWrapper @Inject constructor( private val fdroidRepository: FdroidRepository ) { - @RequiresApi(Build.VERSION_CODES.O) fun createNotificationChannels() { return appManager.createNotificationChannels() } diff --git a/app/src/main/java/foundation/e/apps/di/NotificationManagerModule.kt b/app/src/main/java/foundation/e/apps/di/NotificationManagerModule.kt index 3d3747adb..fa13002d4 100644 --- a/app/src/main/java/foundation/e/apps/di/NotificationManagerModule.kt +++ b/app/src/main/java/foundation/e/apps/di/NotificationManagerModule.kt @@ -49,7 +49,6 @@ object NotificationManagerModule { @Singleton @Provides @Named("download") - @RequiresApi(Build.VERSION_CODES.O) fun provideDownloadNotificationChannel( @ApplicationContext context: Context ): NotificationChannel { @@ -63,7 +62,6 @@ object NotificationManagerModule { @Singleton @Provides @Named("update") - @RequiresApi(Build.VERSION_CODES.O) fun provideUpdateNotificationChannel( @ApplicationContext context: Context ): NotificationChannel { diff --git a/app/src/main/java/foundation/e/apps/install/pkg/AppLoungePackageManager.kt b/app/src/main/java/foundation/e/apps/install/pkg/AppLoungePackageManager.kt index edb939a16..b72f8a719 100644 --- a/app/src/main/java/foundation/e/apps/install/pkg/AppLoungePackageManager.kt +++ b/app/src/main/java/foundation/e/apps/install/pkg/AppLoungePackageManager.kt @@ -238,9 +238,8 @@ class AppLoungePackageManager @Inject constructor( val params = SessionParams(mode).apply { setAppPackageName(packageName) setOriginatingUid(android.os.Process.myUid()) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - setInstallReason(PackageManager.INSTALL_REASON_USER) - } + setInstallReason(PackageManager.INSTALL_REASON_USER) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { setRequireUserAction(SessionParams.USER_ACTION_NOT_REQUIRED) } diff --git a/app/src/main/java/foundation/e/apps/install/splitinstall/SplitInstallBinder.kt b/app/src/main/java/foundation/e/apps/install/splitinstall/SplitInstallBinder.kt index 0e303bf4a..8e5e5da16 100644 --- a/app/src/main/java/foundation/e/apps/install/splitinstall/SplitInstallBinder.kt +++ b/app/src/main/java/foundation/e/apps/install/splitinstall/SplitInstallBinder.kt @@ -85,19 +85,11 @@ class SplitInstallBinder( } private fun handleError(packageName: String) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { - return - } - createNotificationChannel(context) showErrorNotification(context, packageName) } private fun createNotificationChannel(context: Context) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { - return - } - val descriptionText = context.getString(R.string.notification_channel_desc) val notificationChannel = NotificationChannel( NOTIFICATION_CHANNEL, diff --git a/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt b/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt index de50df95a..3f55ae189 100644 --- a/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt +++ b/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt @@ -107,17 +107,15 @@ object UpdatesNotifier { } private fun createNotificationChannel(context: Context) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - val importance = NotificationManager.IMPORTANCE_DEFAULT - val channel = NotificationChannel( - UPDATES_NOTIFICATION_CHANNEL_ID, - UPDATES_NOTIFICATION_CHANNEL_TITLE, - importance - ) - val notificationManager: NotificationManager = - context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager - notificationManager.createNotificationChannel(channel) - } + val importance = NotificationManager.IMPORTANCE_DEFAULT + val channel = NotificationChannel( + UPDATES_NOTIFICATION_CHANNEL_ID, + UPDATES_NOTIFICATION_CHANNEL_TITLE, + importance + ) + val notificationManager: NotificationManager = + context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager + notificationManager.createNotificationChannel(channel) } fun showNotification( diff --git a/app/src/main/java/foundation/e/apps/install/workmanager/InstallAppWorker.kt b/app/src/main/java/foundation/e/apps/install/workmanager/InstallAppWorker.kt index 286c2727d..e2011c231 100644 --- a/app/src/main/java/foundation/e/apps/install/workmanager/InstallAppWorker.kt +++ b/app/src/main/java/foundation/e/apps/install/workmanager/InstallAppWorker.kt @@ -81,15 +81,13 @@ class InstallAppWorker @AssistedInject constructor( val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager - // Create a Notification channel if necessary - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - val mChannel = NotificationChannel( - channelId, - title, - NotificationManager.IMPORTANCE_LOW - ) - notificationManager.createNotificationChannel(mChannel) - } + + val mChannel = NotificationChannel( + channelId, + title, + NotificationManager.IMPORTANCE_LOW + ) + notificationManager.createNotificationChannel(mChannel) val notification = NotificationCompat.Builder(applicationContext, channelId) .setContentTitle(title) diff --git a/app/src/main/java/foundation/e/apps/provider/AgeRatingProvider.kt b/app/src/main/java/foundation/e/apps/provider/AgeRatingProvider.kt index c82240b40..2d316853e 100644 --- a/app/src/main/java/foundation/e/apps/provider/AgeRatingProvider.kt +++ b/app/src/main/java/foundation/e/apps/provider/AgeRatingProvider.kt @@ -154,15 +154,13 @@ class AgeRatingProvider : ContentProvider() { val context = context ?: return val title = context.getString(R.string.app_name) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - val channel = NotificationChannel( - CHANNEL_ID, - title, - NotificationManager.IMPORTANCE_HIGH - ) - channel.setSound(null, null) - notificationManager.createNotificationChannel(channel) - } + val channel = NotificationChannel( + CHANNEL_ID, + title, + NotificationManager.IMPORTANCE_HIGH + ) + channel.setSound(null, null) + notificationManager.createNotificationChannel(channel) val builder = NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.app_lounge_notification_icon) diff --git a/app/src/main/java/foundation/e/apps/ui/MainActivity.kt b/app/src/main/java/foundation/e/apps/ui/MainActivity.kt index 486f1ed1a..b897133a0 100644 --- a/app/src/main/java/foundation/e/apps/ui/MainActivity.kt +++ b/app/src/main/java/foundation/e/apps/ui/MainActivity.kt @@ -98,9 +98,9 @@ class MainActivity : AppCompatActivity() { bottomNavigationView.selectedItemId = R.id.updatesFragment } - if (VERSION.SDK_INT >= VERSION_CODES.O) { - viewModel.createNotificationChannels() - } + + viewModel.createNotificationChannels() + viewModel.setupConnectivityManager(this.applicationContext) diff --git a/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt b/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt index 030755e7d..e1b754c20 100644 --- a/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt +++ b/app/src/main/java/foundation/e/apps/ui/MainActivityViewModel.kt @@ -116,7 +116,6 @@ class MainActivityViewModel @Inject constructor( * Notification functions */ - @RequiresApi(Build.VERSION_CODES.O) fun createNotificationChannels() { appManagerWrapper.createNotificationChannels() } diff --git a/app/src/main/java/foundation/e/apps/ui/purchase/AppPurchaseFragment.kt b/app/src/main/java/foundation/e/apps/ui/purchase/AppPurchaseFragment.kt index 1c6ab8df4..c49336d72 100644 --- a/app/src/main/java/foundation/e/apps/ui/purchase/AppPurchaseFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/purchase/AppPurchaseFragment.kt @@ -57,9 +57,7 @@ class AppPurchaseFragment : Fragment() { cookieManager.acceptThirdPartyCookies(binding.playStoreWebView) cookieManager.setAcceptThirdPartyCookies(binding.playStoreWebView, true) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - binding.playStoreWebView.settings.safeBrowsingEnabled = false - } + binding.playStoreWebView.settings.safeBrowsingEnabled = false binding.playStoreWebView.webViewClient = object : WebViewClient() { override fun onPageFinished(view: WebView, url: String) { diff --git a/app/src/main/java/foundation/e/apps/ui/setup/signin/google/GoogleSignInFragment.kt b/app/src/main/java/foundation/e/apps/ui/setup/signin/google/GoogleSignInFragment.kt index 3f85ffe12..94b5d1fa5 100644 --- a/app/src/main/java/foundation/e/apps/ui/setup/signin/google/GoogleSignInFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/setup/signin/google/GoogleSignInFragment.kt @@ -64,9 +64,7 @@ class GoogleSignInFragment : Fragment(R.layout.fragment_google_signin) { cookieManager.acceptThirdPartyCookies(binding.webview) cookieManager.setAcceptThirdPartyCookies(binding.webview, true) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - binding.webview.settings.safeBrowsingEnabled = false - } + binding.webview.settings.safeBrowsingEnabled = false binding.webview.webViewClient = object : WebViewClient() { override fun onPageFinished(view: WebView, url: String) { diff --git a/app/src/main/java/foundation/e/apps/utils/CustomUncaughtExceptionHandler.kt b/app/src/main/java/foundation/e/apps/utils/CustomUncaughtExceptionHandler.kt index b280350f8..659d5f369 100644 --- a/app/src/main/java/foundation/e/apps/utils/CustomUncaughtExceptionHandler.kt +++ b/app/src/main/java/foundation/e/apps/utils/CustomUncaughtExceptionHandler.kt @@ -81,17 +81,15 @@ class CustomUncaughtExceptionHandler @Inject constructor( } private fun createNotificationChannel() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - val id = context.getString(R.string.warning_notification_channel_id) - val title = context.getString(R.string.warning_notification_channel_title) + val id = context.getString(R.string.warning_notification_channel_id) + val title = context.getString(R.string.warning_notification_channel_title) - val channel = NotificationChannel( - id, title, NotificationManager.IMPORTANCE_DEFAULT - ) + val channel = NotificationChannel( + id, title, NotificationManager.IMPORTANCE_DEFAULT + ) - val notificationManager: NotificationManager = - context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager - notificationManager.createNotificationChannel(channel) - } + val notificationManager: NotificationManager = + context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager + notificationManager.createNotificationChannel(channel) } } -- GitLab From abcc189b3effcbf1ecd2001505c7b3a2cbdeaadd Mon Sep 17 00:00:00 2001 From: vincent Bourgmayer Date: Thu, 17 Oct 2024 10:38:50 +0200 Subject: [PATCH 3/6] remove launcher icon used for android version below API 26 and rename mipmap-anydpi-v26 in mipmap-anydpi --- .../ic_launcher.xml | 0 app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 1768 -> 0 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 1244 -> 0 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.webp | Bin 2306 -> 0 bytes app/src/main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 3392 -> 0 bytes app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 4422 -> 0 bytes 6 files changed, 0 insertions(+), 0 deletions(-) rename app/src/main/res/{mipmap-anydpi-v26 => mipmap-anydpi}/ic_launcher.xml (100%) delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.webp delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.webp delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.webp delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.webp delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi/ic_launcher.xml similarity index 100% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to app/src/main/res/mipmap-anydpi/ic_launcher.xml diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp deleted file mode 100644 index c2e7af314936596b9b6aac76d321ddd225a923bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1768 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 cGavGrIe*T4CcGbIj$ja`~HWW`1p|!eShV_>!@W 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 Date: Thu, 17 Oct 2024 10:59:53 +0200 Subject: [PATCH 4/6] rename mipmap-anydpi into mipmap --- app/src/main/res/{mipmap-anydpi => mipmap}/ic_launcher.xml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename app/src/main/res/{mipmap-anydpi => mipmap}/ic_launcher.xml (100%) diff --git a/app/src/main/res/mipmap-anydpi/ic_launcher.xml b/app/src/main/res/mipmap/ic_launcher.xml similarity index 100% rename from app/src/main/res/mipmap-anydpi/ic_launcher.xml rename to app/src/main/res/mipmap/ic_launcher.xml -- GitLab From 49021d3e5e4e08f3c059c3a9c853da0a9249bd87 Mon Sep 17 00:00:00 2001 From: vincent Bourgmayer Date: Thu, 17 Oct 2024 12:10:18 +0200 Subject: [PATCH 5/6] refactor: move call to createNotificationChannel in the application class and remove its call from UpdateNotifier From Rabbit suggestion --- app/src/main/java/foundation/e/apps/AppLoungeApplication.kt | 3 ++- .../foundation/e/apps/install/updates/UpdatesNotifier.kt | 5 +---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/foundation/e/apps/AppLoungeApplication.kt b/app/src/main/java/foundation/e/apps/AppLoungeApplication.kt index 12af89dcf..49b20f479 100644 --- a/app/src/main/java/foundation/e/apps/AppLoungeApplication.kt +++ b/app/src/main/java/foundation/e/apps/AppLoungeApplication.kt @@ -32,6 +32,7 @@ import foundation.e.apps.data.preference.AppLoungeDataStore import foundation.e.apps.data.preference.AppLoungePreference import foundation.e.apps.install.pkg.AppLoungePackageManager import foundation.e.apps.install.pkg.PkgManagerBR +import foundation.e.apps.install.updates.UpdatesNotifier import foundation.e.apps.install.updates.UpdatesWorkManager import foundation.e.apps.install.workmanager.InstallWorkManager import foundation.e.apps.ui.setup.tos.TOS_VERSION @@ -71,7 +72,7 @@ class AppLoungeApplication : Application(), Configuration.Provider { super.onCreate() Thread.setDefaultUncaughtExceptionHandler(uncaughtExceptionHandler) - + UpdatesNotifier.createNotificationChannel(this) InstallWorkManager.context = this // Register broadcast receiver for package manager val pkgManagerBR = object : PkgManagerBR() {} diff --git a/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt b/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt index 3f55ae189..d08aab869 100644 --- a/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt +++ b/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt @@ -25,7 +25,6 @@ import android.app.PendingIntent import android.content.Context import android.content.Intent import android.content.pm.PackageManager -import android.os.Build import androidx.core.app.ActivityCompat import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat @@ -106,7 +105,7 @@ object UpdatesNotifier { return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE) } - private fun createNotificationChannel(context: Context) { + fun createNotificationChannel(context: Context) { val importance = NotificationManager.IMPORTANCE_DEFAULT val channel = NotificationChannel( UPDATES_NOTIFICATION_CHANNEL_ID, @@ -126,7 +125,6 @@ object UpdatesNotifier { isConnectedToUnmeteredNetwork: Boolean ) { with(NotificationManagerCompat.from(context)) { - createNotificationChannel(context) if (ActivityCompat.checkSelfPermission(context, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED ) { @@ -151,7 +149,6 @@ object UpdatesNotifier { message: String, ) { with(NotificationManagerCompat.from(context)) { - createNotificationChannel(context) if (ActivityCompat.checkSelfPermission(context, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED ) { -- GitLab From b61fffbafd9b8dacf5f9c765aa65cdebdf65d0db Mon Sep 17 00:00:00 2001 From: vincent Bourgmayer Date: Fri, 18 Oct 2024 10:01:06 +0200 Subject: [PATCH 6/6] Revert "refactor: move call to createNotificationChannel in the application class and remove its call from UpdateNotifier" This reverts commit 49021d3e5e4e08f3c059c3a9c853da0a9249bd87. --- app/src/main/java/foundation/e/apps/AppLoungeApplication.kt | 3 +-- .../foundation/e/apps/install/updates/UpdatesNotifier.kt | 5 ++++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/foundation/e/apps/AppLoungeApplication.kt b/app/src/main/java/foundation/e/apps/AppLoungeApplication.kt index 49b20f479..12af89dcf 100644 --- a/app/src/main/java/foundation/e/apps/AppLoungeApplication.kt +++ b/app/src/main/java/foundation/e/apps/AppLoungeApplication.kt @@ -32,7 +32,6 @@ import foundation.e.apps.data.preference.AppLoungeDataStore import foundation.e.apps.data.preference.AppLoungePreference import foundation.e.apps.install.pkg.AppLoungePackageManager import foundation.e.apps.install.pkg.PkgManagerBR -import foundation.e.apps.install.updates.UpdatesNotifier import foundation.e.apps.install.updates.UpdatesWorkManager import foundation.e.apps.install.workmanager.InstallWorkManager import foundation.e.apps.ui.setup.tos.TOS_VERSION @@ -72,7 +71,7 @@ class AppLoungeApplication : Application(), Configuration.Provider { super.onCreate() Thread.setDefaultUncaughtExceptionHandler(uncaughtExceptionHandler) - UpdatesNotifier.createNotificationChannel(this) + InstallWorkManager.context = this // Register broadcast receiver for package manager val pkgManagerBR = object : PkgManagerBR() {} diff --git a/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt b/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt index d08aab869..3f55ae189 100644 --- a/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt +++ b/app/src/main/java/foundation/e/apps/install/updates/UpdatesNotifier.kt @@ -25,6 +25,7 @@ import android.app.PendingIntent import android.content.Context import android.content.Intent import android.content.pm.PackageManager +import android.os.Build import androidx.core.app.ActivityCompat import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat @@ -105,7 +106,7 @@ object UpdatesNotifier { return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE) } - fun createNotificationChannel(context: Context) { + private fun createNotificationChannel(context: Context) { val importance = NotificationManager.IMPORTANCE_DEFAULT val channel = NotificationChannel( UPDATES_NOTIFICATION_CHANNEL_ID, @@ -125,6 +126,7 @@ object UpdatesNotifier { isConnectedToUnmeteredNetwork: Boolean ) { with(NotificationManagerCompat.from(context)) { + createNotificationChannel(context) if (ActivityCompat.checkSelfPermission(context, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED ) { @@ -149,6 +151,7 @@ object UpdatesNotifier { message: String, ) { with(NotificationManagerCompat.from(context)) { + createNotificationChannel(context) if (ActivityCompat.checkSelfPermission(context, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED ) { -- GitLab