{"adoption": {"forks": 269, "observed_at": "2026-08-28T04:04:25.609029+00:00", "stars": 1337}, "canonical_url": "https://ross.abutalabs.com/products/floatwindowpermission", "card": {"archived": false, "artifact_type": "library", "description": "this repository is aimed to adapt android float window permission in most kinds of mobiles and how to request it at runtime ", "domain": ["android-tools", "mobile-development", "developer-tools"], "enriched": true, "function": ["mobile-framework", "developer-tools"], "health_score": 20, "homepage": null, "language": "Java", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["zhaozepeng/FloatWindowPermission"], "name": "zhaozepeng/FloatWindowPermission", "platform": ["jvm"], "pushed_at": "2022-07-23T00:25:36+00:00", "repo": "zhaozepeng/FloatWindowPermission", "stars": 1337, "tags": ["float-window", "runtime-permissions", "android-compatibility", "rom-adaptation", "overlay-permission", "android"], "topics": [], "urls": [], "use_cases": ["request overlay permission at runtime on android", "check if float window permission is granted", "open the float window settings page on xiaomi or huawei", "adapt overlay permission across chinese roms", "show a floating window on android without permission issues", "handle SYSTEM_ALERT_WINDOW permission on pre-marshmallow devices"], "what_it_is": "A Java library for Android that adapts the floating window (overlay) permission across many Chinese phone manufacturers' ROMs and shows how to request it at runtime. It covers vendors like Xiaomi, Huawei, Meizu, and 360 across Android versions below and above 6.0.", "when_to_avoid": ["your app only targets stock Android 6.0+ where the standard Settings.canDrawOverlays API suffices", "you need a maintained library with active support - the repo has no license and sees infrequent updates", "you are building for non-Android platforms"], "when_to_choose": ["your android app needs floating windows and must support Chinese OEM ROMs like Xiaomi, Huawei, or Meizu", "you need to detect and request overlay permission on devices running Android versions below 6.0", "you want a ready-made compatibility layer instead of writing per-vendor permission logic yourself"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/floatwindowpermission", "repo": "zhaozepeng/FloatWindowPermission", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.609029+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.687453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8abaad6b348aecab27a0d3ea25d6efecf28d6361af1bc08068d96b1d87b94e6c", "fetched_at": "2026-08-28T04:04:25.609029+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaozepeng/FloatWindowPermission"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.609029+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.687453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8abaad6b348aecab27a0d3ea25d6efecf28d6361af1bc08068d96b1d87b94e6c", "fetched_at": "2026-08-28T04:04:25.609029+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaozepeng/FloatWindowPermission"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.687453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8abaad6b348aecab27a0d3ea25d6efecf28d6361af1bc08068d96b1d87b94e6c", "fetched_at": "2026-08-28T04:04:25.609029+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaozepeng/FloatWindowPermission"}], "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:04:25.609029+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.609029+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.609029+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.687453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8abaad6b348aecab27a0d3ea25d6efecf28d6361af1bc08068d96b1d87b94e6c", "fetched_at": "2026-08-28T04:04:25.609029+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaozepeng/FloatWindowPermission"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.609029+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.609029+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.687453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8abaad6b348aecab27a0d3ea25d6efecf28d6361af1bc08068d96b1d87b94e6c", "fetched_at": "2026-08-28T04:04:25.609029+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaozepeng/FloatWindowPermission"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.609029+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.609029+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.609029+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.687453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8abaad6b348aecab27a0d3ea25d6efecf28d6361af1bc08068d96b1d87b94e6c", "fetched_at": "2026-08-28T04:04:25.609029+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaozepeng/FloatWindowPermission"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.609029+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.609029+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.687453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8abaad6b348aecab27a0d3ea25d6efecf28d6361af1bc08068d96b1d87b94e6c", "fetched_at": "2026-08-28T04:04:25.609029+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaozepeng/FloatWindowPermission"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.687453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8abaad6b348aecab27a0d3ea25d6efecf28d6361af1bc08068d96b1d87b94e6c", "fetched_at": "2026-08-28T04:04:25.609029+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaozepeng/FloatWindowPermission"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.687453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8abaad6b348aecab27a0d3ea25d6efecf28d6361af1bc08068d96b1d87b94e6c", "fetched_at": "2026-08-28T04:04:25.609029+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaozepeng/FloatWindowPermission"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.687453+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8abaad6b348aecab27a0d3ea25d6efecf28d6361af1bc08068d96b1d87b94e6c", "fetched_at": "2026-08-28T04:04:25.609029+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaozepeng/FloatWindowPermission"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3607, "days_push": 1503, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}