TeamNewPipe / NewPipe

A libre lightweight streaming front-end for Android.
https://newpipe.net
GNU General Public License v3.0
31.56k stars 3.07k forks source link

Release 0.23.0 (please TEST!) #8230

Closed Stypox closed 2 years ago

Stypox commented 2 years ago

Testing for regressions

Debug APK (built by our CI in #8231): NewPipe_0.23.0_RC2.zip Release APK (signed with Stypox's keys): NewPipe_0.23.0_RC2.zip Please report only regressions (i.e. new issues) here, not issues that were already present in the previous release!

TODO

NewPipeExtractor version

This version of NewPipe will ship with NewPipeExtractor version 0.22.1

App changelog

### New - Add seamless transition between background and video players when putting the app in background (for video-only streams and audio-only streams only) #7349 #8139 - Change pitch by semitones #7565 - Implement appending queue to playlist in main player #8008 - New streams notifications #2335 - Load YouTube mixes in related items TeamNewPipe/NewPipeExtractor#788 -- note that this has already been broken by YouTube ### Improved - Remember adjustment step size for playback controls (speed and pitch) #7728 - Mitigating long buffering on initial video playback #7919 - Replace `R.string.yes` with `R.string.ok` #7976 - Improve player UI and navigability for Android TV #7963 - Add a confirmation button when deleting all files in downloader #5878 - ExoPlayer 2.17.1 update and MediaSource management rework #8020 #8150 ### Fixed - Fix player controls not hiding if resumed from media button #7341 - Migrate app update checker to AndroidX Work #7975 - Fix error notification on KitKat #7977 - Fix playback being reset to beginning when player type was changed #8020 - Fix download dialog selector layout #7516 - Fix crash when rotating device with playlist dialog open #8146 - Adapt opacity of popup close button to allow touches in other apps on Android >=12 #8279 ### Development - Replace `CircleImageView` with `ShapeableImageView` #7925 - Solve Java warning `Raw use of parameterized class` #7904 - Fix Room warning about unused columns during build #7905 - Fix build on Apple Silicon Macs #7782 - Refactor generating `InfoItemDialog`'s #7570 - Better equals check #7910 - Update Android Gradle Plugin and Gradle #7947 - Remove duplicate large-land player layout #7894 - Update ConstraintLayout and Room libraries #7954 - Update Kotlin to 1.6.10 #7952 - Update some AndroidX libraries #7978 - Remove icon duplicates and fix some theming issues #7518 #8081 - Deduplicate code for fetching stream info when sparse #7981 #8127 - Extract some view click listeners from player #8011 - Delete some unused code #8067 - Clean up the about package a bit #8065 - Create stub implementation for `OnSeekBarChangeListener` #8066 - Some lint cleaning #8068 - Update Checkstyle to 10.0 and fix various related issues #8073 - Update license to latest version #8076 #8077 - Update CONTRIBUTING.md with current checkstyle.xml path #8175 - Updated extractor to latest version of the dev-branch #8191 - Update GitHub action dependencies in workflows #8198 - Update AGP, Gradle, and Kotlin #8204 - Use simpler DrawerLayout method #8200 - Replace checklist drawable #8199

Stypox commented 2 years ago

@tsiflimagas reported this crash on IRC, it happens in the release build when tapping on Channels in the New stream notifications settings. Edit: fixed by #8236

Crash log

## Exception * __User Action:__ ui error * __Request:__ ACRA report * __Content Language:__ en-GB * __Service:__ none * __Version:__ 0.23.0 * __OS:__ Linux Android 10 - 29 ``` androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment org.schabi.newpipe.settings.notifications.NotificationModeConfigFragment: make sure class name exists at androidx.fragment.app.FragmentFactory.loadFragmentClass(FragmentFactory.java:97) at androidx.fragment.app.Fragment.instantiate(Fragment.java:611) at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:57) at androidx.fragment.app.FragmentManager$3.instantiate(FragmentManager.java:483) at org.schabi.newpipe.settings.SettingsActivity.instantiateFragment(SettingsActivity.java:181) at org.schabi.newpipe.settings.SettingsActivity.onPreferenceStartFragment(SettingsActivity.java:174) at androidx.preference.PreferenceFragmentCompat.onPreferenceTreeClick(PreferenceFragmentCompat.java:422) at androidx.preference.Preference.performClick(Preference.java:1208) at androidx.preference.Preference.performClick(Preference.java:1182) at androidx.preference.Preference$1.onClick(Preference.java:182) at android.view.View.performClick(View.java:7259) at android.view.View.performClickInternal(View.java:7236) at android.view.View.access$3600(View.java:801) at android.view.View$PerformClick.run(View.java:27892) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940) Caused by: java.lang.ClassNotFoundException: org.schabi.newpipe.settings.notifications.NotificationModeConfigFragment at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:454) at androidx.fragment.app.FragmentFactory.loadClass(FragmentFactory.java:53) at androidx.fragment.app.FragmentFactory.loadFragmentClass(FragmentFactory.java:94) ... 20 more Caused by: java.lang.ClassNotFoundException: org.schabi.newpipe.settings.notifications.NotificationModeConfigFragment ... 24 more ```

litetex commented 2 years ago

Possibly see if https://github.com/TeamNewPipe/NewPipe/issues/7630 can be solved in this release

I think we have some kind of buffering problem which now affects all streams (until 0.23.0 it only affected YT 60fps streams). I created a new issue for that: https://github.com/TeamNewPipe/NewPipe/issues/8238

VaclavTrpisovsky commented 2 years ago

I cannot import settings exported from 0.22.2 (this crashes 0.23.0 RC1 without a "Guru Meditation" screen appearing). Is this intended behavior to prevent some kind of "interference" between the official releases and Beta versions? (Sorry if this does not fit here. However, I do not believe this to be a regression as 0.22.2→0.22.2 import works. Feel free to ask for more information.)

Invalid, see below

Stypox commented 2 years ago

@VaclavTrpisovsky no, your comment is relevant. Could you share the crash report?

VaclavTrpisovsky commented 2 years ago

I am so sorry :( I accidentally chose the downloaded zipped APK instead of the exported settings, it's my fault. The behavior is the same in 0.22.2 (toast message Warning: Could not import all files and a split-second later restart when wrong ZIP is selected). I would welcome no restart and/or a more understandable message - but that does not belong in this thread as this is not a regression.

TLDR: My installation suffers from Stupid User Syndrome

karyogamy commented 2 years ago

Found another issue in #8150: After selecting No Caption before closing a player instance, open a new next player instance, and its track selector will automatically select a caption, even if caption is disabled as mentioned.

SameenAhnaf commented 2 years ago
  1. When system dark mode is enabled, a lot of components lack contrast. This isn't the case when theme is changed from app settings.
Screen recording https://user-images.githubusercontent.com/79245641/163850550-a9c45c56-37cb-4be2-9bcd-f06abee019f7.mp4

First bug is removed as it was reproducible in previous app versions

peat80 commented 2 years ago

If one goes to settings > notifications and then click on channels the app always crashes.

Exception

androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment org.schabi.newpipe.settings.notifications.NotificationModeConfigFragment: make sure class name exists
    at androidx.fragment.app.FragmentFactory.loadFragmentClass(FragmentFactory.java:97)
    at androidx.fragment.app.Fragment.instantiate(Fragment.java:611)
    at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:57)
    at androidx.fragment.app.FragmentManager$3.instantiate(FragmentManager.java:483)
    at org.schabi.newpipe.settings.SettingsActivity.instantiateFragment(SettingsActivity.java:181)
    at org.schabi.newpipe.settings.SettingsActivity.onPreferenceStartFragment(SettingsActivity.java:174)
    at androidx.preference.PreferenceFragmentCompat.onPreferenceTreeClick(PreferenceFragmentCompat.java:422)
    at androidx.preference.Preference.performClick(Preference.java:1208)
    at androidx.preference.Preference.performClick(Preference.java:1182)
    at androidx.preference.Preference$1.onClick(Preference.java:182)
    at android.view.View.performClick(View.java:7192)
    at android.view.View.performClickInternal(View.java:7166)
    at android.view.View.access$3500(View.java:824)
    at android.view.View$PerformClick.run(View.java:27592)
    at android.os.Handler.handleCallback(Handler.java:888)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:213)
    at android.app.ActivityThread.main(ActivityThread.java:8178)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
Caused by: java.lang.ClassNotFoundException: org.schabi.newpipe.settings.notifications.NotificationModeConfigFragment
    at java.lang.Class.classForName(Native Method)
    at java.lang.Class.forName(Class.java:454)
    at androidx.fragment.app.FragmentFactory.loadClass(FragmentFactory.java:53)
    at androidx.fragment.app.FragmentFactory.loadFragmentClass(FragmentFactory.java:94)
    ... 20 more
Caused by: java.lang.ClassNotFoundException: org.schabi.newpipe.settings.notifications.NotificationModeConfigFragment
    ... 24 more


AudricV commented 2 years ago

@peat80 Already fixed with #8236!

gardockt commented 2 years ago

After a new upload I received a notification not only about this video, but also about 2 other videos on different channels, both uploaded months ago - one of which was not even a last upload on the channel. That happened on RC2, on a first automatic refresh.

Stypox commented 2 years ago

When system dark mode is enabled, a lot of components lack contrast. This isn't the case when theme is changed from app settings.

@SameenAhnaf sorry, I don't understand what you mean. Can you take a screenshot and make a circle around what you think is not colored correctly? Or could you tell me which icons are wrong? I don't see a problem in your video

After a new upload I received a notification not only about this video, but also about 2 other videos on different channels, both uploaded months ago - one of which was not even a last upload on the channel. That happened on RC2, on a first automatic refresh.

@gardockt This can happen on the first refresh, since the database might miss some videos the first time. Please let us know if this keeps happening even after the first refresh, as that would really be a problem.

smailyliams commented 2 years ago

I found some videos where the seamless player switch does not work. An example: https://www.youtube.com/watch?v=nCvnPOs7gkY&t=256

another issue that i found only on this video: in newpipe 22.2 external equaliser work fine whit this video however in the testversion not.

for video where the seamless player transition works the equalisers are also working

tested with : viper4android audiofx(linage os equaliser) system: linage os(android11) with microg and magisk

AudricV commented 2 years ago

This video has streams which are not currently supported by the app and in the extractor (OTF streams), so it depends of the quality played (values used in the explanation are based on the video you linked): if you are playing 3GPP 144p, it's intended (video stream with audio); if it also happens on MPEG-4 360p, then it means the video stream with audio (itag 18) is preferred to the video stream with separated audio (itag 134 + itag 139/140/251) (which seems to be a bug, but should be fixed, with like a workaround, when support of OTF streams will be added (which should happen soon) (sorting of video streams needs to be reworked at all as it is not really good right now)).

Stypox commented 2 years ago

I would like to release tomorrow, almost everything should be ready.

Possibly including @TiA4f8R's extractor improvement to solve potential future throttling issues

@TiA4f8R could you open a PR or delegate that to me? If I understood correctly it is just a simple change (replacing a HashMap with a List), so I can do that myself in a few minutes (unless I'm not understanding something correctly)

DEFINITELY

The only reason I said "maybe" was because the fastlane changelog does not include that change, but we would like users to know about such an important change. Maybe we should include it in the next release changelog, so that at least people can know by looking at the changelog?

When system dark mode is enabled, a lot of components lack contrast. This isn't the case when theme is changed from app settings.

This is still not fixed, but I still don't understand what needs to be solved. I don't see anything badly-themed, except maybe the brightness/volume, but I am not sure. @SameenAhnaf

SameenAhnaf commented 2 years ago

@Stypox Extremely sorry for the late reply. Following components lack contrast.

  1. Brightness and Volume sliders
  2. Subscribe icon
  3. Feed update bar
Stable Version Version 0.23.0_RC2
Before.mp4 After.mp4
Stypox commented 2 years ago

@SameenAhnaf ok, thank you, I could see the differences by pausing the videos at the same time. What is happening is really strange, since I cannot reproduce on an emulator. Maybe there is a bug in your ROM or something like that, since NewPipe's code does the same thing (i.e. calling setTheme(BlackTheme)) both when the theme selection is done automatically or not. So I would not focus on this really small bug and release even in its presence. But thank you @SameenAhnaf for noticing, please open an issue and we can ask @mauriciocolli to look into this (he is the author of #7518) :-)

opusforlife2 commented 2 years ago

Maybe we should include it in the next release changelog, so that at least people can know by looking at the changelog?

@Stypox Can the current changelog not be edited?

Stypox commented 2 years ago

@opusforlife2 the English one, yes, the translated ones no, since we don't know all languages. I would just include that change in the next changelog.

moriel5 commented 2 years ago

I'll test streaming in a bit, however on version 0.23 downloads are still throttled for me in the same manner as on 0.22.2, regardless of which stream is being requested.

Stypox commented 2 years ago

There has been no changes about throttling between 0.22.2 and 0.23.0

moriel5 commented 2 years ago

@Stypox Ah, sorry for misunderstanding then, it simply sounded as though a solution was found on the blog post.