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

Commit 6069d02b authored by Fan Zhang's avatar Fan Zhang
Browse files

Use platform API to get preferred emergency numbers

Bug: 171542607
Test: manual
Change-Id: Ib787d6968b9352a95165661f0553b249d7a8c8d7
parent 9d274e7b
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);
    }
}