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

Commit 5665f307 authored by Lucas Lin's avatar Lucas Lin Committed by Automerger Merge Worker
Browse files

Merge "Add more log in NetworkMonitor for debugging" am: 46f91882

Original change: https://android-review.googlesource.com/c/platform/packages/modules/NetworkStack/+/1335694

Change-Id: I6f57db5c86a6096fb5627bc0de73c4042c6bfa4a
parents f01dcfc1 46f91882
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -18,10 +18,12 @@ package android.net.util;

import android.content.Context;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
import android.provider.DeviceConfig;
import android.util.Log;
import android.util.SparseArray;

import androidx.annotation.BoolRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

@@ -454,4 +456,17 @@ public class NetworkStackUtils {
        }
        return (int) value;
    }

    /**
     * Gets boolean config from resources.
     */
    public static boolean getResBooleanConfig(@NonNull final Context context,
            @BoolRes int configResource, final boolean defaultValue) {
        final Resources res = context.getResources();
        try {
            return res.getBoolean(configResource);
        } catch (Resources.NotFoundException e) {
            return defaultValue;
        }
    }
}
+7 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.server;
import static android.net.dhcp.IDhcpServer.STATUS_INVALID_ARGUMENT;
import static android.net.dhcp.IDhcpServer.STATUS_SUCCESS;
import static android.net.dhcp.IDhcpServer.STATUS_UNKNOWN_ERROR;
import static android.net.util.NetworkStackUtils.getResBooleanConfig;

import static com.android.server.util.PermissionUtil.checkDumpPermission;

@@ -58,6 +59,7 @@ import androidx.annotation.VisibleForTesting;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.util.IndentingPrintWriter;
import com.android.networkstack.NetworkStackNotifier;
import com.android.networkstack.R;
import com.android.networkstack.apishim.common.ShimUtils;
import com.android.server.connectivity.NetworkMonitor;
import com.android.server.connectivity.ipmemorystore.IpMemoryStoreService;
@@ -462,6 +464,11 @@ public class NetworkStackService extends Service {
                    pw.decreaseIndent();
                }
            }

            pw.println();
            pw.print("useNeighborResource: ");
            pw.println(getResBooleanConfig(mContext,
                    R.bool.config_no_sim_card_uses_neighbor_mcc, false));
        }

        /**
+8 −13
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@ import static android.net.util.NetworkStackUtils.DNS_PROBE_PRIVATE_IP_NO_INTERNE
import static android.net.util.NetworkStackUtils.TEST_CAPTIVE_PORTAL_HTTPS_URL;
import static android.net.util.NetworkStackUtils.TEST_CAPTIVE_PORTAL_HTTP_URL;
import static android.net.util.NetworkStackUtils.TEST_URL_EXPIRATION_TIME;
import static android.net.util.NetworkStackUtils.getResBooleanConfig;
import static android.net.util.NetworkStackUtils.isEmpty;
import static android.net.util.NetworkStackUtils.isIPv6ULA;
import static android.provider.DeviceConfig.NAMESPACE_CONNECTIVITY;
@@ -150,7 +151,6 @@ import android.util.Pair;
import android.util.SparseArray;

import androidx.annotation.ArrayRes;
import androidx.annotation.BoolRes;
import androidx.annotation.IntegerRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -1787,7 +1787,10 @@ public class NetworkMonitor extends StateMachine {
        }
        try {
            final List<CellInfo> cells = mTelephonyManager.getAllCellInfo();
            if (cells == null) return null;
            if (cells == null) {
                log("CellInfo is null");
                return null;
            }
            final Map<String, Integer> countryCodeMap = new HashMap<>();
            int maxCount = 0;
            for (final CellInfo cell : cells) {
@@ -1830,6 +1833,7 @@ public class NetworkMonitor extends StateMachine {
        // Return customized context if carrier id can match a record in sCarrierIdToMccMnc.
        final MccMncOverrideInfo overrideInfo = getMccMncOverrideInfo();
        if (overrideInfo != null) {
            log("Return customized context by MccMncOverrideInfo.");
            return getContextByMccMnc(overrideInfo.mcc, overrideInfo.mnc);
        }

@@ -1839,11 +1843,13 @@ public class NetworkMonitor extends StateMachine {
                getResBooleanConfig(mContext, R.bool.config_no_sim_card_uses_neighbor_mcc, false);
        if (!useNeighborResource
                || TelephonyManager.SIM_STATE_READY == mTelephonyManager.getSimState()) {
            if (useNeighborResource) log("Sim state is ready, return original context.");
            return mContext;
        }

        final String mcc = getLocationMcc();
        if (TextUtils.isEmpty(mcc)) {
            log("Return original context due to getting mcc failed.");
            return mContext;
        }

@@ -1918,17 +1924,6 @@ public class NetworkMonitor extends StateMachine {
        }
    }

    @VisibleForTesting
    boolean getResBooleanConfig(@NonNull final Context context,
            @BoolRes int configResource, final boolean defaultValue) {
        final Resources res = context.getResources();
        try {
            return res.getBoolean(configResource);
        } catch (Resources.NotFoundException e) {
            return defaultValue;
        }
    }

    /**
     * Gets integer config from resources.
     */
+19 −0
Original line number Diff line number Diff line
@@ -34,11 +34,14 @@ import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
import android.provider.DeviceConfig;

import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;

import com.android.networkstack.R;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -69,6 +72,7 @@ public class NetworkStackUtilsTest {
    @Mock private Context mContext;
    @Mock private PackageManager mPm;
    @Mock private PackageInfo mPi;
    @Mock private Resources mResources;

    @Before
    public void setUp() throws Exception {
@@ -81,6 +85,7 @@ public class NetworkStackUtilsTest {
        doReturn(mPm).when(mContext).getPackageManager();
        doReturn(TEST_PACKAGE_NAME).when(mContext).getPackageName();
        doReturn(pi).when(mPm).getPackageInfo(anyString(), anyInt());
        doReturn(mResources).when(mContext).getResources();
    }

    @After
@@ -199,4 +204,18 @@ public class NetworkStackUtilsTest {
        assertFalse(isIPv6ULA(parseNumericAddress("fe00::")));
        assertFalse(isIPv6ULA(parseNumericAddress("2480:1248::123:456")));
    }

    @Test
    public void testGetResBooleanConfig() {
        doReturn(true).when(mResources).getBoolean(R.bool.config_no_sim_card_uses_neighbor_mcc);
        assertTrue(NetworkStackUtils.getResBooleanConfig(mContext,
                R.bool.config_no_sim_card_uses_neighbor_mcc, false));
        doReturn(false).when(mResources).getBoolean(R.bool.config_no_sim_card_uses_neighbor_mcc);
        assertFalse(NetworkStackUtils.getResBooleanConfig(mContext,
                R.bool.config_no_sim_card_uses_neighbor_mcc, false));
        doThrow(new Resources.NotFoundException())
                .when(mResources).getBoolean(eq(R.bool.config_no_sim_card_uses_neighbor_mcc));
        assertFalse(NetworkStackUtils.getResBooleanConfig(mContext,
                R.bool.config_no_sim_card_uses_neighbor_mcc, false));
    }
}
 No newline at end of file