Skip to content

Commit ebf1d37

Browse files
Migrate to Kotlin and Jetpack Compose with modern architecture
Major refactoring to modernize the codebase: - Migrated all Java activities to Kotlin - MainActivity.kt with Compose UI - FilePickerActivity.kt with Compose UI - ProgressActivity.kt with Compose UI - Implemented MVVM architecture with ViewModel pattern - MainViewModel with StateFlow for reactive state management - FilePickerViewModel for file navigation state - ProgressViewModel with coroutine-based polling - Migrated all UI to Jetpack Compose - Material 3 design system - Dark theme with Purple80 accent colors - Custom composables in ui/ package - Removed legacy XML layouts - Fixed batch progress bug: When multiple RPA files are selected, the progress screen now correctly displays batch information (e.g., "Extracting RPA... (2 of 5)") using ViewModel state - Improved code organization - ViewModels in viewmodel/ package - Composables in ui/ package - Better separation of concerns 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 086ce97 commit ebf1d37

21 files changed

Lines changed: 2470 additions & 1803 deletions

app/build.gradle

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
plugins {
22
alias(libs.plugins.android.application)
3+
alias(libs.plugins.kotlin.android)
4+
alias(libs.plugins.kotlin.compose)
35
id 'com.chaquo.python'
46
}
57

@@ -58,14 +60,46 @@ android {
5860
sourceCompatibility JavaVersion.VERSION_17
5961
targetCompatibility JavaVersion.VERSION_17
6062
}
63+
64+
kotlinOptions {
65+
jvmTarget = '17'
66+
}
67+
68+
buildFeatures {
69+
compose = true
70+
}
6171
}
6272

6373
dependencies {
74+
// AndroidX Core
6475
implementation libs.appcompat
6576
implementation libs.material
6677
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.2.0'
6778
implementation 'androidx.documentfile:documentfile:1.0.1'
6879

80+
// Compose BOM (manages Compose versions)
81+
implementation platform(libs.compose.bom)
82+
implementation libs.compose.ui
83+
implementation libs.compose.ui.tooling.preview
84+
implementation libs.compose.material3
85+
implementation libs.compose.material.icons.extended
86+
debugImplementation libs.compose.ui.tooling
87+
debugImplementation libs.compose.ui.test.manifest
88+
89+
// Compose Integration
90+
implementation libs.activity.compose
91+
implementation libs.lifecycle.viewmodel.compose
92+
implementation libs.lifecycle.runtime.compose
93+
implementation libs.navigation.compose
94+
95+
// Lifecycle & ViewModel
96+
implementation libs.lifecycle.viewmodel.ktx
97+
implementation libs.lifecycle.runtime.ktx
98+
99+
// Coroutines
100+
implementation libs.kotlinx.coroutines.android
101+
implementation libs.kotlinx.coroutines.core
102+
69103
// JSON parsing for update checker
70104
implementation 'com.google.code.gson:gson:2.10.1'
71105

@@ -74,6 +108,7 @@ dependencies {
74108
implementation 'io.github.rosemoe:editor'
75109
implementation 'io.github.rosemoe:language-textmate'
76110

111+
// Testing
77112
testImplementation libs.junit
78113
androidTestImplementation libs.ext.junit
79114
androidTestImplementation libs.espresso.core

app/src/main/java/com/renpytool/FileItem.java

Lines changed: 0 additions & 67 deletions
This file was deleted.

0 commit comments

Comments
 (0)