Added translation using Weblate (Somali)
Translated using Weblate (Chinese (Traditional))
Currently translated at 99.8% (608 of 609 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (French)
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Serbian)
Currently translated at 41.0% (250 of 609 strings)
Translated using Weblate (English)
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Japanese)
Currently translated at 99.6% (607 of 609 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Basque)
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Arabic)
Currently translated at 99.8% (608 of 609 strings)
Translated using Weblate (Arabic)
Currently translated at 99.8% (608 of 609 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 99.8% (608 of 609 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Croatian)
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Finnish)
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Belarusian)
Currently translated at 85.2% (519 of 609 strings)
Translated using Weblate (Bengali)
Currently translated at 79.1% (482 of 609 strings)
Translated using Weblate (German)
Currently translated at 29.2% (12 of 41 strings)
Translation: NewPipe/Metadata
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/
Translated using Weblate (Basque)
Currently translated at 26.8% (11 of 41 strings)
Translation: NewPipe/Metadata
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/eu/
Translated using Weblate (Chinese (Traditional))
Currently translated at 56.0% (23 of 41 strings)
Translation: NewPipe/Metadata
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant/
Translated using Weblate (Santali)
Currently translated at 10.6% (65 of 609 strings)
Translated using Weblate (Somali)
Currently translated at 15.9% (97 of 609 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (609 of 609 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 99.5% (610 of 613 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (German)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Basque)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Slovak)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Arabic)
Currently translated at 97.0% (595 of 613 strings)
Translated using Weblate (Indonesian)
Currently translated at 99.6% (611 of 613 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Croatian)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Finnish)
Currently translated at 99.6% (611 of 613 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 93.4% (573 of 613 strings)
Translated using Weblate (Sardinian)
Currently translated at 99.5% (610 of 613 strings)
Translated using Weblate (German)
Currently translated at 41.4% (17 of 41 strings)
Translation: NewPipe/Metadata
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/
Translated using Weblate (Turkish)
Currently translated at 19.5% (8 of 41 strings)
Translation: NewPipe/Metadata
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/tr/
Translated using Weblate (Greek)
Currently translated at 34.1% (14 of 41 strings)
Translation: NewPipe/Metadata
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/el/
Translated using Weblate (Portuguese)
Currently translated at 63.4% (26 of 41 strings)
Translation: NewPipe/Metadata
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt/
Translated using Weblate (Italian)
Currently translated at 43.9% (18 of 41 strings)
Translation: NewPipe/Metadata
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/it/
Translated using Weblate (Chinese (Traditional))
Currently translated at 80.4% (33 of 41 strings)
Translation: NewPipe/Metadata
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant/
Translated using Weblate (Chinese (Simplified))
Currently translated at 70.7% (29 of 41 strings)
Translation: NewPipe/Metadata
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hans/
Translated using Weblate (Somali)
Currently translated at 81.4% (499 of 613 strings)
Translated using Weblate (Somali)
Currently translated at 4.8% (2 of 41 strings)
Translation: NewPipe/Metadata
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/so/
Translated using Weblate (Bulgarian)
Currently translated at 62.1% (381 of 613 strings)
Translated using Weblate (Bulgarian)
Currently translated at 62.1% (381 of 613 strings)
- remove duplicated string (name) and avoid potential duplicate (autoplay_never_description -> Never, autoplay_always_description -> Always because they are just "Always" or "Never"). Fixes#4268
- leakCanary string removed (fixes#4233)
* migrate few annotations to androidx
* mission recovery: better error handling (except StreamExtractor.getErrorMessage() method always returns an error)
* post-processing: more detailed progress
[file specific changes]
DownloadMission.java
* remove redundant/boilerplate code (again)
* make few variables volatile
* better file "length" approximation
* use "done" variable to count the amount of bytes downloaded (simplify percent calc in UI code)
Postprocessing.java
* if case of error use "ERROR_POSTPROCESSING" instead of "ERROR_UNKNOWN_EXCEPTION"
* simplify source stream init
DownloadManager.java
* move all "service message sending" code to DownloadMission
* remove not implemented method "notifyUserPendingDownloads()" also his unused strings
DownloadManagerService.java
* use START_STICKY instead of START_NOT_STICKY
* simplify addMissionEventListener()/removeMissionEventListener() methods (always are called from the main thread)
Deleter.java
* better method definition
MissionAdapter.java
* better method definition
* code cleanup
* the UI is now refreshed every 750ms
* simplify download progress calculation
* indicates if the download is actually recovering
* smooth download speed measure
* show estimated remain time
MainFragment.java:
* check if viewPager is null (issued by "Apply changes" feature of Android Studio)