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

Commit fd0d814c authored by Les Lee's avatar Les Lee Committed by Android Build Coastguard Worker
Browse files

Fix normalize doesn't work on carrier template

From android 12, the subscriberId is being used for different network
types. For instances:
The TYPE_WIFI with subscriberId means that it is a merged wifi network.
The TYPE_CARRIER means that the network associate to specific carrier
network (subscriberId).

So remove the check "isMatchRuleMobile" and only check whether subscriberId
is being used in NetworkTemplate or not.

Bug: 194939211
Test: atest -c NetworkTemplateTest
Change-Id: I80c9f887cf8b4714716d657da92ed273a532ce27
Merged-In: I80c9f887cf8b4714716d657da92ed273a532ce27
(cherry picked from commit 46cc261a)
Merged-In:I80c9f887cf8b4714716d657da92ed273a532ce27
parent 3bfc7d85
Loading
Loading
Loading
Loading
+10 −5
Original line number Original line Diff line number Diff line
@@ -782,8 +782,8 @@ public class NetworkTemplate implements Parcelable {
    }
    }


    /**
    /**
     * Examine the given template and normalize if it refers to a "merged"
     * Examine the given template and normalize it.
     * mobile subscriber. We pick the "lowest" merged subscriber as the primary
     * We pick the "lowest" merged subscriber as the primary
     * for key purposes, and expand the template to match all other merged
     * for key purposes, and expand the template to match all other merged
     * subscribers.
     * subscribers.
     * <p>
     * <p>
@@ -798,8 +798,8 @@ public class NetworkTemplate implements Parcelable {
    }
    }


    /**
    /**
     * Examine the given template and normalize if it refers to a "merged"
     * Examine the given template and normalize it.
     * mobile subscriber. We pick the "lowest" merged subscriber as the primary
     * We pick the "lowest" merged subscriber as the primary
     * for key purposes, and expand the template to match all other merged
     * for key purposes, and expand the template to match all other merged
     * subscribers.
     * subscribers.
     *
     *
@@ -811,7 +811,12 @@ public class NetworkTemplate implements Parcelable {
     * A, but also matches B.
     * A, but also matches B.
     */
     */
    public static NetworkTemplate normalize(NetworkTemplate template, List<String[]> mergedList) {
    public static NetworkTemplate normalize(NetworkTemplate template, List<String[]> mergedList) {
        if (!template.isMatchRuleMobile()) return template;
        // Now there are several types of network which uses SubscriberId to store network
        // information. For instances:
        // The TYPE_WIFI with subscriberId means that it is a merged carrier wifi network.
        // The TYPE_CARRIER means that the network associate to specific carrier network.

        if (template.mSubscriberId == null) return template;


        for (String[] merged : mergedList) {
        for (String[] merged : mergedList) {
            if (ArrayUtils.contains(merged, template.mSubscriberId)) {
            if (ArrayUtils.contains(merged, template.mSubscriberId)) {