diff --git a/packages/SettingsLib/src/com/android/settingslib/SignalIcon.java b/packages/SettingsLib/src/com/android/settingslib/SignalIcon.java index 794b0eb665199..280e40726c031 100644 --- a/packages/SettingsLib/src/com/android/settingslib/SignalIcon.java +++ b/packages/SettingsLib/src/com/android/settingslib/SignalIcon.java @@ -15,13 +15,8 @@ */ package com.android.settingslib; -import com.android.settingslib.mobile.TelephonyIcons; - -import java.text.SimpleDateFormat; -import java.util.Objects; - /** - * Icons and states for SysUI and Settings. + * Icons for SysUI and Settings. */ public class SignalIcon { @@ -70,92 +65,6 @@ public class SignalIcon { } } - /** - * Holds states for SysUI. - */ - public static class State { - // No locale as it's only used for logging purposes - private static SimpleDateFormat sSDF = new SimpleDateFormat("MM-dd HH:mm:ss.SSS"); - public boolean connected; - public boolean enabled; - public boolean activityIn; - public boolean activityOut; - public int level; - public IconGroup iconGroup; - public int inetCondition; - public int rssi; // Only for logging. - - // Not used for comparison, just used for logging. - public long time; - - /** - * Generates a copy of the source state. - */ - public void copyFrom(State state) { - connected = state.connected; - enabled = state.enabled; - level = state.level; - iconGroup = state.iconGroup; - inetCondition = state.inetCondition; - activityIn = state.activityIn; - activityOut = state.activityOut; - rssi = state.rssi; - time = state.time; - } - - @Override - public String toString() { - if (time != 0) { - StringBuilder builder = new StringBuilder(); - toString(builder); - return builder.toString(); - } else { - return "Empty " + getClass().getSimpleName(); - } - } - - protected void toString(StringBuilder builder) { - builder.append("connected=").append(connected).append(',') - .append("enabled=").append(enabled).append(',') - .append("level=").append(level).append(',') - .append("inetCondition=").append(inetCondition).append(',') - .append("iconGroup=").append(iconGroup).append(',') - .append("activityIn=").append(activityIn).append(',') - .append("activityOut=").append(activityOut).append(',') - .append("rssi=").append(rssi).append(',') - .append("lastModified=").append(sSDF.format(time)); - } - - @Override - public boolean equals(Object o) { - if (!o.getClass().equals(getClass())) { - return false; - } - State other = (State) o; - return other.connected == connected - && other.enabled == enabled - && other.level == level - && other.inetCondition == inetCondition - && other.iconGroup == iconGroup - && other.activityIn == activityIn - && other.activityOut == activityOut - && other.rssi == rssi; - } - - @Override - public int hashCode() { - return Objects.hash( - connected, - enabled, - level, - inetCondition, - iconGroup, - activityIn, - activityOut, - rssi); - } - } - /** * Holds icons for a given MobileState. */ @@ -189,110 +98,4 @@ public class SignalIcon { this.dataType = dataType; } } - - /** - * Holds mobile states for SysUI. - */ - public static class MobileState extends State { - public String networkName; - public String networkNameData; - public boolean dataSim; - public boolean dataConnected; - public boolean isEmergency; - public boolean airplaneMode; - public boolean carrierNetworkChangeMode; - public boolean isDefault; - public boolean userSetup; - public boolean roaming; - public boolean defaultDataOff; // Tracks the on/off state of the defaultDataSubscription - - @Override - public void copyFrom(State s) { - super.copyFrom(s); - MobileState state = (MobileState) s; - dataSim = state.dataSim; - networkName = state.networkName; - networkNameData = state.networkNameData; - dataConnected = state.dataConnected; - isDefault = state.isDefault; - isEmergency = state.isEmergency; - airplaneMode = state.airplaneMode; - carrierNetworkChangeMode = state.carrierNetworkChangeMode; - userSetup = state.userSetup; - roaming = state.roaming; - defaultDataOff = state.defaultDataOff; - } - - /** @return true if this state is disabled or not default data */ - public boolean isDataDisabledOrNotDefault() { - return (iconGroup == TelephonyIcons.DATA_DISABLED - || (iconGroup == TelephonyIcons.NOT_DEFAULT_DATA)) && userSetup; - } - - /** @return if this state is considered to have inbound activity */ - public boolean hasActivityIn() { - return dataConnected && !carrierNetworkChangeMode && activityIn; - } - - /** @return if this state is considered to have outbound activity */ - public boolean hasActivityOut() { - return dataConnected && !carrierNetworkChangeMode && activityOut; - } - - /** @return true if this state should show a RAT icon in quick settings */ - public boolean showQuickSettingsRatIcon() { - return dataConnected || isDataDisabledOrNotDefault(); - } - - @Override - protected void toString(StringBuilder builder) { - super.toString(builder); - builder.append(','); - builder.append("dataSim=").append(dataSim).append(','); - builder.append("networkName=").append(networkName).append(','); - builder.append("networkNameData=").append(networkNameData).append(','); - builder.append("dataConnected=").append(dataConnected).append(','); - builder.append("roaming=").append(roaming).append(','); - builder.append("isDefault=").append(isDefault).append(','); - builder.append("isEmergency=").append(isEmergency).append(','); - builder.append("airplaneMode=").append(airplaneMode).append(','); - builder.append("carrierNetworkChangeMode=").append(carrierNetworkChangeMode) - .append(','); - builder.append("userSetup=").append(userSetup).append(','); - builder.append("defaultDataOff=").append(defaultDataOff).append(','); - builder.append("showQuickSettingsRatIcon=").append(showQuickSettingsRatIcon()); - } - - @Override - public boolean equals(Object o) { - return super.equals(o) - && Objects.equals(((MobileState) o).networkName, networkName) - && Objects.equals(((MobileState) o).networkNameData, networkNameData) - && ((MobileState) o).dataSim == dataSim - && ((MobileState) o).dataConnected == dataConnected - && ((MobileState) o).isEmergency == isEmergency - && ((MobileState) o).airplaneMode == airplaneMode - && ((MobileState) o).carrierNetworkChangeMode == carrierNetworkChangeMode - && ((MobileState) o).userSetup == userSetup - && ((MobileState) o).isDefault == isDefault - && ((MobileState) o).roaming == roaming - && ((MobileState) o).defaultDataOff == defaultDataOff; - } - - @Override - public int hashCode() { - return Objects.hash(super.hashCode(), - networkName, - networkNameData, - dataSim, - dataConnected, - isEmergency, - airplaneMode, - carrierNetworkChangeMode, - userSetup, - isDefault, - roaming, - defaultDataOff); - } - } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/ConnectivityState.kt b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/ConnectivityState.kt new file mode 100644 index 0000000000000..9c3c10c9219ba --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/ConnectivityState.kt @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.statusbar.connectivity + +import android.annotation.SuppressLint +import com.android.settingslib.SignalIcon.IconGroup +import java.text.SimpleDateFormat + +/** + * Base type for various connectivity states, for use with [SignalController] and its subtypes + */ +open class ConnectivityState { + @JvmField var connected = false + @JvmField var enabled = false + @JvmField var activityIn = false + @JvmField var activityOut = false + @JvmField var level = 0 + @JvmField var iconGroup: IconGroup? = null + @JvmField var inetCondition = 0 + // Only for logging. + @JvmField var rssi = 0 + // Not used for comparison, just used for logging. + @JvmField var time: Long = 0 + + override fun toString(): String { + return if (time != 0L) { + val builder = StringBuilder() + toString(builder) + builder.toString() + } else { + "Empty " + javaClass.simpleName + } + } + + protected open fun copyFrom(other: ConnectivityState) { + connected = other.connected + enabled = other.enabled + activityIn = other.activityIn + activityOut = other.activityOut + level = other.level + iconGroup = other.iconGroup + inetCondition = other.inetCondition + rssi = other.rssi + time = other.time + } + + protected open fun toString(builder: StringBuilder) { + builder.append("connected=$connected,") + .append("enabled=$enabled,") + .append("level=$level,") + .append("inetCondition=$inetCondition,") + .append("iconGroup=$iconGroup,") + .append("activityIn=$activityIn,") + .append("activityOut=$activityOut,") + .append("rssi=$rssi,") + .append("lastModified=${sSDF.format(time)}") + } + + override fun equals(other: Any?): Boolean { + if (other == null) return false + if (other.javaClass != javaClass) return false + + val o = other as ConnectivityState + return o.connected == connected && + o.enabled == enabled && + o.level == level && + o.inetCondition == inetCondition && + o.iconGroup === iconGroup && + o.activityIn == activityIn && + o.activityOut == activityOut && + o.rssi == rssi + } + + override fun hashCode(): Int { + var result = connected.hashCode() + result = 31 * result + enabled.hashCode() + result = 31 * result + activityIn.hashCode() + result = 31 * result + activityOut.hashCode() + result = 31 * result + level + result = 31 * result + (iconGroup?.hashCode() ?: 0) + result = 31 * result + inetCondition + result = 31 * result + rssi + result = 31 * result + time.hashCode() + return result + } +} + +// No locale as it's only used for logging purposes +@SuppressLint("SimpleDateFormat") +private val sSDF = SimpleDateFormat("MM-dd HH:mm:ss.SSS") diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/EthernetSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/EthernetSignalController.java index 6cc55673a4ea3..acd97795c1280 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/EthernetSignalController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/EthernetSignalController.java @@ -20,13 +20,12 @@ import android.net.NetworkCapabilities; import com.android.settingslib.AccessibilityContentDescriptions; import com.android.settingslib.SignalIcon.IconGroup; -import com.android.settingslib.SignalIcon.State; import java.util.BitSet; /** */ public class EthernetSignalController extends - SignalController { + SignalController { public EthernetSignalController(Context context, CallbackHandler callbackHandler, NetworkControllerImpl networkController) { @@ -66,7 +65,7 @@ public class EthernetSignalController extends } @Override - public State cleanState() { - return new State(); + public ConnectivityState cleanState() { + return new ConnectivityState(); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/MobileSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/MobileSignalController.java index a3844954587b1..ddb3efe66a800 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/MobileSignalController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/MobileSignalController.java @@ -47,7 +47,6 @@ import android.util.Log; import com.android.internal.annotations.VisibleForTesting; import com.android.settingslib.AccessibilityContentDescriptions; import com.android.settingslib.SignalIcon.MobileIconGroup; -import com.android.settingslib.SignalIcon.MobileState; import com.android.settingslib.Utils; import com.android.settingslib.graph.SignalDrawable; import com.android.settingslib.mobile.MobileMappings.Config; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/MobileState.kt b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/MobileState.kt new file mode 100644 index 0000000000000..e8d053010e7fc --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/MobileState.kt @@ -0,0 +1,132 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.statusbar.connectivity + +import com.android.settingslib.mobile.TelephonyIcons +import java.lang.IllegalArgumentException + +/** + * Box for all policy-related state used in [MobileSignalController] + */ +internal class MobileState( + @JvmField var networkName: String? = null, + @JvmField var networkNameData: String? = null, + @JvmField var dataSim: Boolean = false, + @JvmField var dataConnected: Boolean = false, + @JvmField var isEmergency: Boolean = false, + @JvmField var airplaneMode: Boolean = false, + @JvmField var carrierNetworkChangeMode: Boolean = false, + @JvmField var isDefault: Boolean = false, + @JvmField var userSetup: Boolean = false, + @JvmField var roaming: Boolean = false, + // Tracks the on/off state of the defaultDataSubscription + @JvmField var defaultDataOff: Boolean = false +) : ConnectivityState() { + + /** @return true if this state is disabled or not default data */ + val isDataDisabledOrNotDefault: Boolean + get() = (iconGroup === TelephonyIcons.DATA_DISABLED + || iconGroup === TelephonyIcons.NOT_DEFAULT_DATA) && userSetup + + /** @return if this state is considered to have inbound activity */ + fun hasActivityIn(): Boolean { + return dataConnected && !carrierNetworkChangeMode && activityIn + } + + /** @return if this state is considered to have outbound activity */ + fun hasActivityOut(): Boolean { + return dataConnected && !carrierNetworkChangeMode && activityOut + } + + /** @return true if this state should show a RAT icon in quick settings */ + fun showQuickSettingsRatIcon(): Boolean { + return dataConnected || isDataDisabledOrNotDefault + } + + override fun copyFrom(other: ConnectivityState) { + val o = other as? MobileState ?: throw IllegalArgumentException( + "MobileState can only update from another MobileState") + + super.copyFrom(o) + networkName = o.networkName + networkNameData = o.networkNameData + dataSim = o.dataSim + dataConnected = o.dataConnected + isEmergency = o.isEmergency + airplaneMode = o.airplaneMode + carrierNetworkChangeMode = o.carrierNetworkChangeMode + isDefault = o.isDefault + userSetup = o.userSetup + roaming = o.roaming + defaultDataOff = o.defaultDataOff + } + + override fun toString(builder: StringBuilder) { + builder.append("connected=$connected,") + .append(',') + .append("dataSim=$dataSim,") + .append("networkName=$networkName,") + .append("networkNameData=$networkNameData,") + .append("dataConnected=$dataConnected,") + .append("roaming=$roaming,") + .append("isDefault=$isDefault,") + .append("isEmergency=$isEmergency,") + .append("airplaneMode=$airplaneMode,") + .append("carrierNetworkChangeMode=$carrierNetworkChangeMode,") + .append("userSetup=$userSetup,") + .append("defaultDataOff=$defaultDataOff,") + .append("showQuickSettingsRatIcon=${showQuickSettingsRatIcon()}") + } + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + if (!super.equals(other)) return false + + other as MobileState + + if (networkName != other.networkName) return false + if (networkNameData != other.networkNameData) return false + if (dataSim != other.dataSim) return false + if (dataConnected != other.dataConnected) return false + if (isEmergency != other.isEmergency) return false + if (airplaneMode != other.airplaneMode) return false + if (carrierNetworkChangeMode != other.carrierNetworkChangeMode) return false + if (isDefault != other.isDefault) return false + if (userSetup != other.userSetup) return false + if (roaming != other.roaming) return false + if (defaultDataOff != other.defaultDataOff) return false + + return true + } + + override fun hashCode(): Int { + var result = super.hashCode() + result = 31 * result + (networkName?.hashCode() ?: 0) + result = 31 * result + (networkNameData?.hashCode() ?: 0) + result = 31 * result + dataSim.hashCode() + result = 31 * result + dataConnected.hashCode() + result = 31 * result + isEmergency.hashCode() + result = 31 * result + airplaneMode.hashCode() + result = 31 * result + carrierNetworkChangeMode.hashCode() + result = 31 * result + isDefault.hashCode() + result = 31 * result + userSetup.hashCode() + result = 31 * result + roaming.hashCode() + result = 31 * result + defaultDataOff.hashCode() + return result + } +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java index e55aae4ebe7ab..3f5ef4806a1e5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/NetworkControllerImpl.java @@ -1212,7 +1212,7 @@ public class NetworkControllerImpl extends BroadcastReceiver } private boolean mDemoInetCondition; - private WifiSignalController.WifiState mDemoWifiState; + private WifiState mDemoWifiState; @Override public void onDemoModeStarted() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/SignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/SignalController.java index 56910c0eb7735..cd2006899cfc6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/SignalController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/SignalController.java @@ -22,7 +22,6 @@ import android.content.Context; import android.util.Log; import com.android.settingslib.SignalIcon.IconGroup; -import com.android.settingslib.SignalIcon.State; import java.io.PrintWriter; import java.util.BitSet; @@ -34,7 +33,7 @@ import java.util.BitSet; * @param State of the SysUI controller. * @param Icon groups of the SysUI controller for a given State. */ -public abstract class SignalController { +public abstract class SignalController { // Save the previous SignalController.States of all SignalControllers for dumps. static final boolean RECORD_HISTORY = true; // If RECORD_HISTORY how many to save, must be a power of 2. @@ -56,7 +55,7 @@ public abstract class SignalController { private final CallbackHandler mCallbackHandler; // Save the previous HISTORY_SIZE states for logging. - private final State[] mHistory; + private final ConnectivityState[] mHistory; // Where to copy the next state into. private int mHistoryIndex; @@ -70,7 +69,7 @@ public abstract class SignalController { mCurrentState = cleanState(); mLastState = cleanState(); if (RECORD_HISTORY) { - mHistory = new State[HISTORY_SIZE]; + mHistory = new ConnectivityState[HISTORY_SIZE]; for (int i = 0; i < HISTORY_SIZE; i++) { mHistory[i] = cleanState(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/WifiSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/WifiSignalController.java index 3e703eda5f550..103ca0ebc6ca3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/WifiSignalController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/WifiSignalController.java @@ -26,12 +26,10 @@ import android.net.NetworkCapabilities; import android.net.NetworkScoreManager; import android.net.wifi.WifiManager; import android.text.Html; -import android.text.TextUtils; import com.android.internal.annotations.VisibleForTesting; import com.android.settingslib.SignalIcon.IconGroup; import com.android.settingslib.SignalIcon.MobileIconGroup; -import com.android.settingslib.SignalIcon.State; import com.android.settingslib.graph.SignalDrawable; import com.android.settingslib.mobile.TelephonyIcons; import com.android.settingslib.wifi.WifiStatusTracker; @@ -39,11 +37,9 @@ import com.android.systemui.R; import com.android.systemui.flags.FeatureFlags; import java.io.PrintWriter; -import java.util.Objects; /** */ -public class WifiSignalController extends - SignalController { +public class WifiSignalController extends SignalController { private final boolean mHasMobileDataFeature; private final WifiStatusTracker mWifiTracker; private final IconGroup mUnmergedWifiIconGroup = WifiIcons.UNMERGED_WIFI; @@ -268,50 +264,4 @@ public class WifiSignalController extends setActivity(state); } } - - static class WifiState extends State { - public String ssid; - public boolean isTransient; - public boolean isDefault; - public String statusLabel; - public boolean isCarrierMerged; - public int subId; - - @Override - public void copyFrom(State s) { - super.copyFrom(s); - WifiState state = (WifiState) s; - ssid = state.ssid; - isTransient = state.isTransient; - isDefault = state.isDefault; - statusLabel = state.statusLabel; - isCarrierMerged = state.isCarrierMerged; - subId = state.subId; - } - - @Override - protected void toString(StringBuilder builder) { - super.toString(builder); - builder.append(",ssid=").append(ssid) - .append(",isTransient=").append(isTransient) - .append(",isDefault=").append(isDefault) - .append(",statusLabel=").append(statusLabel) - .append(",isCarrierMerged=").append(isCarrierMerged) - .append(",subId=").append(subId); - } - - @Override - public boolean equals(Object o) { - if (!super.equals(o)) { - return false; - } - WifiState other = (WifiState) o; - return Objects.equals(other.ssid, ssid) - && other.isTransient == isTransient - && other.isDefault == isDefault - && TextUtils.equals(other.statusLabel, statusLabel) - && other.isCarrierMerged == isCarrierMerged - && other.subId == subId; - } - } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/WifiState.kt b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/WifiState.kt new file mode 100644 index 0000000000000..ac15f78191f68 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/WifiState.kt @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.statusbar.connectivity + +import java.lang.StringBuilder + +internal class WifiState( + @JvmField var ssid: String? = null, + @JvmField var isTransient: Boolean = false, + @JvmField var isDefault: Boolean = false, + @JvmField var statusLabel: String? = null, + @JvmField var isCarrierMerged: Boolean = false, + @JvmField var subId: Int = 0 +) : ConnectivityState() { + + public override fun copyFrom(s: ConnectivityState) { + super.copyFrom(s) + val state = s as WifiState + ssid = state.ssid + isTransient = state.isTransient + isDefault = state.isDefault + statusLabel = state.statusLabel + isCarrierMerged = state.isCarrierMerged + subId = state.subId + } + + override fun toString(builder: StringBuilder) { + super.toString(builder) + builder.append(",ssid=").append(ssid) + .append(",isTransient=").append(isTransient) + .append(",isDefault=").append(isDefault) + .append(",statusLabel=").append(statusLabel) + .append(",isCarrierMerged=").append(isCarrierMerged) + .append(",subId=").append(subId) + } + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + if (!super.equals(other)) return false + + other as WifiState + + if (ssid != other.ssid) return false + if (isTransient != other.isTransient) return false + if (isDefault != other.isDefault) return false + if (statusLabel != other.statusLabel) return false + if (isCarrierMerged != other.isCarrierMerged) return false + if (subId != other.subId) return false + + return true + } + + override fun hashCode(): Int { + var result = super.hashCode() + result = 31 * result + (ssid?.hashCode() ?: 0) + result = 31 * result + isTransient.hashCode() + result = 31 * result + isDefault.hashCode() + result = 31 * result + (statusLabel?.hashCode() ?: 0) + result = 31 * result + isCarrierMerged.hashCode() + result = 31 * result + subId + return result + } +} diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/MobileStateTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/connectivity/MobileStateTest.java similarity index 90% rename from packages/SettingsLib/tests/robotests/src/com/android/settingslib/MobileStateTest.java rename to packages/SystemUI/tests/src/com/android/systemui/statusbar/connectivity/MobileStateTest.java index 92a32bce17992..7ddfde370afa0 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/MobileStateTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/connectivity/MobileStateTest.java @@ -14,22 +14,26 @@ * limitations under the License. */ -package com.android.settingslib; +package com.android.systemui.statusbar.connectivity; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; +import android.test.suitebuilder.annotation.SmallTest; +import android.testing.AndroidTestingRunner; + import com.android.settingslib.mobile.TelephonyIcons; +import com.android.systemui.SysuiTestCase; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.robolectric.RobolectricTestRunner; -@RunWith(RobolectricTestRunner.class) -public class MobileStateTest { +@SmallTest +@RunWith(AndroidTestingRunner.class) +public class MobileStateTest extends SysuiTestCase { - private SignalIcon.MobileState mState = new SignalIcon.MobileState(); + private final MobileState mState = new MobileState(); @Before public void setUp() {