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

Commit 8311d069 authored by Grace Jia's avatar Grace Jia
Browse files

Copy Uri#isPathPrefixMatch to DcTrackerTest to avoid using hidden

API in Uri.

Test: FrameworksTelephonyTests
Bug: 147828972
Change-Id: I0c46a781cb60ef01a02401bd964bee180344d318
parent 2176b8d1
Loading
Loading
Loading
Loading
+27 −1
Original line number Diff line number Diff line
@@ -108,6 +108,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicInteger;

public class DcTrackerTest extends TelephonyTest {
@@ -446,7 +447,7 @@ public class DcTrackerTest extends TelephonyTest {

                    return mc;
                }
            } else if (uri.isPathPrefixMatch(
            } else if (isPathPrefixMatch(uri,
                    Uri.withAppendedPath(Telephony.Carriers.CONTENT_URI, "preferapnset"))) {
                MatrixCursor mc = new MatrixCursor(
                        new String[]{Telephony.Carriers.APN_SET_ID});
@@ -2015,4 +2016,29 @@ public class DcTrackerTest extends TelephonyTest {
        waitForLastHandlerAction(mDcTrackerTestHandler.getThreadHandler());
        assertFalse(getWatchdogStatus());
    }

    /**
     * Test if this is a path prefix match against the given Uri. Verifies that
     * scheme, authority, and atomic path segments match.
     *
     * Copied from frameworks/base/core/java/android/net/Uri.java
     */
    private boolean isPathPrefixMatch(Uri uriA, Uri uriB) {
        if (!Objects.equals(uriA.getScheme(), uriB.getScheme())) return false;
        if (!Objects.equals(uriA.getAuthority(), uriB.getAuthority())) return false;

        List<String> segA = uriA.getPathSegments();
        List<String> segB = uriB.getPathSegments();

        final int size = segB.size();
        if (segA.size() < size) return false;

        for (int i = 0; i < size; i++) {
            if (!Objects.equals(segA.get(i), segB.get(i))) {
                return false;
            }
        }

        return true;
    }
}