DownloadManager does not let you set its proxy or change how it connects to
the internet. So we have to make a custom one, unfortunately. This is a
very basic downloader with none of the special sauce that makes the
built-in DownloadManager handy.
This makes sure that Orbot is running when the user expects it to be. If
NewPipe is configured to use Tor, then going to a NewPipe screen should
ensure Tor is running.
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.
If the user has not changed the "Use Tor" preference, then the default
should be to use Tor if Orbot is installed. The user can still override it
by going an unchecking "Use Tor".
The Tibetan alphabet was only recently included on Android, so the language
name needs to also have the English there. Otherwise it'll appear blank
on devices without Tibetan.
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.
On all of the devices that I've checked, there is a folder called "Movies"
on the SD Card by default. NewPipe should use that standard location
since it is always downloading movies :). People can always change that
via the preferences.
Also, this makes the defaults the same when creating the dir and when
setting the destination URL.
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
Also I added new variable `'final File dir`' with value of key
"download_path_preference" or externalStorageDirectory.
Firstly I check if dir exits, then eventually try to create it and next
- download file.