Merge "[Wi-Fi] Split WifiEntryCallback into separate callbacks for each action"
diff --git a/src/com/android/settings/wifi/WifiSettings2.java b/src/com/android/settings/wifi/WifiSettings2.java
index bd79b3f..55ce8a1 100644
--- a/src/com/android/settings/wifi/WifiSettings2.java
+++ b/src/com/android/settings/wifi/WifiSettings2.java
@@ -76,11 +76,8 @@
import com.android.settingslib.search.SearchIndexableRaw;
import com.android.settingslib.wifi.LongPressWifiEntryPreference;
import com.android.wifitrackerlib.WifiEntry;
-import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback;
-import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.ConnectStatus;
-import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.DisconnectStatus;
-import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.ForgetStatus;
-import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.SignInStatus;
+import com.android.wifitrackerlib.WifiEntry.ConnectCallback;
+import com.android.wifitrackerlib.WifiEntry.ConnectCallback.ConnectStatus;
import com.android.wifitrackerlib.WifiPickerTracker;
import java.time.Clock;
@@ -543,7 +540,7 @@
connect(mSelectedWifiEntry, true /* editIfNoConfig */, false /* fullScreenEdit */);
return true;
case MENU_ID_DISCONNECT:
- mSelectedWifiEntry.disconnect();
+ mSelectedWifiEntry.disconnect(null /* callback */);
return true;
case MENU_ID_FORGET:
forget(mSelectedWifiEntry);
@@ -720,7 +717,7 @@
mConnectedWifiEntryPreferenceCategory.addPreference(pref);
pref.setOnPreferenceClickListener(preference -> {
if (connectedEntry.canSignIn()) {
- connectedEntry.signIn();
+ connectedEntry.signIn(null /* callback */);
} else {
launchNetworkDetailsFragment(pref);
}
@@ -961,7 +958,7 @@
private void forget(WifiEntry wifiEntry) {
mMetricsFeatureProvider.action(getActivity(), SettingsEnums.ACTION_WIFI_FORGET);
- wifiEntry.forget();
+ wifiEntry.forget(null /* callback */);
}
private void connect(WifiEntry wifiEntry, boolean editIfNoConfig, boolean fullScreenEdit) {
@@ -969,11 +966,9 @@
wifiEntry.isSaved());
// If it's an unsaved secure WifiEntry, it will callback
- // WifiEntryCallback#onConnectResult with
- // WifiEntryCallback#CONNECT_STATUS_FAILURE_NO_CONFIG
- wifiEntry.setListener(new WifiEntryConnectCallback(wifiEntry, editIfNoConfig,
+ // ConnectCallback#onConnectResult with ConnectCallback#CONNECT_STATUS_FAILURE_NO_CONFIG
+ wifiEntry.connect(new WifiEntryConnectCallback(wifiEntry, editIfNoConfig,
fullScreenEdit));
- wifiEntry.connect();
}
private class WifiSaveThenConnectActionListener implements WifiManager.ActionListener {
@@ -1039,7 +1034,7 @@
}
};
- private class WifiEntryConnectCallback implements WifiEntryCallback {
+ private class WifiEntryConnectCallback implements ConnectCallback {
final WifiEntry mConnectWifiEntry;
final boolean mEditIfNoConfig;
final boolean mFullScreenEdit;
@@ -1052,18 +1047,13 @@
}
@Override
- public void onUpdated() {
- // Do nothing.
- }
-
- @Override
public void onConnectResult(@ConnectStatus int status) {
final Activity activity = getActivity();
if (isFisishingOrDestroyed(activity)) {
return;
}
- if (status == WifiEntryCallback.CONNECT_STATUS_FAILURE_NO_CONFIG) {
+ if (status == ConnectCallback.CONNECT_STATUS_FAILURE_NO_CONFIG) {
if (mEditIfNoConfig) {
// Edit an unsaved secure Wi-Fi network.
if (mFullScreenEdit) {
@@ -1077,21 +1067,6 @@
Toast.LENGTH_SHORT).show();
}
}
-
- @Override
- public void onDisconnectResult(@DisconnectStatus int status) {
- // Do nothing.
- }
-
- @Override
- public void onForgetResult(@ForgetStatus int status) {
- // Do nothing.
- }
-
- @Override
- public void onSignInResult(@SignInStatus int status) {
- // Do nothing.
- }
}
private boolean isFisishingOrDestroyed(Activity activity) {
diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
index 5f74d56..50927e3 100644
--- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
@@ -75,12 +75,14 @@
import com.android.settingslib.widget.ActionButtonsPreference;
import com.android.settingslib.widget.LayoutPreference;
import com.android.wifitrackerlib.WifiEntry;
+import com.android.wifitrackerlib.WifiEntry.ConnectCallback;
+import com.android.wifitrackerlib.WifiEntry.ConnectCallback.ConnectStatus;
import com.android.wifitrackerlib.WifiEntry.ConnectedInfo;
+import com.android.wifitrackerlib.WifiEntry.ForgetCallback;
+import com.android.wifitrackerlib.WifiEntry.ForgetCallback.ForgetStatus;
+import com.android.wifitrackerlib.WifiEntry.SignInCallback;
+import com.android.wifitrackerlib.WifiEntry.SignInCallback.SignInStatus;
import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback;
-import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.ConnectStatus;
-import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.DisconnectStatus;
-import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.ForgetStatus;
-import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback.SignInStatus;
import java.net.Inet4Address;
import java.net.Inet6Address;
@@ -95,7 +97,7 @@
*/
public class WifiDetailPreferenceController2 extends AbstractPreferenceController
implements PreferenceControllerMixin, WifiDialog2Listener, LifecycleObserver, OnPause,
- OnResume, WifiEntryCallback {
+ OnResume, WifiEntryCallback, ConnectCallback, ForgetCallback, SignInCallback {
private static final String TAG = "WifiDetailsPrefCtrl2";
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
@@ -214,8 +216,6 @@
|| hasCapabilityChanged(nc, NET_CAPABILITY_VALIDATED)
|| hasCapabilityChanged(nc, NET_CAPABILITY_CAPTIVE_PORTAL)
|| hasCapabilityChanged(nc, NET_CAPABILITY_PARTIAL_CONNECTIVITY)) {
- // TODO(b/143326832): What to do with WifiEntry?
- // mAccessPoint.update(mWifiConfig, mWifiInfo, mNetworkInfo);
refreshEntityHeader();
}
mNetworkCapabilities = nc;
@@ -706,7 +706,7 @@
showConfirmForgetDialog();
return;
} else {
- mWifiEntry.forget();
+ mWifiEntry.forget(this);
}
mMetricsFeatureProvider.action(
@@ -719,7 +719,7 @@
final AlertDialog dialog = new AlertDialog.Builder(mContext)
.setPositiveButton(R.string.forget, ((dialog1, which) -> {
try {
- mWifiEntry.forget();
+ mWifiEntry.forget(this);
} catch (RuntimeException e) {
Log.e(TAG, "Failed to remove Passpoint configuration for "
+ WifiEntryShell.getPasspointFqdn(mWifiEntry));
@@ -768,7 +768,7 @@
private void signIntoNetwork() {
mMetricsFeatureProvider.action(
mFragment.getActivity(), SettingsEnums.ACTION_WIFI_SIGNIN);
- mConnectivityManager.startCaptivePortalApp(mNetwork);
+ mWifiEntry.signIn(this);
}
@Override
@@ -814,7 +814,7 @@
@VisibleForTesting
void connectNetwork() {
- mWifiEntry.connect();
+ mWifiEntry.connect(this);
}
private void refreshMacTitle() {
@@ -849,7 +849,7 @@
*/
@Override
public void onConnectResult(@ConnectStatus int status) {
- if (status == WifiEntryCallback.CONNECT_STATUS_SUCCESS) {
+ if (status == ConnectCallback.CONNECT_STATUS_SUCCESS) {
Toast.makeText(mContext,
mContext.getString(R.string.wifi_connected_to_message, mWifiEntry.getTitle()),
Toast.LENGTH_SHORT).show();
@@ -868,25 +868,26 @@
.setButton3Visible(true);
}
+ // TODO: Add disconnect button.
/**
* Result of the disconnect request indicated by the DISCONNECT_STATUS constants.
*/
- @Override
- public void onDisconnectResult(@DisconnectStatus int status) {
- if (status != WifiEntryCallback.DISCONNECT_STATUS_SUCCESS) {
- Log.e(TAG, "Disconnect Wi-Fi network failed");
- }
-
- updateNetworkInfo();
- refreshPage();
- }
+ //@Override
+ //public void onDisconnectResult(@DisconnectStatus int status) {
+ // if (status != DisconnectCallback.DISCONNECT_STATUS_SUCCESS) {
+ // Log.e(TAG, "Disconnect Wi-Fi network failed");
+ // }
+ //
+ // updateNetworkInfo();
+ // refreshPage();
+ //}
/**
* Result of the forget request indicated by the FORGET_STATUS constants.
*/
@Override
public void onForgetResult(@ForgetStatus int status) {
- if (status != WifiEntryCallback.FORGET_STATUS_SUCCESS) {
+ if (status != ForgetCallback.FORGET_STATUS_SUCCESS) {
Log.e(TAG, "Forget Wi-Fi network failed");
}
diff --git a/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java
index db4cb6c..b87b05d 100644
--- a/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java
@@ -88,7 +88,7 @@
// To activate changing, we need to reconnect network. WiFi will auto connect to
// current network after disconnect(). Only needed when this is connected network.
if (mWifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED) {
- mWifiEntry.disconnect();
+ mWifiEntry.disconnect(null /* callback */);
}
}
updateSummary((DropDownPreference) preference, privacy);