From 61ce4803cf850abe54c2631b0243c776266e4396 Mon Sep 17 00:00:00 2001 From: Alexis Tercero Date: Wed, 18 Feb 2026 15:14:15 -0600 Subject: [PATCH 01/46] Update Kotlin version and add Parcelize plugin support - Update Kotlin version from 2.0.21 to 2.1.0 in `libs.versions.toml` - Add `kotlin-parcelize` plugin configuration to version catalogs and project-level build files - Upgrade Java Toolchain and JVM target from version 11 to 17 - Migrate `kotlinOptions` to the new `kotlin` extension DSL for JVM target configuration Signed-off-by: Alexis Tercero #4 --- app/build.gradle.kts | 16 +++++++++++----- build.gradle.kts | 2 +- gradle/libs.versions.toml | 5 +++-- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 312898c..1499afa 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -2,6 +2,7 @@ plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) alias(libs.plugins.kotlin.compose) + alias(libs.plugins.kotlin.parcelize) id("kotlin-kapt") } @@ -29,18 +30,23 @@ android { } } compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } - kotlinOptions { - jvmTarget = "11" + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } + buildFeatures { compose = true dataBinding = true } } +// Add the new DSL here +kotlin { + compilerOptions { + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17) + } +} + dependencies { implementation(libs.androidx.core.ktx) diff --git a/build.gradle.kts b/build.gradle.kts index 952b930..ff05b50 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,6 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.kotlin.compose) apply false + alias(libs.plugins.kotlin.parcelize) apply false } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5d464bd..9cadb0e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,7 @@ [versions] agp = "8.12.3" -kotlin = "2.0.21" +kotlin = "2.1.0" +kotlinParcelize = "2.3.10" coreKtx = "1.17.0" junit = "4.13.2" junitVersion = "1.3.0" @@ -29,4 +30,4 @@ androidx-material3 = { group = "androidx.compose.material3", name = "material3" android-application = { id = "com.android.application", version.ref = "agp" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } - +kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlinParcelize" } \ No newline at end of file From 785637df73cb932c486a545f895be57edfb2fcb2 Mon Sep 17 00:00:00 2001 From: Alexis Tercero Date: Wed, 18 Feb 2026 18:07:24 -0600 Subject: [PATCH 02/46] Enable Jetifier and add Fragment KTX dependency - Enable `android.enableJetifier` in `gradle.properties` to support legacy library migration - Add `androidx-fragment-ktx` version 1.8.9 to version catalog and include it as a dependency in `app/build.gradle.kts` Signed-off-by: Alexis Tercero #4 --- app/build.gradle.kts | 1 + gradle.properties | 1 + gradle/libs.versions.toml | 2 ++ 3 files changed, 4 insertions(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1499afa..5e0f851 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -57,6 +57,7 @@ dependencies { implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.tooling.preview) implementation(libs.androidx.material3) + implementation(libs.androidx.fragment.ktx) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) diff --git a/gradle.properties b/gradle.properties index 20e2a01..68c91ae 100644 --- a/gradle.properties +++ b/gradle.properties @@ -15,6 +15,7 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 # Android operating system, and which are packaged with your app's APK # https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true +android.enableJetifier=true # Kotlin code style for this project: "official" or "obsolete": kotlin.code.style=official # Enables namespacing of each library's R class so that its R class includes only the diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9cadb0e..db0621b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,6 @@ [versions] agp = "8.12.3" +fragmentKtx = "1.8.9" kotlin = "2.1.0" kotlinParcelize = "2.3.10" coreKtx = "1.17.0" @@ -12,6 +13,7 @@ composeBom = "2024.09.00" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } +androidx-fragment-ktx = { module = "androidx.fragment:fragment-ktx", version.ref = "fragmentKtx" } 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" } From ea6f80c6eed3e11150089eaa306a1c2efd960d49 Mon Sep 17 00:00:00 2001 From: Alexis Tercero Date: Sun, 22 Feb 2026 09:54:28 -0600 Subject: [PATCH 03/46] Update Android manifest configuration - Update application and activity theme from `Theme.UI` to `Theme.RhoStudio` - Set `launchMode` to `singleTop` for `MainActivity` - Remove redundant label and clean up whitespace in `MainActivity` declaration Signed-off-by: Alexis Tercero --- app/src/main/AndroidManifest.xml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cab9de0..509af97 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,15 +10,13 @@ android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - android:theme="@style/Theme.UI"> + android:theme="@style/Theme.RhoStudio"> + android:launchMode="singleTop"> - From 43881dbb362f48f5c7394b5778912405a0ae2265 Mon Sep 17 00:00:00 2001 From: Alexis Tercero Date: Sun, 22 Feb 2026 09:56:09 -0600 Subject: [PATCH 04/46] Add dependencies and configure viewBinding and sourceSets - Add `gson`, `material` (Google), and Data Binding `compiler` dependencies to `libs.versions.toml` and `app/build.gradle.kts` - Enable `viewBinding` in `buildFeatures` - Explicitly configure `sourceSets` for `java` and `res` directories in `app/build.gradle.kts` - Apply `kapt` for the Data Binding compiler implementation Signed-off-by: Alexis Tercero --- app/build.gradle.kts | 19 +++++++++++++++++++ gradle/libs.versions.toml | 6 ++++++ 2 files changed, 25 insertions(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5e0f851..7b83811 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -37,6 +37,22 @@ android { buildFeatures { compose = true dataBinding = true + viewBinding = true // Optional but recommended + } + + sourceSets { + getByName("main") { + // Java/Kotlin source directories + java.srcDirs( + "src/main/java" // This includes everything under java/ + // No need to list each feature separately + ) + + // Resource directories - THIS IS KEY FOR FEATURE RESOURCES + res.srcDirs( + "src/main/res" // Global resources + ) + } } } @@ -58,6 +74,9 @@ dependencies { implementation(libs.androidx.ui.tooling.preview) implementation(libs.androidx.material3) implementation(libs.androidx.fragment.ktx) + implementation(libs.gson) + implementation(libs.material) + kapt(libs.compiler) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index db0621b..9a87292 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,8 @@ [versions] agp = "8.12.3" +compiler = "3.1.4" fragmentKtx = "1.8.9" +gson = "2.13.2" kotlin = "2.1.0" kotlinParcelize = "2.3.10" coreKtx = "1.17.0" @@ -10,10 +12,13 @@ espressoCore = "3.7.0" lifecycleRuntimeKtx = "2.9.4" activityCompose = "1.11.0" composeBom = "2024.09.00" +material = "1.13.0" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } androidx-fragment-ktx = { module = "androidx.fragment:fragment-ktx", version.ref = "fragmentKtx" } +compiler = { module = "com.android.databinding:compiler", version.ref = "compiler" } +gson = { module = "com.google.code.gson:gson", version.ref = "gson" } 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" } @@ -27,6 +32,7 @@ androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-toolin androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } androidx-material3 = { group = "androidx.compose.material3", name = "material3" } +material = { group = "com.google.android.material", name = "material", version.ref = "material" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" } From 9ad1477c2514026f4bda19267e070d8a5dad7f25 Mon Sep 17 00:00:00 2001 From: Alexis Tercero Date: Sun, 22 Feb 2026 09:57:22 -0600 Subject: [PATCH 05/46] Add RhoStudio theme and expand UI resources - Define `Theme.RhoStudio` with MaterialComponents DayNight configuration and standard brand colors - Add new Samsung device profiles (Galaxy A14 5G and A16 5G) to device streaming cache - Update `strings.xml` with comprehensive login validation messages, hints, and a success notification - Add `error` and `success` color resources to `colors.xml` - Rename `app_name` to "RhoStudio UI" Signed-off-by: Alexis Tercero --- .gradle/file-system.probe | Bin 8 -> 8 bytes .idea/caches/deviceStreaming.xml | 24 ++++++++++++++++++++++++ app/src/main/res/values/colors.xml | 2 ++ app/src/main/res/values/strings.xml | 12 ++++++++++-- app/src/main/res/values/themes.xml | 11 +++++++++++ 5 files changed, 47 insertions(+), 2 deletions(-) diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index 01018246f81eb044ab6a4f8a07471356899158bb..fb78d046fbbe5f4b7a47283a2ae9b8a497cf7ac3 100644 GIT binary patch literal 8 PcmZQzV4PE9x9bJ~2oM75 literal 8 PcmZQzV4M@IwXh8U2CM=? diff --git a/.idea/caches/deviceStreaming.xml b/.idea/caches/deviceStreaming.xml index 4390067..5c94783 100644 --- a/.idea/caches/deviceStreaming.xml +++ b/.idea/caches/deviceStreaming.xml @@ -148,6 +148,18 @@