* Replace Desktop menu with Tab/Site/Default user-agent dropdowns.
Desktop becomes a selectable system UA; tab/site/default scopes resolve via WebTabItem, DbBookUa, and PrefZtwo with %version expansion.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Fix UA sheet rows stuck greyed out.
SettingItem.s true means locked; the Tab/Site/Default rows were built with true so none were clickable.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Apply site UA across open tabs and polish agent Details/Edit.
Refresh every open WebNestView via UserAgentHelper when Tab/Site/Default changes, resolve site overrides on navigation, and add Details-only overflow plus Preview/%version edit labels for system and custom agents.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Fix WebNestView$1 VerifyError from UA resolve register clash.
Keep v8 typed as WebSettings across the site-UA resolve path instead of overwriting it with an int.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Fix DialogEditMemo$4 VerifyError on custom UA Edit.
Keep v7 as the select-all boolean across the type-36 hint insert path.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Fix Apply crash from wrong WebTabItem.p field type.
applyOpenTabs used an Object-typed iget that ART rejects; use WebNestFrame and fix the compile stub.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Fix system UA Details: open dialog without VerifyError.
ChildItem construction and onClick register width were crashing MainListAgent; open Details directly on the overflow tap.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Fix custom UA Edit %version hint never showing.
The ViewGroup parent check used if-nez and skipped the hint in the normal case.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Fix Apply NPE when a tab has no WebNestFrame yet.
applyOpenTabs used if-nez on tab.p, so getPageValid ran on null
frames (common for unloaded background tabs on device).
Co-authored-by: Cursor <cursoragent@cursor.com>
* Use flat corners on Site and Default UA sheet rows.
Those rows sit in the middle of the sheet, so round modes 1/2 were wrong.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Force Site UA to iPhone on gemini.google.com.
Hard-code that host to iPhone, grey out the Site row, and skip
persisting a site override for it.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Remove obsolete AgentOverflow$2 after dismiss listener renumber.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Fix cog UA list crash from stale DialogSetDesk.h0 type.
WebViewActivity.k0 still treated h0 as MainSelectAdapter; refresh
Default via SettingListAdapter after MainListAgent returns instead.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Fix Apply NoSuchMethodError on WebNestView.K return type.
Compiled helper called void K; the real method returns boolean.
* Distinguish Tab UA Default (no override) from Soul (type 0).
Tab storage already uses type+1; decode/encode it in the sheet and resolver so unset tabs show Default while Soul is an explicit choice.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Show Details in a dropdown for built-in user agents.
System agent overflow used to open DialogInfo directly; use a one-item MyPopupMenu like custom rows.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Prune dead UA helper paths left from intermediate steps.
Drop unused DbBookTab.C, previewFor, legacy DialogSetDesk ctor, and duplicate Apply resolve in WebViewActivity$417.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Honor Tab UA on navigation for same-host tabs.
WebNestView$1 was resolving with a null tab, so Site/Default overwrote per-tab overrides after reload; look up the frame's WebTabItem and keep M in sync.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Fix WebNestView$1 VerifyError from tab lookup register clash.
Keep v6 as null/String for later merges; store the WebTabItem in v12 instead.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Apply Tab→Site→Default when setting the real WebView UA.
WebView init/resume paths were forcing PrefZtwo (or desk) and ignored per-tab overrides, so the sheet looked right while the request header followed Site/Default.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Prune more intermediate UA wiring from the dropdown work.
Drop unused applyOpenTabs hostFilter, redundant DialogSetDesk tabUa args, and the unused template() wrapper.
Co-authored-by: Cursor <cursoragent@cursor.com>
---------
Co-authored-by: Cursor <cursoragent@cursor.com>