Block editing of locked down wifi network from details page.
Test: make ROBOTEST_FILTER=WifiDetailPreferenceControllerTest RunSettingsRoboTests Bug: 68990370 Change-Id: Idceb064486afd93bc8b2f52d605a788520de8e56
This commit is contained in:
@@ -19,8 +19,6 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
|
||||
import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
|
||||
|
||||
import static com.android.settings.wifi.WifiSettings.isEditabilityLockedDown;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Fragment;
|
||||
import android.content.BroadcastReceiver;
|
||||
@@ -62,6 +60,7 @@ import com.android.settings.widget.EntityHeaderController;
|
||||
import com.android.settings.wifi.WifiDetailPreference;
|
||||
import com.android.settings.wifi.WifiDialog;
|
||||
import com.android.settings.wifi.WifiDialog.WifiDialogListener;
|
||||
import com.android.settings.wifi.WifiUtils;
|
||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
@@ -280,8 +279,8 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
mButtonsPref = ((ActionButtonPreference) screen.findPreference(KEY_BUTTONS_PREF))
|
||||
.setButton1Text(R.string.forget)
|
||||
.setButton1Positive(false)
|
||||
.setButton2Text(R.string.support_sign_in_button_text)
|
||||
.setButton1OnClickListener(view -> forgetNetwork())
|
||||
.setButton2Text(R.string.support_sign_in_button_text)
|
||||
.setButton2Positive(true)
|
||||
.setButton2OnClickListener(view -> signIntoNetwork());
|
||||
|
||||
@@ -498,9 +497,14 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
||||
* Returns whether the network represented by this preference can be forgotten.
|
||||
*/
|
||||
private boolean canForgetNetwork() {
|
||||
// TODO(65396674): create test for the locked down scenario
|
||||
return (mWifiInfo != null && mWifiInfo.isEphemeral())
|
||||
|| (mWifiConfig != null && !isEditabilityLockedDown(mContext, mWifiConfig));
|
||||
return (mWifiInfo != null && mWifiInfo.isEphemeral()) || canModifyNetwork();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the network represented by this preference can be modified.
|
||||
*/
|
||||
public boolean canModifyNetwork() {
|
||||
return mWifiConfig != null && !WifiUtils.isNetworkLockedDown(mContext, mWifiConfig);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -27,6 +27,7 @@ import android.os.Looper;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
@@ -34,8 +35,10 @@ import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.wifi.WifiConfigUiBase;
|
||||
import com.android.settings.wifi.WifiDialog;
|
||||
import com.android.settings.wrapper.ConnectivityManagerWrapper;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.wifi.AccessPoint;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -105,7 +108,12 @@ public class WifiNetworkDetailsFragment extends DashboardFragment {
|
||||
public boolean onOptionsItemSelected(MenuItem menuItem) {
|
||||
switch (menuItem.getItemId()) {
|
||||
case Menu.FIRST:
|
||||
showDialog(WIFI_DIALOG_ID);
|
||||
if (!mWifiDetailPreferenceController.canModifyNetwork()) {
|
||||
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getContext(),
|
||||
RestrictedLockUtils.getDeviceOwner(getContext()));
|
||||
} else {
|
||||
showDialog(WIFI_DIALOG_ID);
|
||||
}
|
||||
return true;
|
||||
default:
|
||||
return super.onOptionsItemSelected(menuItem);
|
||||
|
Reference in New Issue
Block a user