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
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.
- 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.
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.
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.