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

Commit b6f3ae6c authored by Automerger Merge Worker's avatar Automerger Merge Worker Committed by Android (Google) Code Review
Browse files

Merge "Merge "Add util methods to validate satellite config data" into...

Merge "Merge "Add util methods to validate satellite config data" into 24D1-dev am: 4ccad7ce" into main
parents 161b2efa eff6e223
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@
package com.android.internal.telephony.util;

import static android.telephony.Annotation.DataState;
import static android.telephony.NetworkRegistrationInfo.FIRST_SERVICE_TYPE;
import static android.telephony.NetworkRegistrationInfo.LAST_SERVICE_TYPE;

import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -37,6 +39,7 @@ import android.provider.Telephony.Carriers.EditStatus;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyFrameworkInitializer;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;

import com.android.internal.telephony.ITelephony;
@@ -48,6 +51,8 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * This class provides various util functions
@@ -342,4 +347,31 @@ public final class TelephonyUtils {
        return false;

    }

    /**
     * @param plmn target plmn for validation.
     * @return {@code true} if the target plmn is valid {@code false} otherwise.
     */
    public static boolean isValidPlmn(@Nullable String plmn) {
        if (TextUtils.isEmpty(plmn)) {
            return false;
        }
        Pattern pattern = Pattern.compile("^(?:[0-9]{3})(?:[0-9]{2}|[0-9]{3})$");
        Matcher matcher = pattern.matcher(plmn);
        if (!matcher.matches()) {
            return false;
        }
        return true;
    }

    /**
     * @param serviceType target serviceType for validation.
     * @return {@code true} if the target serviceType is valid {@code false} otherwise.
     */
    public static boolean isValidService(int serviceType) {
        if (serviceType < FIRST_SERVICE_TYPE || serviceType > LAST_SERVICE_TYPE) {
            return false;
        }
        return true;
    }
}
+23 −1
Original line number Diff line number Diff line
@@ -16,10 +16,16 @@

package com.android.internal.telephony.tests;

import static android.telephony.NetworkRegistrationInfo.FIRST_SERVICE_TYPE;
import static android.telephony.NetworkRegistrationInfo.LAST_SERVICE_TYPE;

import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;

import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;

import android.content.Context;
@@ -72,6 +78,22 @@ public class TelephonyUtilsTest {
        // getSubscriptionUserHandle should be called if subID is active.
        verify(mSubscriptionManager, times(1)).getSubscriptionUserHandle(eq(activeSubId));
    }

    @Test
    public void testIsValidPlmn() {
        assertTrue(TelephonyUtils.isValidPlmn("310260"));
        assertTrue(TelephonyUtils.isValidPlmn("45006"));
        assertFalse(TelephonyUtils.isValidPlmn("1234567"));
        assertFalse(TelephonyUtils.isValidPlmn("1234"));
    }

    @Test
    public void testIsValidService() {
        assertTrue(TelephonyUtils.isValidService(FIRST_SERVICE_TYPE));
        assertTrue(TelephonyUtils.isValidService(LAST_SERVICE_TYPE));
        assertFalse(TelephonyUtils.isValidService(FIRST_SERVICE_TYPE - 1));
        assertFalse(TelephonyUtils.isValidService(LAST_SERVICE_TYPE + 1));
    }
}