Commit graph

116 commits

Author SHA1 Message Date
Vasily
ea8bdd8835 Merge branch 'dev' into playback_state_list 2019-06-23 20:23:29 +03:00
kapodamy
b92b434e2c Simplify the storage APIs use
* use Java I/O (classic way) on older android versions
* use Storage Access Framework on newer android versions (Android Lollipop or later)
* both changes have the external SD Card write permission
* add option to ask the save path on each download
* warn the user if the save paths are not defined, this only happens on the first NewPipe run (Android Lollipop or later)
2019-06-03 18:26:24 -03:00
kapodamy
64626a7709 more SAF implementation
* full support for Directory API (Android Lollipop or later)
* best effort to handle any kind errors (missing file, revoked permissions, etc) and recover the download
* implemented directory choosing
* fix download database version upgrading
* misc. cleanup
* do not release permission on the old save path (if the user change the download directory) under SAF api
2019-06-03 18:18:20 -03:00
kapodamy
7ca7952790 Implement Storage Access Framework
* re-work finished mission database
* re-work DownloadMission and bump it Serializable version
* keep the classic Java IO API
* SAF Tree API support on Android Lollipop or higher
* add wrapper for SAF stream opening
* implement Closeable in SharpStream to replace the dispose() method

* do required changes for this API:
** remove any file creation logic from DownloadInitializer
** make PostProcessing Serializable and reduce the number of iterations
** update all strings.xml files
** storage helpers: StoredDirectoryHelper & StoredFileHelper
** best effort to handle any kind of SAF errors/exceptions
2019-06-03 18:16:41 -03:00
kapodamy
8d8059229f New MP4 muxer + Queue changes + Storage fixes
Main changes:
* correctly check the available space (CircularFile.java)
* misc cleanup (CircularFile.java)
* use the "Error Reporter" for non-http errors
* rewrite network state checking and add better support for API 21 (Lollipop) or higher
* implement "metered networks"
* add buttons in "Downloads" activity to start/pause all pending downloads, ignoring the queue flag or if the network is "metered"
* add workaround for VPN connections and/or network switching. Example: switching WiFi to 3G
* rewrite DataReader ¡Webm muxer is now 57% more faster!
* rewrite CircularFile, use file buffers instead of memory buffers. Less troubles in low-end devices
* fix missing offset for KaxCluster (WebMWriter.java), manifested as no thumbnails on file explorers

Download queue:
* remember queue status, unless the user pause the download (un-queue)
* semi-automatic downloads, between networks. Effective if the user create a new download or the downloads activity is starts
* allow enqueue failed downloads
* new option, queue limit, enabled by default. Used to allow one or multiple downloads at same time

Miscellaneous:
* fix crash while selecting details/error menu (mistake on MissionFragment.java)
* misc serialize changes (DownloadMission.java)
* minor UI tweaks
* allow overwrite paused downloads
* fix wrong icons for grid/list button in downloads
* add share option
* implement #2006
* correct misspelled word in strings.xml (es) (cmn)
* fix MissionAdapter crash during device shutdown

New Mp4Muxer + required changes:
* new mp4 muxer (from dash only) with this, muxing on Android 7 is possible now!!!
* re-work in SharpStream
* drop mp4 dash muxer
* misc changes: add warning in SecondaryStreamHelper.java,
* strip m4a DASH files to normal m4a format (youtube only)

Fix storage issues:
* warn to the user if is choosing a "read only" download directory (for external SD Cards), useless is rooted :)
* "write proof" allow post-processing resuming only if the device ran out of space
* implement "insufficient storage" error for downloads
2019-06-03 18:09:43 -03:00
Vasiliy
08c558ea20 Option to disable states indicators 2019-04-27 19:04:13 +03:00
Vasiliy
2e36b05a50 Implement playback state management 2019-04-13 13:34:36 +03:00
yausername
a7aa90e10c save selected tab sate in stream detail fragment, fixes #2238 2019-03-24 06:31:28 +05:30
Ritvik Saraf
7a11a72935 merged upstream/dev 2019-01-29 22:32:58 +05:30
krtkush
0367c515f3 Conflict resolution. 2018-12-28 18:07:54 +05:30
Ritvik Saraf
f3b2724975 merged upstream/dev 2018-12-20 08:51:44 +05:30
Ritvik Saraf
5d659c24dc merged upstream/dev 2018-12-04 23:19:57 +05:30
kapodamy
bb7bf8ccf2 Update settings_keys.xml
* remane max_try -> maximum_try
2018-11-29 15:19:53 -03:00
kapodamy
0f8924d167 Merge branch 'dev' into giga-postprocessing 2018-11-28 22:53:29 -03:00
kapodamy
db0c4642a4 misc improvements
* don't show notifications while download activity
* proper icon in failed download notifications
* re-write list auto-refresh (MissionAdapter.java)
* improve I/O performance (CircularFile.java)
* fix implementation of "save thread position" on multi-thread downloads
2018-11-28 22:24:52 -03:00
kapodamy
6d4e97a877 and more fixes
* fix content length reading
* use float overflow. Expensive, double is used instead
* fix invalid cast after click the mission body
* use a list for maximum attemps (downloads)
* minor clean up (DownloadManager.java)
* dont pass SharedPreferences instace to DownloadManager
* use a switch instead of checkbox for cross_network_downloads
* notify media scanner after deleting a finished download
2018-11-24 20:13:18 -03:00
krtkush
fd3475f000 Conflict resolution 2018-11-23 01:41:47 +05:30
Christian Schabesberger
a36340d881 set minSdk to 19 and deprecate old player 2018-11-13 17:27:47 +01:00
kapodamy
21e205a6be main commit
Post-processing infrastructure
* remove interfaces with one implementation
* fix download resources with unknow length
* marquee style for ProgressDrawable
* "view details" option in mission context menu
* notification for finished downloads
* postprocessing infrastructure: sub-missions, circular file, layers for layers of abstractions for Java IO streams
* Mp4 muxing (only DASH brand)
* WebM muxing
* Captions downloading
* alert dialog for overwrite existing downloads finished or not.

Misc changes
* delete SQLiteDownloadDataSource.java
* delete DownloadMissionSQLiteHelper.java
* implement Localization from #114

Misc fixes (this branch)
* restore old mission listeners variables. Prevents registered listeners get de-referenced on low-end devices
* DownloadManagerService.checkForRunningMission() now return false if the mission has a error.
* use Intent.FLAG_ACTIVITY_NEW_TASK when launching an activity from gigaget threads (apparently it is required in old versions of android)

More changes
* proper error handling "infrastructure"
* queue instead of multiple downloads
* move serialized pending downloads (.giga files) to app data
* stop downloads when swicthing to mobile network (never works, see 2nd point)
* save the thread count for next downloads
* a lot of incoherences fixed
* delete DownloadManagerTest.java (too many changes to keep this file updated)
2018-11-08 19:00:44 -03:00
Tobias Groza
7a0e3b4e3a Change from "Côte d'Ivoire" to "Côte d\'Ivoire"
Co-Authored-By: AndhikaWB <karagasnoelan@gmail.com>
2018-10-26 16:22:35 +07:00
AndhikaWB
00cbee1b71 Update settings_keys.xml 2018-10-26 00:09:04 +07:00
AndhikaWB
c80ec779e3 Fix spelling in of country names in settings
- [x] I carefully read the [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md) and agree to them.

Closes TeamNewPipe/NewPipe#1504
2018-10-26 00:04:36 +07:00
krtkush
68bd7f58b6 Removed updates options from settings in case of non github apk. 2018-10-18 22:59:33 +05:30
Christian Schabesberger
12002c7e72 Merge branch 'dev' into lang 2018-10-16 03:47:11 +02:00
Ritiek Malhotra
4f9978b663 Merge branch 'dev' into separate-gesture-options 2018-10-10 08:41:42 -07:00
Christian Schabesberger
6f72ed7d65 Merge branch 'dev' into tablet_ui 2018-10-08 11:56:25 +02:00
Christian Schabesberger
8d10693d07 Merge branch 'dev' into 1520_app_update_notif 2018-10-06 18:04:39 +02:00
Christian Schabesberger
89e068dfec Merge branch 'dev' into lang 2018-10-06 17:29:42 +02:00
Christian Schabesberger
0c72d4614e add support for content language and content country 2018-10-05 16:20:27 +02:00
Ritvik Saraf
7c4158230a added content setting to disable comments 2018-10-02 20:56:14 +05:30
MaX-Lo
ebb0327f36 store the last used aspect ratio in SharedPreferences and reload them on
resuming the VideoPlayer Activity (similar to storing/reloading the last used: screen rotation)
2018-09-22 11:32:13 +02:00
Kartikey Kushwaha
e6ba244c8c Removed flvor checks. Added update settings under main settings. 2018-09-15 20:51:17 +05:30
Ritvik Saraf
f7eec18dcb added basic/crappy comments support 2018-09-15 17:15:44 +05:30
Ritiek Malhotra
8a3fcd3124 Merge branch 'dev' into separate-gesture-options 2018-09-08 10:05:51 -07:00
Mauricio Colli
d38a7ced70 Improve tabs UX and saving/loading
- Show icons in the tabs list and dialog chooser
- Add a "restore to defaults" button
- Make removing gesture more user intuitive
2018-09-04 23:54:17 -03:00
Ritiek Malhotra
19abbc935a Separate options for volume and brightness gestures 2018-08-31 19:30:40 +05:30
Vasily
d3ac3c16b2 Automatic list layout 2018-08-29 08:19:15 +03:00
Vasily
1dbb297c5d Grid view 2018-08-22 10:14:01 +03:00
oscar
36b887dcc4 Removed incorrect explanations of the M4A and WebM audio formats 2018-08-12 23:46:21 -03:00
Christian Schabesberger
62d1d54b5e Merge pull request #1354 from karyogamy/minimize-on-exit
Minimize main player on exit
2018-06-25 19:46:13 +02:00
Somethingweirdhere
22fd5b8159 Added option to menu 2018-06-25 12:04:11 +02:00
Somethingweirdhere
c08efcb234 Added download to share menu 2018-06-17 13:55:43 +02:00
John Zhen Mo
a29851e83f -Expanded minimize to exit to allow resuming on background player.
-Modified minimize to exit toggle to selection dialog.
2018-06-03 14:09:16 -07:00
John Zhen Mo
e7406dff08 -Added toggle to allow main video player to switch to popup player when onstop is called.
-Fixed player state not recovering when player is stopped during multiwindow mode.
-Updated gradle to 3.1.2.
2018-06-03 13:20:39 -07:00
Andrei.Rosca
f6ac6faa8a Remember brightness for the session 2018-06-02 09:06:40 +02:00
Christian Schabesberger
f26c4463d1 fix conflict 2018-05-27 13:30:23 +02:00
Christian Schabesberger
645162b7bf add delete while history
add delete whole history
2018-04-29 12:51:57 +02:00
James Straub
577ed8f32b Update to mobile data limiting
- Moved non-key strings from string_keys.xml to strings.xml
- Code style changes
- Replaced a hard coded key string with resource constant
2018-04-22 10:20:19 -04:00
naXa!
4366729e88 Fix #1345 Gradle build fails with "error: unescaped apostrophe in string" 2018-04-22 14:31:59 +03:00
James Straub
fa896abecc Added the ability to limit video quality if using mobile data.
* Added a dropdown to video & audio settings
* Changes to ListHelper:
** Limits resolution when code requests the default video resolution
** Limits audio bitrate when code requests the default audio bitrate
** Removed some dead code and did some cleanup
** Make methods private/protected to help understand what was in use
** The code now chooses one format over an other using a simple raking system defined in array constants. I realized I needed to do this in order to choose the most efficient video stream. I did my best to evaluate the video and audio formats based on quality and efficiency. It's not an exact science.
** Made changes to the tests to support my changes
2018-04-21 12:35:04 -04:00