Merge "Avoid unnecessary stopTethering when startTethering fails" into tm-dev am: 670070528c am: 3bd8ea7c89

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/18350145

Change-Id: I41c16c7835eef7c96ab6612c0a9c9ba295e684cc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Weng Su
2022-05-13 10:26:46 +00:00
committed by Automerger Merge Worker
3 changed files with 56 additions and 2 deletions

View File

@@ -256,6 +256,7 @@ public class TetherService extends Service {
}
private void disableTethering(final int tetheringType) {
Log.w(TAG, "Disable tethering, type:" + tetheringType);
final TetheringManager tm = (TetheringManager) getSystemService(Context.TETHERING_SERVICE);
tm.stopTethering(tetheringType);
}

View File

@@ -31,6 +31,7 @@ import android.net.ConnectivityManager;
import android.net.wifi.WifiManager;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.widget.Switch;
import androidx.annotation.VisibleForTesting;
@@ -47,6 +48,8 @@ import com.android.settingslib.widget.OnMainSwitchChangeListener;
*/
public class WifiTetherSwitchBarController implements
LifecycleObserver, OnStart, OnStop, DataSaverBackend.Listener, OnMainSwitchChangeListener {
private static final String TAG = "WifiTetherSBC";
private static final IntentFilter WIFI_INTENT_FILTER;
private final Context mContext;
@@ -63,8 +66,8 @@ public class WifiTetherSwitchBarController implements
@Override
public void onTetheringFailed() {
super.onTetheringFailed();
mSwitchBar.setChecked(false);
updateWifiSwitch();
Log.e(TAG, "Failed to start Wi-Fi Tethering.");
handleWifiApStateChanged(mWifiManager.getWifiApState());
}
};
@@ -111,16 +114,28 @@ public class WifiTetherSwitchBarController implements
}
void stopTether() {
if (!isWifiApActivated()) return;
mSwitchBar.setEnabled(false);
mConnectivityManager.stopTethering(TETHERING_WIFI);
}
void startTether() {
if (isWifiApActivated()) return;
mSwitchBar.setEnabled(false);
mConnectivityManager.startTethering(TETHERING_WIFI, true /* showProvisioningUi */,
mOnStartTetheringCallback, new Handler(Looper.getMainLooper()));
}
private boolean isWifiApActivated() {
final int wifiApState = mWifiManager.getWifiApState();
if (wifiApState == WIFI_AP_STATE_ENABLED || wifiApState == WIFI_AP_STATE_ENABLING) {
return true;
}
return false;
}
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {