soul-browser/app/res
KaKi87 5099148b38
Unify fullscreen video controls across HTML/YouTube contexts (#138)
* Unify VideoControl chrome with in-page fullscreen layout.

Left-align the top action row with WebVideoFull, keep crop at the end so shared icons stay put, and show zoom/settings/touch-lock/brightness/volume for YouTube embeds while still hiding download and the Soul seek bar.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix VideoControl title/back row and add Show Soul icons.

Put the title on its own left-aligned row with Back and the action icons sharing the row beneath it, restore Rotate alignment for HTML/YouTube player modes, and add the Show Soul icons control at the bottom-left with Audio track to its right.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix Rotate field binding and put Back in the icon row.

The crop reorder had reused the register that later became VideoControl.I, so Rotate pointed at Crop (blank first slot / missing on YouTube). Save Rotate immediately, place Back as the first child of the top icon row, and left-align the title with that row.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix Show Soul icons crash and nudge HTML PiP title.

VideoControl$29 could not call private setIconShow (IllegalAccessError); expose it and restore a small 12dp title inset so the label is not flush left of Back.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix SettingVideoSub VerifyError on subtitle settings open.

G0 passed VideoSubLayout2 to UiTextSize.setSp; call VideoSubLayout2.setTextSize instead so the class verifies and launches.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Hide Show Soul icons on Touch lock and Download when Soul icons off.

Match WebVideoFull: Touch lock hides w0; setIconShow/setIconDown gate the Download button on PrefPdf.u.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Align VideoControl bottom-left controls with YouTube fullscreen spacing.

Use 0 bottom margin on the play/Show Soul/Audio row and 52dp on the Brightness/volume row so PiP matches non-PiP YouTube tap positions.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Anchor Brightness/Show Soul/Audio to YT-style 80dp bottom align.

Seekbar-relative margins barely moved them; match WebVideoFull wv_align_2.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix VideoControl VerifyError from clobbering title register.

Align-id temps reused v14 while it still held the AppCompatTextView.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix PiP align spacer and top-bar offsets vs YouTube fullscreen.

GONE collapsed the 64dp align height; icon row used BELOW+E1 instead of g1.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Put VideoControl play/rew/ff on the same align row as Show Soul.

Play was still anchored to the seekbar while Brightness/Show Soul used the
YouTube-style align, so PiP transport sat too low. Emulator dumpsys now
matches WebVideoFull pixel-for-pixel for align/play/show/brightness/volume.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Keep HTML fullscreen align_2 spacer visible like YouTube/PiP.

wv_align_2 only got its 64dp height when T==2 (YouTube), so Show Soul and
Brightness sat on a collapsed align in plain HTML fullscreen.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Raise volume/subtitles/download to the HTML PiP control row.

Anchor those buttons to align_2 with a 52dp bottom margin in WebVideoFull
and VideoControl so every fullscreen context matches HTML PiP height.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Put download/subtitles back under volume in reversed order.

Keep volume on the raised PiP row; stack download under it and subtitles
to its left. Use INVISIBLE for a hidden download so the LEFT_OF chain holds.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Anchor non-PiP download to align_2 like VideoControl/PiP.

HTML FS left download on align_1 whose spacer stays GONE, so it sat
lower than the PiP under-volume row; use the visible align_2 spacer.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Put HTML/YouTube play/rew/ff on the align_2 Show Soul row.

Match VideoControl: align_1 height still changes with l0(), which pulled
playback controls off the shared chrome row in some HTML/fullscreen modes.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Show HTML FS play/rew/ff and move VC subtitles below download.

HTML fullscreen never set V, so Soul transport stayed GONE; show it for non-YouTube. Subtitles LEFT_OF download overlapped FF in VideoControl.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Keep the 64dp video-align spacer in landscape too.

Landscape used to swap in a 12dp spacer, which dropped non-PiP HTML play/rew/ff below the PiP/Show Soul row.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Pin HTML and PiP play/rew/ff to the same bottom margin.

ABOVE-align still tracked spacer height, so landscape non-PiP transport could sit a row lower than PiP. Both now use ALIGN_PARENT_BOTTOM at 144dp (80+64).

Co-authored-by: Cursor <cursoragent@cursor.com>

* Lower PiP play/rew/ff to the non-PiP transport row.

Use 92dp (80+12) from the bottom in both UIs so PiP matches non-PiP instead of raising non-PiP to the Show Soul row.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Put PiP subtitles left of download again.

Play/rew/ff sit on the lower row, so LEFT_OF no longer overlaps fast-forward.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Drop intermediate video-control layout leftovers.

Revert unused l0 always-64dp (nothing ABOVE-anchors align_1 anymore), remove redundant P visibility in setIconShow, and clear no-op bottomMargin=0 / stale share-row comments.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add Controls timeout to video settings for HTML, YouTube, and PiP.

Let users pick the chrome auto-hide delay (3 seconds by default) or disable fade-out, matching the PDF controls-timeout pattern.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix video controls timeout stuck off before prefs load.

PrefVideo.H defaulted to 0, so applyControlTimeout disabled auto-hide during construction. Default to 3s, set show time before enabling, and re-arm the fade timer.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix applyControlTimeout null check so auto-hide actually arms.

if-nez returned early for every non-null fade view, so the Controls timeout pref never took effect.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Re-apply controls timeout when returning to PiP video player.

VideoActivity skipped the resume path WebVideoFull uses after SettingVideo, so PiP kept the old delay until restart.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-11 20:39:14 +02:00
..
anim Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
anim-ldrtl Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
animator Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
color Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
color-night Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
color-v26 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
drawable Fix Cast/MediaRouter crashes from apktool-nullified drawables (#101) 2026-09-09 18:28:19 +02:00
drawable-anydpi Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
drawable-anydpi-v24 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
drawable-hdpi Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
drawable-nodpi Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
drawable-watch Fix Cast/MediaRouter crashes from apktool-nullified drawables (#101) 2026-09-09 18:28:19 +02:00
drawable-xhdpi-v4 Add whole-word toggle to Find in page (#100) 2026-09-08 18:44:54 +02:00
drawable-xxhdpi Fix Cast/MediaRouter crashes from apktool-nullified drawables (#101) 2026-09-09 18:28:19 +02:00
drawable-xxxhdpi Fix Cast/MediaRouter crashes from apktool-nullified drawables (#101) 2026-09-09 18:28:19 +02:00
interpolator Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
layout Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
layout-land Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
layout-sw600dp Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
layout-v26 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
layout-watch Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
menu Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
mipmap-anydpi-v26 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
mipmap-hdpi Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
mipmap-mdpi Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
mipmap-xhdpi Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
mipmap-xxhdpi Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
mipmap-xxxhdpi Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
raw Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values Unify fullscreen video controls across HTML/YouTube contexts (#138) 2026-10-11 20:39:14 +02:00
values-h320dp-port Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-h360dp-land Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-h480dp Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-h480dp-land Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-h550dp-port Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-h720dp Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-land Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-large Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-ldrtl Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-night Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-night-v30 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-night-v33 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-port Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-sw600dp Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-sw720dp Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-v24 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-v25 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-v26 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-v27 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-v28 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-v29 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-v30 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-v31 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-v33 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-v34 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-v35 Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-w320dp-land Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-w360dp-port Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-w400dp-port Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-w600dp-land Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-watch Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
values-xlarge Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1) 2026-08-10 16:07:14 +02:00
xml Remove dead purchase/donation UI left after #15. 2026-10-06 11:43:08 +02:00