docs(sensor): name where the Current App name chain comes from (t55)
The Current App sensor already resolved through the shared `resolve_app_name` chain, so the package-id live symptom was never a missing tier — it was the label path being silenced (fix in the previous commit). Its docstrings now say so explicitly: `_package` is the app on screen (protocol push → ADB mResumedActivity → recents as a last resort) and `native_value` resolves exactly that package's map entry or cached device label, which is why the label fetch must be driven off it. The behaviour is unchanged; the comment is what was missing.
This commit is contained in:
1 parent
0c7e405108
commit
85e96f3c60
1 file changed
+12
-2
@@ -93,10 +93,13 @@ class NvidiaShieldCurrentAppSensor(NvidiaShieldSensorBase):
|
||||
self.async_write_ha_state()
|
||||
|
||||
def _package(self) -> str | None:
|
||||
"""The raw foreground package from the manager's store (t41).
|
||||
"""The raw package of the app that is on screen (t41, t55).
|
||||
|
||||
StateStore priority chain (P3-3c): protocol current_app push → ADB
|
||||
mResumedActivity → ADB recents.
|
||||
mResumedActivity (both via ``manager.foreground_app``) → the most
|
||||
recent visible ADB recent task. The recents tier is a last resort for
|
||||
a moment when neither live signal has reported yet; it keeps the
|
||||
sensor from going None while ADB is still warming up.
|
||||
"""
|
||||
manager = self._manager()
|
||||
if manager is None:
|
||||
@@ -117,6 +120,13 @@ class NvidiaShieldCurrentAppSensor(NvidiaShieldSensorBase):
|
||||
``resolve_app_name``: apps map → cached manifest label → the package
|
||||
text itself. A bare or unknown package shows its package text rather
|
||||
than None, like the media player's app_name.
|
||||
|
||||
This is why ``_package`` must be the CURRENT app and the label fetch
|
||||
must be driven off it (t55): the device-manifest label is resolved on
|
||||
demand for exactly the package passed here, so a live run showing a
|
||||
package id means the label tier never answered — see
|
||||
``ShieldConnectionManager.app_label`` for the caching rule that makes
|
||||
a miss retry instead of being stamped as an eternal "no label".
|
||||
"""
|
||||
manager = self._manager()
|
||||
return resolve_app_name(
|
||||
|
||||
Reference in new issue
Block a user