PRProd / HA-Firemote

Apple TV, Amazon Fire TV, Fire streaming stick, Chromecast, NVIDIA Shield, onn., Roku, Xiaomi Mi, and Android TV remote control card for Home Assistant
GNU General Public License v3.0
384 stars 65 forks source link

[Amazon Fire TV Device Support]: JVC 4K - Fire TV with Freeview Play (2021) #303

Closed j-m closed 5 months ago

j-m commented 5 months ago

Device Name

JVC 4K - Fire TV with Freeview Play (2021)

Which compatibility mode event number works BEST with your device?

event0

Device ADB Input Interrogation Response

adb_response: INPUT MANAGER (dumpsys input)

Input Manager State:
  Interactive: false
  System UI Visibility: 0x0
  Pointer Speed: 0
  Pointer Gestures Enabled: true
  Show Touches: false
  Pointer Capture Enabled: false

Event Hub State:
  BuiltInKeyboardId: -2
  Devices:
    -1: Virtual
      Classes: 0x40000023
      Path: <virtual>
      Enabled: true
      Descriptor: a718a782d34bc767f4689c232d64d527998ea7fd:00000000
      Location: 
      ControllerNumber: 0
      UniqueId: <virtual>
      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
      KeyLayoutFile: /system/usr/keylayout/Generic.kl
      KeyCharacterMapFile: /system/usr/keychars/Virtual.kcm
      ConfigurationFile: 
      HaveKeyboardLayoutOverlay: false
    1: MTK TV KEYPAD
      Classes: 0x00000001
      Path: /dev/input/event1
      Enabled: true
      Descriptor: 8f43d929a9472e8dc54d48a6c41e2435e8eaff35:36970002
      Location: 
      ControllerNumber: 0
      UniqueId: 
      Identifier: bus=0x0019, vendor=0x3697, product=0x0002, version=0x0002
      KeyLayoutFile: /vendor/usr/keylayout/Vendor_3697_Product_0002.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile: 
      HaveKeyboardLayoutOverlay: false
    2: MStar Smart TV IR Receiver
      Classes: 0x80000021
      Path: /dev/input/event0
      Enabled: true
      Descriptor: 0e50bdc18d3ae0b6f247100cbd99062d93c208eb:36970001
      Location: /dev/ir
      ControllerNumber: 0
      UniqueId: 
      Identifier: bus=0x0018, vendor=0x3697, product=0x0001, version=0x0001
      KeyLayoutFile: /vendor/usr/keylayout/Vendor_3697_Product_0001.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile: /vendor/usr/idc/Vendor_3697_Product_0001.idc
      HaveKeyboardLayoutOverlay: false
    3: amazon_touch
      Classes: 0x00000014
      Path: /dev/input/event2
      Enabled: true
      Descriptor: 185733e0df071e21edd860dd6224a1f9f378c689:00000000
      Location: 
      ControllerNumber: 0
      UniqueId: 
      Identifier: bus=0x0005, vendor=0x0000, product=0x0000, version=0x0008
      KeyLayoutFile: 
      KeyCharacterMapFile: 
      ConfigurationFile: /system/usr/idc/amazon_touch.idc
      HaveKeyboardLayoutOverlay: false
    4: kcmouse
      Classes: 0x80000008
      Path: /dev/input/event3
      Enabled: true
      Descriptor: 3b975ed12e4cb4357a995906d1f9c74d8457fd71:00000000
      Location: 
      ControllerNumber: 0
      UniqueId: 
      Identifier: bus=0x0005, vendor=0x0000, product=0x0000, version=0x0008
      KeyLayoutFile: 
      KeyCharacterMapFile: 
      ConfigurationFile: 
      HaveKeyboardLayoutOverlay: false
    6: amzkeyboard
      Classes: 0x80000023
      Path: /dev/input/event5
      Enabled: true
      Descriptor: ea16b8e37822378b09336d67566ac23418d207f4:00000000
      Location: 
      ControllerNumber: 0
      UniqueId: 
      Identifier: bus=0x0005, vendor=0x0000, product=0x0000, version=0x0008
      KeyLayoutFile: /system/usr/keylayout/amzkeyboard.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile: 
      HaveKeyboardLayoutOverlay: false

Input Reader State:
  Device -1: Virtual
    Generation: 2
    IsExternal: false
    HasMic:     false
    Sources: 0x00000301
    KeyboardType: 2
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: false
        OrientationAware: false
        HandlesKeyRepeat: false
      KeyboardType: 2
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Device 1: MTK TV KEYPAD
    Generation: 6
    IsExternal: false
    HasMic:     false
    Sources: 0x00000101
    KeyboardType: 1
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: false
        OrientationAware: false
        HandlesKeyRepeat: false
      KeyboardType: 1
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Device 2: MStar Smart TV IR Receiver
    Generation: 4
    IsExternal: true
    HasMic:     false
    Sources: 0x00000301
    KeyboardType: 1
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: false
        OrientationAware: false
        HandlesKeyRepeat: false
      KeyboardType: 1
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 175095440608000
  Device 3: amazon_touch
    Generation: 11
    IsExternal: false
    HasMic:     false
    Sources: 0x00001002
    KeyboardType: 0
    Motion Ranges:
      X: source=0x00001002, min=0.000, max=1919.000, flat=0.000, fuzz=0.000, resolution=0.000
      Y: source=0x00001002, min=0.000, max=1079.000, flat=0.000, fuzz=0.000, resolution=0.000
      PRESSURE: source=0x00001002, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
    Touch Input Mapper (mode - direct):
      Parameters:
        GestureMode: multi-touch
        DeviceType: touchScreen
        AssociatedDisplay: hasAssociatedDisplay=true, isExternal=false, displayId=''
        OrientationAware: true
      Raw Touch Axes:
        X: min=0, max=1919, flat=0, fuzz=0, resolution=0
        Y: min=0, max=1079, flat=0, fuzz=0, resolution=0
        Pressure: unknown range
        TouchMajor: unknown range
        TouchMinor: unknown range
        ToolMajor: unknown range
        ToolMinor: unknown range
        Orientation: unknown range
        Distance: unknown range
        TiltX: unknown range
        TiltY: unknown range
        TrackingId: unknown range
        Slot: unknown range
      Calibration:
        touch.size.calibration: none
        touch.size.scale: 40.000
        touch.size.bias: 0.000
        touch.size.isSummed: false
        touch.pressure.calibration: none
        touch.pressure.scale: 0.013
        touch.orientation.calibration: none
        touch.distance.calibration: none
        touch.coverage.calibration: none
      Affine Transformation:
        X scale: 1.000
        X ymix: 0.000
        X offset: 0.000
        Y xmix: 0.000
        Y scale: 1.000
        Y offset: 0.000
      Viewport: displayId=0, orientation=0, logicalFrame=[0, 0, 1920, 1080], physicalFrame=[0, 0, 3840, 2160], deviceSize=[3840, 2160]
      SurfaceWidth: 1920px
      SurfaceHeight: 1080px
      SurfaceLeft: 0
      SurfaceTop: 0
      SurfaceOrientation: 0
      Translation and Scaling Factors:
        XTranslate: 0.000
        YTranslate: 0.000
        XScale: 1.000
        YScale: 1.000
        XPrecision: 1.000
        YPrecision: 1.000
        GeometricScale: 1.000
        PressureScale: 0.000
        SizeScale: 0.000
        OrientationScale: 0.000
        DistanceScale: 0.000
        HaveTilt: false
        TiltXCenter: 0.000
        TiltXScale: 0.000
        TiltYCenter: 0.000
        TiltYScale: 0.000
      Last Raw Button State: 0x00000000
      Last Raw Touch: pointerCount=0
      Last Cooked Button State: 0x00000000
      Last Cooked Touch: pointerCount=0
      Stylus Fusion:
        ExternalStylusConnected: false
        External Stylus ID: -1
        External Stylus Data Timeout: 9223372036854775807
      External Stylus State:
        When: 9223372036854775807
        Pressure: 0.000000
        Button State: 0x00000000
        Tool Type: 0
  Device 4: kcmouse
    Generation: 44
    IsExternal: true
    HasMic:     false
    Sources: 0x00002002
    KeyboardType: 0
    Motion Ranges:
      X: source=0x00002002, min=0.000, max=1919.000, flat=0.000, fuzz=0.000, resolution=0.000
      Y: source=0x00002002, min=0.000, max=1079.000, flat=0.000, fuzz=0.000, resolution=0.000
      PRESSURE: source=0x00002002, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
      VSCROLL: source=0x00002002, min=-1.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
    Cursor Input Mapper:
      Parameters:
        HasAssociatedDisplay: true
        Mode: pointer
        OrientationAware: false
      XScale: 1.000
      YScale: 1.000
      XPrecision: 1.000
      YPrecision: 1.000
      HaveVWheel: true
      HaveHWheel: false
      VWheelScale: 1.000
      HWheelScale: 1.000
      Orientation: 0
      ButtonState: 0x00000000
      Down: false
      DownTime: 0
  Device 6: amzkeyboard
    Generation: 20
    IsExternal: true
    HasMic:     false
    Sources: 0x00000301
    KeyboardType: 2
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: false
        OrientationAware: false
        HandlesKeyRepeat: false
      KeyboardType: 2
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Configuration:
    ExcludedDeviceNames: []
    VirtualKeyQuietTime: 0.0ms
    PointerVelocityControlParameters: scale=1.000, lowThreshold=500.000, highThreshold=3000.000, acceleration=3.000
    WheelVelocityControlParameters: scale=1.000, lowThreshold=15.000, highThreshold=50.000, acceleration=4.000
    PointerGesture:
      Enabled: true
      QuietInterval: 100.0ms
      DragMinSwitchSpeed: 50.0px/s
      TapInterval: 150.0ms
      TapDragInterval: 300.0ms
      TapSlop: 20.0px
      MultitouchSettleInterval: 100.0ms
      MultitouchMinDistance: 15.0px
      SwipeTransitionAngleCosine: 0.3
      SwipeMaxWidthRatio: 0.2
      MovementSpeedRatio: 0.8
      ZoomSpeedRatio: 0.3
      Viewports:
        ViewportInternal:
          Viewport: displayId=0, orientation=0, uniqueId='', logicalFrame=[0, 0, 1920, 1080], physicalFrame=[0, 0, 3840, 2160], deviceSize=[3840, 2160]
        ViewportExternal:
          Viewport: displayId=0, orientation=0, uniqueId='', logicalFrame=[0, 0, 1920, 1080], physicalFrame=[0, 0, 3840, 2160], deviceSize=[3840, 2160]
        ViewportVirtual:

Input Dispatcher State:
  DispatchEnabled: 1
  DispatchFrozen: 0
  FocusedApplication: name='AppWindowToken{cee1c4b token=Token{694a91a ActivityRecord{c233bc5 u0 com.amazon.ftv.profilepicker/.ui.PickerActivity t2604}}}', dispatchingTimeout=5000.000ms
  FocusedWindow: name='Window{7242646 u0 com.amazon.ftv.profilepicker/com.amazon.ftv.profilepicker.ui.PickerActivity}'
  TouchStates: <no displays touched>
  Windows:
    0: name='Window{bbc3cb6 u0 com.amazon.vizzini}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01400108, type=0x000007da, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=5100, ownerUid=10034, dispatchingTimeout=5000.000ms
    1: name='Window{620121d u0 com.amazon.vizzini}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01400100, type=0x000007da, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=5100, ownerUid=10034, dispatchingTimeout=5000.000ms
    2: name='Window{7242646 u0 com.amazon.ftv.profilepicker/com.amazon.ftv.profilepicker.ui.PickerActivity}', displayId=0, paused=false, hasFocus=true, hasWallpaper=false, visible=true, canReceiveKeys=true, flags=0x81810120, type=0x00000001, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=2190, ownerUid=10019, dispatchingTimeout=5000.000ms
    3: name='Window{688fa31 u0 com.disney.disneyplus/com.bamtechmedia.dominguez.player.ui.experiences.legacy.v1.TvPlaybackActivity}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x81812120, type=0x00000001, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=28100, ownerUid=10212, dispatchingTimeout=5000.000ms
    4: name='Window{4a249a9 u0 com.disney.disneyplus/com.bamtechmedia.dominguez.main.MainActivity}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x81810120, type=0x00000001, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=28100, ownerUid=10212, dispatchingTimeout=5000.000ms
    5: name='Window{81e06ae u0 com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity_vNext}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x83810120, type=0x00000001, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=5398, ownerUid=10015, dispatchingTimeout=5000.000ms
    6: name='Window{df982de u0 com.vewd.core.tvapp/com.vewd.core.tvapp.TvActivity}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x81810520, type=0x00000001, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=19460, ownerUid=10062, dispatchingTimeout=5000.000ms
    7: name='Window{67b43fd u0 com.vewd.core.tvapp/com.vewd.core.tvapp.EpgActivity}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x81810520, type=0x00000001, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=19460, ownerUid=10062, dispatchingTimeout=5000.000ms
  MonitoringChannels:
    0: 'WindowManager (server)'
  RecentQueue: length=10
    KeyEvent, age=13257946.0ms
    KeyEvent, age=13257827.0ms
    KeyEvent, age=13252586.0ms
    KeyEvent, age=13252546.0ms
    KeyEvent, age=13244235.0ms
    KeyEvent, age=13244166.0ms
    KeyEvent, age=11980908.0ms
    KeyEvent, age=11980753.0ms
    DeviceResetEvent(deviceId=9), policyFlags=0x00000000, age=11620381.0ms
    ConfigurationChangedEvent(), policyFlags=0x00000000, age=11620381.0ms
  PendingEvent: <none>
  InboundQueue: <empty>
  ReplacedKeys: <empty>
  Connections:
    0: channelName='WindowManager (server)', windowName='monitor', status=NORMAL, monitor=true, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    1: channelName='4a249a9 com.disney.disneyplus/com.bamtechmedia.dominguez.main.MainActivity (server)', windowName='Window{4a249a9 u0 com.disney.disneyplus/com.bamtechmedia.dominguez.main.MainActivity}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    2: channelName='81e06ae com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity_vNext (server)', windowName='Window{81e06ae u0 com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity_vNext}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    3: channelName='bbc3cb6 com.amazon.vizzini (server)', windowName='Window{bbc3cb6 u0 com.amazon.vizzini}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    4: channelName='7242646 com.amazon.ftv.profilepicker/com.amazon.ftv.profilepicker.ui.PickerActivity (server)', windowName='Window{7242646 u0 com.amazon.ftv.profilepicker/com.amazon.ftv.profilepicker.ui.PickerActivity}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    5: channelName='67b43fd com.vewd.core.tvapp/com.vewd.core.tvapp.EpgActivity (server)', windowName='Window{67b43fd u0 com.vewd.core.tvapp/com.vewd.core.tvapp.EpgActivity}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    6: channelName='620121d com.amazon.vizzini (server)', windowName='Window{620121d u0 com.amazon.vizzini}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    7: channelName='688fa31 com.disney.disneyplus/com.bamtechmedia.dominguez.player.ui.experiences.legacy.v1.TvPlaybackActivity (server)', windowName='Window{688fa31 u0 com.disney.disneyplus/com.bamtechmedia.dominguez.player.ui.experiences.legacy.v1.TvPlaybackActivity}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    8: channelName='df982de com.vewd.core.tvapp/com.vewd.core.tvapp.TvActivity (server)', windowName='Window{df982de u0 com.vewd.core.tvapp/com.vewd.core.tvapp.TvActivity}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
  AppSwitch: not pending
  Configuration:
    KeyRepeatDelay: 50.0ms
    KeyRepeatTimeout: 500.0ms
hdmi_input: null
device_class: tv
friendly_name: Fire TV 192.168.0.158
supported_features: 22961

Additional Comments (optional)

The event0 and Strong (stronger) modes were the only ones mapped correctly for the live/guide button. Strong wasn't actually any slower in most cases (was occasionally).

PRProd commented 5 months ago

@j-m - Thanks for filling this out!

Can you explain what happens when you press these buttons?

PRProd commented 5 months ago

Also, could I trouble you to open a new app shortcut request for Freeview Play? That will be super helpful as well.

Thanks in advance!

j-m commented 5 months ago

That remote isn't our exact one so to avoid any confusion here it is image

SUBT shows a dialogue to change subtitle and audio languages, i.e. Off / English TXT is actually LIVE on ours, it's akin to the typical "more info" buttons you get on older remotes. (This one displays the full text description of the current show as per, but also shows a mini guide of the current and neighbouring channels, we sometimes need to press it twice to show even more info like Signal strength and settings etc)

PRProd commented 5 months ago

If things go smoothly for me in the next few hours tonight and some time tomorrow morning, I might have something for you to play around with very soon.

PRProd commented 5 months ago

YOUR TURN! :smile:

I have just published beta version v3.2.2b1 for you to download and test.

image

Testing checklist:

Please provide:


Something to note

I could not figure out the LIVE button, so I need to send you some instructions that will hopefully help me gather the info I need for that... but not right now. My eyes hurt. I'm going to go relax for a while.

j-m commented 5 months ago

I couldn't test the yellow/blue buttons because I've no idea where they're used, but red and green worked fine so I guess we can assume they're good too.

Unfortunately the FPlay button doesn't work, a minute or so after pressing it an error pops up saying something like "Unable to open application".

And, as you suspected, the Live button misbehaves (I think it's currently putting the TV to sleep? 🀣).

Everything else works! (In both modes). So, on the whole pretty good going, thank you!

PRProd commented 5 months ago

Hooray! We're so close!

I added a comment to the [New App Shortcut]: Freeview Play issue to hopefully help us solve the Freeview Play launcher button thing.

For the rest, here is what I need you to do so we can work out the LIVE button:

  1. Click on Developer Tools
  2. Open the SERVICES tab
  3. Select Android Debug Bridge Learn sendevent from the Service dropdown
  4. Select your JVC TV entity
  5. Click on CALL SERVICE image
  6. You have 5 SECONDS to press the LIVE button on your physical remote. Press it once, and nothing else.
  7. When the listening event has concluded, you will see that the CALL SERVICE button has turned into a green box with a checkmark in it. Also, a new Notification has appeared. Click on Notifications image
  8. Copy the text that appears, and paste it into this thread. image

Given this example, my reply would look like this:

Output from service 'learn_sendevent' from media_player.fire_tv_192_168_107_88: 'sendevent /dev/input/event5 4 4 786665 && sendevent /dev/input/event5 1 115 1 && sendevent /dev/input/event5 0 0 0 && sendevent /dev/input/event5 4 4 786665 && sendevent /dev/input/event5 1 115 0 && sendevent /dev/input/event5 0 0 0'

And now, just for fun.... (and to cover our bases) can you repeat this process but press the Freeview Play button instead?

Hopefully that will be enough info. We shall see.

j-m commented 5 months ago

Awesome! Here's the event for Live:

Output from service 'learn_sendevent' from media_player.fire_tv_192_168_0_158: 'sendevent /dev/input/event4 4 4 786877 && sendevent /dev/input/event4 1 358 1 && sendevent /dev/input/event4 0 0 0 && sendevent /dev/input/event4 4 4 786877 && sendevent /dev/input/event4 1 358 0 && sendevent /dev/input/event4 0 0 0'

And for FPlay

Output from service 'learn_sendevent' from media_player.fire_tv_192_168_0_158: 'sendevent /dev/input/event4 1 747 1 && sendevent /dev/input/event4 0 0 0 && sendevent /dev/input/event4 1 747 0 && sendevent /dev/input/event4 0 0 0'

PRProd commented 5 months ago

Ready to test again?

Firemote beta version v.3.2.2b2 hopefully has a fix for the LIVE button, and maybe event the Freeview Play button. Give 'em a run, and let me know what you see.

Thanks for your help!

j-m commented 5 months ago

Woah you did that quickly!

No luck unfortunately. The "Live" button now shows a dialogue saying something like "To use Alexa, pair your TV remote", and the FPlay button does nothing at all. I suspect it's misbehaving because FPlay is a core app and can't be removed, so may be a bit different, and I could be wrong but I think the TV uses FPlay to fetch the guide, so it's a bit unique.

Don't stress it, I'm happy to call what you've already done a win!

PRProd commented 5 months ago

Hey! No! Don't let me off that easy! :smile:

I just published beta version v.3.2.2b3 which takes another crack at the LIVE button and the Freeview Play button. Please download, give the buttons a test, and let me know what happens.

Also, please note the following: If NOTHING happens when pressing both either of these buttons, please find your physical remote and press any button on that first, then try your Firemote again. It's this dumb little quirk of Amazon Fire devices (more info about that here and here)

j-m commented 5 months ago

🀣🀣 Well, you're determined I'll give you that!

And it pays off! The FPlay button is now working πŸŽ‰ Had to do the physical trick you mentioned but all good!

Unfortunately Live is still misbehaving, but this time it just does... nothing?

PRProd commented 5 months ago

Well... it helps when I don't do a dumb thing. LOL! Hopefully I have fixed the dumb thing, and beta 4 is the magic fix.

Another test, please? download beta version v.3.2.2b4

j-m commented 5 months ago

All working!!! πŸŽ‰πŸŽ‰πŸŽ‰πŸŽ‰πŸŽ‰

Thanks for all your help! :)

PRProd commented 5 months ago

HOORAY!!!!! That's awesome!

I'll push this out in the next release, which hopefully will be today (before 1am your time)

PRProd commented 5 months ago

Official Firemote version v3.2.2 has been published!

Thank you for all of your help and patience working with me on this one! I sincerely appreciate it!

j-m commented 5 months ago

Nonono you did all the hard work! Thank you for being awesome :))