diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6d9e742..c4fa47b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,11 +1,12 @@ plugins { alias(libs.plugins.android.application) alias(libs.plugins.jetbrains.kotlin.android) + alias(libs.plugins.compose.compiler) } android { namespace = "com.mensinator.app" - compileSdk = 34 + compileSdk = 35 defaultConfig { applicationId = "com.mensinator.app" @@ -30,18 +31,15 @@ android { } } compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = "1.8" + jvmTarget = "17" } buildFeatures { compose = true } - composeOptions { - kotlinCompilerExtensionVersion = "1.5.1" - } androidResources { generateLocaleConfig = true } diff --git a/app/lint.xml b/app/lint.xml new file mode 100644 index 0000000..7bee6ca --- /dev/null +++ b/app/lint.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/java/com/mensinator/app/NotificationReceiver.kt b/app/src/main/java/com/mensinator/app/NotificationReceiver.kt index dfec0df..b3804d7 100644 --- a/app/src/main/java/com/mensinator/app/NotificationReceiver.kt +++ b/app/src/main/java/com/mensinator/app/NotificationReceiver.kt @@ -17,9 +17,12 @@ class NotificationReceiver : BroadcastReceiver() { .setPriority(NotificationCompat.PRIORITY_HIGH) val notificationManager = NotificationManagerCompat.from(context) - notificationManager.notify(NOTIFICATION_ID, notificationBuilder.build()) - - Log.d("NotificationReceiver", "Notification sent") + try { + notificationManager.notify(NOTIFICATION_ID, notificationBuilder.build()) + Log.d("NotificationReceiver", "Notification sent") + } catch (e: SecurityException) { + Log.e("NotificationReceiver", "Notification permission not available", e) + } } companion object { diff --git a/app/src/main/java/com/mensinator/app/SettingsDialog.kt b/app/src/main/java/com/mensinator/app/SettingsDialog.kt index b0d3536..c558a85 100644 --- a/app/src/main/java/com/mensinator/app/SettingsDialog.kt +++ b/app/src/main/java/com/mensinator/app/SettingsDialog.kt @@ -567,7 +567,7 @@ fun openNotificationSettings(context: Context) { fun getAppVersion(context: Context): String { return try { val packageInfo = context.packageManager.getPackageInfo(context.packageName, 0) - packageInfo.versionName // Returns the version name, e.g., "1.8.4" + packageInfo.versionName ?: throw PackageManager.NameNotFoundException() // Returns the version name, e.g., "1.8.4" } catch (e: PackageManager.NameNotFoundException) { "Unknown" // Fallback if the version name is not found } diff --git a/build.gradle.kts b/build.gradle.kts index f74b04b..f41eb6b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,4 +2,5 @@ plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.jetbrains.kotlin.android) apply false + alias(libs.plugins.compose.compiler) apply false } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fdcb303..cc6d274 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,28 +1,24 @@ [versions] -agp = "8.5.0" -kotlin = "1.9.0" -coreKtx = "1.13.1" +agp = "8.7.2" +kotlin = "2.0.21" +core = "1.15.0" junit = "4.13.2" junitVersion = "1.2.1" espressoCore = "3.6.1" -lifecycleRuntimeKtx = "2.8.3" -activityCompose = "1.9.0" -composeBom = "2024.04.01" +lifecycle = "2.8.7" +activity = "1.9.3" +composeBom = "2024.10.01" window = "1.3.0" -workRuntimeKtx = "2.9.0" -places = "3.5.0" appcompat = "1.7.0" -navigationRuntimeKtx = "2.7.7" -navigationCompose = "2.7.7" -navigationCommonKtx = "2.7.7" +navigation = "2.8.3" [libraries] -androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } +androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "core" } junit = { group = "junit", name = "junit", version.ref = "junit" } androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } -androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" } -androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" } +androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycle" } +androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activity" } androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" } androidx-ui = { group = "androidx.compose.ui", name = "ui" } androidx-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" } @@ -32,14 +28,13 @@ androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-man androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } androidx-material3 = { group = "androidx.compose.material3", name = "material3" } androidx-window = { group = "androidx.window", name = "window", version.ref = "window" } -androidx-work-runtime-ktx = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "workRuntimeKtx" } -places = { group = "com.google.android.libraries.places", name = "places", version.ref = "places" } androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } -androidx-navigation-runtime-ktx = { group = "androidx.navigation", name = "navigation-runtime-ktx", version.ref = "navigationRuntimeKtx" } -androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigationCompose" } -androidx-navigation-common-ktx = { group = "androidx.navigation", name = "navigation-common-ktx", version.ref = "navigationCommonKtx" } +androidx-navigation-runtime-ktx = { group = "androidx.navigation", name = "navigation-runtime-ktx", version.ref = "navigation" } +androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigation" } +androidx-navigation-common-ktx = { group = "androidx.navigation", name = "navigation-common-ktx", version.ref = "navigation" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" } jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 381baa9..6acc143 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=544c35d6bd849ae8a5ed0bcea39ba677dc40f49df7d1835561582da2009b961d -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionSha256Sum=2ab88d6de2c23e6adae7363ae6e29cbdd2a709e992929b48b6530fd0c7133bd6 +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME