mvysny / photocloud-frame-slideshow

Android Digital Photo Frame
https://www.android-photo-frame.eu
14 stars 1 forks source link

Feature Request - remote control support for previous/next images #138

Open TheOriginalMrWolf opened 3 years ago

TheOriginalMrWolf commented 3 years ago

Just bought your app + daydream option for my Android TV. Good app, working well so far, thanks!

I have a simple feature request - can you please consider implementing support for Android TV remote control forward/backward buttons to select previous/next images (ideally able to scroll forward/backward through multiple images).

Thanks!

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/93854435-feature-request-remote-control-support-for-previous-next-images?utm_campaign=plugin&utm_content=tracker%2F53303527&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F53303527&utm_medium=issues&utm_source=github).
mvysny commented 3 years ago

If I remember correctly, after you press the D-PAD center button the slideshow should pause; you can then use D-PAD left and right to see the history. Could you please test this out?

TheOriginalMrWolf commented 3 years ago

Hi,

Thanks for the quick reply!!

That sort of works, but several issues:

Ideally it would simply respond to simple left & right button presses. Right selects next picture (forces load of new picture if at 'latest'), left goes back in time (hopefully for more than 5 or 6 pictures, but not that critical), and not pressing anything for more than normal timeout just automatically resumes normal slideshow operation.

Is that feasible?

mvysny commented 3 years ago

can only go back maybe 5 or 6 files

Yes that's the current limitation. The app was intended to be used as a photo stand, showing a stream of photos. Going back would require me to be able to fetch, cache and show images in the backward fashion, something this app was never intended to do. Also almost all streams only support forward iteration - you can't go back. Therefore the best I could do is to cache 5 previous images in memory.

can't go forward (ie only scrolls back/forward within the last x loaded pictures)

Yes: #12

exit ('back') out of that cancels the screensaver; not intuitive to use; hitting center button calls up a menu which is difficult to use (ie: not grandmother friendly...)

True. TV UX has been bolted on top of the current UI a bit hastily. Let us discuss what would be the best approach.

not pressing anything for more than normal timeout just automatically resumes normal slideshow operation.

I don't think that's a good UX - say that you wish to pause the slideshow in order to open the door for someone. You would probably be pretty mad if the slideshow auto-resumed itself.

Instead I'd replicate other apps' behavior. For example, start playing a video:

  1. the Yle app (a Finnish TV app) shows controls on D-PAD DOWN and quits video play on BACK; pressing BACK in controls resumes video.
  2. VLC: the same thing
  3. Netflix: the same thing

This looks like a good approach.

TheOriginalMrWolf commented 3 years ago

Yes that's the current limitation... Therefore the best I could do is to cache 5 previous images in memory.

Understood, current behaviour is good enough, thank you :)

Yes: #12

Cool, can't wait for that to be implemented 👍

I don't think that's a good UX - say that you wish to pause the slideshow in order to open the door for someone. You would probably be pretty mad if the slideshow auto-resumed itself.

Instead I'd replicate other apps' behavior. For example, start playing a video:

  1. the Yle app (a Finnish TV app) shows controls on D-PAD DOWN and quits video play on BACK; pressing BACK in controls resumes video.
  2. VLC: the same thing
  3. Netflix: the same thing

This looks like a good approach.

Understood. I have trialled my simplified approach (click forward/back to scroll, do nothing & slideshow resumes after timeout) vs your suggested approach with the 'target audience' using a test javascript app I wrote. Sad to say - my approach was preferred! :)

How about a more wholistic/compromise/best-of-both-worlds approach - add ability to click play/pause for that functionality (maybe fade in/out play/pause icon on click), along with my suggested back/forward & auto-resume behaviour? Grandma really liked that!! :) :)

mvysny commented 3 years ago

Understood. I have trialled my simplified approach (click forward/back to scroll, do nothing & slideshow resumes after timeout) vs your suggested approach with the 'target audience' using a test javascript app I wrote. Sad to say - my approach was preferred! :)

I think for example YouTube does that - after a timeout the video is resumed. The disadvantage is as follows: say that you manage to press the back button right before the video is resumed and the menu is hidden (or the TV registers the BACK button press with a delay). What happens is that, instead of just closing the menu, the whole video player is closed. Personally I really dislike this since I'm really hesitant to press the BACK button while in the menu, since what if the video playback is cancelled and I would have to laborously find the video and start the playback again.

Also, I'll avoid implementing multiple ways of control of the same app. None of VLC/Netfix/YouTube allows that, and for a good reason. The reason is that if multiple people use the same device, it's confusing for them since the app controls in a different way they're used to.

luislobo commented 3 years ago

My two cents here: I think that if you are in "slideshow" mode, if you press forward or backward, it only moves to the previous/next image, but the "timer per image" starts as soon as you switch to that previos/next image. So, basically, if I'm on photo 100, with a delay of 5 seconds, it will automatically move to 101. If I immediately move to 102, it should go to 103 after 5 seconds. If I'm on 103, and press back, it should go to 102, and automatically go to 103 after 5 seconds.