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

Commit 67d763ec authored by Fan Zhang's avatar Fan Zhang Committed by Android (Google) Code Review
Browse files

Merge "Use platform API to get preferred emergency numbers" into sc-dev

parents b20bc562 6069d02b
Loading
Loading
Loading
Loading
+2 −27
Original line number Diff line number Diff line
@@ -165,9 +165,8 @@ public class EmergencyNumberUtils {
    }

    private List<EmergencyNumber> getPromotedEmergencyNumbers(int categories) {
        // TODO(b/171542607): Use platform API when its bug is fixed.
        Map<Integer, List<EmergencyNumber>> allLists = filterEmergencyNumbersByCategories(
                mTelephonyManager.getEmergencyNumberList(), categories);
        Map<Integer, List<EmergencyNumber>> allLists = mTelephonyManager.getEmergencyNumberList(
                categories);
        if (allLists == null || allLists.isEmpty()) {
            Log.w(TAG, "Unable to retrieve emergency number lists!");
            return new ArrayList<>();
@@ -212,28 +211,4 @@ public class EmergencyNumberUtils {
        }
        return promotedEmergencyNumberLists.get(SubscriptionManager.getDefaultSubscriptionId());
    }

    /**
     * Filter emergency numbers with categories.
     */
    private Map<Integer, List<EmergencyNumber>> filterEmergencyNumbersByCategories(
            Map<Integer, List<EmergencyNumber>> emergencyNumberList, int categories) {
        Map<Integer, List<EmergencyNumber>> filteredMap = new ArrayMap<>();
        if (emergencyNumberList == null) {
            return filteredMap;
        }
        for (Integer subscriptionId : emergencyNumberList.keySet()) {
            List<EmergencyNumber> allNumbersForSub = emergencyNumberList.get(
                    subscriptionId);
            List<EmergencyNumber> numbersForCategoriesPerSub = new ArrayList<>();
            for (EmergencyNumber number : allNumbersForSub) {
                if (number.isInEmergencyServiceCategories(categories)) {
                    numbersForCategoriesPerSub.add(number);
                }
            }
            filteredMap.put(
                    subscriptionId, numbersForCategoriesPerSub);
        }
        return filteredMap;
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import static com.android.settingslib.emergencynumber.EmergencyNumberUtils.EMERG
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.anyString;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.mock;
@@ -126,7 +127,7 @@ public class EmergencyNumberUtilsTest {
        List<EmergencyNumber> numbersForSubId = new ArrayList<>();
        numbersForSubId.add(emergencyNumber);
        numbers.put(subId, numbersForSubId);
        when(mTelephonyManager.getEmergencyNumberList()).thenReturn(numbers);
        when(mTelephonyManager.getEmergencyNumberList(anyInt())).thenReturn(numbers);
        when(emergencyNumber.getNumber()).thenReturn(TELEPHONY_EMERGENCY_NUMBER);
    }
}