Commit graph

9950 commits

Author SHA1 Message Date
Stypox
3bb51875bc
Merge pull request #9501 from Stypox/import-subscriptions-hint
Add hint to improve discoverability of subscription import
2022-12-04 20:19:19 +01:00
Stypox
40225443ed
Center text in empty views 2022-12-04 19:25:38 +01:00
Stypox
10977eaefa
Show hint about how to import subscriptions when there are none 2022-12-04 19:16:47 +01:00
Stypox
3103fd7302
Rename list_empty_subtitle string 2022-12-04 18:59:14 +01:00
Stypox
281ac13eed
Merge pull request #8883 from Douile/dev-enqueue-next-hide
Only show "Enqueue next" when in the middle of the queue
2022-12-04 18:43:45 +01:00
Douile
e5f30a07bf
Only show "Enqueue next" when in the middle of the queue
Add a check that the queue position is not the last in the queue before
showing "Enqueue next".

Previously the "Enqueue next" action would always be shown if the queue
length was greater than one, this meant even if you were at the end of
the queue (when "Enqueue" would have the same effect as "Enqueue next")
the action would still be shown.
2022-12-04 18:20:50 +01:00
Stypox
9c4d5526f4
Merge pull request #8810 from Isira-Seneviratne/Math_floorDiv
Use Math.floorDiv().
2022-12-04 18:08:12 +01:00
pratyaksh1610
869d46f15c rename help to fast mode 2022-12-04 19:11:38 +05:30
pratyaksh1610
1afb9cdba9 added Language suffix for subtitle downloads 2022-12-04 17:59:22 +05:30
evermind
da7b747d61 just for the build to complete -- drop commit before merge 2022-12-04 12:18:21 +01:00
evermind
90e434663c searchfilters: fixup 4th dialog to draw a separator line between FilterGroup without a label 2022-12-04 12:18:21 +01:00
Isira Seneviratne
6b210e1542
Apply ktlint formatting. 2022-12-04 12:01:57 +01:00
Isira Seneviratne
f1b15a95a4
Show toast when no updates are available.
Co-authored-by: Stypox <stypox@pm.me>
2022-12-04 12:01:56 +01:00
Hosted Weblate
1d53389ca9
Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (646 of 646 strings)

Translated using Weblate (Hindi)

Currently translated at 100.0% (646 of 646 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (646 of 646 strings)

Translated using Weblate (French)

Currently translated at 100.0% (646 of 646 strings)

Translated using Weblate (Norwegian Nynorsk)

Currently translated at 9.1% (59 of 646 strings)

Translated using Weblate (Punjabi (Pakistan))

Currently translated at 19.6% (127 of 646 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 99.0% (640 of 646 strings)

Translated using Weblate (Arabic (Libya))

Currently translated at 5.5% (4 of 72 strings)

Translated using Weblate (Hindi)

Currently translated at 18.0% (13 of 72 strings)

Translated using Weblate (Hungarian)

Currently translated at 11.1% (8 of 72 strings)

Translated using Weblate (Portuguese)

Currently translated at 69.4% (50 of 72 strings)

Translated using Weblate (Filipino)

Currently translated at 5.5% (4 of 72 strings)

Translated using Weblate (Filipino)

Currently translated at 35.9% (232 of 646 strings)

Translated using Weblate (Catalan)

Currently translated at 95.9% (620 of 646 strings)

Translated using Weblate (Hindi)

Currently translated at 78.7% (509 of 646 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (646 of 646 strings)

Translated using Weblate (Chinese (Traditional, Hong Kong))

Currently translated at 100.0% (646 of 646 strings)

Translated using Weblate (Portuguese (Portugal))

Currently translated at 69.4% (50 of 72 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (72 of 72 strings)

Translated using Weblate (Azerbaijani)

Currently translated at 100.0% (646 of 646 strings)

Translated using Weblate (Odia)

Currently translated at 100.0% (646 of 646 strings)

Translated using Weblate (Persian)

Currently translated at 61.1% (44 of 72 strings)

Translated using Weblate (Russian)

Currently translated at 41.6% (30 of 72 strings)

Translated using Weblate (Persian)

Currently translated at 100.0% (646 of 646 strings)

Translated using Weblate (Norwegian Nynorsk)

Currently translated at 6.1% (40 of 646 strings)

Translated using Weblate (Odia)

Currently translated at 100.0% (646 of 646 strings)

Translated using Weblate (Odia)

Currently translated at 2.7% (2 of 72 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (646 of 646 strings)

Translated using Weblate (French)

Currently translated at 100.0% (646 of 646 strings)

Translated using Weblate (Odia)

Currently translated at 30.1% (195 of 646 strings)

Translated using Weblate (Russian)

Currently translated at 41.6% (30 of 72 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 92.2% (596 of 646 strings)

Translated using Weblate (Hindi)

Currently translated at 69.6% (450 of 646 strings)

Added translation using Weblate (Norwegian Nynorsk)

Translated using Weblate (Georgian)

Currently translated at 100.0% (646 of 646 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (646 of 646 strings)

Translated using Weblate (Icelandic)

Currently translated at 99.0% (640 of 646 strings)

Translated using Weblate (Punjabi)

Currently translated at 6.9% (5 of 72 strings)

Translated using Weblate (German)

Currently translated at 62.5% (45 of 72 strings)

Translated using Weblate (Chinese (Simplified))

Currently translated at 100.0% (646 of 646 strings)

Translated using Weblate (Georgian)

Currently translated at 20.1% (130 of 646 strings)

Translated using Weblate (Georgian)

Currently translated at 98.6% (71 of 72 strings)

Added translation using Weblate (Georgian)

Co-authored-by: AudricV <avdivers84@gmail.com>
Co-authored-by: Boros Zsombor <zsombor2626@gmail.com>
Co-authored-by: Cyndaquissshhh <iversonbriones123@gmail.com>
Co-authored-by: Emin Tufan Çetin <etcetin@gmail.com>
Co-authored-by: GET100PERCENT <eraofphysics@yahoo.com>
Co-authored-by: Gediminas Murauskas <muziejusinfo@gmail.com>
Co-authored-by: Hoseok Seo <ddinghoya@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Co-authored-by: JY3 <GeeyunJY3@gmail.com>
Co-authored-by: L-M-H <lars.magnus@herland.priv.no>
Co-authored-by: M. Ll <mklr95@gmail.com>
Co-authored-by: M4SK <themightyloki@free.fr>
Co-authored-by: Nahla Hamdi <nahlahamdi87@gmail.com>
Co-authored-by: Net <nizamismidov4@gmail.com>
Co-authored-by: Nikoloz <nukushatugushi@gmail.com>
Co-authored-by: Pedro Henrique Vilela do Nascimento <pedro.hvn@usp.br>
Co-authored-by: Platon Terekhov <gibbonsville_cowal@simplelogin.com>
Co-authored-by: Ray <ray.cfu@protonmail.com>
Co-authored-by: ShareASmile <aapshergill@gmail.com>
Co-authored-by: Trendyne <eiko@chiru.no>
Co-authored-by: VfBFan <drop0815@posteo.de>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: bgo-eiu <huyaqoob+toolforge@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: qqqq1 <qqqq1@hi2.in>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: tryvseu <tryvseu@tuta.io>
Co-authored-by: Артём Нефедов <artem10397g@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ar_LY/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/es/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fa/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fil/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hi/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hu/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ka/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/or/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pa/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt_PT/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ru/
Translation: NewPipe/Metadata
2022-12-04 00:15:40 +01:00
evermind
161eb16906 searchfilters: make dividerLabel inside ChipGroup use one row exclusivly 2022-12-03 22:07:20 +01:00
evermind
6eef250151 searchfilters: integrate 4th Ui into SearchFragment 2022-12-03 21:52:29 +01:00
evermind
1a2d58f4a4 searchfilters: 4th dialog: every search filter option is a Chip 2022-12-03 21:52:24 +01:00
evermind
830b4d0c9b searchfilters: make SearchFilterDialogGenerator DividerItem aware
Refactor createUiChipElementsForFilterGroupItems and make this method
aware of DividerItem

Make classes inheritable (changes private to protected for some
methods/variables)
2022-12-03 21:46:45 +01:00
evermind
e4d3778cce Avoid multiple instances of the dialog that could be triggered by multiple taps 2022-12-03 21:46:45 +01:00
evermind
a99a767b08 searchfilters: make default dialog not stretch vertically
Originally stretching vertically over the whole screen was used
to avoid resizing the UI each time the selected content filter
selects another set of sort filters.

As it turns out fullscreen vertically dialogs can be ugly and my
other attempt to use View.INVISIBLE instead of (View.GONE) in order
to have some sort of placeholder, didn't work well with the Spinner
Views either. So we go back and let Android resize the UI.

Another resizing annoyance is now avoided. The Material's Chip with the
Filter style was also resized each time a Chip was selected.

To avoid resizing for the Chip views the checkmark icon is removed
by using a custom chip style: "@style/ChipSearchFilter". The
custom chip style also improves the contrast when a chip is selected

To save some space a ChipGroup that holds more than
CHIP_GROUP_ELEMENTS_THRESHOLD elements will be spanned
over all cells of a row in the GridLayout.
2022-12-03 21:46:45 +01:00
evermind
d7bfb0ab7a searchfilters: Moving DividerItem from NewPipeExtractor into NewPipe
DividerItem was inserted in the content filter framework in the
NewPipeExtractor to have a section title for YoutubeMusic. But as
UI releated stuff seems a bit out of place in the Extractor I came
up with injecting the DividerItem aka section title in the frontend
without having to change too much in the frontend.
2022-12-03 21:46:45 +01:00
evermind
2da5876970 searchfilters: convert remaining search filter classes to ViewModel (part 3 of 3) 2022-12-03 21:46:45 +01:00
evermind
717c102b1d searchfilters: convert SearchFragment using the ViewModel (part 2 of 3) 2022-12-03 21:46:45 +01:00
evermind
0953a016cd searchfilters: convert to ViewModel (part 1 of 3)
The ViewModel that hosts the search filters logic. It facilitates
the communication with the SearchFragment* and the *DialogFragment
based filter UI's
2022-12-03 21:46:45 +01:00
evermind
3590979426 searchfilters: more NotNull/Nullable annotation for changed methods/classes 2022-12-03 21:46:45 +01:00
evermind
a4b8c0b3fd searchfilters: annotate methods and parameters with Nullable or NotNull inside search/filter/.* 2022-12-03 21:46:45 +01:00
evermind
f24fdcd9e3 searchfilters: convert SparseIntCompat to SparseArrayCompat to get the unit test working 2022-12-03 21:46:45 +01:00
evermind
eec3cec52c searchfilters: replace Map<Integer, Object> with SparseArrayCompat 2022-12-03 21:46:45 +01:00
evermind
868be7a905 searchfilters: replace Map<Integer, Integer> with SparseIntArray 2022-12-03 21:46:45 +01:00
evermind
0dc3f105ad searchfilters: convert parameters where possible from ArrayList to List
Co-authored-by: Isira Seneviratne <31027858+Isira-Seneviratne@users.noreply.github.com>
2022-12-03 21:46:45 +01:00
evermind
531fa3882f searchfilters: remove onResume() onPause() calles
Those calles are no longer needed as the causing null ptr problem
was solved using the convertView paramter instead of locally cache
the TextView's in the Spinner Adapter.
2022-12-03 21:46:45 +01:00
evermind
dd13ec43fb searchfilters: use reworked getTranslatedFilterString() method
Adjust to changes in NewPipeExtractor's FilterGroup and FilterItem class.
2022-12-03 21:46:45 +01:00
evermind
9ca7c1f23d searchfilters: rework getTranslatedFilterString() method 2022-12-03 21:46:45 +01:00
evermind
ca68c32be2 cleanup SearchFragment: remove some not used parameters and method 2022-12-03 21:46:45 +01:00
evermind
9bceb64dfc searchfilters: unit test for SearchFilterLogic and BaseSearchFilterUiGenerator 2022-12-03 21:46:45 +01:00
evermind
b0e0bc5150 searchfilters: integrate 3rd UI SearchFragment/SearchFragmentLegacy 2022-12-03 21:46:45 +01:00
evermind
f8101097c4 searchfilters: 3rd Ui: action based UI (enhanched legacy menu)
This approach is more or less a hack but if all else fails. Could later
be dropped or right away.
2022-12-03 21:46:45 +01:00
evermind
d02c322319 searchfilters: integrate 2nd Ui into SearchFragment 2022-12-03 21:46:45 +01:00
evermind
c8320abbe6 searchfilters: configuration option to choose between search filter dialogs 2022-12-03 21:46:45 +01:00
evermind
44a4a3172f searchfilters: 2nd Ui: Action menu feel alike dialog
Dialog looks similar to a action menu based approach but is faster.
2022-12-03 21:46:35 +01:00
evermind
0ff1f6bdfb searchfilters: replace old filter interaction and integrate new dialog into SearchFragment 2022-12-03 21:37:08 +01:00
evermind
b375c65b78 searchfilters: add to strings.xml 'content filter', 'sort filter' and 'filter' 2022-12-03 21:37:07 +01:00
evermind
0578e0e64d searchfilters: 1st Ui: default dialog for search content and sort filters 2022-12-03 21:37:07 +01:00
evermind
9d9f7c49c8 searchfilters: common base classes for DialogFragment based UI's 2022-12-03 21:36:57 +01:00
Jared Fantaye
8fc5fa979d Added menu with tappable list items 2022-12-03 09:52:04 +01:00
TacoTheDank
074a8ff46a Update Desugaring to 1.1.8 2022-12-02 13:52:30 -05:00
evermind
5b0f4ebf73 searchfilters: dynamically generate UIs and evaluate selected sort and content filters
SearchFilterLogic.java:
=======================
This class handles all the user interaction with the content and sort filters
of NewPipeExtractor.

The class works standalone to just get the default selected filters eg.
during init phase. See in SearchFragment#initializeFilterData()

BaseSearchFilterUiGenerator.java:
=================================
It extends SearchFilterLogic and is used as a base class to implement the UI interface
for content and sort filter dialogs eg. SearchFilterDialogGenerator or
SearchFilterOptionMenuAlikeDialogGenerator.
2022-12-02 00:54:23 +01:00
Jared Fantaye
a2f2d562f6 Disabling night theme selection if auto theme is not used 2022-12-01 13:01:58 +01:00
Stypox
bd6b3c53c5
Merge pull request #9480 from TacoTheDank/bumpSonar
Update Sonarqube to 3.5
2022-11-30 00:14:33 +01:00
TacoTheDank
8282b8a6c0 Update Sonarqube to 3.5 2022-11-29 11:20:31 -05:00