Display one row item per Ethernet interface
This change adds a preference category to host rows for ethernet interfaces. Flag: com.android.settings.connectivity.ethernet_settings Test: atest SettingsRoboTests: com.android.settings.network.NetworkProviderSettingsTest Bug: 369889610 Change-Id: Idb37cbf17f06db2c9a217659affb35d9dcebadf3
This commit is contained in:
@@ -48,6 +48,7 @@ import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
import android.location.LocationManager;
|
||||
import android.net.EthernetManager;
|
||||
import android.net.IpConfiguration;
|
||||
import android.net.wifi.WifiConfiguration;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Bundle;
|
||||
@@ -73,6 +74,8 @@ import com.android.settings.AirplaneModeEnabler;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.dashboard.DashboardFeatureProvider;
|
||||
import com.android.settings.datausage.DataUsagePreference;
|
||||
import com.android.settings.network.ethernet.EthernetInterface;
|
||||
import com.android.settings.network.ethernet.EthernetTracker;
|
||||
import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
|
||||
import com.android.settings.testutils.shadow.ShadowFragment;
|
||||
import com.android.settings.wifi.AddWifiNetworkPreference;
|
||||
@@ -90,6 +93,7 @@ import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.Spy;
|
||||
@@ -102,6 +106,7 @@ import org.robolectric.annotation.Implements;
|
||||
import org.robolectric.shadows.ShadowToast;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@@ -160,6 +165,10 @@ public class NetworkProviderSettingsTest {
|
||||
NetworkProviderSettings.WifiRestriction mWifiRestriction;
|
||||
@Mock
|
||||
EthernetManager mEtherentManager;
|
||||
@Mock
|
||||
EthernetTracker mEthernetTracker;
|
||||
@Mock
|
||||
PreferenceCategory mEthernetPreferenceCategory;
|
||||
|
||||
private NetworkProviderSettings mNetworkProviderSettings;
|
||||
|
||||
@@ -194,6 +203,7 @@ public class NetworkProviderSettingsTest {
|
||||
mNetworkProviderSettings.mAirplaneModeMsgPreference = mAirplaneModeMsgPreference;
|
||||
mNetworkProviderSettings.mAirplaneModeEnabler = mAirplaneModeEnabler;
|
||||
mNetworkProviderSettings.mInternetUpdater = mInternetUpdater;
|
||||
mNetworkProviderSettings.mEthernetTracker = mEthernetTracker;
|
||||
mNetworkProviderSettings.mWifiStatusMessagePreference = new FooterPreference(mContext);
|
||||
doReturn(NetworkProviderSettings.PREF_KEY_CONNECTED_ACCESS_POINTS)
|
||||
.when(mConnectedWifiEntryPreferenceCategory).getKey();
|
||||
@@ -203,6 +213,7 @@ public class NetworkProviderSettingsTest {
|
||||
.when(mFirstWifiEntryPreferenceCategory).getKey();
|
||||
mNetworkProviderSettings.mFirstWifiEntryPreferenceCategory =
|
||||
mFirstWifiEntryPreferenceCategory;
|
||||
mNetworkProviderSettings.mEthernetPreferenceCategory = mEthernetPreferenceCategory;
|
||||
|
||||
ReflectionHelpers.setField(mNetworkProviderSettings, "mDashboardFeatureProvider",
|
||||
mock(DashboardFeatureProvider.class));
|
||||
@@ -749,6 +760,8 @@ public class NetworkProviderSettingsTest {
|
||||
public void onStop_shouldRemoveCallbacks() {
|
||||
View fragmentView = mock(View.class);
|
||||
when(mNetworkProviderSettings.getView()).thenReturn(fragmentView);
|
||||
doNothing().when(mEthernetTracker)
|
||||
.unregisterInterfaceListener(any());
|
||||
|
||||
mNetworkProviderSettings.onStop();
|
||||
|
||||
@@ -925,6 +938,57 @@ public class NetworkProviderSettingsTest {
|
||||
verify(mContext).startActivity(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateEthernetInterfaces_withEmptyInterfaces() {
|
||||
doNothing().when(mEthernetPreferenceCategory).removeAll();
|
||||
|
||||
mNetworkProviderSettings.updateEthernetInterfaces(new ArrayList<EthernetInterface>());
|
||||
|
||||
verify(mEthernetPreferenceCategory).removeAll();
|
||||
verify(mEthernetPreferenceCategory).setVisible(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateEthernetInterfaces_withConnectedInterface() {
|
||||
List<EthernetInterface> interfaces = new ArrayList<>();
|
||||
EthernetInterface ethernetInterface = new EthernetInterface(mContext, "eth0");
|
||||
ethernetInterface.onInterfaceStateChanged(
|
||||
"eth0", EthernetManager.STATE_LINK_UP, 0, new IpConfiguration());
|
||||
|
||||
interfaces.add(ethernetInterface);
|
||||
|
||||
mNetworkProviderSettings.updateEthernetInterfaces(interfaces);
|
||||
|
||||
ArgumentCaptor<Preference> arg = ArgumentCaptor.forClass(Preference.class);
|
||||
|
||||
verify(mEthernetPreferenceCategory).removeAll();
|
||||
verify(mEthernetPreferenceCategory).setVisible(true);
|
||||
verify(mEthernetPreferenceCategory).addPreference(arg.capture());
|
||||
|
||||
Preference pref = arg.getValue();
|
||||
assertThat(pref.getKey()).isEqualTo("eth0");
|
||||
assertThat(pref.getSummary()).isEqualTo("Connected");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateEthernetInterfaces_withDisconnectedInterface() {
|
||||
List<EthernetInterface> interfaces = new ArrayList<>();
|
||||
EthernetInterface ethernetInterface = new EthernetInterface(mContext, "eth0");
|
||||
ethernetInterface.onInterfaceStateChanged(
|
||||
"eth0", EthernetManager.STATE_LINK_DOWN, 0, new IpConfiguration());
|
||||
|
||||
interfaces.add(ethernetInterface);
|
||||
|
||||
mNetworkProviderSettings.updateEthernetInterfaces(interfaces);
|
||||
|
||||
ArgumentCaptor<Preference> arg = ArgumentCaptor.forClass(Preference.class);
|
||||
|
||||
verify(mEthernetPreferenceCategory).addPreference(arg.capture());
|
||||
|
||||
Preference pref = arg.getValue();
|
||||
assertThat(pref.getSummary()).isEqualTo("Disconnected");
|
||||
}
|
||||
|
||||
@Implements(PreferenceFragmentCompat.class)
|
||||
public static class ShadowPreferenceFragmentCompat {
|
||||
|
||||
|
@@ -30,7 +30,7 @@ import org.junit.runner.RunWith
|
||||
import org.mockito.kotlin.mock
|
||||
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
class EthernetInterfaceTrackerTest {
|
||||
class EthernetTrackerImplTest {
|
||||
private val mockEthernetManager = mock<EthernetManager>()
|
||||
|
||||
private val context: Context =
|
||||
@@ -42,38 +42,38 @@ class EthernetInterfaceTrackerTest {
|
||||
}
|
||||
}
|
||||
|
||||
private val ethernetInterfaceTracker = EthernetInterfaceTracker.getInstance(context)
|
||||
private val ethernetTrackerImpl = EthernetTrackerImpl.getInstance(context)
|
||||
|
||||
@Test
|
||||
fun getInterface_shouldReturnEmpty() {
|
||||
assertNull(ethernetInterfaceTracker.getInterface("id0"))
|
||||
assertNull(ethernetTrackerImpl.getInterface("id0"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun getAvailableInterfaces_shouldReturnEmpty() {
|
||||
assertEquals(ethernetInterfaceTracker.availableInterfaces.size, 0)
|
||||
assertEquals(ethernetTrackerImpl.availableInterfaces.size, 0)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun interfacesChanged_shouldUpdateInterfaces() {
|
||||
ethernetInterfaceTracker.onInterfaceStateChanged(
|
||||
ethernetTrackerImpl.onInterfaceStateChanged(
|
||||
"id0",
|
||||
EthernetManager.STATE_LINK_DOWN,
|
||||
EthernetManager.ROLE_NONE,
|
||||
IpConfiguration(),
|
||||
)
|
||||
|
||||
assertNotNull(ethernetInterfaceTracker.getInterface("id0"))
|
||||
assertEquals(ethernetInterfaceTracker.availableInterfaces.size, 1)
|
||||
assertNotNull(ethernetTrackerImpl.getInterface("id0"))
|
||||
assertEquals(ethernetTrackerImpl.availableInterfaces.size, 1)
|
||||
|
||||
ethernetInterfaceTracker.onInterfaceStateChanged(
|
||||
ethernetTrackerImpl.onInterfaceStateChanged(
|
||||
"id0",
|
||||
EthernetManager.STATE_ABSENT,
|
||||
EthernetManager.ROLE_NONE,
|
||||
IpConfiguration(),
|
||||
)
|
||||
|
||||
assertNull(ethernetInterfaceTracker.getInterface("id0"))
|
||||
assertEquals(ethernetInterfaceTracker.availableInterfaces.size, 0)
|
||||
assertNull(ethernetTrackerImpl.getInterface("id0"))
|
||||
assertEquals(ethernetTrackerImpl.availableInterfaces.size, 0)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user