Merge Android 12 QPR3 ab/8391262
Bug: 226662282 Merged-In: I50e3649c21bb83ee9130fa98a71560fe261198a9 Change-Id: I2a97159d0de32a6262bbace7bb82b09897447bdb
This commit is contained in:
@@ -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());
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user