diff --git a/packages/SettingsLib/src/com/android/settingslib/Utils.java b/packages/SettingsLib/src/com/android/settingslib/Utils.java index b21f2fa860b1a..576782319e1e9 100644 --- a/packages/SettingsLib/src/com/android/settingslib/Utils.java +++ b/packages/SettingsLib/src/com/android/settingslib/Utils.java @@ -35,7 +35,7 @@ public class Utils { private static String sServicesSystemSharedLibPackageName; private static String sSharedSystemSharedLibPackageName; - public static final int[] WIFI_PIE_FOR_BADGING = { + static final int[] WIFI_PIE_FOR_BADGING = { com.android.internal.R.drawable.ic_signal_wifi_badged_0_bars, com.android.internal.R.drawable.ic_signal_wifi_badged_1_bar, com.android.internal.R.drawable.ic_signal_wifi_badged_2_bars, @@ -294,12 +294,7 @@ public class Utils { }); } - /** - * Returns the resource id for the given badge or {@link View.NO_ID} if no badge is to be shown. - * - * @throws IllegalArgumentException if the given badge value is not supported. - */ - public static int getWifiBadgeResource(int badge) { + private static int getWifiBadgeResource(int badge) { switch (badge) { case NetworkBadging.BADGING_NONE: return View.NO_ID; diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java index ec94841c7d0de..0d67ad03cb105 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java @@ -12,17 +12,13 @@ package com.android.settingslib.wifi; import android.content.Intent; import android.net.NetworkInfo; -import android.net.NetworkKey; -import android.net.WifiKey; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; -import android.util.Log; import java.util.List; public class WifiStatusTracker { - private static final String TAG = "WifiStatusTracker"; private final WifiManager mWifiManager; public boolean enabled; @@ -32,7 +28,6 @@ public class WifiStatusTracker { public String ssid; public int rssi; public int level; - public NetworkKey networkKey; public WifiStatusTracker(WifiManager wifiManager) { mWifiManager = wifiManager; @@ -54,32 +49,19 @@ public class WifiStatusTracker { connecting = networkInfo != null && !networkInfo.isConnected() && networkInfo.isConnectedOrConnecting(); connected = networkInfo != null && networkInfo.isConnected(); - WifiInfo info = intent.getParcelableExtra(WifiManager.EXTRA_WIFI_INFO) != null - ? (WifiInfo) intent.getParcelableExtra(WifiManager.EXTRA_WIFI_INFO) - : mWifiManager.getConnectionInfo(); - // If Connected grab the signal strength and ssid. - if (connected && info != null) { - ssid = getSsid(info); - String bssid = info.getBSSID(); - if ((ssid != null) && (bssid != null)) { - // Reuse existing network key object if possible. - if ((networkKey == null) - || !networkKey.wifiKey.ssid.equals(ssid) - || !networkKey.wifiKey.bssid.equals(bssid)) { - try { - networkKey = new NetworkKey( - new WifiKey(ssid, bssid)); - } catch (IllegalArgumentException e) { - Log.e(TAG, "Cannot create NetworkKey", e); - } - } + if (connected) { + // try getting it out of the intent first + WifiInfo info = intent.getParcelableExtra(WifiManager.EXTRA_WIFI_INFO) != null + ? (WifiInfo) intent.getParcelableExtra(WifiManager.EXTRA_WIFI_INFO) + : mWifiManager.getConnectionInfo(); + if (info != null) { + ssid = getSsid(info); } else { - networkKey = null; + ssid = null; } - } else { + } else if (!connected) { ssid = null; - networkKey = null; } } else if (action.equals(WifiManager.RSSI_CHANGED_ACTION)) { // Default to -200 as its below WifiManager.MIN_RSSI. diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java index 169019f2cdb30..25f3e25f20517 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java @@ -16,19 +16,15 @@ package com.android.systemui.statusbar; -import android.annotation.ColorInt; import android.annotation.DrawableRes; import android.content.Context; import android.content.res.ColorStateList; import android.content.res.Resources; -import android.content.res.TypedArray; import android.graphics.Color; import android.graphics.Rect; import android.graphics.drawable.Animatable; import android.graphics.drawable.AnimatedVectorDrawable; import android.graphics.drawable.Drawable; -import android.graphics.drawable.LayerDrawable; -import android.net.NetworkBadging; import android.telephony.SubscriptionInfo; import android.util.ArraySet; import android.util.AttributeSet; @@ -80,10 +76,8 @@ public class SignalClusterView extends LinearLayout implements NetworkController private boolean mEthernetVisible = false; private int mEthernetIconId = 0; private int mLastEthernetIconId = -1; - private int mWifiBadgeId = -1; private boolean mWifiVisible = false; private int mWifiStrengthId = 0; - private int mLastWifiBadgeId = -1; private int mLastWifiStrengthId = -1; private boolean mWifiIn; private boolean mWifiOut; @@ -291,7 +285,6 @@ public class SignalClusterView extends LinearLayout implements NetworkController boolean activityIn, boolean activityOut, String description, boolean isTransient) { mWifiVisible = statusIcon.visible && !mBlockWifi; mWifiStrengthId = statusIcon.icon; - mWifiBadgeId = statusIcon.iconOverlay; mWifiDescription = statusIcon.contentDescription; mWifiIn = activityIn && mActivityEnabled && mWifiVisible; mWifiOut = activityOut && mActivityEnabled && mWifiVisible; @@ -428,7 +421,6 @@ public class SignalClusterView extends LinearLayout implements NetworkController mWifi.setImageDrawable(null); mWifiDark.setImageDrawable(null); mLastWifiStrengthId = -1; - mLastWifiBadgeId = -1; } for (PhoneState state : mPhoneStates) { @@ -484,16 +476,10 @@ public class SignalClusterView extends LinearLayout implements NetworkController (mEthernetVisible ? "VISIBLE" : "GONE"))); if (mWifiVisible) { - if (mWifiStrengthId != mLastWifiStrengthId || mWifiBadgeId != mLastWifiBadgeId) { - if (mWifiBadgeId == -1) { - setIconForView(mWifi, mWifiStrengthId); - setIconForView(mWifiDark, mWifiStrengthId); - } else { - setBadgedWifiIconForView(mWifi, mWifiStrengthId, mWifiBadgeId); - setBadgedWifiIconForView(mWifiDark, mWifiStrengthId, mWifiBadgeId); - } + if (mWifiStrengthId != mLastWifiStrengthId) { + setIconForView(mWifi, mWifiStrengthId); + setIconForView(mWifiDark, mWifiStrengthId); mLastWifiStrengthId = mWifiStrengthId; - mLastWifiBadgeId = mWifiBadgeId; } mWifiGroup.setContentDescription(mWifiDescription); mWifiGroup.setVisibility(View.VISIBLE); @@ -558,10 +544,6 @@ public class SignalClusterView extends LinearLayout implements NetworkController // Using the imageView's context to retrieve the Drawable so that theme is preserved. Drawable icon = imageView.getContext().getDrawable(iconId); - setScaledIcon(imageView, icon); - } - - private void setScaledIcon(ImageView imageView, Drawable icon) { if (mIconScaleFactor == 1.f) { imageView.setImageDrawable(icon); } else { @@ -569,33 +551,6 @@ public class SignalClusterView extends LinearLayout implements NetworkController } } - /** - * Creates and sets a LayerDrawable from the given ids on the given view. - * - *

This method will also scale the icon by {@link #mIconScaleFactor} if appropriate. - */ - private void setBadgedWifiIconForView(ImageView imageView, @DrawableRes int wifiPieId, - @DrawableRes int badgeId) { - // TODO(sghuman): Delete this method and revert to N badging logic - // Using the imageView's context to retrieve the Drawable so that theme is preserved.; - LayerDrawable icon = new LayerDrawable(new Drawable[] { - imageView.getContext().getDrawable(wifiPieId), - imageView.getContext().getDrawable(NetworkBadging.BADGING_NONE)}); - - // The LayerDrawable shares an underlying state so we must mutate the object to change the - // color between the light and dark themes. - icon.mutate().setTint(getColorAttr(imageView.getContext(), R.attr.singleToneColor)); - - setScaledIcon(imageView, icon); - } - - /** Returns the given color attribute value, or white if not defined. */ - @ColorInt private static int getColorAttr(Context context, int attr) { - TypedArray ta = context.obtainStyledAttributes(new int[] {attr}); - @ColorInt int colorAccent = ta.getColor(0, Color.WHITE); - ta.recycle(); - return colorAccent; - } @Override public void onDarkChanged(Rect tintArea, float darkIntensity, int tint) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java index c02ce0ea6335e..2771011c69975 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java @@ -67,29 +67,15 @@ public interface NetworkController extends CallbackController, D public static class IconState { public final boolean visible; - public final int icon; - - /** - * Optional iconOverlay resource id. - * - *

Set to -1 if not present. - */ - public final int iconOverlay; - public final String contentDescription; - public IconState(boolean visible, int icon, int iconOverlay, String contentDescription) { + public IconState(boolean visible, int icon, String contentDescription) { this.visible = visible; this.icon = icon; - this.iconOverlay = iconOverlay; this.contentDescription = contentDescription; } - public IconState(boolean visible, int icon, String contentDescription) { - this(visible, icon, -1 /* iconOverlay */, contentDescription); - } - public IconState(boolean visible, int icon, int contentDescription, Context context) { this(visible, icon, context.getString(contentDescription)); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java index c21f444d0bf34..39f7d1295d1ba 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java @@ -24,7 +24,6 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.net.ConnectivityManager; import android.net.NetworkCapabilities; -import android.net.NetworkScoreManager; import android.net.wifi.WifiManager; import android.os.AsyncTask; import android.os.Bundle; @@ -92,7 +91,6 @@ public class NetworkControllerImpl extends BroadcastReceiver private final DataSaverController mDataSaverController; private final CurrentUserTracker mUserTracker; private Config mConfig; - private final NetworkScoreManager mNetworkScoreManager; // Subcontrollers. @VisibleForTesting @@ -149,12 +147,9 @@ public class NetworkControllerImpl extends BroadcastReceiver public NetworkControllerImpl(Context context, Looper bgLooper, DeviceProvisionedController deviceProvisionedController) { this(context, (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE), - context.getSystemService(NetworkScoreManager.class), (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE), (WifiManager) context.getSystemService(Context.WIFI_SERVICE), - SubscriptionManager.from(context), - Config.readConfig(context), - bgLooper, + SubscriptionManager.from(context), Config.readConfig(context), bgLooper, new CallbackHandler(), new AccessPointControllerImpl(context, bgLooper), new DataUsageController(context), @@ -165,12 +160,8 @@ public class NetworkControllerImpl extends BroadcastReceiver @VisibleForTesting NetworkControllerImpl(Context context, ConnectivityManager connectivityManager, - NetworkScoreManager networkScoreManager, - TelephonyManager telephonyManager, - WifiManager wifiManager, - SubscriptionManager subManager, - Config config, - Looper bgLooper, + TelephonyManager telephonyManager, WifiManager wifiManager, + SubscriptionManager subManager, Config config, Looper bgLooper, CallbackHandler callbackHandler, AccessPointControllerImpl accessPointController, DataUsageController dataUsageController, @@ -193,7 +184,6 @@ public class NetworkControllerImpl extends BroadcastReceiver // wifi mWifiManager = wifiManager; - mNetworkScoreManager = networkScoreManager; mLocale = mContext.getResources().getConfiguration().locale; mAccessPoints = accessPointController; @@ -207,7 +197,7 @@ public class NetworkControllerImpl extends BroadcastReceiver } }); mWifiSignalController = new WifiSignalController(mContext, mHasMobileDataFeature, - mCallbackHandler, this, mNetworkScoreManager); + mCallbackHandler, this); mEthernetSignalController = new EthernetSignalController(mContext, mCallbackHandler, this); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java index 2104cb1421aa6..28196246f44cc 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java @@ -17,50 +17,33 @@ package com.android.systemui.statusbar.policy; import android.content.Context; import android.content.Intent; -import android.database.ContentObserver; -import android.net.NetworkBadging; import android.net.NetworkCapabilities; -import android.net.NetworkKey; -import android.net.NetworkScoreManager; -import android.net.ScoredNetwork; import android.net.wifi.WifiManager; -import android.net.wifi.WifiNetworkScoreCache; -import android.net.wifi.WifiNetworkScoreCache.CacheListener; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.os.Messenger; -import android.provider.Settings; import android.util.Log; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.AsyncChannel; -import com.android.settingslib.Utils; import com.android.settingslib.wifi.WifiStatusTracker; +import com.android.systemui.R; import com.android.systemui.statusbar.policy.NetworkController.IconState; import com.android.systemui.statusbar.policy.NetworkController.SignalCallback; -import com.android.systemui.R; - import java.util.Objects; -import java.util.List; public class WifiSignalController extends SignalController { - private final WifiManager mWifiManager; private final AsyncChannel mWifiChannel; private final boolean mHasMobileData; - private final NetworkScoreManager mNetworkScoreManager; - private final WifiNetworkScoreCache mScoreCache; private final WifiStatusTracker mWifiTracker; - private boolean mScoringUiEnabled = false; - public WifiSignalController(Context context, boolean hasMobileData, - CallbackHandler callbackHandler, NetworkControllerImpl networkController, - NetworkScoreManager networkScoreManager) { + CallbackHandler callbackHandler, NetworkControllerImpl networkController) { super("WifiSignalController", context, NetworkCapabilities.TRANSPORT_WIFI, callbackHandler, networkController); mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); @@ -85,44 +68,6 @@ public class WifiSignalController extends AccessibilityContentDescriptions.WIFI_NO_CONNECTION ); - mScoreCache = new WifiNetworkScoreCache(context, new CacheListener(handler) { - @Override - public void networkCacheUpdated(List networks) { - mCurrentState.badgeEnum = getWifiBadgeEnum(); - notifyListenersIfNecessary(); - } - }); - - // Setup scoring - mNetworkScoreManager = networkScoreManager; - configureScoringGating(); - registerScoreCache(); - } - - private void configureScoringGating() { - ContentObserver observer = new ContentObserver(new Handler(Looper.getMainLooper())) { - @Override - public void onChange(boolean selfChange) { - mScoringUiEnabled = - Settings.Global.getInt( - mContext.getContentResolver(), - Settings.Global.NETWORK_SCORING_UI_ENABLED, 0) == 1; - } - }; - mContext.getContentResolver().registerContentObserver( - Settings.Global.getUriFor(Settings.Global.NETWORK_SCORING_UI_ENABLED), - false /* notifyForDescendants */, - observer); - - observer.onChange(false /* selfChange */); // Set the initial values - } - - private void registerScoreCache() { - Log.d(mTag, "Registered score cache"); - mNetworkScoreManager.registerNetworkScoreCache( - NetworkKey.TYPE_WIFI, - mScoreCache, - NetworkScoreManager.CACHE_FILTER_CURRENT_NETWORK); } @Override @@ -143,77 +88,27 @@ public class WifiSignalController extends ("," + mContext.getString(R.string.accessibility_quick_settings_no_internet)); } - IconState statusIcon = new IconState(wifiVisible, getCurrentIconId(), - Utils.getWifiBadgeResource(mCurrentState.badgeEnum), contentDescription); - IconState qsIcon = new IconState( - mCurrentState.connected, getQsCurrentIconId(), - Utils.getWifiBadgeResource(mCurrentState.badgeEnum), contentDescription); + IconState statusIcon = new IconState(wifiVisible, getCurrentIconId(), contentDescription); + IconState qsIcon = new IconState(mCurrentState.connected, getQsCurrentIconId(), + contentDescription); callback.setWifiIndicators(mCurrentState.enabled, statusIcon, qsIcon, ssidPresent && mCurrentState.activityIn, ssidPresent && mCurrentState.activityOut, wifiDesc, mCurrentState.isTransient); } - @Override - public int getCurrentIconId() { - if (mCurrentState.badgeEnum != NetworkBadging.BADGING_NONE) { - return Utils.WIFI_PIE_FOR_BADGING[mCurrentState.level]; - } - return super.getCurrentIconId(); - } - /** * Extract wifi state directly from broadcasts about changes in wifi state. */ public void handleBroadcast(Intent intent) { - // Update the WifiStatusTracker with the new information and update the score cache. - NetworkKey previousNetworkKey = mWifiTracker.networkKey; mWifiTracker.handleBroadcast(intent); - updateScoreCacheIfNecessary(previousNetworkKey); - - mCurrentState.isTransient = mWifiTracker.state == WifiManager.WIFI_STATE_ENABLING - || mWifiTracker.state == WifiManager.WIFI_AP_STATE_DISABLING - || mWifiTracker.connecting; mCurrentState.enabled = mWifiTracker.enabled; mCurrentState.connected = mWifiTracker.connected; mCurrentState.ssid = mWifiTracker.ssid; mCurrentState.rssi = mWifiTracker.rssi; mCurrentState.level = mWifiTracker.level; - mCurrentState.badgeEnum = getWifiBadgeEnum(); notifyListenersIfNecessary(); } - /** - * Clears old scores out of the cache and requests new scores if the network key has changed. - * - *

New scores are requested asynchronously. - */ - private void updateScoreCacheIfNecessary(NetworkKey previousNetworkKey) { - if (mWifiTracker.networkKey == null) { - return; - } - if ((previousNetworkKey == null) || !mWifiTracker.networkKey.equals(previousNetworkKey)) { - mScoreCache.clearScores(); - mNetworkScoreManager.requestScores(new NetworkKey[]{mWifiTracker.networkKey}); - } - } - - /** - * Returns the wifi badge enum for the current {@link #mWifiTracker} state. - * - *

{@link #updateScoreCacheIfNecessary} should be called prior to this method. - */ - private int getWifiBadgeEnum() { - if (!mScoringUiEnabled || mWifiTracker.networkKey == null) { - return NetworkBadging.BADGING_NONE; - } - ScoredNetwork score = mScoreCache.getScoredNetwork(mWifiTracker.networkKey); - - if (score != null) { - return score.calculateBadge(mWifiTracker.rssi); - } - return NetworkBadging.BADGING_NONE; - } - @VisibleForTesting void setActivity(int wifiActivity) { mCurrentState.activityIn = wifiActivity == WifiManager.DATA_ACTIVITY_INOUT @@ -254,7 +149,6 @@ public class WifiSignalController extends static class WifiState extends SignalController.State { String ssid; - int badgeEnum; boolean isTransient; @Override @@ -262,7 +156,6 @@ public class WifiSignalController extends super.copyFrom(s); WifiState state = (WifiState) s; ssid = state.ssid; - badgeEnum = state.badgeEnum; isTransient = state.isTransient; } @@ -270,7 +163,6 @@ public class WifiSignalController extends protected void toString(StringBuilder builder) { super.toString(builder); builder.append(',').append("ssid=").append(ssid); - builder.append(',').append("badgeEnum=").append(badgeEnum); builder.append(',').append("isTransient=").append(isTransient); } @@ -278,7 +170,6 @@ public class WifiSignalController extends public boolean equals(Object o) { return super.equals(o) && Objects.equals(((WifiState) o).ssid, ssid) - && (((WifiState) o).badgeEnum == badgeEnum) && (((WifiState) o).isTransient == isTransient); } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/CallbackHandlerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/CallbackHandlerTest.java index cb20639676399..51bd7bccbe71a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/CallbackHandlerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/CallbackHandlerTest.java @@ -18,6 +18,7 @@ package com.android.systemui.statusbar.policy; import android.os.HandlerThread; import android.support.test.runner.AndroidJUnit4; import android.telephony.SubscriptionInfo; +import android.test.AndroidTestCase; import android.test.suitebuilder.annotation.SmallTest; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java index 505e1d8346fd8..a8319a8ee5389 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerBaseTest.java @@ -19,7 +19,6 @@ package com.android.systemui.statusbar.policy; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkCapabilities; -import android.net.NetworkScoreManager; import android.net.wifi.WifiManager; import android.os.Looper; import android.telephony.PhoneStateListener; @@ -84,7 +83,6 @@ public class NetworkControllerBaseTest extends SysuiTestCase { protected Config mConfig; protected CallbackHandler mCallbackHandler; protected SubscriptionDefaults mMockSubDefaults; - protected NetworkScoreManager mMockNetworkScoreManager; protected DeviceProvisionedController mMockProvisionController; protected DeviceProvisionedListener mUserCallback; @@ -113,8 +111,6 @@ public class NetworkControllerBaseTest extends SysuiTestCase { mMockCm = mock(ConnectivityManager.class); mMockSubDefaults = mock(SubscriptionDefaults.class); mNetCapabilities = new NetworkCapabilities(); - mMockNetworkScoreManager = mock(NetworkScoreManager.class); - when(mMockCm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(true); when(mMockCm.getDefaultNetworkCapabilitiesForUser(0)).thenReturn( new NetworkCapabilities[] { mNetCapabilities }); @@ -135,8 +131,7 @@ public class NetworkControllerBaseTest extends SysuiTestCase { return null; }).when(mMockProvisionController).addCallback(any()); - mNetworkController = new NetworkControllerImpl(mContext, mMockCm, mMockNetworkScoreManager, - mMockTm, mMockWm, mMockSm, + mNetworkController = new NetworkControllerImpl(mContext, mMockCm, mMockTm, mMockWm, mMockSm, mConfig, Looper.getMainLooper(), mCallbackHandler, mock(AccessPointControllerImpl.class), mock(DataUsageController.class), mMockSubDefaults, mMockProvisionController); @@ -177,8 +172,8 @@ public class NetworkControllerBaseTest extends SysuiTestCase { protected NetworkControllerImpl setUpNoMobileData() { when(mMockCm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(false); NetworkControllerImpl networkControllerNoMobile - = new NetworkControllerImpl(mContext, mMockCm, mMockNetworkScoreManager, mMockTm, - mMockWm, mMockSm, mConfig, mContext.getMainLooper(), mCallbackHandler, + = new NetworkControllerImpl(mContext, mMockCm, mMockTm, mMockWm, mMockSm, + mConfig, mContext.getMainLooper(), mCallbackHandler, mock(AccessPointControllerImpl.class), mock(DataUsageController.class), mMockSubDefaults, mock(DeviceProvisionedController.class)); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java index dfe00f95fe4d0..8d106b4b96166 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java @@ -91,8 +91,7 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest { public void test4gDataIcon() { // Switch to showing 4g icon and re-initialize the NetworkController. mConfig.show4gForLte = true; - mNetworkController = new NetworkControllerImpl(mContext, mMockCm, mMockNetworkScoreManager, - mMockTm, mMockWm, mMockSm, + mNetworkController = new NetworkControllerImpl(mContext, mMockCm, mMockTm, mMockWm, mMockSm, mConfig, Looper.getMainLooper(), mCallbackHandler, mock(AccessPointControllerImpl.class), mock(DataUsageController.class), mMockSubDefaults, diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java index 1627925ae1bcb..be3802bd68ed2 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerSignalTest.java @@ -54,8 +54,7 @@ public class NetworkControllerSignalTest extends NetworkControllerBaseTest { // Turn off mobile network support. Mockito.when(mMockCm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(false); // Create a new NetworkController as this is currently handled in constructor. - mNetworkController = new NetworkControllerImpl(mContext, mMockCm, mMockNetworkScoreManager, - mMockTm, mMockWm, mMockSm, + mNetworkController = new NetworkControllerImpl(mContext, mMockCm, mMockTm, mMockWm, mMockSm, mConfig, Looper.getMainLooper(), mCallbackHandler, mock(AccessPointControllerImpl.class), mock(DataUsageController.class), mMockSubDefaults, mock(DeviceProvisionedController.class)); @@ -117,8 +116,7 @@ public class NetworkControllerSignalTest extends NetworkControllerBaseTest { // Turn off mobile network support. Mockito.when(mMockCm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(false); // Create a new NetworkController as this is currently handled in constructor. - mNetworkController = new NetworkControllerImpl(mContext, mMockCm, mMockNetworkScoreManager, - mMockTm, mMockWm, mMockSm, + mNetworkController = new NetworkControllerImpl(mContext, mMockCm, mMockTm, mMockWm, mMockSm, mConfig, Looper.getMainLooper(), mCallbackHandler, mock(AccessPointControllerImpl.class), mock(DataUsageController.class), mMockSubDefaults, mock(DeviceProvisionedController.class)); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java index dbaa2c5fea0aa..ffd0165195e5d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java @@ -1,47 +1,24 @@ package com.android.systemui.statusbar.policy; import android.content.Intent; -import android.net.NetworkBadging; import android.net.NetworkCapabilities; import android.net.NetworkInfo; -import android.net.NetworkKey; -import android.net.RssiCurve; -import android.net.ScoredNetwork; -import android.net.WifiKey; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; -import android.net.wifi.WifiNetworkScoreCache; -import android.os.Bundle; -import android.provider.Settings; import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.SmallTest; -import com.android.settingslib.Utils; import com.android.systemui.statusbar.policy.NetworkController.IconState; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; -import org.mockito.Matchers; import org.mockito.Mockito; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; import static junit.framework.Assert.assertEquals; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyBoolean; -import static org.mockito.Matchers.anyInt; -import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import java.util.Arrays; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; @SmallTest @RunWith(AndroidJUnit4.class) @@ -50,13 +27,6 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest { private static final int MIN_RSSI = -100; private static final int MAX_RSSI = -55; - private static final int LATCH_TIMEOUT = 2000; - private static final String TEST_SSID = "\"Test SSID\""; - private static final String TEST_BSSID = "00:00:00:00:00:00"; - - private final List mRequestedKeys = new ArrayList<>(); - private CountDownLatch mRequestScoresLatch; - @Test public void testWifiIcon() { String testSsid = "Test SSID"; @@ -76,79 +46,6 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest { } } - @Test - public void testBadgedWifiIcon() throws Exception { - // TODO(sghuman): Refactor this setup code when creating a test for the badged QsIcon. - int testLevel = 1; - RssiCurve mockBadgeCurve = mock(RssiCurve.class); - Bundle attr = new Bundle(); - attr.putParcelable(ScoredNetwork.ATTRIBUTES_KEY_BADGING_CURVE, mockBadgeCurve); - ScoredNetwork score = - new ScoredNetwork( - new NetworkKey(new WifiKey(TEST_SSID, TEST_BSSID)), - null, - false /* meteredHint */, - attr); - - // Must set the Settings value before instantiating the NetworkControllerImpl due to bugs in - // TestableSettingsProvider. - Settings.Global.putString(mContext.getContentResolver(), - Settings.Global.NETWORK_SCORING_UI_ENABLED, - "1"); - super.setUp(); // re-instantiate NetworkControllImpl now that setting has been updated - setupNetworkScoreManager(); - - // Test Requesting Scores - mRequestScoresLatch = new CountDownLatch(1); - setWifiEnabled(true); - setWifiState(true, TEST_SSID, TEST_BSSID); - mRequestScoresLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS); - - when(mockBadgeCurve.lookupScore(anyInt())).thenReturn((byte) NetworkBadging.BADGING_SD); - - ArgumentCaptor scoreCacheCaptor = - ArgumentCaptor.forClass(WifiNetworkScoreCache.class); - verify(mMockNetworkScoreManager).registerNetworkScoreCache( - anyInt(), - scoreCacheCaptor.capture(), - Matchers.anyInt()); - scoreCacheCaptor.getValue().updateScores(Arrays.asList(score)); - - // Test badge is set - setWifiLevel(testLevel); - - ArgumentCaptor iconArg = ArgumentCaptor.forClass(IconState.class); - Mockito.verify(mCallbackHandler, Mockito.atLeastOnce()).setWifiIndicators( - anyBoolean(), iconArg.capture(), any(), anyBoolean(), anyBoolean(), - any(), anyBoolean()); - IconState iconState = iconArg.getValue(); - - assertEquals("Badged Wifi Resource is set", - Utils.WIFI_PIE_FOR_BADGING[testLevel], - iconState.icon); - assertEquals("SD Badge is set", - Utils.getWifiBadgeResource(NetworkBadging.BADGING_SD), - iconState.iconOverlay); - } - - private void setupNetworkScoreManager() { - // Capture requested keys and count down latch if present - doAnswer( - new Answer() { - @Override - public Boolean answer(InvocationOnMock input) { - if (mRequestScoresLatch != null) { - mRequestScoresLatch.countDown(); - } - NetworkKey[] keys = (NetworkKey[]) input.getArguments()[0]; - for (NetworkKey key : keys) { - mRequestedKeys.add(key); - } - return true; - } - }).when(mMockNetworkScoreManager).requestScores(Matchers.any()); - } - @Test public void testQsWifiIcon() { String testSsid = "Test SSID"; @@ -200,7 +97,7 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest { @Test public void testRoamingIconDuringWifi() { // Setup normal connection - String testSsid = "\"Test SSID\""; + String testSsid = "Test SSID"; int testLevel = 2; setWifiEnabled(true); setWifiState(true, testSsid); @@ -241,19 +138,12 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest { } protected void setWifiState(boolean connected, String ssid) { - setWifiState(connected, ssid, null); - } - - protected void setWifiState(boolean connected, String ssid, String bssid) { Intent i = new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION); NetworkInfo networkInfo = Mockito.mock(NetworkInfo.class); Mockito.when(networkInfo.isConnected()).thenReturn(connected); WifiInfo wifiInfo = Mockito.mock(WifiInfo.class); Mockito.when(wifiInfo.getSSID()).thenReturn(ssid); - if (bssid != null) { - Mockito.when(wifiInfo.getBSSID()).thenReturn(bssid); - } i.putExtra(WifiManager.EXTRA_NETWORK_INFO, networkInfo); i.putExtra(WifiManager.EXTRA_WIFI_INFO, wifiInfo); @@ -278,7 +168,7 @@ public class NetworkControllerWifiTest extends NetworkControllerBaseTest { Mockito.verify(mCallbackHandler, Mockito.atLeastOnce()).setWifiIndicators( enabledArg.capture(), any(), iconArg.capture(), anyBoolean(), - anyBoolean(), descArg.capture(), anyBoolean()); + anyBoolean(), descArg.capture(), anyBoolean()); IconState iconState = iconArg.getValue(); assertEquals("WiFi enabled, in quick settings", enabled, (boolean) enabledArg.getValue()); assertEquals("WiFi connected, in quick settings", connected, iconState.visible);