polymorphicshade / NewPipe

A fork of NewPipe with SponsorBlock functionality.
GNU General Public License v3.0
3.22k stars 106 forks source link

saf and full screen on android tv #288

Closed ghost closed 1 year ago

ghost commented 1 year ago
Checklist - [X] I am able to reproduce the bug with the [latest version](https://github.com/polymorphicshade/NewPipe/releases/latest). - [X] I am *not* able to reproduce the bug with the *same version* of [upstream NewPipe](https://github.com/TeamNewPipe/NewPipe/releases/). - [X] I made sure that there are *no existing issues* - [open](https://github.com/polymorphicshade/NewPipe/issues) or [closed](https://github.com/polymorphicshade/NewPipe/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to. - [X] I have read the [FAQ](https://newpipe.net/FAQ/) and my problem isn't listed. - [X] I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise. - [X] This issue contains only one bug. - [X] I have read and understood the [contribution guidelines](https://github.com/polymorphicshade/NewPipe/blob/dev/.github/CONTRIBUTING.md). ### Affected version newest

Steps to reproduce the bug

there are two issues with Android TV that were introduced when switching from 0.23.3 to 0.24 and haven't fixed, although there is quite a lot of information added lately,

first is forcing saf - which breaks on androidtv
https://github.com/TeamNewPipe/NewPipe/issues/8359
https://github.com/TeamNewPipe/NewPipe/issues/8435
https://commonsware.com/blog/2019/12/08/more-missing-saf.html

second is for some-reason breaking of full-screen button on the UI,
due to some exoplayer (apparently related to media tunneling) exception.
https://github.com/TeamNewPipe/NewPipe/pull/8875
it was discussed to add a new settings for the exoplayer that would allow disabling that part that causes the bug.

trying to avoid "one-fix fork",
I was wondering if you are willing to add an alternative/fix/etc.. to your build.


edit:

closing this, since I've find a workaround for both issues.

without digging through the code too much,
the debug build has already (for some time now)

https://github.com/TeamNewPipe/NewPipe/blob/2623f0e36088cb0900ab9a81f05f14e151f89d56/app/src/main/res/xml/debug_settings.xml#L39

<SwitchPreferenceCompat android:title="@string/disable_media_tunneling_title"  
  android:key="@string/disable_media_tunneling_key"  
  android:summary="@string/disable_media_tunneling_summary"  
  android:defaultValue="false" app:iconSpaceReserved="false"  
  app:singleLineTitle="false" />

and https://github.com/TeamNewPipe/NewPipe/blob/43b21769567a6c2a37b75ed63e1d9115779c409a/app/src/main/res/values/settings_keys.xml#L202

which is implemented in https://github.com/TeamNewPipe/NewPipe/blob/0c6395042988d30ae636318ea121367c691e1e4b/app/src/main/java/org/schabi/newpipe/player/Player.java#L526

I was only able to use that on a debug build from the original repo.

as for the saf issue,
switching to target-SDK 29 along with android:requestLegacyExternalStorage="true" android:preserveLegacyExternalStorage="true" android:requestRawExternalStorageAccess="true" and storage read write permissions in AndroidManifest.xml and commenting out this dump part:
https://github.com/TeamNewPipe/NewPipe/blob/b21d231e3aeb4eabdea64177ad56f9047a8482d8/app/src/main/java/org/schabi/newpipe/streams/io/NoFileManagerSafeGuard.java#L32-L35
fixed it.

I was later able to apply the same "fix" quick and dirty through apktool,
on a debug build of the original repo.

killerrook commented 1 year ago

If you are capable feel free to submit a pr here or in original Newpipe repository. As far as the rules for creating a issue to be considered is only those issues are considered which are explicitly rejected in upstream Newpipe repository. Careful not to break functionality of this app on Android smartphones just to tailor it for TV sets.