Commit Graph

23 Commits

Author SHA1 Message Date
licheer-zte
6288a750ca fix(android): move Wear capability keep rules to raw keep files to prevent resource shrinking (#116068)
* fix(android): move Wear capability keep rules to raw keep files

Resource-shrinker keep directives in res/values/*.xml are not honored
by Android's resource shrinker during release builds. Move the
tools:keep declarations into dedicated res/raw/*.keep.xml files as
documented by Android:
https://developer.android.com/topic/performance/app-optimization/customize-which-resources-to-keep

Fixes openclaw/openclaw#116049

* fix(android): rename keep files - use underscores instead of dots

Android resource names must contain only lowercase a-z, 0-9, and underscores.
Dots in file names cause build failure with AAPT2 resource merger.

- ai.openclaw.app.phone.keep.xml -> ai_openclaw_app_phone_keep.xml
- ai.openclaw.app.wear.keep.xml -> ai_openclaw_app_wear_keep.xml

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-30 08:55:45 +08:00
Vincent Koc
c0a472f0b2 chore(i18n): refresh native locales (#115532) 2026-07-29 13:11:40 +08:00
Vincent Koc
d92062b970 fix(android): respect locale in compact labels 2026-07-28 23:49:44 +08:00
Chris M.
37bddc75cc fix(android): finish Wear OS release readiness [AI-assisted] (#110425)
* fix(android): harden Wear release quality

* fix(android): use Wear minimum touch targets

Co-authored-by: Chris Mish <chrism@promethean-dynamic.com>

* fix(android): localize Wear accessibility actions

Co-authored-by: Chris Mish <chrism@promethean-dynamic.com>

* fix(android): preserve dictation without live voice

Co-authored-by: Chris Mish <chrism@promethean-dynamic.com>

* fix(android): isolate Wear locale source changes

Co-authored-by: Chris Mish <chrism@promethean-dynamic.com>

* fix(android): keep Wear dictate preview exclusive

Co-authored-by: Chris Mish <chrism@promethean-dynamic.com>

* fix(android): separate large-font Wear hit targets

Co-authored-by: Chris Mish <chrism@promethean-dynamic.com>

* test(pr): isolate review artifact ripgrep fixture

* ci: extend embedded-agent fork watchdog

* refactor(android): clarify Wear voice action availability

* style(android): preserve Wear locale source lines

* chore(i18n): refresh native source inventory

* style(android): restore Wear label indentation

---------

Co-authored-by: Chris Mish <chrism@promethean-dynamic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-28 05:41:53 -04:00
Vincent Koc
9000da0451 refactor(android): remove unused Wear voice button (#115061) 2026-07-28 16:19:34 +08:00
Vincent Koc
7838c6a6fd fix(apps): fence stale mobile delivery state 2026-07-28 08:15:52 +02:00
NianJiu
aa26ecfac1 fix(android): Wear Talk works after exiting and reopening (#112383)
* fix(android): scope Wear Talk client to ViewModel

* test(android): exercise Wear ViewModel factory lifecycle

Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com>

---------

Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-27 23:35:10 -04:00
Peter Steinberger
935ee7fedf fix(wear): keep active watch replies when older turns finish (#113804)
* fix(wear): preserve active replies when older turns end

* fix(wear): isolate terminal events at the watch

---------

Co-authored-by: Peter Steinberger <steipete@golden-gate.local>
2026-07-25 12:42:42 -07:00
WhatsSkiLL
b3752e375d feat(android): add Wear instant talk tile (#112721)
* feat(android): add Wear instant talk tile

* fix(android): preserve Wear screenshot warm launches

* fix(android): preserve Wear state on warm launch

---------

Co-authored-by: Colin <colin@solvely.net>
2026-07-22 19:28:41 -04:00
WhatsSkiLL
80aaaeea3e fix(android): respect reduced motion in Wear avatar (#112245)
* fix(android): respect reduced motion in Wear avatar

* fix(android): observe effective Wear animation scale

* fix(android): refresh legacy Wear motion scale

* fix(android): initialize Wear motion scale before snapshot observation

---------

Co-authored-by: Colin <colin@solvely.net>
2026-07-22 09:22:29 -04:00
Peter Steinberger
bd03b4d658 fix(i18n): regenerate native locale artifacts after Android inventory drift 2026-07-21 14:15:31 -07:00
Vincent Koc
c6c1151c3a build(i18n): generate Wear locale resources 2026-07-21 17:36:49 +08:00
Vincent Koc
6a26f9f383 fix(android): localize Wear connection failures 2026-07-21 17:36:49 +08:00
joshavant
9089e33a1a Android: add Wear OS screenshot pipeline 2026-07-21 00:06:15 -05:00
WhatsSkiLL
ec9bc46e80 Wear: animate Talk avatar from playback audio (#111516)
* Wear: animate Talk avatar from playback audio

* fix(wear): preserve PCM mouth frame continuity

---------

Co-authored-by: Colin <colin@solvely.net>
2026-07-20 12:33:09 -04:00
WhatsSkiLL
50ce5dedea fix(android): improve Wear thread follow behavior (#111459)
* improve(android): move Wear agent, session, and model pickers to Home

* fix(android): improve Wear thread follow behavior

* fix(android): stabilize Wear thread follow lifecycle

* fix(android): keep streamed Wear tail visible

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

---------

Co-authored-by: Colin <colin@solvely.net>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-19 10:54:10 -07:00
WhatsSkiLL
e24420bc1c fix(android): stabilize Wear realtime Talk audio and tool calls (#111033)
* fix(android): relay Wear realtime Talk tool calls

* fix(android): preserve Wear realtime audio streams

* refactor(android): share realtime agent coordination

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): bound Wear realtime audio pipelines

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): close realtime correlation races

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): scope realtime correlation jobs

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): bound Wear realtime audio work

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): bound realtime run correlation

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): stop stale Wear audio delivery

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): track Wear playback per chunk

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* chore(android): refresh native i18n inventory

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-19 05:21:38 -07:00
WhatsSkiLL
19184a9fc6 improve(android): move Wear agent, session, and model pickers to Home (#110661)
* improve(android): move Wear agent, session, and model pickers to Home

* fix(android): harden Wear home context controls

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): preserve Wear session model in capped lists

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): scope Wear model catalogs to sessions

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): harden Wear context request ordering

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): scope Wear model responses to event cursors

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): reload Wear catalog after model selection

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): keep bounded Wear models navigable

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-18 23:57:25 +01:00
Chris M.
cc920838bc fix(android): recover Wear requests from stale phone routes (#110423)
* fix(android): harden Wear phone routing

* fix(android): preserve proven Wear phone routes

Co-authored-by: Chris Mish <chrism@promethean-dynamic.com>

* fix(android): guard Wear discovery invalidation

Co-authored-by: Chris Mish <chrism@promethean-dynamic.com>

---------

Co-authored-by: Chris Mish <chrism@promethean-dynamic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-18 11:33:57 +01:00
WhatsSkiLL
9f25b0dc12 fix(android): polish Wear light and dark surfaces (#110314) 2026-07-18 03:32:43 +01:00
WhatsSkiLL
9dedacf577 fix(android): restore the complete Wear companion experience (#110130)
* fix(android): restore full Wear companion UI

* chore(android): sync native i18n inventory

* fix(android): negotiate Wear companion capabilities

* chore(android): sync generated Japanese localization

* fix(android): preserve Wear reply notification setup

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): harden Wear conversation controls

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): preserve Wear control context

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): keep Wear sessions agent-scoped

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

* fix(android): isolate Wear conversation context

Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-18 00:03:45 +01:00
WhatsSkiLL
4d3b18811e feat(android): add Wear real-time Talk controls (#109483)
* feat(android): add Wear real-time Talk controls

* fix(android): satisfy Wear Talk CI checks

* fix(talk): remove unused client language parameter

* fix(android): harden Wear realtime Talk routing

Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>

* chore(android): refresh Wear Talk metadata

* chore(android): align native i18n baseline

---------

Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-17 13:46:05 +01:00
Peter Steinberger
8d5e39afcd feat(android): add Wear OS companion (#109433)
* feat(android): add Wear OS companion

Co-authored-by: Sebastian Schubotz <git@sibbl.net>

Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>

* style(android): format Wear release gate test

* test(android): cover Wear release CI contracts

* test(android): import Wear JSON fixture type

* fix(android): harden Wear proxy event actor

* test(android): stabilize Wear proxy actor tests

* test(android): isolate Wear proxy actor lifecycles

* test(android): own Wear actor dispatchers

* test(android): use real time for Wear actor tests

* test(android): own Wear actors in test scope

* test(android): stop Wear actors explicitly

* test(android): drain Wear actor cancellation

* test(android): isolate Wear actors from test scheduler

* test(android): inject Wear test clock

---------

Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>
2026-07-16 20:59:29 -07:00