Commit Graph

200 Commits

Author SHA1 Message Date
Robert Luo
061a87fe1f Allow advanced VPN to manage connection status via its UI
Bug: 238641532
Test: atest -c VpnSettingsTest
Change-Id: Ia6f1d84bba38bab7f13f46dc8a4fdb4eb0505f8f
2022-07-29 18:31:13 +08:00
Hugh Chen
5cf2b7ff1f Refactor the condition order
Bug: 239984274
Test: atest -c VpnSettingsTest
Change-Id: Ic9e8c775b044fffd5dec5047fb53d75209418d85
2022-07-29 02:45:12 +00:00
Hugh Chen
f03cbcf83b Let advanced VPN profile visible immediately before the user consent to use VPN feature
- This CL will check whether advanced VPN apk is exist or not,
  and if so then show the preference of advanced VPN in the
  "Settings > Network & internet > VPN".

Bug: 239984274
Test: atest -c VpnSettingsTest
Change-Id: I8c11c7f2079d6ebec6c691b8bf2fb26dfc450663
2022-07-28 09:48:18 +00:00
TreeHugger Robot
81618d155e Merge "Add owner to the vpn folder" 2022-05-25 06:45:08 +00:00
Hugh Chen
50897cb960 Add owner to the vpn folder
Bug: 233559781
Test: manually test
Change-Id: Id4bb1ba5dc857d8c5835fabaac059c65ee0552b6
2022-05-25 03:33:45 +00:00
Hugh Chen
75b75d446c Make VPN by Google One always appear in VPN settings
Bug: 233559781
Test: manually test
Change-Id: I175ab126ff92f773ab25a1fa64e4262b324fd353
2022-05-24 10:09:19 +00:00
Hugh Chen
cf210dd00b Implement advanced vpn ui in vpn settings
Bug: 220684478
Test: atest -c VpnSettingsTest

Change-Id: If89de16d02cb8b1f387b8f388f8fcf82ad39066b
2022-04-25 07:59:13 +00:00
Bonian Chen
144f295d7a [Settings] Move display of VPN version into summary text
Move the display of version text within VPN into summary part of the
display, and limit the height of summary area.

Bug: 205460459
Test: local
Change-Id: I666b9db356feeebf04e3be688897c2d9110a5275
2021-11-25 10:57:57 +08:00
Jeremy Goldman
ab1b2be739 Deprecation of legacy VPN types no longer depends on the Provider Model
Flag

Bug: 204522922
Test: atest -c SettingsUnitTests
Change-Id: If14354f4c1b5cb1ef74fc8b94b028006ac1a99b3
2021-11-12 11:13:15 +08:00
Jeremy Goldman
da602e196e Merge "Set summary if VPN is AlwaysOn Type" into sc-dev 2021-05-05 01:06:01 +00:00
Jeremy Goldman
cf8ac147b0 Set summary if VPN is AlwaysOn Type
Bug: 187124456
Test: atest -c SettingsUnitTests
Change-Id: I64158b90921c5766e26d5e438b1d005d5fe9cbaa
2021-05-04 16:32:54 +08:00
Jeremy Goldman
5be88d11de Remove the "+" button on the help menu if no secure vpns can be created
If the provider model is turned on, all new VPNs must have the secure
type. However, there is a system property which is necessary in order to
create secure VPNs. So if the FEATURE_IPSEC_TUNNELS is missing from the
device then we should not enable new 1st party VPNs.

Note, it has been confirmed with the VPN team that we don't expect any
devices released on S to actually be missing this property, but it's
still good to check just in case.

Bug: 176821216
Test: atest -c SettingsUnitTest
Change-Id: I712d342e1970243520612196ba57227b1ff05bbf
2021-04-19 16:47:46 +08:00
Jeremy Goldman
abc82d2606 If the proider model is enabled, the User cannot create insecure VPNs
Additionally, existing secure vpns cannot have their type changed to an
insecure type.
Existing insecure VPNs can be edited, but once the type is changed to a
secure type, it cannot be set to an insecure type again.

Note that devices without FEATURE_IPSEC_TUNNELS still have the ability
to make insecure VPNs at the moment. What to do about these devices will
be addressed in a future change.

Recall video with this Change: https://recall.googleplex.com/projects/a801b0cf-91a5-414e-973b-3c1c8fb5e7be/sessions/bc54e4f2-0205-4822-a51a-382e54f3a956

Test: atest -c SettingsUnitTests
Bug: 176821216
Change-Id: Icf87419650c934a783b01f4d2907b7f704d139b8
2021-04-16 13:11:31 +08:00
Janis Danisevskis
cb79648ab1 Fix nit from ag/13715126
Test: N/A
Bug: 171305607
Bug: 171305388
Change-Id: I3e674387522bbacdbe0df70746b521b059819007
2021-04-12 09:42:28 -07:00
Jeremy Goldman
88ee31e269 Maintain VPN type form the VpnProfile
the connectedLegacyVpn may already exist within the VpnProfiles. Because
the stub profile generated from the LegacyVpnInfo does not contain type
information, overriding whether the VPN is insecure using this
information will provide an incomplete picture.

Test: atest -c SettingsUnitTests
Bug: 184922172
Change-Id: Icf2e08826c444863eaebdaa47bfd217795d2bad6
2021-04-12 15:37:19 +08:00
Jeremy Goldman
d62b2c23cf Update string associated with Connected, Always On or Insecure VPNs
Previously these strings were separated with a comma, but the new design
is to separate them with a "/" and to not include always-on information
if the vpn is also insecure.

Comment thread on the strings doc: https://docs.google.com/document/d/1hjaYuGmvNzCKPOrmjixpmLLXBV8cbxgrZ3eN4KvC4E8/edit?resourcekey=0-zo7B2GVc9luQTut0o8THNA&hl=zh-TW&forcehl=1&disco=AAAAIF3eiQY
screenshot: https://screenshot.googleplex.com/BmBroUZtmUPJz9s
Test: atest -c SettingsUnitTests
Bug: 176821216

Change-Id: Ib9c273de61c9722b0beb6fba127e7481e6c64705
2021-04-07 17:04:13 +08:00
Pavel Grafov
69022ccc3a Merge "Prevent disconnecting admin-configured VPN" into rvc-qpr-dev-plus-aosp am: efab095931
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/14051306

Change-Id: Iaa80f44026f969706701bfc6a4aa4317b1a8acf2
2021-04-01 14:24:46 +00:00
Pavel Grafov
efab095931 Merge "Prevent disconnecting admin-configured VPN" into rvc-qpr-dev-plus-aosp 2021-04-01 13:49:32 +00:00
Pavel Grafov
16d588c11a Prevent disconnecting admin-configured VPN
First, if the VPN is configured by an admin, the preference is
disabled and tapping on it will results in a policy disclouser
dialog.
In addition restriction checks in the dialog also check if the
VPN is admin-configured.

Bug: 179975048
Test: Manual, setting VPN in profile and primary user and via DPM API.
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.vpn2
Change-Id: Id59d2ac2782e83601bc3093d3a092faea36ff5d9
2021-03-31 15:20:11 +00:00
Bonian Chen
d6f54ed90b Revert "[Settings] Convert to getSystemService(Class<T>)"
Revert submission 1645152-getSystemService(Class<T>)

Reason for revert: Fix JUnit test failure
Reverted Changes:
I1b4812044:[Settings] Convert to getSystemService(Class<T>)
I278951c24:[Settings] Support getSystemService(Class<T>)

Change-Id: I864a40f82ba9cb4170900ac0c1d77f781b17341f
2021-03-31 09:37:03 +00:00
Bonian Chen
fecfb7f5e4 Merge "Revert "[Settings] Support getSystemService(Class<T>)"" into sc-dev 2021-03-30 05:31:52 +00:00
Bonian Chen
234b698fb2 Revert "[Settings] Support getSystemService(Class<T>)"
This reverts commit d5ccde31a8.

Reason for revert: failure on test cases

Change-Id: I0a179a6ebb5ef1dec566ce6e8facd5f3b82d7c8a
2021-03-30 00:51:15 +00:00
Jeremy Goldman
025301da1f Merge "Connect VPN warning help icon with the network & internet page." into sc-dev 2021-03-24 05:18:46 +00:00
Bonian Chen
8debbfa8a4 Merge "[Settings] Support getSystemService(Class<T>)" into sc-dev 2021-03-24 04:13:35 +00:00
Jeremy Goldman
76de845f3d Connect VPN warning help icon with the network & internet page.
New VpnInfoPreference created to control the presence or absence
of the warning icon based on the vpn type.

The VpnPreferenceController type casts the preference based on
whether the provider model is enabled. It also detects legacy vpns
by using the LegacyVpnProfileStore, and comparing VPN profile
usernames with the active VPN config's user.

Screenshot: https://screenshot.googleplex.com/AfGrH8wRusTvbf4
Test: atest -c SettingsUnitTests
Bug: Bug: 176821216
Change-Id: I1aa93be5b90b404d9d9cb9bf47ea76fdc9aad401
Merged-In: I1aa93be5b90b404d9d9cb9bf47ea76fdc9aad401
(cherry picked from commit 7a68eb3b5e)
2021-03-24 01:07:28 +00:00
Jeremy Goldman
bd9a65cca6 Merge "Gear Preference on VPN page includes subtitle if the vpn is an insecure type" into sc-dev 2021-03-24 01:01:07 +00:00
Bonian Chen
d5ccde31a8 [Settings] Support getSystemService(Class<T>)
Add getSystemService(Class<T>) to align the capability with framework
part.

This is a back port from aosp/1639943, aosp/1645152 and aosp/1648047

Bug: 179640862
Test: local
Change-Id: I035db55a71f94000ca35f8d71f03c19208423c73
2021-03-24 00:59:46 +08:00
Jeremy Goldman
ab8eeca966 Gear Preference on VPN page includes subtitle if the vpn is an insecure
type

Test: atest SettingsUnitTests
Screenshot: https://screenshot.googleplex.com/BWfUf6hcHNnbLvH
Bug: 176821216
Change-Id: I2bee3ba100bfe636221264492a2ce98b6a664cd5
Merged-In: I2bee3ba100bfe636221264492a2ce98b6a664cd5
(cherry picked from commit 3922249709)
2021-03-23 08:38:12 +00:00
Jeremy Goldman
222dd91102 Legacy VPN Configuration Dialog includes error message if VPN is an
insecure type.

Screenshot: https://screenshot.googleplex.com/53pAJuhTDLJW4Em
Bug: 176821216
Test: atest SettingsUnitTests

Change-Id: I528d46654a39df04b647d6d0137aaf80e7adb05c
Merged-In: I528d46654a39df04b647d6d0137aaf80e7adb05c
(cherry picked from commit 5d92ad5232)
2021-03-23 08:37:11 +00:00
Bonian Chen
db6c47756d [Settings] Convert to getSystemService(Class<T>)
Change to getSystemService(Class<T>) to align the capability with framework
part.

Bug: 179640862
Test: local
Change-Id: I1b4812044fc4876bec6645570049a60f9470dbbd
2021-03-22 06:20:19 +00:00
Jeremy Goldman
19c5d0a749 Merge "Add goldmanj to the Settings' vpn2 directory Owners file" 2021-03-19 06:15:40 +00:00
Chiachang Wang
eb16ebd14a Replace the hidden ProxyInfo methods usage
The hidden ProxyInfo methods usage should be replaced because
ProxyInfo is moving to connectivity mainline module. Setting
will not be able to access it. Replace the usage with
corresponding APIs.

Bug: 172183305
Test: make RunSettingsRoboTests ROBOTEST_FILTER=\
      com.android.settings.wifi.WifiConfigControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=\
      com.android.settings.wifi.WifiConfigController2Test
Test: manually update proxy from setting and check the result
Change-Id: I59192d0d5d38c833eb83cc930e358a738ebe3d13
2021-03-17 12:47:22 +00:00
Jeremy Goldman
22b94fb3fd Add goldmanj to the Settings' vpn2 directory Owners file
Change-Id: I91f560230a5dde1014a18c3d3bd03d1ed6f91dd6
2021-03-15 03:20:32 +00:00
Janis Danisevskis
146a0dab01 Keystore 2.0: Make Legacy VPN settings ready for Keystore 2.0
Keystore 2.0 no longer stores vpn profiles. It still offers a
Legacy VPN profile store, to access existing profiles.

Test: N/A
Bug: 171305607
Bug: 171305388
Merged-In: I40dea0b9c3824b56814ae4c2fb6c7663c7d97af5
Change-Id: I40dea0b9c3824b56814ae4c2fb6c7663c7d97af5
2021-03-03 22:30:48 -08:00
Lorenzo Colitti
1434c08600 Stop using ConnectivityManager for VPNs.
These methods have all moved to VpnManager.

Bug: 173331190
Test: atest SettingsRoboTests
Change-Id: I1dd57fa2213b1785a94ec9d6ab4cce3a5d2684ff
Merged-In: I1dd57fa2213b1785a94ec9d6ab4cce3a5d2684ff
2021-02-18 23:50:59 +09:00
Treehugger Robot
ace5a90870 Merge "Switch Settings from IConnectivityManager to VpnManager." 2021-02-09 09:09:35 +00:00
Lorenzo Colitti
04d34ced59 Switch Settings from IConnectivityManager to VpnManager.
The VPN code is moving out of ConnectivityService to a new
VpnManagerService. Update Settings to call into the VpnManager
class instead of using the AIDL interface directly. This way,
the VPN code can be moved without touching Settings.

Bug: 173331190
Test: builds, boots
Test: manually verified VPN settings page
Change-Id: Id2731a166b5d6783acb1c711a54604b69aa8c0d7
2021-02-08 16:50:25 +09:00
Chiachang Wang
9aaad19a82 Replace Proxy hidden constants and methods usages
Proxy is a part of incoming connectivity mainline module. The
hidden APIs are no longer available outside the module. These
shared constants and methods are moving to ProxyUtils insdide
net shared lib. Update the corresponding usage in the caller
side.

Bug: 172183305
Test: atest SettingsRoboTests
Change-Id: I2d51442e65dbcdf1a36940d8a25c7571363d56e6
2021-02-05 17:37:14 +08:00
Benedict Wong
6f7a25cedc Merge "Hide IKEv2 VPN options if not supported" am: 806523a7cd am: 63a1447508
Change-Id: I33bc05a44f0c7a1862fdd725a6dcff2d848df4ed
2020-05-16 00:46:18 +00:00
Benedict Wong
ad2421fe5b Hide IKEv2 VPN options if not supported
This change hides the VPN type options if the FEATURE_IPSEC_TUNNELS is
not supported on the device.

Bug: 156681625
Test: Manually tested
Change-Id: I3ef2e6144371596380351341e58c4ee84d49f39d
2020-05-14 19:13:53 -07:00
Benedict Wong
50e94f5678 Merge "Fix VPN settings UI to validate IPsec Identifier" am: 04bfcb89ad am: 3d009137d0
Change-Id: If8da943c64f8d665f36b0ab8c4d92a0516640d0c
2020-04-08 18:48:25 +00:00
Benedict Wong
1c69a8282c Fix VPN settings UI to validate IPsec Identifier
This change ensures that the updateUiControls() (and validate()
transitively) is called whenever the IPsec identifier is updated.

Bug: 152811464
Test: Manual testing with settings UI
Change-Id: I6536652a60244c3fde3f65211f9d0709145c6cd9
2020-04-07 11:34:46 -07:00
Automerger Merge Worker
c7bd3a2336 Merge "Address cleanup comments from aosp/1234607" am: 9dec7506d3 am: 008480e019
Change-Id: I4c52881346cada4fa65d8d9d39f9b461177a3c8e
2020-03-13 23:42:29 +00:00
Benedict Wong
1e2a91ba1a Address cleanup comments from aosp/1234607
This change addresses minor cleanup comments from aosp/1234607, renaming
a method.

Bug: 148991741
Test: Compiles
Change-Id: I2f31f8045040e6065a89e842b034aea605a99bd4
2020-03-11 05:46:27 +00:00
TreeHugger Robot
3c96925aef Merge "Disable Settings toggle if admin has set always-on VPN" 2020-02-20 10:09:35 +00:00
Rubin Xu
b3ca3c5fb6 Disable Settings toggle if admin has set always-on VPN
If the admin has turned on always-on VPN, do not allow the user
to modify it.

Bug: 137938969
Test: manually set always-on VPN and check Settings is disabled
Change-Id: Id2541e120f043ce24e52c3189d3a6fb1d85b432b
2020-02-18 17:56:54 +00:00
Benedict Wong
0c1abce1a6 Update Settings UI for IKEv2/IPsec VPNs
This CL updates Settings for IKEv2/IPsec Platform VPN profiles.

Platform VPN profiles currently configure DNS and routes based on the
configuration received from the server. As such, these parameters are
not required to start an always-on VPN.

Similarly, a numeric server address is not required, as the IKEv2
library will do the DNS resolution based on the current Network. This
has the nice property of allowing the VPN to run with IPv4 or IPv6 outer
addresses (as opposed to LegacyVpn, which runs only in IPv4)

Lastly, this always allows configuration of the IKEv2 local identifier,
whether MSCHAPv2, RSA or PSK authentication is used.

Bug: 148991741
Test: Compiles, manually tested.
Change-Id: Ib1049fdc602e349bb0d24de536767a6e15adf194
2020-02-17 16:19:20 -08:00
Automerger Merge Worker
2fec4ba1ed Add Platform VPNs to VPN list am: bcd6b8cbca am: 846de91c30 am: 00e44f608c
Change-Id: Ie11a67984c29b71302239e4491269e50be9be1fb
2020-02-05 00:38:40 +00:00
Benedict Wong
62e55361a8 Update setVpnPackageAuthorization call with VPN type
This commit updates the Settings to also pass the additional
VPN type for app-based VPNs.

Bug: 144246835
Test: Compiles, manually tested to be working
Change-Id: I10cf17419636c3c30e1ec06bb3e6751cb5c65d9b
Merged-In: I10cf17419636c3c30e1ec06bb3e6751cb5c65d9b
2020-02-04 21:06:07 +00:00
Benedict Wong
98678221fa Update setVpnPackageAuthorization call with VPN type
This commit updates the Settings to also pass the additional
VPN type for app-based VPNs.

Bug: 144246835
Test: Compiles, manually tested to be working
Change-Id: I10cf17419636c3c30e1ec06bb3e6751cb5c65d9b
2020-02-03 21:28:26 -08:00