• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

packages/apps/Settings


Commit MetaInfo

Revision2fa818c8db55b2c9c409c9e01ebbead088956ae5 (tree)
Zeit2021-04-07 07:05:36
Autorandroid-build-team Robot <android-build-team-robot@goog...>
Commiterandroid-build-team Robot

Log Message

Snap for 7262953 from ec2f5b30a3d8f46874debd22c8864349c79e3a36 to rvc-d2-release

Change-Id: Id62b4ea20d1430ad7e8677cf364f8cfe7317aa76

Ändern Zusammenfassung

Diff

--- a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java
+++ b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java
@@ -207,6 +207,7 @@ public class DeviceAdminListPreferenceController extends BasePreferenceControlle
207207 return true;
208208 });
209209 pref.setOnPreferenceChangeListener((preference, newValue) -> false);
210+ pref.setSingleLineTitle(true);
210211 }
211212
212213 /**
--- a/src/com/android/settings/vpn2/AppDialogFragment.java
+++ b/src/com/android/settings/vpn2/AppDialogFragment.java
@@ -17,6 +17,7 @@
1717 package com.android.settings.vpn2;
1818
1919 import android.app.Dialog;
20+import android.app.admin.DevicePolicyManager;
2021 import android.app.settings.SettingsEnums;
2122 import android.content.Context;
2223 import android.content.DialogInterface;
@@ -55,6 +56,7 @@ public class AppDialogFragment extends InstrumentedDialogFragment implements App
5556 private UserManager mUserManager;
5657 private final IConnectivityManager mService = IConnectivityManager.Stub.asInterface(
5758 ServiceManager.getService(Context.CONNECTIVITY_SERVICE));
59+ private DevicePolicyManager mDevicePolicyManager;
5860
5961 @Override
6062 public int getMetricsCategory() {
@@ -97,7 +99,11 @@ public class AppDialogFragment extends InstrumentedDialogFragment implements App
9799 @Override
98100 public void onCreate(Bundle savedInstanceState) {
99101 super.onCreate(savedInstanceState);
102+ mPackageInfo = getArguments().getParcelable(ARG_PACKAGE);
100103 mUserManager = UserManager.get(getContext());
104+ mDevicePolicyManager = getContext()
105+ .createContextAsUser(UserHandle.of(getUserId()), /* flags= */ 0)
106+ .getSystemService(DevicePolicyManager.class);
101107 }
102108
103109 @Override
@@ -106,7 +112,6 @@ public class AppDialogFragment extends InstrumentedDialogFragment implements App
106112 final String label = args.getString(ARG_LABEL);
107113 boolean managing = args.getBoolean(ARG_MANAGING);
108114 boolean connected = args.getBoolean(ARG_CONNECTED);
109- mPackageInfo = args.getParcelable(ARG_PACKAGE);
110115
111116 if (managing) {
112117 return new AppDialog(getActivity(), this, mPackageInfo, label);
@@ -178,7 +183,10 @@ public class AppDialogFragment extends InstrumentedDialogFragment implements App
178183
179184 private boolean isUiRestricted() {
180185 final UserHandle userHandle = UserHandle.of(getUserId());
181- return mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_VPN, userHandle);
186+ if (mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_VPN, userHandle)) {
187+ return true;
188+ }
189+ return mPackageInfo.packageName.equals(mDevicePolicyManager.getAlwaysOnVpnPackage());
182190 }
183191
184192 private int getUserId() {
--- a/src/com/android/settings/vpn2/AppPreference.java
+++ b/src/com/android/settings/vpn2/AppPreference.java
@@ -16,6 +16,7 @@
1616
1717 package com.android.settings.vpn2;
1818
19+import android.app.admin.DevicePolicyManager;
1920 import android.content.Context;
2021 import android.content.pm.PackageInfo;
2122 import android.content.pm.PackageManager;
@@ -26,6 +27,8 @@ import androidx.preference.Preference;
2627
2728 import com.android.internal.net.LegacyVpnInfo;
2829 import com.android.internal.net.VpnConfig;
30+import com.android.settingslib.RestrictedLockUtils;
31+import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
2932
3033 /**
3134 * {@link androidx.preference.Preference} containing information about a VPN
@@ -43,6 +46,7 @@ public class AppPreference extends ManageablePreference {
4346 super.setUserId(userId);
4447
4548 mPackageName = packageName;
49+ disableIfConfiguredByAdmin();
4650
4751 // Fetch icon and VPN label
4852 String label = packageName;
@@ -74,6 +78,25 @@ public class AppPreference extends ManageablePreference {
7478 setIcon(icon);
7579 }
7680
81+ /**
82+ * Disable this preference if VPN is set as always on by a profile or device owner.
83+ * NB: it should be called after super.setUserId() otherwise admin information can be lost.
84+ */
85+ private void disableIfConfiguredByAdmin() {
86+ if (isDisabledByAdmin()) {
87+ // Already disabled due to user restriction.
88+ return;
89+ }
90+ final DevicePolicyManager dpm = getContext()
91+ .createContextAsUser(UserHandle.of(getUserId()), /* flags= */ 0)
92+ .getSystemService(DevicePolicyManager.class);
93+ if (mPackageName.equals(dpm.getAlwaysOnVpnPackage())) {
94+ final EnforcedAdmin admin = RestrictedLockUtils.getProfileOrDeviceOwner(
95+ getContext(), UserHandle.of(mUserId));
96+ setDisabledByAdmin(admin);
97+ }
98+ }
99+
77100 public PackageInfo getPackageInfo() {
78101 try {
79102 PackageManager pm = getUserContext().getPackageManager();
--- a/src/com/android/settings/widget/FilterTouchesSwitchPreference.java
+++ b/src/com/android/settings/widget/FilterTouchesSwitchPreference.java
@@ -47,7 +47,6 @@ public class FilterTouchesSwitchPreference extends SwitchPreference {
4747
4848 @Override
4949 public void onBindViewHolder(PreferenceViewHolder holder) {
50- setSingleLineTitle(true);
5150 super.onBindViewHolder(holder);
5251 final View switchView = holder.findViewById(android.R.id.switch_widget);
5352 if (switchView != null) {