Skip to content
CAI
Software that uses CAICheck a score

Baseflow/PhotoView

45.1

Weak · 24 September 2026

2k

lines of production code

Java

primary language

5

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

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.