Skip to content

feat: Add Android Studio Project Wizard and on-device execution engine - #9

Closed
Afton-programmer wants to merge 6 commits into
HanzoDev30:mainfrom
Afton-programmer:feat/android-studio-wizard
Closed

Afton-programmer wants to merge 6 commits into
HanzoDev30:mainfrom
Afton-programmer:feat/android-studio-wizard

Conversation

@Afton-programmer

Copy link
Copy Markdown
Contributor

Summary of Changes

This pull request introduces a full Android Studio-grade project creation wizard and on-device execution pipeline for Ghostide:

1. Android Studio Project Wizard (AndroidStudioProjectDialog)

  • Accessible directly from the speed-dial Floating Action Button via the new Android logo (ic_android.xml).
  • Supports 4 major form factors / categories:
    • Phone & Tablet
    • Wear OS (Smartwatches)
    • Android TV (Television)
    • Automotive (Android Auto & AAOS)
  • Implements 16 complete activity templates across Phone, Wear OS, Android TV, and Automotive with Jetpack Compose, XML ViewBinding, and Material 3 design tokens.

2. Standard Android Studio Project Generator (AndroidProjectGenerator)

  • Generates genuine Android Studio project structures:
    • Bundled Gradle 8.9 wrapper (gradlew, gradlew.bat, gradle-wrapper.jar, gradle-wrapper.properties).
    • Version Catalog (gradle/libs.versions.toml).
    • Root settings.gradle / settings.gradle.kts and build.gradle / build.gradle.kts.
    • gradle.properties (Java 17, AndroidX).
    • Release keystore generator script (generate-keystore.sh).
    • Module build.gradle with signing configs (debug & release), Java 17 compatibility, composeOptions, and viewBinding.
    • Full AndroidManifest.xml and resource suites (M3 themes, night themes, adaptive icons, layouts).

3. On-Device Run & Build Pipeline (CodeRuner)

  • Enhanced CodeRuner to detect Android projects when running Java or Kotlin files.
  • Executes gradlew assembleDebug and automatically opens/installs the resulting APK on the device.

- Disable continuous per-frame dynamic background in ExpandableLayout
- Share RecycledViewPool across all setting section RecyclerViews
- Cache and avoid redundant background drawable allocations in PreferenceSwitchGroup
- Eliminate quadratic DiffUtil and post() queue spam in SettingsAdapter
- Cache preference accesses in ShapeUtil
- Debounce search queries to 200ms
@HanzoDev30 HanzoDev30 closed this Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants