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

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

Merge "Show wifi status label in preference summary." into pi-dev

parents 517f6d60 c685d0fe
Loading
Loading
Loading
Loading
+19 −6
Original line number Diff line number Diff line
@@ -20,14 +20,17 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkScoreManager;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.support.annotation.VisibleForTesting;
import android.text.TextUtils;

import com.android.settings.R;
import com.android.settings.widget.SummaryUpdater;
import com.android.settingslib.wifi.WifiStatusTracker;

import static android.net.wifi.WifiInfo.removeDoubleQuotes;

/**
 * Helper class that listeners to wifi callback and notify client when there is update in
 * wifi summary info.
@@ -46,14 +49,18 @@ public final class WifiSummaryUpdater extends SummaryUpdater {
    }

    public WifiSummaryUpdater(Context context, OnSummaryChangeListener listener) {
        this(context, listener, new WifiStatusTracker(context.getSystemService(WifiManager.class)));
        this(context, listener, null);
    }

    @VisibleForTesting
    public WifiSummaryUpdater(Context context, OnSummaryChangeListener listener,
        WifiStatusTracker wifiTracker) {
        super(context, listener);
        mWifiTracker = wifiTracker;
        mWifiTracker = wifiTracker != null ? wifiTracker :
                new WifiStatusTracker(context, context.getSystemService(WifiManager.class),
                context.getSystemService(NetworkScoreManager.class),
                context.getSystemService(ConnectivityManager.class),
                        this::notifyChangeIfNeeded);
        mReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
@@ -70,6 +77,7 @@ public final class WifiSummaryUpdater extends SummaryUpdater {
        } else {
            mContext.unregisterReceiver(mReceiver);
        }
        mWifiTracker.setListening(register);
    }

    @Override
@@ -80,7 +88,12 @@ public final class WifiSummaryUpdater extends SummaryUpdater {
        if (!mWifiTracker.connected) {
            return mContext.getString(R.string.disconnected);
        }
        return removeDoubleQuotes(mWifiTracker.ssid);
        String ssid = WifiInfo.removeDoubleQuotes(mWifiTracker.ssid);
        if (TextUtils.isEmpty(mWifiTracker.statusLabel)) {
            return ssid;
        }
        return mContext.getResources().getString(
                com.android.settingslib.R.string.preference_summary_default_combination,
                ssid, mWifiTracker.statusLabel);
    }

}
+5 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settings.wifi;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Matchers.any;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -25,6 +26,7 @@ import static org.mockito.Mockito.when;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.IntentFilter;
import android.net.NetworkScoreManager;
import android.net.wifi.WifiManager;
import android.support.v7.preference.Preference.OnPreferenceChangeListener;
import android.support.v7.preference.PreferenceScreen;
@@ -51,6 +53,8 @@ public class WifiMasterSwitchPreferenceControllerTest {
    private PreferenceScreen mScreen;
    @Mock
    private MasterSwitchPreference mPreference;
    @Mock
    private NetworkScoreManager mNetworkScoreManager;

    private Context mContext;
    private WifiMasterSwitchPreferenceController mController;
@@ -61,6 +65,7 @@ public class WifiMasterSwitchPreferenceControllerTest {
        MockitoAnnotations.initMocks(this);
        mMetricsFeatureProvider = FakeFeatureFactory.setupForTest().getMetricsFeatureProvider();
        mContext = spy(RuntimeEnvironment.application.getApplicationContext());
        when(mContext.getSystemService(NetworkScoreManager.class)).thenReturn(mNetworkScoreManager);
        mController = new WifiMasterSwitchPreferenceController(mContext, mMetricsFeatureProvider);
        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
        when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
+17 −13
Original line number Diff line number Diff line
@@ -36,45 +36,41 @@ import com.android.settingslib.wifi.WifiStatusTracker;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;

@RunWith(SettingsRobolectricTestRunner.class)
public class WifiSummaryUpdaterTest {

    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
    private WifiManager mWifiManager;
    @Mock
    private SummaryListener mListener;
    @Mock private WifiStatusTracker mWifiTracker;
    @Mock private SummaryListener mListener;

    private Context mContext;
    private WifiSummaryUpdater mSummaryUpdater;
    private WifiStatusTracker mWifiTracker;


    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mWifiTracker = new WifiStatusTracker(mWifiManager);

        mContext = spy(RuntimeEnvironment.application.getApplicationContext());
        mSummaryUpdater = new WifiSummaryUpdater(mContext, mListener, mWifiTracker);
    }

    @Test
    public void register_true_shouldRegisterListener() {
    public void register_true_shouldRegisterListenerAndTracker() {
        mSummaryUpdater.register(true);

        verify(mContext).registerReceiver(any(BroadcastReceiver.class), any(IntentFilter.class));
        verify(mWifiTracker).setListening(true);
    }

    @Test
    public void register_false_shouldUnregisterListener() {
    public void register_false_shouldUnregisterListenerAndTracker() {
        mSummaryUpdater.register(true);
        mSummaryUpdater.register(false);

        verify(mContext).unregisterReceiver(any(BroadcastReceiver.class));
        verify(mWifiTracker).setListening(false);
    }

    @Test
@@ -82,7 +78,6 @@ public class WifiSummaryUpdaterTest {
        mSummaryUpdater.register(true);
        mContext.sendBroadcast(new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION));


        verify(mListener).onSummaryChanged(anyString());
    }

@@ -91,7 +86,6 @@ public class WifiSummaryUpdaterTest {
        mSummaryUpdater.register(true);
        mContext.sendBroadcast(new Intent(WifiManager.RSSI_CHANGED_ACTION));


        verify(mListener).onSummaryChanged(anyString());
    }

@@ -121,6 +115,16 @@ public class WifiSummaryUpdaterTest {
        assertThat(mSummaryUpdater.getSummary()).isEqualTo("Test Ssid");
    }

    @Test
    public void getSummary_wifiConnected_withSpeedLabel_shouldReturnSsid_withSpeedLabel() {
        mWifiTracker.enabled = true;
        mWifiTracker.connected = true;
        mWifiTracker.ssid = "Test Ssid";
        mWifiTracker.statusLabel = "Very Fast";

        assertThat(mSummaryUpdater.getSummary()).isEqualTo("Test Ssid / Very Fast");
    }

    private class SummaryListener implements OnSummaryChangeListener {
        String summary;