diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 70bbb1b4..839cecbb 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -61,7 +61,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Setup Java 17
uses: actions/setup-java@v3
with:
@@ -76,7 +76,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Setup Java 17
uses: actions/setup-java@v3
with:
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 1940c05c..87abe6fd 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: "Checkout Repo"
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: "Setup Java 17"
uses: actions/setup-java@v3
with:
@@ -31,13 +31,13 @@ jobs:
uses: actions/upload-artifact@v3
with:
name: Debug APK
- path: zeapp/app/build/outputs/apk/debug/app-debug.apk
+ path: zeapp/android/build/outputs/apk/debug/android-debug.apk
format:
runs-on: ubuntu-latest
steps:
- name: "Checkout Repo"
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: "Setup Java 17"
uses: actions/setup-java@v3
with:
@@ -53,7 +53,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: "Checkout Repo"
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: "Setup Java 17"
uses: actions/setup-java@v3
with:
@@ -68,7 +68,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: "Checkout Repo"
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: "Setup Java 17"
uses: actions/setup-java@v3
with:
@@ -83,7 +83,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: "Checkout Repo"
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: "Setup Java 17"
uses: actions/setup-java@v3
with:
diff --git a/zeapp/.gitignore b/zeapp/.gitignore
index 10c6bb43..e4b1e65b 100644
--- a/zeapp/.gitignore
+++ b/zeapp/.gitignore
@@ -13,4 +13,4 @@
.externalNativeBuild
.cxx
local.properties
-versions.properties
\ No newline at end of file
+versions.properties!/versions.properties
diff --git a/zeapp/android/.gitignore b/zeapp/android/.gitignore
deleted file mode 100644
index 42afabfd..00000000
--- a/zeapp/android/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
\ No newline at end of file
diff --git a/zeapp/android/build.gradle.kts b/zeapp/android/build.gradle.kts
index 331bdbce..7c0eec1b 100644
--- a/zeapp/android/build.gradle.kts
+++ b/zeapp/android/build.gradle.kts
@@ -82,7 +82,7 @@ android {
buildConfigField(
"String",
"OPEN_API_TOKEN",
- "\"${System.getenv("DALE2_TOKEN")}\"" ?: "\"\"",
+ "\"${System.getenv("DALE2_TOKEN")}\"",
)
firebaseAppDistribution {
@@ -160,9 +160,9 @@ detekt {
baseline = file("detekt-baseline.xml")
buildUponDefaultConfig = true
reports {
- html { enabled = true }
- xml { enabled = true }
- txt { enabled = false }
+ html { required = true }
+ xml { required = true }
+ txt { required = false }
}
}
diff --git a/zeapp/android/detekt-baseline.xml b/zeapp/android/detekt-baseline.xml
index 7726be0e..25fdef37 100644
--- a/zeapp/android/detekt-baseline.xml
+++ b/zeapp/android/detekt-baseline.xml
@@ -2,126 +2,10 @@
- CyclomaticComplexMethod:ZeBarcodePainter.kt$@Composable fun rememberBarcodeBitmapPainter( content: String, size: Dp = 140.dp, padding: Dp = 0.dp, widthSize: Dp = 220.dp, ): BitmapPainter
- CyclomaticComplexMethod:ZeQRPainter.kt$@Composable fun rememberQrBitmapPainter( content: String, size: Dp = 150.dp, padding: Dp = 0.dp, ): BitmapPainter
- ForEachOnRange:ZeBadgeViewModel.kt$ZeBadgeViewModel$forEach { progress -> messageProgress.value = 1.0f - progress / MESSAGE_DISPLAY_UPDATES.toFloat() delay(MESSAGE_DISPLAY_DURATION / MESSAGE_DISPLAY_UPDATES) }
- ForbiddenComment:ZeBadgeViewModel.kt$ZeBadgeViewModel$// TODO: Fetch Schedule here.
- ForbiddenComment:ZeBadgeViewModel.kt$ZeBadgeViewModel$// TODO: Fetch from shared
- ForbiddenComment:ZeConfiguration.kt$ZeConfiguration$// TODO: Add your own pages.
- ForbiddenComment:ZeConfiguration.kt$ZeConfiguration.Schedule$* TODO: This configuration is a place holder to entice you, the reader to build it * * Think of it as a teaser: How would you configure a page that contains the schedule of * the droidcon 2023 in Berlin? * * @param bitmap the schedule to be displayed as a page.
- ForbiddenComment:ZePreferencesService.kt$ZePreferencesService$// TODO: Save schedule
- FunctionNaming:ZeBadgeSimulator.kt$@Composable @Preview(device = "spec:parent=pixel_3a_xl,orientation=landscape", showSystemUi = true) fun BadgeSimulator( @PreviewParameter(BinaryBitmapPageProvider::class, 1) page: Bitmap, modifier: Modifier = Modifier, onButtonPressed: (buttonForSlot: ZeSlot) -> Unit = {}, )
- FunctionNaming:ZeBarCodeEditorDialog.kt$@Composable fun BarCodeEditorDialog( activity: Activity, config: ZeConfiguration.BarCode, dismissed: () -> Unit = {}, accepted: (config: ZeConfiguration.BarCode) -> Unit )
- FunctionNaming:ZeBarCodePage.kt$@Composable @Preview fun BarCodePage( title: String = "Hello, my github profile is", url: String = "https://github.com/gdg-berlin-android", )
- FunctionNaming:ZeBinaryImageEditor.kt$@Composable @Preview fun BinaryImageEditor( @PreviewParameter(BinaryBitmapPageProvider::class, 1) bitmap: Bitmap, bitmapUpdated: (Bitmap) -> Unit = {} )
- FunctionNaming:ZeImageDrawEditorDialog.kt$@ExperimentalMaterial3Api @Preview @Composable fun ZeImageDrawEditorDialog( initialPrompt: String = "Unicorn at an android conference in isometric view.", dismissed: () -> Unit = {}, accepted: (config: ZeConfiguration.ImageDraw) -> Unit = {}, )
- FunctionNaming:ZeImageGenerationEditorDialog.kt$@ExperimentalMaterial3Api @Preview @Composable fun ImageGenerationEditorDialog( initialPrompt: String = "Unicorn at an android conference in isometric view.", dismissed: () -> Unit = {}, accepted: (config: ZeConfiguration.ImageGen) -> Unit = {}, )
- FunctionNaming:ZeMainActivity.kt$@Composable @OptIn(ExperimentalMaterial3Api::class) private fun ZeTopBar( onSaveAllClick: () -> Unit, onRandomClick: () -> Unit, onAboutClick: () -> Unit, isShowingAbout: Boolean, )
- FunctionNaming:ZeMainActivity.kt$@Composable @OptIn(ExperimentalMaterial3WindowSizeClassApi::class) private fun DrawUi(viewModel: ZeBadgeViewModel)
- FunctionNaming:ZeMainActivity.kt$@Composable @Preview private fun InfoBar( message: String = "Very Important", progress: Float = 0.5f, copyMoreToClipboard: (() -> Unit) = {}, )
- FunctionNaming:ZeMainActivity.kt$@Composable @Preview private fun PagePreview( @PreviewParameter(BinaryBitmapPageProvider::class, 1) bitmap: Bitmap, name: String, customizeThisPage: (() -> Unit)? = null, resetThisPage: (() -> Unit)? = null, sendToDevice: (() -> Unit)? = null, )
- FunctionNaming:ZeMainActivity.kt$@Composable private fun Activity.ProvideLocalActivity(content: @Composable () -> Unit)
- FunctionNaming:ZeMainActivity.kt$@Composable private fun CameraEditor( editor: ZeEditor, config: ZeConfiguration.Camera, vm: ZeBadgeViewModel )
- FunctionNaming:ZeMainActivity.kt$@Composable private fun CompactUi(vm: ZeBadgeViewModel)
- FunctionNaming:ZeMainActivity.kt$@Composable private fun LargeScreenUi(vm: ZeBadgeViewModel)
- FunctionNaming:ZeMainActivity.kt$@Composable private fun SelectedEditor( editor: ZeEditor, vm: ZeBadgeViewModel )
- FunctionNaming:ZeMainActivity.kt$@Composable private fun TemplateChooserDialog( vm: ZeBadgeViewModel, templateChooser: ZeTemplateChooser? )
- FunctionNaming:ZeMainActivity.kt$@Composable private fun ZeAbout( paddingValues: PaddingValues, vm: ZeBadgeViewModel, )
- FunctionNaming:ZeMainActivity.kt$@Composable private fun ZePages( paddingValues: PaddingValues, vm: ZeBadgeViewModel, lazyListState: LazyListState )
- FunctionNaming:ZeMainActivity.kt$@Composable private fun ZeScreen(vm: ZeBadgeViewModel, modifier: Modifier = Modifier)
- FunctionNaming:ZeNameEditorDialog.kt$@Composable fun ClearIcon(isEmpty: Boolean, modifier: Modifier = Modifier, onClick: () -> Unit)
- FunctionNaming:ZeNameEditorDialog.kt$@Composable fun NameEditorDialog( config: ZeConfiguration.Name, dismissed: () -> Unit = {}, accepted: (config: ZeConfiguration.Name) -> Unit )
- FunctionNaming:ZeNamePage.kt$@Composable @Preview fun NamePage( name: String = "Your Name Here", contact: String = "Contact Me Here", )
- FunctionNaming:ZeNavigationPad.kt$@Composable fun ZeNavigationPad( lazyListState: LazyListState )
- FunctionNaming:ZePictureEditorDialog.kt$@Composable fun PictureEditorDialog( dismissed: () -> Unit = {}, accepted: (config: ZeConfiguration.Picture) -> Unit )
- FunctionNaming:ZeQRCodeEditorDialog.kt$@Composable fun QRCodeEditorDialog( config: ZeConfiguration.QRCode, dismissed: () -> Unit = {}, accepted: (config: ZeConfiguration.QRCode) -> Unit )
- FunctionNaming:ZeQRCodePage.kt$@Composable @Preview fun QRCodePage( title: String = "Hello, my github profile is", url: String = "https://github.com/gdg-berlin-android", )
- FunctionNaming:ZeTheme.kt$@Composable fun ZeBadgeAppTheme( darkTheme: Boolean = isSystemInDarkTheme(), // Dynamic color is available on Android 12+ dynamicColor: Boolean = false, content: @Composable () -> Unit )
- FunctionNaming:ZeToolButton.kt$@Composable @Preview fun ToolButton( imageVector: ImageVector = Icons.Filled.Send, text: String = "Send", onClick: () -> Unit = {} )
- FunctionNaming:ZeToolButton.kt$@Composable @Preview fun ToolButton( painter: Painter = painterResource(id = R.drawable.ic_call_decline), text: String = "Decline", onClick: () -> Unit = {} )
- FunctionNaming:ZeVloatingScroller.kt$@Composable fun ZeVloatingScroller( coroutineScope: CoroutineScope, lazyListState: LazyListState, scrollLength: Float, text: String )
- FunctionNaming:ZeWeatherEditorDialog.kt$@Composable fun WeatherEditorDialog( activity: Activity, config: ZeConfiguration.Weather, dismissed: () -> Unit = {}, accepted: (config: ZeConfiguration.Weather) -> Unit )
- FunctionNaming:ZeWeatherPage.kt$@Composable @Preview fun WeatherPage( date: String = "2023-07-06", temperature: String = "22C", )
- LongMethod:ZeBadgeSimulator.kt$@Composable @Preview(device = "spec:parent=pixel_3a_xl,orientation=landscape", showSystemUi = true) fun BadgeSimulator( @PreviewParameter(BinaryBitmapPageProvider::class, 1) page: Bitmap, modifier: Modifier = Modifier, onButtonPressed: (buttonForSlot: ZeSlot) -> Unit = {}, )
- LongMethod:ZeBadgeViewModel.kt$ZeBadgeViewModel$fun customizeSlot(slot: ZeSlot)
- LongMethod:ZeBinaryImageEditor.kt$@Composable @Preview fun BinaryImageEditor( @PreviewParameter(BinaryBitmapPageProvider::class, 1) bitmap: Bitmap, bitmapUpdated: (Bitmap) -> Unit = {} )
- LongMethod:ZeImageDrawEditorDialog.kt$@ExperimentalMaterial3Api @Preview @Composable fun ZeImageDrawEditorDialog( initialPrompt: String = "Unicorn at an android conference in isometric view.", dismissed: () -> Unit = {}, accepted: (config: ZeConfiguration.ImageDraw) -> Unit = {}, )
- LongMethod:ZeImageGenerationEditorDialog.kt$@ExperimentalMaterial3Api @Preview @Composable fun ImageGenerationEditorDialog( initialPrompt: String = "Unicorn at an android conference in isometric view.", dismissed: () -> Unit = {}, accepted: (config: ZeConfiguration.ImageGen) -> Unit = {}, )
- LongMethod:ZeMainActivity.kt$@Composable @Preview private fun PagePreview( @PreviewParameter(BinaryBitmapPageProvider::class, 1) bitmap: Bitmap, name: String, customizeThisPage: (() -> Unit)? = null, resetThisPage: (() -> Unit)? = null, sendToDevice: (() -> Unit)? = null, )
- LongMethod:ZeMainActivity.kt$@Composable private fun SelectedEditor( editor: ZeEditor, vm: ZeBadgeViewModel )
- LongMethod:ZeNameEditorDialog.kt$@Composable fun NameEditorDialog( config: ZeConfiguration.Name, dismissed: () -> Unit = {}, accepted: (config: ZeConfiguration.Name) -> Unit )
- LongMethod:ZePictureEditorDialog.kt$@Composable fun PictureEditorDialog( dismissed: () -> Unit = {}, accepted: (config: ZeConfiguration.Picture) -> Unit )
- LongMethod:ZeQRCodeEditorDialog.kt$@Composable fun QRCodeEditorDialog( config: ZeConfiguration.QRCode, dismissed: () -> Unit = {}, accepted: (config: ZeConfiguration.QRCode) -> Unit )
- LongMethod:ZeWeatherEditorDialog.kt$@Composable fun WeatherEditorDialog( activity: Activity, config: ZeConfiguration.Weather, dismissed: () -> Unit = {}, accepted: (config: ZeConfiguration.Weather) -> Unit )
- MagicNumber:ZeBadgeSimulator.kt$.1f
- MagicNumber:ZeBadgeSimulator.kt$.2f
- MagicNumber:ZeBadgeSimulator.kt$.76f
- MagicNumber:ZeBadgeSimulator.kt$1.5f
- MagicNumber:ZeBadgeUploader.kt$64
- MagicNumber:ZeBadgeUploader.kt$ZeBadgeUploader$115200
- MagicNumber:ZeBadgeUploader.kt$ZeBadgeUploader$3_000
- MagicNumber:ZeBadgeViewModel.kt$ZeBadgeViewModel$10
- MagicNumber:ZeBarCodePage.kt$0xFF801000
- MagicNumber:ZeBitmapManipulation.kt$0.0722f
- MagicNumber:ZeBitmapManipulation.kt$0.2126f
- MagicNumber:ZeBitmapManipulation.kt$0.7152f
- MagicNumber:ZeBitmapManipulation.kt$255
- MagicNumber:ZeBitmapManipulation.kt$7
- MagicNumber:ZeColor.kt$0xFF0014E5
- MagicNumber:ZeColor.kt$0xFF20201E
- MagicNumber:ZeColor.kt$0xFF3FE4C4
- MagicNumber:ZeColor.kt$0xFF4D5BED
- MagicNumber:ZeColor.kt$0xFF9FF2E2
- MagicNumber:ZeColor.kt$0xFFFA6E50
- MagicNumber:ZeFloydSteinberg.kt$128
- MagicNumber:ZeFloydSteinberg.kt$16.0f
- MagicNumber:ZeFloydSteinberg.kt$255
- MagicNumber:ZeFloydSteinberg.kt$3
- MagicNumber:ZeFloydSteinberg.kt$5
- MagicNumber:ZeFloydSteinberg.kt$7
- MagicNumber:ZeImageGenerationEditorDialog.kt$0.1f
- MagicNumber:ZeImageGenerationEditorDialog.kt$0.8f
- MagicNumber:ZeMainActivity.kt$.3f
- MagicNumber:ZeNamePage.kt$0xFF801000
- MagicNumber:ZeNavigationPad.kt$425f
- MagicNumber:ZePositional.kt$128
- MagicNumber:ZePositional.kt$255
- MagicNumber:ZePositional.kt$4.0f
- MagicNumber:ZeQRCodePage.kt$0xFF000000
- MagicNumber:ZeStaticPattern.kt$0xFF
- MagicNumber:ZeStaticPattern.kt$128
- MagicNumber:ZeStaticPattern.kt$255
- MagicNumber:ZeWeatherPage.kt$0xFF4444FF
- NestedBlockDepth:ZeStaticPattern.kt$fun Bitmap.ditherStaticPattern(): Bitmap
- NewLineAtEndOfFile:ZeBadgeUploader.kt$de.berlindroid.zeapp.zeservices.ZeBadgeUploader.kt
- NewLineAtEndOfFile:ZeBarCodeEditorDialog.kt$de.berlindroid.zeapp.zeui.ZeBarCodeEditorDialog.kt
- NewLineAtEndOfFile:ZeBarCodePage.kt$de.berlindroid.zeapp.zeui.zepages.ZeBarCodePage.kt
- NewLineAtEndOfFile:ZeBarcodePainter.kt$de.berlindroid.zeapp.zeui.ZeBarcodePainter.kt
- NewLineAtEndOfFile:ZeBitmapUtils.kt$de.berlindroid.zeapp.zeui.utils.ZeBitmapUtils.kt
- NewLineAtEndOfFile:ZeConfiguration.kt$de.berlindroid.zeapp.zemodels.ZeConfiguration.kt
- NewLineAtEndOfFile:ZeDimen.kt$de.berlindroid.zeapp.ZeDimen.kt
- NewLineAtEndOfFile:ZeFileProvider.kt$de.berlindroid.zeapp.ZeFileProvider.kt
- NewLineAtEndOfFile:ZeNamePage.kt$de.berlindroid.zeapp.zeui.zepages.ZeNamePage.kt
- NewLineAtEndOfFile:ZeNavigationPad.kt$de.berlindroid.zeapp.zeui.ZeNavigationPad.kt
- NewLineAtEndOfFile:ZePictureEditorDialog.kt$de.berlindroid.zeapp.zeui.ZePictureEditorDialog.kt
- NewLineAtEndOfFile:ZeQRCodePage.kt$de.berlindroid.zeapp.zeui.zepages.ZeQRCodePage.kt
- NewLineAtEndOfFile:ZeQRPainter.kt$de.berlindroid.zeapp.zeui.ZeQRPainter.kt
- NewLineAtEndOfFile:ZeTheme.kt$de.berlindroid.zeapp.zeui.zetheme.ZeTheme.kt
- NewLineAtEndOfFile:ZeToolButton.kt$de.berlindroid.zeapp.zeui.ZeToolButton.kt
- NewLineAtEndOfFile:ZeType.kt$de.berlindroid.zeapp.zeui.zetheme.ZeType.kt
- NewLineAtEndOfFile:ZeWeatherEditorDialog.kt$de.berlindroid.zeapp.zeui.ZeWeatherEditorDialog.kt
- NewLineAtEndOfFile:ZeWeatherPage.kt$de.berlindroid.zeapp.zeui.zepages.ZeWeatherPage.kt
- PrintStackTrace:ZeBadgeUploader.kt$e
- SwallowedException:ZeBarcodePainter.kt$ex: WriterException
- SwallowedException:ZeQRPainter.kt$ex: WriterException
- SwallowedException:ZeWeatherService.kt$e: Exception
- TooGenericExceptionCaught:ZeWeatherService.kt$e: Exception
- TooManyFunctions:ZeBadgeViewModel.kt$ZeBadgeViewModel : ViewModel
- TooManyFunctions:ZeBitmapManipulation.kt$de.berlindroid.zeapp.zebits.ZeBitmapManipulation.kt
- TopLevelPropertyNaming:ZeNameEditorDialog.kt$/** * Editor dialog for changing the name of the participant badge. * * @param config configuration of the slot, containing details to be displayed * @param dismissed callback called when dialog is dismissed / cancelled * @param accepted callback called with the new configuration configured. */ const val MaxCharacters: Int = 20
- TopLevelPropertyNaming:ZeNameEditorDialog.kt$private const val Empty = ""
- UnusedParameter:ZeBadgeUploader.kt$ZeBadgeUploader$name: String
- UnusedParameter:ZeImageDrawEditorDialog.kt$initialPrompt: String = "Unicorn at an android conference in isometric view."
- UnusedParameter:ZeTheme.kt$dynamicColor: Boolean = false
+ OptionalWhenBraces:ZeMainActivity.kt$is ZeConfiguration.Kodee -> { vm.slotConfigured(editor.slot, config) }
+ OptionalWhenBraces:ZeMainActivity.kt$is ZeConfiguration.Quote -> { RandomQuotesEditorDialog( accepted = { vm.slotConfigured(editor.slot, it) }, dismissed = { vm.slotConfigured(null, null) }, config = config, snackbarMessage = vm::showSnackBar, ) }
+ OptionalWhenBraces:ZePreferencesService.kt$ZePreferencesService$ZeBadgeType.NAME -> { ZeConfiguration.Name( name = slot.preferencesValue("name"), contact = slot.preferencesValue("contact"), bitmap = bitmap, ) }
+ OptionalWhenBraces:ZePreferencesService.kt$ZePreferencesService$is ZeConfiguration.CustomPhrase -> { preferences[slot.preferencesKey("random_phrase")] = config.phrase }
+ OptionalWhenBraces:ZePreferencesService.kt$ZePreferencesService$is ZeConfiguration.ImageGen -> { preferences[slot.preferencesKey("prompt")] = config.prompt }
diff --git a/zeapp/android/src/main/AndroidManifest.xml b/zeapp/android/src/main/AndroidManifest.xml
index de606d78..9c75d80d 100644
--- a/zeapp/android/src/main/AndroidManifest.xml
+++ b/zeapp/android/src/main/AndroidManifest.xml
@@ -14,7 +14,7 @@
android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="true"
android:theme="@style/Theme.ZeBadgeApp"
- tools:targetApi="31">
+ tools:targetApi="34">
("pixel6Api31") {
+ create("pixel6Api34") {
device = "Pixel 6"
- apiLevel = 31
+ apiLevel = 34
systemImageSource = "aosp"
}
}
@@ -48,14 +48,14 @@ android {
}
dependencies {
- implementation("androidx.test.ext:junit:1.1.5")
- implementation("androidx.test.uiautomator:uiautomator:2.2.0")
- implementation("androidx.benchmark:benchmark-macro-junit4:1.2.0-alpha16")
+ implementation(libs.androidx.test.ext.junit)
+ implementation(libs.androidx.uiautomator)
+ implementation(libs.androidx.benchmark.macro.junit4)
}
baselineProfile {
// This specifies the managed devices to use that you run the tests on. The
// default is none.
- managedDevices += "pixel6Api31"
+ managedDevices += "pixel6Api34"
}
diff --git a/zeapp/build.gradle.kts b/zeapp/build.gradle.kts
index 2c26cedb..ad3284d3 100644
--- a/zeapp/build.gradle.kts
+++ b/zeapp/build.gradle.kts
@@ -11,7 +11,7 @@ plugins {
alias(libs.plugins.firebase.crashlytics) apply false
alias(libs.plugins.license.report.gradle) apply false
id("com.android.test") version "8.0.2" apply false
- kotlin("multiplatform").version("1.8.21").apply(false)
+ kotlin("multiplatform").version("1.9.10").apply(false)
}
tasks.register("clean", Delete::class) {
diff --git a/zeapp/gradle.properties b/zeapp/gradle.properties
index 0351a348..ddc3d44d 100644
--- a/zeapp/gradle.properties
+++ b/zeapp/gradle.properties
@@ -28,5 +28,5 @@ android.nonTransitiveRClass=true
kotlin.mpp.enableCInteropCommonization=true
kotlin.mpp.androidSourceSetLayoutVersion=2
-kotlin.version=1.9.0
-compose.version=1.4.3
+kotlin.version=1.9.10
+compose.version=1.5.3
diff --git a/zeapp/gradle/libs.versions.toml b/zeapp/gradle/libs.versions.toml
index 1ed2ac21..98e4b7be 100644
--- a/zeapp/gradle/libs.versions.toml
+++ b/zeapp/gradle/libs.versions.toml
@@ -17,40 +17,43 @@ license-report-gradle = { id = "com.jaredsburrows.license", version.ref = "licen
[versions]
-android-gradle-plugin = "8.1.1"
-androidx-activity = "1.7.2"
-androidx-compose-bom = "2023.08.00"
-androidx-compose-compiler = "1.5.2"
-androidx-core = "1.10.1"
+android-gradle-plugin = "8.1.2"
+androidx-activity = "1.8.0"
+androidx-compose-bom = "2023.10.00"
+androidx-compose-compiler = "1.5.3"
+androidx-core = "1.12.0"
androidx-datastore = "1.0.0"
-androidx-lifecycle = "2.6.1"
+androidx-lifecycle = "2.6.2"
androidx-test-ext-junit = "1.1.5"
appcompat = "1.6.1"
benchmark = "1.2.0-alpha16"
-core-ktx = "1.10.1"
-dagger-hilt = "2.46.1"
-detekt-gradle = "1.23.0"
+benchmarkMacroJunit4 = "1.2.0-rc02"
+core-ktx = "1.12.0"
+dagger-hilt = "2.48.1"
+detekt-gradle = "1.23.1"
espresso-core = "3.5.1"
-firebase = "32.2.3"
+firebase = "32.3.1"
firebase-appdistribution = "4.0.0"
-firebase-crashlytics = "2.9.6"
-google-play-services = "4.3.15"
+firebase-crashlytics = "2.9.9"
+google-play-services = "4.4.0"
jSerialComm = "2.10.3"
junit = "4.13.2"
-kotlin = "1.9.0"
+kotlin = "1.9.10"
kotlinx-coroutines-core = "1.7.3"
-ktlint-gradle = "11.5.0"
+ktlint-gradle = "11.6.1"
license-report-gradle = "0.9.3"
-material = "1.9.0"
-material3-wsc = "1.1.1"
-mik3y-usb-serial = "3.5.1"
+material = "1.10.0"
+material3-wsc = "1.1.2"
+mik3y-usb-serial = "3.6.0"
retrofit = "2.9.0"
timber = "5.0.1"
-zxing ="3.5.1"
+uiautomator = "2.2.0"
+zxing ="3.5.2"
[libraries]
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity" }
+androidx-benchmark-macro-junit4 = { module = "androidx.benchmark:benchmark-macro-junit4", version.ref = "benchmarkMacroJunit4" }
androidx-compose-bom = { module = "androidx.compose:compose-bom", version.ref = "androidx-compose-bom" }
androidx-compose-material3 = { module = "androidx.compose.material3:material3" }
androidx-compose-ui-graphics = { module = "androidx.compose.ui:ui-graphics" }
@@ -62,6 +65,7 @@ androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidx
androidx-datastore = { module = "androidx.datastore:datastore-preferences", version.ref = "androidx-datastore" }
androidx-lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidx-lifecycle" }
androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-test-ext-junit" }
+androidx-uiautomator = { module = "androidx.test.uiautomator:uiautomator", version.ref = "uiautomator" }
appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
coil-compose = "io.coil-kt:coil-compose:2.4.0"
coil-transformations = "com.github.Commit451.coil-transformations:transformations:2.0.2"
@@ -83,10 +87,9 @@ retrofit2-retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref =
timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" }
zxing = { module = "com.google.zxing:core", version.ref = "zxing" }
-
-test-assertk = "com.willowtreeapps.assertk:assertk-jvm:0.26.1"
+test-assertk = "com.willowtreeapps.assertk:assertk-jvm:0.27.0"
test-junit = "junit:junit:4.13.2"
-test-compose-junit = "androidx.compose.ui:ui-test-junit4:1.5.0"
-test-compose-manifest = "androidx.compose.ui:ui-test-manifest:1.5.0"
-test-mockk = "io.mockk:mockk:1.13.5"
+test-compose-junit = "androidx.compose.ui:ui-test-junit4:1.5.3"
+test-compose-manifest = "androidx.compose.ui:ui-test-manifest:1.5.3"
+test-mockk = "io.mockk:mockk:1.13.8"
test-coroutines = "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3"
diff --git a/zeapp/gradle/wrapper/gradle-wrapper.properties b/zeapp/gradle/wrapper/gradle-wrapper.properties
index bf01c4d1..8838ba97 100644
--- a/zeapp/gradle/wrapper/gradle-wrapper.properties
+++ b/zeapp/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/zeapp/settings.gradle.kts b/zeapp/settings.gradle.kts
index fe2d5cb2..8d595248 100644
--- a/zeapp/settings.gradle.kts
+++ b/zeapp/settings.gradle.kts
@@ -14,7 +14,7 @@ pluginManagement {
plugins {
// See https://jmfayard.github.io/refreshVersions
- id("de.fayard.refreshVersions") version "0.51.0"
+ id("de.fayard.refreshVersions") version "0.60.3"
}
refreshVersions {