{"adoption": {"forks": 120, "observed_at": "2026-08-28T04:07:52.699075+00:00", "stars": 3264}, "canonical_url": "https://ross.abutalabs.com/products/freedroidwarn", "card": {"archived": false, "artifact_type": "library", "description": null, "domain": ["android-tools", "privacy", "developer-tools"], "enriched": true, "function": ["ui-components", "developer-tools"], "health_score": 98, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["woheller69/FreeDroidWarn"], "name": "woheller69/FreeDroidWarn", "platform": ["jvm"], "pushed_at": "2026-08-15T17:12:27+00:00", "repo": "woheller69/FreeDroidWarn", "stars": 3264, "tags": ["android", "alert-dialog", "developer-verification", "foss", "digital-rights"], "topics": [], "urls": [], "use_cases": ["warn users that my app will stop working on certified Android devices", "show a deprecation dialog about Google developer verification", "inform users my FOSS app won't be verified with Google", "add a warning dialog to an Android app sideloaded outside Play Store", "notify users about the 2026/2027 Android sideloading restriction"], "what_it_is": "A Java library for Android apps that displays an alert dialog warning users that the app will stop working on certified Android devices due to Google's upcoming developer verification requirement. It is aimed at FOSS developers who will not submit identity details to Google.", "when_to_avoid": ["you plan to comply with Google's developer verification", "your app is distributed only through the Play Store", "you need something other than a simple warning dialog"], "when_to_choose": ["you maintain a FOSS Android app distributed outside the Play Store and won't verify with Google", "you want a ready-made, consistent warning dialog explaining the developer verification policy"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/freedroidwarn", "repo": "woheller69/FreeDroidWarn", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.699075+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:43:51.573790+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ac035e15e74cf1f46b806034f56d4b3987a16ebebc4cab82d27e85ca303819c", "fetched_at": "2026-08-28T04:07:52.699075+00:00", "kind": "readme", "missing": false, "url": "https://github.com/woheller69/FreeDroidWarn"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.699075+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:43:51.573790+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ac035e15e74cf1f46b806034f56d4b3987a16ebebc4cab82d27e85ca303819c", "fetched_at": "2026-08-28T04:07:52.699075+00:00", "kind": "readme", "missing": false, "url": "https://github.com/woheller69/FreeDroidWarn"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:43:51.573790+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ac035e15e74cf1f46b806034f56d4b3987a16ebebc4cab82d27e85ca303819c", "fetched_at": "2026-08-28T04:07:52.699075+00:00", "kind": "readme", "missing": false, "url": "https://github.com/woheller69/FreeDroidWarn"}], "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:52.699075+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.699075+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.699075+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:43:51.573790+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ac035e15e74cf1f46b806034f56d4b3987a16ebebc4cab82d27e85ca303819c", "fetched_at": "2026-08-28T04:07:52.699075+00:00", "kind": "readme", "missing": false, "url": "https://github.com/woheller69/FreeDroidWarn"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.699075+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.699075+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:43:51.573790+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ac035e15e74cf1f46b806034f56d4b3987a16ebebc4cab82d27e85ca303819c", "fetched_at": "2026-08-28T04:07:52.699075+00:00", "kind": "readme", "missing": false, "url": "https://github.com/woheller69/FreeDroidWarn"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.699075+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.699075+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.699075+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:43:51.573790+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ac035e15e74cf1f46b806034f56d4b3987a16ebebc4cab82d27e85ca303819c", "fetched_at": "2026-08-28T04:07:52.699075+00:00", "kind": "readme", "missing": false, "url": "https://github.com/woheller69/FreeDroidWarn"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.699075+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:52.699075+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:43:51.573790+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ac035e15e74cf1f46b806034f56d4b3987a16ebebc4cab82d27e85ca303819c", "fetched_at": "2026-08-28T04:07:52.699075+00:00", "kind": "readme", "missing": false, "url": "https://github.com/woheller69/FreeDroidWarn"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:43:51.573790+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ac035e15e74cf1f46b806034f56d4b3987a16ebebc4cab82d27e85ca303819c", "fetched_at": "2026-08-28T04:07:52.699075+00:00", "kind": "readme", "missing": false, "url": "https://github.com/woheller69/FreeDroidWarn"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:43:51.573790+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ac035e15e74cf1f46b806034f56d4b3987a16ebebc4cab82d27e85ca303819c", "fetched_at": "2026-08-28T04:07:52.699075+00:00", "kind": "readme", "missing": false, "url": "https://github.com/woheller69/FreeDroidWarn"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:43:51.573790+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2ac035e15e74cf1f46b806034f56d4b3987a16ebebc4cab82d27e85ca303819c", "fetched_at": "2026-08-28T04:07:52.699075+00:00", "kind": "readme", "missing": false, "url": "https://github.com/woheller69/FreeDroidWarn"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 26, "rhythm": 83}, "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": 372, "days_push": 18, "days_rel": 116, "gap_med": 8, "n_releases_24m": 14}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}