<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/InputCommon/ControllerInterface/Android, branch release-prep-2603a</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>Android: Rework input device hotplug</title>
<updated>2026-02-08T09:38:43+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-02-07T15:36:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=bd92388d2f36c32dee474cbcb5a0e0bba5035656'/>
<id>bd92388d2f36c32dee474cbcb5a0e0bba5035656</id>
<content type='text'>
Previously, when an input device was connected or disconnected, we would
recreate all devices. This commit makes it so we only touch the relevant
device instead. This matters because recreating a device causes us to
drop all held buttons for that device. Due to Android only delivering
inputs as events, we're unable to poll for currently held buttons when
recreating a device.

This recently became a problem for users of Ayn devices due to a
firmware update. Every now and then, something about the display
viewports changes, triggering an update to an input device that I assume
is a touch input device. This input device isn't something users
normally map in Dolphin's controller settings, but it changing was
causing Dolphin to drop all held buttons for the device's built-in
gamepad as well as any other connected gamepads.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, when an input device was connected or disconnected, we would
recreate all devices. This commit makes it so we only touch the relevant
device instead. This matters because recreating a device causes us to
drop all held buttons for that device. Due to Android only delivering
inputs as events, we're unable to poll for currently held buttons when
recreating a device.

This recently became a problem for users of Ayn devices due to a
firmware update. Every now and then, something about the display
viewports changes, triggering an update to an input device that I assume
is a touch input device. This input device isn't something users
normally map in Dolphin's controller settings, but it changing was
causing Dolphin to drop all held buttons for the device's built-in
gamepad as well as any other connected gamepads.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove VectorToJStringArray</title>
<updated>2026-01-24T15:50:10+00:00</updated>
<author>
<name>Sintendo</name>
<email>3380580+Sintendo@users.noreply.github.com</email>
</author>
<published>2025-12-26T20:57:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=60ca0626dfc2a59cc2e8145d0ee5c7d95f7d0ab5'/>
<id>60ca0626dfc2a59cc2e8145d0ee5c7d95f7d0ab5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Common: Remove the string parameters from the HookableEvent interface.</title>
<updated>2025-11-07T04:34:40+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2025-11-07T04:08:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=da6c65bf3b83fa1cfe5da5dc5e43ec49b2786b52'/>
<id>da6c65bf3b83fa1cfe5da5dc5e43ec49b2786b52</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>InputCommon: Make ControllerInterface RegisterDevicesChangedCallback use Common::HookableEvent.</title>
<updated>2025-11-05T23:12:56+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2025-11-04T20:36:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=ca6d8e1f0b1b17096a9e09c61e8d7e1eb97ab06f'/>
<id>ca6d8e1f0b1b17096a9e09c61e8d7e1eb97ab06f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Android: Update advanced mapping dialog when devices change</title>
<updated>2025-06-07T08:20:21+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2025-05-16T16:12:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=43b254aaad5add867b719857d6f8b4fe2d6b750d'/>
<id>43b254aaad5add867b719857d6f8b4fe2d6b750d</id>
<content type='text'>
Without this, there was a bug where if you turned the device's screen
off and on again while in the advanced mapping dialog, the input
indicators would stop updating. This is because turning the screen on
again causes devices to refresh, which causes all devices to be
recreated, leaving the AdvancedMappingControlViewHolders stuck
referencing controls belonging to devices that are no longer being
updated.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Without this, there was a bug where if you turned the device's screen
off and on again while in the advanced mapping dialog, the input
indicators would stop updating. This is because turning the screen on
again causes devices to refresh, which causes all devices to be
recreated, leaving the AdvancedMappingControlViewHolders stuck
referencing controls belonging to devices that are no longer being
updated.
</pre>
</div>
</content>
</entry>
<entry>
<title>Android: Make input state changes observable</title>
<updated>2025-06-07T08:20:18+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2025-05-13T14:55:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=4214cb6eb8828e319b90cfde6604cc36eb236f19'/>
<id>4214cb6eb8828e319b90cfde6604cc36eb236f19</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Simplify `std::find` with `Common::Contains`</title>
<updated>2025-01-01T17:52:03+00:00</updated>
<author>
<name>mitaclaw</name>
<email>140017135+mitaclaw@users.noreply.github.com</email>
</author>
<published>2024-09-21T05:17:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=110d32729ecbe5b19df9b2cc76de630334410589'/>
<id>110d32729ecbe5b19df9b2cc76de630334410589</id>
<content type='text'>
In NandPaths.cpp, the `std::initializer_list&lt;char&gt;` of illegal characters has been turned into a `char[]` (similar to the one in GameList.cpp).

The reverse iteration in ResourcePack.cpp seemed to provide no benefits, and doing without it it seemed to have no ill effects.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In NandPaths.cpp, the `std::initializer_list&lt;char&gt;` of illegal characters has been turned into a `char[]` (similar to the one in GameList.cpp).

The reverse iteration in ResourcePack.cpp seemed to provide no benefits, and doing without it it seemed to have no ill effects.
</pre>
</div>
</content>
</entry>
<entry>
<title>InputCommon: Rename AddAnalogInputs to AddFullAnalogSurfaceInputs.</title>
<updated>2024-11-03T21:06:50+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2024-11-02T22:10:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=2f1390e9f9706a3c5c0bc46df17006ddf98d4cec'/>
<id>2f1390e9f9706a3c5c0bc46df17006ddf98d4cec</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Android/ControllerInterface: Run the init code</title>
<updated>2024-04-13T20:39:10+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2024-04-13T20:39:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=5456d990d16bee5a03796e5230ffc1117a981393'/>
<id>5456d990d16bee5a03796e5230ffc1117a981393</id>
<content type='text'>
This was broken by a9a9fdd9e9. Because Init didn't run, the Android
input backend would crash whenever it tried to call into JVM code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was broken by a9a9fdd9e9. Because Init didn't run, the Android
input backend would crash whenever it tried to call into JVM code.
</pre>
</div>
</content>
</entry>
<entry>
<title>InputCommon: Add Android InputBackend class.</title>
<updated>2024-03-11T08:25:31+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2024-03-11T07:36:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=a9a9fdd9e903d47ec83aa7385e7be54871abbf0b'/>
<id>a9a9fdd9e903d47ec83aa7385e7be54871abbf0b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
