diff --git a/app/build.gradle b/app/build.gradle index 993363e32ff..9d64e59d469 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,8 +20,8 @@ android { resValue "string", "app_name", "NewPipe" minSdk 21 targetSdk 33 - versionCode 995 - versionName "0.26.0" + versionCode 996 + versionName "0.26.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelTabFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelTabFragment.java index 76849d94d70..95ac42eed08 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelTabFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/channel/ChannelTabFragment.java @@ -17,6 +17,7 @@ import org.schabi.newpipe.extractor.channel.tabs.ChannelTabInfo; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler; +import org.schabi.newpipe.extractor.linkhandler.ListLinkHandlerFactory; import org.schabi.newpipe.extractor.linkhandler.ReadyChannelTabListLinkHandler; import org.schabi.newpipe.extractor.stream.StreamInfoItem; import org.schabi.newpipe.fragments.list.BaseListInfoFragment; @@ -128,10 +129,13 @@ public void handleResult(@NonNull final ChannelTabInfo result) { // once `handleResult` is called, the parsed data was already saved to cache, so // we can discard any raw data in ReadyChannelTabListLinkHandler and create a // link handler with identical properties, but without any raw data - tabHandler = result.getService() - .getChannelTabLHFactory() - .fromQuery(tabHandler.getId(), tabHandler.getContentFilters(), - tabHandler.getSortFilter()); + final ListLinkHandlerFactory channelTabLHFactory = result.getService() + .getChannelTabLHFactory(); + if (channelTabLHFactory != null) { + // some services do not not have a ChannelTabLHFactory + tabHandler = channelTabLHFactory.fromQuery(tabHandler.getId(), + tabHandler.getContentFilters(), tabHandler.getSortFilter()); + } } catch (final ParsingException e) { // silently ignore the error, as the app can continue to function normally Log.w(TAG, "Could not recreate channel tab handler", e); diff --git a/fastlane/metadata/android/en-US/changelogs/996.txt b/fastlane/metadata/android/en-US/changelogs/996.txt new file mode 100644 index 00000000000..8e5af53a480 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/996.txt @@ -0,0 +1,2 @@ +Fixed a NullPointerException when opening a channel / conference in media.ccc.de. +The Grinch tried to break our Christmas gift to you, but we fixed it.