1
mirror of https://github.com/TeamNewPipe/NewPipe synced 2025-09-19 00:20:50 +02:00

Compare commits

...

1004 Commits

Author SHA1 Message Date
TobiGr
ade5e38fa5 Disable shrinkResources to fix F-Droid's reproducible build
For more information see https://f-droid.org/docs/Reproducible_Builds/#resource-shrinker
2020-07-23 21:19:47 +02:00
Tobias Groza
c900ef036c Merge pull request #3863 from TeamNewPipe/release_0.19.6
Release 0.19.6
2020-07-12 20:25:05 +02:00
TobiGr
d088d432c5 Release NewPipe 0.19.6 (951) 2020-07-11 21:47:19 +02:00
TobiGr
c9fafbe198 Add changelog 2020-07-11 21:47:19 +02:00
TobiGr
2d909b0514 Remove untranslatable translations 2020-07-11 21:47:19 +02:00
TobiGr
c2a012553d Use %1$d instead of %1$s in deleted_downloads string
We don't pass a String, but an Integer
2020-07-11 21:47:19 +02:00
TobiGr
085f0266ac Fix Linter (translations) 2020-07-11 20:52:20 +02:00
Tobias Groza
7ede2daa3c Merge pull request #3861 from TeamNewPipe/languages
add the new languages translated in NewPipe
2020-07-08 22:45:16 +02:00
bopol
713c53d170 add bengali (india) and arabic (lybia) 2020-07-08 21:34:34 +02:00
TobiGr
110b3a6a8f Add some new languages to the language selector
ckb - Central Kurdish
jv - Javanese
kab - Kabyle
2020-07-07 22:32:14 +02:00
Tobias Groza
e12e6dd7a7 Merge pull request #3441 from wb9688/nextpage
Next page stuff
2020-07-07 21:19:27 +02:00
wb9688
e183fc6118 Bump NPE version 2020-07-07 21:04:08 +02:00
wb9688
dd57e246b8 Use getNextPage() instead of getNextPageUrl() 2020-07-07 21:03:24 +02:00
Tobias Groza
f4a4172369 Merge pull request #3471 from Royosef/DisplaySearchSuggestion
Display search suggestion: did you mean & showing result for
2020-07-07 20:57:02 +02:00
TobiGr
b96d1714b5 Highlight search suggestion 2020-07-07 20:23:41 +02:00
TobiGr
dbd809b040 Merge remote-tracking branch 'Weblate/dev' into dev 2020-07-07 18:41:55 +02:00
Tobias Groza
ff4e6b139d Merge pull request #3579 from TobiGr/error_md_export
Add Markdown export of crash logs
2020-07-07 00:01:12 +02:00
Tobias Groza
af098aaac8 Merge pull request #3843 from kapodamy/drop-writting-application-metadata
Drop writting application metadata in muxed files
2020-07-06 23:55:06 +02:00
Digiwizkid
5d7e62c736 Translated using Weblate (Bengali (India))
Currently translated at 61.0% (352 of 577 strings)
2020-07-06 12:56:56 +02:00
Prajwol Pradhan
e2ead011f5 Translated using Weblate (Nepali)
Currently translated at 99.8% (576 of 577 strings)
2020-07-06 12:56:54 +02:00
Allan Nordhøy
a067c950e1 Translated using Weblate (Norwegian Bokmål)
Currently translated at 89.0% (514 of 577 strings)
2020-07-06 12:56:54 +02:00
Yaron Shahrabani
3369618cfa Translated using Weblate (Hebrew)
Currently translated at 100.0% (577 of 577 strings)
2020-07-06 12:56:54 +02:00
Jeff Huang
4e9b6520e5 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (577 of 577 strings)
2020-07-06 12:56:53 +02:00
Eric
a074203fae Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (577 of 577 strings)
2020-07-06 12:56:53 +02:00
Samuel Carvalho de Araújo
42092e3f28 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (577 of 577 strings)
2020-07-06 12:56:53 +02:00
WaldiS
c07b34e298 Translated using Weblate (Polish)
Currently translated at 100.0% (577 of 577 strings)
2020-07-06 12:56:53 +02:00
Emin Tufan Çetin
ef5f181328 Translated using Weblate (Turkish)
Currently translated at 100.0% (577 of 577 strings)
2020-07-06 12:56:52 +02:00
ssantos
a7ea2fcf92 Translated using Weblate (Portuguese)
Currently translated at 100.0% (577 of 577 strings)
2020-07-06 12:56:52 +02:00
AioiLight
e81730715c Translated using Weblate (Japanese)
Currently translated at 100.0% (577 of 577 strings)
2020-07-06 12:56:52 +02:00
Lesya Novaselskaya
c09f2ad482 Translated using Weblate (Russian)
Currently translated at 100.0% (577 of 577 strings)
2020-07-06 12:56:52 +02:00
B0pol
84aef8b5b5 Translated using Weblate (French)
Currently translated at 100.0% (577 of 577 strings)
2020-07-06 12:56:51 +02:00
nautilusx
8fac3e8221 Translated using Weblate (German)
Currently translated at 100.0% (577 of 577 strings)
2020-07-06 12:56:51 +02:00
Prajwol Pradhan
5874ed781d Translated using Weblate (Nepali)
Currently translated at 99.8% (576 of 577 strings)
2020-07-06 12:56:49 +02:00
Ishwor Ghimire
d8f29bd7a7 Translated using Weblate (Nepali)
Currently translated at 99.8% (576 of 577 strings)
2020-07-06 12:56:48 +02:00
kapodamy
8120b6aaaa checkstyle's amend 2020-07-05 23:55:40 -03:00
Stypox
13a0d1de70 Replace search query without searching on suggestion panel long click 2020-07-05 22:01:35 +02:00
Stypox
20e828be51 Improve suggestion panel 2020-07-05 22:01:35 +02:00
wb9688
ccd82fb8b8 Improve search suggestion code 2020-07-05 22:01:35 +02:00
Roy Yosef
0711650ff8 Fix search suggestions not working on resume
* add searchSuggestionString, isCorrectedSearch fields to state and load onResume
2020-07-05 22:01:35 +02:00
Roy Yosef
4194ac2226 Display search suggestion: did you mean & showing result for 2020-07-05 22:01:35 +02:00
Stypox
248e2d7ee0 Merge pull request #3506 from Royosef/PlaylistTab
Add playlist tab to main page
2020-07-05 21:06:23 +02:00
Tobias Groza
1daa654051 Merge pull request #3845 from B0pol/peertube_instance
add privacytools.io peertube instance to manifest
2020-07-05 14:37:11 +02:00
bopol
d751434979 add privacytools.io peertube instance to manifest 2020-07-04 11:39:00 +02:00
Stypox
8cc21920b7 Move local/remote playlist merge() to PlaylistLocalItem class
In order not to have a utils class just for one function
2020-07-04 11:38:22 +02:00
Stypox
248212588d Fix style issues 2020-07-04 11:38:22 +02:00
Roy Yosef
13c0fdef08 Final declarations, naming & redundant code
* add final declarations where missing
* fix typo "onSelectedLisener" to "onSelectedListener"
* rename "baseEqual" to "baseEquals"
* replace getPlaylistsObserver code with functions pointers
* remove duplicate code in constructors
* remove useless null checks
2020-07-04 11:37:38 +02:00
Roy Yosef
dfc27b2480 Add playlist tab to main page
Add bookmarked playlist as tab in the main page (by Settings > Content > Content of main page)
2020-07-04 11:35:45 +02:00
kapodamy
b2d78d380b update WebMWriter.java 2020-07-03 20:51:45 -03:00
Tobias Groza
faa6cb5c7d Merge pull request #3841 from B0pol/update_inv_instances
update invidious instances
2020-07-03 15:38:10 +02:00
kapodamy
452977abdf Drop "writing/muxed by" metadata
* All muxers (mp4, webm and ogg) are affected
* solve some checkstyle's errors (building was blocked)

Mp4FromDashWriter:
* drop "writing application"
* drop "handler name"

OggFromWebMWriter:
* drop "writing application" for OPUS and VORBIS header

WebMWriter:
* Drop "Muxing application"
* Drop "Writing application"
2020-07-03 02:07:42 -03:00
Hosted Weblate
93570b2f59 Merge branch 'origin/dev' into Weblate. 2020-07-03 00:18:10 +02:00
Ville Rantanen
073f5c2c8c Translated using Weblate (Finnish)
Currently translated at 100.0% (576 of 576 strings)
2020-07-03 00:18:06 +02:00
bopol
1b4313f847 update extractor version 2020-07-02 23:17:38 +02:00
Tobias Groza
07cead7e99 Merge pull request #3404 from mauriciocolli/feed-add-filter-sub-list
Add filter to the feed group dialog to show only ungrouped subscriptions
2020-07-02 22:53:11 +02:00
bopol
f128751aba update invidious instances 2020-07-02 21:41:23 +02:00
Tobias Groza
9516d9da17 Merge pull request #3837 from Stypox/audio-sync
Fix audio/video desync caused by floating point cumulative errors
2020-07-02 21:29:18 +02:00
Hosted Weblate
e9aafc2a56 Merge branch 'origin/dev' into Weblate. 2020-07-02 17:34:57 +02:00
Digiwizkid
a91a6575e0 Translated using Weblate (Bengali (India))
Currently translated at 50.3% (290 of 576 strings)
2020-07-02 17:34:56 +02:00
Milo Ivir
5bd4093dfb Translated using Weblate (Croatian)
Currently translated at 86.6% (499 of 576 strings)
2020-07-02 17:34:54 +02:00
WaldiS
f9890e2016 Translated using Weblate (Polish)
Currently translated at 100.0% (576 of 576 strings)
2020-07-02 17:34:54 +02:00
BenjaminForster
00529fe134 Added translation using Weblate (Afrikaans) 2020-07-02 17:34:51 +02:00
Stypox
5e9dce7d39 Merge pull request #3774 from eames-palmer/status-bar-color
Update status color to match toolbar color
2020-07-01 08:39:32 +02:00
Tobias Groza
734680b9f0 Merge pull request #3373 from mauriciocolli/feed-add-search-sub-list
Add search for subscription picker in the feed group dialog
2020-07-01 00:16:01 +02:00
Tobias Groza
d0b5345252 Merge pull request #3822 from Stypox/fix-queue-colors
Fix queue channel name color for some devices
2020-07-01 00:13:29 +02:00
Tobias Groza
c2b4a44a59 Merge pull request #3828 from wb9688/checkstyle-fix
Do not include Checkstyle in any APK
2020-06-30 23:19:33 +02:00
Stypox
38c79bbc11 Fix audio/video desync caused by floating point cumulative errors 2020-06-30 22:41:09 +02:00
Digiwizkid
0d7028a36c Translated using Weblate (Bengali (India))
Currently translated at 36.1% (208 of 576 strings)
2020-06-30 19:32:06 +02:00
Digiwizkid
b63f687491 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 30.9% (178 of 576 strings)
2020-06-30 19:32:02 +02:00
Digiwizkid
952b636569 Added translation using Weblate (Bengali (India)) 2020-06-30 12:20:19 +02:00
Jasper Eames Palmer
e14ba48244 Update non-service status bar colors to match toolbar colors 2020-06-29 22:30:09 -07:00
Hosted Weblate
720c8c31ec Merge branch 'origin/dev' into Weblate. 2020-06-29 13:30:45 +02:00
Allan Nordhøy
4e8407ed8f Translated using Weblate (Norwegian Bokmål)
Currently translated at 89.2% (514 of 576 strings)
2020-06-29 13:30:43 +02:00
Enol P
26c5f69161 Translated using Weblate (Asturian)
Currently translated at 51.0% (294 of 576 strings)
2020-06-29 13:30:43 +02:00
Anonim Qwerty
078ae15794 Translated using Weblate (Ukrainian)
Currently translated at 98.9% (570 of 576 strings)
2020-06-29 13:30:42 +02:00
ssantos
16ae90dc9f Translated using Weblate (German)
Currently translated at 100.0% (576 of 576 strings)
2020-06-29 13:30:42 +02:00
TobiGr
3de5afc68e Add Markdown export of crash logs
Add app language as additional debug information to reports
2020-06-28 16:07:22 +02:00
wb9688
a7e8f5087e Do not include Checkstyle in any APK 2020-06-28 14:59:44 +02:00
Mauricio Colli
2e6e75cd4e Add filter to the feed group dialog to show only ungrouped subscriptions 2020-06-27 11:58:40 -03:00
Mauricio Colli
9f3b35634a Fix subscription picker items flickering in the feed group dialog
The adapter could not tell the items were the same because the
subscription class was missing some methods (i.e. equals and hashcode),
so a full rebind was being done.
2020-06-27 11:25:31 -03:00
Mauricio Colli
c24dfc63dc Add search for subscription picker in the feed group dialog 2020-06-27 11:25:25 -03:00
Stypox
c029929850 Fix queue channel name color for some devices 2020-06-27 16:11:25 +02:00
Tobias Groza
d9100913d5 Merge pull request #3787 from budde25/fix-popup-queue
Fixes enqueue resuming paused videos
2020-06-27 11:56:08 +02:00
Tobias Groza
e03d970bc2 Merge pull request #3406 from B0pol/playlist_peertube
Add possibility to open PeerTube links in NP for some instances (without needing to share to NP)
2020-06-26 18:53:49 +02:00
Tobias Groza
fe4516ea23 Merge pull request #3752 from Redirion/exoupdate
Update to ExoPlayer 2.11.6
2020-06-26 18:33:53 +02:00
Jwtiyar Nariman
039b47b872 Translated using Weblate (Central Kurdish)
Currently translated at 100.0% (576 of 576 strings)
2020-06-25 14:41:53 +02:00
Robin
0a57a8a7f3 2.11.6 2020-06-25 09:26:59 +02:00
Jwtiyar Nariman
8c823f3a2d Added translation using Weblate (Central Kurdish) 2020-06-24 11:12:52 +02:00
Éfrit
33f3a4f455 Translated using Weblate (French)
Currently translated at 100.0% (576 of 576 strings)
2020-06-24 04:41:44 +02:00
Zackz
2ecf8044d7 Translated using Weblate (Javanese)
Currently translated at 10.9% (63 of 576 strings)
2020-06-22 19:41:47 +02:00
Zackz
c9a1eb55b5 Added translation using Weblate (Javanese) 2020-06-21 18:02:36 +02:00
Ayoub Rejal
76bb1fd61e Translated using Weblate (Arabic (Libya))
Currently translated at 6.7% (39 of 576 strings)
2020-06-19 17:41:46 +02:00
ButterflyOfFire
1275b26ba0 Translated using Weblate (Kabyle)
Currently translated at 4.3% (25 of 576 strings)
2020-06-19 17:41:45 +02:00
Andreas Westrell
a470a4af9b Translated using Weblate (Swedish)
Currently translated at 99.1% (571 of 576 strings)
2020-06-19 17:41:45 +02:00
Marian Hanzel
487c9ebbd4 Translated using Weblate (Slovak)
Currently translated at 96.1% (554 of 576 strings)
2020-06-19 17:41:43 +02:00
Ayoub Rejal
746cab92f0 Added translation using Weblate (Arabic (Libya)) 2020-06-18 17:17:41 +02:00
Ethan Budd
33266a96ff fixes enqueue resuming paused videos 2020-06-17 22:15:50 -05:00
Hosted Weblate
2816889d8d Merge branch 'origin/dev' into Weblate. 2020-06-17 14:25:36 +02:00
ButterflyOfFire
58e177b3e4 Added translation using Weblate (Kabyle) 2020-06-17 14:25:34 +02:00
wb9688
5cfd8bbb56 Merge pull request #3704 from Stypox/keep-failed-streams
Do not remove items generating errors form queue
2020-06-15 15:16:26 +02:00
wb9688
e6fe6fd645 Merge pull request #3437 from TheLastGimbus/fast-rewind-forward-in-background-activity
Fast rewind forward in background activity
2020-06-15 15:06:58 +02:00
TheLastGimbus
63e167b38e Add buttons also in landscape mode 2020-06-14 23:22:31 +02:00
TheLastGimbus
abe77c4783 Change to final 2020-06-14 19:52:58 +02:00
TheLastGimbus
72af51fe9d Add speed button to top bar 2020-06-14 15:16:04 +02:00
TheLastGimbus
36b4134838 Remove speed buttons from bottom menu 2020-06-14 15:15:38 +02:00
Hosted Weblate
cf6ee26fdb Merge branch 'origin/dev' into Weblate. 2020-06-14 12:41:48 +02:00
Oymate
858111e623 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 30.5% (176 of 576 strings)
2020-06-14 12:41:42 +02:00
Oğuz Ersen
367e625804 Translated using Weblate (Turkish)
Currently translated at 100.0% (576 of 576 strings)
2020-06-14 12:41:42 +02:00
Freddy Morán Jr
ae4d9c7f80 Translated using Weblate (Spanish)
Currently translated at 100.0% (576 of 576 strings)
2020-06-14 12:41:42 +02:00
nautilusx
6c6ee41346 Translated using Weblate (German)
Currently translated at 99.8% (575 of 576 strings)
2020-06-14 12:41:41 +02:00
Tobias Groza
9ef7688f9e Merge pull request #3772 from adinilfeld/copy-video-title
Copy video title
2020-06-13 16:38:14 +02:00
Jasper Eames Palmer
7d6e226c2b Update status color to match toolbar color 2020-06-11 19:29:15 -07:00
adinilfeld
17d1346a8a made ClipboardManager final 2020-06-11 09:36:57 -07:00
adinilfeld
59e0c10c42 inverted if-else statement 2020-06-11 09:36:05 -07:00
adinilfeld
0d29e66092 removed unnecessary setLongClickable 2020-06-11 09:33:05 -07:00
wb9688
caa000f447 Merge pull request #3759 from Stypox/fix-search
Fix search crash: adapter array index out of bounds
2020-06-11 13:06:30 +02:00
adinilfeld
267e114354 added a copyToClipboard method to ShareUtils, and modified CommentsMiniInfoItemHolder and VideoDetailFragment to use the new method. 2020-06-10 15:14:08 -07:00
adinilfeld
b5375396d2 allowed user to copy video title to clipboard (from detail screen) 2020-06-10 14:17:43 -07:00
adinilfeld
e34f666b70 set an OnLongClickListener 2020-06-10 14:11:06 -07:00
Theophine Savio Theodore
19334b4f96 Translated using Weblate (Malayalam)
Currently translated at 100.0% (576 of 576 strings)
2020-06-10 21:41:40 +02:00
Theophine Savio Theodore
1fa609e539 Translated using Weblate (Malayalam)
Currently translated at 100.0% (576 of 576 strings)
2020-06-09 21:03:02 +02:00
Ville Rantanen
d9ce25a721 Translated using Weblate (Finnish)
Currently translated at 100.0% (576 of 576 strings)
2020-06-09 16:22:19 +02:00
thami simo
5b8fc25da6 Translated using Weblate (Arabic)
Currently translated at 100.0% (576 of 576 strings)
2020-06-09 16:22:16 +02:00
Hosted Weblate
c70968dcf1 Merge branch 'origin/dev' into Weblate. 2020-06-08 14:14:35 +02:00
Ville Rantanen
77147510fb Translated using Weblate (Finnish)
Currently translated at 83.5% (481 of 576 strings)
2020-06-08 14:14:33 +02:00
Freddy Morán Jr
7092577482 Translated using Weblate (Spanish)
Currently translated at 100.0% (576 of 576 strings)
2020-06-08 14:14:29 +02:00
Stypox
3e70050056 Fix search crash: adapter array index out of bounds 2020-06-07 21:28:54 +02:00
Tobias Groza
1f23c814e5 Merge pull request #3698 from B0pol/openWebsite
avoid duplicate: use openUrlInBrowser instead of openWebsite
2020-06-06 18:44:24 +02:00
Robin
145e0a0b7b Update to ExoPlayer 2.11.5 2020-06-06 15:29:52 +02:00
pitachips
e68e787e7a Translated using Weblate (Korean)
Currently translated at 84.3% (486 of 576 strings)
2020-06-05 19:41:39 +02:00
WaldiS
903308d285 Translated using Weblate (Polish)
Currently translated at 100.0% (576 of 576 strings)
2020-06-04 02:41:47 +02:00
zmni
a4d8388b2e Translated using Weblate (Indonesian)
Currently translated at 100.0% (576 of 576 strings)
2020-06-04 02:41:46 +02:00
Hosted Weblate
3e83f9f956 Merge branch 'origin/dev' into Weblate. 2020-06-01 19:41:43 +02:00
Anxhelo Lushka
4063221313 Translated using Weblate (Albanian)
Currently translated at 100.0% (577 of 577 strings)
2020-06-01 19:41:39 +02:00
zeritti
c3c8d80919 Translated using Weblate (Czech)
Currently translated at 100.0% (577 of 577 strings)
2020-06-01 19:41:39 +02:00
notramo
3ae71c73c4 Translated using Weblate (Hungarian)
Currently translated at 60.6% (350 of 577 strings)
2020-06-01 19:41:38 +02:00
Stypox
b3db8c9549 Do not remove items generating errors form queue 2020-05-31 14:06:22 +02:00
bopol
596eb4a0f9 Merge branch 'dev' into playlist_peertube 2020-05-31 12:26:46 +02:00
bopol
6b0381b903 avoid duplicate: use openUrlInBrowser instead of openWebsite 2020-05-31 12:17:54 +02:00
TobiGr
049c8f70cd Release version 0.19.5 (950) 2020-05-30 10:43:10 +02:00
TobiGr
353bf69550 Add changelog for 0.19.5 (950) 2020-05-30 10:42:39 +02:00
Tobias Groza
cdb989ede3 Merge pull request #3679 from wb9688/fix-android-10
Enable requestLegacyExternalStorage
2020-05-30 10:32:46 +02:00
Tobias Groza
74079e4238 Merge pull request #3680 from wb9688/fix-kiosks
Open the correct kiosk
2020-05-30 10:28:24 +02:00
wb9688
c89746214c Open the correct kiosk 2020-05-30 08:14:54 +02:00
wb9688
1d97db3ef9 Enable requestLegacyExternalStorage 2020-05-30 08:05:40 +02:00
Tobias Groza
b2a5ff5f9d Merge pull request #3669 from TeamNewPipe/release_0.19.4
Release 0.19.4
2020-05-29 19:13:09 +02:00
Stypox
f47ef2b5ea Add 0.19.4 (940) fastlane changelog 2020-05-29 18:55:01 +02:00
Stypox
bd7ec3b692 Bump to 0.19.4 (940) 2020-05-29 18:55:01 +02:00
TobiGr
52895e7b6b Increase JVM memory to fix release build 2020-05-29 18:55:01 +02:00
Stypox
a6a82c6477 Regression: fix icon size in main player 2020-05-29 15:32:44 +02:00
Tobias Groza
af66ed94b2 Merge pull request #3662 from B0pol/localisation-fixes
Localisation fixes (Fix crashes, lint)
2020-05-29 08:02:19 +02:00
Hosted Weblate
e43fdf5ef9 Merge branch 'origin/dev' into Weblate. 2020-05-29 07:29:53 +02:00
Ishwor Ghimire
3984fc075f Translated using Weblate (Nepali)
Currently translated at 99.8% (576 of 577 strings)
2020-05-29 07:29:53 +02:00
Allan Nordhøy
ee2a159374 Translated using Weblate (Norwegian Bokmål)
Currently translated at 89.0% (514 of 577 strings)
2020-05-29 07:29:52 +02:00
Eric
57c9b29ba3 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (577 of 577 strings)
2020-05-29 07:29:52 +02:00
Samuel Carvalho de Araújo
927ea72337 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (577 of 577 strings)
2020-05-29 07:29:51 +02:00
Mostafa Ahangarha
123bdbd13b Translated using Weblate (Persian)
Currently translated at 96.1% (555 of 577 strings)
2020-05-29 07:29:51 +02:00
WaldiS
0baa5a2f04 Translated using Weblate (Polish)
Currently translated at 100.0% (577 of 577 strings)
2020-05-29 07:29:46 +02:00
Emin Tufan Çetin
7d98a70028 Translated using Weblate (Turkish)
Currently translated at 100.0% (577 of 577 strings)
2020-05-29 07:29:45 +02:00
Rex_sa
73b72ab01c Translated using Weblate (Arabic)
Currently translated at 99.8% (576 of 577 strings)
2020-05-29 07:29:45 +02:00
B0pol
e8cf71f41c Translated using Weblate (Esperanto)
Currently translated at 97.5% (563 of 577 strings)
2020-05-29 07:29:44 +02:00
ssantos
5f2d2a64d2 Translated using Weblate (Portuguese)
Currently translated at 100.0% (577 of 577 strings)
2020-05-29 07:29:44 +02:00
AioiLight
27bf3901de Translated using Weblate (Japanese)
Currently translated at 100.0% (577 of 577 strings)
2020-05-29 07:29:44 +02:00
TotalCaesar659
16d4fa03a5 Translated using Weblate (English)
Currently translated at 99.8% (576 of 577 strings)
2020-05-29 07:29:43 +02:00
Terry Louwers
bef579ec26 Translated using Weblate (Dutch)
Currently translated at 100.0% (577 of 577 strings)
2020-05-29 07:29:43 +02:00
Edoardo Regni
0cff10e02e Translated using Weblate (Dutch)
Currently translated at 100.0% (577 of 577 strings)
2020-05-29 07:29:41 +02:00
Terry Louwers
4c6f7238dd Translated using Weblate (Dutch)
Currently translated at 100.0% (577 of 577 strings)
2020-05-29 07:29:41 +02:00
bopol
583f1476d6 oops 2020-05-28 23:32:44 +02:00
bopol
b42bef32fd remove totally untranslated languages 2020-05-28 23:21:28 +02:00
bopol
8bb85ccf19 other translation linting stuff 2020-05-28 23:14:57 +02:00
bopol
3d88c2a5fa fix crash in hindi and pa languages 2020-05-28 22:59:14 +02:00
bopol
e350acaf08 remove unused plural string «comments»
on top of being unused, there were MANY problems for some languages: %s missing, only «one» quantity is translated…
2020-05-28 22:49:41 +02:00
bopol
172f70bef9 fix crash in polish, lint: remove translated translatable=false string 2020-05-28 22:22:29 +02:00
Tobias Groza
9d25c0bf8a Merge pull request #3509 from wb9688/upgrade-dependencies
Upgrade some dependencies
2020-05-28 22:07:04 +02:00
TobiGr
75b377aab3 Updatethe extractor version 2020-05-28 21:56:54 +02:00
TobiGr
3706f30b44 Merge remote-tracking branch 'Weblate/dev' into dev 2020-05-28 21:46:45 +02:00
wb9688
a9697a61ad Fix viewing licenses 2020-05-28 11:39:17 +02:00
wb9688
e16a2d7cb6 Upgrade jsoup 2020-05-28 11:39:17 +02:00
Arnis Jaundzeikars
f106e2945b Added translation using Weblate (Latvian) 2020-05-27 18:06:40 +02:00
pjammo
1ad7deddb1 Translated using Weblate (Italian)
Currently translated at 99.6% (575 of 577 strings)
2020-05-26 09:52:46 +02:00
wb9688
7b81e98581 Upgrade ACRA 2020-05-25 11:03:07 +02:00
wb9688
0cae58ce8e Upgrade LeakCanary 2020-05-25 11:03:07 +02:00
wb9688
7231150115 Upgrade some dependencies 2020-05-22 15:40:28 +02:00
Hosted Weblate
071986a4c9 Merge branch 'origin/dev' into Weblate. 2020-05-22 11:41:39 +02:00
Rahul Bali
39e7d43f10 Translated using Weblate (Hindi)
Currently translated at 82.4% (476 of 577 strings)
2020-05-22 11:41:37 +02:00
Yaron Shahrabani
aa1b17ae66 Translated using Weblate (Hebrew)
Currently translated at 100.0% (577 of 577 strings)
2020-05-22 11:41:37 +02:00
Anonymous
92bae88355 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 29.8% (172 of 577 strings)
2020-05-22 11:41:36 +02:00
Jeff Huang
067eaf363e Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (577 of 577 strings)
2020-05-22 11:41:36 +02:00
Samuel Carvalho de Araújo
00efc266d9 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (577 of 577 strings)
2020-05-22 11:41:36 +02:00
Oğuz Ersen
0b014185e3 Translated using Weblate (Turkish)
Currently translated at 100.0% (577 of 577 strings)
2020-05-22 11:41:36 +02:00
zmni
3eee7378de Translated using Weblate (Indonesian)
Currently translated at 100.0% (577 of 577 strings)
2020-05-22 11:41:36 +02:00
zeritti
c31428f6bc Translated using Weblate (Czech)
Currently translated at 100.0% (577 of 577 strings)
2020-05-22 11:41:35 +02:00
B0pol
163e561cf9 Translated using Weblate (French)
Currently translated at 100.0% (577 of 577 strings)
2020-05-22 11:41:35 +02:00
JoC
a32ded2829 Translated using Weblate (Spanish)
Currently translated at 100.0% (577 of 577 strings)
2020-05-22 11:41:35 +02:00
nautilusx
a5b7517fbd Translated using Weblate (German)
Currently translated at 99.8% (576 of 577 strings)
2020-05-22 11:41:34 +02:00
Tobias Groza
176d57b35a Merge pull request #3271 from Stypox/icons
Use vector drawables instead of PNGs for material icons
2020-05-21 19:32:43 +02:00
Stypox
927a1d58e2 Use drop down/up instead of expand icons in drawer
As per the material guidelines
2020-05-21 15:39:36 +02:00
Stypox
bbd0df08d3 Add shadow behind play icon in video detail fragment 2020-05-21 15:39:36 +02:00
Stypox
9e57195e14 Fix checkstyle issues
Also replace all tabs with 4 spaces
2020-05-21 15:39:36 +02:00
Stypox
05ab54c30d Fix invisible fullscreen button in popup player on API 19 2020-05-21 15:39:36 +02:00
Stypox
e3e2028153 Use AppCompatResources instead of ContextCompat 2020-05-21 15:39:36 +02:00
Stypox
883bcc735d Fix pause used instead of play in paused popup player when seeking
Also use `setBackgroundResource` to automatically obtain PNG drawables (from exoplayer)
2020-05-21 15:39:36 +02:00
Stypox
158727e2f2 Replace hardcoded white drawable with themed one 2020-05-21 15:39:36 +02:00
Stypox
899f69d120 Fix additional empty title on tab selection fragments in API 19 2020-05-21 15:39:36 +02:00
Stypox
b575046c05 Fix choice dialogs on API 19 by manually getting drawable 2020-05-21 15:39:36 +02:00
Stypox
b5c60d2be2 Update AndroidX to fix icon crashes in preferences on API 19
Also remove legacy libraries
Use `androidx.preference:preference` instead of `androidx.legacy:legacy-preference-v14` and remove `androidx.legacy:legacy-support-v4
2020-05-21 15:39:36 +02:00
Stypox
631dfee763 Readd ic_close and ic_replay PNGs: needed in notifications
The other icons used in notifications are taken from exoplayer's ones: `@drawable/exo_controls_*`
2020-05-21 15:39:36 +02:00
Stypox
d7f610113e Fix background player queue crashing on opening 2020-05-21 15:39:36 +02:00
Stypox
e0e4f6db2b Fix MainFragment tab icons did not follow theme color 2020-05-21 15:39:36 +02:00
Stypox
c27a26c0aa Rename ic_hot in ic_kiosk_hot and improve getKioskIcon() 2020-05-21 15:39:36 +02:00
Stypox
3dcd2468a2 Use app:srcCompat and derivatives intead of android: ones
To fix crashes on API 19
2020-05-21 15:39:36 +02:00
Stypox
ea43b28f74 Use vector drawables instead of PNGs for material icons
For all manually-created images PNG have been kept.
- rename all icon attrs to have a `ic_` prefix
- always use `_24dp` icons, because there is no real difference, since they are vector drawables
- always use the original name found on material.io for icon drawables, as to not create confusion and possibly duplicates. Icon names can still be different from real drawable names, though I have made some of them compliant to this or maybe more meaningul.
- remove duplicate `getIconByAttr()` in ThemeHelper (use `resolveResourceIdFromAttr()`
- use standard icons for `expand_more` and `expand_less` instead of triangles
- use `play_button_outline` instead of custom PNG as play button in VideoDetailFragment (questionable, as there is no shadow anymore)
2020-05-21 15:39:35 +02:00
bopol
a3e2a085b6 Merge pull request #3501 from B0pol/openInBrowser
Open in browser button now really opens in browser
2020-05-21 09:24:57 +02:00
Anonymous
635d51b60d Translated using Weblate (Hindi)
Currently translated at 82.4% (476 of 577 strings)
2020-05-20 12:31:02 +02:00
Rahul Bali
95eb1c0d95 Translated using Weblate (Hindi)
Currently translated at 82.4% (476 of 577 strings)
2020-05-20 12:31:01 +02:00
Rahul Bali
8aca43a7e6 Translated using Weblate (Hindi)
Currently translated at 81.9% (473 of 577 strings)
2020-05-20 12:25:58 +02:00
Anonymous
f6afe59788 Translated using Weblate (Hindi)
Currently translated at 81.9% (473 of 577 strings)
2020-05-20 12:25:57 +02:00
bopol
8e13161f64 fix checkstyle 2020-05-19 21:57:46 +02:00
bopol
97437b8af3 apply @stypox suggestions 2020-05-19 21:52:30 +02:00
bopol
9a938093e2 Open in browser button now really opens in browser 2020-05-19 21:51:47 +02:00
Hosted Weblate
3edcc9f9fd Merge branch 'origin/dev' into Weblate. 2020-05-19 17:02:04 +02:00
Oymate
55db408720 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 29.6% (171 of 577 strings)
2020-05-19 17:02:04 +02:00
Samuel Carvalho de Araújo
caef874814 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (577 of 577 strings)
2020-05-19 17:02:04 +02:00
Anonymous
1622639eca Translated using Weblate (Bengali (Bangladesh))
Currently translated at 29.6% (171 of 577 strings)
2020-05-19 17:02:00 +02:00
Oymate
4df89f4217 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 29.6% (171 of 577 strings)
2020-05-19 17:02:00 +02:00
Tobias Groza
079b98ed3f Merge pull request #3618 from Stypox/long-press-strings
Improve long-press menu strings
2020-05-19 08:38:00 +02:00
Stypox
a0526d2c9c Improve long-press menu strings 2020-05-19 08:24:04 +02:00
Stypox
169b1cbd32 Merge pull request #3613 from wb9688/fix-download-dialog-freeze
Fix download dialog freeze
2020-05-18 14:11:17 +02:00
wb9688
8968081e77 Remove not needed Checkstyle stuff 2020-05-18 13:40:01 +02:00
wb9688
93ba7510e1 Fix ListHelper ANR 2020-05-18 13:40:01 +02:00
Hosted Weblate
579bb743bb Merge branch 'origin/dev' into Weblate. 2020-05-18 13:17:56 +02:00
Rai Tsa
9e5e9ea612 Translated using Weblate (Finnish)
Currently translated at 58.0% (335 of 577 strings)
2020-05-18 13:17:54 +02:00
Thien Bui
2241a13cba Translated using Weblate (Vietnamese)
Currently translated at 99.8% (576 of 577 strings)
2020-05-18 13:17:54 +02:00
Isak Holmström
9c1fb0cb92 Translated using Weblate (Swedish)
Currently translated at 89.4% (516 of 577 strings)
2020-05-18 13:17:52 +02:00
Anonymous
4904514257 Translated using Weblate (Swedish)
Currently translated at 89.4% (516 of 577 strings)
2020-05-18 13:17:52 +02:00
Samuel Carvalho de Araújo
6d829c26a1 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (577 of 577 strings)
2020-05-18 13:17:52 +02:00
Stypox
c05467fb92 Merge pull request #3513 from Stypox/exoplayer
Update to ExoPlayer 2.11.4
2020-05-17 22:02:19 +02:00
Anonymous
d47f7f3348 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (577 of 577 strings)
2020-05-17 00:52:28 +02:00
Samuel Carvalho de Araújo
5931a84651 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (577 of 577 strings)
2020-05-16 04:41:32 +02:00
zeritti
5771783d11 Translated using Weblate (Czech)
Currently translated at 100.0% (577 of 577 strings)
2020-05-16 04:41:32 +02:00
Hosted Weblate
aae07a60bd Merge branch 'origin/dev' into Weblate. 2020-05-14 11:38:10 +02:00
MohammedSR Vevo
462d418ee0 Translated using Weblate (Kurdish)
Currently translated at 100.0% (577 of 577 strings)
2020-05-14 11:38:08 +02:00
Isak Holmström
ce63c2e1db Translated using Weblate (Swedish)
Currently translated at 89.4% (516 of 577 strings)
2020-05-14 11:38:07 +02:00
Isak Holmström
52baf8cbe5 Translated using Weblate (Swedish)
Currently translated at 89.4% (516 of 577 strings)
2020-05-14 11:38:07 +02:00
ssantos
1779b9ee1a Translated using Weblate (Portuguese)
Currently translated at 100.0% (577 of 577 strings)
2020-05-14 11:38:06 +02:00
B0pol
eae169236c Merge pull request #3581 from B0pol/gitignore
Add vscode / eclipse files to gitignore
2020-05-13 18:11:51 +00:00
bopol
ce0efba0d2 gitignore update 2020-05-13 19:54:02 +02:00
Tobias Groza
87c7ac3970 Merge pull request #3580 from wb9688/fix-email
Fix sending e-mail from crash reporter
2020-05-13 17:10:22 +02:00
bopol
0f8d196a52 Add vscode / eclipse files to gitignore 2020-05-13 11:07:02 +02:00
Stypox
6dc7dab154 Merge pull request #3565 from B0pol/retry-button-color
Change retry & subscribe buttons background color based on service color
2020-05-13 11:01:40 +02:00
wb9688
dd4cb23005 Fix sending e-mail from crash reporter 2020-05-13 09:42:08 +02:00
ButterflyOfFire
0589017f8c Translated using Weblate (Arabic)
Currently translated at 100.0% (577 of 577 strings)
2020-05-12 15:41:32 +02:00
bopol
55027a9b2b bump extractor version 2020-05-11 21:41:56 +02:00
bopol
0a984ca8c8 remove duplicate host in manifest 2020-05-11 21:41:56 +02:00
bopol
929d13bfea add support for some peertube instances
The one used for tests, popular instances and user wanted (e.g. la quadrature du net, video.lqdn.fr, or @TheAssassin instance, media-assassinate-you.net)
2020-05-11 21:41:56 +02:00
bopol
375e18bec8 subscribe button now match service's main color 2020-05-11 19:29:34 +02:00
WaldiS
b9de74f183 Translated using Weblate (Polish)
Currently translated at 100.0% (577 of 577 strings)
2020-05-11 08:54:43 +02:00
Oğuz Ersen
08ca69507f Translated using Weblate (Turkish)
Currently translated at 100.0% (577 of 577 strings)
2020-05-11 08:54:42 +02:00
JoC
65ca982342 Translated using Weblate (Spanish)
Currently translated at 100.0% (577 of 577 strings)
2020-05-11 08:54:42 +02:00
Igor Nedoboy
658281a92c Translated using Weblate (Russian)
Currently translated at 100.0% (577 of 577 strings)
2020-05-10 22:59:48 +02:00
Igor Nedoboy
a959f61367 Translated using Weblate (Russian)
Currently translated at 100.0% (577 of 577 strings)
2020-05-10 22:50:30 +02:00
Yaron Shahrabani
8e61f744ec Translated using Weblate (Hebrew)
Currently translated at 100.0% (577 of 577 strings)
2020-05-10 14:34:56 +02:00
Jeff Huang
73d3e52e29 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (577 of 577 strings)
2020-05-10 14:34:55 +02:00
Xiang Xu
49a134845c Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (577 of 577 strings)
2020-05-10 14:34:55 +02:00
Samuel Carvalho de Araújo
29807f3d39 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (577 of 577 strings)
2020-05-10 14:34:55 +02:00
WaldiS
29b79b7725 Translated using Weblate (Polish)
Currently translated at 99.8% (576 of 577 strings)
2020-05-10 14:34:54 +02:00
zmni
1cdb10a040 Translated using Weblate (Indonesian)
Currently translated at 100.0% (577 of 577 strings)
2020-05-10 14:34:54 +02:00
AioiLight
5f7851df72 Translated using Weblate (Japanese)
Currently translated at 100.0% (577 of 577 strings)
2020-05-10 14:34:54 +02:00
winqooq
3d9bc05d7a Translated using Weblate (Russian)
Currently translated at 99.4% (574 of 577 strings)
2020-05-10 14:34:53 +02:00
B0pol
c127428c59 Translated using Weblate (French)
Currently translated at 100.0% (577 of 577 strings)
2020-05-10 14:34:53 +02:00
nautilusx
7966d8403a Translated using Weblate (German)
Currently translated at 100.0% (577 of 577 strings)
2020-05-10 14:34:53 +02:00
bopol
80cc8a8e02 color retry button based on service color 2020-05-10 10:54:12 +02:00
Igor Nedoboy
ee4e205fef Translated using Weblate (Russian)
Currently translated at 99.4% (574 of 577 strings)
2020-05-10 02:07:05 +02:00
Hosted Weblate
ea443dc80c Merge branch 'origin/dev' into Weblate. 2020-05-09 16:13:01 +02:00
Senthil Kumar G
283645513d Translated using Weblate (Tamil)
Currently translated at 35.8% (206 of 574 strings)
2020-05-09 16:12:57 +02:00
Anonymous
81b99382b8 Translated using Weblate (Italian)
Currently translated at 100.0% (574 of 574 strings)
2020-05-09 16:12:57 +02:00
random r
ab74465e6c Translated using Weblate (Italian)
Currently translated at 100.0% (574 of 574 strings)
2020-05-09 16:12:57 +02:00
Tobias Groza
b3eadb557b Merge pull request #3337 from AioiLight/blocking-gesture-when-touch-from-navbar
Block the gesture when touch it from NavigationBar or StatusBar.
2020-05-09 10:43:15 +02:00
AioiLight
0abd2bcba6 Clean up code
Follow Checkstyle

Move to PlayerGestureListener from VideoPlayerImpl

Update app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java

Co-authored-by: wb9688 <46277131+wb9688@users.noreply.github.com>
2020-05-09 10:11:46 +02:00
Tobias Groza
9cf76a918e Merge pull request #3430 from Royosef/DisplayParentChannelDetails
Display parent channel details
2020-05-08 23:29:28 +02:00
wb9688
ae437b1510 Bump NewPipeExtractor 2020-05-08 18:07:52 +02:00
wb9688
1096ec1c09 Adjust sub-channel thumbnail size 2020-05-08 15:51:21 +02:00
wb9688
235394d96c Don't show sub-channel thumbnail by default 2020-05-08 15:51:21 +02:00
Anonymous
d25e1d801c Translated using Weblate (Italian)
Currently translated at 99.6% (572 of 574 strings)
2020-05-08 12:35:52 +02:00
random r
2dca5ab966 Translated using Weblate (Italian)
Currently translated at 99.6% (572 of 574 strings)
2020-05-08 12:35:52 +02:00
caltaojihun
89ab57b1c1 Translated using Weblate (Vietnamese)
Currently translated at 94.4% (542 of 574 strings)
2020-05-08 09:56:46 +02:00
caltaojihun
dc66e6a4bf Translated using Weblate (Vietnamese)
Currently translated at 79.7% (458 of 574 strings)
2020-05-08 06:49:55 +02:00
Hosted Weblate
5c2f2fd882 Merge branch 'origin/dev' into Weblate. 2020-05-07 23:24:06 +02:00
MohammedSR Vevo
5c3ddefbf9 Translated using Weblate (Kurdish)
Currently translated at 100.0% (574 of 574 strings)
2020-05-07 23:24:04 +02:00
thami simo
a8d3f45ea1 Translated using Weblate (Arabic)
Currently translated at 100.0% (574 of 574 strings)
2020-05-07 23:24:03 +02:00
ssantos
cc2c41ddc8 Translated using Weblate (Portuguese)
Currently translated at 100.0% (574 of 574 strings)
2020-05-07 23:24:03 +02:00
wb9688
b990f30a09 Merge pull request #3545 from Stypox/kore
Fix Kodi button showing up with unsupported services
2020-05-07 21:44:09 +02:00
Stypox
5c711322d4 In player hide kodi button if service unsupported 2020-05-07 21:11:34 +02:00
Roy Yosef
b7d4a4f604 Navigate to parent(uploader) channel from the uploader section on long click 2020-05-07 20:40:17 +02:00
Roy Yosef
cc8874b687 Fix PR review
Make all of the uploader section on stream page navigate to the channel page
Extract hard coded strings
Remove redundant spaces
Fix open streams from a channel
Rename "ParentChannel" to "SubChannel"
Config royosef:NewPipeExtractor in app/build.gradle
2020-05-07 20:40:17 +02:00
Roy Yosef
2d0bc05488 Add sub-channel details to channel fragment 2020-05-07 20:39:32 +02:00
Roy Yosef
1429774487 Add sub-channel details to video detail fragment 2020-05-07 20:39:32 +02:00
wb9688
2060312dc1 Merge pull request #3466 from B0pol/soundCloudComments
adapt CommentsInfoItemExtractorRefactoring
2020-05-07 16:06:15 +02:00
bopol
8b6728480f bump extractor version 2020-05-07 15:46:41 +02:00
Anxhelo Lushka
cecafdee29 Translated using Weblate (Albanian)
Currently translated at 100.0% (574 of 574 strings)
2020-05-07 13:58:28 +02:00
Senthil Kumar G
05f2af25af Translated using Weblate (Tamil)
Currently translated at 35.7% (205 of 574 strings)
2020-05-07 13:58:27 +02:00
Yaron Shahrabani
e3d826f6c4 Translated using Weblate (Hebrew)
Currently translated at 100.0% (574 of 574 strings)
2020-05-07 13:58:27 +02:00
Jeff Huang
02430bed90 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (574 of 574 strings)
2020-05-07 13:58:27 +02:00
Samuel Carvalho de Araújo
3f7005ed9a Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (574 of 574 strings)
2020-05-07 13:58:26 +02:00
WaldiS
586ee75833 Translated using Weblate (Polish)
Currently translated at 99.8% (573 of 574 strings)
2020-05-07 13:58:26 +02:00
Emin Tufan Çetin
1d903f11a8 Translated using Weblate (Turkish)
Currently translated at 100.0% (574 of 574 strings)
2020-05-07 13:58:25 +02:00
Muhammad Mauli Mubassari
578159b95c Translated using Weblate (Indonesian)
Currently translated at 100.0% (574 of 574 strings)
2020-05-07 13:58:25 +02:00
zeritti
5c95587284 Translated using Weblate (Czech)
Currently translated at 100.0% (574 of 574 strings)
2020-05-07 13:58:25 +02:00
Marian Hanzel
f7e9227ad2 Translated using Weblate (Slovak)
Currently translated at 94.0% (540 of 574 strings)
2020-05-07 13:58:24 +02:00
AioiLight
c11a4d6867 Translated using Weblate (Japanese)
Currently translated at 100.0% (574 of 574 strings)
2020-05-07 13:58:23 +02:00
Anonymous
6c2b0448a4 Translated using Weblate (Dutch)
Currently translated at 100.0% (574 of 574 strings)
2020-05-07 13:58:23 +02:00
Terry Louwers
bd0eb8cccf Translated using Weblate (Dutch)
Currently translated at 100.0% (574 of 574 strings)
2020-05-07 13:58:23 +02:00
nautilusx
09bb043952 Translated using Weblate (German)
Currently translated at 100.0% (574 of 574 strings)
2020-05-07 13:58:22 +02:00
Stypox
9ca6cfd637 Fix Kodi button showing up in unsupported services 2020-05-06 20:55:53 +02:00
Igor Nedoboy
3869a66fcc Translated using Weblate (Russian)
Currently translated at 100.0% (574 of 574 strings)
2020-05-06 13:33:14 +02:00
bopol
d1c94f5120 adapt CommentsInfoItemExtractorRefactoring 2020-05-05 15:03:59 +02:00
Igor Nedoboy
c55e9941ec Translated using Weblate (Russian)
Currently translated at 100.0% (574 of 574 strings)
2020-05-05 08:21:44 +02:00
Hosted Weblate
fa9a419d73 Merge branch 'origin/dev' into Weblate. 2020-05-04 17:49:25 +02:00
Software In Interlingua
ab4e0da6b4 Translated using Weblate (Interlingua)
Currently translated at 39.7% (228 of 573 strings)
2020-05-04 17:49:22 +02:00
Igor Nedoboy
073572681e Translated using Weblate (Russian)
Currently translated at 100.0% (573 of 573 strings)
2020-05-04 17:49:21 +02:00
wb9688
b630f269c4 Merge pull request #3511 from wb9688/ktlint
Ktlint
2020-05-04 15:13:07 +02:00
wb9688
40b1cd82b1 Merge pull request #2727 from vnagel/ageRestrictedContent
Restricted mode setting for youtube
2020-05-04 15:05:11 +02:00
Tobias Groza
abcbdef63b Merge pull request #3502 from wb9688/allow-translation
Allow time ago debug setting translation
2020-05-03 23:25:54 +02:00
Tobias Groza
dc8d1b0993 Merge pull request #3478 from TeamNewPipe/release_0.19.3
Release 0.19.3
2020-05-03 21:22:44 +02:00
Hosted Weblate
56d53d8805 Merge branch 'origin/dev' into Weblate. 2020-05-03 15:40:40 +02:00
Oymate
7433fe049c Translated using Weblate (Bengali (Bangladesh))
Currently translated at 29.6% (170 of 573 strings)
2020-05-03 15:40:40 +02:00
postsorino
bb2be49d3b Translated using Weblate (Greek)
Currently translated at 85.1% (488 of 573 strings)
2020-05-03 15:40:40 +02:00
Bruno Guerreiro
cd1b578e84 Translated using Weblate (Portuguese)
Currently translated at 100.0% (573 of 573 strings)
2020-05-03 15:40:40 +02:00
winqooq
c3df9b4105 Translated using Weblate (Russian)
Currently translated at 99.4% (570 of 573 strings)
2020-05-03 15:40:37 +02:00
TobiGr
243f3e21ec Release 0.19.3 (930) 2020-05-03 14:13:21 +02:00
TobiGr
375291380c Add changelog 2020-05-03 14:13:21 +02:00
TobiGr
d221194454 Merge remote-tracking branch 'Weblate/dev' into dev 2020-05-03 14:12:59 +02:00
TobiGr
6d94a54387 Update extractor to fix NPE in YouTube Muic search 2020-05-03 14:12:22 +02:00
Anonymous
910bde88c7 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 29.6% (170 of 573 strings)
2020-05-02 16:35:50 +02:00
Oymate
72916544ce Translated using Weblate (Bengali (Bangladesh))
Currently translated at 29.6% (170 of 573 strings)
2020-05-02 16:35:50 +02:00
Anonymous
a01975dfce Translated using Weblate (Bengali (Bangladesh))
Currently translated at 29.4% (169 of 573 strings)
2020-05-02 16:35:29 +02:00
Oymate
10708801ae Translated using Weblate (Bengali (Bangladesh))
Currently translated at 29.4% (169 of 573 strings)
2020-05-02 16:35:28 +02:00
Anonymous
ac096fb4e7 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 29.3% (168 of 573 strings)
2020-05-02 16:33:50 +02:00
Oymate
620c1397ba Translated using Weblate (Bengali (Bangladesh))
Currently translated at 29.3% (168 of 573 strings)
2020-05-02 16:33:50 +02:00
Anonymous
5b2f2f34f6 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 28.7% (165 of 573 strings)
2020-05-02 16:33:04 +02:00
Hosted Weblate
ae3861a29d Merge branch 'origin/dev' into Weblate. 2020-05-02 16:27:27 +02:00
Oymate
93e2145254 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 28.6% (164 of 573 strings)
2020-05-02 16:27:27 +02:00
pjammo
2b6290d275 Translated using Weblate (Italian)
Currently translated at 99.6% (571 of 573 strings)
2020-05-02 16:27:26 +02:00
Anonymous
f81af7acb3 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 28.6% (164 of 573 strings)
2020-05-02 16:27:23 +02:00
Oymate
f0170247a4 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 28.6% (164 of 573 strings)
2020-05-02 16:27:23 +02:00
TobiGr
3430874d11 Merge remote-tracking branch 'Weblate/dev' into dev 2020-05-02 16:21:56 +02:00
Tobias Groza
cb5e7532ab Merge pull request #3480 from wb9688/update-nanojson
Use our nanojson fork
2020-05-02 16:17:29 +02:00
Anonymous
5b928d679c Translated using Weblate (Bengali (Bangladesh))
Currently translated at 28.2% (162 of 573 strings)
2020-05-02 16:17:14 +02:00
Oymate
697b9694e5 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 28.2% (162 of 573 strings)
2020-05-02 16:17:13 +02:00
wb9688
81c3e7e7f6 Use our nanojson fork 2020-05-02 16:03:15 +02:00
NITHIN
0517bba8ca Translated using Weblate (Malayalam)
Currently translated at 100.0% (573 of 573 strings)
2020-05-02 12:31:09 +02:00
MohammedSR Vevo
83c7244fe6 Translated using Weblate (Kurdish)
Currently translated at 100.0% (573 of 573 strings)
2020-05-02 12:31:09 +02:00
ssantos
68fd129042 Translated using Weblate (Portuguese)
Currently translated at 100.0% (573 of 573 strings)
2020-05-02 12:31:08 +02:00
pjammo
b697e8a616 Translated using Weblate (Italian)
Currently translated at 100.0% (573 of 573 strings)
2020-05-02 12:31:08 +02:00
B0pol
2b281fbde9 Translated using Weblate (French)
Currently translated at 100.0% (573 of 573 strings)
2020-05-02 12:31:07 +02:00
JoC
de8c4018c4 Translated using Weblate (Spanish)
Currently translated at 100.0% (573 of 573 strings)
2020-05-02 12:31:07 +02:00
Jeannette
9e8af96bbf Translated using Weblate (German)
Currently translated at 100.0% (573 of 573 strings)
2020-05-02 12:31:07 +02:00
wb9688
b0415a5289 Auto-format using Ktlint 2020-05-01 20:13:21 +02:00
wb9688
ff7344438b Optimize imports 2020-05-01 20:13:01 +02:00
wb9688
f5f8e5d279 Add Ktlint 2020-05-01 20:09:52 +02:00
Stypox
b4ddc8f96c Update to ExoPlayer 2.11.4 2020-05-01 15:03:54 +02:00
Theophine Savio Theodore
e556c8ee15 Translated using Weblate (Malayalam)
Currently translated at 100.0% (573 of 573 strings)
2020-04-30 02:16:11 +02:00
Anxhelo Lushka
2f9a0b3376 Translated using Weblate (Albanian)
Currently translated at 100.0% (573 of 573 strings)
2020-04-30 02:16:06 +02:00
Isak Holmström
828f07b401 Translated using Weblate (Swedish)
Currently translated at 85.8% (492 of 573 strings)
2020-04-30 02:16:06 +02:00
Isak Holmström
36921b3426 Translated using Weblate (Swedish)
Currently translated at 85.8% (492 of 573 strings)
2020-04-30 02:16:06 +02:00
Edoardo Regni
3988c6491c Translated using Weblate (Dutch)
Currently translated at 100.0% (573 of 573 strings)
2020-04-30 02:16:05 +02:00
Igor Nedoboy
2cf558ec05 Translated using Weblate (Russian)
Currently translated at 100.0% (573 of 573 strings)
2020-04-29 21:53:56 +02:00
Anonymous
6fbadbdd94 Translated using Weblate (Dutch)
Currently translated at 100.0% (573 of 573 strings)
2020-04-29 16:06:40 +02:00
Edoardo Regni
faa1d7effb Translated using Weblate (Dutch)
Currently translated at 100.0% (573 of 573 strings)
2020-04-29 16:06:40 +02:00
Anonymous
fe73a708d4 Translated using Weblate (Dutch)
Currently translated at 100.0% (573 of 573 strings)
2020-04-29 16:00:05 +02:00
Edoardo Regni
a5ca262faa Translated using Weblate (Dutch)
Currently translated at 100.0% (573 of 573 strings)
2020-04-29 16:00:05 +02:00
wb9688
8ebb1e29fa Allow time ago debug setting translation 2020-04-29 14:47:06 +02:00
Igor Nedoboy
1b44dc9522 Translated using Weblate (Russian)
Currently translated at 100.0% (573 of 573 strings)
2020-04-28 21:43:06 +02:00
Theophine Savio Theodore
a66d468dc2 Translated using Weblate (Malayalam)
Currently translated at 81.5% (467 of 573 strings)
2020-04-28 05:27:35 +02:00
Igor Nedoboy
ca8beafc2d Translated using Weblate (Russian)
Currently translated at 100.0% (573 of 573 strings)
2020-04-27 19:08:53 +02:00
Igor Nedoboy
639c589a4a Translated using Weblate (Russian)
Currently translated at 99.3% (569 of 573 strings)
2020-04-27 18:53:59 +02:00
Hosted Weblate
cd66836218 Merge branch 'origin/dev' into Weblate. 2020-04-27 16:26:09 +02:00
Rex_sa
98662baa26 Translated using Weblate (Arabic)
Currently translated at 100.0% (573 of 573 strings)
2020-04-27 16:26:09 +02:00
Theophine Savio Theodore
004e5794e3 Added translation using Weblate (Malayalam) 2020-04-27 16:26:05 +02:00
Tobias Groza
f4f4f062cf Merge pull request #3495 from Stypox/fix-rotation
Fix rotation
2020-04-27 09:18:08 +02:00
Stypox
d8d9c7e171 Fix crashes on rotation by checking for null 2020-04-27 09:01:24 +02:00
Hosted Weblate
ceff82732e Merge branch 'origin/dev' into Weblate. 2020-04-26 20:43:27 +02:00
Anxhelo Lushka
d94b1708a9 Translated using Weblate (Albanian)
Currently translated at 100.0% (573 of 573 strings)
2020-04-26 20:43:27 +02:00
MohammedSR Vevo
46e1f16012 Translated using Weblate (Kurdish)
Currently translated at 99.8% (572 of 573 strings)
2020-04-26 20:43:27 +02:00
Milo Ivir
bbd014d409 Translated using Weblate (Croatian)
Currently translated at 88.1% (505 of 573 strings)
2020-04-26 20:43:26 +02:00
Jeff Huang
d553ee7c60 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (573 of 573 strings)
2020-04-26 20:43:26 +02:00
WaldiS
2df6ab240d Translated using Weblate (Polish)
Currently translated at 100.0% (573 of 573 strings)
2020-04-26 20:43:26 +02:00
Emin Tufan Çetin
8a2b9dfd6a Translated using Weblate (Turkish)
Currently translated at 100.0% (573 of 573 strings)
2020-04-26 20:43:26 +02:00
Иван
1f7892d7a9 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (573 of 573 strings)
2020-04-26 20:43:25 +02:00
vkhomenk
d11c537bea Translated using Weblate (Ukrainian)
Currently translated at 100.0% (573 of 573 strings)
2020-04-26 20:43:25 +02:00
winqooq
2d4d237009 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (573 of 573 strings)
2020-04-26 20:43:25 +02:00
zeritti
daeee6b616 Translated using Weblate (Czech)
Currently translated at 100.0% (573 of 573 strings)
2020-04-26 20:43:24 +02:00
StarFang208
eacb0b13b2 Translated using Weblate (Italian)
Currently translated at 100.0% (573 of 573 strings)
2020-04-26 20:43:23 +02:00
Igor Nedoboy
dc5748059a Translated using Weblate (Russian)
Currently translated at 100.0% (573 of 573 strings)
2020-04-26 20:43:23 +02:00
JoC
96d75f4bcb Translated using Weblate (Spanish)
Currently translated at 100.0% (573 of 573 strings)
2020-04-26 20:43:23 +02:00
winqooq
19bfdf3f9f Translated using Weblate (Russian)
Currently translated at 100.0% (573 of 573 strings)
2020-04-26 20:43:20 +02:00
Tobias Groza
4ea273b297 Merge pull request #3483 from B0pol/tv
Better detection of TV devices
2020-04-26 12:55:13 +02:00
Vincent Nagel
72c9845174 removed unnecessary method call 2020-04-25 21:39:53 -05:00
bopol
77597b329e store isTv value to prevent calculating it again and again 2020-04-26 00:36:45 +02:00
bopol
f62f00b4ad Fix crash on Android 4.4 and surely other sdk versions 2020-04-25 23:38:34 +02:00
TheLastGimbus
1975973ff2 Update progress bar on fast forward/rewind 2020-04-25 15:46:56 +02:00
bopol
00262b4a49 Better detection of TV devices
Some devices were not detected as TV even though they are
2020-04-25 12:04:44 +02:00
Hosted Weblate
de6cabe408 Merge branch 'origin/dev' into Weblate. 2020-04-25 02:11:39 +02:00
Mitosagi
d65552b59f Translated using Weblate (Japanese)
Currently translated at 100.0% (573 of 573 strings)
2020-04-25 02:11:37 +02:00
Florian
3755f48bce Translated using Weblate (French)
Currently translated at 100.0% (573 of 573 strings)
2020-04-25 02:11:36 +02:00
Anonymous
8fe75d2015 Translated using Weblate (French)
Currently translated at 100.0% (573 of 573 strings)
2020-04-25 02:11:36 +02:00
TobiGr
b0c0249ce6 Merge remote-tracking branch 'Weblate/dev' into dev 2020-04-24 18:27:25 +02:00
Lucas Araujo
17685f3d86 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (573 of 573 strings)
2020-04-24 17:04:09 +02:00
Anonymous
30f1c71569 Translated using Weblate (Indonesian)
Currently translated at 99.8% (572 of 573 strings)
2020-04-24 17:04:09 +02:00
zmni
137afba1b6 Translated using Weblate (Indonesian)
Currently translated at 99.8% (572 of 573 strings)
2020-04-24 17:04:09 +02:00
AioiLight
b27de5cac1 Translated using Weblate (Japanese)
Currently translated at 100.0% (573 of 573 strings)
2020-04-24 17:04:08 +02:00
nautilusx
8d43ae9805 Translated using Weblate (German)
Currently translated at 100.0% (573 of 573 strings)
2020-04-24 17:04:08 +02:00
Yaron Shahrabani
3cebb028f4 Translated using Weblate (Hebrew)
Currently translated at 100.0% (573 of 573 strings)
2020-04-24 11:39:27 +02:00
Hosted Weblate
28ab9d3515 Merge branch 'origin/dev' into Weblate. 2020-04-24 11:19:02 +02:00
Mladen Pejaković
f7739309e8 Translated using Weblate (Serbian)
Currently translated at 42.1% (240 of 569 strings)
2020-04-24 11:19:00 +02:00
Stypox
2db0d63c97 Merge pull request #3065 from GradyClark/dev
Added the ability to remove all watched videos from a local playlist
2020-04-23 23:52:28 +02:00
Stypox
437b86d1a7 Use centralized CompositeDisposable instead of custom Disposable
Also do not show any dialog if the user is aready removing watched videos in a local playlist
2020-04-23 23:35:00 +02:00
TobiGr
5ba1df52e0 Add Achinese (ACE) to the language selector 2020-04-23 23:24:52 +02:00
TobiGr
04ab753b26 Merge pull request Android TV support #2806
Closes #2806
2020-04-23 22:33:20 +02:00
TobiGr
bc4a598a55 Merge remote-tracking branch 'Weblate/dev' into dev 2020-04-23 21:11:50 +02:00
TobiGr
651cdec9b5 Fix button ripples in VideoDetailFragment 2020-04-22 22:35:41 +02:00
Hosted Weblate
346f9fbacd Merge branch 'origin/dev' into Weblate. 2020-04-21 22:05:03 +02:00
Anxhelo Lushka
0f493ae808 Translated using Weblate (Albanian)
Currently translated at 100.0% (569 of 569 strings)
2020-04-21 22:05:03 +02:00
Igor Nedoboy
a07f143759 Translated using Weblate (Russian)
Currently translated at 100.0% (569 of 569 strings)
2020-04-21 22:05:00 +02:00
Stypox
0ec22c7a6e Fix pause button is not focused on player control activation 2020-04-21 09:25:09 +02:00
Grady Clark
73611004a0 Code cleanup, and best practices 2020-04-21 01:57:23 -05:00
Grady Clark
776ddddc83 fixed naming and formatting issues 2020-04-21 01:03:42 -05:00
Vincent Nagel
f60cce54ea rename setting to "YouTube restricted mode" 2020-04-20 21:47:32 -05:00
Vincent Nagel
63087a4311 renamed to "restricted mode" 2020-04-20 21:46:40 -05:00
Vincent Nagel
5a193d50f6 remove duplicate line 2020-04-20 21:45:32 -05:00
Vincent Nagel
08a6e999b9 fix checkstyle errors 2020-04-20 21:45:32 -05:00
Vincent Nagel
e33cdca1ef added logging when context null in onPrefTreeClick 2020-04-20 21:45:32 -05:00
Vincent Nagel
9ede7a3c42 setupTabs() if ageRestrictedContent pref changed 2020-04-20 21:45:32 -05:00
Vincent Nagel
430d4e1ccd ageRestrictedContent cookie only sent for youtube
Now the age restricted content cookie is only sent when sending a
request to youtube. There's no need to remove the cookie when the
service changes because whether to add the cookie is determined by
looking at the url the request is being sent to.
2020-04-20 21:45:32 -05:00
Vincent Nagel
de4d6037d3 ageRestrictedContent first draft
Cookie updated whenever ageRestrictedContent setting is changed or
service is changed. Right now there is only a cookie for youtube, but
cookies for other services could be added in the future.

Problems with this approach: Even when the service is set to youtube,
the downloader doesn't only request youtube urls e.g. it also sends
reqeusts to i.ytimg.com, suggestqueries.google.com, and yt3.ggpht.com.
The ageRestrictedContent cookie is not normally sent when sending
requests to these other urls, so doing so might have unknown effects.
2020-04-20 21:45:32 -05:00
Tobias Groza
fc1fc6842b Merge pull request #3464 from wb9688/checkstyle-debug-only
Run Checkstyle only on debug builds
2020-04-20 20:22:12 +02:00
wb9688
0649b297f6 Run Checkstyle only on debug builds 2020-04-20 17:01:36 +02:00
Hosted Weblate
9a470b9d41 Merge branch 'origin/dev' into Weblate. 2020-04-20 14:46:28 +02:00
MohammedSR Vevo
47d1ab356d Translated using Weblate (Kurdish)
Currently translated at 99.8% (568 of 569 strings)
2020-04-20 14:46:27 +02:00
WaldiS
1ea5787486 Translated using Weblate (Polish)
Currently translated at 100.0% (569 of 569 strings)
2020-04-20 14:46:27 +02:00
thami simo
1d4695c109 Translated using Weblate (Arabic)
Currently translated at 100.0% (569 of 569 strings)
2020-04-20 14:46:27 +02:00
Gontzal Manuel Pujana Onaindia
b673f9dd7f Translated using Weblate (Basque)
Currently translated at 100.0% (569 of 569 strings)
2020-04-20 14:46:27 +02:00
Bruno Guerreiro
a1dd03472f Translated using Weblate (Portuguese)
Currently translated at 100.0% (569 of 569 strings)
2020-04-20 14:46:26 +02:00
Anxhelo Lushka
497e545024 Translated using Weblate (Albanian)
Currently translated at 100.0% (569 of 569 strings)
2020-04-20 14:46:22 +02:00
wb9688
6892fdb70b Merge pull request #3463 from B0pol/json
use nanojson instead of org.json
2020-04-20 14:02:36 +02:00
wb9688
aa1cc32d17 Open comment author on TV at long press 2020-04-20 13:37:35 +02:00
bopol
b22398ae6c use nanojson instead of org.json 2020-04-20 11:02:45 +02:00
Stypox
e6eddaff73 Merge pull request #3460 from wb9688/force-utf-8
Force UTF-8 encoding for Gradle
2020-04-20 10:18:56 +02:00
Tobias Groza
cd53518897 Merge pull request #3345 from mitosagi/error-with-bookmarks
Fix repeated exceptions in Bookmarked Playlists
2020-04-19 22:00:31 +02:00
wb9688
8e9b1b7213 Merge pull request #3414 from Stypox/recaptcha
Fix ReCaptcha Activity for another type of recaptcha page
2020-04-19 19:49:01 +02:00
wb9688
7a88fae2e2 Force UTF-8 encoding for Gradle 2020-04-19 19:33:46 +02:00
Tobias Groza
f066da23c5 Merge pull request #3456 from Stypox/enqueue-channel
Enqueue on long click on background/popup in channel
2020-04-19 11:41:12 +02:00
Stypox
34aa3d3e00 Enqueue on long click on background/popup in channel 2020-04-19 10:34:07 +02:00
Hosted Weblate
715119fd45 Merge branch 'origin/dev' into Weblate. 2020-04-16 21:55:01 +02:00
Allan Nordhøy
bde34fc4c4 Translated using Weblate (Norwegian Bokmål)
Currently translated at 90.6% (516 of 569 strings)
2020-04-16 21:55:00 +02:00
MohammedSR Vevo
07b4aa89d4 Translated using Weblate (Kurdish)
Currently translated at 99.4% (566 of 569 strings)
2020-04-16 21:54:59 +02:00
Isak Holmström
d60351114c Translated using Weblate (Swedish)
Currently translated at 83.1% (473 of 569 strings)
2020-04-16 21:54:59 +02:00
Yaron Shahrabani
c932a70bef Translated using Weblate (Hebrew)
Currently translated at 100.0% (569 of 569 strings)
2020-04-16 21:54:58 +02:00
Jeff Huang
4641d7ee8c Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (569 of 569 strings)
2020-04-16 21:54:58 +02:00
Xiang Xu
d4b3ee50f2 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (569 of 569 strings)
2020-04-16 21:54:58 +02:00
Samuel Carvalho de Araújo
5392daa3ff Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (569 of 569 strings)
2020-04-16 21:54:57 +02:00
Mostafa Ahangarha
a70e366fb4 Translated using Weblate (Persian)
Currently translated at 85.2% (485 of 569 strings)
2020-04-16 21:54:56 +02:00
Oğuz Ersen
dff14268db Translated using Weblate (Turkish)
Currently translated at 100.0% (569 of 569 strings)
2020-04-16 21:54:55 +02:00
zmni
5517e157ad Translated using Weblate (Indonesian)
Currently translated at 98.9% (563 of 569 strings)
2020-04-16 21:54:54 +02:00
anonymous
bdf4ffc36b Translated using Weblate (Arabic)
Currently translated at 100.0% (569 of 569 strings)
2020-04-16 21:54:54 +02:00
Vojtěch Šamla
71455c63c1 Translated using Weblate (Czech)
Currently translated at 100.0% (569 of 569 strings)
2020-04-16 21:54:54 +02:00
Aaron Feng
b1ae2b1a41 Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 30.0% (171 of 569 strings)
2020-04-16 21:54:53 +02:00
Jeannette L
8a31732ce2 Translated using Weblate (Italian)
Currently translated at 99.8% (568 of 569 strings)
2020-04-16 21:54:53 +02:00
AioiLight
e79aed7792 Translated using Weblate (Japanese)
Currently translated at 100.0% (569 of 569 strings)
2020-04-16 21:54:52 +02:00
B0pol
973fc08f2d Translated using Weblate (French)
Currently translated at 100.0% (569 of 569 strings)
2020-04-16 21:54:52 +02:00
JoC
00211e1fb2 Translated using Weblate (Spanish)
Currently translated at 100.0% (569 of 569 strings)
2020-04-16 21:54:52 +02:00
C. Rüdinger
ce7286a72a Translated using Weblate (German)
Currently translated at 100.0% (569 of 569 strings)
2020-04-16 21:54:51 +02:00
Grady Clark
db335d5cec Removed redundant code
reorganized code
2020-04-16 12:58:16 -05:00
Stypox
ee5ce0c809 Save and restore cookies to/from preferences
So that the user does not have to solve a recaptcha every time he opens the app
2020-04-15 13:30:27 +02:00
Stypox
b8efef7c7a Remove duplicate check if cookies are already present 2020-04-15 13:30:27 +02:00
Stypox
e2cbf40957 Fix recaptcha activity for another type of recaptcha page
Try to get cookies from pages even when they start loading, because non-html pages like ones with `pbj=1` never stop loading.
Try to extract the cookie directly from the redirection url, by looking at the field "google_abuse=".
Add `GOOGLE_ABUSE_EXEMPTION=` to the youtube recaptcha cookies.
2020-04-15 13:30:27 +02:00
Stypox
d7d45fb8e2 Merge pull request #3415 from TeamNewPipe/fix/f-droid_build
Fix F-Droid build
2020-04-15 10:32:44 +02:00
TheLastGimbus
63afacc067 Add listeners in activity 2020-04-14 22:06:32 +02:00
TheLastGimbus
3175199787 Add fast-rewind/forward buttons in layout 2020-04-14 22:05:51 +02:00
Grady Clark
1d0c3de65f Merge branch 'dev' of https://github.com/TeamNewPipe/NewPipe into dev 2020-04-14 13:24:57 -05:00
Grady Clark
fe1646caa0 Changed "Remove Watched":
- Will now execute on the io thread
- Added confirmation dialog
  - Warning the user, and asking if they also want to remove partially watched videos
2020-04-14 13:15:07 -05:00
nautilusx
72710f075b Translated using Weblate (German)
Currently translated at 100.0% (569 of 569 strings)
2020-04-14 18:37:12 +02:00
Jeannette L
c7c01aedc2 Translated using Weblate (German)
Currently translated at 100.0% (569 of 569 strings)
2020-04-14 18:37:12 +02:00
C. Rüdinger
c2e2e76fd8 Translated using Weblate (German)
Currently translated at 100.0% (569 of 569 strings)
2020-04-14 18:37:11 +02:00
anonymous
f30a87e4e2 Translated using Weblate (German)
Currently translated at 100.0% (569 of 569 strings)
2020-04-14 18:37:11 +02:00
Igor Nedoboy
7a84cfd510 Translated using Weblate (Russian)
Currently translated at 100.0% (569 of 569 strings)
2020-04-14 10:43:22 +02:00
Jeannette L
7a5a773b07 Translated using Weblate (German)
Currently translated at 99.6% (567 of 569 strings)
2020-04-13 02:46:08 +02:00
Jeannette L
cf1488f6ce Translated using Weblate (German)
Currently translated at 99.6% (567 of 569 strings)
2020-04-13 02:43:01 +02:00
ce4
b02badba0c Translated using Weblate (German)
Currently translated at 98.7% (562 of 569 strings)
2020-04-13 02:40:54 +02:00
Jeannette L
772d84ea5a Translated using Weblate (German)
Currently translated at 99.6% (567 of 569 strings)
2020-04-13 02:40:30 +02:00
random r
ddaa66f080 Translated using Weblate (Italian)
Currently translated at 100.0% (569 of 569 strings)
2020-04-13 02:34:48 +02:00
Igor Nedoboy
8fd75833f0 Translated using Weblate (Russian)
Currently translated at 100.0% (569 of 569 strings)
2020-04-12 22:07:15 +02:00
Igor Nedoboy
1967d60813 Translated using Weblate (Russian)
Currently translated at 100.0% (569 of 569 strings)
2020-04-12 21:59:31 +02:00
Hosted Weblate
f38f265cf7 Merge branch 'origin/dev' into Weblate. 2020-04-12 16:45:50 +02:00
Isak Holmström
79f37ffee0 Translated using Weblate (Swedish)
Currently translated at 83.5% (468 of 560 strings)
2020-04-12 16:45:48 +02:00
Isak Holmström
d4b2a3c696 Translated using Weblate (Swedish)
Currently translated at 83.5% (468 of 560 strings)
2020-04-12 16:45:47 +02:00
Samuel Carvalho de Araújo
39ec365821 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (560 of 560 strings)
2020-04-12 16:45:46 +02:00
Tolstovka
bc423c471d Translated using Weblate (Ukrainian)
Currently translated at 93.3% (523 of 560 strings)
2020-04-12 16:45:44 +02:00
thami simo
a790f43566 Translated using Weblate (Arabic)
Currently translated at 100.0% (560 of 560 strings)
2020-04-12 16:45:43 +02:00
Gontzal Manuel Pujana Onaindia
9fbdc950d2 Translated using Weblate (Basque)
Currently translated at 100.0% (560 of 560 strings)
2020-04-12 16:45:41 +02:00
random r
8319963cbb Translated using Weblate (Italian)
Currently translated at 100.0% (560 of 560 strings)
2020-04-12 16:45:39 +02:00
Mitosagi
4341219497 Translated using Weblate (Japanese)
Currently translated at 100.0% (560 of 560 strings)
2020-04-12 16:45:39 +02:00
Igor Nedoboy
835504270d Translated using Weblate (Russian)
Currently translated at 100.0% (560 of 560 strings)
2020-04-12 16:45:38 +02:00
C. Rüdinger
daed42d208 Translated using Weblate (German)
Currently translated at 100.0% (560 of 560 strings)
2020-04-12 16:45:38 +02:00
Alexander--
850f51a156 When drawer opens, always place focus at it's start 2020-04-12 09:39:32 +06:59
TobiGr
d37b195708 Fix F-Droid build
Fixes the behaviour described in https://github.com/TeamNewPipe/NewPipe/pull/3265#issuecomment-612102349
2020-04-11 22:18:04 +02:00
Alexander--
54ceb85ebe Don't break navigation if player Views other than controls are focused 2020-04-11 16:04:38 +06:59
Alexander--
ef7a5bc753 Make channel info button focusable 2020-04-11 16:04:29 +06:59
wb9688
b7ef60eedd Merge pull request #3410 from wb9688/fix-restricted
Show error when video has age limit and setting is disabled
2020-04-11 09:44:25 +02:00
wb9688
70ede70ea8 Hide tabs when a video is age restricted 2020-04-11 09:30:12 +02:00
Alexander--
d1d942f3fd Fix Checkstyle violations in MediaSourceManager 2020-04-11 09:51:50 +06:59
Alexander--
53b3bda909 Comply with Checkstyle rules 2020-04-11 09:02:22 +06:59
Alexander--
ac5571a363 Merge remote-tracking branch 'newpipe/dev' into rebase 2020-04-11 08:30:40 +06:59
Alexander--
c42f5eca87 Merge remote-tracking branch 'newpipe/dev' into rebase 2020-04-11 08:24:05 +06:59
Tobias Groza
9cb6816b3c Merge pull request #3294 from mauriciocolli/fix-network-issues-detection
Fix detection of network related exceptions
2020-04-10 23:10:34 +02:00
Stypox
feab633e60 Merge pull request #3075 from harshlele/better-popup-resizing
Better popup resizing with pinch gestures
2020-04-10 22:26:59 +02:00
Stypox
a50e430cd9 Fix checkstyle issues and improve code formatting
Also calculate differently the moved distance of a pointer: use euclidean and not manhattan geometry
2020-04-10 22:12:45 +02:00
Harshal Lele
46918ee907 formatting changes 2020-04-10 22:10:32 +02:00
Harshal Lele
fe1889653e made formatting changes 2020-04-10 22:10:32 +02:00
Harshal Lele
9487b5367d changed popup resizing 2020-04-10 22:10:32 +02:00
Tobias Groza
6b47df75a7 Merge pull request #3412 from mauriciocolli/improve-drawer-title-size-handling
Improve size handling of the drawer header title
2020-04-10 22:04:53 +02:00
wb9688
bd9b2d54aa Merge pull request #3240 from wb9688/yt-music-search
YouTube Music search stuff
2020-04-10 19:04:49 +02:00
Mauricio Colli
506d1dc1f2 Improve size handling of the drawer header title
Some devices, specially with custom fonts that changed the font width,
weren't being correctly adjusted before.
2020-04-10 10:31:28 -03:00
wb9688
90f9819cbd Show error when video has age limit and setting is disabled 2020-04-10 15:29:48 +02:00
wb9688
9bbd03c14e Bump NewPipeExtractor version 2020-04-10 10:37:03 +02:00
wb9688
2852815e1a Use suggested layout for search filters 2020-04-10 10:35:54 +02:00
wb9688
41a100613f Add ability to translate YouTube Music search options 2020-04-10 10:35:54 +02:00
Stypox
63e489f134 Use ITEM_COUNT_UNKNOWN 2020-04-10 10:35:54 +02:00
Stypox
914d3c4a66 Use "mini" stream count alternatives for info items
Note: more_than_100_videos_mini and infinite_videos_mini are untranslatable
2020-04-10 10:35:54 +02:00
Stypox
2b47a1b06a Also use localizeStreamCount() in local items 2020-04-10 10:35:54 +02:00
Stypox
625419a7db Detect ITEM_COUNT_* in localizeStreamCount()
ITEM_COUNT_INFINITE and ITEM_COUNT_MORE_THAN_100.
Use localizeStreamCount in PlaylistFragment and PlaylistItemHolder
2020-04-10 10:35:54 +02:00
Stypox
2710d9de5b Add support for INFINITE_ and MORE_THAN_100_ITEMS in playlists 2020-04-10 10:35:53 +02:00
wb9688
e51314b104 Merge pull request #3300 from B0pol/content_not_supported
handle ContentNotSupportedException
2020-04-10 10:33:34 +02:00
bopol
4c128d837c handle ContentNotSupportedException for Channel Fragment (when an user has no video tab) 2020-04-10 09:12:29 +02:00
bopol
c392804f47 handle ContentNotSupportedException in ExtractorHelper.handleGeneralException() 2020-04-09 23:58:01 +02:00
bopol
cc7a25d9ce handle ContentNotSupportedException in BaseStateFragment
thus not supported soundcloud streams (e.g. hls streams) don't crash
anyore
2020-04-09 23:58:01 +02:00
wb9688
36b2bea25f Merge pull request #3395 from kapodamy/checkstyle-warnings
remove some warnings issued by checkstyle
2020-04-09 21:08:53 +02:00
Mauricio Colli
913796ff0f Use exception utils in network error detection throughout the app 2020-04-09 13:22:24 -03:00
Mauricio Colli
a1b9892c77 Move exception utils to a separate class and add tests for it 2020-04-09 13:22:18 -03:00
wb9688
03de4b29ea Suppress remaining Checkstyle errors 2020-04-09 17:24:43 +02:00
Hosted Weblate
35a706f745 Merge branch 'origin/dev' into Weblate. 2020-04-09 08:58:43 +02:00
Tobias Groza
65cd9751d8 Merge pull request #3288 from XiangRongLin/save-playback
Save and restore playback parameters into/from preferences
2020-04-08 21:38:53 +02:00
kapodamy
ff9a1ebb1b checkstyle
* drop unused methods
* split blobs
* make no final parameters
2020-04-08 12:08:01 -03:00
Hosted Weblate
b5df000e9d Merge branch 'origin/dev' into Weblate. 2020-04-08 14:09:42 +02:00
Claudio Maradonna
655522a3e5 Translated using Weblate (Italian)
Currently translated at 99.6% (558 of 560 strings)
2020-04-08 14:09:40 +02:00
wb9688
e4a4af34c5 Merge pull request #3276 from lnjX/fix/the-the-typo
ThemeHelper: Fix 'the the' typo
2020-04-07 09:25:00 +02:00
wb9688
b047e562ca Merge branch 'dev' into fix/the-the-typo 2020-04-07 09:17:10 +02:00
Tobias Groza
1600233c48 Merge pull request #3374 from mauriciocolli/fix-sort-button-visibility
Fix visibility of group sort button in the subscriptions fragment
2020-04-07 09:15:59 +02:00
Hosted Weblate
55c8bcd0e3 Merge branch 'origin/dev' into Weblate. 2020-04-07 05:23:56 +02:00
Software In Interlingua
2d0dadbd34 Translated using Weblate (Interlingua)
Currently translated at 35.5% (199 of 560 strings)
2020-04-07 05:23:54 +02:00
Tajnymag
49879bc9db Translated using Weblate (Czech)
Currently translated at 100.0% (560 of 560 strings)
2020-04-07 05:23:53 +02:00
Tobias Groza
2c453c7691 Merge pull request #3357 from opusforlife2/improve-bug-report-template
Made the bug report template less daunting
2020-04-06 21:51:07 +02:00
Tobias Groza
5166c22ce9 Fix webalte badge and link in readme
Update releases badge URL to point to releases instead of GitHub repo page
See WeblateOrg/weblate#3668
2020-04-06 21:01:40 +02:00
Mauricio Colli
225b9e1b15 Fix visibility of group sort button in the subscriptions fragment 2020-04-05 16:57:28 -03:00
ssantos
7a9d2c9a74 Translated using Weblate (Portuguese)
Currently translated at 100.0% (560 of 560 strings)
2020-04-05 19:41:29 +02:00
Xiang Rong Lin
3855e488cb Save and restore playback parameters into/from preferences
Playback parameters are speed, pitch and skip silence.
Remove parameters being passed on as intent to the player, since the parameters can be restored from the preferences instead.

# Conflicts:
#	app/src/main/java/org/schabi/newpipe/player/BasePlayer.java
2020-04-05 17:46:49 +02:00
Hosted Weblate
ce75747887 Merge branch 'origin/dev' into Weblate. 2020-04-05 17:08:38 +02:00
Bruno Arruda
c462766cb8 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.8% (559 of 560 strings)
2020-04-05 17:08:38 +02:00
anonymous
bb905b70df Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.8% (559 of 560 strings)
2020-04-05 17:08:35 +02:00
wb9688
5c8b9f6b4c Merge pull request #3370 from mauriciocolli/avoid-upload-date-update
Avoid unnecessary changes to the upload date of saved streams
2020-04-05 16:36:39 +02:00
Mauricio Colli
c726639484 Avoid unnecessary changes to the upload date of saved streams
The upload date was being updated regardless if the new one had more
precision or not, this caused items on the feed to jump around when the
user opened one of them.

This changes it to only update when the existent upload date is null or
the new one has a higher precision (i.e. is not an approximation).
2020-04-05 10:57:54 -03:00
Mahyuddin
100c7b8360 Translated using Weblate (Acehnese)
Currently translated at 7.3% (41 of 560 strings)
2020-04-05 11:34:48 +02:00
WaldiS
5502df89bb Translated using Weblate (Polish)
Currently translated at 100.0% (560 of 560 strings)
2020-04-05 11:34:47 +02:00
mitosagi
4491b66872 Make null sortable 2020-04-05 17:26:00 +09:00
Mahyuddin
9bc24728b4 Added translation using Weblate (Acehnese) 2020-04-05 09:47:16 +02:00
Hosted Weblate
a3a00ea052 Merge branch 'origin/dev' into Weblate. 2020-04-05 04:25:04 +02:00
Allan Nordhøy
1b1534add5 Translated using Weblate (Norwegian Bokmål)
Currently translated at 89.6% (502 of 560 strings)
2020-04-05 04:25:01 +02:00
Enol P
a54c8d4f55 Translated using Weblate (Asturian)
Currently translated at 51.9% (291 of 560 strings)
2020-04-05 04:25:01 +02:00
JoC
0cddd15203 Translated using Weblate (Spanish)
Currently translated at 100.0% (560 of 560 strings)
2020-04-05 04:25:00 +02:00
Tobias Groza
5653d443d9 Merge pull request #3344 from wb9688/checkfornewappversiontask-downloaderimpl
Use DownloaderImpl in CheckForNewAppVersionTask
2020-04-04 20:11:39 +02:00
wb9688
a5a497c4ea Clean up CheckForNewAppVersionTask 2020-04-04 19:34:13 +02:00
Hosted Weblate
d60feb466c Merge branch 'origin/dev' into Weblate. 2020-04-04 17:31:08 +02:00
Hemanta Sharma
a435167619 Translated using Weblate (Nepali)
Currently translated at 100.0% (560 of 560 strings)
2020-04-04 17:31:05 +02:00
Allan Nordhøy
99c823c763 Translated using Weblate (Norwegian Bokmål)
Currently translated at 89.1% (499 of 560 strings)
2020-04-04 17:31:04 +02:00
Jeff Huang
aebed13a40 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (560 of 560 strings)
2020-04-04 17:31:03 +02:00
AioiLight
1347bdd545 Translated using Weblate (Japanese)
Currently translated at 100.0% (560 of 560 strings)
2020-04-04 17:31:03 +02:00
AioiLight
562754c0b9 Merge branch 'dev' into blocking-gesture-when-touch-from-navbar 2020-04-04 23:52:06 +09:00
Tobias Groza
ec52e144e8 Merge pull request #3356 from B0pol/contributing.md
update contributing.md
2020-04-04 15:02:57 +02:00
Hosted Weblate
3e383a9f57 Merge branch 'origin/dev' into Weblate. 2020-04-04 14:23:24 +02:00
Hemanta Sharma
3a2444db0d Translated using Weblate (Nepali)
Currently translated at 100.0% (560 of 560 strings)
2020-04-04 14:23:21 +02:00
zeritti
14d01ae358 Translated using Weblate (Czech)
Currently translated at 100.0% (560 of 560 strings)
2020-04-04 14:23:19 +02:00
Éfrit
1f4b147ddd Translated using Weblate (French)
Currently translated at 100.0% (560 of 560 strings)
2020-04-04 14:23:19 +02:00
opusforlife2
12405f4059 Made the bug report template less daunting
The biggest problem was that the reporter needed to delete a lot of text to be able to give a clean report. Now most of that is comments.
2020-04-04 11:22:00 +00:00
B0pol
8d6965713c Update .github/CONTRIBUTING.md
Co-Authored-By: Tobias Groza <TobiGr@users.noreply.github.com>
2020-04-04 12:37:51 +02:00
bopol
fe2858bc75 update contributing.md 2020-04-04 12:14:32 +02:00
Tobias Groza
99dd6ae6aa Merge pull request #3349 from B0pol/update_changelog_0.19.2
mention view count added in 0.19.2 in changelog
2020-04-04 11:18:19 +02:00
Hosted Weblate
cb7ed4079f Merge branch 'origin/dev' into Weblate. 2020-04-04 09:17:37 +02:00
anonymous
89fbc055f4 Translated using Weblate (Nepali)
Currently translated at 99.8% (559 of 560 strings)
2020-04-04 09:17:35 +02:00
Hemanta Sharma
df12b838ad Translated using Weblate (Nepali)
Currently translated at 99.8% (559 of 560 strings)
2020-04-04 09:17:35 +02:00
Allan Nordhøy
055fa19c9b Translated using Weblate (Nepali)
Currently translated at 99.8% (559 of 560 strings)
2020-04-04 09:17:34 +02:00
Allan Nordhøy
d1b661506e Translated using Weblate (Norwegian Bokmål)
Currently translated at 88.9% (498 of 560 strings)
2020-04-04 09:17:33 +02:00
anonymous
180ddcceaa Translated using Weblate (Estonian)
Currently translated at 73.5% (412 of 560 strings)
2020-04-04 09:17:33 +02:00
Allan Nordhøy
512fad207b Translated using Weblate (Punjabi)
Currently translated at 80.3% (450 of 560 strings)
2020-04-04 09:17:33 +02:00
Allan Nordhøy
82d514d857 Translated using Weblate (Kurdish)
Currently translated at 99.4% (557 of 560 strings)
2020-04-04 09:17:32 +02:00
Allan Nordhøy
037fac7cd4 Translated using Weblate (Tamil)
Currently translated at 36.4% (204 of 560 strings)
2020-04-04 09:17:32 +02:00
Allan Nordhøy
ebad85664d Translated using Weblate (Telugu)
Currently translated at 24.4% (137 of 560 strings)
2020-04-04 09:17:32 +02:00
Allan Nordhøy
4b626c39fe Translated using Weblate (Persian)
Currently translated at 81.6% (457 of 560 strings)
2020-04-04 09:17:32 +02:00
Oğuz Ersen
81c539f150 Translated using Weblate (Turkish)
Currently translated at 100.0% (560 of 560 strings)
2020-04-04 09:17:31 +02:00
Emin Tufan Çetin
0e74d82777 Translated using Weblate (Turkish)
Currently translated at 100.0% (560 of 560 strings)
2020-04-04 09:17:31 +02:00
Allan Nordhøy
5ea34a3c07 Translated using Weblate (Slovak)
Currently translated at 93.9% (526 of 560 strings)
2020-04-04 09:17:31 +02:00
Igor Nedoboy
4f8c5c3c0a Translated using Weblate (Russian)
Currently translated at 100.0% (560 of 560 strings)
2020-04-04 09:17:30 +02:00
opusforlife2
37e45e0984 Translated using Weblate (English)
Currently translated at 99.8% (559 of 560 strings)
2020-04-04 09:17:30 +02:00
bopol
5683ad6666 mention view count added in 0.19.2 in changelog 2020-04-03 23:34:16 +02:00
Stypox
92ca1e6e09 Check if already running before removing watched 2020-04-03 20:41:21 +02:00
Stypox
6571fdbaa2 Fix checkstyle errors 2020-04-03 20:13:56 +02:00
Stypox
9c3f138b8e Use binary search to remove watched items from playlists 2020-04-03 19:51:29 +02:00
developer
0ac2865b74 Optimised 'removeWatchedStreams'
Removed merge mistake
Reordered code
Refactored 'removeWatchedWorker' to 'removeWatchedDisposable'
2020-04-03 19:50:12 +02:00
Grady Clark
98fc88dec6 Simplified the removal of watched videos, into the function removeWatchedStreams
Replaced unnecessary nested class.
Fixed formating issues
2020-04-03 19:49:41 +02:00
Grady Clark
8cab790030 - Will now use ReactiveX instead of AsyncTask, when removing watched videos.
- Removed redundant file 'local_playlist_control'
- Fixed grammer issue
2020-04-03 19:49:41 +02:00
Grady Clark
954399b255 Moved the 'Remove Watched' button to the three dot menu button. 2020-04-03 19:49:01 +02:00
Grady Clark
66c95f901d Added the ability to remove all watched videos from local playlists
Changes:
 - local_playlist_control.xml
   * A copy of playlist_control.xml
   * To hold the 'Remove Watched Videos' buttton

 - local_playlist_header.xml
   * Changed the include layout	to now include local_playlist_control.xml

 - strings.xml
   * added string 'remove_watched' with value 'Remove Watched'

 - LocalPlaylistFragment.java
   * Added the functionality to remove watched videos,
      to the 'Remove Watched Videos' button in local_playlist_control.xml.
      In the background via AsyncTask.
      This will also change the playlist's thumbnail, if the thumbnail video is removed.

Tested on:
 - Pixel
2020-04-03 19:47:31 +02:00
Tobias Groza
8265922d68 Merge pull request #3286 from opusforlife2/Update-Issue-and-PR-templates
Update Feature Request and PR templates
2020-04-03 19:04:04 +02:00
Tobias Groza
2403184845 Merge pull request #3282 from wb9688/checkstyle
Check code style with Checkstyle
2020-04-03 17:10:07 +02:00
wb9688
15a53d299d Revert some more changes 2020-04-03 15:48:38 +02:00
Hosted Weblate
24a1a5d680 Merge branch 'origin/dev' into Weblate. 2020-04-03 14:43:36 +02:00
Vojtěch Šamla
c1cfff1502 Translated using Weblate (Czech)
Currently translated at 100.0% (560 of 560 strings)
2020-04-03 14:43:33 +02:00
TobiGr
8b2599297b Release 0.19.2 (920) 2020-04-03 10:38:03 +02:00
Igor Nedoboy
1ed387dd54 Translated using Weblate (Russian)
Currently translated at 100.0% (560 of 560 strings)
2020-04-03 04:39:52 +02:00
Igor Nedoboy
9c795895ba Translated using Weblate (Russian)
Currently translated at 100.0% (560 of 560 strings)
2020-04-03 02:13:55 +02:00
Alexander--
3c193dca58 Merge remote-tracking branch 'newpipe/dev' into rebase 2020-04-03 06:56:52 +06:59
Hosted Weblate
ce2a8fbfab Merge branch 'origin/dev' into Weblate. 2020-04-03 00:39:15 +02:00
Igor Nedoboy
4bbcf44351 Translated using Weblate (Russian)
Currently translated at 99.2% (556 of 560 strings)
2020-04-03 00:39:12 +02:00
TobiGr
a9a43538be Merge remote-tracking branch 'Weblate/dev' into dev 2020-04-02 23:37:14 +02:00
Igor Nedoboy
905e4f16e2 Translated using Weblate (Russian)
Currently translated at 98.0% (549 of 560 strings)
2020-04-02 23:24:25 +02:00
anonymous
008489361d Translated using Weblate (Russian)
Currently translated at 98.0% (549 of 560 strings)
2020-04-02 23:24:23 +02:00
Igor Nedoboy
dfa7fb53b2 Translated using Weblate (Russian)
Currently translated at 98.0% (549 of 560 strings)
2020-04-02 23:24:22 +02:00
Tobias Groza
dc6604bcda Merge pull request #3265 from TeamNewPipe/apk_base_name
Change APK base name depending on the branch name for debug builds
2020-04-02 23:18:18 +02:00
Igor Nedoboy
63194ff292 Translated using Weblate (Russian)
Currently translated at 97.3% (545 of 560 strings)
2020-04-02 23:16:56 +02:00
anonymous
53a727955f Translated using Weblate (Russian)
Currently translated at 97.3% (545 of 560 strings)
2020-04-02 23:16:54 +02:00
Igor Nedoboy
a8fca89045 Translated using Weblate (Russian)
Currently translated at 97.3% (545 of 560 strings)
2020-04-02 23:16:54 +02:00
anonymous
1eff727722 Translated using Weblate (Russian)
Currently translated at 95.5% (535 of 560 strings)
2020-04-02 22:46:22 +02:00
AioiLight
d9c6f7acb6 Block the gesture when touch it from NavigationBar or StatusBar. 2020-04-03 05:11:36 +09:00
TobiGr
faefe957b0 Change APK base name depending on the branch name for debug builds 2020-04-02 21:45:28 +02:00
Tobias Groza
2fb8467673 Merge pull request #3334 from mauriciocolli/improve-drawer-height-handling
Make the drawer layout adapt to any status bar size
2020-04-02 21:42:35 +02:00
zmni
401422deb3 Translated using Weblate (Indonesian)
Currently translated at 99.2% (556 of 560 strings)
2020-04-02 20:49:16 +02:00
AioiLight
b52ed8e4c9 Translated using Weblate (Japanese)
Currently translated at 100.0% (560 of 560 strings)
2020-04-02 20:49:16 +02:00
wb9688
41061d0289 Use DownloaderImpl in CheckForNewAppVersionTask 2020-04-02 20:13:05 +02:00
wb9688
fed9197d23 Disable TodoComment in checkstyle.xml 2020-04-02 19:43:38 +02:00
wb9688
282d3dbf8c Disable MissingSwitchDefault in checkstyle.xml 2020-04-02 16:48:58 +02:00
wb9688
b6c6dc7282 Use Checkstyle for org.schabi.newpipe.streams as well 2020-04-02 16:48:57 +02:00
Mauricio Colli
45194061b3 Make the drawer layout adapt to any status bar size
This improves the drawer specifically for phones that have a notch.
2020-04-02 11:05:19 -03:00
wb9688
55480c8290 Disable VisibilityModifier in checkstyle.xml 2020-04-02 15:57:50 +02:00
wb9688
63bcc04eff Move things back to its original place 2020-04-02 15:57:50 +02:00
wb9688
fda5405e48 Improve code style to be more consistent 2020-04-02 15:57:50 +02:00
wb9688
819e52cab3 Check code style with Checkstyle 2020-04-02 15:57:50 +02:00
Kik Ki
ea917c82b6 Translated using Weblate (Thai)
Currently translated at 49.6% (278 of 560 strings)
2020-04-02 10:51:35 +02:00
Xiang Xu
65d5303765 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (560 of 560 strings)
2020-04-02 10:51:35 +02:00
CE4
08d37a4bef Translated using Weblate (German)
Currently translated at 100.0% (560 of 560 strings)
2020-04-02 10:51:35 +02:00
Tobias Groza
da2b059802 Merge pull request #3325 from kapodamy/int-overflow-2-fixes
Integer overflow fixes in downloader
2020-04-01 22:29:39 +02:00
kapodamy
62d934dd8e fix integer overflows
* available() method in ChunkFileInputStream.java
* free "ahead space" calculation in CircularFileWriter.java
2020-04-01 15:30:33 -03:00
kapodamy
96086b7733 code cleanup 2020-04-01 15:30:32 -03:00
Tobias Groza
182fc104bb Merge pull request #3259 from mauriciocolli/improve-drawer-layout
Improvements for the drawer header layout
2020-04-01 18:47:53 +02:00
Tobias Groza
06a897fba0 Merge pull request #3322 from Stypox/fix-mute-button
Fix mute button causing crashes on API 19
2020-04-01 18:30:10 +02:00
Jeff Huang
ff4b13245c Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (560 of 560 strings)
2020-04-01 09:10:33 +02:00
Stypox
00a8906128 Fix mute button causing crashes on API 19
Using rootView.getContext() because getApplicationContext() didn't work (it was probably missing information about theme)
2020-04-01 09:08:03 +02:00
opusforlife2
8b73d2d39f Translated using Weblate (English)
Currently translated at 99.8% (559 of 560 strings)
2020-03-31 18:15:23 +02:00
Vojtěch Šamla
e976b3e43e Translated using Weblate (Czech)
Currently translated at 100.0% (560 of 560 strings)
2020-03-31 14:04:56 +02:00
Jakub Gajdoš
1585ca7c85 Translated using Weblate (Slovak)
Currently translated at 94.2% (528 of 560 strings)
2020-03-31 14:04:56 +02:00
TobiGr
f7697007e5 Merge branch 'master' into dev 2020-03-31 12:33:16 +02:00
TobiGr
ba151a8b83 Release 0.19.1 2020-03-31 00:24:13 +02:00
TobiGr
a5153f5375 Improve database migration SQL statement 2020-03-31 00:20:13 +02:00
Tobias Groza
4899f01d6e Merge pull request #3307 from mauriciocolli/hotfix-db-migration
Hotfix for the latest database migration
2020-03-30 23:37:13 +02:00
Mauricio Colli
e6b3107997 Add tests for database migration to version 3 handling null values 2020-03-30 15:50:47 -03:00
Mauricio Colli
053440c4a8 Fix handling of null values in database migration to version 3
Some values prior to this version could be null, this wasn't handled
properly before.
2020-03-30 15:50:46 -03:00
CaptainCrumble
249e9c0b52 Translated using Weblate (Portuguese)
Currently translated at 100.0% (560 of 560 strings)
2020-03-30 17:33:56 +02:00
ssantos
099d5570f4 Translated using Weblate (Portuguese)
Currently translated at 100.0% (560 of 560 strings)
2020-03-30 17:33:54 +02:00
Alexander--
6a84f433ea Merge remote-tracking branch 'newpipe/dev' into rebase 2020-03-30 16:54:51 +06:59
chr56
12bf409e10 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (560 of 560 strings)
2020-03-30 00:51:52 +02:00
ssantos
a01f1e64fe Translated using Weblate (German)
Currently translated at 100.0% (560 of 560 strings)
2020-03-30 00:11:01 +02:00
Tobias Groza
5f549a8fc6 Merge pull request #3289 from B0pol/grid_moreinfo
add upload date on stream grid items
2020-03-29 23:49:39 +02:00
Tobias Groza
dd682013f9 Merge pull request #3267 from TeamNewPipe/release_0.19.0
Release 0.19.0
2020-03-29 18:57:28 +02:00
TobiGr
7f21975971 release version 0.19.0 (900) 2020-03-28 20:32:20 +01:00
TobiGr
bcd77031f3 Add changelog 2020-03-28 20:32:20 +01:00
Tobias Groza
505a689268 Merge pull request #3292 from vlt23/dev
Fix UI crash in Settings, Content (chinese language)
2020-03-28 20:31:47 +01:00
vlt23
3c3848d4f8 Fix UI crash in Settings, Content (chinese language) 2020-03-28 20:12:17 +01:00
TobiGr
949150f9ff Update extractor version 2020-03-28 19:18:37 +01:00
Tobias Groza
7c72f17fad Merge pull request #3279 from mauriciocolli/fix-not-found-handling
Handle content not available exception more comprehensively
2020-03-28 19:10:43 +01:00
Mauricio Colli
b4cabe23e3 Handle content not available exception more comprehensively 2020-03-28 14:54:52 -03:00
Tobias Groza
40de014732 Merge pull request #3283 from Stypox/fix-mute-button
Fix mute button inflation problems on API<21
2020-03-28 18:38:36 +01:00
Mauricio Colli
f9b718f1eb Use correct class for getting a vector drawable in older APIs 2020-03-28 14:30:47 -03:00
Tobias Groza
d051df9599 Merge pull request #3278 from mauriciocolli/fix-url-parsing-share
Fix url parsing from shared content
2020-03-28 18:15:26 +01:00
Mauricio Colli
4dc28989c8 Fix bug when searching for urls from shared content 2020-03-28 14:06:11 -03:00
Mauricio Colli
f133bbf499 Introduce a proper way to find urls in a string input 2020-03-28 14:06:09 -03:00
WaldiS
eb144af0b9 Translated using Weblate (Polish)
Currently translated at 100.0% (560 of 560 strings)
2020-03-28 17:09:30 +01:00
ssantos
0d020d3a54 Translated using Weblate (Portuguese)
Currently translated at 90.7% (508 of 560 strings)
2020-03-28 17:09:29 +01:00
Terry Louwers
e1042e326d Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-28 17:09:29 +01:00
anonymous
f085e7d362 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-28 17:09:29 +01:00
bopol
b995f39206 add upload date on stream grid items
fixes #3175
2020-03-28 14:19:57 +01:00
opusforlife2
713bf58c44 Add reminder to link Issues/PRs 2020-03-28 11:49:46 +00:00
Tobias Groza
bbd8751f62 Merge pull request #3281 from mauriciocolli/fix-main-screen-menu-creation
Temporary fix for main screen menu visibility
2020-03-28 12:15:21 +01:00
opusforlife2
a7af21958f Make feature request template easier to fill out 2020-03-28 10:54:20 +00:00
opusforlife2
8fed3df681 Update PULL_REQUEST_TEMPLATE.md
Minor modifications
2020-03-28 09:58:43 +00:00
Mauricio Colli
d8e83dabc6 Temporary: Fix menu visibility when restoring state in the pager adapter
When restoring the state of the adapter, all the fragments' menu
visibility were set to false, effectively disabling the menu from the
user until he switched pages or another event that triggered the menu to
be visible again happened.

FragmentStatePagerAdapter is deprecated and should be replaced with its
ViewPager2 counterpart, until then, this should do it.
2020-03-27 11:30:38 -03:00
Terry Louwers
0be78b1204 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:50:58 +01:00
anonymous
0a67ecbc3a Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:50:56 +01:00
Terry Louwers
c57b4ee965 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:50:31 +01:00
anonymous
d4db7b3fc1 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:50:29 +01:00
Terry Louwers
e9db964a70 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:48:08 +01:00
anonymous
90c8a714fc Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:48:06 +01:00
Terry Louwers
d958c0c68a Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:48:05 +01:00
Terry Louwers
377d02ab1a Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:46:46 +01:00
anonymous
2c0ad89a07 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 10:46:42 +01:00
Terry Louwers
101a8adbc2 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 09:34:55 +01:00
anonymous
5009fa461c Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 09:34:53 +01:00
Terry Louwers
f48f6ae5df Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 09:32:53 +01:00
Terry Louwers
be504212d0 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 09:32:51 +01:00
anonymous
0f075137c9 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 09:32:50 +01:00
Terry Louwers
8714664e00 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:56:24 +01:00
anonymous
bfaf938543 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:56:21 +01:00
Terry Louwers
b605bc086c Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:43:37 +01:00
anonymous
e394b16335 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:43:34 +01:00
Terry Louwers
0457423498 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:29:41 +01:00
anonymous
91d30dbb83 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:29:38 +01:00
Terry Louwers
63642a4d3e Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:26:41 +01:00
anonymous
1b64900c14 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:26:38 +01:00
Terry Louwers
2660178658 Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:25:08 +01:00
anonymous
3a0271cd4d Translated using Weblate (Dutch)
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:25:05 +01:00
Terry Louwers
76e2a2f032 Translated using Weblate (Dutch)
Currently translated at 99.6% (558 of 560 strings)
2020-03-27 08:14:47 +01:00
anonymous
932de969f0 Translated using Weblate (Dutch)
Currently translated at 99.6% (558 of 560 strings)
2020-03-27 08:14:42 +01:00
Terry Louwers
9082ab6ff7 Translated using Weblate (Dutch)
Currently translated at 99.6% (558 of 560 strings)
2020-03-27 08:14:41 +01:00
Terry Louwers
2461173e26 Translated using Weblate (Dutch)
Currently translated at 99.1% (555 of 560 strings)
2020-03-27 08:10:59 +01:00
Terry Louwers
48c2f8b91b Translated using Weblate (Dutch)
Currently translated at 99.1% (555 of 560 strings)
2020-03-27 08:10:55 +01:00
anonymous
6766b25414 Translated using Weblate (Dutch)
Currently translated at 99.1% (555 of 560 strings)
2020-03-27 08:10:55 +01:00
Terry Louwers
aacaf1b3fe Translated using Weblate (Dutch)
Currently translated at 98.3% (551 of 560 strings)
2020-03-27 08:03:08 +01:00
Daniele Lira Mereb
4cc154cbe1 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (560 of 560 strings)
2020-03-27 08:03:08 +01:00
anonymous
ca030dd5ed Translated using Weblate (Dutch)
Currently translated at 98.3% (551 of 560 strings)
2020-03-27 08:03:04 +01:00
Terry Louwers
f000409a90 Translated using Weblate (Dutch)
Currently translated at 98.3% (551 of 560 strings)
2020-03-27 08:03:03 +01:00
Mauricio Colli
697f0659e2 Distribute the service indicator views in the drawer header layout
People have voted, and that was the chosen design.
2020-03-26 19:21:32 -03:00
Mauricio Colli
5169ef1f00 Remove unused drawer header views and resources 2020-03-26 19:21:31 -03:00
Mauricio Colli
10faa45182 Align and enable autosizing for the app name text view in drawer header
- Use a proper drop up/down arrow icon.
- Move selected service views for better visibility.
- Show the selected service icon next to its name.
- Add a subtle fade background to the service name/icon for better
readability.
2020-03-26 19:21:30 -03:00
TobiGr
c6eaed76f3 Translation fixes 2020-03-26 23:09:49 +01:00
TobiGr
6ce338b2d0 Weblate ... 2020-03-26 21:56:30 +01:00
TobiGr
aa87f10b6a Merge remote-tracking branch 'Weblate/dev' into dev 2020-03-26 21:45:46 +01:00
Xiang Xu
9a980f9341 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (560 of 560 strings)
2020-03-26 20:10:32 +01:00
MohammedSR Vevo
544751895e Translated using Weblate (Kurdish)
Currently translated at 99.8% (559 of 560 strings)
2020-03-26 20:10:30 +01:00
B0pol
082b7fa0ec Translated using Weblate (French)
Currently translated at 100.0% (560 of 560 strings)
2020-03-26 20:10:27 +01:00
wb9688
4d23cf7746 Translated using Weblate (Dutch)
Currently translated at 97.1% (544 of 560 strings)
2020-03-26 20:10:26 +01:00
pjammo
c687d832fa Translated using Weblate (Italian)
Currently translated at 99.6% (558 of 560 strings)
2020-03-26 20:10:21 +01:00
Yaron Shahrabani
4cd5afa3fb Translated using Weblate (Hebrew)
Currently translated at 100.0% (560 of 560 strings)
2020-03-26 20:10:20 +01:00
anonymous
39bb0f4c3e Translated using Weblate (Croatian)
Currently translated at 89.6% (502 of 560 strings)
2020-03-26 20:10:19 +01:00
Stjepan
aef673abd1 Translated using Weblate (Croatian)
Currently translated at 89.6% (502 of 560 strings)
2020-03-26 20:10:19 +01:00
zeritti
c4f58cb6e2 Translated using Weblate (Czech)
Currently translated at 100.0% (560 of 560 strings)
2020-03-26 20:10:10 +01:00
AioiLight
6e3170f5c7 Translated using Weblate (Japanese)
Currently translated at 100.0% (560 of 560 strings)
2020-03-26 20:10:09 +01:00
Enol P
782b983354 Translated using Weblate (Asturian)
Currently translated at 51.2% (287 of 560 strings)
2020-03-26 20:10:07 +01:00
B0pol
89dc5cec59 Translated using Weblate (Esperanto)
Currently translated at 99.8% (559 of 560 strings)
2020-03-26 20:10:06 +01:00
C. Rüdinger
1994dad972 Translated using Weblate (German)
Currently translated at 99.8% (559 of 560 strings)
2020-03-26 20:10:05 +01:00
nautilusx
8168445b4a Translated using Weblate (German)
Currently translated at 99.8% (559 of 560 strings)
2020-03-26 20:10:04 +01:00
anonymous
838f8cb2e2 Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.5% (535 of 560 strings)
2020-03-26 20:10:03 +01:00
Emin Tufan Çetin
2e3f240ac6 Translated using Weblate (Turkish)
Currently translated at 100.0% (560 of 560 strings)
2020-03-26 20:10:03 +01:00
Daniele Lira Mereb
c6de6e53b5 Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.5% (535 of 560 strings)
2020-03-26 20:09:58 +01:00
Linus Jahn
edff3c35f2 ThemeHelper: Fix 'the the' typo 2020-03-26 01:50:32 +01:00
TobiGr
55c577e76e Seek duration should not be rounded up when opening the settings, even if inexact seek is disabled 2020-03-25 22:34:02 +01:00
TobiGr
93b75b6013 Update extractor version 2020-03-25 22:31:21 +01:00
Tobias Groza
452f258b17 Merge pull request #3273 from kapodamy/int-overflow-fix
fix #2790
2020-03-25 21:12:36 +01:00
kapodamy
5f940c40ed fix integer overflow 2020-03-25 16:13:36 -03:00
TobiGr
a19be79891 Remove unused "clear_finished_download" string 2020-03-25 12:45:37 +01:00
TobiGr
60252bbda8 Remove unused "playback_default" string 2020-03-25 12:44:04 +01:00
TobiGr
6ac52f241d Do not show nothing for some quantities for Chinese 2020-03-25 12:40:55 +01:00
TobiGr
6eeb22926a Fix what Weblate screwed up again 2020-03-25 12:36:43 +01:00
TobiGr
329047836b Merge remote-tracking branch 'Weblate/dev' into dev 2020-03-25 12:26:54 +01:00
TobiGr
4524a69f99 Update extractor version 2020-03-25 12:04:16 +01:00
Tobias Groza
5a8b565199 Merge pull request #3252 from B0pol/mute_button
Change mute button color for more visibility
2020-03-23 23:10:48 +01:00
Hosted Weblate
da5369e902 Merge branch 'origin/dev' into Weblate. 2020-03-23 04:49:07 +01:00
Jeff Huang
a433e5b65f Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (560 of 560 strings)
2020-03-23 04:47:37 +01:00
B0pol
ebb1389133 Translated using Weblate (French)
Currently translated at 100.0% (560 of 560 strings)
2020-03-23 04:47:32 +01:00
JoC
b31fbc380f Translated using Weblate (Spanish)
Currently translated at 99.8% (559 of 560 strings)
2020-03-23 04:47:29 +01:00
Hemanta Sharma
a86912c8e7 Translated using Weblate (Nepali)
Currently translated at 95.3% (534 of 560 strings)
2020-03-23 04:47:27 +01:00
nautilusx
3e348f8c71 Translated using Weblate (German)
Currently translated at 98.0% (549 of 560 strings)
2020-03-23 04:47:25 +01:00
bopol
bb91b16863 use 8F instead of 6f for white hexadecimal, on @wb9688 advise 2020-03-21 22:07:39 +01:00
bopol
8d068b339a remove unused imports 2020-03-21 21:54:40 +01:00
bopol
c54ac32732 mute button color for queue 2020-03-21 21:51:11 +01:00
bopol
47c5008871 Change mute button color for more visibility 2020-03-21 16:58:53 +01:00
jonas-skywalker
0a412e2abb Remove search icon in search mode. Issue: #3183 (see PR #3193) 2020-03-20 11:59:34 +01:00
Tobias Groza
27156d74da Merge pull request #3220 from kapodamy/webm-seek-fix
fix for #3204
2020-03-20 11:49:39 +01:00
TobiGr
50fd10ecd6 Remove titles from issue templates and fix typo 2020-03-19 22:50:48 +01:00
Tobias Groza
cab104a60a Merge pull request #3132 from Poolitzer/templates
Updating issue and PR templates
2020-03-19 22:11:55 +01:00
Hosted Weblate
37f4469503 Merge branch 'origin/dev' into Weblate. 2020-03-19 21:42:11 +01:00
Allan Nordhøy
60bcd70718 Translated using Weblate (Norwegian Bokmål)
Currently translated at 88.7% (497 of 560 strings)
2020-03-19 21:42:08 +01:00
Marian Hanzel
ac9057bd23 Translated using Weblate (Slovak)
Currently translated at 91.9% (515 of 560 strings)
2020-03-19 21:42:07 +01:00
zmni
565a5abb55 Translated using Weblate (Indonesian)
Currently translated at 99.2% (556 of 560 strings)
2020-03-19 21:42:05 +01:00
Yaron Shahrabani
8b45256725 Translated using Weblate (Hebrew)
Currently translated at 99.1% (555 of 560 strings)
2020-03-19 21:42:03 +01:00
nautilusx
b4a5f29cd1 Translated using Weblate (German)
Currently translated at 97.1% (544 of 560 strings)
2020-03-19 21:42:02 +01:00
TobiGr
4d4fb9f435 Merge branch 'master' into dev 2020-03-19 21:13:43 +01:00
Tobias Groza
49c6aa2d74 Update .github/ISSUE_TEMPLATE/feature_request.md
Co-Authored-By: opusforlife2 <53176348+opusforlife2@users.noreply.github.com>
2020-03-19 18:03:33 +01:00
Mauricio Colli
fb3290e870 Merge pull request #3230 from B0pol/seconds
Merge duplicated duration plurals and introduce new plurals for selected count
2020-03-19 09:56:57 -03:00
Mauricio Colli
27fc0d5900 Make duration plurals naming consistent 2020-03-19 09:44:13 -03:00
bopol
85e16afaa0 use val instead of val, make sentence more natural 2020-03-19 09:44:12 -03:00
bopol
0ae4d1369d use plural string for feed_group_dialog_selection_count 2020-03-19 09:44:11 -03:00
bopol
d0f2a02277 delete «seconds» plural string in favor of «dynamic_seek_duration_description» to avoid weblate conflicts 2020-03-19 09:44:10 -03:00
Mauricio Colli
b1c72bacc4 Merge remote-tracking branch 'weblate/dev' 2020-03-19 09:00:50 -03:00
poolitzer
02ef0b0818 a document is not nice 2020-03-18 19:44:37 -07:00
Poolitzer
e83e755fe1 dropping markdown links in comments
Co-Authored-By: Tobias Groza <TobiGr@users.noreply.github.com>
2020-03-18 19:42:03 -07:00
Hemanta Sharma
436b08ab05 Translated using Weblate (Nepali)
Currently translated at 100.0% (535 of 535 strings)
2020-03-17 08:32:09 +01:00
Tobias Groza
ce15697ceb Merge pull request #3234 from mauriciocolli/revert-manifest-removal
Revert manifest removal from debug build variant
2020-03-16 17:59:26 +01:00
Hemanta Sharma
0f96f3bd43 Translated using Weblate (Nepali)
Currently translated at 100.0% (535 of 535 strings)
2020-03-16 13:36:24 +01:00
Mauricio Colli
df2a3837a9 Revert manifest removal from build variant
The file was responsible for making the app use the Debug application
class, which various debug tools depended on.
2020-03-15 17:37:40 -03:00
wb9688
be5654dbd7 Merge pull request #3233 from TeamNewPipe/delete-subscription-header
Delete subscription_header.xml
2020-03-15 18:06:47 +01:00
Stypox
0ab4b6d63d Delete subscription_header.xml
Unused file
2020-03-15 17:47:48 +01:00
Tobias Groza
c4a601b6f6 Merge pull request #3090 from B0pol/mediaccc
Links support for mediaccc and shortened invidious
2020-03-15 17:24:32 +01:00
bopol
eacd21b230 update extractor version 2020-03-15 17:17:18 +01:00
Alexander--
3a611adc11 Prevent NavigationMenuView from gobbling up focus 2020-03-15 12:04:49 +06:59
Alexander--
381b491845 Prevent foocus from escaping open navigation drawer
When contents of NewPipe navigation drawer change, NavigationMenuView
(which is actually a RecyclerView) removes and re-adds all its adapter
children, which leads to temporary loss of focus on currently focused drawer
child. This situation was not anticipated by developers of original
support library DrawerLayout: while NavigationMenuView itself is able
to keep focus from escaping via onRequestFocusInDescendants(),
the implementation of that method in DrawerLayout does not pass focus
to previously focused View. In fact it does not pass focus correctly at all
because the AOSP implementation of that method does not call addFocusables()
and simply focuses the first available VISIBLE View, without regard
to state of drawers.
2020-03-15 09:37:29 +06:59
Alexander--
6aca344bf7 Merge remote-tracking branch 'newpipe/dev' into rebase 2020-03-15 09:08:01 +06:59
Hemanta Sharma
373ec96051 Translated using Weblate (Nepali)
Currently translated at 100.0% (535 of 535 strings)
2020-03-15 00:37:27 +01:00
Software In Interlingua
0876cdd697 Translated using Weblate (Interlingua)
Currently translated at 36.4% (195 of 535 strings)
2020-03-15 00:37:05 +01:00
anonymous
fcc806615e Translated using Weblate (Polish)
Currently translated at 100.0% (535 of 535 strings)
2020-03-15 00:37:01 +01:00
Darko Ristovski
0486ccb0d4 Translated using Weblate (Macedonian)
Currently translated at 73.4% (393 of 535 strings)
2020-03-15 00:37:00 +01:00
B0pol
dc1312d58a Translated using Weblate (Esperanto)
Currently translated at 100.0% (535 of 535 strings)
2020-03-15 00:36:56 +01:00
nautilusx
878a5dba60 Translated using Weblate (German)
Currently translated at 100.0% (535 of 535 strings)
2020-03-15 00:36:54 +01:00
Tobias Groza
f8cc3180e8 Merge pull request #2309 from mauriciocolli/feed
Feed order and subscriptions groups
2020-03-14 18:15:57 +01:00
Mauricio Colli
97f5490c13 Add help dialog to feed screen
Help to a possible confusion or simply awareness that NewPipe has both
ways to load the feed.
2020-03-14 13:24:25 -03:00
Tobias Groza
a4babc10c0 Merge pull request #3225 from mauriciocolli/improve-build-branch
Change share title to differentiate multiple builds
2020-03-14 10:18:36 +01:00
Alexander--
512046e300 Fix navigating to action bar buttons on API 28
Keyboard focus clusters prevent that from working, so
we simply remove all focus clusters.

While they are generally a good idea, focus clusters were created
with Chrome OS and it's keyboard-driven interface in mind - there is no
documented way to move focus between clusters using only IR remote.
As such, there are no negative consequences to disabling them on Android TV.
2020-03-14 14:47:02 +06:59
Mauricio Colli
6a9a0f1e73 Add tests for migrations in the Room database
Doing this increase the level of reliability of migrations, as we can be
pretty much more confident of avoiding problems with them.
2020-03-14 00:12:54 -03:00
Mauricio Colli
ac44ed0862 Localize duration strings used in feed settings using plurals 2020-03-14 00:12:53 -03:00
Mauricio Colli
b62142db82 Detect if the subscription list should be shown as a grid
Also used proper string keys for the preferences, left a TODO to fix it
in other places later.
2020-03-14 00:12:52 -03:00
Mauricio Colli
f01e40e671 Simplify screen handling in feed group dialog 2020-03-14 00:12:51 -03:00
Mauricio Colli
d8b9d353aa Add a confirmation dialog when deleting a feed group 2020-03-14 00:12:50 -03:00
Mauricio Colli
98c65d8ddb Don't expose MutableLiveData in view models 2020-03-14 00:12:48 -03:00
Mauricio Colli
597859eb23 Disable buttons when processing actions in the feed dialogs 2020-03-14 00:12:47 -03:00
Mauricio Colli
34082c40d3 Fix behavior of the feed group dialog under some screen sizes/scales 2020-03-14 00:12:46 -03:00
Mauricio Colli
d1d5f6821f Implement feed groups manual sorting
Now, the user can sort its groups to his liking even after he created
them.

Also updated the database diagram to reflect the table's new column.
2020-03-14 00:12:45 -03:00
Mauricio Colli
50714c3006 Add ability to cancel a feed update through a notification action
- Change prefetch value default so each parallel rail buffers less
items.
2020-03-14 00:12:44 -03:00
Mauricio Colli
18a40168d9 Add Groupie library to the credit list in the about page 2020-03-14 00:12:43 -03:00
Mauricio Colli
2c783ff911 Stick info header when selecting subscriptions in the feed group dialog
- Avoid creating plural translation by using a different wording
2020-03-14 00:12:42 -03:00
Mauricio Colli
3f32573638 Replace hardcoded value that represents the group "All" with a constant 2020-03-14 00:12:41 -03:00
Mauricio Colli
5ea323ce02 New option to use dedicated feed sources for services that support it
YouTube, for example, has a dedicated feed which was built to be used
like this. It comes with some caveats though, like lacking enough
information about the items and returning a limited amount of them.

Nonetheless, a nice option for users that like speedy updates but don't
mind this issue.
2020-03-14 00:12:39 -03:00
Mauricio Colli
b2f317ab7c Load only the selected group and customizable updated status timeout
Now only the subscriptions from the selected group by the user will be
loaded.

Also add an option to decide how much time have to pass since the last
refresh before the subscription is deemed as not up to date. This helps
when a subscription appear in multiple groups, since updating in one
will not require to be fetched again in the others.
2020-03-14 00:12:38 -03:00
Mauricio Colli
2948e4190b Change feed groups header title and icon from feed representing "All" 2020-03-14 00:12:37 -03:00
Mauricio Colli
f05b8c9542 Expand import/export options by default when subscriptions list is empty 2020-03-14 00:12:36 -03:00
Mauricio Colli
8b87893248 Update Groupie list library to v2.7.0 2020-03-14 00:12:35 -03:00
Mauricio Colli
a93e2cdc30 Quick fix for NPE when exiting the feed fragment 2020-03-14 00:12:34 -03:00
Mauricio Colli
f69b6c85f8 Fix alignment issues in group creator dialog 2020-03-14 00:12:33 -03:00
Mauricio Colli
20a4bb0936 Implement new feed and subscriptions groups
- Introduce Groupie for easier lists implementations
- Use some of the new components of the Android Architecture libraries
- Add a bunch of icons for groups, using vectors, which still is
compatible with older APIs through the compatibility layer
2020-03-14 00:12:31 -03:00
Mauricio Colli
e8ab5aacc7 Setup initial database for feed implementation
- Update the database diagram
- Add new migration for the new tables and fields
- Enable schema exports
2020-03-14 00:12:30 -03:00
Mauricio Colli
0e2f062148 Disable database destructive migration fallback
This really shouldn't be enabled, as this database is not just a temp
one. Making the mistake of shipping the app without a proper migration
would cause a big problem.

Really hard to happen but an error is far better than data loss.
2020-03-14 00:12:29 -03:00
Mauricio Colli
d247d32221 Change share title as well to differentiate multiple builds 2020-03-13 20:11:24 -03:00
Mauricio Colli
89e3292ced Move code with lower priority to the bottom of the file 2020-03-13 20:11:22 -03:00
Tobias Groza
c2535d7764 Merge pull request #3195 from B0pol/second
Fix seek duration not showing
2020-03-13 23:27:37 +01:00
bopol
200121477c Fix seek duration not showing 2020-03-13 23:12:10 +01:00
Tobias Groza
d23b63ca83 Merge pull request #3177 from wb9688/yt-music
Accept music.youtube.com in manifest
2020-03-13 23:02:48 +01:00
TobiGr
9f91043131 Merge remote-tracking branch 'Weblate/dev' into dev 2020-03-13 22:50:15 +01:00
Tobias Groza
c668620c97 Merge pull request #3196 from mauriciocolli/fix-app-glitch
Fix visual glitch when exiting the app
2020-03-13 22:39:52 +01:00
Tobias Groza
0ee78769a1 Merge pull request #3224 from B0pol/buttons_player
Fix captions overtaking mute button
2020-03-13 22:16:30 +01:00
bopol
95f0e60343 fix captions overtaking mute button 2020-03-13 19:50:11 +01:00
Hosted Weblate
c35b13b3e2 Merge branch 'origin/dev' into Weblate. 2020-03-12 10:50:06 +01:00
Igor Nedoboy
1f42491284 Translated using Weblate (Russian)
Currently translated at 100.0% (536 of 536 strings)
2020-03-12 10:50:04 +01:00
kapodamy
ca8f8e0ee9 misc changes
* read "SeekPreRoll" from the source track (if available)
* use the longest track duration as segment duration, instead of the video track duration
* do not hardcode the "Cue" reserved space behavior
* do not hardcode the "EBML Void" element, unreported issue. The size was not properly calculated
* rewrite the key-frame picking
* remove writeInt(), writeFloat() and writeShort() methods, use inline code
* set "SeekPreRoll" and "CodecDelays" values on output tracks (if available)
* rewrite the "Cluster" maker
* rewrite the code of how "Cluster" sizes are written

Fix encode() method (the reason of this commit/pull-request):
* Use the unsigned shift operator instead of dividing the value, due precession lost
2020-03-12 00:50:14 -03:00
Alexander--
9cb3cf250c Intercept ActivityNotFoundException for ACTION_MANAGE_OVERLAY_PERMISSION 2020-03-12 05:32:20 +06:59
Alexander--
1cc5a67d82 Fix focus getting stuck by cycling within the same list item 2020-03-12 05:29:37 +06:59
Alexander--
fa6823599a Merge remote-tracking branch 'newpipe/dev' into rebase 2020-03-12 04:48:37 +06:59
Tobias Groza
f7822a448e Merge pull request #3133 from Stypox/gradle-app-id-suffix
Change app id based on current git branch
2020-03-11 22:41:52 +01:00
Hosted Weblate
29edb8c8a1 Merge branch 'origin/dev' into Weblate. 2020-03-11 22:16:47 +01:00
Xiang Xu
d2403d1b34 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:47 +01:00
Jeff Huang
c296634168 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:46 +01:00
anonymous
ead22fa325 Translated using Weblate (French)
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:46 +01:00
JoC
3265cdc3e5 Translated using Weblate (Spanish)
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:46 +01:00
Software In Interlingua
8806981e64 Translated using Weblate (Interlingua)
Currently translated at 26.6% (143 of 536 strings)
2020-03-11 22:16:45 +01:00
random r
04c7a66eb4 Translated using Weblate (Italian)
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:38 +01:00
WaldiS
0a32314156 Translated using Weblate (Polish)
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:37 +01:00
Yaron Shahrabani
6cdf97dfed Translated using Weblate (Hebrew)
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:37 +01:00
zeritti
17c140c03d Translated using Weblate (Czech)
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:36 +01:00
AioiLight
dcdabe4551 Translated using Weblate (Japanese)
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:36 +01:00
Enol P
a0823b2fda Translated using Weblate (Asturian)
Currently translated at 51.1% (274 of 536 strings)
2020-03-11 22:16:35 +01:00
Olexandr Nesterenko
afcda3774c Translated using Weblate (Ukrainian)
Currently translated at 93.2% (500 of 536 strings)
2020-03-11 22:16:34 +01:00
nautilusx
f895e225d4 Translated using Weblate (German)
Currently translated at 99.8% (535 of 536 strings)
2020-03-11 22:16:33 +01:00
anonymous
d0a5f757ad Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:33 +01:00
Eduardo Caron
b43bc7f8e3 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (536 of 536 strings)
2020-03-11 22:16:32 +01:00
Florian
c09e833627 Translated using Weblate (French)
Currently translated at 99.8% (535 of 536 strings)
2020-03-11 22:16:29 +01:00
Tobias Groza
33475ef403 Merge pull request #3197 from mauriciocolli/fix-main-tabs
Fix bug in main screen tabs state management
2020-03-11 22:03:16 +01:00
undeadfox
73e14af1e3 Translated using Weblate (Russian)
Currently translated at 99.8% (535 of 536 strings)
2020-03-11 21:57:38 +01:00
undeadfox
158cd83d17 Translated using Weblate (Russian)
Currently translated at 99.6% (534 of 536 strings)
2020-03-11 21:56:58 +01:00
Igor Nedoboy
d1b1b77a4c Translated using Weblate (Russian)
Currently translated at 99.6% (534 of 536 strings)
2020-03-11 21:56:58 +01:00
Hosted Weblate
bc6ecd4101 Merge branch 'origin/dev' into Weblate. 2020-03-08 17:33:06 +01:00
Xiang Xu
9c0d44ed9c Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:33:02 +01:00
Jeff Huang
ed5e99cfee Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:33:02 +01:00
Éfrit
6ef75b3645 Translated using Weblate (French)
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:33:02 +01:00
IQBAL AL FATAH
8143783cc5 Translated using Weblate (Indonesian)
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:32:57 +01:00
Sylke Vicious
454efa5426 Translated using Weblate (Italian)
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:32:55 +01:00
WaldiS
51e3905cd4 Translated using Weblate (Polish)
Currently translated at 99.6% (532 of 534 strings)
2020-03-08 17:32:55 +01:00
Yaron Shahrabani
b61c8d5a9e Translated using Weblate (Hebrew)
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:32:54 +01:00
Milo Ivir
583451ee02 Translated using Weblate (Croatian)
Currently translated at 82.0% (438 of 534 strings)
2020-03-08 17:32:53 +01:00
Krysa Czech
8e779c9ad1 Translated using Weblate (Czech)
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:32:53 +01:00
Vojtěch Šamla
b0c631709f Translated using Weblate (Czech)
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:32:53 +01:00
Osoitz
225d7dca7e Translated using Weblate (Basque)
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:32:52 +01:00
nautilusx
5c5f4ad29f Translated using Weblate (German)
Currently translated at 99.8% (533 of 534 strings)
2020-03-08 17:32:52 +01:00
Emin Tufan Çetin
cb2cb2eab5 Translated using Weblate (Turkish)
Currently translated at 100.0% (534 of 534 strings)
2020-03-08 17:32:51 +01:00
Stypox
64c289c014 Merge pull request #3184 from opusforlife2/relocate_settings
Relocate two settings from Appearance to Content
2020-03-08 17:12:38 +01:00
Mauricio Colli
f2526ed5a8 Fix bug in main screen tabs state management
Tabs were not being destroyed/restored correctly due to a call to a
method that populated the view pager before it even had a chance of
restoring itself.

The solution was to null out the adapter before calling that method so
the view pager will postpone the populating process.
2020-03-08 09:09:04 -03:00
Stypox
8fa29ffc19 Merge pull request #3165 from karkaminski/mute_button
Mute button
2020-03-08 10:29:25 +01:00
Stypox
029758fdff Merge pull request #3046 from XiangRongLin/shareDownload
Fix bug causing crashes when sharing a downloaded file.
2020-03-08 09:44:04 +01:00
Tobias Groza
9db2197be1 Improve code style
Co-Authored-By: B0pol <bopol@e.email>
2020-03-07 20:09:05 +01:00
yausername
3e1e07e468 refactor checkpointing 2020-03-07 20:09:05 +01:00
yausername
c6b062a698 checkpoint db before export 2020-03-07 20:09:05 +01:00
Mauricio Colli
ecb1b45280 Fix visual glitch when exiting the app 2020-03-07 15:55:55 -03:00
karol
55d7be0b2f null risk issue 2020-03-05 19:07:46 +01:00
poolitzer
4e37a762d2 Further minor improvements 2020-03-04 20:31:36 -08:00
Poolitzer
2ca580dc16 minor improvements of sentences
Co-Authored-By: Stypox <stypox@pm.me>
2020-03-04 20:21:44 -08:00
karol
83c7c4a68e mute/unmute text change in action bar 2020-03-04 18:53:17 +01:00
karol
1ae8a72ba6 mute icon change in action bar 2020-03-04 18:37:04 +01:00
opusforlife2
7da11206da Relocate two settings from Appearance to Content 2020-03-04 18:41:41 +05:30
Hosted Weblate
4cd9e0f97e Merge branch 'origin/dev' into Weblate. 2020-03-04 10:09:59 +01:00
Isak Holmström
5c559e4cc6 Translated using Weblate (Swedish)
Currently translated at 86.8% (463 of 533 strings)
2020-03-04 10:09:59 +01:00
IQBAL AL FATAH
371280ff76 Translated using Weblate (Indonesian)
Currently translated at 100.0% (533 of 533 strings)
2020-03-04 10:09:58 +01:00
Mohd. A
ebdf48899f Translated using Weblate (Arabic)
Currently translated at 98.3% (524 of 533 strings)
2020-03-04 10:09:58 +01:00
Sylke Vicious
6962882e75 Translated using Weblate (Italian)
Currently translated at 100.0% (533 of 533 strings)
2020-03-04 10:09:57 +01:00
AioiLight
e1fb8831de Translated using Weblate (Japanese)
Currently translated at 100.0% (533 of 533 strings)
2020-03-04 10:09:57 +01:00
IQBAL AL FATAH
e421d47b23 Translated using Weblate (Indonesian)
Currently translated at 100.0% (533 of 533 strings)
2020-03-04 10:09:51 +01:00
Dani Pragustia
9b65b000db Translated using Weblate (Indonesian)
Currently translated at 100.0% (533 of 533 strings)
2020-03-04 10:09:50 +01:00
Stypox
d5c29bf1b5 Merge pull request #3160 from XiangRongLin/b3127
Hide 5, 15, 25 second seek options if inexact seek is enabled
2020-03-03 21:58:18 +01:00
Stypox
4bb6a146e8 Update app/src/main/res/values/strings.xml 2020-03-03 21:51:46 +01:00
XiangRongLin
f7ef7a18ac Update app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java
Co-Authored-By: Stypox <stypox@pm.me>
2020-03-03 21:41:15 +01:00
Stypox
0a87f13ceb Merge pull request #3107 from comradekingu/patch-11
Spelling: Some devices are incompatible
2020-03-03 21:08:30 +01:00
Xiang Rong Lin
efb67b0fd4 Change toast string resource to be useable with different languages 2020-03-03 19:50:50 +01:00
Xiang Rong Lin
e3fff4356a Show a toast when seek duration was rounded up 2020-03-03 19:40:10 +01:00
Xiang Rong Lin
7d3b21582c Use DateUtils constant for 1000 2020-03-03 19:40:10 +01:00
Xiang Rong Lin
6a42714326 Round seek duration up instead of setting it to 10 seconds 2020-03-03 19:40:10 +01:00
Xiang Rong Lin
288a61895c Update inexact seek summary 2020-03-03 19:40:10 +01:00
Xiang Rong Lin
4463804338 Update seek options on inexact seek option change.
Reset to 10 seconds when previous value is not valid anymore
2020-03-03 19:40:10 +01:00
Xiang Rong Lin
57504acd00 If inexact seekt is used, hide 5,15,25 seconds seek duration options when opening settings 2020-03-03 19:40:10 +01:00
Poolitzer
3f118a7239 appending dots
Co-Authored-By: opusforlife2 <53176348+opusforlife2@users.noreply.github.com>
2020-03-02 21:08:34 -08:00
Poolitzer
d265382ddf missed this
because GitHub thought its funny to hide it for a reason.

Co-Authored-By: opusforlife2 <53176348+opusforlife2@users.noreply.github.com>
2020-03-02 20:56:03 -08:00
poolitzer
08dffad160 opus4improvements 2020-03-02 20:52:50 -08:00
poolitzer
afebd9b724 improvements 2020-03-02 16:38:23 -08:00
karol
840bb29c54 icon color change in action bar 2020-03-03 00:01:19 +01:00
karol
c79f09c119 mute button in actionbar, no color change 2020-03-02 22:52:58 +01:00
bopol
124340175a remove redundant code 2020-03-02 22:50:52 +01:00
bopol
07d1faf544 Links support for mediaccc and shortened invidious 2020-03-02 22:50:33 +01:00
karol
92ee51b8db resolved issues 2020-03-02 21:12:02 +01:00
Stypox
92f4010e8e Add more checks to prevent build failures in gradle branch suffix
- Add function `getGitWorkingBranch` that returns the current working branch, and "" if it could not be determined (either because git is not installed or because the directory is not a git repo).
- Make sure normalizedWorkingBranch is not empty (leading to an invalid app id terminating with `.`)
- Make normalizedWorkingBranch lowercase
- Add comments
2020-03-02 20:50:35 +01:00
Dani Pragustia
667a52427e Translated using Weblate (Indonesian)
Currently translated at 100.0% (533 of 533 strings)
2020-03-02 18:59:04 +01:00
KOK ASiiK
e7063b2c69 Translated using Weblate (Indonesian)
Currently translated at 100.0% (533 of 533 strings)
2020-03-02 18:59:04 +01:00
wb9688
add08ead14 Accept music.youtube.com in manifest 2020-03-02 17:58:48 +01:00
poolitzer
5d7eba30a6 Merge remote-tracking branch 'upstream/dev' into templates 2020-03-01 12:36:32 -08:00
Hosted Weblate
7e2bec85ee Merge branch 'origin/dev' into Weblate. 2020-03-01 20:58:25 +01:00
B0pol
ca2e9d4afa Translated using Weblate (French)
Currently translated at 100.0% (533 of 533 strings)
2020-03-01 20:58:21 +01:00
Igor Nedoboy
deafe93e6c Translated using Weblate (Russian)
Currently translated at 100.0% (533 of 533 strings)
2020-03-01 20:58:20 +01:00
B0pol
5257c5a0a8 Translated using Weblate (Esperanto)
Currently translated at 100.0% (533 of 533 strings)
2020-03-01 20:58:19 +01:00
karol
a6fcb70d12 fix typo 2020-03-01 16:42:46 +01:00
karol
ee75909c80 set mute button in main player from other player 2020-03-01 13:02:20 +01:00
poolitzer
e2cb927e1f Merge branch 'templates' of https://github.com/Poolitzer/NewPipe into templates 2020-02-28 15:32:20 -08:00
poolitzer
46165f4a4f adding version section to bug report 2020-02-28 15:32:14 -08:00
karol
0400fcb106 mute icon in main refactored 2020-02-27 23:30:17 +01:00
karol
40f54aea53 mute intent send between main-bckgrnd-popup players 2020-02-27 22:30:18 +01:00
Poolitzer
d9a8e4d797 NewPipe is an app though :(
And its our app!

Co-Authored-By: Tobias Groza <TobiGr@users.noreply.github.com>
2020-02-26 19:50:11 -08:00
Alexander--
6a3a72eb06 NewPipeRecyclerView should allow scrolling down by default 2020-02-26 06:40:46 +06:59
Alexander--
56544802e8 Merge remote-tracking branch 'newpipe/dev' into rebase 2020-02-26 05:56:09 +06:59
poolitzer
1d9ffffc49 Minor improvements 2020-02-24 14:18:48 -08:00
poolitzer
01c1fa0393 B0pol suggested improvements 2020-02-23 16:16:18 -08:00
karol
c4d5886059 icon change implemented in queque 2020-02-23 23:44:16 +01:00
karol
2a63f2a3a6 mute-buton in queue layout and logic, but no icon change 2020-02-23 23:31:30 +01:00
karol
cc559dc9ce isMuted() added 2020-02-23 22:55:34 +01:00
karol
4415888324 mute-button implementation in main player 2020-02-23 22:32:23 +01:00
karol
dc6a0e3eec mute-button added to activity_main_player.xml's 2020-02-23 21:28:40 +01:00
Stypox
3434ff4d45 Merge branch 'gradle-app-id-suffix' of github.com:Stypox/NewPipe into gradle-app-id-suffix 2020-02-23 20:57:50 +01:00
Stypox
030e5ab894 Add comment to gradle 2020-02-23 20:56:56 +01:00
Stypox
d46cd265f5 Merge branch 'dev' into gradle-app-id-suffix 2020-02-23 10:04:19 +01:00
Stypox
a3bce7f7ca Change app id based on current git branch
This enables to install multiple builds from different branches at once
2020-02-23 09:46:42 +01:00
Poolitzer
30f66d012e Update PULL_REQUEST_TEMPLATE.md 2020-02-22 20:16:14 -08:00
poolitzer
495b495f27 deleting old template 2020-02-22 20:03:38 -08:00
poolitzer
e8f28ebc43 Merge branch 'templates' of https://github.com/Poolitzer/NewPipe into templates 2020-02-22 20:02:11 -08:00
Poolitzer
01dcf550cf Update issue templates 2020-02-22 19:56:56 -08:00
Allan Nordhøy
91bd0be39e Spelling: Some devices are incompatible 2020-02-17 14:54:45 +01:00
Alexander--
5bd0c701c7 Merge remote-tracking branch 'newpipe/dev' into rebase 2020-02-11 08:01:05 +06:59
Alexander--
50a2771d87 Merge remote-tracking branch 'newpipe/dev' into rebase 2020-02-07 07:39:40 +06:59
Alexander--
e6df041613 Merge remote-tracking branch 'newpipe/dev' into rebase 2020-02-06 02:44:08 +06:59
Xiang Rong Lin
cf377c2591 Fix bug causing crashes when sharing a downloaded file. 2020-02-03 10:43:08 +01:00
Alexander--
caa1de8aff Rename FireTvUtils to AndroidTvUtils and isFireTv() to isTV()
Because those methods are no longer exclusive to Amazon devices
2020-01-29 03:16:33 +06:59
Alexander--
fac13fb8cb Merge remote-tracking branch 'newpipe/dev' into rebase 2020-01-29 03:10:16 +06:59
Alexander--
55d2637214 Merge remote-tracking branch 'newpipe/dev' into rebase 2020-01-01 12:55:05 +06:59
Alexander--
8c9015b57b Remove commented code 2019-12-10 21:21:35 +06:59
Alexander--
a0cb96abff Merge remote-tracking branch 'newpipe/dev' into rebase 2019-12-10 21:20:26 +06:59
Alexander--
3f51114129 Improve usability of settings on TV devices
* Add focus overlay to SettingsActivity
* Make screen "Contents of Main Page" navigable from remote
2019-12-01 12:43:38 +06:59
Alexander--
29136d633a Intercept ActivityNotFoundException for ACTION_CAPTIONING_SETTINGS 2019-12-01 12:43:38 +06:59
Alexander--
20bff1389e Disable touchScreenBlocksFocus on AppBarLayout
For some inexplicable reason this attribute got
enabled by default on Android 9, which effectively
prevents details screen from working
2019-12-01 12:41:11 +06:59
Alexander--
106e538d08 Excpicitly disable touchscreen requirement 2019-12-01 12:41:11 +06:59
Alexander--
dc7ae3917e Leanback launcher support 2019-12-01 12:41:11 +06:59
Alexander--
c0fb96a911 Release seekbar on any confirmation key, not just DPAD_CENTER 2019-12-01 12:41:11 +06:59
Alexander--
a1e02f7704 Default to landscape orientation for Android TV 2019-12-01 12:41:11 +06:59
Alexander--
436c75ca6c Make comment pic explicitly non-focusable 2019-12-01 12:41:11 +06:59
Alexander--
7d75950624 Disable srolling down comment list while comments are loading
Prevents comment list from losing focus to some outside View
when user tries to scroll down after reaching "end"
2019-12-01 12:41:11 +06:59
Alexander--
5f051a9766 More fixes to comment focus handling 2019-12-01 12:41:11 +06:59
Alexander--
5716cf8cb2 Add hints for focus transition from description 2019-12-01 12:41:11 +06:59
Alexander--
7bb5cacb0d Special MovementMethod for video description
Video descriptions can be very long. Some of them are
basically walls of text with couple of lines at top or bottom.
They are also not scrolled within TextView itself, - instead
NewPipe expects user to scroll their containing ViewGroup.
This renders all builtin MovementMethod implementations useless.

This commit adds a new MovementMethod, that uses requestRectangleOnScreen
to intelligently re-position the TextView within it's scrollable container.
2019-12-01 12:41:11 +06:59
Alexander--
9801cf50e3 Save/restore focused item 2019-12-01 12:41:11 +06:59
Alexander--
b5558a8b78 Remove FixedGridLayoutManager 2019-12-01 12:41:11 +06:59
Alexander--
a7c31e6bcc RecyclerView scroll fixes
* Move all focus-related work arouns to NewPipeRecyclerView
* Try to pass focus within closer parents first
* Do small arrow scroll if there are not more focusables in move direction
2019-12-01 12:41:11 +06:59
Alexander
6e76610f30 Eliminate bunch of ExoPlayer warnings 2019-12-01 12:41:11 +06:59
Alexander
6da2b399e8 Allow comment links (if any) to gain focus 2019-12-01 12:41:11 +06:59
Alexander
79c962fc88 More robust focus search in SuperScrollLayoutManager
FocusFinder has glitches when some of target Views have different size.
Fortunately LayoutManager can redefine focus search strategy to override
the default behavior.
2019-12-01 12:41:11 +06:59
Alexander
28fb864ed0 Focus video view thumbnail after it is loaded 2019-12-01 12:41:11 +06:59
Alexander
d23227d427 Implement global focus highlight 2019-12-01 12:41:11 +06:59
Alexander
eb6d26b6a4 Focus drawer when it opens
It is still buggy because of NavigationView (why the hell
is NavigationMenuView marked as focusable?) but at least initial
opening works as intended
2019-12-01 12:41:10 +06:59
Alexander
a8a28294d3 Support for seeking videos in directional navigation mode 2019-12-01 12:41:10 +06:59
Alexander
7db1ba40eb Do not allow focus to escape from open DrawerLayout
Upstream DrawerLayout does override addFocusables, but
incorrectly checks for isDrawerOpen instread of isDrawerVisible
2019-12-01 12:41:10 +06:59
Alexander
d8bd8d87ec Make player screen controls into buttons
Buttons are more likely to have "correct" styling and are
focusable/clickable out of box
2019-12-01 12:41:10 +06:59
Alexander
d29e0aa1a7 Improve usability of MainVideoActivity with directional navigation
* Hide player controls when back is pressed (only on TV devices)
* Do not hide control after click unless in touch mode
* Show player controls on dpad usage
* Notably increase control hide timeout when not in touch mode
2019-12-01 12:41:10 +06:59
Alexander
644ad110c0 Make description focusable, so TV users can scroll it 2019-12-01 12:41:10 +06:59
Alexander
6791de5fc0 Do not discriminate against non-Amazon TV boxes 2019-12-01 12:41:10 +06:59
Alexander
1bb96ef405 When child of CoordinatorLayout wants focus, show it!
The same logic is present in RecyclerView, ScrollView etc.
Android really should default to this behavior for all Views
with isScrollContainer = true
2019-12-01 12:41:10 +06:59
Alexander
7dc4ccf144 MainPlayer: make title and subtitle non-focusable
Focus isn't needed for marquee, only selection
2019-12-01 12:41:10 +06:59
Alexander
2b39438eba Fix scrolling in main screen grid
GridLayoutManager is buggy - https://issuetracker.google.com/issues/37067220:
it randomly loses or incorrectly assigns focus when being scrolled via
direction-based navigation. This commit reimplements onFocusSearchFailed()
on top of scrollBy() to work around that problem.

Ordinary touch-based navigation should not be affected.
2019-12-01 12:41:10 +06:59
Alexander
8952e2b0cd Close DrawerLayout on back button press 2019-12-01 12:41:10 +06:59
Alexander
4806ac62ee Correctly move focus from toolbar search bar to dropdown
We don't hide MainFragment when search is show, so FocusFinder
sometimes gives focus to (obscured) main content
2019-12-01 12:41:10 +06:59
Alexander
eaa1179572 Fix scrolling comments list
AppBarLayout mostly gets it, but we still need to uphold our own part -
expanding it back after focus returns to it
2019-12-01 12:41:10 +06:59
1229 changed files with 35180 additions and 16551 deletions

View File

@@ -12,57 +12,53 @@ add a comment to it. You'll see exactly what is sent, the system is 100% transpa
## Issue reporting/feature requests
* Search the [existing issues](https://github.com/TeamNewPipe/NewPipe/issues) first to make sure your issue/feature
hasn't been reported/requested before
* Check whether your issue/feature is already fixed/implemented
* Check if the issue still exists in the latest release/beta version
* If you are an Android/Java developer, you are always welcome to fix/implement an issue/a feature yourself. PRs welcome!
hasn't been reported/requested before.
* Check whether your issue/feature is already fixed/implemented.
* Check if the issue still exists in the latest release/beta version.
* If you are an Android/Java developer, you are always welcome to fix an issue or implement a feature yourself. PRs welcome!
* We use English for development. Issues in other languages will be closed and ignored.
* Please only add *one* issue at a time. Do not put multiple issues into one thread.
* When reporting a bug please give us a context, and a description how to reproduce it.
* Issues that only contain a generated bug report, but no description might be closed.
* Follow the template! Issues or feature requests not matching the template might be closed.
## Bug Fixing
* If you want to help NewPipe to become free of bugs (this is our utopic goal for NewPipe), you can send us an email to
tnp@newpipe.schabi.org to let me know that you intend to help. We'll send you further instructions. You may, on request,
register at our [Sentry](https://sentry.schabi.org) instance (see section "Crash reporting" for more information.
<a href="mailto:tnp@newpipe.schabi.org">tnp@newpipe.schabi.org</a> to let us know that you intend to help. We'll send you further instructions. You may, on request,
register at our [Sentry](https://sentry.schabi.org) instance (see section "Crash reporting" for more information).
## Translation
* NewPipe can be translated via [Weblate](https://hosted.weblate.org/projects/newpipe/strings/). You can log in there
* NewPipe is translated via [Weblate](https://hosted.weblate.org/projects/newpipe/strings/). You can log in there
with your GitHub account.
* If the language you want to translate is not on Weblate, you can add it: see [How to add a new language](https://github.com/TeamNewPipe/NewPipe/wiki/How-to-add-a-new-language-to-NewPipe) in the wiki.
## Code contribution
* Stick to NewPipe's style conventions (well, just look the other code and then do it the same way :))
* Do not bring non-free software (e.g., binary blobs) into the project. Also, make sure you do not introduce Google
* Stick to NewPipe's style conventions: follow [checkStyle](https://github.com/checkstyle/checkstyle). It will run each time you build the project.
* Do not bring non-free software (e.g. binary blobs) into the project. Also, make sure you do not introduce Google
libraries.
* Stick to [F-Droid contribution guidelines](https://f-droid.org/wiki/page/Inclusion_Policy)
* Make changes on a separate branch, not on the master branch. This is commonly known as *feature branch workflow*. You
may then send your changes as a pull request on GitHub. Patches to the email address mentioned in this document might
not be considered, GitHub is the primary platform. (This only affects you if you are a member of TeamNewPipe)
* Stick to [F-Droid contribution guidelines](https://f-droid.org/wiki/page/Inclusion_Policy).
* Make changes on a separate branch with a meaningful name, not on the master neither dev branch. This is commonly known as *feature branch workflow*. You
may then send your changes as a pull request (PR) on GitHub.
* When submitting changes, you confirm that your code is licensed under the terms of the
[GNU General Public License v3](https://www.gnu.org/licenses/gpl-3.0.html).
* Please test (compile and run) your code before you submit changes! Ideally, provide test feedback in the PR
description. Untested code will **not** be merged!
* Try to figure out yourself why builds on our CI fail.
* Make sure your PR is up-to-date with the rest of the code. Often, a simple click on "Update branch" will do the job,
but if not, you are asked to merge the master branch manually and resolve the problems on your own. That will make the
but if not, you are asked to rebase the dev branch manually and resolve the problems on your own. You can find help [on the wiki](https://github.com/TeamNewPipe/NewPipe/wiki/How-to-merge-a-PR). That will make the
maintainers' jobs way easier.
* Please show intention to maintain your features and code after you contributed it. Unmaintained code is a hassle for
the core developers, and just adds work. If you do not intend to maintain features you contributed, please think again
about submission, or clearly state that in the description of your PR.
* Respond yourselves if someone requests changes or otherwise raises issues about your PRs.
* Check if your contributions align with the [fdroid inclusion guidelines](https://f-droid.org/en/docs/Inclusion_Policy/).
* Check if your submission can be build with the current fdroid build server setup.
* Send PR that only cover one specific issue/solution/bug. Do not send PRs that are huge and consists of multiple
independent solutions.
## Communication
* WE DO NOW HAVE A MAILING LIST: [newpipe@list.schabi.org](https://list.schabi.org/cgi-bin/mailman/listinfo/newpipe).
* There is an IRC channel on Freenode which is regularly visited by the core team and other developers:
[#newpipe](irc:irc.freenode.net/newpipe). [Click here for Webchat](https://webchat.freenode.net/?channels=newpipe)!
* If you want to get in touch with the core team or one of our other contributors you can send an email to
tnp(at)schabi.org. Please do not send issue reports, they will be ignored and remain unanswered! Use the GitHub issue
<a href="mailto:tnp@newpipe.schabi.org">tnp@newpipe.schabi.org</a>. Please do not send issue reports, they will be ignored and remain unanswered! Use the GitHub issue
tracker described above!
* Feel free to post suggestions, changes, ideas etc. on GitHub, IRC or the mailing list!
* Feel free to post suggestions, changes, ideas etc. on GitHub or IRC!

View File

@@ -1,3 +0,0 @@
- [ ] I carefully read the [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md) and agree to them.
- [ ] I checked if the issue/feature exists in the latest version.
- [ ] I did use the [incredible bugreport to markdown converter](https://teamnewpipe.github.io/CrashReportToMarkdown/) to paste bug reports.

46
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,46 @@
---
name: Bug report
about: Create a bug report to help us improve
labels: bug
assignees: ''
---
<!--
Oh no, a bug! It happens. Thanks for reporting an issue with NewPipe. If this is your first bug report, read the following information before proceeding:
Please note, we only support the latest version of NewPipe. In order to check your app version, open the left drawer and click on "About". If you don't have the latest version, upgrade to it and reproduce the problem before opening the issue. The release page (https://github.com/TeamNewPipe/NewPipe/releases/latest) is where you can get it.
P.S.: Our contribution guidelines might be a nice document to read before you fill out the report :) You can find it at https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md
To make it easier for us to help you please enter detailed information in the template we have provided below. If a section isn't relevant, just delete it, though it would be helpful to still provide as much detail as possible.
-->
<!-- The comments between these brackets won't show up in the submitted issue (as you can see in the preview). -->
### Version
<!-- Which version are you using? Hopefully the latest! We just told you that above! -->
-
### Steps to reproduce the bug
<!--
1. Go to '...'
2. Press on '....'
3. Swipe down to '....'
-->
<!-- If you can't cause the bug to show up again reliably (and hence don't have a proper set of steps to give us), please still try to give as many details as possible on how you think you encountered the bug. -->
### Expected behavior
<!-- Tell us what you expect to happen. -->
### Actual behaviour
<!-- Tell us what happens instead. -->
### Screenshots/Screen recordings
<!-- If applicable, add screenshots or a screen recording to help explain your problem. GitHub supports uploading them directly in the issue text box. If your file is too big for Github to accept, feel free to paste a link from an image/video hoster here instead. -->
### Logs
<!-- If your bug includes a crash (where you're shown the Error Report page with a bunch of info), copy it to the clipboard (there is a share button for this), head over to our bug report to markdown converter at https://teamnewpipe.github.io/CrashReportToMarkdown/ and paste it. Copy the converted text (it is MUCH easier to read this way) from there and paste it here: -->
<!-- That's right, here! -->

View File

@@ -0,0 +1,39 @@
---
name: Feature request
about: Suggest an idea for this project
labels: enhancement
assignees: ''
---
<!-- Hey. Our contribution guidelines (https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md) might be an appropriate
document to read before you fill out the request :) -->
<!-- The comments between these brackets won't show up in the submitted issue (as you can see in the preview). -->
#### Describe the feature you want
<!-- A clear and concise description of what you want to happen. PLEASE MAKE SURE it is one feature ONLY. You should open separate issues for separate feature requests, because those issues will be used to track their status.
Example: *I think it would be nice if you add feature Y which makes X possible.*
Optionally, also describe alternatives you've considered.
Example: *Z is also a good alternative. Not as good as Y, but at least...* or *I considered Z, but that didn't turn out to be a good idea because...* -->
<!-- Write below this -->
#### Is your feature request related to a problem? Please describe it
<!-- A clear and concise description of what the problem is. Maybe the developers could brainstorm and come up with a better solution to your problem. If they exist, link to related Issues and/or PRs for developers to keep track easier.
Example: *I want to do X, but there is no way to do it.* -->
<!-- Write below this -->
#### Additional context
<!-- Add any other context, like screenshots, about the feature request here.
Example: *Here's a photo of my cat!* -->
<!-- Write below this -->
#### How will you/everyone benefit from this feature?
<!-- Convince us! How does it change your NewPipe experience and/or your life?
The better this paragraph is, the more likely a developer will think about working on it.
Example: *This feature will help us colonize the galaxy! -->
<!-- Write below this -->

View File

@@ -1 +1,28 @@
<!-- Hey there. Thank you so much for improving NewPipe. Please take a moment to fill out the following suggestion on how to structure this PR description. Having roughly the same layout helps everyone considerably :)-->
#### What is it?
- [ ] Bug fix (user facing)
- [ ] Feature (user facing)
- [ ] Code base improvement (dev facing)
- [ ] Meta improvement to the project (dev facing)
#### Description of the changes in your PR
<!-- While bullet points are the norm in this section, feel free to write a text instead if you can't fit it in a list -->
- record videos
- create clones
- take over the world
#### Fixes the following issue(s)
<!-- Also add reddit or other links which are relevant to your change. -->
-
#### Relies on the following changes
<!-- Delete this if it doesn't apply to you. -->
-
#### Testing apk
<!-- Ensure that you have your changes on a new branch which has a meaningful name. This name will be used as a suffix for the app ID to allow installing and testing multiple versions of NewPipe. Do NOT name your branches like "patch-0" and "feature-1". For example, if your PR implements a bug fix for comments, an appropriate branch name would be "commentfix". -->
debug.zip
#### Agreement
- [ ] I carefully read the [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md) and agree to them.

8
.gitignore vendored
View File

@@ -10,3 +10,11 @@
*~
.weblate
*.class
# vscode / eclipse files
*.classpath
*.project
*.settings
bin/
.vscode/
*.code-workspace

View File

@@ -5,13 +5,13 @@ android:
components:
# The BuildTools version used by NewPipe
- tools
- build-tools-28.0.3
- build-tools-29.0.3
# The SDK version used to compile NewPipe
- android-28
- android-29
before_install:
- yes | sdkmanager "platforms;android-28"
- yes | sdkmanager "platforms;android-29"
script: ./gradlew -Dorg.gradle.jvmargs=-Xmx1536m assembleDebug lintDebug testDebugUnitTest
licenses:

View File

@@ -4,10 +4,10 @@
<p align="center"><a href="https://f-droid.org/packages/org.schabi.newpipe/"><img src="https://f-droid.org/wiki/images/0/06/F-Droid-button_get-it-on.png"></a></p>
<p align="center">
<a href="https://github.com/TeamNewPipe/NewPipe" alt="GitHub release"><img src="https://img.shields.io/github/release/TeamNewPipe/NewPipe.svg" ></a>
<a href="https://github.com/TeamNewPipe/NewPipe/releases" alt="GitHub release"><img src="https://img.shields.io/github/release/TeamNewPipe/NewPipe.svg" ></a>
<a href="https://www.gnu.org/licenses/gpl-3.0" alt="License: GPLv3"><img src="https://img.shields.io/badge/License-GPL%20v3-blue.svg"></a>
<a href="https://travis-ci.org/TeamNewPipe/NewPipe" alt="Build Status"><img src="https://travis-ci.org/TeamNewPipe/NewPipe.svg"></a>
<a href="https://hosted.weblate.org/engage/NewPipe/" alt="Translation Status"><img src="https://hosted.weblate.org/widgets/NewPipe/-/svg-badge.svg"></a>
<a href="https://hosted.weblate.org/engage/newpipe/" alt="Translation Status"><img src="https://hosted.weblate.org/widgets/newpipe/-/svg-badge.svg"></a>
<a href="http://webchat.freenode.net/?channels=%23newpipe" alt="IRC channel: #newpipe"><img src="https://img.shields.io/badge/IRC%20chat-%23newpipe-brightgreen.svg"></a>
<a href="https://www.bountysource.com/teams/newpipe" alt="Bountysource bounties"><img src="https://img.shields.io/bountysource/team/newpipe/activity.svg?colorB=cd201f"></a>
</p>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,119 @@
package org.schabi.newpipe.database
import android.content.ContentValues
import android.database.sqlite.SQLiteDatabase
import androidx.room.Room
import androidx.room.testing.MigrationTestHelper
import androidx.sqlite.db.framework.FrameworkSQLiteOpenHelperFactory
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNull
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.schabi.newpipe.extractor.stream.StreamType
@RunWith(AndroidJUnit4::class)
class AppDatabaseTest {
companion object {
private const val DEFAULT_SERVICE_ID = 0
private const val DEFAULT_URL = "https://www.youtube.com/watch?v=cDphUib5iG4"
private const val DEFAULT_TITLE = "Test Title"
private val DEFAULT_TYPE = StreamType.VIDEO_STREAM
private const val DEFAULT_DURATION = 480L
private const val DEFAULT_UPLOADER_NAME = "Uploader Test"
private const val DEFAULT_THUMBNAIL = "https://example.com/example.jpg"
private const val DEFAULT_SECOND_SERVICE_ID = 0
private const val DEFAULT_SECOND_URL = "https://www.youtube.com/watch?v=ncQU6iBn5Fc"
}
@get:Rule
val testHelper = MigrationTestHelper(InstrumentationRegistry.getInstrumentation(),
AppDatabase::class.java.canonicalName, FrameworkSQLiteOpenHelperFactory())
@Test
fun migrateDatabaseFrom2to3() {
val databaseInV2 = testHelper.createDatabase(AppDatabase.DATABASE_NAME, Migrations.DB_VER_2)
databaseInV2.run {
insert("streams", SQLiteDatabase.CONFLICT_FAIL, ContentValues().apply {
// put("uid", null)
put("service_id", DEFAULT_SERVICE_ID)
put("url", DEFAULT_URL)
put("title", DEFAULT_TITLE)
put("stream_type", DEFAULT_TYPE.name)
put("duration", DEFAULT_DURATION)
put("uploader", DEFAULT_UPLOADER_NAME)
put("thumbnail_url", DEFAULT_THUMBNAIL)
})
insert("streams", SQLiteDatabase.CONFLICT_FAIL, ContentValues().apply {
// put("uid", null)
put("service_id", DEFAULT_SECOND_SERVICE_ID)
put("url", DEFAULT_SECOND_URL)
// put("title", null)
// put("stream_type", null)
// put("duration", null)
// put("uploader", null)
// put("thumbnail_url", null)
})
insert("streams", SQLiteDatabase.CONFLICT_FAIL, ContentValues().apply {
// put("uid", null)
put("service_id", DEFAULT_SERVICE_ID)
// put("url", null)
// put("title", null)
// put("stream_type", null)
// put("duration", null)
// put("uploader", null)
// put("thumbnail_url", null)
})
close()
}
testHelper.runMigrationsAndValidate(AppDatabase.DATABASE_NAME, Migrations.DB_VER_3,
true, Migrations.MIGRATION_2_3)
val migratedDatabaseV3 = getMigratedDatabase()
val listFromDB = migratedDatabaseV3.streamDAO().all.blockingFirst()
// Only expect 2, the one with the null url will be ignored
assertEquals(2, listFromDB.size)
val streamFromMigratedDatabase = listFromDB[0]
assertEquals(DEFAULT_SERVICE_ID, streamFromMigratedDatabase.serviceId)
assertEquals(DEFAULT_URL, streamFromMigratedDatabase.url)
assertEquals(DEFAULT_TITLE, streamFromMigratedDatabase.title)
assertEquals(DEFAULT_TYPE, streamFromMigratedDatabase.streamType)
assertEquals(DEFAULT_DURATION, streamFromMigratedDatabase.duration)
assertEquals(DEFAULT_UPLOADER_NAME, streamFromMigratedDatabase.uploader)
assertEquals(DEFAULT_THUMBNAIL, streamFromMigratedDatabase.thumbnailUrl)
assertNull(streamFromMigratedDatabase.viewCount)
assertNull(streamFromMigratedDatabase.textualUploadDate)
assertNull(streamFromMigratedDatabase.uploadDate)
assertNull(streamFromMigratedDatabase.isUploadDateApproximation)
val secondStreamFromMigratedDatabase = listFromDB[1]
assertEquals(DEFAULT_SECOND_SERVICE_ID, secondStreamFromMigratedDatabase.serviceId)
assertEquals(DEFAULT_SECOND_URL, secondStreamFromMigratedDatabase.url)
assertEquals("", secondStreamFromMigratedDatabase.title)
// Should fallback to VIDEO_STREAM
assertEquals(StreamType.VIDEO_STREAM, secondStreamFromMigratedDatabase.streamType)
assertEquals(0, secondStreamFromMigratedDatabase.duration)
assertEquals("", secondStreamFromMigratedDatabase.uploader)
assertEquals("", secondStreamFromMigratedDatabase.thumbnailUrl)
assertNull(secondStreamFromMigratedDatabase.viewCount)
assertNull(secondStreamFromMigratedDatabase.textualUploadDate)
assertNull(secondStreamFromMigratedDatabase.uploadDate)
assertNull(secondStreamFromMigratedDatabase.isUploadDateApproximation)
}
private fun getMigratedDatabase(): AppDatabase {
val database: AppDatabase = Room.databaseBuilder(ApplicationProvider.getApplicationContext(),
AppDatabase::class.java, AppDatabase.DATABASE_NAME)
.build()
testHelper.closeWhenFinished(database)
return database
}
}

View File

@@ -1,8 +1,9 @@
package org.schabi.newpipe.report;
import android.os.Parcel;
import androidx.test.filters.LargeTest;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.LargeTest;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -12,15 +13,16 @@ import org.schabi.newpipe.report.ErrorActivity.ErrorInfo;
import static org.junit.Assert.assertEquals;
/**
* Instrumented tests for {@link ErrorInfo}
* Instrumented tests for {@link ErrorInfo}.
*/
@RunWith(AndroidJUnit4.class)
@LargeTest
public class ErrorInfoTest {
@Test
public void errorInfo_testParcelable() {
ErrorInfo info = ErrorInfo.make(UserAction.USER_REPORT, "youtube", "request", R.string.general_error);
public void errorInfoTestParcelable() {
ErrorInfo info = ErrorInfo.make(UserAction.USER_REPORT, "youtube", "request",
R.string.general_error);
// Obtain a Parcel object and write the parcelable object to it:
Parcel parcel = Parcel.obtain();
info.writeToParcel(parcel, 0);
@@ -34,4 +36,4 @@ public class ErrorInfoTest {
parcel.recycle();
}
}
}

View File

@@ -6,12 +6,5 @@
<application
android:name=".DebugApp"
android:label="NewPipe Debug"
tools:replace="android:name, android:label">
<activity
android:name=".MainActivity"
android:label="NewPipe Debug"
tools:replace="android:label"/>
</application>
tools:replace="android:name" />
</manifest>

View File

@@ -1,104 +0,0 @@
package org.schabi.newpipe;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import androidx.annotation.NonNull;
import androidx.multidex.MultiDex;
import com.facebook.stetho.Stetho;
import com.facebook.stetho.okhttp3.StethoInterceptor;
import com.squareup.leakcanary.AndroidHeapDumper;
import com.squareup.leakcanary.DefaultLeakDirectoryProvider;
import com.squareup.leakcanary.HeapDumper;
import com.squareup.leakcanary.LeakCanary;
import com.squareup.leakcanary.LeakDirectoryProvider;
import com.squareup.leakcanary.RefWatcher;
import org.schabi.newpipe.extractor.downloader.Downloader;
import java.io.File;
import java.util.concurrent.TimeUnit;
import okhttp3.OkHttpClient;
public class DebugApp extends App {
private static final String TAG = DebugApp.class.toString();
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
@Override
public void onCreate() {
super.onCreate();
initStetho();
}
@Override
protected Downloader getDownloader() {
return DownloaderImpl.init(new OkHttpClient.Builder()
.addNetworkInterceptor(new StethoInterceptor()));
}
private void initStetho() {
// Create an InitializerBuilder
Stetho.InitializerBuilder initializerBuilder =
Stetho.newInitializerBuilder(this);
// Enable Chrome DevTools
initializerBuilder.enableWebKitInspector(
Stetho.defaultInspectorModulesProvider(this)
);
// Enable command line interface
initializerBuilder.enableDumpapp(
Stetho.defaultDumperPluginsProvider(getApplicationContext())
);
// Use the InitializerBuilder to generate an Initializer
Stetho.Initializer initializer = initializerBuilder.build();
// Initialize Stetho with the Initializer
Stetho.initialize(initializer);
}
@Override
protected boolean isDisposedRxExceptionsReported() {
return PreferenceManager.getDefaultSharedPreferences(this)
.getBoolean(getString(R.string.allow_disposed_exceptions_key), false);
}
@Override
protected RefWatcher installLeakCanary() {
return LeakCanary.refWatcher(this)
.heapDumper(new ToggleableHeapDumper(this))
// give each object 10 seconds to be gc'ed, before leak canary gets nosy on it
.watchDelay(10, TimeUnit.SECONDS)
.buildAndInstall();
}
public static class ToggleableHeapDumper implements HeapDumper {
private final HeapDumper dumper;
private final SharedPreferences preferences;
private final String dumpingAllowanceKey;
ToggleableHeapDumper(@NonNull final Context context) {
LeakDirectoryProvider leakDirectoryProvider = new DefaultLeakDirectoryProvider(context);
this.dumper = new AndroidHeapDumper(context, leakDirectoryProvider);
this.preferences = PreferenceManager.getDefaultSharedPreferences(context);
this.dumpingAllowanceKey = context.getString(R.string.allow_heap_dumping_key);
}
private boolean isDumpingAllowed() {
return preferences.getBoolean(dumpingAllowanceKey, false);
}
@Override
public File dumpHeap() {
return isDumpingAllowed() ? dumper.dumpHeap() : HeapDumper.RETRY_LATER;
}
}
}

View File

@@ -0,0 +1,59 @@
package org.schabi.newpipe
import android.content.Context
import androidx.multidex.MultiDex
import androidx.preference.PreferenceManager
import com.facebook.stetho.Stetho
import com.facebook.stetho.okhttp3.StethoInterceptor
import leakcanary.AppWatcher
import leakcanary.LeakCanary
import okhttp3.OkHttpClient
import org.schabi.newpipe.extractor.downloader.Downloader
class DebugApp : App() {
override fun attachBaseContext(base: Context) {
super.attachBaseContext(base)
MultiDex.install(this)
}
override fun onCreate() {
super.onCreate()
initStetho()
// Give each object 10 seconds to be GC'ed, before LeakCanary gets nosy on it
AppWatcher.config = AppWatcher.config.copy(watchDurationMillis = 10000)
LeakCanary.config = LeakCanary.config.copy(dumpHeap = PreferenceManager
.getDefaultSharedPreferences(this).getBoolean(getString(
R.string.allow_heap_dumping_key), false))
}
override fun getDownloader(): Downloader {
val downloader = DownloaderImpl.init(OkHttpClient.Builder()
.addNetworkInterceptor(StethoInterceptor()))
setCookiesToDownloader(downloader)
return downloader
}
private fun initStetho() {
// Create an InitializerBuilder
val initializerBuilder = Stetho.newInitializerBuilder(this)
// Enable Chrome DevTools
initializerBuilder.enableWebKitInspector(Stetho.defaultInspectorModulesProvider(this))
// Enable command line interface
initializerBuilder.enableDumpapp(
Stetho.defaultDumperPluginsProvider(applicationContext))
// Use the InitializerBuilder to generate an Initializer
val initializer = initializerBuilder.build()
// Initialize Stetho with the Initializer
Stetho.initialize(initializer)
}
override fun isDisposedRxExceptionsReported(): Boolean {
return PreferenceManager.getDefaultSharedPreferences(this)
.getBoolean(getString(R.string.allow_disposed_exceptions_key), false)
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,24 +1,60 @@
package com.google.android.material.appbar;
import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.OverScroller;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import java.lang.reflect.Field;
// check this https://stackoverflow.com/questions/56849221/recyclerview-fling-causes-laggy-while-appbarlayout-is-scrolling/57997489#57997489
// See https://stackoverflow.com/questions/56849221#57997489
public final class FlingBehavior extends AppBarLayout.Behavior {
private final Rect focusScrollRect = new Rect();
public FlingBehavior(Context context, AttributeSet attrs) {
public FlingBehavior(final Context context, final AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(CoordinatorLayout parent, AppBarLayout child, MotionEvent ev) {
public boolean onRequestChildRectangleOnScreen(
@NonNull final CoordinatorLayout coordinatorLayout, @NonNull final AppBarLayout child,
@NonNull final Rect rectangle, final boolean immediate) {
focusScrollRect.set(rectangle);
coordinatorLayout.offsetDescendantRectToMyCoords(child, focusScrollRect);
int height = coordinatorLayout.getHeight();
if (focusScrollRect.top <= 0 && focusScrollRect.bottom >= height) {
// the child is too big to fit inside ourselves completely, ignore request
return false;
}
int dy;
if (focusScrollRect.bottom > height) {
dy = focusScrollRect.top;
} else if (focusScrollRect.top < 0) {
// scrolling up
dy = -(height - focusScrollRect.bottom);
} else {
// nothing to do
return false;
}
int consumed = scroll(coordinatorLayout, child, dy, getMaxDragOffset(child), 0);
return consumed == dy;
}
public boolean onInterceptTouchEvent(final CoordinatorLayout parent, final AppBarLayout child,
final MotionEvent ev) {
switch (ev.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
// remove reference to old nested scrolling child
@@ -35,7 +71,8 @@ public final class FlingBehavior extends AppBarLayout.Behavior {
@Nullable
private OverScroller getScrollerField() {
try {
Class<?> headerBehaviorType = this.getClass().getSuperclass().getSuperclass().getSuperclass();
Class<?> headerBehaviorType = this.getClass()
.getSuperclass().getSuperclass().getSuperclass();
if (headerBehaviorType != null) {
Field field = headerBehaviorType.getDeclaredField("scroller");
field.setAccessible(true);
@@ -62,12 +99,14 @@ public final class FlingBehavior extends AppBarLayout.Behavior {
return null;
}
private void resetNestedScrollingChild(){
private void resetNestedScrollingChild() {
Field field = getLastNestedScrollingChildRefField();
if(field != null){
if (field != null) {
try {
Object value = field.get(this);
if(value != null) field.set(this, null);
if (value != null) {
field.set(this, null);
}
} catch (IllegalAccessException e) {
// ?
}
@@ -76,7 +115,8 @@ public final class FlingBehavior extends AppBarLayout.Behavior {
private void stopAppBarLayoutFling() {
OverScroller scroller = getScrollerField();
if (scroller != null) scroller.forceFinished(true);
if (scroller != null) {
scroller.forceFinished(true);
}
}
}
}

View File

@@ -23,17 +23,25 @@ package org.schabi.newpipe;
/**
* Singleton:
* Used to send data between certain Activity/Services within the same process.
* This can be considered as an ugly hack inside the Android universe. **/
* This can be considered as an ugly hack inside the Android universe.
**/
public class ActivityCommunicator {
private static ActivityCommunicator activityCommunicator;
private volatile Class returnActivity;
public static ActivityCommunicator getCommunicator() {
if(activityCommunicator == null) {
if (activityCommunicator == null) {
activityCommunicator = new ActivityCommunicator();
}
return activityCommunicator;
}
public volatile Class returnActivity;
public Class getReturnActivity() {
return returnActivity;
}
public void setReturnActivity(final Class returnActivity) {
this.returnActivity = returnActivity;
}
}

View File

@@ -5,21 +5,20 @@ import android.app.Application;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Build;
import android.util.Log;
import androidx.annotation.Nullable;
import androidx.preference.PreferenceManager;
import com.nostra13.universalimageloader.cache.memory.impl.LRULimitedMemoryCache;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.squareup.leakcanary.LeakCanary;
import com.squareup.leakcanary.RefWatcher;
import org.acra.ACRA;
import org.acra.config.ACRAConfiguration;
import org.acra.config.ACRAConfigurationException;
import org.acra.config.ConfigurationBuilder;
import org.acra.config.CoreConfiguration;
import org.acra.config.CoreConfigurationBuilder;
import org.acra.sender.ReportSenderFactory;
import org.schabi.newpipe.extractor.NewPipe;
import org.schabi.newpipe.extractor.downloader.Downloader;
@@ -27,7 +26,7 @@ import org.schabi.newpipe.report.AcraReportSenderFactory;
import org.schabi.newpipe.report.ErrorActivity;
import org.schabi.newpipe.report.UserAction;
import org.schabi.newpipe.settings.SettingsActivity;
import org.schabi.newpipe.util.ExtractorHelper;
import org.schabi.newpipe.util.ExceptionUtils;
import org.schabi.newpipe.util.Localization;
import org.schabi.newpipe.util.ServiceHelper;
import org.schabi.newpipe.util.StateSaver;
@@ -66,15 +65,17 @@ import io.reactivex.plugins.RxJavaPlugins;
public class App extends Application {
protected static final String TAG = App.class.toString();
private RefWatcher refWatcher;
private static App app;
@SuppressWarnings("unchecked")
private static final Class<? extends ReportSenderFactory>[]
reportSenderFactoryClasses = new Class[]{AcraReportSenderFactory.class};
REPORT_SENDER_FACTORY_CLASSES = new Class[]{AcraReportSenderFactory.class};
private static App app;
public static App getApp() {
return app;
}
@Override
protected void attachBaseContext(Context base) {
protected void attachBaseContext(final Context base) {
super.attachBaseContext(base);
initACRA();
@@ -84,13 +85,6 @@ public class App extends Application {
public void onCreate() {
super.onCreate();
if (LeakCanary.isInAnalyzerProcess(this)) {
// This process is dedicated to LeakCanary for heap analysis.
// You should not init your app in this process.
return;
}
refWatcher = installLeakCanary();
app = this;
// Initialize settings first because others inits can use its values
@@ -116,31 +110,47 @@ public class App extends Application {
}
protected Downloader getDownloader() {
return DownloaderImpl.init(null);
DownloaderImpl downloader = DownloaderImpl.init(null);
setCookiesToDownloader(downloader);
return downloader;
}
protected void setCookiesToDownloader(final DownloaderImpl downloader) {
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(
getApplicationContext());
final String key = getApplicationContext().getString(R.string.recaptcha_cookies_key);
downloader.setCookie(ReCaptchaActivity.RECAPTCHA_COOKIES_KEY, prefs.getString(key, ""));
downloader.updateYoutubeRestrictedModeCookies(getApplicationContext());
}
private void configureRxJavaErrorHandler() {
// https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling
RxJavaPlugins.setErrorHandler(new Consumer<Throwable>() {
@Override
public void accept(@NonNull Throwable throwable) {
Log.e(TAG, "RxJavaPlugins.ErrorHandler called with -> : " +
"throwable = [" + throwable.getClass().getName() + "]");
public void accept(@NonNull final Throwable throwable) {
Log.e(TAG, "RxJavaPlugins.ErrorHandler called with -> : "
+ "throwable = [" + throwable.getClass().getName() + "]");
final Throwable actualThrowable;
if (throwable instanceof UndeliverableException) {
// As UndeliverableException is a wrapper, get the cause of it to get the "real" exception
throwable = throwable.getCause();
// As UndeliverableException is a wrapper,
// get the cause of it to get the "real" exception
actualThrowable = throwable.getCause();
} else {
actualThrowable = throwable;
}
final List<Throwable> errors;
if (throwable instanceof CompositeException) {
errors = ((CompositeException) throwable).getExceptions();
if (actualThrowable instanceof CompositeException) {
errors = ((CompositeException) actualThrowable).getExceptions();
} else {
errors = Collections.singletonList(throwable);
errors = Collections.singletonList(actualThrowable);
}
for (final Throwable error : errors) {
if (isThrowableIgnored(error)) return;
if (isThrowableIgnored(error)) {
return;
}
if (isThrowableCritical(error)) {
reportException(error);
return;
@@ -150,22 +160,24 @@ public class App extends Application {
// Out-of-lifecycle exceptions should only be reported if a debug user wishes so,
// When exception is not reported, log it
if (isDisposedRxExceptionsReported()) {
reportException(throwable);
reportException(actualThrowable);
} else {
Log.e(TAG, "RxJavaPlugin: Undeliverable Exception received: ", throwable);
Log.e(TAG, "RxJavaPlugin: Undeliverable Exception received: ", actualThrowable);
}
}
private boolean isThrowableIgnored(@NonNull final Throwable throwable) {
// Don't crash the application over a simple network problem
return ExtractorHelper.hasAssignableCauseThrowable(throwable,
IOException.class, SocketException.class, // network api cancellation
InterruptedException.class, InterruptedIOException.class); // blocking code disposed
return ExceptionUtils.hasAssignableCause(throwable,
// network api cancellation
IOException.class, SocketException.class,
// blocking code disposed
InterruptedException.class, InterruptedIOException.class);
}
private boolean isThrowableCritical(@NonNull final Throwable throwable) {
// Though these exceptions cannot be ignored
return ExtractorHelper.hasAssignableCauseThrowable(throwable,
return ExceptionUtils.hasAssignableCause(throwable,
NullPointerException.class, IllegalArgumentException.class, // bug in app
OnErrorNotImplementedException.class, MissingBackpressureException.class,
IllegalStateException.class); // bug in operator
@@ -190,8 +202,8 @@ public class App extends Application {
private void initACRA() {
try {
final ACRAConfiguration acraConfig = new ConfigurationBuilder(this)
.setReportSenderFactoryClasses(reportSenderFactoryClasses)
final CoreConfiguration acraConfig = new CoreConfigurationBuilder(this)
.setReportSenderFactoryClasses(REPORT_SENDER_FACTORY_CLASSES)
.setBuildConfigClass(BuildConfig.class)
.build();
ACRA.init(this, acraConfig);
@@ -202,7 +214,7 @@ public class App extends Application {
null,
null,
ErrorActivity.ErrorInfo.make(UserAction.SOMETHING_ELSE, "none",
"Could not initialize ACRA crash report", R.string.app_ui_crash));
"Could not initialize ACRA crash report", R.string.app_ui_crash));
}
}
@@ -230,11 +242,11 @@ public class App extends Application {
/**
* Set up notification channel for app update.
*
* @param importance
*/
@TargetApi(Build.VERSION_CODES.O)
private void setUpUpdateNotificationChannel(int importance) {
private void setUpUpdateNotificationChannel(final int importance) {
final String appUpdateId
= getString(R.string.app_update_notification_channel_id);
final CharSequence appUpdateName
@@ -251,21 +263,7 @@ public class App extends Application {
appUpdateNotificationManager.createNotificationChannel(appUpdateChannel);
}
@Nullable
public static RefWatcher getRefWatcher(Context context) {
final App application = (App) context.getApplicationContext();
return application.refWatcher;
}
protected RefWatcher installLeakCanary() {
return RefWatcher.DISABLED;
}
protected boolean isDisposedRxExceptionsReported() {
return false;
}
public static App getApp() {
return app;
}
}

View File

@@ -2,32 +2,31 @@ package org.schabi.newpipe;
import android.content.Context;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.squareup.leakcanary.RefWatcher;
import icepick.Icepick;
import icepick.State;
import leakcanary.AppWatcher;
public abstract class BaseFragment extends Fragment {
public static final ImageLoader IMAGE_LOADER = ImageLoader.getInstance();
protected final String TAG = getClass().getSimpleName() + "@" + Integer.toHexString(hashCode());
protected final boolean DEBUG = MainActivity.DEBUG;
protected AppCompatActivity activity;
public static final ImageLoader imageLoader = ImageLoader.getInstance();
//These values are used for controlling framgents when they are part of the frontpage
//These values are used for controlling fragments when they are part of the frontpage
@State
protected boolean useAsFrontPage = false;
protected boolean mIsVisibleToUser = false;
private boolean mIsVisibleToUser = false;
public void useAsFrontPage(boolean value) {
public void useAsFrontPage(final boolean value) {
useAsFrontPage = value;
}
@@ -36,7 +35,7 @@ public abstract class BaseFragment extends Fragment {
//////////////////////////////////////////////////////////////////////////*/
@Override
public void onAttach(Context context) {
public void onAttach(final Context context) {
super.onAttach(context);
activity = (AppCompatActivity) context;
}
@@ -48,43 +47,49 @@ public abstract class BaseFragment extends Fragment {
}
@Override
public void onCreate(Bundle savedInstanceState) {
if (DEBUG) Log.d(TAG, "onCreate() called with: savedInstanceState = [" + savedInstanceState + "]");
public void onCreate(final Bundle savedInstanceState) {
if (DEBUG) {
Log.d(TAG, "onCreate() called with: "
+ "savedInstanceState = [" + savedInstanceState + "]");
}
super.onCreate(savedInstanceState);
Icepick.restoreInstanceState(this, savedInstanceState);
if (savedInstanceState != null) onRestoreInstanceState(savedInstanceState);
if (savedInstanceState != null) {
onRestoreInstanceState(savedInstanceState);
}
}
@Override
public void onViewCreated(View rootView, Bundle savedInstanceState) {
public void onViewCreated(final View rootView, final Bundle savedInstanceState) {
super.onViewCreated(rootView, savedInstanceState);
if (DEBUG) {
Log.d(TAG, "onViewCreated() called with: rootView = [" + rootView + "], savedInstanceState = [" + savedInstanceState + "]");
Log.d(TAG, "onViewCreated() called with: "
+ "rootView = [" + rootView + "], "
+ "savedInstanceState = [" + savedInstanceState + "]");
}
initViews(rootView, savedInstanceState);
initListeners();
}
@Override
public void onSaveInstanceState(Bundle outState) {
public void onSaveInstanceState(final Bundle outState) {
super.onSaveInstanceState(outState);
Icepick.saveInstanceState(this, outState);
}
protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
protected void onRestoreInstanceState(@NonNull final Bundle savedInstanceState) {
}
@Override
public void onDestroy() {
super.onDestroy();
RefWatcher refWatcher = App.getRefWatcher(getActivity());
if (refWatcher != null) refWatcher.watch(this);
AppWatcher.INSTANCE.getObjectWatcher().watch(this);
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
public void setUserVisibleHint(final boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
mIsVisibleToUser = isVisibleToUser;
}
@@ -93,7 +98,7 @@ public abstract class BaseFragment extends Fragment {
// Init
//////////////////////////////////////////////////////////////////////////*/
protected void initViews(View rootView, Bundle savedInstanceState) {
protected void initViews(final View rootView, final Bundle savedInstanceState) {
}
protected void initListeners() {
@@ -103,10 +108,12 @@ public abstract class BaseFragment extends Fragment {
// Utils
//////////////////////////////////////////////////////////////////////////*/
public void setTitle(String title) {
if (DEBUG) Log.d(TAG, "setTitle() called with: title = [" + title + "]");
if((!useAsFrontPage || mIsVisibleToUser)
&& (activity != null && activity.getSupportActionBar() != null)) {
public void setTitle(final String title) {
if (DEBUG) {
Log.d(TAG, "setTitle() called with: title = [" + title + "]");
}
if ((!useAsFrontPage || mIsVisibleToUser)
&& (activity != null && activity.getSupportActionBar() != null)) {
activity.getSupportActionBar().setDisplayShowTitleEnabled(true);
activity.getSupportActionBar().setTitle(title);
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,3 @@
package org.schabi.newpipe;
import android.annotation.SuppressLint;
@@ -27,9 +26,20 @@ import android.os.Bundle;
public class ExitActivity extends Activity {
public static void exitAndRemoveFromRecentApps(final Activity activity) {
Intent intent = new Intent(activity, ExitActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
| Intent.FLAG_ACTIVITY_CLEAR_TASK
| Intent.FLAG_ACTIVITY_NO_ANIMATION);
activity.startActivity(intent);
}
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= 21) {
@@ -40,15 +50,4 @@ public class ExitActivity extends Activity {
System.exit(0);
}
public static void exitAndRemoveFromRecentApps(Activity activity) {
Intent intent = new Intent(activity, ExitActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
| Intent.FLAG_ACTIVITY_CLEAR_TASK
| Intent.FLAG_ACTIVITY_NO_ANIMATION);
activity.startActivity(intent);
}
}

View File

@@ -18,7 +18,7 @@ public class ImageDownloader extends BaseImageDownloader {
private final SharedPreferences preferences;
private final String downloadThumbnailKey;
public ImageDownloader(Context context) {
public ImageDownloader(final Context context) {
super(context);
this.resources = context.getResources();
this.preferences = PreferenceManager.getDefaultSharedPreferences(context);
@@ -31,7 +31,7 @@ public class ImageDownloader extends BaseImageDownloader {
@SuppressLint("ResourceType")
@Override
public InputStream getStream(String imageUri, Object extra) throws IOException {
public InputStream getStream(final String imageUri, final Object extra) throws IOException {
if (isDownloadingThumbnail()) {
return super.getStream(imageUri, extra);
} else {
@@ -39,7 +39,8 @@ public class ImageDownloader extends BaseImageDownloader {
}
}
protected InputStream getStreamFromNetwork(String imageUri, Object extra) throws IOException {
protected InputStream getStreamFromNetwork(final String imageUri, final Object extra)
throws IOException {
final DownloaderImpl downloader = (DownloaderImpl) NewPipe.getDownloader();
return downloader.stream(imageUri);
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,42 +1,54 @@
package org.schabi.newpipe;
import androidx.room.Room;
import android.content.Context;
import android.database.Cursor;
import androidx.annotation.NonNull;
import androidx.room.Room;
import org.schabi.newpipe.database.AppDatabase;
import static org.schabi.newpipe.database.AppDatabase.DATABASE_NAME;
import static org.schabi.newpipe.database.Migrations.MIGRATION_11_12;
import static org.schabi.newpipe.database.Migrations.MIGRATION_1_2;
import static org.schabi.newpipe.database.Migrations.MIGRATION_2_3;
public final class NewPipeDatabase {
private static volatile AppDatabase databaseInstance;
private NewPipeDatabase() {
//no instance
}
private static AppDatabase getDatabase(Context context) {
private static AppDatabase getDatabase(final Context context) {
return Room
.databaseBuilder(context.getApplicationContext(), AppDatabase.class, DATABASE_NAME)
.addMigrations(MIGRATION_11_12)
.fallbackToDestructiveMigration()
.addMigrations(MIGRATION_1_2, MIGRATION_2_3)
.build();
}
@NonNull
public static AppDatabase getInstance(@NonNull Context context) {
public static AppDatabase getInstance(@NonNull final Context context) {
AppDatabase result = databaseInstance;
if (result == null) {
synchronized (NewPipeDatabase.class) {
result = databaseInstance;
if (result == null) {
databaseInstance = (result = getDatabase(context));
databaseInstance = getDatabase(context);
result = databaseInstance;
}
}
}
return result;
}
public static void checkpoint() {
if (databaseInstance == null) {
throw new IllegalStateException("database is not initialized");
}
Cursor c = databaseInstance.query("pragma wal_checkpoint(full)", null);
if (c.moveToFirst() && c.getInt(0) == 1) {
throw new RuntimeException("Checkpoint was blocked from completing");
}
}
}

View File

@@ -1,4 +1,3 @@
package org.schabi.newpipe;
import android.annotation.SuppressLint;
@@ -26,17 +25,18 @@ import android.os.Bundle;
*/
public class PanicResponderActivity extends Activity {
public static final String PANIC_TRIGGER_ACTION = "info.guardianproject.panic.action.TRIGGER";
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
if (intent != null && PANIC_TRIGGER_ACTION.equals(intent.getAction())) {
// TODO explicitly clear the search results once they are restored when the app restarts
// or if the app reloads the current video after being killed, that should be cleared also
// TODO: Explicitly clear the search results
// once they are restored when the app restarts
// or if the app reloads the current video after being killed,
// that should be cleared also
ExitActivity.exitAndRemoveFromRecentApps(this);
}

View File

@@ -1,24 +1,31 @@
package org.schabi.newpipe;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import androidx.core.app.NavUtils;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.CookieManager;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.NavUtils;
import androidx.preference.PreferenceManager;
import org.schabi.newpipe.util.ThemeHelper;
import androidx.annotation.NonNull;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
/*
* Created by beneth <bmauduit@beneth.fr> on 06.12.16.
@@ -44,12 +51,13 @@ public class ReCaptchaActivity extends AppCompatActivity {
public static final String RECAPTCHA_URL_EXTRA = "recaptcha_url_extra";
public static final String TAG = ReCaptchaActivity.class.toString();
public static final String YT_URL = "https://www.youtube.com";
public static final String RECAPTCHA_COOKIES_KEY = "recaptcha_cookies";
private WebView webView;
private String foundCookies = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
protected void onCreate(final Bundle savedInstanceState) {
ThemeHelper.setTheme(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recaptcha);
@@ -72,10 +80,33 @@ public class ReCaptchaActivity extends AppCompatActivity {
webSettings.setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient() {
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onPageFinished(WebView view, String url) {
public boolean shouldOverrideUrlLoading(final WebView view,
final WebResourceRequest request) {
String url = request.getUrl().toString();
if (MainActivity.DEBUG) {
Log.d(TAG, "shouldOverrideUrlLoading: request.url=" + url);
}
handleCookiesFromUrl(url);
return false;
}
@Override
public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
if (MainActivity.DEBUG) {
Log.d(TAG, "shouldOverrideUrlLoading: url=" + url);
}
handleCookiesFromUrl(url);
return false;
}
@Override
public void onPageFinished(final WebView view, final String url) {
super.onPageFinished(view, url);
handleCookies(url);
handleCookiesFromUrl(url);
}
});
@@ -84,7 +115,8 @@ public class ReCaptchaActivity extends AppCompatActivity {
webView.clearHistory();
android.webkit.CookieManager cookieManager = CookieManager.getInstance();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
cookieManager.removeAllCookies(aBoolean -> {});
cookieManager.removeAllCookies(aBoolean -> {
});
} else {
cookieManager.removeAllCookie();
}
@@ -93,7 +125,7 @@ public class ReCaptchaActivity extends AppCompatActivity {
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.menu_recaptcha, menu);
ActionBar actionBar = getSupportActionBar();
@@ -112,7 +144,7 @@ public class ReCaptchaActivity extends AppCompatActivity {
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
public boolean onOptionsItemSelected(final MenuItem item) {
int id = item.getItemId();
switch (id) {
case R.id.menu_item_done:
@@ -124,10 +156,20 @@ public class ReCaptchaActivity extends AppCompatActivity {
}
private void saveCookiesAndFinish() {
handleCookies(webView.getUrl()); // try to get cookies of unclosed page
handleCookiesFromUrl(webView.getUrl()); // try to get cookies of unclosed page
if (MainActivity.DEBUG) {
Log.d(TAG, "saveCookiesAndFinish: foundCookies=" + foundCookies);
}
if (!foundCookies.isEmpty()) {
// save cookies to preferences
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(
getApplicationContext());
final String key = getApplicationContext().getString(R.string.recaptcha_cookies_key);
prefs.edit().putString(key, foundCookies).apply();
// give cookies to Downloader class
DownloaderImpl.getInstance().setCookies(foundCookies);
DownloaderImpl.getInstance().setCookie(RECAPTCHA_COOKIES_KEY, foundCookies);
setResult(RESULT_OK);
}
@@ -137,24 +179,60 @@ public class ReCaptchaActivity extends AppCompatActivity {
}
private void handleCookiesFromUrl(@Nullable final String url) {
if (MainActivity.DEBUG) {
Log.d(TAG, "handleCookiesFromUrl: url=" + (url == null ? "null" : url));
}
if (url == null) {
return;
}
private void handleCookies(String url) {
String cookies = CookieManager.getInstance().getCookie(url);
if (MainActivity.DEBUG) Log.d(TAG, "handleCookies: url=" + url + "; cookies=" + (cookies == null ? "null" : cookies));
if (cookies == null) return;
handleCookies(cookies);
addYoutubeCookies(cookies);
// add other methods to extract cookies here
// sometimes cookies are inside the url
int abuseStart = url.indexOf("google_abuse=");
if (abuseStart != -1) {
int abuseEnd = url.indexOf("+path");
try {
String abuseCookie = url.substring(abuseStart + 13, abuseEnd);
abuseCookie = URLDecoder.decode(abuseCookie, "UTF-8");
handleCookies(abuseCookie);
} catch (UnsupportedEncodingException | StringIndexOutOfBoundsException e) {
if (MainActivity.DEBUG) {
e.printStackTrace();
Log.d(TAG, "handleCookiesFromUrl: invalid google abuse starting at "
+ abuseStart + " and ending at " + abuseEnd + " for url " + url);
}
}
}
}
private void addYoutubeCookies(@NonNull String cookies) {
if (cookies.contains("s_gl=") || cookies.contains("goojf=") || cookies.contains("VISITOR_INFO1_LIVE=")) {
private void handleCookies(@Nullable final String cookies) {
if (MainActivity.DEBUG) {
Log.d(TAG, "handleCookies: cookies=" + (cookies == null ? "null" : cookies));
}
if (cookies == null) {
return;
}
addYoutubeCookies(cookies);
// add here methods to extract cookies for other services
}
private void addYoutubeCookies(@NonNull final String cookies) {
if (cookies.contains("s_gl=") || cookies.contains("goojf=")
|| cookies.contains("VISITOR_INFO1_LIVE=")
|| cookies.contains("GOOGLE_ABUSE_EXEMPTION=")) {
// youtube seems to also need the other cookies:
addCookie(cookies);
}
}
private void addCookie(String cookie) {
private void addCookie(final String cookie) {
if (foundCookies.contains(cookie)) {
return;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,51 +1,67 @@
package org.schabi.newpipe.about;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import com.google.android.material.tabs.TabLayout;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.google.android.material.tabs.TabLayout;
import org.schabi.newpipe.BuildConfig;
import org.schabi.newpipe.R;
import org.schabi.newpipe.util.ThemeHelper;
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
import static org.schabi.newpipe.util.ShareUtils.openUrlInBrowser;
public class AboutActivity extends AppCompatActivity {
/**
* List of all software components
* List of all software components.
*/
private static final SoftwareComponent[] SOFTWARE_COMPONENTS = new SoftwareComponent[]{
new SoftwareComponent("Giga Get", "2014 - 2015", "Peter Cai", "https://github.com/PaperAirplane-Dev-Team/GigaGet", StandardLicenses.GPL2),
new SoftwareComponent("NewPipe Extractor", "2017 - 2020", "Christian Schabesberger", "https://github.com/TeamNewPipe/NewPipeExtractor", StandardLicenses.GPL3),
new SoftwareComponent("Jsoup", "2017", "Jonathan Hedley", "https://github.com/jhy/jsoup", StandardLicenses.MIT),
new SoftwareComponent("Rhino", "2015", "Mozilla", "https://www.mozilla.org/rhino/", StandardLicenses.MPL2),
new SoftwareComponent("ACRA", "2013", "Kevin Gaudin", "http://www.acra.ch", StandardLicenses.APACHE2),
new SoftwareComponent("Universal Image Loader", "2011 - 2015", "Sergey Tarasevich", "https://github.com/nostra13/Android-Universal-Image-Loader", StandardLicenses.APACHE2),
new SoftwareComponent("CircleImageView", "2014 - 2020", "Henning Dodenhof", "https://github.com/hdodenhof/CircleImageView", StandardLicenses.APACHE2),
new SoftwareComponent("NoNonsense-FilePicker", "2016", "Jonas Kalderstam", "https://github.com/spacecowboy/NoNonsense-FilePicker", StandardLicenses.MPL2),
new SoftwareComponent("ExoPlayer", "2014 - 2020", "Google Inc", "https://github.com/google/ExoPlayer", StandardLicenses.APACHE2),
new SoftwareComponent("RxAndroid", "2015 - 2018", "The RxAndroid authors", "https://github.com/ReactiveX/RxAndroid", StandardLicenses.APACHE2),
new SoftwareComponent("RxJava", "2016 - 2020", "RxJava Contributors", "https://github.com/ReactiveX/RxJava", StandardLicenses.APACHE2),
new SoftwareComponent("RxBinding", "2015 - 2018", "Jake Wharton", "https://github.com/JakeWharton/RxBinding", StandardLicenses.APACHE2),
new SoftwareComponent("PrettyTime", "2012 - 2020", "Lincoln Baxter, III", "https://github.com/ocpsoft/prettytime", StandardLicenses.APACHE2),
new SoftwareComponent("Markwon", "2017 - 2020", "Noties", "https://github.com/noties/Markwon", StandardLicenses.APACHE2)
new SoftwareComponent("Giga Get", "2014 - 2015", "Peter Cai",
"https://github.com/PaperAirplane-Dev-Team/GigaGet", StandardLicenses.GPL2),
new SoftwareComponent("NewPipe Extractor", "2017 - 2020", "Christian Schabesberger",
"https://github.com/TeamNewPipe/NewPipeExtractor", StandardLicenses.GPL3),
new SoftwareComponent("Jsoup", "2017", "Jonathan Hedley",
"https://github.com/jhy/jsoup", StandardLicenses.MIT),
new SoftwareComponent("Rhino", "2015", "Mozilla",
"https://www.mozilla.org/rhino/", StandardLicenses.MPL2),
new SoftwareComponent("ACRA", "2013", "Kevin Gaudin",
"http://www.acra.ch", StandardLicenses.APACHE2),
new SoftwareComponent("Universal Image Loader", "2011 - 2015", "Sergey Tarasevich",
"https://github.com/nostra13/Android-Universal-Image-Loader",
StandardLicenses.APACHE2),
new SoftwareComponent("CircleImageView", "2014 - 2020", "Henning Dodenhof",
"https://github.com/hdodenhof/CircleImageView", StandardLicenses.APACHE2),
new SoftwareComponent("NoNonsense-FilePicker", "2016", "Jonas Kalderstam",
"https://github.com/spacecowboy/NoNonsense-FilePicker", StandardLicenses.MPL2),
new SoftwareComponent("ExoPlayer", "2014 - 2020", "Google Inc",
"https://github.com/google/ExoPlayer", StandardLicenses.APACHE2),
new SoftwareComponent("RxAndroid", "2015 - 2018", "The RxAndroid authors",
"https://github.com/ReactiveX/RxAndroid", StandardLicenses.APACHE2),
new SoftwareComponent("RxJava", "2016 - 2020", "RxJava Contributors",
"https://github.com/ReactiveX/RxJava", StandardLicenses.APACHE2),
new SoftwareComponent("RxBinding", "2015 - 2018", "Jake Wharton",
"https://github.com/JakeWharton/RxBinding", StandardLicenses.APACHE2),
new SoftwareComponent("PrettyTime", "2012 - 2020", "Lincoln Baxter, III",
"https://github.com/ocpsoft/prettytime", StandardLicenses.APACHE2),
new SoftwareComponent("Markwon", "2017 - 2020", "Noties",
"https://github.com/noties/Markwon", StandardLicenses.APACHE2),
new SoftwareComponent("Groupie", "2016", "Lisa Wray",
"https://github.com/lisawray/groupie", StandardLicenses.MIT)
};
/**
@@ -64,7 +80,7 @@ public class AboutActivity extends AppCompatActivity {
private ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
protected void onCreate(final Bundle savedInstanceState) {
assureCorrectAppLanguage(this);
super.onCreate(savedInstanceState);
ThemeHelper.setTheme(this);
@@ -87,10 +103,8 @@ public class AboutActivity extends AppCompatActivity {
tabLayout.setupWithViewPager(mViewPager);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
public boolean onOptionsItemSelected(final MenuItem item) {
int id = item.getItemId();
switch (id) {
@@ -106,21 +120,20 @@ public class AboutActivity extends AppCompatActivity {
* A placeholder fragment containing a simple view.
*/
public static class AboutFragment extends Fragment {
public AboutFragment() {
}
public AboutFragment() { }
/**
* Returns a new instance of this fragment for the given section
* number.
* Created a new instance of this fragment for the given section number.
*
* @return New instance of {@link AboutFragment}
*/
public static AboutFragment newInstance() {
return new AboutFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
public View onCreateView(final LayoutInflater inflater, final ViewGroup container,
final Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_about, container, false);
Context context = this.getContext();
@@ -128,40 +141,37 @@ public class AboutActivity extends AppCompatActivity {
version.setText(BuildConfig.VERSION_NAME);
View githubLink = rootView.findViewById(R.id.github_link);
githubLink.setOnClickListener(nv -> openWebsite(context.getString(R.string.github_url), context));
githubLink.setOnClickListener(nv ->
openUrlInBrowser(context, context.getString(R.string.github_url)));
View donationLink = rootView.findViewById(R.id.donation_link);
donationLink.setOnClickListener(v -> openWebsite(context.getString(R.string.donation_url), context));
donationLink.setOnClickListener(v ->
openUrlInBrowser(context, context.getString(R.string.donation_url)));
View websiteLink = rootView.findViewById(R.id.website_link);
websiteLink.setOnClickListener(nv -> openWebsite(context.getString(R.string.website_url), context));
websiteLink.setOnClickListener(nv ->
openUrlInBrowser(context, context.getString(R.string.website_url)));
View privacyPolicyLink = rootView.findViewById(R.id.privacy_policy_link);
privacyPolicyLink.setOnClickListener(v -> openWebsite(context.getString(R.string.privacy_policy_url), context));
privacyPolicyLink.setOnClickListener(v ->
openUrlInBrowser(context, context.getString(R.string.privacy_policy_url)));
return rootView;
}
private void openWebsite(String url, Context context) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
context.startActivity(intent);
}
}
/**
* A {@link FragmentPagerAdapter} that returns a fragment corresponding to
* one of the sections/tabs/pages.
*/
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
public SectionsPagerAdapter(final FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
public Fragment getItem(final int position) {
switch (position) {
case 0:
return AboutFragment.newInstance();
@@ -178,7 +188,7 @@ public class AboutActivity extends AppCompatActivity {
}
@Override
public CharSequence getPageTitle(int position) {
public CharSequence getPageTitle(final int position) {
switch (position) {
case 0:
return getString(R.string.tab_about);

Some files were not shown because too many files have changed in this diff Show More