Merge Android 12 QPR3 ab/8391262

Bug: 226662282
Merged-In: I50e3649c21bb83ee9130fa98a71560fe261198a9
Change-Id: I2a97159d0de32a6262bbace7bb82b09897447bdb
This commit is contained in:
Xin Li
2022-04-01 20:32:46 +00:00
194 changed files with 38127 additions and 50279 deletions

View File

@@ -36,9 +36,11 @@ import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.PowerManager;
import android.os.UserManager;
import android.provider.Settings;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.EventLog;
import android.util.FeatureFlagUtils;
import android.util.Log;
import android.view.ContextMenu;
@@ -206,6 +208,8 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
* by the Test DPC tool in AFW mode.
*/
protected boolean mIsRestricted;
@VisibleForTesting
boolean mIsAdmin = true;
@VisibleForTesting
AirplaneModeEnabler mAirplaneModeEnabler;
@@ -287,6 +291,13 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
addPreferences();
mIsRestricted = isUiRestricted();
mIsAdmin = isAdminUser();
}
private boolean isAdminUser() {
final UserManager userManager = getSystemService(UserManager.class);
if (userManager == null) return true;
return userManager.isAdminUser();
}
private void addPreferences() {
@@ -551,7 +562,9 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
}
if (mSelectedWifiEntry.canDisconnect()) {
menu.add(Menu.NONE, MENU_ID_SHARE, 0 /* order */, R.string.share);
if (mSelectedWifiEntry.canShare()) {
addShareMenuIfSuitable(menu);
}
menu.add(Menu.NONE, MENU_ID_DISCONNECT, 1 /* order */,
R.string.wifi_disconnect_button_text);
}
@@ -559,7 +572,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
// "forget" for normal saved network. And "disconnect" for ephemeral network because it
// could only be disconnected and be put in blocklists so it won't be used again.
if (canForgetNetwork()) {
menu.add(Menu.NONE, MENU_ID_FORGET, 0 /* order */, R.string.forget);
addForgetMenuIfSuitable(menu);
}
WifiConfiguration config = mSelectedWifiEntry.getWifiConfiguration();
@@ -574,6 +587,23 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
}
}
@VisibleForTesting
void addShareMenuIfSuitable(ContextMenu menu) {
if (mIsAdmin) {
menu.add(Menu.NONE, MENU_ID_SHARE, 0 /* order */, R.string.share);
return;
}
Log.w(TAG, "Don't add the Wi-Fi share menu because the user is not an admin.");
EventLog.writeEvent(0x534e4554, "206986392", -1 /* UID */, "User is not an admin");
}
@VisibleForTesting
void addForgetMenuIfSuitable(ContextMenu menu) {
if (mIsAdmin) {
menu.add(Menu.NONE, MENU_ID_FORGET, 0 /* order */, R.string.forget);
}
}
private boolean canForgetNetwork() {
return mSelectedWifiEntry.canForget() && !WifiUtils.isNetworkLockedDown(getActivity(),
mSelectedWifiEntry.getWifiConfiguration());

View File

@@ -85,9 +85,12 @@ public class PrivateDnsPreferenceController extends BasePreferenceController
@Override
public int getAvailabilityStatus() {
return mContext.getResources().getBoolean(R.bool.config_show_private_dns_settings)
? AVAILABLE
: UNSUPPORTED_ON_DEVICE;
if (!mContext.getResources().getBoolean(R.bool.config_show_private_dns_settings)) {
return UNSUPPORTED_ON_DEVICE;
}
final UserManager userManager = mContext.getSystemService(UserManager.class);
if (userManager.isGuestUser()) return DISABLED_FOR_USER;
return AVAILABLE;
}
@Override