diff --git a/.github/workflows/android_ci.yml b/.github/workflows/android_ci.yml index a6b108ad..3b2cc951 100644 --- a/.github/workflows/android_ci.yml +++ b/.github/workflows/android_ci.yml @@ -129,4 +129,5 @@ jobs: adb shell pm list packages >/dev/null sleep 10 adb shell getprop sys.boot_completed - ./gradlew connectedCoreDebugAndroidTest --stacktrace + ./gradlew connectedConjugateDebugAndroidTest --stacktrace + ./gradlew connectedKeyboardsDebugAndroidTest --stacktrace diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 81b5e876..b3e548f4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -46,6 +46,27 @@ android { testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } + + productFlavors { + create("keyboards") { + applicationIdSuffix = ".keyboards" + isDefault = true + resValue( + "string", + "app_launcher_name", + "Scribe" + ) + } + create("conjugate") { + applicationIdSuffix = ".conjugate" + resValue( + "string", + "app_launcher_name", + "Conjugate" + ) + } + } + packaging { resources { pickFirsts.add("META-INF/LICENSE*") @@ -114,10 +135,7 @@ android { } flavorDimensions.add("variants") - productFlavors { - create("core") - create("fdroid") - } + sourceSets { getByName("main").java.srcDirs("src/main/kotlin") diff --git a/app/src/conjugate/ic_launcher-playstore.png b/app/src/conjugate/ic_launcher-playstore.png new file mode 100644 index 00000000..06fc5b22 Binary files /dev/null and b/app/src/conjugate/ic_launcher-playstore.png differ diff --git a/app/src/conjugate/java/be/scri/activities/MainActivity.kt b/app/src/conjugate/java/be/scri/activities/MainActivity.kt new file mode 100644 index 00000000..d8aa98f8 --- /dev/null +++ b/app/src/conjugate/java/be/scri/activities/MainActivity.kt @@ -0,0 +1,30 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +@file:Suppress("ktlint:standard:kdoc") +/** + * Implements the main activity with a custom action bar, ViewPager navigation, and dynamic UI adjustments. + */ + +package be.scri.activities + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import be.scri.ui.screens.SampleScreen + +/** + * The main entry point of the app. + * Initializes theme settings, navigation, and sets up the main UI using Jetpack Compose. + */ +class MainActivity : ComponentActivity() { + /** + * Initializes the app on launch. Sets the theme based on user preferences, sets up edge-to-edge + * layout, and builds the UI using Compose. + */ + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + setContent { + SampleScreen() + } + } +} diff --git a/app/src/conjugate/java/be/scri/ui/screens/SampleScreen.kt b/app/src/conjugate/java/be/scri/ui/screens/SampleScreen.kt new file mode 100644 index 00000000..08dfa9a7 --- /dev/null +++ b/app/src/conjugate/java/be/scri/ui/screens/SampleScreen.kt @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +package be.scri.ui.screens + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier + +@Composable +fun SampleScreen(modifier: Modifier = Modifier) { + MaterialTheme { + Box( + modifier = modifier.fillMaxSize(), + contentAlignment = Alignment.Center, + ) { + Text( + text = "Conjugate App", + style = MaterialTheme.typography.bodyLarge, + ) + } + } +} diff --git a/app/src/conjugate/res/drawable/ic_launcher_background.xml b/app/src/conjugate/res/drawable/ic_launcher_background.xml new file mode 100644 index 00000000..ca3826a4 --- /dev/null +++ b/app/src/conjugate/res/drawable/ic_launcher_background.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/conjugate/res/drawable/ic_launcher_foreground.xml b/app/src/conjugate/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 00000000..0520adc1 --- /dev/null +++ b/app/src/conjugate/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + diff --git a/app/src/conjugate/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/conjugate/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 00000000..bbd3e021 --- /dev/null +++ b/app/src/conjugate/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/conjugate/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/conjugate/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 00000000..bbd3e021 --- /dev/null +++ b/app/src/conjugate/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/conjugate/res/mipmap-hdpi/ic_launcher.webp b/app/src/conjugate/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 00000000..2a1b5c9d Binary files /dev/null and b/app/src/conjugate/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/app/src/conjugate/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/conjugate/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 00000000..0fa18337 Binary files /dev/null and b/app/src/conjugate/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/app/src/conjugate/res/mipmap-mdpi/ic_launcher.webp b/app/src/conjugate/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 00000000..e5ca338e Binary files /dev/null and b/app/src/conjugate/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/app/src/conjugate/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/conjugate/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 00000000..8157d818 Binary files /dev/null and b/app/src/conjugate/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/app/src/conjugate/res/mipmap-xhdpi/ic_launcher.webp b/app/src/conjugate/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 00000000..1a6729bc Binary files /dev/null and b/app/src/conjugate/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/app/src/conjugate/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/conjugate/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 00000000..c674c6a2 Binary files /dev/null and b/app/src/conjugate/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/app/src/conjugate/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/conjugate/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 00000000..576eb1fb Binary files /dev/null and b/app/src/conjugate/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/app/src/conjugate/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/conjugate/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 00000000..0b0da68b Binary files /dev/null and b/app/src/conjugate/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/app/src/conjugate/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/conjugate/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 00000000..820132e4 Binary files /dev/null and b/app/src/conjugate/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/app/src/conjugate/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/conjugate/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 00000000..cbbc8b9c Binary files /dev/null and b/app/src/conjugate/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/app/src/debug/res/values/strings.xml b/app/src/debug/res/values/strings.xml deleted file mode 100644 index 045e125f..00000000 --- a/app/src/debug/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/app/src/main/java/be/scri/activities/MainActivity.kt b/app/src/keyboards/java/be/scri/activities/MainActivity.kt similarity index 100% rename from app/src/main/java/be/scri/activities/MainActivity.kt rename to app/src/keyboards/java/be/scri/activities/MainActivity.kt diff --git a/build.gradle.kts b/build.gradle.kts index 8dcd4fa6..6e9b2aea 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,7 +13,7 @@ buildscript { dependencies { classpath("io.nlopez.compose.rules:ktlint:0.4.17") - classpath("com.android.tools.build:gradle:8.7.0") + classpath("com.android.tools.build:gradle:8.13.2") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.0") classpath("io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.23.8") classpath("org.jlleitschuh.gradle:ktlint-gradle:12.1.1") diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0d8f4d4e..b94a71a3 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Tue Jan 04 09:48:27 CET 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME