Baseflow/PhotoView
45.1
Weak · 24 September 2026
2k
lines of production code
Java
primary language
5
measurements over time
What this system is
This system is an Android library that provides a zoomable image view component, encapsulating complex gesture handling for zooming, panning, and flinging. It exposes public callback interfaces to allow developers to react to user interactions and integrates with popular image loading libraries like Coil and Picasso. The project also includes a sample application demonstrating various usage patterns, including immersive mode and view pager integration.
Features
Add Code of Conduct, Contributing Guide, and Apache 2.0 License
The project now includes a Contributor Covenant Code of Conduct, a Contributing guide, and the Apache 2.0 License file. These additions establish community standards for participation and clarify legal terms for using and distributing the software, supporting a more structured and legally compliant open-source environment.
(repo-wide) · high confidence
Expanded sample app with new demo activities
The sample application now includes several new demo activities to showcase different features: an immersive mode viewer (ImmersiveActivity), a photo rotation demo (RotationSampleActivity), a simple image viewer (SimpleSampleActivity), a ViewPager integration (ViewPagerActivity), and a activity transition demo (ActivityTransitionActivity). Additionally, a new Coil integration sample (CoilSampleActivity) and a Picasso sample (PicassoSampleActivity) have been added to the launcher menu, providing users with more examples of how to use the library in various contexts.
sample/src/main/java · high confidence
Initial release of the PhotoView library
The photoview module is introduced as a new, standalone Android library providing a zoomable ImageView. This change adds the core implementation, including the PhotoView widget, a PhotoViewAttacher for handling interactions, and a suite of public callback interfaces (OnViewTapListener, OnPhotoTapListener, OnScaleChangedListener, etc.) that allow developers to react to user gestures like taps, flings, and scale changes.
photoview · high confidence
Introduce PhotoViewAttacher to handle image interaction logic
Adds the PhotoViewAttacher class, which encapsulates the logic for zooming, scaling, panning, and flinging images. This new component manages gesture detection, touch event handling, and listener callbacks (such as OnViewTapListener and OnViewDragListener), effectively separating the complex interaction behavior from the main PhotoView widget.
. · high confidence
Dependencies
Migrate to AndroidX and modernize Gradle build configuration
The project has been updated to use AndroidX libraries, specifically integrating AppCompat 1.1.0 and RecyclerView 1.1.0, with the \android.useAndroidX\ flag enabled in \gradle.properties\. The build system has been upgraded to Gradle 4.1.2 and Kotlin 1.3.72, targeting SDK 29 with a minimum SDK of 16. Additionally, the Maven publishing configuration has been updated to use the \maven-publish\ plugin and publish version 2.3.0 of the PhotoView library.
(dependencies) · medium confidence
Updated Gradle wrapper to version 6.8
The project now uses Gradle wrapper version 6.8, which may require a compatible Java version and could affect build performance and compatibility with existing plugins.
gradle · 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
Score
- CAI 44 → 45 (+1.4)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 91 → 95 (+3.8)
- Architecture 100 → 100 (+0.0)
- Maturity 43 → 43 (+0.0)
- Readiness 15 → 17 (+1.9)
- Security 100 → 100 (+0.0)
Resolved (4)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- No exposed public API
- The 'Issues With ViewGroups' section names ViewPager and DrawerLayout but does not explain what exceptions occur or how to fix them. (README.md)
- dormant codebase — no living knowledge left to concentrate
New (5)
- ClassTooLong: PhotoViewAttacher (photoview/src/main/java/com/github/chrisbanes/photoview/PhotoViewAttacher.java)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no architecture or design documentation (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (5 lines × 2) (sample/src/main/java/com/github/chrisbanes/photoview/sample/ImageViewHolder.java)
Architecture
- Containers 0 added · 0 removed · contexts 1 added · 1 removed · edges 0 added · 0 removed
Added bounded contexts (1)
- photoview
Removed bounded contexts (1)
- .
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
Baseflow/PhotoView 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 24 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 565505d5cb84f5977771b5d2ccb7726338e77224 — 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-ae95d6cad036.