Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b74a9a34 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix WiFi toggle issue of Internet Settings"

parents 9e1da950 0219dc13
Loading
Loading
Loading
Loading
+20 −11
Original line number Diff line number Diff line
@@ -266,13 +266,22 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
        setPinnedHeaderView(R.layout.progress_header);
        setProgressBarVisible(false);

        mWifiManager = activity.getSystemService(WifiManager.class);
        if (mWifiManager != null) {
        if (hasWifiManager()) {
            setLoading(true, false);
            mIsViewLoading = true;
        }
    }

    private boolean hasWifiManager() {
        if (mWifiManager != null) return true;

        Context context = getContext();
        if (context == null) return false;

        mWifiManager = context.getSystemService(WifiManager.class);
        return (mWifiManager != null);
    }

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
@@ -337,7 +346,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
    }

    private void addWifiSwitchPreferenceController() {
        if (mWifiManager == null) return;
        if (!hasWifiManager()) return;
        if (mWifiSwitchPreferenceController == null) {
            mWifiSwitchPreferenceController =
                    new WifiSwitchPreferenceController(getContext(), getSettingsLifecycle());
@@ -349,7 +358,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        if (mWifiManager != null) {
        if (hasWifiManager()) {
            mWifiPickerTrackerHelper =
                    new WifiPickerTrackerHelper(getSettingsLifecycle(), getContext(), this);
            mWifiPickerTracker = mWifiPickerTrackerHelper.getWifiPickerTracker();
@@ -420,7 +429,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
    public void onStart() {
        super.onStart();
        if (mIsViewLoading) {
            final long delayMillis = (mWifiManager != null && mWifiManager.isWifiEnabled())
            final long delayMillis = (hasWifiManager() && mWifiManager.isWifiEnabled())
                    ? 1000 : 100;
            getView().postDelayed(mRemoveLoadingRunnable, delayMillis);
        }
@@ -482,7 +491,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (mWifiManager == null) {
        if (!hasWifiManager()) {
            // Do nothing
        } else if (requestCode == ADD_NETWORK_REQUEST) {
            handleAddNetworkRequest(resultCode, data);
@@ -720,7 +729,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
    /** Called when the state of Wifi has changed. */
    @Override
    public void onWifiStateChanged() {
        if (mIsRestricted || mWifiManager == null) {
        if (mIsRestricted || !hasWifiManager()) {
            return;
        }
        final int wifiState = mWifiPickerTracker.getWifiState();
@@ -770,7 +779,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
        }

        final LocationManager locationManager = context.getSystemService(LocationManager.class);
        if (mWifiManager == null || isWifiEnabled || !locationManager.isLocationEnabled()
        if (!hasWifiManager() || isWifiEnabled || !locationManager.isLocationEnabled()
                || !mWifiManager.isScanAlwaysAvailable()) {
            mWifiStatusMessagePreference.setVisible(false);
            return;
@@ -1063,7 +1072,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
        final Context context = getContext();
        final PowerManager powerManager = context.getSystemService(PowerManager.class);
        final ContentResolver contentResolver = context.getContentResolver();
        return mWifiManager != null
        return hasWifiManager()
                && mWifiManager.isAutoWakeupEnabled()
                && mWifiManager.isScanAlwaysAvailable()
                && Settings.Global.getInt(contentResolver,
@@ -1085,7 +1094,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
    private void handleAddNetworkSubmitEvent(Intent data) {
        final WifiConfiguration wifiConfiguration = data.getParcelableExtra(
                AddNetworkFragment.WIFI_CONFIG_KEY);
        if (wifiConfiguration != null && mWifiManager != null) {
        if (wifiConfiguration != null && hasWifiManager()) {
            mWifiManager.save(wifiConfiguration, mSaveListener);
        }
    }
@@ -1122,7 +1131,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment

    @Override
    public void onSubmit(WifiDialog2 dialog) {
        if (mWifiManager == null) return;
        if (!hasWifiManager()) return;

        final int dialogMode = dialog.getMode();
        final WifiConfiguration config = dialog.getController().getConfig();
+3 −5
Original line number Diff line number Diff line
@@ -45,7 +45,6 @@ import android.os.Bundle;
import android.os.PowerManager;
import android.os.UserManager;
import android.provider.Settings;
import android.util.FeatureFlagUtils;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
@@ -162,15 +161,14 @@ public class NetworkProviderSettingsTest {

    @Test
    public void addNetworkFragmentSendResult_onActivityResult_shouldHandleEvent() {
        final NetworkProviderSettings NetworkProviderSettings = spy(new NetworkProviderSettings());
        final Intent intent = new Intent();
        doNothing().when(NetworkProviderSettings).handleAddNetworkRequest(anyInt(),
        doNothing().when(mNetworkProviderSettings).handleAddNetworkRequest(anyInt(),
                any(Intent.class));

        NetworkProviderSettings.onActivityResult(NetworkProviderSettings.ADD_NETWORK_REQUEST,
        mNetworkProviderSettings.onActivityResult(NetworkProviderSettings.ADD_NETWORK_REQUEST,
                Activity.RESULT_OK, intent);

        verify(NetworkProviderSettings).handleAddNetworkRequest(anyInt(), any(Intent.class));
        verify(mNetworkProviderSettings).handleAddNetworkRequest(anyInt(), any(Intent.class));
    }

    @Test