burhanrashid52/PhotoEditor
55.9
Adequate · 25 September 2026
5.4k
lines of production code
Kotlin
primary language
4
measurements over time
What this system is
This system is an Android photo editing library and sample application that enables users to annotate images with text, shapes, and drawings. It provides core editing capabilities including brush strokes, erasing, emoji insertion, and precise text positioning, supported by undo and redo functionality. The codebase has been modernized to Kotlin with comprehensive instrumentation and unit tests to verify these interactive features.
Removals
Removal of legacy PhotoEditorSDK implementation and supporting files
The \photoeditorsdk\ module has removed the legacy \PhotoEditorSDK\ implementation and all its associated components, including the \BrushDrawingView\, \MultiTouchListener\, \ScaleGestureDetector\, and \Vector2D\ classes, as well as the \OnPhotoEditorSDKListener\ interface, \ViewType\ enum, and related layout resources. This change eliminates the previous brush, text, image, and emoji editing capabilities provided by this specific SDK version, effectively removing the product feature that allowed users to add and manipulate these elements on photos within this module.
photoeditorsdk · high confidence
Removal of legacy sample and helper components
The \app/src/main/java/com/burhanrashid52/imageeditor\ package has removed several legacy classes that were part of the sample application or internal helpers: \BarChart.java\, \ColorPickerAdapter.java\, \DrawView.java\, \EditImageActivity.java\, and \MainActivity.java\. This cleanup eliminates unused drawing views, color picker adapters, and the previous image editing activity implementation from the source tree.
app/src/main/java/com/burhanrashid52/imageeditor · high confidence
Behavioural changes
Photo editor app converted to Kotlin with new UI components and undo/redo controls
The photo editing sample app has been rewritten in Kotlin, introducing several new UI components and behavioral improvements. A new ColorPickerAdapter provides a horizontal list of preset colors for text, shapes, and filters. The editing interface now includes a ShapeBSFragment that allows users to draw lines, arrows, ovals, rectangles, or freehand brush strokes. Text editing has been enhanced with a tap-to-place positioning system via a dedicated overlay and a new TextEditorDialogFragment. The main EditImageActivity now features Undo and Redo buttons that are automatically disabled when there is no action to undo or redo, and image saving has been migrated from AsyncTask to Kotlin coroutines for better lifecycle management.
app/src/main/java/com/burhanrashid52/photoediting · high confidence
Text placement now supports tap-to-position and explicit coordinates
Developers can now place text labels at specific locations on the image rather than having them always centered. The \PhotoEditor.addText()\ API accepts an optional \Position\ parameter to define the initial coordinates, and the sample app demonstrates a tap-to-place interaction where users tap the image to set the text location before entering the content. This change removes the previous limitation that forced text insertion to the center of the canvas.
(repo-wide) · high confidence
Test coverage
Added instrumentation tests for DrawingView behavior and API; Added instrumentation tests for photo editing interactions; Added unit tests and migrated test code to Kotlin; Removed obsolete instrumented test.
Dependencies
Gradle wrapper upgraded to version 8.9
The project's Gradle wrapper has been updated from version 4.1 to 8.9. This upgrade brings modern build performance improvements and compatibility with newer Android Gradle Plugin versions, while also adding network timeout and distribution validation settings for more reliable builds.
gradle · high confidence
Migrate to AndroidX, modernize build tooling, and switch Maven publishing to Central Portal
The project has been upgraded to compile and target SDK 34, migrated from the legacy Android Support libraries to AndroidX, and updated to use Kotlin 2.0.0, Gradle 8.5.1, and Android Gradle Plugin 8.5.1. The old \photoeditorsdk\ module was removed and replaced by the \photoeditor\ module, which now includes dependencies for coroutines, Glide, and Material components. Additionally, the library's publishing infrastructure has moved from Jcenter/Bintray to Maven Central via the Gradle Nexus Publish Plugin, and the demo app now references the local \photoeditor\ implementation for easier testing.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 41 → 56 (+15.0)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 98 → 96 (-1.7)
- Architecture 94 → 100 (+5.9)
- Maturity 51 → 60 (+9.0)
- Readiness 27 → 46 (+18.5)
- Security 34 → 52 (+18.1)
Resolved (27)
- Coverage not measured — test suite did not build
- Dimension evaluation failed
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 7 more
New (48)
- BitmapUtil.removeTransparency (cognitive 24) (photoeditor/src/main/java/ja/burhanrashid52/photoeditor/BitmapUtil.kt)
- Concentrated knowledge decay
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no contributor guidance (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (12 lines × 2) (app/src/main/java/com/burhanrashid52/photoediting/EmojiBSFragment.kt)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 28 more
Changes since last survey
- 7 commits — 6 feature/other, 1 fixes
By area
- photoeditor/src — 4 commits
- (root) — 2 commits
- app/src — 1 commit
Notable commits
- fix: Fix translations and document pre-PR checks
- change: Add tap-to-place text positioning
- change: Address Copilot review comments
- change: Remove changelog update from addText refactor
- change: Restore addText API documentation
- change: Unify addText Kotlin API
- change: Update README and changelog to latest 3.1.1 release
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
burhanrashid52/PhotoEditor was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 25 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 053cd6f8d80778a0002da245eef612f6edf71175 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-dd72cc24c749.