{"adoption": {"forks": 681, "observed_at": "2026-08-28T04:08:38.026519+00:00", "stars": 4171}, "canonical_url": "https://ross.abutalabs.com/products/jkeyboardpanelswitch", "card": {"archived": false, "artifact_type": "library", "description": "For resolve the layout conflict when keybord & panel are switching (Android键盘面板冲突 布局闪动处理方案)", "domain": ["mobile-development", "android-tools", "cross-platform"], "enriched": true, "function": ["ui-components", "animation", "developer-tools"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["Jacksgong/JKeyboardPanelSwitch"], "name": "Jacksgong/JKeyboardPanelSwitch", "platform": ["jvm"], "pushed_at": "2020-08-18T05:13:02+00:00", "repo": "Jacksgong/JKeyboardPanelSwitch", "stars": 4171, "tags": ["keyboard-panel-switch", "android-layout", "chat-ui", "emoji-panel", "layout-conflict", "android", "mobile"], "topics": [], "urls": [], "use_cases": ["fix layout flicker when switching between keyboard and emoji panel in Android chat app", "smoothly toggle between soft keyboard and custom function panel", "handle keyboard panel conflict in fullscreen Android activity", "prevent layout jump when keyboard opens and closes in messaging UI", "calculate keyboard height and visibility in Android", "build WeChat-style chat input with emoji panel switching"], "what_it_is": "An Android library that resolves the layout conflict and flicker that occurs when switching between the soft keyboard and custom panels (like emoji or function panels) in chat-style apps. It was originally developed at WeChat and provides handlers for both fullscreen and non-fullscreen themes.", "when_to_avoid": ["developing for platforms other than Android", "your app has no soft keyboard or custom panel interactions", "you need a library with frequent updates and active maintenance"], "when_to_choose": ["building an Android chat or messaging app with emoji/sticker panels", "you need flicker-free switching between keyboard and custom panels", "you support both fullscreen and non-fullscreen themes with translucent status bars"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/jkeyboardpanelswitch", "repo": "Jacksgong/JKeyboardPanelSwitch", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.026519+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:22:44.745627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d9f9bbc6d87b391682512535efc71af069f68dae34a8b0387a3b3db5c21581e", "fetched_at": "2026-08-28T04:08:38.026519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Jacksgong/JKeyboardPanelSwitch"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.026519+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:22:44.745627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d9f9bbc6d87b391682512535efc71af069f68dae34a8b0387a3b3db5c21581e", "fetched_at": "2026-08-28T04:08:38.026519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Jacksgong/JKeyboardPanelSwitch"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:22:44.745627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d9f9bbc6d87b391682512535efc71af069f68dae34a8b0387a3b3db5c21581e", "fetched_at": "2026-08-28T04:08:38.026519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Jacksgong/JKeyboardPanelSwitch"}], "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:08:38.026519+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.026519+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.026519+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:22:44.745627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d9f9bbc6d87b391682512535efc71af069f68dae34a8b0387a3b3db5c21581e", "fetched_at": "2026-08-28T04:08:38.026519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Jacksgong/JKeyboardPanelSwitch"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.026519+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.026519+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:22:44.745627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d9f9bbc6d87b391682512535efc71af069f68dae34a8b0387a3b3db5c21581e", "fetched_at": "2026-08-28T04:08:38.026519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Jacksgong/JKeyboardPanelSwitch"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.026519+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.026519+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.026519+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:22:44.745627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d9f9bbc6d87b391682512535efc71af069f68dae34a8b0387a3b3db5c21581e", "fetched_at": "2026-08-28T04:08:38.026519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Jacksgong/JKeyboardPanelSwitch"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.026519+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.026519+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:22:44.745627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d9f9bbc6d87b391682512535efc71af069f68dae34a8b0387a3b3db5c21581e", "fetched_at": "2026-08-28T04:08:38.026519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Jacksgong/JKeyboardPanelSwitch"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:22:44.745627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d9f9bbc6d87b391682512535efc71af069f68dae34a8b0387a3b3db5c21581e", "fetched_at": "2026-08-28T04:08:38.026519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Jacksgong/JKeyboardPanelSwitch"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:22:44.745627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d9f9bbc6d87b391682512535efc71af069f68dae34a8b0387a3b3db5c21581e", "fetched_at": "2026-08-28T04:08:38.026519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Jacksgong/JKeyboardPanelSwitch"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:22:44.745627+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2d9f9bbc6d87b391682512535efc71af069f68dae34a8b0387a3b3db5c21581e", "fetched_at": "2026-08-28T04:08:38.026519+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Jacksgong/JKeyboardPanelSwitch"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4081, "days_push": 2206, "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}}