Commit Graph

85 Commits

Author SHA1 Message Date
Victor Chang
9505b78e29 Merge "Fix always-on is not turned off when user forgets vpn" into nyc-mr1-dev 2016-07-11 13:56:08 +00:00
Victor Chang
fcb0d74a3c Fix always-on is not turned off when user forgets vpn
Change-Id: Iad285ff06abde71ef040cbb29f740bcf20c3bbb7
Fix: 29991174
2016-07-06 18:27:55 +01:00
Robin Lee
07127d83a6 Don't show always-on option connecting PPTP vpn
Support for this kind has been taken out so it shouldn't be an option
when connecting (it's already not an option when editing).

Bug: 28807474
Change-Id: Id3e7be390c6813d091e7f897ac82aaf29042beb8
(cherry picked from commit ca75deb7af)
2016-06-30 09:05:58 +00:00
Victor Chang
52247f69a5 Add explanatory text displayed when 'Always-on' switch is greyed-out for VPN apps w/targetSdk<24
Bug: 28413917
Change-Id: I3e7c079b4f91c02e5d0c0e8fda4ac6775dd0247b
2016-06-27 18:07:35 +01:00
Robin Lee
49be1c1b06 Respect DISALLOW_CONFIG_VPN for disconnect dialog
Change-Id: Idfe3899e81eec5efdbd5700bdc65921de6853898
Fix: 29265163
2016-06-13 15:08:32 +00:00
Robin Lee
cfc0fb02c1 Restrict Settings always-on to NYC+
Bug: 28413917
Change-Id: I1c40bdc94bb05d21daf589840adbbf04abe6c10f
2016-06-06 17:04:36 +00:00
Robin Lee
52541536d0 Disable restricted VPN actions onResume
Otherwise it's pretty easy to circumvent any future restrictions by
keeping VPN settings for a particular app open and continuing to use
it even after DISALLOW_CONFIG_VPN is applied.

Two checks:
 1) in onResume (catches almost every case)
 2) in setAlwaysOn (catches every remaining case)

Bug: 28733079
Change-Id: I1c67bb14891ef620df5ed65fbd32678e417b4a65
2016-06-01 11:32:32 +01:00
Robin Lee
dfd2fc6d06 Don't crash trying to disable lockdown VPN
Bug: 28624328
Change-Id: I2b726453da43feaf5f46d45679a702a52e6f4df0
2016-05-17 14:58:32 +01:00
Robin Lee
cdebe28c15 Add lockdownEnabled parameter to always-on VPN API
Allows callers to opt-out of blockading network traffic during boot and
on VPN app failure.

Bug: 26694104
Change-Id: Ic2c25b79d8a17917025eb37be7de929fe156e2a3
2016-05-03 13:27:05 +01:00
Robin Lee
2821067709 Change VPN failure notification to dialog
It's pointless, verging on antipattern, to pop up a notification that
points to the screen we're already on, especially when that notification
is telling us something really high-priority ("your connection failed").

Change-Id: Idf0c219adcefd64b235960f3239a70b059213f7d
Fix: 27374485
2016-04-22 15:04:43 +01:00
Robin Lee
c9bf2ac95e Update "you're already connected to VPN" strings
Change-Id: I0e64a612b47655a0d74880bc45987c8cd2272ea8
Fix: 28303500
(cherry picked from commit 3e293cb63f)
2016-04-22 13:59:44 +00:00
Robin Lee
b166ea2668 Be more aggressive caching Vpn preference attrs
As any change to the preference title will cause it to lose focus,
best not to do this too often.

Change-Id: Ibac27ee1de42fd7ca05f3e3685b84f37dac39517
Fix: 28191965
2016-04-21 18:04:42 +01:00
Robin Lee
e06d757a0c One updateSummary method called by all VPN prefs
Having multiple methods means inevitably when new features are added to
the preferences, the right calls aren't made so information on the
screen lags between updates.

Bug: 28257641
Change-Id: I336aeefd5941ccf808dc9070427209a7d2530032
(cherry picked from commit 903843e6f9)
2016-04-21 12:06:46 +01:00
Robin Lee
b3c4133a71 Allow disconnecting always-on VPNs
Bug: 28072644
Change-Id: If7595f7e17747867158368d95db5addf97d3a14c
2016-04-14 15:41:41 +01:00
Robin Lee
20ddd1c57b Include login/alwayson in legacy VPN editor dialog
A little more consistent with the new app VPNs' dialogs. To make this
work it was also necessary to restart the lockdown VPN every time it is
edited, which makes sense because the expected action after editing a
VPN is that it reconnects with the new settings.

Bug: 28072644
Change-Id: I4b6a6f0a6ed96d2ec6f62889fdae4abb60d0646c
2016-04-13 14:57:54 +01:00
Victor Chang
1b8855b211 Show notification when failing to turn on always-on vpn
- Notification icon is Settings icon
- VpnName is obtained as the same way as AppPreference
- Post notification as the current user with PendingIntent to VpnSettings to parent user
- Auto-cancel when user taps on the notification
- This implementation posts notification only when the failure happens sychronously
  (Assume ConnectivityService only unset always-on package immediately after calling setAlwaysOnVpnPackageForUser)

Bug:27374485
Change-Id: I0aee38498c8cc300dd8eb9687adcae5f9dc4f8af
2016-03-31 16:40:22 +01:00
Victor Chang
6005aefd44 Remove VPN Overflow menu
- Move always-on option for legacy vpn into the legacy vpn config page
- This implementation doesn't show dialogue when replacing existing always-on vpn
- Continue to disable lockdown option for legacy vpn when "persist.radio.imsregrequired" is true.
  Not applying to vpn app
- Force to save account info when legacy vpn is always-on
- When legacy vpn is always-on, don't try to connect. (Otherwise, an exception is thrown)

TODO: Remove EXTRA_PICK_LOCKDOWN in LockdownVpnTracker in framework

Bug: 26950700
Change-Id: Ia80669359c0b7cdb955c84937156c020ac6e9af5
2016-03-29 17:28:36 +01:00
Victor Chang
14c2ac4dcb Per vpn setting change in VPN list
- Show admin support details when user taps on a cell and user restriction is on
- Show always-on-vpn active status in preference summary
- User can still open non-configurable per-VPN info page even when user restriction is applied
- Rename ConfigPreference to LegacyVpnPreference
- Move summary String handling into ManageablePreference
- ManageablePreference inherits GearPreference to reuse the code
- Don't show disconnect dialog when always-on is enabled

BUG=26950700

Change-Id: I37b087879cf3b674df528e7787d7bb1eead3310f
2016-03-21 12:36:44 +00:00
Victor Chang
16da2aa450 Vpn settings per vpn
This CL adds a setting for each VPN
- When no_config_vpn user restriction is applied, user can't change anything in the page
- Launch the subsetting activity in the corresponding user to unlock keystore and force work challenge
- Show dialog when user replace always-on-VPN package
- When forget VPN, unset always-on-vpn

TODO: show per-VPN status in VPN list

Change-Id: Ica360ea44117db6a4ecfaed1eec6c188189c246c
2016-03-21 12:36:23 +00:00
Robin Lee
37b179fa8c vpn: check fragment is visible before adding prefs
As VPN settings listens to network events it may get woken up again
while it's in the background.

Bug: 23596799
Change-Id: If6e07493da447d7ded324ff86b6e7d57c5c615e3
2016-03-17 10:26:51 +00:00
Robin Lee
eb034eb65e Show "no vpns added" for empty vpn screen
Removed the left-alignment on restricted empty views which was
inherited from Bluetooth settings but inconsistent with normal
settings fragments.

Bug: 22685111
Change-Id: I3a36c47d523392b8925031d4cac2ab3ef681e360
2016-03-16 20:28:52 +00:00
Sudheer Shanka
7dbbe13168 Add disabled by policy empty views to more screens.
Bug: 27214401
Change-Id: I6cd4292a63610671070bf2134105e9e348c3ab32
2016-02-19 20:18:43 +00:00
Robin Lee
cac0dddd2a Disable VPN prefs for restriction or lockdown case
Change-Id: I2fcf84876bf23b92cdcd00ce93514106914d0c29
2016-02-02 14:50:57 +00:00
Chris Wren
9d1bfd1e8d port settings over to new metrics enum
Change-Id: I0b3efd2f4db773ccbc52bfe59ee8eb0dab9584fb
2016-01-27 10:58:58 -05:00
Robin Lee
003a4b563a Show app VPNs in always-on list
Bug: 22547950
Change-Id: I1b37f3b8d2a061f9f6fba3c8b9a95f3b7edcee64
2016-01-14 17:17:52 +00:00
Robin Lee
4c85639733 [VPN] save public legacy VPN details publicly
This does not include certificates, private keys etc. which are still
saved in the KeyStore with the encryption the user requested for them.

Makes connecting to lockdown vpn before user unlock possible.

Bug: 26108660
Change-Id: I56c1672c7a41e761c2791584b99900aff51b59e4
2016-01-05 18:48:46 +00:00
Robin Lee
7bf8654a5c Refactor VPN settings refresh to reuse preferences
The old way was garbage-heavy. To add to that some changes to the way
PreferenceScreens are redrawn was leading to some artifacts with items
fading in/out every tick.

Bug: 25588385
Change-Id: Idabf7546ab519bf196ad3b8582caa2ec6bf9e084
2015-12-08 15:31:32 +00:00
Robin Lee
8edd4c1f8d Merge "VPN settings: grey out policy-restricted menus" am: ee4808d37b am: 905829393d
am: 3ed65b90d0

* commit '3ed65b90d0348b60fc57c08e96986e03fef2fd4e':
  VPN settings: grey out policy-restricted menus
2015-11-13 14:14:09 +00:00
Robin Lee
905829393d Merge "VPN settings: grey out policy-restricted menus"
am: ee4808d37b

* commit 'ee4808d37b955299501e9b753cc7bb19877d4f83':
  VPN settings: grey out policy-restricted menus
2015-11-13 14:08:52 +00:00
Robin Lee
4198607ee2 VPN settings: grey out policy-restricted menus
setHasOptionsMenu seems unreliable at stopping onCreateOptoinsMenu from
being called.

Change-Id: Ie86da8e35dddb6e3a0e4678defc55bf5776f6c2f
2015-11-13 14:01:43 +00:00
Erik Kline
3acdaac1b0 am 38fc400a: am 453d52b6: am 51d71aa2: am 583deb52: Merge "Unconfigure the lockdown VPN if the user forgets its profile." into mnc-dr-dev
* commit '38fc400ac901c8cfec0aeaf07c9d11a2f29d3ce2':
  Unconfigure the lockdown VPN if the user forgets its profile.
2015-10-14 18:01:50 +00:00
Jason Monk
39b467482d Depend on support lib preferences
Bug: 24576551
Change-Id: Ic6190bacd3f7582c9bbc8de972da4612bd92421e
2015-10-13 10:12:20 -04:00
Lorenzo Colitti
c311c94af5 Unconfigure the lockdown VPN if the user forgets its profile.
Currently, if the user clicks "forget" on the configuration
dialog for the profile that is currently being used by the
always-on VPN, we don't disable the lockdown VPN, and we crash
on next boot because ConnectivityService tries to start
LockdownVpnTracker with an invalid configuration.

Fix this by removing the LOCKDOWN_VPN variable in the keystore
(which disables the always-on VPN), and notifying
ConnectivityService.

Bug: 23625458
Change-Id: I3545286c9fc23517306aa94607a4b2cb55cc56c4
2015-10-13 15:23:38 +09:00
Robin Lee
7ba46433ae Merge "Match getLegacyVpn calls to changed interface" into mnc-dev 2015-07-10 19:05:41 +00:00
Robin Lee
290784afde Match getLegacyVpn calls to changed interface
The userId argument is now explicit. Pre-requisite for bug 21499103

Change-Id: Ib83e9615326ea484ef6d63fb1a1d9c1659999dab
2015-07-07 12:35:14 -07:00
Robin Lee
6f4951a1fa Restore Vpn advanced options on re-init or rotate
Visibility isn't restored as part of instance state by default.

Bug: 22183281
Change-Id: I86a7165e918251bc32f6884b9ad5f9c5987ca075
2015-07-06 11:40:27 -07:00
Robin Lee
614fc178bf Fix build
Change-Id: Ibb2db14b2fd38b2c8c066c97f8cd6e396c104ce8
2015-06-25 16:01:44 -07:00
Robin Lee
dd142295da Enable VPN settings for secondary users
This is now supported.

Change-Id: I4a8eabe3042c04061f293066e84238029f18ecd8
2015-06-25 15:26:02 -07:00
Robin Lee
5f6f4cc572 Only unregister the network callback at onPause
Bug: 21592804
Change-Id: I425a8ebd350125ae48b9cf44cfef0b4c572ec25e
2015-06-17 18:44:58 -07:00
Alex Klyubin
3848407d0c Switch from KeyStore.saw to KeyStore.list.
KeyStore.saw was renamed to KeyStore.list for clarity. The
implementation of both methods is exactly the same.

Bug: 18088752
Change-Id: I2f171a4b7479683d5af898ebdf1b6f8a741536d1
2015-06-08 09:30:08 -07:00
Nicolas Prevot
a5df4779a0 Don't allow secondary users apps to start restricted Settings fragment.
On a secondary user, the fragments ApnSettings, TetherSettings and VpnSettings
should not be started.

But an app can still send an intent to start these fragments.
Prevent this by checkin the userId in these fragments.

BUG:15313261
BUG:15312781
BUG:15312494

Change-Id: I2a36bb89a8e37e4440aa28372d7a1800b33dae37
2015-06-02 16:49:20 -07:00
Robin Lee
c409605356 Clear connected legacy VPN during rescan
Change-Id: I0fec37b3f73ce5b538721d79e78e1128d7667380
2015-06-01 18:45:40 -07:00
Robin Lee
01b35bcae3 VPN: UI for forgetting disconnected VPNs
Made possible by expanded internal VPN APIs.

Bug: 20872408
Bug: 20692490
Bug: 20747154
Change-Id: Idc87084a130afa18b27c85cc9d4b5033dcedaabe
2015-05-18 22:55:15 +01:00
Robin Lee
ab6a65c03b VPN: Convert current-context IPCs to user context
These fetch info for the wrong user, which may be either wrong or worse
wholly nonexistent.

Bug: 20747154
Change-Id: Ibd5f2e5d3c5dfd252a032ebdfe204de7166fa3a5
2015-05-05 10:54:24 +00:00
Robin Lee
2bd92d5d06 vpn2: show third-party VPN services
VPN apps are shown alongside configured VPNs now. The requirement that
a password is set is now only enforced when setting up a configured
VPN as this is not necessary for apps.

Some UI redesign.

Bug: 19573824
Bug: 17474682
Bug: 19575658
Change-Id: I02bd977136929647d65b9784fb4cc5df24b45428
2015-04-21 19:42:53 +01:00
Chris Wren
8a963babe2 log visibility of views
Depends-On: I5b1dccb5d103ece3112acf38889bae16273b092f
Change-Id: I116aed2bb805f723a5bf2ec9eb94257de0b4a7b5
2015-03-27 13:39:07 -04:00
John Spurlock
9a23adf69d Settings: Remove all unused imports.
Change-Id: Iebfa52cb849d69974c94902b0b020893cf5618a3
2015-03-18 15:51:15 -04:00
Jeff Davidson
b2bb1973fe Restore legacy VPN stats dialog.
Was originally removed in ag/522961, but restoring to keep legacy VPN
behavior the same from within VpnSettings. This dialog is only
accesible from VpnSettings and so should only ever be shown for legacy
VPNs.

Bug: 17164793
Change-Id: I06c4e136e1023b8f84edfd15a15264d2e41d325b
2014-08-22 13:12:01 -07:00
Jeff Davidson
90b3b211ef Less intrusive VPN dialog.
Add new AppOps to Settings and remove references to obsolete
ManageDialog. VPN UX now lives in Quick Settings.

Bug: 12878887
Bug: 16578022
Change-Id: I102a14c05db26ee3aef030cda971e5165f078a91
2014-08-15 15:00:50 -07:00
Adam Powell
c17bdbf849 Use material alert dialog item view layout
Bug 16552638

Change-Id: I6d0d5c2c3d8cc7064828d223134b020a3a0ca828
2014-08-14 13:11:31 -07:00