Commit Graph

5134 Commits

Author SHA1 Message Date
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
Tobias Groza eeeeeef3a7
Merge pull request #2720 from haggaie/hebrew-translation
Fix Hebrew translation on some devices
2019-11-24 21:26:52 +01:00
Tobias Groza 2b2de8811e
Merge pull request #2772 from mitosagi/popup-player-gestures
Fix popup player gestures
2019-11-23 19:41:55 +01:00
mitosagi 2ad0d47f61 Fix popup player gestures 2019-11-22 11:41:10 +01:00
Tobias Groza b9d6d55aa4
Merge pull request #2742 from mauriciocolli/fix-mess-tabs
Fix tab handling and enable ignored tests again
2019-11-21 22:23:40 +01:00
Mauricio Colli bc283bce4e
Make the KioskFragment aware of changes in the preferred content country 2019-11-20 00:23:35 -03:00
Mauricio Colli 544cae4fb4
Use tab position from parameters instead of relying on the view pager 2019-11-20 00:23:34 -03:00
Mauricio Colli 38a0395d45
Enable toolbar title visibility when setting a new one 2019-11-20 00:23:33 -03:00
Mauricio Colli a5b7666188
Clear the item list when starting loading 2019-11-20 00:23:31 -03:00
Mauricio Colli 58a626dedb
Fix broken view pager tabs implementation
- Fragments were being recreated from scratch (losing their state) every
time some configuration change occurred (e.g. screen rotation).
- Use `FragmentStatePagerAdapter` instead, as it is built to work with
them and manage their states.
2019-11-20 00:23:30 -03:00
Mauricio Colli 7e311e5567
Fix mess with tab handling and enable ignored tests again
- Fix typo in a string resource
- Reorder tabs so the default kiosk is on top of the others
2019-11-20 00:23:29 -03:00
TobiGr c0cbec700c Merge remote-tracking branch 'Weblate/dev' into dev 2019-11-19 21:49:14 +01:00
Tobias Groza e9c9dfcd8c
Merge pull request #2799 from Ozyc/patch-1
Make reCAPTCHA string untranslatable
2019-11-19 21:16:25 +01:00
Tobias Groza c9cbb1e6f1
Merge pull request #2816 from Redirion/patch-3
Bump ExoPlayer to 2.10.8
2019-11-19 18:11:38 +01:00
Hosted Weblate 3ea8841e3a
Merge branch 'origin/dev' into Weblate. 2019-11-19 15:04:49 +01:00
chr56 8b26e5b106
Translated using Weblate (Chinese (Simplified))
Currently translated at 32.9% (165 of 501 strings)
2019-11-19 15:04:47 +01:00
Éfrit 495fa170a9
Translated using Weblate (French)
Currently translated at 100.0% (501 of 501 strings)
2019-11-19 15:04:37 +01:00
oskamuelller4fs 406d02fd28
Translated using Weblate (German)
Currently translated at 100.0% (501 of 501 strings)
2019-11-19 15:04:34 +01:00
Geoflly Adonias 3ad8883999
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (501 of 501 strings)
2019-11-19 15:04:33 +01:00
Redirion dcd7055a9d
Bump ExoPlayer to 2.10.8
Here we go again.
Minor update.
ExoPlayer Changelog: https://github.com/google/ExoPlayer/blob/release-v2/RELEASENOTES.md
2019-11-19 14:25:40 +01:00
Tobias Groza a8e326ceea
Merge pull request #2713 from mauriciocolli/compatibility-extractor
Use new Localization and Downloader implementations from extractor
2019-11-18 10:05:45 +01:00
Mauricio Colli b125ff702a
Show parsed relative times instead of whatever the service gives us
Before, the direct value was given to the user, now it uses the parsed
date so we can match the device's language.

To get the relative time from the parsed dates, we use the PrettyTime
library.

Also introduces a debug option to check the service's original value.
2019-11-17 23:58:55 -03:00
Mauricio Colli 6e546703a9
Show proper text for live streams watching/listening count 2019-11-17 23:58:54 -03:00
Mauricio Colli 71f1bbdcc1
Use new Localization and Downloader implementations from extractor 2019-11-17 23:58:52 -03:00
chr56 bdb86a7fde
Translated using Weblate (Chinese (Simplified))
Currently translated at 19.2% (96 of 501 strings)
2019-11-16 23:06:09 +01:00
Pekka Ristola 8ac8258400
Translated using Weblate (Finnish)
Currently translated at 67.7% (339 of 501 strings)
2019-11-16 23:06:01 +01:00
Mattias Münster 0338ff8d51
Translated using Weblate (Swedish)
Currently translated at 91.2% (457 of 501 strings)
2019-11-16 23:06:00 +01:00
Éfrit d694e61006
Translated using Weblate (French)
Currently translated at 100.0% (501 of 501 strings)
2019-11-16 23:05:53 +01:00