decentraland / decentraland/godot-explorer
End of Device Support Modal
- Dominant language
- Rust
- Stars
- 18
- Forks
- 19
- Avg merge
- 4d 2h
- Merged PRs (30d)
- 43
Description
## **⚠️ Problem:**
Play device exclusion (#2738) freezes existing users on excluded chipsets: no further updates, and no reinstall if they delete the app — with zero notice inside the client. They find out as the app rots; first signal we get is a 1-star review → New Users. Affected install count baselined in #2738, not yet published.
## **🏁 Scope:**
Design spec for a soft "end of device support" modal on Android devices in the #2738 excluded set. Tells the user support has ended, current version keeps running for now, updates stop, uninstall is one-way. Dismissible, non-blocking, no store redirect, no alternate download channel. Android only — iOS keeps the #1801 / #1825 below-minspec behavior.
## Context
Google Play device exclusion, existing users ([Play Console device catalog](https://play.google.com/console/about/devicecatalog/), [Play support](https://support.google.com/googleplay/android-developer/answer/7353455?hl=en)):
- App is **not** uninstalled. Installed version keeps running locally.
- Updates permanently blocked — user frozen on the last compatible build.
- Listing hidden on that device. Uninstall → no re-download, access lost.
Modal is the only channel that reaches these users. It must land the one-way part before they uninstall.
## **📝 Deliverables:**
- [ ] Figma: `EndOfDeviceSupportModal` — layout, copy, single CTA, dismissed state
- [ ] Ship #2738 excluded chipset list to client as detection table
- [ ] `is_device_support_ended_android()` in the Android plugin — chipset/GPU read at launch (iOS analog: `is_low_spec_iphone()`, #1825)
- [ ] Deep link + CLI flag to force the modal for QA, mirroring `low_spec_warning=true` / `--low-spec-warning` (#1825)
- [ ] Suppress in-app rating prompt on detected devices
- [ ] `SCREEN_VIEW` event `END_OF_DEVICE_SUPPORT_MODAL_SHOW` + dismiss event
## **Implementation Specs:**
Shell reuses the existing "Limited performance" minspec modal (#1825) — do not build a second dialog style.
## **Draft Copy to Elaborate:**
> **⚠️**
> **Support for your device has ended**
> Decentraland no longer supports this device. You can keep playing the version you have, but you won't get updates or new features — and if you uninstall the app, you won't be able to install it again.
> **[ OK ]**
## **🔗 References:**
- [decentraland/godot-explorer#2738](https://github.com/decentraland/godot-explorer/issues/2738) — the exclusion rules; source of the chipset list this modal detects
- [decentraland/godot-explorer#1825](https://github.com/decentraland/godot-explorer/pull/1825) — merged iOS below-minspec modal: `is_low_spec_iphone()` in `DclIosPlugin` (hw.machine major ≤ 13), modal at lobby/account home, deep-link + CLI test hooks. Shell + wiring to reuse
- [decentraland/godot-explorer#1801](https://github.com/decentraland/godot-explorer/issues/1801) — the iOS below-minspec issue #1825 closed; threshold definition + UX rules
- [decentraland/godot-explorer#2075](https://github.com/decentraland/godot-explorer/issues/2075) — A54 / Mali-G68 profiled minspec target the exclusion cuts under
- No prior art in unity-explorer or docs (searched below minspec / low spec modal / device support, 2026-08-21)
Contributor guide
Assessment
This issue has not been assessed yet.