Skip to content

ADFA-4192 | Remove built-in CV module and add external plugin screen support#1352

Merged
jatezzz merged 4 commits into
stagefrom
feat/ADFA-4192-plugin-api-cv-support-experimental
Jun 1, 2026
Merged

ADFA-4192 | Remove built-in CV module and add external plugin screen support#1352
jatezzz merged 4 commits into
stagefrom
feat/ADFA-4192-plugin-api-cv-support-experimental

Conversation

@jatezzz
Copy link
Copy Markdown
Collaborator

@jatezzz jatezzz commented May 29, 2026

Description

This PR decouples the computer vision feature from the core application by completely removing the hardcoded cv-image-to-xml module. To support this and future features as standalone plugins, it introduces a generic PluginScreenActivity and extends IdeUIService. This allows the IDE to host full-screen, plugin-owned fragments dynamically.

Details

  • Deleted the cv-image-to-xml module and removed its dependencies from settings.gradle.kts and app/build.gradle.kts.
  • Removed the built-in GenerateXMLAction.
  • Added PluginScreenActivity to handle dynamic instantiation of plugin fragments via PluginFragmentFactory.
  • Exposed openPluginScreen in IdeServices and implemented it in IdeUIServiceImpl.
  • Updated PluginActionItem to support isEnabledProvider and isVisibleProvider for dynamic UI states.
  • Added the CAMERA permission to the base AndroidManifest.xml to support the upcoming external CV plugin.
Screen.Recording.2026-05-29.at.3.18.53.PM.mov

Ticket

ADFA-4192

Observation

The CV image-to-XML functionality will be temporarily unavailable in the core app until the new standalone plugin is compiled and installed. Testing should focus on verifying that plugin screens can be launched successfully via the new openPluginScreen API method.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 29, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8e9c638b-c686-4673-9424-c58423f99e66

📥 Commits

Reviewing files that changed from the base of the PR and between ef13604 and dc3b624.

📒 Files selected for processing (1)
  • plugin-api/src/main/kotlin/com/itsaky/androidide/plugins/extensions/UIExtension.kt
🚧 Files skipped from review as they are similar to previous changes (1)
  • plugin-api/src/main/kotlin/com/itsaky/androidide/plugins/extensions/UIExtension.kt

📝 Walkthrough

Release Notes

Features

  • Plugin Screen Support: Added openPluginScreen API in IdeServices to dynamically instantiate and display plugin-owned full-screen fragments via PluginScreenActivity
  • Dynamic UI State Providers: Extended PluginActionItem with isEnabledProvider and isVisibleProvider for runtime-driven menu item visibility and enabled states
  • External Plugin Ready: Added CAMERA permission to base manifest to support external computer vision plugins

Changes

  • Removed built-in cv-image-to-xml module and all related computer vision components:
    • Deleted GenerateXMLAction from editor toolbar
    • Removed ComputerVisionModule from Koin DI configuration
    • Removed all CV domain logic, data repositories, ML Kit integration, YOLO inference, OCR processing, and XML generation
    • Removed ComputerVisionActivity and related UI components (ZoomableImageView, GuidelinesView)
  • Updated Gradle dependencies: removed :cv-image-to-xml module from build configuration
  • Added new PluginScreenActivity to handle dynamic plugin fragment instantiation

⚠️ Breaking Changes & Risks

  • Feature Unavailability: CV image-to-XML functionality will be temporarily unavailable in the core app until external plugin is compiled and installed
  • API Breaking Change: Removed GenerateXMLAction - existing code referencing this class will fail at compile time
  • Silent Failure: PluginScreenActivity logs instantiation errors but fails silently from the user perspective when:
    • Plugin is not installed or unavailable
    • Fragment class cannot be found or instantiated
    • Missing required intent extras
    • Risk: Users receive no error message or feedback when plugin launch fails
  • Plugin Dependency: Core feature is now externalized; CV functionality requires separate plugin installation and management
  • Intent Security: New com.itsaky.androidide.plugins.OPEN_PLUGIN_SCREEN intent action not explicitly protected with permissions

Recommendations for Review

  1. Add user-facing error dialog/toast when plugin screen launch fails
  2. Implement retry mechanism or plugin installation guidance on missing plugin
  3. Test plugin screen launch across edge cases: missing plugin, corrupted plugin, incompatible fragment
  4. Consider adding permission protection to OPEN_PLUGIN_SCREEN intent action
  5. Update documentation to specify plugin interface/contract for CV plugins
  6. Establish clear versioning/compatibility contract between core and plugin APIs

Walkthrough

Adds plugin fullscreen host APIs and PluginScreenActivity, enables dynamic menu item providers, and removes the cv-image-to-xml module from the app build, DI, resources, and related editor action registration.

Changes

Plugin Fullscreen UI Infrastructure

Layer / File(s) Summary
Plugin screen API contract and constants
plugin-api/src/main/kotlin/com/itsaky/androidide/plugins/services/IdeServices.kt
IdeUIService adds openPluginScreen(pluginId, fragmentClassName, title?) and intent/action extra constants.
Plugin service implementation
plugin-manager/src/main/kotlin/com/itsaky/androidide/plugins/manager/services/IdeUIServiceImpl.kt
Implements openPluginScreen() by constructing an Intent with plugin id/fragment class/title extras and attempting to start the host activity.
Plugin screen host activity and fragment loading
app/src/main/java/com/itsaky/androidide/activities/PluginScreenActivity.kt
Adds PluginScreenActivity that validates intent extras, resolves plugin class loader, registers PluginFragmentFactory, instantiates the plugin fragment into a FrameLayout container, and unregisters mappings on destroy.
Manifest and permission registration
app/src/main/AndroidManifest.xml
Adds android.permission.CAMERA and registers non-exported PluginScreenActivity with an intent-filter for com.itsaky.androidide.plugins.OPEN_PLUGIN_SCREEN.
Menu item dynamic visibility and enablement
plugin-api/src/main/kotlin/com/itsaky/androidide/plugins/extensions/UIExtension.kt, app/src/main/java/com/itsaky/androidide/actions/PluginActionItem.kt
MenuItem gains isEnabledProvider/isVisibleProvider lambdas; PluginActionItem.prepare() uses these providers when present.

Removal of Built-in CV Module

Layer / File(s) Summary
Build system cleanup
app/build.gradle.kts, settings.gradle.kts
Removes projects.cvImageToXml from app dependencies and drops :cv-image-to-xml from the project include list.
App DI and action registration cleanup
app/src/main/java/com/itsaky/androidide/app/IDEApplication.kt, app/src/main/java/com/itsaky/androidide/utils/EditorActivityActions.kt
Removes computerVisionModule from Koin startup and unregisters GenerateXMLAction from editor action registration; updates imports accordingly.
Resource and module deletions
app/src/main/res/values/ids.xml, cv-image-to-xml/src/main/...
Adds plugin_screen_container id; deletes many cv-image-to-xml internals and resources (utilities like XmlContext, ValueCleaner, PlaceholderUtils, and numerous CV module source and resource files) as part of module removal.

Sequence Diagram

sequenceDiagram
  participant Caller
  participant IdeUIServiceImpl
  participant PluginScreenActivity
  participant FragmentFactory
  Caller->>IdeUIServiceImpl: openPluginScreen(pluginId, fragmentClassName, title?)
  IdeUIServiceImpl->>PluginScreenActivity: startActivity(Intent ACTION_OPEN_PLUGIN_SCREEN + extras)
  PluginScreenActivity->>IdeUIServiceImpl: resolve plugin class loader (IDEApplication.getPluginManager())
  PluginScreenActivity->>FragmentFactory: register PluginFragmentFactory with plugin class loader
  PluginScreenActivity->>FragmentFactory: fragmentClass.instantiate(classLoader)
  FragmentFactory->>PluginScreenActivity: Fragment instance
  PluginScreenActivity->>PluginScreenActivity: replace fragment in `@id/plugin_screen_container`
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested reviewers

  • itsaky-adfa
  • dara-abijo-adfa
  • avestaadfa
  • Daniel-ADFA

"A rabbit hopped in code tonight,
Plugins bloom in fullscreen light.
CV's module took a gentle rest,
New fragment hosts load up the best.
Hooray — the plugin dance feels right!" 🐇✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 15.38% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: removing the built-in CV module and adding external plugin screen support.
Description check ✅ Passed The description is well-related to the changeset, providing detailed context about removing the cv-image-to-xml module and adding PluginScreenActivity support.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/ADFA-4192-plugin-api-cv-support-experimental

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/src/main/AndroidManifest.xml`:
- Line 28: The core AndroidManifest currently declares android.permission.CAMERA
unconditionally; remove that <uses-permission> from
app/src/main/AndroidManifest.xml and instead add the CAMERA permission
declaration to the CV/plugin module's manifest (or the specific feature
manifest) so the permission is only requested when the feature is included; if
the camera is actually required by the core app, add a short justification to
the repo docs and keep the permission in the core manifest. Reference
PluginScreenActivity (and any CV/plugin module entry points) to locate the
appropriate feature manifest to receive the CAMERA permission.

In `@app/src/main/java/com/itsaky/androidide/activities/PluginScreenActivity.kt`:
- Around line 78-90: Wrap the call to
supportFragmentManager.fragmentFactory.instantiate(...) inside a try/catch that
catches Fragment.InstantiationException (and optionally Exception for safety) in
loadPluginFragment; if instantiation fails, log the error (including
fragmentClassName) and call finish() to gracefully close the activity instead of
proceeding, and skip the beginTransaction/.replace/.commit sequence (use
TAG_PLUGIN_SCREEN for logging/context).
- Around line 52-61: bindLayout() is creating a volatile container id with
View.generateViewId() which prevents restored fragments from re-attaching;
change it to inflate or create a FrameLayout with a stable resource id (e.g.,
use R.id.plugin_screen_container or inflate a layout containing that id) instead
of generating a new id, and update any references to containerId. Also harden
loadPluginFragment() by wrapping the call to
PluginFragmentFactory.instantiate(...) in a try/catch to handle and log
instantiation failures (class not found/classloader issues) and provide a safe
fallback (show an error UI, skip loading, or finish the activity) rather than
allowing the exception to crash the app.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: faf534d1-832c-4f70-94ec-0d72915076b1

📥 Commits

Reviewing files that changed from the base of the PR and between 7defc84 and bbe9040.

📒 Files selected for processing (100)
  • app/build.gradle.kts
  • app/src/main/AndroidManifest.xml
  • app/src/main/java/com/itsaky/androidide/actions/PluginActionItem.kt
  • app/src/main/java/com/itsaky/androidide/actions/etc/GenerateXMLAction.kt
  • app/src/main/java/com/itsaky/androidide/activities/PluginScreenActivity.kt
  • app/src/main/java/com/itsaky/androidide/app/IDEApplication.kt
  • app/src/main/java/com/itsaky/androidide/utils/EditorActivityActions.kt
  • cv-image-to-xml/build.gradle.kts
  • cv-image-to-xml/src/androidTest/java/com/example/images/ExampleInstrumentedTest.kt
  • cv-image-to-xml/src/main/AndroidManifest.xml
  • cv-image-to-xml/src/main/assets/best_float32.tflite
  • cv-image-to-xml/src/main/assets/labels.txt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/data/repository/DrawableImportHelper.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/data/repository/VisionRepository.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/data/repository/VisionRepositoryImpl.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/data/source/OcrSource.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/data/source/YoloModelSource.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/di/ComputerVisionModule.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/DetectionMerger.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/DetectionScaler.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/GenericBoxResolver.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/LayoutTreeBuilder.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/MarginAnnotationParser.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/RegionOcrProcessor.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/TextAssociator.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/WidgetAnnotationMatcher.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/WidgetTagParser.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/YoloToXmlConverter.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/grammar/AttributeValidator.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/grammar/UiGrammarValidator.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/grammar/WidgetGrammar.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/model/DetectionResult.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/model/LayoutItem.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/model/ScaledBox.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/parser/AttributeModels.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/parser/FuzzyAttributeParser.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/parser/ValueCleaner.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/parser/ValueCleanersImpl.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/parser/sanitizer/CompositeOcrSanitizer.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/parser/sanitizer/OcrSanitizer.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/parser/sanitizer/OcrSanitizerFactory.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/parser/sanitizer/OcrSanitizerRules.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/usecase/GenerateXmlUC.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/usecase/ImportPlaceholderImageUC.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/usecase/PrepareImageUC.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/usecase/RemovePlaceholderImageUC.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/usecase/RunVisionUC.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/xml/AndroidConstants.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/xml/AndroidWidget.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/xml/AndroidXmlGenerator.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/xml/LayoutRenderer.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/xml/WidgetFactory.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/xml/XmlContext.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/ui/ComputerVisionActivity.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/ui/ComputerVisionEvent.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/ui/ComputerVisionUiState.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/ui/GuidelinesView.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/ui/ZoomableImageView.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/ui/viewmodel/ComputerVisionViewModel.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/BitmapUtils.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/CvAnalyticsUtils.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/DetectionVisualizer.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/MetadataDetector.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/OcrExtensions.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/OcrTextAssembler.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/PlaceholderUtils.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/SmartBoundaryDetector.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/TextCleaner.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/XmlFileManager.kt
  • cv-image-to-xml/src/main/res/drawable/ic_launcher_background.xml
  • cv-image-to-xml/src/main/res/drawable/ic_placeholder_delete.xml
  • cv-image-to-xml/src/main/res/drawable/ic_placeholder_upload.xml
  • cv-image-to-xml/src/main/res/layout/activity_computer_vision.xml
  • cv-image-to-xml/src/main/res/layout/testing_result.xml
  • cv-image-to-xml/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
  • cv-image-to-xml/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
  • cv-image-to-xml/src/main/res/mipmap-hdpi/ic_launcher.webp
  • cv-image-to-xml/src/main/res/mipmap-hdpi/ic_launcher_round.webp
  • cv-image-to-xml/src/main/res/mipmap-mdpi/ic_launcher.webp
  • cv-image-to-xml/src/main/res/mipmap-mdpi/ic_launcher_round.webp
  • cv-image-to-xml/src/main/res/mipmap-xhdpi/ic_launcher.webp
  • cv-image-to-xml/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
  • cv-image-to-xml/src/main/res/mipmap-xxhdpi/ic_launcher.webp
  • cv-image-to-xml/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
  • cv-image-to-xml/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
  • cv-image-to-xml/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
  • cv-image-to-xml/src/main/res/values-night/themes.xml
  • cv-image-to-xml/src/main/res/values/colors.xml
  • cv-image-to-xml/src/main/res/values/strings.xml
  • cv-image-to-xml/src/main/res/values/themes.xml
  • cv-image-to-xml/src/main/res/xml/backup_rules.xml
  • cv-image-to-xml/src/main/res/xml/data_extraction_rules.xml
  • cv-image-to-xml/src/test/java/com/example/images/ExampleUnitTest.kt
  • cv-image-to-xml/src/test/java/org/appdevforall/codeonthego/computervision/domain/FuzzyAttributeParserTest.kt
  • cv-image-to-xml/src/test/java/org/appdevforall/codeonthego/computervision/domain/parser/sanitizer/OcrSanitizerRulesTest.kt
  • cv-image-to-xml/src/test/java/org/appdevforall/codeonthego/computervision/domain/xml/LayoutRendererTest.kt
  • plugin-api/src/main/kotlin/com/itsaky/androidide/plugins/extensions/UIExtension.kt
  • plugin-api/src/main/kotlin/com/itsaky/androidide/plugins/services/IdeServices.kt
  • plugin-manager/src/main/kotlin/com/itsaky/androidide/plugins/manager/services/IdeUIServiceImpl.kt
  • settings.gradle.kts
💤 Files with no reviewable changes (82)
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/model/ScaledBox.kt
  • cv-image-to-xml/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
  • cv-image-to-xml/src/main/res/drawable/ic_launcher_background.xml
  • cv-image-to-xml/src/main/res/xml/backup_rules.xml
  • cv-image-to-xml/src/main/res/drawable/ic_placeholder_upload.xml
  • cv-image-to-xml/src/androidTest/java/com/example/images/ExampleInstrumentedTest.kt
  • cv-image-to-xml/src/main/res/layout/testing_result.xml
  • cv-image-to-xml/src/main/res/values/strings.xml
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/usecase/ImportPlaceholderImageUC.kt
  • cv-image-to-xml/src/main/res/xml/data_extraction_rules.xml
  • cv-image-to-xml/src/main/res/values/themes.xml
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/DetectionMerger.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/TextCleaner.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/YoloToXmlConverter.kt
  • cv-image-to-xml/src/main/AndroidManifest.xml
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/ui/ComputerVisionEvent.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/parser/ValueCleaner.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/ui/ComputerVisionActivity.kt
  • cv-image-to-xml/src/main/assets/labels.txt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/data/source/OcrSource.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/data/repository/VisionRepositoryImpl.kt
  • cv-image-to-xml/src/test/java/com/example/images/ExampleUnitTest.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/parser/sanitizer/OcrSanitizerFactory.kt
  • cv-image-to-xml/src/test/java/org/appdevforall/codeonthego/computervision/domain/xml/LayoutRendererTest.kt
  • cv-image-to-xml/src/test/java/org/appdevforall/codeonthego/computervision/domain/FuzzyAttributeParserTest.kt
  • cv-image-to-xml/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/MarginAnnotationParser.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/CvAnalyticsUtils.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/xml/LayoutRenderer.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/data/repository/VisionRepository.kt
  • cv-image-to-xml/src/main/res/layout/activity_computer_vision.xml
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/LayoutTreeBuilder.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/usecase/PrepareImageUC.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/PlaceholderUtils.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/grammar/UiGrammarValidator.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/BitmapUtils.kt
  • cv-image-to-xml/src/main/res/drawable/ic_placeholder_delete.xml
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/parser/AttributeModels.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/GenericBoxResolver.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/DetectionScaler.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/grammar/AttributeValidator.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/xml/AndroidConstants.kt
  • app/src/main/java/com/itsaky/androidide/actions/etc/GenerateXMLAction.kt
  • cv-image-to-xml/src/main/res/values-night/themes.xml
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/data/repository/DrawableImportHelper.kt
  • cv-image-to-xml/src/main/res/values/colors.xml
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/usecase/GenerateXmlUC.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/WidgetTagParser.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/XmlFileManager.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/RegionOcrProcessor.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/usecase/RemovePlaceholderImageUC.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/parser/sanitizer/OcrSanitizerRules.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/ui/ComputerVisionUiState.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/parser/ValueCleanersImpl.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/usecase/RunVisionUC.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/SmartBoundaryDetector.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/ui/GuidelinesView.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/parser/sanitizer/CompositeOcrSanitizer.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/model/LayoutItem.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/model/DetectionResult.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/OcrExtensions.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/xml/WidgetFactory.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/OcrTextAssembler.kt
  • settings.gradle.kts
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/TextAssociator.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/ui/viewmodel/ComputerVisionViewModel.kt
  • cv-image-to-xml/src/test/java/org/appdevforall/codeonthego/computervision/domain/parser/sanitizer/OcrSanitizerRulesTest.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/xml/XmlContext.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/DetectionVisualizer.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/utils/MetadataDetector.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/di/ComputerVisionModule.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/ui/ZoomableImageView.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/grammar/WidgetGrammar.kt
  • cv-image-to-xml/build.gradle.kts
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/parser/FuzzyAttributeParser.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/data/source/YoloModelSource.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/xml/AndroidXmlGenerator.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/parser/sanitizer/OcrSanitizer.kt
  • app/build.gradle.kts
  • app/src/main/java/com/itsaky/androidide/utils/EditorActivityActions.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/xml/AndroidWidget.kt
  • cv-image-to-xml/src/main/java/org/appdevforall/codeonthego/computervision/domain/WidgetAnnotationMatcher.kt

Comment thread app/src/main/AndroidManifest.xml
@jatezzz jatezzz force-pushed the feat/ADFA-4192-plugin-api-cv-support-experimental branch from bbe9040 to ef13604 Compare June 1, 2026 16:13
@jatezzz jatezzz requested a review from Daniel-ADFA June 1, 2026 16:13
@jatezzz jatezzz requested a review from Daniel-ADFA June 1, 2026 17:12
@jatezzz jatezzz merged commit 1793332 into stage Jun 1, 2026
2 checks passed
@jatezzz jatezzz deleted the feat/ADFA-4192-plugin-api-cv-support-experimental branch June 1, 2026 21:33
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