- Fixed media source resolution on background player for streams without an audio only stream.
- Fixed background player not updating when screen turns back on.
- Fixed background player notification switching to wrong repeat mode icon opacity on click.
Add search and watch history
* Make MainActicity a single task
* Remove some casting
* SearchFragment: start searching when created with query
* Handle settings change in onResume
* History: Log pop up and background playback
* History: Add swipe to remove functionallity
* Enable history by default
* Use stream item
* Store more information about the stream
* Integrate history database into AppDatabase
* Remove redundant casts
* Re-enable date converters
* History: Use Rx Java and run DB in background
* Also make HistoryDAO extend BasicDAO
* History: RX-ify swipe to remove
* Sort history entries by creation date
* History: Set toolbar title
* Don't repeat history entries
* Introduced setters so we can update entries in the database
* If the latest entry has the same (main) values, just update it
- Migrate to fragments
- Fix#487
- Don't show "Open in popup mode" to channel links
- New backstack of videos
- Change the subscribers count to format using `NumberFormat`, for example some locales use `.` others `,`, this handles it automatically (and the old method had a bug for leading zero, e.g. 4.82.125 instead of 4.082.125)
- Add string 'subscribers' for channels with more than 1 subscriber (plural)
- Popup player chooses the default format and resolution based on the new preference (format)
- Fix taskaffinity of the router activities
- Show title before loading, as it is available from the items already loaded
* Fix permission at some places
* Fix access problem for downloaded files with external player
* Store finished Downloads
* Remove binding to DownloadService just to download a file
* Javadoc
* Code improvements
* ReCaptchas are implemented using a simple WebView with Javascript enable.
* All HTTP responses inside the WebView are catched (using onPageFinished())
** When Google reCatcha cookies are detected, register cookies to the
Downloader class and Return to MainActivity
This adds an Application subclass to get the onCreate() method, which is
called once at the first start up of the app, before any Activity starts.
Tor is configured there to ensure it is setup before anything happens.
This also moves the "Use Tor" pref listener to a more appropriate place.
These URLs have a Path that always starts with "/watch" so no need for a
pattern. Also, everything after the "?" is considered the "Query String",
not the Path. Anything after a "#" is the "Feature String". The path
matching in IntentFilters only see the Path, and nothing from the "Query
String" or "Feature String".
these are the available kinds of URLs:
https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/YouTubeLinks/YouTubeLinks.html
Each <data> elements applies to the whole IntentFilter, so there is no need
to declare the host, scheme, etc. multiple times within a single
IntentFilter.
Also, pathPrefix="/" will match all paths, so it is unnecessary.
This makes the app fully exit, and removes it from the Recent Apps listing
with the goal of hiding whatever the user was currently watching, and/or
searching for.
PanicKit provides a common framework for creating "panic button" apps that
can trigger actions in "panic responder" apps. In this case, the response
is to lock the app, if it has been configured to do so
https://dev.guardianproject.info/projects/panic/wiki