jellyfin / jellyfin-webos

WebOS Client for Jellyfin
https://jellyfin.org
Mozilla Public License 2.0
638 stars 65 forks source link

Search Interface Has Double Keys [webOS all] #48

Closed anthonylavado closed 3 years ago

anthonylavado commented 3 years ago

Issue During certification testing, testers clicked on the search icon, and were presented with two sets of alphabet buttons under the search box.

Notes from Testing

Problem: When selecting the Search UI Button, the keypad is duplicated.

Opinion:-

Expected: When selecting the Search UI Button, the keypad should not be duplicated.

Next Steps It is possible that this happens on all versions of webOS, including 3.0 and 3.5. LG indicated that they did not test on these versions due to #43.

In the notes provided, there was as video showing the tester using a magic remote in pointer mode for navigation.

For internal (Jellyfin) testing:

For community help:

If you have a webOS device, please let us know if you are able to test the issue listed above. If you need a compiled IPK to install, please let me know.

You can use the public demo server, https://demo.jellyfin.org/stable. The username is demo, with no password. If you need a compiled IPK to install, please let me know. Note that the public server is reset on the hour, every hour. It is recommended to avoid testing at that moment, as it will likely result in a connection error. This does not apply to our internal testing server.

Possible Fixes This may be tied to the TV interface from the jellyfin/jellyfin-web UI, and may require an updated release with a fix in order to correct it. More investigation is required to determine if this is the case.

morten-b commented 3 years ago

I would like to test on WebOS 5. Can you provide the IPK and a guide on how to install this?

dovecode commented 3 years ago

I am also able to help if you can provide an IPK. I am on WebOS 06.00.05.

Edit: I figured out how to compile a new IPK from master, enable dev mode and install it, even though LG's documentation fought me every step on the way. However, I get an error (Unknown error occurred. Are you connecting to a Jellyfin server?) when I try to connect to the public server. I can connect from a browser without issues.

dovecode commented 3 years ago

I still cannot connect to the demo server. I wonder if it is the same that LG reported for WebOS 3.0 and 3.5 (according to my About This TV screen, I'm on 6.0.5).

I managed to connect to my home server (running Jellyfin 10.5.5) and my search screen looks like this (apologies for the distortion -- let me know if there's a way to screenshot off the TV itself): image

I suspect they are referring to the standard Jellyfin "keyboard" under the search bar duplicating the LG WebOS built-in software keyboard (on the bottom of the screen)

chrisaut commented 3 years ago

With an IPK I can help test too, otherwise I can try to figure out how to build myself but I'm not sure when I can get to that. Apparently I'm on 5.2.1, although under Software update it says 03.21.18, maybe that's firmware.

anthonylavado commented 3 years ago

However, I get an error (Unknown error occurred. Are you connecting to a Jellyfin server?) when I try to connect to the public server. I can connect from a browser without issues.

Right, I forgot there's a change I need to make to the reverse proxy config. Thanks for the heads up @dovecode. For reference, I made the change to the internal testing server, but not the public one. I'll update soon.

anthonylavado commented 3 years ago

I suspect they are referring to the standard Jellyfin "keyboard" under the search bar duplicating the LG WebOS built-in software keyboard (on the bottom of the screen)

I'll double check for this. They provided a video, but of course I can't make that public.

dovecode commented 3 years ago

Right, I forgot there's a change I need to make to the reverse proxy config. Thanks for the heads up @dovecode. For reference, I made the change to the internal testing server, but not the public one. I'll update soon.

Let me know once you've done so and I can test against your server as well.

dovecode commented 3 years ago

With an IPK I can help test too, otherwise I can try to figure out how to build myself but I'm not sure when I can get to that. Apparently I'm on 5.2.1, although under Software update it says 03.21.18, maybe that's firmware.

@chrisaut, it isn't too complicated once you've tried it. The instructions on the LG site are a bit terse, though, and there are a lot of steps involved. At a high level, what you need to do is:

  1. Install the SDK (CLI is enough if you can type): https://webostv.developer.lge.com/sdk/installation/
  2. Create an LG Developer account: https://webostv.developer.lge.com/develop/app-test/#preparingAccount Note: You'll need to enter these credentials on your TV so if you haven't connected a keyboard, choose your password wisely!
  3. Install, launch, log in, and turn on Developer Mode with the Developer Mode app on your TV (use the LG Developer account here)
  4. Configure the TV as a target device in your SDK using the ares-setup-device SDK CLI command This is by far the most confusing step. The instructions are unclear about what parameters are fixed and which aren't. It seems that you must use prisoner for the user name and 9922 as the port number. Also, the device name will be used on the command line, so chose something short without spaces, e.g. lgtv.
  5. Start the Key Server on your TV (click the button next to Key Server in the Developer Mode app)
  6. Grab the key file from the TV using the ares-novacom SDK CLI command (ares-novacom --device lgtv --getkey, if you called your TV lgtv when you set up the device). Note: the command will prompt you for a passphrase. This is the six character string on your Developer Mode app screen (case sensitive). What this does is it pulls an SSH key from the TV and stores it locally for the install step later on.
  7. Clone this repo
  8. Build the IPK using the ares-package SDK CLI command Note: Just pass in the full path to the org.jellyfin.webos directory of the cloned repo. The PKI will be dumped into the current working directory, e.g. path-to-CLI/bin/ares-package path-to-repo/org.jellyfin.webos
  9. Install the IPK using the ares-install SDK CLI command

I recommend connecting a USB keyboard to the TV if you haven't already. Makes entry of URLs and passwords a lot simpler!

anthonylavado commented 3 years ago

I suspect they are referring to the standard Jellyfin "keyboard" under the search bar duplicating the LG WebOS built-in software keyboard (on the bottom of the screen)

Upon a fresh review of the LG provided test result video, I can confirm this is the case. They are wondering why the system keyboard shows up alongside a built in keyboard. It's a lower priority error according to the spreadsheet, but it's one we'll want to resolve anyway.

anthonylavado commented 3 years ago

Current Workaround: Using the Custom CSS function, I will explicitly hide the alphapicker element on the search page.

#searchPage .alphaPicker {
display: none !important;
}

Proposed Fix: To open an issue on the Jellyfin-Web repository and add a specific setting to hide this when the client is an LG TV. We can't completely hide it in the TV layout, as it can be useful to others.

EraYaN commented 3 years ago

I'm assuming that Samsung will also show a keyboard by default, so we might need someone with a device to test that as well. It's probably mostly useful for desktop browsers running in TV mode.

dovecode commented 3 years ago

@EraYaN Tbh, I would consider it useful even if a keyboard pops up, but since the LG folks flagged it as a problem, I guess we have to remove it.

AlexKalopsia commented 3 years ago

I am wondering if it would be helpful to have a "keyboard" icon that would then reveal the JF keyboard if pressed. Just worried that we will fail some other cert stuff if for some reason the user is unable to type.

Hopefully just hiding the keyboard will be enough.

dovecode commented 3 years ago

To get this past certification, I suggest we keep the Jellyfin keys hidden and then formulate a longer-term strategy. It could be either "click a letter or click here to enter a name" or provide an entry-field with a "click here to reveal letters"...