163 Commits
Author SHA1 Message Date
Benjamin Wiegand 54b8f7e416 improve dynamic colors themes 2025-08-08 16:53:42 -07:00
Benjamin Wiegand a767079d34 version 0.0.2 v0.0.2 2025-07-15 12:47:48 -07:00
Benjamin Wiegand e1edbe963c implement power button
I'm not entirely happy with the ui changes, I might revisit them
2025-07-15 12:23:10 -07:00
Benjamin Wiegand 56113d7d87 version 0.0.1
fuck it time for release now
v0.0.1
2025-07-10 16:47:02 -07:00
Benjamin Wiegand cb23b4995e only grant POST_NOTIFICATIONS on api >=33 2025-07-10 16:37:18 -07:00
Benjamin Wiegand 853083415e add new app icon 2025-07-10 16:34:43 -07:00
Benjamin Wiegand 343d2ab792 request notification permission 2025-07-09 19:40:00 -07:00
Benjamin Wiegand 7fabc95359 don't reconnect automatically if not open 2025-07-09 18:40:23 -07:00
Benjamin Wiegand 634a57b420 add foreground notification
this should hopefully stop the annoying disconnections when the app is backgrounded.

the implementation did not go to plan. nothing ever goes to plan. but whatever, it works well enough.
2025-07-08 01:30:17 -07:00
Benjamin Wiegand e5d9e085b3 debug flag for network logs 2025-07-06 21:29:44 -07:00
Benjamin Wiegand 916b79008a debug flag for defaulting to localhost:6969 2025-07-06 21:25:20 -07:00
Benjamin Wiegand 8ea8723149 fix test 2025-07-06 21:24:00 -07:00
Benjamin Wiegand 4023bee0c1 media state event booleans can be null 2025-06-25 18:50:35 -07:00
Benjamin Wiegand 085797a502 move error text to strings 2025-06-25 18:45:01 -07:00
Benjamin Wiegand 56c08aaca5 add default editor action / submit button
also added a shift key to even out the keyboard buttons
2025-06-25 18:40:34 -07:00
Benjamin Wiegand c79b27be73 add separate click action for accessibility
long press also works pretty well with talkback
2025-06-24 21:41:38 -07:00
Benjamin Wiegand 32214108e3 send repeating key events by default
as it turns out, sending multiple key down events is the rule not the exception. I should have checked this.
2025-06-24 19:36:26 -07:00
Benjamin Wiegand a69288aa23 refactor
- put the button handling of RemoteButton classes into a single shared class so the code doesn't have to be duplicated across both classes
- renamed a method from "UpDown" to "DownUp"
2025-06-24 17:36:48 -07:00
Benjamin Wiegand 54f5c78b14 allow ime action to send text 2025-06-24 14:25:51 -07:00
Benjamin Wiegand 45ae9be2f9 fixes for small screen sizes
- require a minimum width for the landscape dpad layout
- remove UI elements if the screen is too small
2025-06-23 20:39:20 -07:00
Benjamin Wiegand 5150c8da86 make stack trace dropdown less prominent and hide it for remote exceptions 2025-06-23 18:45:47 -07:00
Benjamin Wiegand b213d918a2 fix button text teleportation
it can still happen if you tap it and quickly open the keyboard, but this is good enough for now
2025-06-23 18:17:37 -07:00
Benjamin Wiegand fafe2a610f add more icons 2025-06-23 16:39:17 -07:00
Benjamin Wiegand 29364120b6 dd navbar margin in landscape mouse layout 2025-06-23 13:27:47 -07:00
Benjamin Wiegand 0549c95044 adjust dpad margin 2025-06-23 00:38:14 -07:00
Benjamin Wiegand 7e98e38ee6 fix dpad spacing
the dpad was kinda off-center because the grid tiles were not sized evenly.

before you ask, no, I don't even know why it was like that, but this fixes it.
2025-06-23 00:35:09 -07:00
Benjamin Wiegand ce940b5496 set a minimum width for button rows
without this they get crushed if the dpad is too small
2025-06-22 23:31:21 -07:00
Benjamin Wiegand 9fa3126592 fix button grid alignment with dpad
buttons should be in line with the 3x3 dpad grid. this means not evenly spaced, because math.
2025-06-22 23:30:00 -07:00
Benjamin Wiegand eb6fa77686 use constraint layout chain
previously there were problems with square(ish) screens having clipping ui elements, now they only have clipping ui elements in landscape mode.

unfortunately I couldn't get the media buttons in the exact position I wanted them. at this point I'm just happy that I have a dpad ui that doesn't completely break on some aspect ratios.
2025-06-22 22:52:33 -07:00
Benjamin Wiegand 6b16be891e show media source/title on dpad screen 2025-06-22 20:34:22 -07:00
Benjamin Wiegand 0d68e57e74 make media metadata go "invisible" instead of "gone"
avoids/reduces layout shift when it changes
2025-06-22 20:33:34 -07:00
Benjamin Wiegand a582002593 move media buttons to the top of the screen 2025-06-22 20:24:11 -07:00
Benjamin Wiegand 874373661a add navbar margin in mouse layout 2025-06-22 20:00:22 -07:00
Benjamin Wiegand 40f64bf33f remove button margin 2025-06-22 19:58:37 -07:00
Benjamin Wiegand e19c9aeb2c implement keyboard input ui
for now it just auto-types text provided in a textbox. I've been thinking of a much more integrated solution, but it will take a lot of time
2025-06-22 19:14:37 -07:00
Benjamin Wiegand 14ee7eb112 refactor RemoteButton -> RemoteImageButton and add RemoteTextButton 2025-06-22 19:11:11 -07:00
Benjamin Wiegand 75509371c2 send up/down key events for all buttons 2025-06-21 15:16:02 -07:00
Benjamin Wiegand 1421dac1e5 add basic protocol support for keyboard 2025-06-20 20:55:57 -07:00
Benjamin Wiegand a35f58687e use new constants for key events 2025-06-19 16:36:54 -07:00
Benjamin Wiegand f48cc1889c allow rotating just the drawable
rotating the entire button becomes problematic. for example, if the button isn't square or has a rotation not divisible by 90, you will be able to tell that the background get rotated too.
2025-06-19 16:23:57 -07:00
Benjamin Wiegand 5eadb01fc8 fix contentDescription 2025-06-19 16:18:59 -07:00
Benjamin Wiegand 350bacfa1b add operation definitions before starting i/o threads
prevents a race condition where you can get a "HUH?" right after the connection is established for a supported command
2025-06-13 04:01:26 -07:00
Benjamin Wiegand bc31b53c4f subscribe to position events while on media screen 2025-06-13 03:59:44 -07:00
Benjamin Wiegand 5da846eac2 implement media session feedback into UI
- shows text information about the media
- the play/pause button now switches between play and pause icons depending on if the primary media session is playing. the button still always toggles playback.
- if subscribed to position events, the seek bar is shown and matches playback position
2025-06-13 02:50:28 -07:00
Benjamin Wiegand 5f2cf3f5bf refactor toast errors 2025-06-13 02:44:52 -07:00
Benjamin Wiegand 0b359d1c48 update media display layout
- add app name label
- make everything hidden by default
2025-06-13 02:43:35 -07:00
Benjamin Wiegand 05790b2a1b implement media session tracker
tracks what media sessions are active, their states, callbacks for them, and manages subscriptions to media related events
2025-06-12 23:42:08 -07:00
Benjamin Wiegand c82fda50df remove unused exception 2025-06-10 11:33:13 -07:00
Benjamin Wiegand 3d9939d91d increase event timeout to 30 seconds
this doesn't fix any known issues, but events getting dropped is not supposed to happen and increasing this timeout makes it much less likely that network latency could cause a problem
2025-06-10 11:30:00 -07:00
Benjamin Wiegand 4b99866247 log exceptions in event handlers that aren't error messages 2025-06-10 11:27:47 -07:00