Ensure VPN consent is not revoked in prepare/establish.

Covers cases where VPN is prepared, but the consent bit has been lost,
e.g. because updates were uninstalled on the current VPN app. In this
case we want prepare to re-trigger the consent flow, and we do not
want establish() to work.

So, when prepare(package, null) is called, as VpnService.prepare()
will do, if we would have otherwise taken no action and returned true
because the VPN was already prepared, we now check if package has lost
its consent and unprepare the VPN (so that it can be prepared by the
VpnSettings ConfirmDialog).

Bug: 18491424
Change-Id: I8fa60dbc2b95e15f9ce61f9b7e6735db745babba
1 file changed