-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BaseDescriptionFragment: Assert member is initialized #10781
BaseDescriptionFragment: Assert member is initialized #10781
Conversation
`streamInfo` and `channelInfo` have to be initialized, since the only way to construct the class it to pass them. So we can remove the null check boilerplate and make some of the accessors `NonNull`.
Quality Gate passedKudos, no new issues were introduced! 0 New issues |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
Quality Gate passedIssues Measures |
public ChannelAboutFragment() { | ||
super(); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, the empty constructors are needed when resuming a fragment from memory:
Caused by: java.lang.NoSuchMethodException: org.schabi.newpipe.fragments.list.channel.ChannelAboutFragment.<init> []
The problem probably lies in IcePick which is 9 (!) years old (actually, not in IcePick itself, but in the way it suggests to save fragment state)
Fixed in 5e7ad6f
* Migrate database * Update database migrations and getter/setter * Implement algorithm to merge playlists * Save changes to the database and bugfix * UI design and behavior * Debounced saver & bugfix & clean code * Use new item holder * Fix sonar warning and typo * Fix sonar warning * Reuse DebounceSaver * Add tests * Create sub-package and default interval for DebounceSaver & sort playlists in db * Update test and Javadoc * Add abstract methods in PlaylistLocalItem & rename setIsModified * Update playlists in parallel * Update index modification logic & redo sorting in the merge algorithm * Delete saveImmediate warnings & add comments * Trim search string and remove duplicate records from the database Co-authored-by: Yingwei Zheng <dtcxzyw@qq.com> * Fix database migration and string trimming Co-authored-by: Yingwei Zheng <dtcxzyw@qq.com> * Refactor database migration test and string trimming * Fix a typo * Apply review * Remove unnecessary debug warning and use JDoc instead * Added reset button but not working as intended. * Added reset button but slightly working as intended. * Added reset button but working as intended for theme. * Cleaned up xml files. * Added alert dialogue and restarts the app when resetting settings. * Changed alert dialogue. * clear shared preference xmls * Added delete xml method inside the yes dialogue. * Revert changes made to dev. * Revert changes made to dev. * Revert changes made to dev. * Revert committed file change of settings key. * Added strings to strings.xml to allow translation. * Update app/src/main/res/xml/debug_settings.xml Ensuring title to be fully displayed on small devices. Co-authored-by: Tobi <TobiGr@users.noreply.github.com> * Create new settings category: Backup and restore Following settings have been move to the new category: - import database (from ContenttSettings) - export database (from ContenttSettings) - reset settings (from DebugSettings) * Remove strange change * Add summary to reset preference * Remove mini variant and move upload date to top in comments * Use start/end instead of left/right in comment layout * Add replies button to comments * Move RelatedItemInfo next to fragment using it * Keep source list info in InfoItemBuilder Also remove some unused code * Load more items even if initial related items are empty * Implement CommentRepliesFragment * Save and restore state in CommentRepliesFragment * Fix some code smells * Always show comment replies in list mode * Set comment replies fragment title * Extract some utility methods from CommentInfoItemHolder * Add comment replies fragment header * Add some documentation and javadocs Also further simplify CommentRepliesInfo and RelatedItemsInfo * Revert relying on source ListInfo, use commentsInfoItem.getUrl() instead This reverts commit bb01da3691ff1d5c3dccd41b7ca1a5deb1b5676f. This commit was not needed * Expand DetailFragment again when exiting the CommentRepliesFragment * scroll last comment into view * Fix scrolling to correct comment after closing replies * Add @NonNull annotations * Update some AndroidX libraries * Fix AndroidX Work deprecation * Bump compileSdk to 34 * Utilize BundleCompat and IntentCompat methods * Store/retrieve parcelable arrays as lists instead. * Update miscellaneous libraries * Use 'tasks.register' for Gradle tasks * Change Converters to class to fix build * Exclude RxJava file from META-INF * Update Studio and desugaring versions * Update more libraries * Update AGP and Gradle * Add playlist description to PlaylistFragment * Ellipsize playlist description if it is longer than 5 lines The description can be expanded / collapsed via a "show more" / "show less" button. * Improve TextEllipsizer class * Fix FeedDAOTest * Fix settings_notification.xml indentation * Customize only 2 notification actions on Android 13+ * Extract NotificationSlot from NotificationActionsPreference * Allow each notification slot to contain any possible action * Extract NotificationActionData from NotificationUtil * Implement notification actions via MediaSessionConnector on Android 13+ * Do not update notification actions if nothing changed This should avoid costly updates of the media session. * Allow play/pausing from notification when buffering This change is in line with a recent change in how the play/pause button behaves in the player ui: if the buffering indicator is shown, it's still possible to toggle play/pause, to allow e.g. pausing videos before they even start. This change was needed because on Android 13+ notification actions can't be null, and thus the buffering hourglass action wasn't shown. * Android 33 -> Android 13 Co-authored-by: Tobi <TobiGr@users.noreply.github.com> * Base cache key on info type instead of item type It didn't really made sense to consider two cache keys as equal based on the type of items contained within that list. * Update NewPipeExtractor to include MediaCCC channel fix * use GitHub markdown to emphasise warning in Readme * Don't write defaultFormat setting, use default value Nowhere else does this (write a setting if it’s not set). It took me a while to see that this code does not do what it intends, because `defaultFormat` is already the default value in the first `context.getString`, so calling `getMediaFormatFromKey` again is the exact same call (“do you know the definition of insanity…”) and will return `null` again … So let’s drop the setting write and just rely on the default values. * Bump GH actions Old ones are deprecated. * BaseDescriptionFragment: Assert member is initialized `streamInfo` and `channelInfo` have to be initialized, since the only way to construct the class it to pass them. So we can remove the null check boilerplate and make some of the accessors `NonNull`. * Update Matrix room URL to new link * Update Jsoup to 1.17.2 * Update TextLinkifier.java minor fix * Translated using Weblate (Danish) Currently translated at 96.4% (703 of 729 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Danish) Currently translated at 96.4% (703 of 729 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Danish) Currently translated at 88.3% (644 of 729 strings) Translated using Weblate (Danish) Currently translated at 88.3% (644 of 729 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Russian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Georgian) Currently translated at 92.2% (71 of 77 strings) Translated using Weblate (Uzbek (latin)) Currently translated at 62.6% (457 of 729 strings) Translated using Weblate (Santali) Currently translated at 12.6% (92 of 729 strings) Translated using Weblate (French) Currently translated at 89.6% (69 of 77 strings) Translated using Weblate (Japanese) Currently translated at 11.6% (9 of 77 strings) Translated using Weblate (Bulgarian) Currently translated at 5.1% (4 of 77 strings) Translated using Weblate (Bengali) Currently translated at 20.7% (16 of 77 strings) Translated using Weblate (German) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Bengali (India)) Currently translated at 40.7% (297 of 729 strings) Translated using Weblate (Kurdish (Central)) Currently translated at 85.5% (624 of 729 strings) Translated using Weblate (Tamil) Currently translated at 46.6% (340 of 729 strings) Translated using Weblate (Bengali (Bangladesh)) Currently translated at 55.1% (402 of 729 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Greek) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (German) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Portuguese (Portugal)) Currently translated at 98.7% (76 of 77 strings) Translated using Weblate (Hebrew) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Hebrew) Currently translated at 99.4% (725 of 729 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Croatian) Currently translated at 99.4% (725 of 729 strings) Translated using Weblate (ryu (generated) (ryu)) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Croatian) Currently translated at 2.5% (2 of 77 strings) Translated using Weblate (Malay) Currently translated at 48.6% (355 of 729 strings) Translated using Weblate (Croatian) Currently translated at 99.3% (724 of 729 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Finnish) Currently translated at 98.3% (717 of 729 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 22.0% (17 of 77 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 95.4% (696 of 729 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Vietnamese) Currently translated at 42.8% (33 of 77 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Esperanto) Currently translated at 70.7% (516 of 729 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Azerbaijani) Currently translated at 94.6% (690 of 729 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (French) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Santali) Currently translated at 10.0% (73 of 729 strings) Translated using Weblate (Turkish) Currently translated at 42.8% (33 of 77 strings) Translated using Weblate (German) Currently translated at 81.8% (63 of 77 strings) Translated using Weblate (Portuguese (Portugal)) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Kannada) Currently translated at 5.4% (40 of 729 strings) Translated using Weblate (Russian) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Croatian) Currently translated at 88.7% (647 of 729 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Odia) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Slovak) Currently translated at 20.7% (16 of 77 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (French) Currently translated at 99.8% (728 of 729 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Catalan) Currently translated at 86.5% (631 of 729 strings) Translated using Weblate (Telugu) Currently translated at 58.9% (430 of 729 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Greek) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Tigrinya) Currently translated at 8.9% (65 of 729 strings) Translated using Weblate (Russian) Currently translated at 98.7% (76 of 77 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Slovak) Currently translated at 99.7% (727 of 729 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Italian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Russian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Odia) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Kurdish (Central)) Currently translated at 85.5% (624 of 729 strings) Translated using Weblate (Estonian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Japanese) Currently translated at 99.8% (728 of 729 strings) Translated using Weblate (Serbian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (German) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Italian) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Czech) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Portuguese (Portugal)) Currently translated at 99.8% (728 of 729 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Swedish) Currently translated at 99.8% (728 of 729 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Polish) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Czech) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Portuguese) Currently translated at 99.8% (728 of 729 strings) Translated using Weblate (Italian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (German) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (German) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (729 of 729 strings) Translated using Weblate (ryu (generated) (ryu)) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Serbian) Currently translated at 18.1% (14 of 77 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (77 of 77 strings) Translated using Weblate (Greek) Currently translated at 24.6% (19 of 77 strings) Translated using Weblate (Estonian) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Polish) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Greek) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Serbian) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (German) Currently translated at 100.0% (728 of 728 strings) Translated using Weblate (ryu (generated) (ryu)) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Kannada) Currently translated at 5.5% (40 of 726 strings) Translated using Weblate (Sinhala) Currently translated at 2.6% (2 of 76 strings) Translated using Weblate (Sinhala) Currently translated at 4.1% (30 of 726 strings) Translated using Weblate (Bulgarian) Currently translated at 5.2% (4 of 76 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Turkish) Currently translated at 99.8% (725 of 726 strings) Translated using Weblate (Slovak) Currently translated at 98.4% (715 of 726 strings) Translated using Weblate (Italian) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (French) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Polish) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Greek) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Italian) Currently translated at 99.5% (723 of 726 strings) Translated using Weblate (Serbian) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Czech) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (German) Currently translated at 100.0% (726 of 726 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 21.0% (16 of 76 strings) Translated using Weblate (Serbian) Currently translated at 100.0% (725 of 725 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (725 of 725 strings) Translated using Weblate (Romanian) Currently translated at 99.8% (724 of 725 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (725 of 725 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (725 of 725 strings) Co-authored-by: Agnieszka C <aga_04@o2.pl> Co-authored-by: Alex25820 <alexs25820@gmail.com> Co-authored-by: Alexthegib <traducoes@skiff.com> Co-authored-by: Allan Nordhøy <epost@anotheragency.no> Co-authored-by: Andrey F <firsan777@mail.ru> Co-authored-by: Angelk90 <angelo.k90@hotmail.it> Co-authored-by: Chethan <76928501+ch3thanhs@users.noreply.github.com> Co-authored-by: Danr <mdp43140@gmail.com> Co-authored-by: David Svane <davidcygnus@users.noreply.hosted.weblate.org> Co-authored-by: Deleted User <noreply+77891@weblate.org> Co-authored-by: DuninduH <mateyh37@gmail.com> Co-authored-by: Eric <zxmegaxqug@hldrive.com> Co-authored-by: Fjuro <ifjuro@proton.me> Co-authored-by: GET100PERCENT <eraofphysics@yahoo.com> Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me> Co-authored-by: Heidhou chazanouvha <Heidhou@gmail.com> Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Igor Rückert <igorruckert@yahoo.com.br> Co-authored-by: Igor Sorocean <sorocean.igor@gmail.com> Co-authored-by: Ihfandi <ihfandicahyo@gmail.com> Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com> Co-authored-by: Jan Layola <gilajan@protonmail.com> Co-authored-by: Jeff Huang <s8321414@gmail.com> Co-authored-by: Juan Martinez <jjml.nipon@gmail.com> Co-authored-by: KarmaKat <lloydwestbury@gmail.com> Co-authored-by: Kuko <kuko7@protonmail.ch> Co-authored-by: LiJu09 <lisojuraj@gmail.com> Co-authored-by: Martin Constantino–Bodin <martin.bodin@ens-lyon.org> Co-authored-by: Mehmet <mehmetyalcin.0103@gmail.com> Co-authored-by: Michalis <michalisntovas@yahoo.gr> Co-authored-by: Milan <mobrcian@hotmail.com> Co-authored-by: Milo Ivir <mail@milotype.de> Co-authored-by: NEXI <nexiphotographer@gmail.com> Co-authored-by: Nils Van Zuijlen <nils.van-zuijlen@mailo.com> Co-authored-by: Nista <42772160+Nista11@users.noreply.github.com> Co-authored-by: Oğuz Ersen <oguz@ersen.moe> Co-authored-by: P.O <rasmusson.mikael@protonmail.com> Co-authored-by: Philip Goto <philip.goto@gmail.com> Co-authored-by: Pi-Cla <pirateclip@protonmail.com> Co-authored-by: Prasanta-Hembram <Prasantahembram720@gmail.com> Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com> Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org> Co-authored-by: Ray <ray@users.noreply.hosted.weblate.org> Co-authored-by: Rex_sa <rex.sa@pm.me> Co-authored-by: Scrambled777 <weblate.scrambled777@simplelogin.com> Co-authored-by: Sergio Marques <so.boston.android@gmail.com> Co-authored-by: ShareASmile <aapshergill@gmail.com> Co-authored-by: Subbarayudu <raidu.g6@gmail.com> Co-authored-by: Subham Jena <subhamjena8465@gmail.com> Co-authored-by: T1z3n <info@njbraun.de> Co-authored-by: Terry Louwers <t.louwers@gmail.com> Co-authored-by: TobiGr <TobiGr@users.noreply.github.com> Co-authored-by: Vasilis K <skyhirules@gmail.com> Co-authored-by: VfBFan <VfBFan@users.noreply.hosted.weblate.org> Co-authored-by: Xəyyam Qocayev <xxmn77@gmail.com> Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com> Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl> Co-authored-by: cat <158170307+cultcats@users.noreply.github.com> Co-authored-by: ds-z <drazen.sostaric01@gmail.com> Co-authored-by: dyare darbani <darbanidyare@gmail.com> Co-authored-by: fsbat0 <fsbat0@users.noreply.hosted.weblate.org> Co-authored-by: gallegonovato <fran-carro@hotmail.es> Co-authored-by: hshbuk <hsh.bukchin@gmail.com> Co-authored-by: jspast <joao.pastorello@protonmail.com> Co-authored-by: kuragehime <kuragehime641@gmail.com> Co-authored-by: ngocanhtve <ngocanh.tve@gmail.com> Co-authored-by: pjammo <adrianoghr@hotmail.it> Co-authored-by: ssantos <ssantos@web.de> Co-authored-by: trunars <trunars@gmail.com> Co-authored-by: v1s7 <v1s7@users.noreply.hosted.weblate.org> Co-authored-by: Åzze <laitinen.jere222@gmail.com> Co-authored-by: Çağla Pickaxe <caglapickaxe@gmail.com> Co-authored-by: Макар Разин <makarrazin14@gmail.com> Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ar/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/bg/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/bn/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/cs/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/el/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/es/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hi/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hr/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/id/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/it/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ja/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ka/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pa/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt_PT/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ru/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/si/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sk/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sr/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sv/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/tr/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/uk/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/vi/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant_HK/ Translation: NewPipe/Metadata * Improve app signature check * Convert isReleaseApk to lazy value * Use hexToByteArray() extension * Added "free memory" check before downloading [Android N / API 24+] (#10505) Added "free space" check before downloading eliminating bugs related to out-of-memory on Android N / API 24+ * Add separate message when download is rejected due to insufficient storage * Fix GitHub question discussion form The name and description fields are both invalid here. * Translated using Weblate (Danish) Currently translated at 100.0% (729 of 729 strings) Co-authored-by: cat <158170307+cultcats@users.noreply.github.com> * Don't add "question" label to question discussions (#10906) They already have a "Questions" category of their own anyway. * [CI] Update gradle/wrapper-validation-action to v2 Updates deprecated Node 16 to 20 * [CI] Update sonar job to use cache@v4 Updates deprecated Node 16 to 20 * use GitHub markdown to emphasise warning in all READMEs * Fix not considering nullability when comparing getAudioTrackType * Fix non-desugared method being used Search for "Not supported at all minSDK levels" here: https://developer.android.com/studio/write/java8-support-table * Fix choosing audio format to mux with video-only download * Remove unused DownloadDialog.onDismissListener * Fix NPE, since dismissing a dialog still calls onViewCreated() * Try to fix PR labeler Reference: https://github.com/actions/labeler?tab=readme-ov-file#permissions * Changed the landscape layout of list card item Make layout-land/list_stream_card_item a symlink to layout/list_stream_item * 11111th commit * Some more slight improvements * Move text from manual_update_title to check_for_updates * Ask for consent before starting update checks NewPipe is contacting its servers without asking for the users' consent. This is categorized as "tracking" by F-Droid (see https://github.com/TeamNewPipe/NewPipe/discussions/10785). This commit disables checking for udpates by default and adds a dialog asking for the user's consent to automatically check for updates if the app version is eligible for them. After upgrading to a version containing this commit the user is asked directly on the first app start. On fresh installs however, showing it on the first app start contributes to a bad onboarding an welcoming experience. Therefore, the dialog is shown at the second app start. Co-authored-by: Stypox <stypox@pm.me> * update_app_key default value should be false * Improve new version checks before running * show OverallDuration in Playlist earlier only overall amount of videos was shown. Now overall duration is shown there too - as formatted by existing Localization.concatenateStrings() and Localization.getDurationString(). show all videos OverallDuration in local Playlist too refactor to make implementation in LocalPlaylistFragment and PlaylistFragment more obviously similar unfortunately could not refactor upto BaseLocalListFragment revert the changes for online Playlists because they are paginated and may be infinite i.e. correct count may come only from the service->extractor chain which unfortunately does not give overall duration yet next try to improve user-experience with online Playlist just show that duration is longer (">") than the calculated value in case there is more page(s) even more improve user-experience for online Playlist by adding the duration of next items as soon as they are made visible make showing of playlists duration configurable, disabled by default adjusted duration to be handled as long because it comes as long from extractor no idea why I handled it as int earlier Revert "make showing of playlists duration configurable, disabled by default", refactor This reverts commit bc1ba17a20d3dd1763210f81d7ca67c5f1734a3d. Fix rebase Apply review Rename video -> stream Remove unused settings keys * Apply review * Fix DatabaseMigrationTest Complete removal of unneeded index, and remove default value for `remote_playlists.display_index`. * Also sort playlist duplicates by display index * Fix PlaylistLocalItemTest * Fix inconsistencies when removing playlist Remove checkDisplayIndexModified because it was causing more problems than it solved. Now when adding new playlists they won't necessarily appear at the top, but will get sorted alphabetically along with the other playlists with index -1. This will be the case until any playlist is sorted, at which point all indices are assigned and newly added playlists will appear at the top again. * Fix warnings and allow moving only up and down even in grid * Undo some unneeded changes to LocalPlaylistManager * Fix fragments without empty constructor * moved player notification to notification section * Move import export manager to separate folder * Make checkstyle accept javadocs with long links * Fix vulnerability with whitelist-aware ObjectInputStream Only a few specific classes are now allowed. * Show snackbar error when settings import fails * Add test: vulnerable settings should fail importing * Add comment that empty constructors are needed for IcePick See 5e7ad6ffd160633f15d5ad02f651ee3207539224 and https://github.com/TeamNewPipe/NewPipe/pull/10781#discussion_r1545351144 * Use JSON for settings imports/exports * Add test zips and extensive tests for ImportExportManager Now all possible combinations of files in the zip (present or not) are checked at the same time * Expose all import/export errors to the user * Show notification when failing to import settings * Translated using Weblate (Estonian) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Odia) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Vietnamese) Currently translated at 46.7% (36 of 77 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Czech) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Spanish) Currently translated at 99.7% (736 of 738 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Polish) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (German) Currently translated at 99.7% (736 of 738 strings) Translated using Weblate (Korean) Currently translated at 31.1% (24 of 77 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Korean) Currently translated at 98.9% (726 of 734 strings) Translated using Weblate (Serbian) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Polish) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Czech) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Italian) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Polish) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (734 of 734 strings) Translated using Weblate (German) Currently translated at 99.7% (732 of 734 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Russian) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (German) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Hungarian) Currently translated at 16.8% (13 of 77 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Polish) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Czech) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Italian) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (730 of 730 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (730 of 730 strings) Co-authored-by: Agnieszka C <aga_04@o2.pl> Co-authored-by: Alex25820 <alexs25820@gmail.com> Co-authored-by: Apious <apious@kakao.com> Co-authored-by: Eduardo Malaspina <vaio0@swismail.com> Co-authored-by: Fjuro <fjuro@alius.cz> Co-authored-by: GET100PERCENT <eraofphysics@yahoo.com> Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me> Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com> Co-authored-by: Jeff Huang <s8321414@gmail.com> Co-authored-by: Linerly <linerly@proton.me> Co-authored-by: Michael Moroni <michaelmoroni@disroot.org> Co-authored-by: Milan <mobrcian@hotmail.com> Co-authored-by: NEXI <nexiphotographer@gmail.com> Co-authored-by: Oğuz Ersen <oguz@ersen.moe> Co-authored-by: Philip Goto <philip.goto@gmail.com> Co-authored-by: Pi-Cla <pirateclip@protonmail.com> Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com> Co-authored-by: Rex_sa <rex.sa@pm.me> Co-authored-by: Tim Trek <T.Trek@byom.de> Co-authored-by: TobiGr <TobiGr@users.noreply.github.com> Co-authored-by: Tấn Lực Trương <september122022ios16@gmail.com> Co-authored-by: gallegonovato <fran-carro@hotmail.es> Co-authored-by: kuragehime <kuragehime641@gmail.com> Co-authored-by: rehork <cooky@e.email> Co-authored-by: Макар Разин <makarrazin14@gmail.com> Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org> Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hu/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ko/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/vi/ Translation: NewPipe/Metadata * Add changelog for v0.27.0 (997) * Update NewPipeExtractor to YT comments fix PR https://github.com/TeamNewPipe/NewPipeExtractor/pull/1163 * Release v0.27.0 (997) * Improve documentation * add an intuitive prefix for the duration of lists on UI, and avoid using the new prefix for single videos * Update NewPipeExtractor * Fix NPE when avatarUrl is empty * Fix not saving comment replies state on config change * Update NewPipeExtractor * Fix free storage space check for all APIs See https://stackoverflow.com/q/31171838 See https://pubs.opengroup.org/onlinepubs/9699919799/functions/fstatvfs.html * Translated using Weblate (Romanian) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Croatian) Currently translated at 99.5% (735 of 738 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (French (Louisiana)) Currently translated at 0.2% (2 of 738 strings) Translated using Weblate (Portuguese (Portugal)) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Portuguese (Portugal)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (738 of 738 strings) Added translation using Weblate (French (Louisiana)) Translated using Weblate (Vietnamese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (French) Currently translated at 99.7% (736 of 738 strings) Added translation using Weblate (Arabic (Tunisian)) Translated using Weblate (Vietnamese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (ryu (generated) (ryu)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Kannada) Currently translated at 5.8% (43 of 738 strings) Translated using Weblate (Kannada) Currently translated at 5.1% (4 of 78 strings) Translated using Weblate (Italian) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Russian) Currently translated at 99.8% (737 of 738 strings) Translated using Weblate (German) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (German) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (ryu (generated) (ryu)) Currently translated at 99.0% (731 of 738 strings) Translated using Weblate (Portuguese) Currently translated at 99.7% (736 of 738 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Russian) Currently translated at 99.7% (736 of 738 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Vietnamese) Currently translated at 50.0% (39 of 78 strings) Translated using Weblate (Sardinian) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Greek) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Japanese) Currently translated at 99.4% (734 of 738 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Italian) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Serbian) Currently translated at 100.0% (738 of 738 strings) Translated using Weblate (Slovak) Currently translated at 21.7% (17 of 78 strings) Translated using Weblate (Czech) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Chinese (Traditional)) Currently translated at 62.8% (49 of 78 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (78 of 78 strings) Translated using Weblate (Polish) Currently translated at 61.5% (48 of 78 strings) Translated using Weblate (Chinese (Traditional, Hong Kong)) Currently translated at 23.0% (18 of 78 strings) Co-authored-by: Agnieszka C <aga_04@o2.pl> Co-authored-by: Ajeje Brazorf <lmelonimamo@yahoo.it> Co-authored-by: Alex25820 <alexs25820@gmail.com> Co-authored-by: AudricV <AudricV@users.noreply.hosted.weblate.org> Co-authored-by: Fjuro <fjuro@alius.cz> Co-authored-by: Flavian <3zorro.1@gmail.com> Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com> Co-authored-by: Jonatan Nyberg <jonatan@autistici.org> Co-authored-by: Jose Delvani <delvani.eletricista@gmail.com> Co-authored-by: Linerly <linerly@proton.me> Co-authored-by: MS-PC <MSPCtranslator@gmail.com> Co-authored-by: Milan <mobrcian@hotmail.com> Co-authored-by: Milo Ivir <mail@milotype.de> Co-authored-by: NEXI <nexiphotographer@gmail.com> Co-authored-by: Philip Goto <philip.goto@gmail.com> Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org> Co-authored-by: Ray <ray@users.noreply.hosted.weblate.org> Co-authored-by: Rex_sa <rex.sa@pm.me> Co-authored-by: Sergio Marques <so.boston.android@gmail.com> Co-authored-by: ShareASmile <ShareASmile@users.noreply.hosted.weblate.org> Co-authored-by: Tấn Lực Trương <september122022ios16@gmail.com> Co-authored-by: Vasilis K <skyhirules@gmail.com> Co-authored-by: VfBFan <VfBFan@users.noreply.hosted.weblate.org> Co-authored-by: abhijithkjg <abhijithkj2001@gmail.com> Co-authored-by: gallegonovato <fran-carro@hotmail.es> Co-authored-by: kaajjo <claymanoff@gmail.com> Co-authored-by: kuragehime <kuragehime641@gmail.com> Co-authored-by: ngocanhtve <ngocanh.tve@gmail.com> Co-authored-by: ssantos <ssantos@web.de> Co-authored-by: yosrinajar <yosron3@gmail.com> Co-authored-by: zeineb-b <zeinebbouhejba21@gmail.com> Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ar/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/cs/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/es/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hi/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/id/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/it/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/kn/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pa/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pl/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt_PT/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sk/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sv/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/uk/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/vi/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant_HK/ Translation: NewPipe/Metadata * Ignore all errors when getting free storage space It's not a critical check that needs to be perfomed, so in case something does not work on some device/version, let's just ignore the error. * Update app/src/main/java/org/schabi/newpipe/streams/io/StoredDirectoryHelper.java Co-authored-by: Tobi <TobiGr@users.noreply.github.com> * Update NewPipeExtractor to v0.24.0 * Fix indentation for ktlint --------- Co-authored-by: GGAutomaton <32899400+GGAutomaton@users.noreply.github.com> Co-authored-by: TobiGr <tobigr@users.noreply.github.com> Co-authored-by: Yingwei Zheng <dtcxzyw@qq.com> Co-authored-by: Vincent Tanumihardja <u7145408@anu.edu.au> Co-authored-by: Zhidong Piao <u7139999@anu.edu.au> Co-authored-by: vincetzr <110076924+vincetzr@users.noreply.github.com> Co-authored-by: Stypox <stypox@pm.me> Co-authored-by: TacoTheDank <SkytkRSfan3895@gmail.com> Co-authored-by: Isira Seneviratne <31027858+isira-seneviratne@users.noreply.github.com> Co-authored-by: Roshan Jossy <roshanjossey@gmail.com> Co-authored-by: Profpatsch <mail@profpatsch.de> Co-authored-by: Zongle Wang <wangzongler@gmail.com> Co-authored-by: opusforlife2 <53176348+opusforlife2@users.noreply.github.com> Co-authored-by: Audric V <74829229+AudricV@users.noreply.github.com> Co-authored-by: Isira Seneviratne <isirasen96@gmail.com> Co-authored-by: Ikko Eltociear Ashimine <eltociear@gmail.com> Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Agnieszka C <aga_04@o2.pl> Co-authored-by: Alex25820 <alexs25820@gmail.com> Co-authored-by: Alexthegib <traducoes@skiff.com> Co-authored-by: Allan Nordhøy <epost@anotheragency.no> Co-authored-by: Andrey F <firsan777@mail.ru> Co-authored-by: Angelk90 <angelo.k90@hotmail.it> Co-authored-by: Chethan <76928501+ch3thanhs@users.noreply.github.com> Co-authored-by: Danr <mdp43140@gmail.com> Co-authored-by: David Svane <davidcygnus@users.noreply.hosted.weblate.org> Co-authored-by: Deleted User <noreply+77891@weblate.org> Co-authored-by: DuninduH <mateyh37@gmail.com> Co-authored-by: Eric <zxmegaxqug@hldrive.com> Co-authored-by: Fjuro <ifjuro@proton.me> Co-authored-by: GET100PERCENT <eraofphysics@yahoo.com> Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me> Co-authored-by: Heidhou chazanouvha <Heidhou@gmail.com> Co-authored-by: Igor Rückert <igorruckert@yahoo.com.br> Co-authored-by: Igor Sorocean <sorocean.igor@gmail.com> Co-authored-by: Ihfandi <ihfandicahyo@gmail.com> Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com> Co-authored-by: Jan Layola <gilajan@protonmail.com> Co-authored-by: Jeff Huang <s8321414@gmail.com> Co-authored-by: Juan Martinez <jjml.nipon@gmail.com> Co-authored-by: KarmaKat <lloydwestbury@gmail.com> Co-authored-by: Kuko <kuko7@protonmail.ch> Co-authored-by: LiJu09 <lisojuraj@gmail.com> Co-authored-by: Martin Constantino–Bodin <martin.bodin@ens-lyon.org> Co-authored-by: Mehmet <mehmetyalcin.0103@gmail.com> Co-authored-by: Michalis <michalisntovas@yahoo.gr> Co-authored-by: Milan <mobrcian@hotmail.com> Co-authored-by: Milo Ivir <mail@milotype.de> Co-authored-by: NEXI <nexiphotographer@gmail.com> Co-authored-by: Nils Van Zuijlen <nils.van-zuijlen@mailo.com> Co-authored-by: Nista <42772160+Nista11@users.noreply.github.com> Co-authored-by: Oğuz Ersen <oguz@ersen.moe> Co-authored-by: P.O <rasmusson.mikael@protonmail.com> Co-authored-by: Philip Goto <philip.goto@gmail.com> Co-authored-by: Pi-Cla <pirateclip@protonmail.com> Co-authored-by: Prasanta-Hembram <Prasantahembram720@gmail.com> Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com> Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org> Co-authored-by: Ray <ray@users.noreply.hosted.weblate.org> Co-authored-by: Rex_sa <rex.sa@pm.me> Co-authored-by: Scrambled777 <weblate.scrambled777@simplelogin.com> Co-authored-by: Sergio Marques <so.boston.android@gmail.com> Co-authored-by: ShareASmile <aapshergill@gmail.com> Co-authored-by: Subbarayudu <raidu.g6@gmail.com> Co-authored-by: Subham Jena <subhamjena8465@gmail.com> Co-authored-by: T1z3n <info@njbraun.de> Co-authored-by: Terry Louwers <t.louwers@gmail.com> Co-authored-by: Vasilis K <skyhirules@gmail.com> Co-authored-by: VfBFan <VfBFan@users.noreply.hosted.weblate.org> Co-authored-by: Xəyyam Qocayev <xxmn77@gmail.com> Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com> Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl> Co-authored-by: cat <158170307+cultcats@users.noreply.github.com> Co-authored-by: ds-z <drazen.sostaric01@gmail.com> Co-authored-by: dyare darbani <darbanidyare@gmail.com> Co-authored-by: fsbat0 <fsbat0@users.noreply.hosted.weblate.org> Co-authored-by: gallegonovato <fran-carro@hotmail.es> Co-authored-by: hshbuk <hsh.bukchin@gmail.com> Co-authored-by: jspast <joao.pastorello@protonmail.com> Co-authored-by: kuragehime <kuragehime641@gmail.com> Co-authored-by: ngocanhtve <ngocanh.tve@gmail.com> Co-authored-by: pjammo <adrianoghr@hotmail.it> Co-authored-by: ssantos <ssantos@web.de> Co-authored-by: trunars <trunars@gmail.com> Co-authored-by: v1s7 <v1s7@users.noreply.hosted.weblate.org> Co-authored-by: Åzze <laitinen.jere222@gmail.com> Co-authored-by: Çağla Pickaxe <caglapickaxe@gmail.com> Co-authored-by: Макар Разин <makarrazin14@gmail.com> Co-authored-by: CloudyRowly <76801836+CloudyRowly@users.noreply.github.com> Co-authored-by: Mohammed Anas <triallax@tutanota.com> Co-authored-by: ge78fug <ge78fug@mytum.de> Co-authored-by: bg1722 <bg1722> Co-authored-by: pratyaksh1610 <pratyakshkhuranaofficial@gmail.com> Co-authored-by: Apious <apious@kakao.com> Co-authored-by: Eduardo Malaspina <vaio0@swismail.com> Co-authored-by: Fjuro <fjuro@alius.cz> Co-authored-by: Linerly <linerly@proton.me> Co-authored-by: Michael Moroni <michaelmoroni@disroot.org> Co-authored-by: Tim Trek <T.Trek@byom.de> Co-authored-by: Tấn Lực Trương <september122022ios16@gmail.com> Co-authored-by: rehork <cooky@e.email> Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org> Co-authored-by: Ajeje Brazorf <lmelonimamo@yahoo.it> Co-authored-by: AudricV <AudricV@users.noreply.hosted.weblate.org> Co-authored-by: Flavian <3zorro.1@gmail.com> Co-authored-by: Jonatan Nyberg <jonatan@autistici.org> Co-authored-by: Jose Delvani <delvani.eletricista@gmail.com> Co-authored-by: MS-PC <MSPCtranslator@gmail.com> Co-authored-by: ShareASmile <ShareASmile@users.noreply.hosted.weblate.org> Co-authored-by: abhijithkjg <abhijithkj2001@gmail.com> Co-authored-by: kaajjo <claymanoff@gmail.com> Co-authored-by: yosrinajar <yosron3@gmail.com> Co-authored-by: zeineb-b <zeinebbouhejba21@gmail.com>
streamInfo
andchannelInfo
have to be initialized, since the only way to construct the class it to pass them. So we can remove the null check boilerplate and make some of the accessorsNonNull
.Due diligence