Merge "Restrict WiFi network connection" into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
35484ee87a
@@ -628,15 +628,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
}
|
||||
|
||||
if (preference instanceof LongPressWifiEntryPreference) {
|
||||
final WifiEntry selectedEntry =
|
||||
((LongPressWifiEntryPreference) preference).getWifiEntry();
|
||||
|
||||
if (selectedEntry.shouldEditBeforeConnect()) {
|
||||
launchConfigNewNetworkFragment(selectedEntry);
|
||||
return true;
|
||||
}
|
||||
|
||||
connect(selectedEntry, true /* editIfNoConfig */, true /* fullScreenEdit */);
|
||||
onSelectedWifiPreferenceClick((LongPressWifiEntryPreference) preference);
|
||||
} else if (preference == mAddWifiNetworkPreference) {
|
||||
onAddNetworkPressed();
|
||||
} else {
|
||||
@@ -645,6 +637,25 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
return true;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void onSelectedWifiPreferenceClick(LongPressWifiEntryPreference preference) {
|
||||
final WifiEntry selectedEntry = preference.getWifiEntry();
|
||||
|
||||
if (selectedEntry.shouldEditBeforeConnect()) {
|
||||
launchConfigNewNetworkFragment(selectedEntry);
|
||||
return;
|
||||
}
|
||||
|
||||
if (selectedEntry.canConnect()) {
|
||||
connect(selectedEntry, true /* editIfNoConfig */, true /* fullScreenEdit */);
|
||||
return;
|
||||
}
|
||||
|
||||
if (selectedEntry.isSaved()) {
|
||||
launchNetworkDetailsFragment(preference);
|
||||
}
|
||||
}
|
||||
|
||||
private void launchWifiDppConfiguratorActivity(WifiEntry wifiEntry) {
|
||||
final Intent intent = WifiDppUtils.getConfiguratorQrCodeGeneratorIntentOrNull(getContext(),
|
||||
mWifiManager, wifiEntry);
|
||||
@@ -984,7 +995,8 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
return new FirstWifiEntryPreference(getPrefContext(), wifiEntry, this);
|
||||
}
|
||||
|
||||
private void launchNetworkDetailsFragment(LongPressWifiEntryPreference pref) {
|
||||
@VisibleForTesting
|
||||
void launchNetworkDetailsFragment(LongPressWifiEntryPreference pref) {
|
||||
final WifiEntry wifiEntry = pref.getWifiEntry();
|
||||
final Context context = getContext();
|
||||
final CharSequence title =
|
||||
@@ -1253,7 +1265,8 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
}
|
||||
}
|
||||
|
||||
private void launchConfigNewNetworkFragment(WifiEntry wifiEntry) {
|
||||
@VisibleForTesting
|
||||
void launchConfigNewNetworkFragment(WifiEntry wifiEntry) {
|
||||
final Bundle bundle = new Bundle();
|
||||
bundle.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY,
|
||||
wifiEntry.getKey());
|
||||
|
@@ -17,6 +17,7 @@ package com.android.settings.wifi;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.preference.PreferenceViewHolder;
|
||||
|
||||
@@ -43,4 +44,23 @@ public class LongPressWifiEntryPreference extends WifiEntryPreference {
|
||||
view.itemView.setLongClickable(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void refresh() {
|
||||
super.refresh();
|
||||
setEnabled(shouldEnabled());
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
boolean shouldEnabled() {
|
||||
WifiEntry wifiEntry = getWifiEntry();
|
||||
if (wifiEntry == null) return false;
|
||||
|
||||
boolean enabled = wifiEntry.canConnect();
|
||||
// If Wi-Fi is connected or saved network, leave it enabled to disconnect or configure.
|
||||
if (!enabled && (wifiEntry.canDisconnect() || wifiEntry.isSaved())) {
|
||||
enabled = true;
|
||||
}
|
||||
return enabled;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user