{"adoption": {"forks": 289, "observed_at": "2026-08-28T04:07:12.026633+00:00", "stars": 2715}, "canonical_url": "https://ross.abutalabs.com/products/progressmanager", "card": {"archived": false, "artifact_type": "library", "description": "⏳ Listen the progress of  downloading and uploading in Okhttp, compatible Retrofit and Glide (一行代码即可监听 App 中所有网络链接的上传以及下载进度, 包括 Glide 的图片加载进度).", "domain": ["mobile-development", "android-tools", "web-development"], "enriched": true, "function": ["http-client", "middleware", "developer-tools"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["JessYanCoding/ProgressManager"], "name": "JessYanCoding/ProgressManager", "platform": ["jvm"], "pushed_at": "2022-07-26T21:54:16+00:00", "repo": "JessYanCoding/ProgressManager", "stars": 2715, "tags": ["okhttp", "retrofit", "glide", "download-progress", "upload-progress", "event-listener", "java", "android", "mobile"], "topics": ["okhttp", "glide", "retrofit", "listen", "receiver", "progress", "mvparms", "arms"], "urls": [], "use_cases": ["show download progress bar for files in android app", "track image loading progress with glide", "monitor upload progress for okhttp requests", "sync progress updates across multiple ui components", "listen to retrofit request progress", "display progress for multi-file uploads"], "what_it_is": "A lightweight Android library that listens to download and upload progress of network requests made with Okhttp, Retrofit, and Glide using a one-line registration API. It uses an EventBus-like pattern where listeners are registered by URL and notified of progress anywhere in the app.", "when_to_avoid": ["you use ktor or other non-okhttp networking stacks", "you need progress tracking for non-android jvm projects", "you need a library under active development"], "when_to_choose": ["your android app uses okhttp, retrofit, or glide and needs progress callbacks", "you want low-coupling progress listeners decoupled from request code", "you need multiple receivers synchronized on the same url's progress"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/progressmanager", "repo": "JessYanCoding/ProgressManager", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:12.026633+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:15:29.747636+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802852964bbf62d48fbd7af6e4bffcbe48a25d22d7190c4e4cbd2667f15e093b", "fetched_at": "2026-08-28T04:07:12.026633+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ProgressManager"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:12.026633+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:15:29.747636+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802852964bbf62d48fbd7af6e4bffcbe48a25d22d7190c4e4cbd2667f15e093b", "fetched_at": "2026-08-28T04:07:12.026633+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ProgressManager"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:15:29.747636+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802852964bbf62d48fbd7af6e4bffcbe48a25d22d7190c4e4cbd2667f15e093b", "fetched_at": "2026-08-28T04:07:12.026633+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ProgressManager"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:12.026633+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:12.026633+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:12.026633+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:15:29.747636+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802852964bbf62d48fbd7af6e4bffcbe48a25d22d7190c4e4cbd2667f15e093b", "fetched_at": "2026-08-28T04:07:12.026633+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ProgressManager"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:12.026633+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:12.026633+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:15:29.747636+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802852964bbf62d48fbd7af6e4bffcbe48a25d22d7190c4e4cbd2667f15e093b", "fetched_at": "2026-08-28T04:07:12.026633+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ProgressManager"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:12.026633+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:12.026633+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:12.026633+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:15:29.747636+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802852964bbf62d48fbd7af6e4bffcbe48a25d22d7190c4e4cbd2667f15e093b", "fetched_at": "2026-08-28T04:07:12.026633+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ProgressManager"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:12.026633+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:12.026633+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:15:29.747636+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802852964bbf62d48fbd7af6e4bffcbe48a25d22d7190c4e4cbd2667f15e093b", "fetched_at": "2026-08-28T04:07:12.026633+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ProgressManager"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:15:29.747636+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802852964bbf62d48fbd7af6e4bffcbe48a25d22d7190c4e4cbd2667f15e093b", "fetched_at": "2026-08-28T04:07:12.026633+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ProgressManager"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:15:29.747636+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802852964bbf62d48fbd7af6e4bffcbe48a25d22d7190c4e4cbd2667f15e093b", "fetched_at": "2026-08-28T04:07:12.026633+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ProgressManager"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:15:29.747636+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "802852964bbf62d48fbd7af6e4bffcbe48a25d22d7190c4e4cbd2667f15e093b", "fetched_at": "2026-08-28T04:07:12.026633+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JessYanCoding/ProgressManager"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3375, "days_push": 1499, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}