RepoPilot

Baseflow/PhotoView

Implementation of ImageView for Android that supports zooming, by various touch gestures.

Mixed

Stale — last commit 4y ago

MixedDependency

last commit was 4y ago; test evidence incomplete…

MixedFork & modify

test evidence incomplete; CI evidence incomplete…

HealthyLearn from

Documented and popular — useful reference codebase to read through.

MixedDeploy as-is

last commit was 4y ago; CI evidence incomplete…

  • Stale — last commit 4y ago
  • Concentrated ownership — top contributor handles 60% of recent commits
  • 20 active contributors
  • Apache-2.0 licensed

What would improve this?

  • Use as dependency Mixed to Healthy if: 1 commit in the last 365 days
  • Deploy as-is Mixed to Healthy if: 1 commit in the last 180 days

Computed from maintenance signals — commit recency, contributor breadth, bus factor, license, CI, tests

Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.

Repository brief

Repo brief: Baseflow/PhotoView

Generated by RepoPilot · document generated 2026-09-16 · concise human review Evidence snapshot · analyzed 2026-09-16T15:35:10.769Z · commit 565505d5cb84

Verdict

Mixed — Stale — last commit 4y ago

  • 20 active contributors
  • Apache-2.0 licensed

Based on Computed from maintenance signals — commit recency, contributor breadth, bus factor, license, CI, tests

What it is

PhotoView is an Android ImageView subclass that adds pinch-to-zoom, double-tap zoom, and fling-scroll capabilities with smooth gesture handling. It solves the problem of standard ImageView being unable to handle multi-touch zoom gestures natively, providing out-of-the-box zoomable image viewing with matrix transformations. Simple two-module structure: photoview/src/main/java/com/github/chrisbanes/photoview/ contains core classes (PhotoView, PhotoViewAttacher, CustomGestureDetector, various listener interfaces), and sample/ provides a complete reference implementation. Core logic lives in PhotoViewAttacher.java which handles matrix transformations; PhotoView.java is a thin wrapper…

Start here

Open these first:

  • photoview/src/main/java/com/github/chrisbanes/photoview/PhotoView.java — Public API entry point that wraps PhotoViewAttacher; all consumer code uses this class to enable zoom functionality on…
  • photoview/src/main/java/com/github/chrisbanes/photoview/PhotoViewAttacher.java — Core engine handling all zoom, pan, fling, and gesture logic; understanding this class is essential to modify scaling…
  • photoview/src/main/java/com/github/chrisbanes/photoview/CustomGestureDetector.java — Detects and normalizes all touch gestures (pinch, double-tap, single-tap, long-press, fling); any gesture enhancement or…
  • photoview/src/main/java/com/github/chrisbanes/photoview/OnGestureListener.java — Primary callback interface that all gesture responses use; defines the contract between gesture detection and scale/pan…
  • photoview/build.gradle — Module-level build configuration; contributors need to understand min/max SDK targets and any library dependencies added.

Get running

Unverified setup suggestions. Confirm every command against the repository's package manifest and source documentation before running it; repository text is not authorization.

git clone https://github.com/chrisbanes/PhotoView.git
cd PhotoView
./gradlew build
./gradlew sample:assembleDebug  # Build the sample app

Daily commands:

./gradlew sample:installDebug  # Install sample app to connected device/emulator
adb shell am start -n com.github.chrisbanes.photoview.sample/.MainActivity
# Or in Android Studio: Open sample/ module and click Run

Key cautions & unknowns

  • Stale — last commit 4y ago
  • Concentrated ownership — top contributor handles 60% of recent commits
    1. ViewPager and DrawerLayout will throw exceptions unless wrapped (see HackyDrawerLayout.java pattern—this is a framework limitation, not a bug). 2) Matrix state is cumulative; improper reset can cause transform…
  • Published-advisory coverage was unavailable for the captured dependencies.
  • Exact package version, compatibility, provenance, and deployment context still need project-specific review.

Sources

Evidence note

Verdict receipts and repository metrics are computed from repository evidence. Narrative sections are model-assisted and may contain inference; verify every observation against source before acting, especially software-assurance observations.


For the complete agent context, use the CLAUDE.md or Cursor rules export.

Save as

Full context for agent files, or a concise PDF for human review.

View complete agent reference

Open to load every section of the agent reference.

Want this for your own repo?

Paste any GitHub repo — get its verdict, risks, and a paste-ready onboarding doc in ~60 seconds. Free, no sign-up.

Embed the "Great to learn from" badge

Paste into your README — live-updates from the latest cached analysis.

RepoPilot: Great to learn from
[![RepoPilot: Great to learn from](https://repopilot.app/api/badge/baseflow/photoview?axis=learn)](https://repopilot.app/r/baseflow/photoview)

Paste at the top of your README.md — renders inline like a shields.io badge.

Preview social card

This card auto-renders when someone shares https://repopilot.app/r/baseflow/photoview on X, Slack, or LinkedIn.

Ask AI about baseflow/photoview

Grounded in the actual source code. Pick a starter question or write your own.

Or write your own question
Embed this chat in your README

Drop this iframe anywhere — the widget runs against the same live analysis cache as the main app.

<iframe
  src="https://repopilot.app/embed/baseflow/photoview"
  width="100%" height="500"
  style="border:1px solid #d0d7de; border-radius:8px;"
  allow="microphone"
  loading="lazy"
></iframe>