Replace the hidden API to public API or other alternatives

Some of connectivity related files are going to be a part of
mainline module, so the external callers cannot call its hidden
API.
Replace the hidden API to public API or other alternatives from
the callers side.

Bug: 182859030
Test: 1. Remove "framework-connectivity.impl"
      2. atest SettingsUnitTests:InternetUpdaterTest
      3. atest SettingsUnitTests:ProviderModelSliceHelperTest
      4. atest SettingsUnitTests:MobileNetworkUtilsTest
      5. make RunSettingsRoboTests \
         ROBOTEST_FILTER=AppDataUsagePreferenceControllerTest
      6. make RunSettingsRoboTests \
         ROBOTEST_FILTER=TetherPreferenceControllerTest
      7. make RunSettingsRoboTests \
         ROBOTEST_FILTER=WifiDetailPreferenceController2Test
      8. make RunSettingsRoboTests \
         ROBOTEST_FILTER=ContextualWifiSliceTest
Change-Id: Idd1ca57d8f2790070e9c401936c5af2a05bcfe9d
This commit is contained in:
lucaslin
2021-04-14 16:50:53 +08:00
committed by Lucas Lin
parent 4400038635
commit 09bbb51d29
7 changed files with 50 additions and 41 deletions

View File

@@ -19,7 +19,6 @@ package com.android.settings.applications.appinfo;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.doReturn;
@@ -31,9 +30,11 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.net.ConnectivityManager;
import android.os.Bundle;
import androidx.loader.app.LoaderManager;
import androidx.preference.Preference;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.datausage.AppDataUsage;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
@@ -42,14 +43,10 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import androidx.loader.app.LoaderManager;
import androidx.preference.Preference;
@RunWith(RobolectricTestRunner.class)
public class AppDataUsagePreferenceControllerTest {
@@ -98,10 +95,6 @@ public class AppDataUsagePreferenceControllerTest {
@Test
public void onResume_isAvailable_shouldRestartDataLoader() {
final ConnectivityManager connectivityManager = mock(ConnectivityManager.class);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
.thenReturn(connectivityManager);
when(connectivityManager.isNetworkSupported(anyInt())).thenReturn(true);
doReturn(mLoaderManager).when(mFragment).getLoaderManager();
doReturn(BasePreferenceController.AVAILABLE).when(mController).getAvailabilityStatus();
final AppEntry appEntry = mock(AppEntry.class);

View File

@@ -32,7 +32,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.ContentObserver;
import android.net.ConnectivityManager;
import android.net.TetheringManager;
import android.provider.Settings;
@@ -198,7 +197,7 @@ public class TetherPreferenceControllerTest {
ReflectionHelpers.setField(mController, "mContext", context);
mController.onResume();
context.sendBroadcast(new Intent(ConnectivityManager.ACTION_TETHER_STATE_CHANGED));
context.sendBroadcast(new Intent(TetheringManager.ACTION_TETHER_STATE_CHANGED));
verify(mController).updateSummary();
}

View File

@@ -246,8 +246,9 @@ public class WifiDetailPreferenceController2Test {
final Inet4Address any4 = (Inet4Address) InetAddress.getByName("0.0.0.0");
IpPrefix subnet = new IpPrefix(IPV4_ADDR.getAddress(), IPV4_PREFIXLEN);
IPV4_SUBNET = new RouteInfo(subnet, any4);
IPV4_DEFAULT = new RouteInfo(new IpPrefix(any4, 0), IPV4_GATEWAY);
IPV4_SUBNET = new RouteInfo(subnet, any4, null /* iface */, RouteInfo.RTN_UNICAST);
IPV4_DEFAULT = new RouteInfo(new IpPrefix(any4, 0), IPV4_GATEWAY, null /* iface */,
RouteInfo.RTN_UNICAST);
IPV6_LINKLOCAL = ipv6LinkAddress("fe80::211:25ff:fef8:7cb2%1");
IPV6_GLOBAL1 = ipv6LinkAddress("2001:db8:1::211:25ff:fef8:7cb2");
@@ -1047,9 +1048,10 @@ public class WifiDetailPreferenceController2Test {
}
private NetworkCapabilities makeNetworkCapabilities() {
NetworkCapabilities nc = new NetworkCapabilities();
nc.clearAll();
nc.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
final NetworkCapabilities nc = new NetworkCapabilities.Builder()
.clearAll()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.build();
return nc;
}
@@ -1141,7 +1143,8 @@ public class WifiDetailPreferenceController2Test {
inOrder.verify(mMockHeaderController, never()).setSummary(any(CharSequence.class));
// ... but that if the network validates, then we do refresh.
nc.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
nc = new NetworkCapabilities.Builder(nc)
.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED).build();
updateNetworkCapabilities(nc);
inOrder.verify(mMockHeaderController).setSummary(summary);
@@ -1153,27 +1156,31 @@ public class WifiDetailPreferenceController2Test {
inOrder.verify(mMockHeaderController, never()).setSummary(any(CharSequence.class));
// ... but if the network is no longer validated, then we display "connected, no Internet".
nc.removeCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
nc = new NetworkCapabilities.Builder(nc)
.removeCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED).build();
updateNetworkCapabilities(nc);
inOrder.verify(mMockHeaderController).setSummary(summary);
// UI will be refreshed when private DNS is broken.
summary = "Private DNS server cannot be accessed";
when(mMockWifiEntry.getSummary()).thenReturn(summary);
nc.setPrivateDnsBroken(true);
updateNetworkCapabilities(nc);
NetworkCapabilities mockNc = mock(NetworkCapabilities.class);
when(mockNc.isPrivateDnsBroken()).thenReturn(true);
mCallbackCaptor.getValue().onCapabilitiesChanged(mMockNetwork, mockNc);
inOrder.verify(mMockHeaderController).setSummary(summary);
// UI will be refreshed when device connects to a partial connectivity network.
summary = "Limited connection";
when(mMockWifiEntry.getSummary()).thenReturn(summary);
nc.addCapability(NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY);
nc = new NetworkCapabilities.Builder(nc)
.addCapability(NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY).build();
updateNetworkCapabilities(nc);
inOrder.verify(mMockHeaderController).setSummary(summary);
// Although UI will be refreshed when network become validated. The Settings should
// continue to display "Limited connection" if network still provides partial connectivity.
nc.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
nc = new NetworkCapabilities.Builder(nc)
.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED).build();
updateNetworkCapabilities(nc);
inOrder.verify(mMockHeaderController).setSummary(summary);
}
@@ -1389,14 +1396,16 @@ public class WifiDetailPreferenceController2Test {
inOrder.verify(mMockButtonsPref).setButton2Visible(false);
when(mMockWifiEntry.canSignIn()).thenReturn(true);
nc.addCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL);
nc = new NetworkCapabilities.Builder(nc)
.addCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL).build();
updateNetworkCapabilities(nc);
inOrder.verify(mMockButtonsPref).setButton2Text(R.string.wifi_sign_in_button_text);
inOrder.verify(mMockButtonsPref).setButton2Visible(true);
when(mMockWifiEntry.canSignIn()).thenReturn(false);
nc.removeCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL);
nc = new NetworkCapabilities.Builder(nc)
.removeCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL).build();
updateNetworkCapabilities(nc);
inOrder.verify(mMockButtonsPref).setButton2Visible(false);
@@ -1448,7 +1457,8 @@ public class WifiDetailPreferenceController2Test {
public void testSignInButton_shouldHideSignInButtonForDisconnectedNetwork() {
setUpForDisconnectedNetwork();
NetworkCapabilities nc = makeNetworkCapabilities();
nc.addCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL);
nc = new NetworkCapabilities.Builder()
.addCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL).build();
when(mMockConnectivityManager.getNetworkCapabilities(mMockNetwork))
.thenReturn(new NetworkCapabilities(nc));

View File

@@ -144,10 +144,11 @@ public class ContextualWifiSliceTest {
}
private NetworkCapabilities makeValidatedNetworkCapabilities() {
final NetworkCapabilities nc = new NetworkCapabilities();
nc.clearAll();
nc.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
nc.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
final NetworkCapabilities nc = new NetworkCapabilities.Builder()
.clearAll()
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)
.build();
return nc;
}