abrenoch / hyperion-android-grabber

Screen grabber for hyperion
MIT License
193 stars 31 forks source link

Suggestions (white LEDs for DRM protected apps, start after sunset) #148

Open FaserF opened 4 years ago

FaserF commented 4 years ago

I am now using the Hyperion Grabber for Android TV since some months and it works great. But by using it now for months there were two small things that I really would appreciate to see coming to the app:

White LEDs for DRM protected apps: As we all know the Hyperion Grabber doesn't work for DRM protected apps like Netflix, Amazon. Currently when an app like this is running the LEDs turn black. Would it be possible to automatically turn the LEDs white (or a own choosed color) when DRM Protection is running?

Sunset mode: Sometimes when I am at home and use the TV at the day where the sun is really bright running the LEDs is kinda useless for me. Is it possible to implement a feature to only turn on the LEDs after sunset or for example 15 minutes before sunset?

Thank you so much for your great work!

abrenoch commented 4 years ago

Hey @FaserF thanks for the feedback!

Regarding the DRM: If we can pin down a way to either detect DRM content, or detect the current foreground app, then this would be possible. I don't think there is anything to detect DRM content (vs just black content on the screen), and every path we looked at for detecting the foreground app had its own issues (and may actually be forbidden by google, thus no play store entry).

The sunset mode, however, is an interesting idea. Maybe something where you can plug-in your location, and it looks up the sunset time. We could maybe do that with GPS as well, but I'm a little hesitant to add an additional permission for GPS. Cool idea, I may look into this when I have some free time!

FaserF commented 4 years ago

Hi @abrenoch , thanks for the info. I am working in the IT but unfortunately my knowledge with programming Android apps is limited. And sorry, didnt wanted to close it.

For the DRM idea: Your app should constantly checking the colors from the screen recording and when an DRM protected scene is running it should detect everywhere black as color, is that true? If yes, couldn't you check for example if the whole screen is black for more than f.e. 30 seconds then turn all LEDs on in white. And when it detects a color again it switches to its original state with displaying all colors? Another way would be to check for a special app running in the foreground, somehow this has to be possible as I am using Tasker on my phone with Tasks where Tasker also detects if I am currently using a special app or not. I have quickly searched Google for it and did only find shell commands which needs root access, but I am using Tasker without root. If that would work you could just check If the user has just launched Netflix, Amazon or the official YouTube application and then switch the LEDs to white.

And if you don't want to implement it, I would to try create a Tasker profile for it to do that. Could you tell me the shell commands to start or stop the Hyperion Grabber? I have only found a Toggle command in the Hyperion forum:

shell am start com.abrenoch.hyperiongrabber/com.abrenoch.hyperiongrabber.common.ToggleActivity

Thank you already so much for your efforts.

Paulchen-Panther commented 4 years ago

@abrenoch Hi. Is this function helpful? https://developer.android.com/reference/android/view/Display.html#getFlags() https://stackoverflow.com/a/18730801

abrenoch commented 4 years ago

Nice find @Paulchen-Panther !

I wasn't aware the flags were there - sounds like this may be possible to implement in that case!

@FaserF I am just about certain there should be a shell command to turn the grabber on or off rather than toggling, but I can't think of what it may be at this exact moment... Coming up on almost a year since my last commit so I need to refresh myself 😄

ninovanhooff commented 4 years ago

I really like the sunset idea! Don't use GPS (fine location) but rather Coarse location permission. It is based on cell towers , visible wifi hotspots and such.

Note that a non android service based on ip addresses also works very well for me (not sure if this is a playstore violation)

Both on wifi and 4g this is 20km accurate for me: https://iplocation.com/