Commit Graph

2716 Commits

Author SHA1 Message Date
Stypox 2aebf6ceaf
Add log when existsAsFile() is called on an invalid StoredFileHelper 2021-07-27 17:56:41 +02:00
Stypox 0cb801179c
Merge pull request #6733 from Douile/fix/recaptcha-webview-background-activity
Prevent recaptcha webview from keeping youtube loaded in background
2021-07-27 11:41:17 +02:00
Stypox 1822d21676
Fix NullPointerException when checking if storage exists 2021-07-27 11:36:14 +02:00
Nathan Schulzke 7fd2ebc252 Add ability to mark an item as played 2021-07-26 20:51:41 -06:00
Kalle Struik 74173317de Change heart color to be red, add else clause for non hearted comments, and apply some code style suggestions. 2021-07-23 19:43:25 +02:00
Kalle Struik 3874e16187 Added support for showing when a comment has received a heart from the creator of a video. 2021-07-23 17:30:47 +02:00
Tom 52c136439e
Use loadUrl instead of loadData
Co-authored-by: Stypox <stypox@pm.me>
2021-07-22 10:47:47 +00:00
Douile cd86ed3877
Prevent recaptcha webview from keeping youtube loaded in background
After the cookies are extracted from the recaptcha webview make it load an empty
page to prevent youtube being loaded unecessarily in the background.
2021-07-22 02:41:01 +01:00
TacoTheDank 1d85661ab9 Update some AndroidX libraries 2021-07-21 19:31:41 -04:00
Stypox fa8630ddae
Use url comparison between queue items when disabling preloading
From #4562: Disable player stream preloading only if the current stream is going to be replaced for sure (see this). equals() was implemented for PlayQueueItems, so that (only) the url is compared when checking them.
2021-07-21 18:09:18 +02:00
Stypox 4a2bd7bd7b
Remove equals() method from PlayQueueItem 2021-07-21 18:09:18 +02:00
Tobi 63fdc100d6
Merge pull request #6705 from Stypox/big-text-info-items
Fix grid span count calculation
2021-07-19 22:45:48 +02:00
Tobi 9e2ece78dd
Merge pull request #6701 from Stypox/dismiss-download-dialog
Dismiss download dialog correctly
2021-07-19 21:47:12 +02:00
Stypox 4a242e43a7
Merge pull request #6689 from Isira-Seneviratne/Use_WindowInsetsCompat_getInsets
Use WindowInsetsCompat's getInsets() method.
2021-07-19 21:19:06 +02:00
Stypox 5ba3ef0a25
Fix grid span count calculation; remove duplicate methods 2021-07-19 20:47:50 +02:00
Isira Seneviratne 9458b9f37d Use PackageInfoCompat.getSignatures(). 2021-07-19 19:48:24 +05:30
Stypox ca282f2be8
Merge pull request #6675 from Isira-Seneviratne/Use_Kotlin_methods
Use Kotlin methods in LicenseFragment.
2021-07-19 13:19:02 +02:00
Stypox 46e7da4e21
Merge pull request #6688 from litetex/fix-some-build-warnings
Fix some build warnings
2021-07-19 11:52:24 +02:00
Isira Seneviratne 1721817fdb Use WindowInsetsCompat's getInsets() method. 2021-07-19 15:17:44 +05:30
Stypox d57bfde604
Merge pull request #6434 from litetex/playerSeekbarPreview
Player seekbar thumbnail preview
2021-07-19 11:42:10 +02:00
Stypox 8f559965f6
Call DownloadDialog dismiss() in the correct way 2021-07-19 10:59:45 +02:00
Stypox 35e005caaa
Improve method order in DownloadDialog and add separator comments 2021-07-18 14:23:38 +02:00
Stypox baa12c7069
Merge pull request #6536 from TacoTheDank/moar-onactivityresult
More onActivityResult deprecation fixes
2021-07-18 10:24:00 +02:00
Isira Seneviratne e2b044d2ee Use Kotlin methods in LicenseFragment. 2021-07-18 07:47:12 +05:30
litetex 621af8d812 Removed unused import (rebasing/merge problem) 2021-07-17 16:52:24 +02:00
litetex a9b5ef3bd3 Set minWidth to 10dp so that the popup player works (mostly) correctly 2021-07-17 16:43:03 +02:00
litetex 384d964827 Added seekbarThumbnailPreview 2021-07-17 16:43:00 +02:00
litetex 36c198fc33
One textview is enough for disabled comments
Ref: https://github.com/TeamNewPipe/NewPipe/pull/6483#discussion_r654793920
2021-07-17 13:14:50 +02:00
litetex 81107df53f
Added comments disabled functionallity 2021-07-17 13:10:44 +02:00
Stypox a932bc2503
Merge pull request #6637 from Isira-Seneviratne/Use_GestureDetectorCompat
Use GestureDetectorCompat.
2021-07-17 12:58:43 +02:00
litetex f4e2eca256 Simplified code and adjusted the style so that it's similar to FeedFragment 2021-07-16 21:21:10 +02:00
litetex 08d5dfa49c Removed updateRelativeTimeViews when the activity is paused
We don't need to call ``updateRelativeTimeViews`` when the activity is paused, because the user likely won't  notice it.
Despite that onResume already calls ``updateRelativeTimeViews`` so there is no need to do that twice.
2021-07-16 21:04:32 +02:00
Tobi dfa941a9e7
Merge pull request #6503 from evermind-zz/fixes-for-upstream
Prevent error msg: 'Unrecoverable player error occurred' while playin…
2021-07-14 09:53:30 +02:00
Tobi 1584028995
Merge pull request #6531 from XiangRongLin/immediat_pref_commit
Remove option to immediately commit pref changes on import
2021-07-14 09:48:58 +02:00
Tobi 14dab85ff0
Merge pull request #6566 from evermind-zz/various-fixes-for-upstream
Convert PlayerHolder to Singleton; cleanup in VideoDetailFragment; Player/MainPlayer do not call onDestroy() directly
2021-07-14 09:46:04 +02:00
Tobi 96f5cd9f17
Merge pull request #6463 from Stypox/metadata-tags
Improved metadata layout, better tags accessibility
2021-07-12 16:18:11 +02:00
Douile 2e053ea25a
Fix crash when refreshing feed 2021-07-11 03:00:32 +01:00
TobiGr 9ca2691a2c Add close() method to NewPipeDatabase 2021-07-10 14:46:51 +02:00
TobiGr 7c3f5a62c5 Fix crash when refreshing feed after importing database or subscriptions
The database was not closed correctly
2021-07-10 13:09:01 +02:00
Isira Seneviratne 6711dae4e0 Use GestureDetectorCompat. 2021-07-10 15:35:11 +05:30
evermind f78d2a5ed8 Prevent error msg: 'Unrecoverable player error occurred' while playing video during rotation (#6502)
Playing a video in VideoDetailFragment and rotating the screen to landscape (back and forth more often)
can trigger this error message. Especially if rotation for whatever reason takes long or
playing a high resolution (1080p) video.

The underlying logcat error messages:
05-12 16:38:38.251 24920 26037 E Surface : getSlotFromBufferLocked: unknown buffer: 0x923fc810
05-12 16:38:38.251 24920 26037 W ACodec  : [OMX.qcom.video.decoder.avc] can not return buffer 35 to native window

The problem is that that Exoplayer is trying to write to our -- during rotation -- no longer existant
(VideoDetailFragment) SurfaceView.

Solution:
Implementing SurfaceHolder.Callback and using DummySurface we can now handle the lifecycle of the Surface.

How?: In case we are no longer able to write to the Surface eg. through rotation/putting in
background we can set a DummySurface. Although it only works on API >= 23.
Result: we get a little video interruption (audio is still fine) but we won't get the
'Unrecoverable player error occurred' error message.

This implementation is based on and more background information:
 'ExoPlayer stuck in buffering after re-adding the surface view a few time 2703'

 -> exoplayer fix suggestion link
  https://github.com/google/ExoPlayer/issues/2703#issuecomment-300599981
2021-07-06 12:49:56 +02:00
evermind 48c2c156cb convert PlayerHolder to Singleton, handle context within, bugfix ServiceConnection leak
- bugfix: have ServiceConnection created only once!

- select the context within the PlayerHolder to start, stop, bind or unbind the service
  -> we have to make sure the Service is started AND stopped within the same context
  -> so let PlayerHolder be the one to select the context

- remove removeListener() and replace the call with setListener(null)
- Compatibility: use ContextCompat.startForegroundService instead of startService()
2021-07-06 12:31:26 +02:00
evermind 435813355f use viewBinding correctly 2021-07-06 07:56:05 +02:00
evermind e30a552b6c remove duplicated code for toggle Fullscreen 2021-07-06 07:56:00 +02:00
evermind 22a4a4b2df move null checks for player and playerService to helper methods
- code is easier to read
- duplication of code reduced
2021-07-06 07:55:52 +02:00
Robin 201e5ee09d Fix NPE when connecting via BT 2021-06-25 09:14:15 +02:00
evermind aaa3e20c5a service.onDestroy() should only be called from the system and not manually
instead use service.stopService() which inturn calls stopSelf() and
triggers hopefully onDestroy() to be called. Eventually we have to make
sure that all ServiceConnections are closed to successfully stop the service
now!

Cleanup within stopService() and not only onDestroy()

So we make sure that all listeners can react to onServiceStopped()
and close their ServiceConnections. Afterwards the android framework
is ready to stop the Service.
2021-06-24 10:15:07 +02:00
bopol 0da8e28651
Merge pull request #6558 from Douile/fix/searchfragment-null-service
Fix null pointer exception when displaying SearchFragment
2021-06-24 09:16:00 +02:00
bopol 25cf8dc20a Refactoring by Android Studio 2021-06-23 14:30:01 +02:00
Douile cb1a138140
#6081: Disable feed click handlers during refresh
This patch changes click handlers for feed (Whats new) so that they do
nothing while the feed is refreshing and the items being clicked are not
visible.
2021-06-22 19:42:20 +01:00
Douile 384ca66205
#6522: Fix null pointer exception when displaying SearchFragment
It seems due to #6394 updating the FragmentX library there was a
change to the order of lifecycle calls, as such onResume() was no longer
before onCreateOptionsMenu() creating a null pointer exception when
using service in onCreateOptionsMenu() as it is only set in onResume().

By moving the initialization of service to onStart() which still happens
before onCreateOptionsMenu() this crash can be avoided. This commit also
adds a check for a null service to prevent future crashes for similar
issues.
2021-06-22 16:52:02 +01:00
Mohammed Anas 62b4f333bb
Don't enable SAF on Fire TV (#6516) 2021-06-20 19:01:06 +00:00
TacoTheDank ae39b31c68 Fix onActivityResult deprecation in DownloadDialog 2021-06-20 14:14:44 -04:00
TacoTheDank e5a1438673 Fix onActivityResult deprecation in DownloadSettingsFragment 2021-06-20 14:11:00 -04:00
XiangRongLin 785c0376f8 Remove variable ContentSettingsFragment.lastImportExportDataUri
Instead pass the value through the methods as parameter
2021-06-20 09:30:59 +02:00
XiangRongLin 0bdf8de38e Resolve sonar issues in ContentSettingsFragment
https://sonarcloud.io/organizations/teamnewpipe/rules?open=java%3AS2885&rule_key=java%3AS2885

https://sonarcloud.io/organizations/teamnewpipe/rules?open=java%3AS112&rule_key=java%3AS112
2021-06-20 09:30:59 +02:00
XiangRongLin 9767e98e50 Remove option to immediately commit pref changes on import
System is now not restarted with `System.exit(0)`.
Instead it is done properly by finishing the activity and restarting the activity. This allows preference changes which are queued up asynchronously through `apply` to be applied.
2021-06-20 09:17:55 +02:00
TacoTheDank 79deff3261 Annotate some overridden methods and parameters as NonNull 2021-06-19 18:37:02 -04:00
Robin f5d015e8f9 Use ExoPlayer default values for buffers 2021-06-18 20:18:24 +02:00
Stypox 74ad488f4a
Merge pull request #6394 from TacoTheDank/androidx-fragment-134
Update AndroidX Fragment to 1.3.4
2021-06-18 13:14:30 +02:00
Tobi be676ad93c
Merge pull request #3371 from mauriciocolli/feed-hide-played-items
Add ability to hide played items in a feed
2021-06-18 09:18:48 +02:00
Robin 0803d9f2b5
Merge pull request #6504 from evermind-zz/fixes-choice-dialog
dismiss choice dialog in onStop() to avoid a leaked window Exception:
2021-06-17 21:17:35 +02:00
Stypox 841fb4cfc5
Merge pull request #6495 from danielmbutler/Replace-System.exit-calls
Replace the System.exit calls with getActivity.finishAffinity()
2021-06-17 21:07:48 +02:00
danielmbutler 90de75968d Replaced System.Exit calls with FinishAffinity and Start Activity calls
Implemented "RestartApp" method defined in NavigationHelper.java.
 This method is used in ExitActivity.java and ContentSettingsFragment.java
2021-06-17 17:18:15 +01:00
evermind a9ab2f54ea dismiss choice dialog in onStop() to avoid a leaked window Exception:
E/WindowManager: android.view.WindowLeaked: Activity org.schabi.newpipe.RouterActivity has leaked window DecorView@d99fe3b[] that was originally added here
        at android.view.ViewRootImpl.<init>(ViewRootImpl.java:418)
2021-06-17 06:53:47 +02:00
TacoTheDank a1432e939f Fix onActivityResult deprecation in SubscriptionFragment 2021-06-15 22:09:19 -04:00
TacoTheDank cae160b5be Fix onActivityResult deprecation in SubscriptionsImportFragment 2021-06-15 22:09:07 -04:00
TacoTheDank aa4e5da146 Fix onActivityResult deprecation in ContentSettingsFragment 2021-06-15 22:08:55 -04:00
TacoTheDank 1061fca6a3 Add super.onRequestPermissionsResult where missing 2021-06-15 22:08:41 -04:00
TacoTheDank e4885e3c52 Fix some older deprecations from previous Fragment versions 2021-06-15 22:08:25 -04:00
Stypox d6e0bd8c26
Merge pull request #6059 from Dakkaron/manual-tablet-mode-setting
Adds manual tablet mode setting
2021-06-15 21:46:19 +02:00
Dakkaron e01ef42d31
Adds manual tablet mode setting
Co-authored-by: TiA4f8R <74829229+TiA4f8R@users.noreply.github.com>
2021-06-15 21:43:06 +02:00
Stypox 32df4d39a4
Reshow feed if grid/list view mode changed 2021-06-15 18:40:25 +02:00
Stypox 7145b117cc
Fix long press menu in feed 2021-06-14 19:02:57 +02:00
Stypox 4698d07323
Do not hide feed buttons (show/hide & help) behind three-dots menu 2021-06-14 19:02:57 +02:00
Stypox 2142f05a88
Fix hiding finished streams in groups; new stream state validity condition
Consider stream state valid also if >1/4 of video was watched
2021-06-14 19:01:01 +02:00
Stypox 40a2df847b
Move tags layout at the bottom, use multiple lines 2021-06-13 21:56:06 +02:00
TiA4f8R 4eef498d24
Only call addClickListenersOnTimestamps if relatedInfo is instance of StreamInfo 2021-06-11 14:08:08 +02:00
TiA4f8R 32b0bdb98c
Fix the compile error 2021-06-11 12:19:29 +02:00
Stypox edfe0f9c30
Fix disposables handling for text linkifier
also use differently Markwon methods to convert plain text to markdown
2021-06-11 12:12:12 +02:00
Stypox eef418a757
Improve text linkifier function parameters 2021-06-11 12:12:11 +02:00
TiA4f8R 218f25c171
Annotate params and methods with NonNull 2021-06-11 12:12:10 +02:00
TiA4f8R f02df6d80c
Fix an error and add a new method in the ShareUtils class
Fix the error due to the rebase on the dev branch of this branch
Add a shareText method in the ShareUtils class which has 3 parameters and calls
the original shareText method with an empty string for the
imagePreviewUrl param.
2021-06-11 12:12:09 +02:00
TiA4f8R da4d379b22
Initial work: use disposables for timestamps parsing in YouTube video descriptions and YouTube comments 2021-06-11 12:12:08 +02:00
TiA4f8R f13f4cc5d2
Split handleUrl method into two methods
Split handleURL method, now private, into two methods:
handleUrlCommentsTimestamp and handleUrlDescriptionTimestamp. Code is
now more proper.
2021-06-11 12:12:07 +02:00
TiA4f8R a79badd783
Adress requested changes and try some cleanup in handleUrl method of InternalUrlsHandler class 2021-06-11 12:12:06 +02:00
TiA4f8R 2702700d10
Don't use a chooser for other intents than opening a content in a browser or sharing a content to other apps
Use an ACTION_CHOOSER intent has a negative impact for user experience, because user cannot set as default an activity for an intent
2021-06-11 12:12:05 +02:00
TiA4f8R 267686fd37
Initial work: add support for opening hashtags in plain text descriptions
This commit adds supports for opening hashtags in plain text descriptions, using the same logic as timestamps.
Every hashtag opens a search on the current service with the text in the hashtag.
Also use a better regular expression for parsing timestamps.
2021-06-11 12:12:04 +02:00
TiA4f8R e5df2f65b8
Move some classes to a new subpackage and adress requested changes
Rename URLHandler and KoreUtil classes to InternalUrlsHandler and KoreUtils.
Move InternalUrlsHandler, KoreUtils, TextLinkfier, ShareUtils classes to external_communication subpackage.
Remove unused param showPreviewText in shareText method of ShareUtils class.
Add initial work to be able to display an image preview of the content shared (not for downloads).
Use a better regular expression to parse timestamps in plain text descriptions.
2021-06-11 12:12:03 +02:00
TiA4f8R d6decc05d7
Move some classes to a new subpackage and adress requested changes
Rename URLHandler and KoreUtil classes to InternalUrlsHandler and KoreUtils.
Move InternalUrlsHandler, KoreUtils, TextLinkfier, ShareUtils classes to external_communication subpackage.
Remove unused param showPreviewText in shareText method of ShareUtils class.
Add initial work to be able to display an image preview of the content shared (not for downloads).
Use a better regular expression to parse timestamps in plain text descriptions.
2021-06-11 12:12:02 +02:00
TiA4f8R d85afd6435
Initial work to add the image of the content in the share sheet
Also do some fixes when sharing a file in downloads and some improvements in JavaDocs of ShareUtils class.
2021-06-11 12:12:00 +02:00
TiA4f8R 2fb86364ab
Fix title of the subject when sharing an URL 2021-06-11 12:11:59 +02:00
TiA4f8R c972940338
Apply suggested changes and fix some warnings 2021-06-11 12:11:58 +02:00
TiA4f8R 6abdd2a6d8
Try to change message of the system chooser for the update notification
This commit tries to change the title of the system chooser shown, which is from Android System ("Open links with"), when no defaut browser is present, for the update notification.
2021-06-11 12:11:57 +02:00
TiA4f8R 9e9d1a04e4
Fix toast shown when falling back to Google Play Store URL and the action of Open with Kodi button in the player
Add a boolean param, showToast, in ShareUtils.openIntentInApp and only show toast "No app on your device can open this" if this boolean is true.
Fix the action of play with Kodi button by applying the fix provided in #5599 (adding the flag Intent.FLAG_ACTIVITY_NEW_TASK to the intent in NavigationHelper.playWithKore method).
Do also some cleanup in viewWithFileProvider and shareFile methods of MissionAdapter class.
2021-06-11 12:11:56 +02:00
TiA4f8R ae9349e36c
Initial work: add support for opening timestamps in plain text descriptions
This commit adds support for opening plain text timestamps by parsing the description text using a regular expression, add a click listener for each timestamp which opens the popup player at the indicated time in the timestamp.
In order to do this, playOnPopup method of the URLHandler class. Also, handleUrl method of this class has been renamed to canHandleUrl.
2021-06-11 12:11:55 +02:00
TiA4f8R 4031777606
Open recognized timestamps in the description of contents in the popup player
This commit adds support of opening recognized timestamps in the popup
player instead of starting an intent which opens the YouTube website with
the video timestamp.
2021-06-11 12:11:44 +02:00
Stypox 06d10cf9aa
Merge pull request #6313 from Isira-Seneviratne/Update_Room_to_2.3.0
Update Room to 2.3.0.
2021-06-09 16:28:55 +02:00
Stypox 0113ad5e14
Correctly save stream progress at the end of a video 2021-06-09 15:53:51 +02:00
Stypox e58feadba9
Remove IN HISTORY label on stream info items 2021-06-09 15:53:51 +02:00
Stypox 360f5ac6f7
Save playback state even if stream is finished and add isFinished() 2021-06-09 15:53:51 +02:00
Mauricio Colli e846f69e38
Add ability to hide played items in a feed
- Use components from the new Groupie list library for displaying the
feed list.
2021-06-09 15:53:51 +02:00
Tobi 56cd84c1fe
Merge pull request #6444 from TeamNewPipe/increasebufferafterdepletion
Increase buffer for playback after rebuffer
2021-06-08 17:02:18 +02:00
Stypox a2eead521f
Merge pull request #6346 from Imericxu/tabs-style-check
Resolve Tabs style checks
2021-06-08 14:49:14 +02:00
Stypox a2fd5ae20c
Update app/src/main/java/org/schabi/newpipe/settings/tabs/Tab.java 2021-06-08 14:45:00 +02:00
Stypox 543440e38d
Update app/src/main/java/org/schabi/newpipe/settings/tabs/Tab.java 2021-06-08 14:44:54 +02:00
Stypox bede758507
Use url at current time for long click on player share button 2021-06-08 14:34:51 +02:00
Abanoub Sameh 5532666ad5
Long press on player share button to copy url to clipboard 2021-06-08 14:23:33 +02:00
Stypox 63cff25616
Merge pull request #6314 from Peyman-hme/Add-Open-website-button-to-webview-in-license-fragment-issue-#6296
Add "Open website" button to WebView in license fragment
2021-06-08 11:37:06 +02:00
Stypox 5e2735aaa2
Merge pull request #5462 from Isira-Seneviratne/Convert_abstract_classes_to_interfaces
Convert the abstract class DAOs to interfaces.
2021-06-08 11:32:10 +02:00
Peyman-hme 6fc0d8fce4
Add Open website string resources 2021-06-08 11:29:25 +02:00
Peyman-hme e0c1ca1209
Change "Ok" Button to "Dismiss" and also change "Open Website" button to neutral button 2021-06-08 11:29:00 +02:00
Peyman-hme 3dc4ed1764
Add "Open website" button in webview in license fragment, issue #6296 2021-06-08 11:29:00 +02:00
Tobi f63a4ee2ae
Merge pull request #5876 from TeamNewPipe/terminated-channels
Better error handling of terminated channels
2021-06-08 10:57:24 +02:00
Stypox 2a99e0e435
Reimplement storing backup import/export path
#6319 and #6402 were reverted before adding SAF changes, and have been readded at the end of SAF changes
2021-06-08 10:41:24 +02:00
Stypox 5ffc667bea
Remove misplaced comment 2021-06-08 10:40:45 +02:00
Stypox 21b8df0375
Check if file really exists before asking user to overwrite it 2021-06-08 10:40:45 +02:00
Stypox b78ac7d2e9
Fix strange behaviour when app loses access to saf download folder 2021-06-08 10:40:45 +02:00
Stypox 114dc8ffa0
Pass mime type so that SAF treats file extension correctly 2021-06-08 10:40:45 +02:00
Stypox eea43d5a73
Add comments to SharpStreams 2021-06-08 10:40:45 +02:00
Stypox bcb1cf6603
Improve SAF switch descriptions in settings 2021-06-08 10:40:45 +02:00
Stypox 1e8b3826dc
Add setting migration to promote using SAF 2021-06-08 10:40:45 +02:00
wb9688 7efe62ee80
Only ask for storage permissions when not using SAF 2021-06-08 10:40:45 +02:00
wb9688 febb21a01d
Fix non-SAF actions 2021-06-08 10:40:44 +02:00
wb9688 cb4e6159c4
Use file picker for export DB 2021-06-08 10:40:44 +02:00
wb9688 1164ea52f9
Move Stored(File|Directory)Helper into NewPipe 2021-06-08 10:40:44 +02:00
wb9688 0f75024e03
Support SAF properly 2021-06-08 10:40:44 +02:00
Stypox 1e09a1768e
Revert all commits related to ContentSettingsFragment
Revert "Annotate methode parameters as NonNull"
This reverts commit 004907d306.

Revert "Commit path immediately when import backup"
This reverts commit 05eb0d0fbe.

Revert "Set ImportExportDataPath only on successful import"
This reverts commit f13a1b04e6.

Revert "Set ImportExportDataPath only on successful export"
This reverts commit fd4408e572.

Revert "Invert if condition in ContentSettingsFragment.setImportExportDataPath for better readability"
This reverts commit 92ab9cae27.

Revert "Move ContentSettingsFragment.isValidPath to helpers and add unit test for it."
This reverts commit fa2b11b768.

Revert "Save backup import/export location for feature import/exports"
This reverts commit 82f43ac6a6.

Remove FilePathHelperTest file
2021-06-08 10:40:44 +02:00
TobiGr b57ecae565 Fix getting error cause
Fix error dialog not shown when getting elemets from first subscription failed.
2021-06-08 10:12:36 +02:00
Stypox 89317d4abc Fix feed loading and show a dialog for each invalid subscription 2021-06-08 10:12:36 +02:00
TobiGr c5dd3dc7a9 Improve error message when loading feed
Add name of unavailable channel
2021-06-08 10:12:36 +02:00
TobiGr ccc46971b4 Show detailed error message when an account has been terminated by the service 2021-06-08 10:12:36 +02:00
TobiGr 6ad4b425e4 Better error handling of terminated channels when loading feed 2021-06-08 10:12:36 +02:00
Robin 3b0045917c
Increase buffer for playback after rebuffer 2021-06-07 09:25:49 +02:00
Stypox a102fc9cad
Use constraint layout for play queue item
Also remove invalid ic_selected attribute
2021-06-07 08:07:27 +02:00
Douile d921e2e61b
Hide queue duration when displaying segment panel
Fixes #6441
2021-06-07 02:10:44 +01:00
TobiGr 7e3b3453c0 Suppress a warning 2021-06-05 16:13:12 +02:00
TobiGr abc354f516 Use reqireContext(), requireActivity() instead of getters 2021-06-05 16:13:12 +02:00
Tobi 932eb94f9d
Merge pull request #6429 from TiA4f8R/fix-play-with-kodi-player-button
Fix Play with Kodi button in Player always prompts to install Kore
2021-06-05 14:32:09 +02:00
TiA4f8R 9fc3ddeab7
Fix Play with Kodi button in Player always prompts to install Kore 2021-06-05 12:48:34 +02:00
TobiGr 98fdbec442 Fix playback speed not being updated in PlayQueuAcitvity
Fixes #6419
2021-06-05 12:24:59 +02:00
bopol 332b90d6c1
Merge pull request #6337 from litetex/fix-broken-yt-liked-comments
[YouTube] Fix broken likes in comments
2021-06-04 22:32:48 +02:00
Tobi db2e03eb14
Merge pull request #6402 from XiangRongLin/save_backup_bug
Fix and improve setting import and export paths
2021-06-04 22:22:09 +02:00
Tobi 63c9308f59
Merge pull request #5946 from Stypox/metadata
Show content metadata below the description
2021-06-03 20:51:33 +02:00
litetex 1306a777fc Using Localization.shortCount() and old likeCount 2021-06-03 14:40:00 +02:00
TiA4f8R b4d6015464
Add the Open in browser option when long-pressing a stream for local and online playlists and for history 2021-06-03 13:21:31 +02:00
TiA4f8R b9aaafdb30
Add Open in browser option to long-press menu
Add Open in browser option to long-press menu when long pressing a stream and a subscription
2021-06-03 13:15:08 +02:00
Tobi 71aa6c6e92
Merge pull request #6309 from mhmdanas/fix-channel-details-long-press-menu-on-feeds
Add "Show channel details" option in remote (non-local) playlists
2021-06-03 12:25:50 +02:00
Tobi f98d2631e5
Merge pull request #6242 from evermind-zz/fixes-for-upstream
fix Rotation crash on „Video not available“ page (#5941)
2021-06-03 12:22:23 +02:00
Stypox d025ef11f8
Sort tags in metadata section 2021-06-02 21:23:42 +02:00
Stypox 14256137e8
Use chips to show tags in metadata section
Clicking on chips opens the search fragment
Long clicking copies to clipboard
2021-06-02 16:15:02 +02:00
Stypox bc3e43ac58
Add button to allow selecting text in the description
Since now selection is disabled by default, this fixes #5453
2021-06-02 14:36:34 +02:00
Stypox d0d5373be9
Allow copying metadata to clipboard 2021-06-02 14:19:25 +02:00
Stypox 997267bad1
Show video metadata below the decription 2021-06-02 14:19:25 +02:00
XiangRongLin 004907d306 Annotate methode parameters as NonNull 2021-05-31 15:09:57 +02:00
XiangRongLin 05eb0d0fbe Commit path immediately when import backup 2021-05-31 12:40:14 +02:00
XiangRongLin f13a1b04e6 Set ImportExportDataPath only on successful import
Also set the folder instead of the file itself as path
2021-05-31 12:38:21 +02:00
XiangRongLin fd4408e572 Set ImportExportDataPath only on successful export 2021-05-31 12:36:21 +02:00
Tobi 62b593da08
Merge pull request #6118 from sauravrao637/errorHandlingInSubcribe
Error handling in subscribe() in DownloadDialog
2021-05-29 11:30:36 +02:00
Tobi 0eb69b6659
Merge pull request #6353 from Imericxu/fix-pasting-rich-text-in-search
Fix unwanted rich text formatting when pasting
2021-05-29 09:12:07 +02:00
Tobi f134e2d02a
Merge pull request #6385 from sauravrao637/6371
Option for download is redundant and thus removed when linkType is CHANNEL or PLAYLIST
2021-05-28 14:23:04 +02:00
camo0112 b564433ff6 Option for download is redundant and thus removed when linkType is CHANNEL or PLAYLIST 2021-05-28 03:38:53 +05:30
Zhiheng Xu ea1b910d7e Simplify code 2021-05-26 12:01:58 -04:00
Zhiheng Xu 8f4c6fb6ac Add comment 2021-05-26 12:01:58 -04:00
Zhiheng Xu 9b1861417c Add formatting removal on paste for search
Closes #5912
2021-05-26 12:01:58 -04:00
Eric Xu 448989f32f Add PlaylistTab.hashCode() matching equals 2021-05-26 12:01:30 -04:00
Eric Xu 2fc26bc154 Refactor PlaylistTab.equals 2021-05-26 12:01:30 -04:00
Eric Xu 1812249d37 Add ChannelTab.hashCode() matching equals 2021-05-26 12:01:30 -04:00
Eric Xu 14bbaccb9f Refactor ChannelTab.equals 2021-05-26 12:01:30 -04:00
Eric Xu d2b03afcf4 Add KioskTab.hashCode() matching equals 2021-05-26 12:01:30 -04:00
Eric Xu 1cac3895dc Refactor KioskTab.equals 2021-05-26 12:01:30 -04:00
Eric Xu 01aab25889 Add Tab.hashCode() to go with equals 2021-05-26 12:01:30 -04:00
Eric Xu 96d731dfc7 Refactor equals method 2021-05-26 12:01:30 -04:00
Zhiheng Xu 2e161a1f45 Change shuffle() guard to check for size <= 2
After testing the app, I realized that shuffling a queue with size 2
does nothing
2021-05-24 12:20:19 -04:00
Zhiheng Xu 5ab6e84044 Remove redundant clearing of list 2021-05-24 12:20:19 -04:00
Zhiheng Xu e1a6347c4e Refactor shuffle and update documentation
- Add early return for invalid sizes to shuffle

 - Rename variables to be more descriptive

 - Refactor moving list element, removing unnecessary operations

 - Unwrap if clause for adding to history because the condition is
   guaranteed by the guard clause

 - Inline the value 0 for the ReorderEvent

 - Update documentation to reflect new changes
2021-05-24 12:20:19 -04:00
Eric Xu 92a67bb8cb Rearrange fields
Final fields should be arranged first
2021-05-24 12:20:19 -04:00
Eric Xu e8eeac6735 Resolve TODO in indexOf(...)
PlayQueueItem overrides equals and hashCode, so using indexOf is
perfectly fine.
2021-05-24 12:20:19 -04:00
Eric Xu 775fbc9a75 Rewrite setIndex(int) to pass unit tests
Original did not cover the case of when streams is empty and
documentation does not specify any input restrictions.

There's an ambiguity with broadcasting an event between the
documentation and the actual code (see TODO).
2021-05-24 12:20:19 -04:00
Eric Xu 8efe2859b8 Refactor assignments to field declaration
Assignments that don't require the constructor can be moved out.
2021-05-24 12:20:19 -04:00
Eric Xu 441c68ead2 Add hashCode() to match equals(other) 2021-05-24 12:20:19 -04:00
Eric Xu 4cd1f201f5 Refactor streams to initialize with values 2021-05-24 12:20:19 -04:00
Eric Xu 013c59f904 Refactor ArrayList fields to List 2021-05-24 12:20:19 -04:00
Eric Xu 57474e2dab Refactor and optimize equals
- Remove multiple casts of obj

 - Simply use object equals on the streams because PlayQueueItem’s
   equals already compares urls
2021-05-24 12:20:19 -04:00
TobiGr 87d2f33e55 Add support for PeerTube HLS streams 2021-05-23 11:53:35 +02:00
XiangRongLin fc7944d287
Merge pull request #6319 from ATofighi/feat-6039-store-backup-location
Save backup import/export location for future import/exports
2021-05-21 21:08:33 +02:00
Alireza Tofighi 92ab9cae27 Invert if condition in ContentSettingsFragment.setImportExportDataPath for better readability 2021-05-21 20:24:57 +04:30
Alireza Tofighi fa2b11b768 Move ContentSettingsFragment.isValidPath to helpers and add unit test for it. 2021-05-21 20:21:58 +04:30
Alireza Tofighi 82f43ac6a6 Save backup import/export location for feature import/exports 2021-05-17 21:57:27 +04:30
XiangRongLin 847831c195
Merge pull request #6308 from mhmdanas/make-minor-changes
Make some minor changes
2021-05-17 12:14:00 +02:00
XiangRongLin e0b246431f
Merge pull request #6312 from ATofighi/fix-6298-report-page-back-not-working
Fix ErrorActivity actionbar back button not working
2021-05-17 12:12:12 +02:00
Isira Seneviratne 3b1c4b043d Convert Converters to a Kotlin object. 2021-05-16 11:14:15 +05:30
Isira Seneviratne e8b8391868 Rename .java to .kt 2021-05-16 11:14:15 +05:30
Alireza Tofighi c808beec30 Fix ErrorActivity actionbar back button not working
The issue is because of R.id.home != android.R.id.home
2021-05-16 02:19:52 +04:30
mhmdanas b2b9938484 Put show channel details option in more long-press menus 2021-05-15 19:20:27 +03:00
mhmdanas eb1cefe2fa Make some minor changes 2021-05-15 18:48:16 +03:00
Robin 95f61542b5 TEST: Downgrade ExoPlayer to 2.12 2021-05-14 14:47:53 +02:00
Robin 98ccd577d6 Fixed checkstyle 2021-05-14 12:15:48 +02:00
Robin 1d43a2362c Add debug option to disable media tunneling 2021-05-14 12:05:52 +02:00
Saurav Rao 5b4fbe32b1
Fix trying to delete object not in list (#6127)
* fix trying to delete object by index -1

* correction in checkstyle-supressions.xml

Co-authored-by: camo0112 <56369484+camo0112@users.noreply.github.com>
2021-05-12 14:33:00 +02:00