<feed xmlns='http://www.w3.org/2005/Atom'>
<title>android/scrcpy-android/app, branch 0.5</title>
<subtitle>[no description]</subtitle>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/'/>
<entry>
<title>release: 0.5</title>
<updated>2026-08-01T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-08-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/commit/?id=4341eb16f2ff3233599b1f42c91105f424bc016a'/>
<id>4341eb16f2ff3233599b1f42c91105f424bc016a</id>
<content type='text'>
Complete the prerelease audit after physical-device verification.
Require Wireless ADB TLS, update scrcpy to 4.1, and harden media,
lifecycle, release tests, and metadata.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Complete the prerelease audit after physical-device verification.
Require Wireless ADB TLS, update scrcpy to 4.1, and harden media,
lifecycle, release tests, and metadata.
</pre>
</div>
</content>
</entry>
<entry>
<title>app: refine physical-device interface</title>
<updated>2026-08-01T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-08-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/commit/?id=3037f9f8fdcc6cdadfe94ba248d10e647578cf53'/>
<id>3037f9f8fdcc6cdadfe94ba248d10e647578cf53</id>
<content type='text'>
Use target-safe capture defaults and remove redundant navigation and
frame-rate controls.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use target-safe capture defaults and remove redundant navigation and
frame-rate controls.
</pre>
</div>
</content>
</entry>
<entry>
<title>video: reset stalled encoder generations</title>
<updated>2026-08-01T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-08-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/commit/?id=70290eb3d79a5347cdc114daf6ce0b1b2e86528a'/>
<id>70290eb3d79a5347cdc114daf6ce0b1b2e86528a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>audio: harden Opus playback</title>
<updated>2026-08-01T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-08-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/commit/?id=75b1a5569bf9048acefa49f2921b2653a828d545'/>
<id>75b1a5569bf9048acefa49f2921b2653a828d545</id>
<content type='text'>
Preserve decoder timing and keep blocking speaker writes off codec
callbacks. Playback failures no longer take down video or control.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Preserve decoder timing and keep blocking speaker writes off codec
callbacks. Playback failures no longer take down video or control.
</pre>
</div>
</content>
</entry>
<entry>
<title>app: harden mirroring lifecycle and state</title>
<updated>2026-08-01T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-08-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/commit/?id=852a8a00273c9128efeed0217a8e5d3fcd8bf780'/>
<id>852a8a00273c9128efeed0217a8e5d3fcd8bf780</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>adb: reduce and harden wireless transport</title>
<updated>2026-08-01T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-08-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/commit/?id=f379b93d52bf0dbd3816ec3f64d165314771d2a6'/>
<id>f379b93d52bf0dbd3816ec3f64d165314771d2a6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>build: pin and verify release inputs</title>
<updated>2026-08-01T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-08-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/commit/?id=827653aa291e37ae63c0cfa1eee4fbaa20cea122'/>
<id>827653aa291e37ae63c0cfa1eee4fbaa20cea122</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>release: 0.4</title>
<updated>2026-07-01T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-07-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/commit/?id=b6c19916afc382875836ee7d13c7cd6e5a5181c1'/>
<id>b6c19916afc382875836ee7d13c7cd6e5a5181c1</id>
<content type='text'>
Address the F-Droid submission review (fdroiddata!41394): the pairing
form takes one device address instead of two loose ports, and both
screens now clear the system bars under Android 15's edge-to-edge.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Address the F-Droid submission review (fdroiddata!41394): the pairing
form takes one device address instead of two loose ports, and both
screens now clear the system bars under Android 15's edge-to-edge.
</pre>
</div>
</content>
</entry>
<entry>
<title>app: enter the device address as one host:port field</title>
<updated>2026-07-01T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-07-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/commit/?id=30ee8be82e44d1a8250d1f6e27e71f7d5f24aec5'/>
<id>30ee8be82e44d1a8250d1f6e27e71f7d5f24aec5</id>
<content type='text'>
The form asked for a host, a pairing port and a connection port as three
separate fields. Nothing on screen says which port is which, and the two
are only distinguishable if the reader already knows how adb pair works
on Android 11+.

Take the connection endpoint the way the target prints it, as a single
"ip:port" string copied off the Wireless debugging screen, and leave the
pairing dialog with just its port and code. Devices.parseAddress() does
the split and rejects anything malformed rather than guessing: an
unbracketed IPv6 literal would otherwise be split at the wrong colon.

Reported on the F-Droid submission (fdroiddata!41394).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The form asked for a host, a pairing port and a connection port as three
separate fields. Nothing on screen says which port is which, and the two
are only distinguishable if the reader already knows how adb pair works
on Android 11+.

Take the connection endpoint the way the target prints it, as a single
"ip:port" string copied off the Wireless debugging screen, and leave the
pairing dialog with just its port and code. Devices.parseAddress() does
the split and rejects anything malformed rather than guessing: an
unbracketed IPv6 literal would otherwise be split at the wrong colon.

Reported on the F-Droid submission (fdroiddata!41394).
</pre>
</div>
</content>
</entry>
<entry>
<title>app: pad Main and Settings for system bar insets</title>
<updated>2026-07-01T00:00:00+00:00</updated>
<author>
<name>Lena</name>
<email>lena@omega</email>
</author>
<published>2026-07-01T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.0xlena.dev/android/scrcpy-android/commit/?id=c03f0464c1f834c2f4d8642cbfad322033d368b7'/>
<id>c03f0464c1f834c2f4d8642cbfad322033d368b7</id>
<content type='text'>
targetSdk 35 makes every window edge-to-edge on Android 15. Neither
activity handled insets, so Main drew its header under the status bar
and the Settings ScrollView started at window y=0: the framework action
bar covered its first 80dp and the navigation bar covered the last rows.

Pad both roots by the system bar insets. Main adds the IME inset as
well, since an edge-to-edge window is not resized when the keyboard
opens. Settings drops the framework action bar and draws its own title
like Main already does, which removes the action-bar-versus-inset
interaction entirely.

Reported on the F-Droid submission (fdroiddata!41394).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
targetSdk 35 makes every window edge-to-edge on Android 15. Neither
activity handled insets, so Main drew its header under the status bar
and the Settings ScrollView started at window y=0: the framework action
bar covered its first 80dp and the navigation bar covered the last rows.

Pad both roots by the system bar insets. Main adds the IME inset as
well, since an edge-to-edge window is not resized when the keyboard
opens. Settings drops the framework action bar and draws its own title
like Main already does, which removes the action-bar-versus-inset
interaction entirely.

Reported on the F-Droid submission (fdroiddata!41394).
</pre>
</div>
</content>
</entry>
</feed>
