Revert "[Wi-Fi] Apply WifiTrackerLib objects in Wi-Fi Slice"
This reverts commit 7b1aded2a6.
Reason for revert: Settings is crashing for WiFi selection in SetupWizard on wembley
Bug: 161434533
Change-Id: I1d90e9bae1b31862fba674db0d7497e43f987a7f
Test: Locally reverted, reflashed, and was able to select WiFi without Settings crashing.
Exempt-From-Owner-Approval: Revert to clear up P0 while all owners are outside of work hours
This commit is contained in:
@@ -19,74 +19,61 @@ package com.android.settings.wifi.slice;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.text.TextUtils;
|
||||
import android.widget.Toast;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.Network;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.slices.SliceBackgroundWorker;
|
||||
import com.android.settings.wifi.WifiConnectListener;
|
||||
import com.android.settings.wifi.WifiDialogActivity;
|
||||
import com.android.wifitrackerlib.WifiEntry;
|
||||
import com.android.wifitrackerlib.WifiEntry.ConnectCallback;
|
||||
import com.android.settings.wifi.WifiUtils;
|
||||
import com.android.settingslib.wifi.AccessPoint;
|
||||
|
||||
/**
|
||||
* This receiver helps connect to Wi-Fi network
|
||||
*/
|
||||
public class ConnectToWifiHandler extends BroadcastReceiver {
|
||||
|
||||
static final String KEY_CHOSEN_WIFIENTRY_KEY = "key_chosen_wifientry_key";
|
||||
static final String KEY_WIFI_SLICE_URI = "key_wifi_slice_uri";
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (context == null || intent == null) {
|
||||
return;
|
||||
}
|
||||
final String key = intent.getStringExtra(KEY_CHOSEN_WIFIENTRY_KEY);
|
||||
if (TextUtils.isEmpty(key)) {
|
||||
return;
|
||||
|
||||
final Network network = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK);
|
||||
final Bundle accessPointState = intent.getBundleExtra(
|
||||
WifiDialogActivity.KEY_ACCESS_POINT_STATE);
|
||||
|
||||
if (network != null) {
|
||||
WifiScanWorker.clearClickedWifi();
|
||||
final ConnectivityManager cm = context.getSystemService(ConnectivityManager.class);
|
||||
// start captive portal app to sign in to network
|
||||
cm.startCaptivePortalApp(network);
|
||||
} else if (accessPointState != null) {
|
||||
connect(context, new AccessPoint(context, accessPointState));
|
||||
}
|
||||
if (intent.getParcelableExtra(KEY_WIFI_SLICE_URI) == null) {
|
||||
return;
|
||||
}
|
||||
final WifiScanWorker worker = getWifiScanWorker(intent);
|
||||
if (worker == null) {
|
||||
return;
|
||||
}
|
||||
final WifiEntry wifiEntry = worker.getWifiEntry(key);
|
||||
if (wifiEntry == null) {
|
||||
return;
|
||||
}
|
||||
wifiEntry.connect(new WifiEntryConnectCallback(context, wifiEntry));
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
WifiScanWorker getWifiScanWorker(Intent intent) {
|
||||
return SliceBackgroundWorker.getInstance(intent.getParcelableExtra(KEY_WIFI_SLICE_URI));
|
||||
}
|
||||
void connect(Context context, AccessPoint accessPoint) {
|
||||
ContextualWifiScanWorker.saveSession();
|
||||
WifiScanWorker.saveClickedWifi(accessPoint);
|
||||
|
||||
@VisibleForTesting
|
||||
static class WifiEntryConnectCallback implements WifiEntry.ConnectCallback {
|
||||
final Context mContext;
|
||||
final WifiEntry mWifiEntry;
|
||||
final WifiConnectListener connectListener = new WifiConnectListener(context);
|
||||
switch (WifiUtils.getConnectingType(accessPoint)) {
|
||||
case WifiUtils.CONNECT_TYPE_OSU_PROVISION:
|
||||
accessPoint.startOsuProvisioning(connectListener);
|
||||
break;
|
||||
|
||||
WifiEntryConnectCallback(Context context, WifiEntry connectWifiEntry) {
|
||||
mContext = context;
|
||||
mWifiEntry = connectWifiEntry;
|
||||
}
|
||||
case WifiUtils.CONNECT_TYPE_OPEN_NETWORK:
|
||||
accessPoint.generateOpenNetworkConfig();
|
||||
|
||||
@Override
|
||||
public void onConnectResult(@ConnectStatus int status) {
|
||||
if (status == ConnectCallback.CONNECT_STATUS_FAILURE_NO_CONFIG) {
|
||||
final Intent intent = new Intent(mContext, WifiDialogActivity.class)
|
||||
.putExtra(WifiDialogActivity.KEY_CHOSEN_WIFIENTRY_KEY, mWifiEntry.getKey());
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
mContext.startActivity(intent);
|
||||
} else if (status == CONNECT_STATUS_FAILURE_UNKNOWN) {
|
||||
Toast.makeText(mContext, R.string.wifi_failed_connect_message,
|
||||
Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
case WifiUtils.CONNECT_TYPE_SAVED_NETWORK:
|
||||
final WifiManager wifiManager = context.getSystemService(WifiManager.class);
|
||||
wifiManager.connect(accessPoint.getConfig(), connectListener);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user