You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
User value. A genuinely useful spec row for users comparing devices.
Proposed solution
Add a CPU/SoC row to the battery details table:
API 31+: Build.SOC_MANUFACTURER + Build.SOC_MODEL (e.g. "Qualcomm SM8550", "HiSilicon Kirin 970") — the public, purpose-built fields.
API 26–30 fallback (minSdk 26): Build.HARDWARE (e.g. kirin970, qcom) — raw but indicative; consider appending Build.BOARD when it adds signal.
Both SOC fields can return Build.UNKNOWN ("unknown") on some devices — treat blank/unknown as hide the row, consistent with the table's existing gating style (rate/current/time-to-full rows hide when untrustworthy).
Placement ("good spot"): in the device-info cluster — suggest directly after Technology, before Capacity, so the hardware identity sits next to the readings it explains.
The SoC string is raw device data, displayed as-is; only the row label is new — needs strings.xml + values-ar (repo enforces MissingTranslation).
Pure helper (e.g. socLabel(), API-gated) so it's unit-testable with Robolectric.
Bonus (directly serves motivation 1): include the SoC in the feedback email's deviceInfoBlock (MainActivity.java:514-519)`` so every bug report carries the chipset automatically.
Affected code
(permalinks pinned at f4460ac; grep the method names if lines have moved)
What problem does this solve?
Two motivations (maintainer request, 2026-07-16):
CURRENT_NOWmA-vs-µA bug (Kirin (Mate 10 Pro): ongoing notification shows nonsense "Discharging −1 mA" — CURRENT_NOW reported in mA, not µA #152). Showing the SoC on the same screen as the readings makes it trivial to see "what kind of CPU reporting is happening" — both for the maintainer's own devices and for user bug reports.Proposed solution
Add a CPU/SoC row to the battery details table:
Build.SOC_MANUFACTURER+Build.SOC_MODEL(e.g. "Qualcomm SM8550", "HiSilicon Kirin 970") — the public, purpose-built fields.Build.HARDWARE(e.g.kirin970,qcom) — raw but indicative; consider appendingBuild.BOARDwhen it adds signal.Build.UNKNOWN("unknown") on some devices — treat blank/unknown as hide the row, consistent with the table's existing gating style (rate/current/time-to-full rows hide when untrustworthy).strings.xml+values-ar(repo enforcesMissingTranslation).socLabel(), API-gated) so it's unit-testable with Robolectric.Bonus (directly serves motivation 1): include the SoC in the feedback email's
deviceInfoBlock(MainActivity.java:514-519)`` so every bug report carries the chipset automatically.Affected code
(permalinks pinned at
f4460ac; grep the method names if lines have moved)[BatteryDetailsFragment.java:325-363](https://github.com/almothafar/SimpleBatteryNotifier/blob/f4460acc3ba99320c3efe310fb51456af0939ab0/app/src/main/java/com/almothafar/simplebatterynotifier/ui/fragment/BatteryDetailsFragment.java#L325-L363)—fillBatteryInforow mapstrings.xml/values-arAcceptance criteria
Build.HARDWARE-based fallback belowRelated: #69, #94, #152 (the quirks this helps correlate); #35 (add a QA row once shipped).