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

Commit 8c679a76 authored by Shuo Qian's avatar Shuo Qian Committed by android-build-merger
Browse files

Merge "Add test function for emergency number db update"

am: d3d8cd2f

Change-Id: I6004e55438b0f6dcdb7e759c76cf6a1be94b8836
parents c3695454 d3d8cd2f
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -1731,6 +1731,11 @@ public class GsmCdmaPhone extends Phone {
        return mCarrierResolver.getCarrierListVersion();
        return mCarrierResolver.getCarrierListVersion();
    }
    }


    @Override
    public int getEmergencyNumberDbVersion() {
        return getEmergencyNumberTracker().getEmergencyNumberDbVersion();
    }

    @Override
    @Override
    public void resetCarrierKeysForImsiEncryption() {
    public void resetCarrierKeysForImsiEncryption() {
        mCIM.resetCarrierKeysForImsiEncryption(mContext, mPhoneId);
        mCIM.resetCarrierKeysForImsiEncryption(mContext, mPhoneId);
+4 −0
Original line number Original line Diff line number Diff line
@@ -3430,6 +3430,10 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
        return TelephonyManager.UNKNOWN_CARRIER_ID_LIST_VERSION;
        return TelephonyManager.UNKNOWN_CARRIER_ID_LIST_VERSION;
    }
    }


    public int getEmergencyNumberDbVersion() {
        return TelephonyManager.INVALID_EMERGENCY_NUMBER_DB_VERSION;
    }

    public void resolveSubscriptionCarrierId(String simState) {
    public void resolveSubscriptionCarrierId(String simState) {
    }
    }


+47 −10
Original line number Original line Diff line number Diff line
@@ -75,7 +75,8 @@ public class EmergencyNumberTracker extends Handler {
    private static final String EMERGENCY_NUMBER_DB_OTA_FILE_NAME = "emergency_number_db";
    private static final String EMERGENCY_NUMBER_DB_OTA_FILE_NAME = "emergency_number_db";
    private static final String EMERGENCY_NUMBER_DB_OTA_FILE_PATH =
    private static final String EMERGENCY_NUMBER_DB_OTA_FILE_PATH =
            "misc/emergencynumberdb/" + EMERGENCY_NUMBER_DB_OTA_FILE_NAME;
            "misc/emergencynumberdb/" + EMERGENCY_NUMBER_DB_OTA_FILE_NAME;

    private File mEmergencyNumberDbOtaFilePath = new File(Environment.getDataDirectory(),
            EMERGENCY_NUMBER_DB_OTA_FILE_PATH);


    /** @hide */
    /** @hide */
    public static boolean DBG = false;
    public static boolean DBG = false;
@@ -124,6 +125,8 @@ public class EmergencyNumberTracker extends Handler {
    private static final int EVENT_UPDATE_EMERGENCY_NUMBER_PREFIX = 4;
    private static final int EVENT_UPDATE_EMERGENCY_NUMBER_PREFIX = 4;
    /** Event indicating the update for the OTA emergency number database. */
    /** Event indicating the update for the OTA emergency number database. */
    private static final int EVENT_UPDATE_OTA_EMERGENCY_NUMBER_DB = 5;
    private static final int EVENT_UPDATE_OTA_EMERGENCY_NUMBER_DB = 5;
    /** Event indicating the override for the test OTA emergency number database. */
    private static final int EVENT_OVERRIDE_TEST_OTA_EMERGENCY_NUMBER_DB_FILE_PATH = 6;


    private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
    private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
        @Override
        @Override
@@ -153,11 +156,6 @@ public class EmergencyNumberTracker extends Handler {
                    updateEmergencyCountryIsoAllPhones(countryIso);
                    updateEmergencyCountryIsoAllPhones(countryIso);
                }
                }
                return;
                return;
            } else if (intent.getAction().equals(
                    TelephonyManager.ACTION_OTA_EMERGENCY_NUMBER_DB_INSTALLED)) {
                logd("ACTION_OTA_EMERGENCY_NUMBER_DB_INSTALLED: triggered");
                updateOtaEmergencyNumberDatabase();
                return;
            }
            }
        }
        }
    };
    };
@@ -183,8 +181,6 @@ public class EmergencyNumberTracker extends Handler {
                    CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
                    CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
            // Receive Telephony Network Country Changes
            // Receive Telephony Network Country Changes
            filter.addAction(TelephonyManager.ACTION_NETWORK_COUNTRY_CHANGED);
            filter.addAction(TelephonyManager.ACTION_NETWORK_COUNTRY_CHANGED);
            // Receive Emergency Number OTA Update Changes
            filter.addAction(TelephonyManager.ACTION_OTA_EMERGENCY_NUMBER_DB_INSTALLED);


            mPhone.getContext().registerReceiver(mIntentReceiver, filter);
            mPhone.getContext().registerReceiver(mIntentReceiver, filter);
        } else {
        } else {
@@ -244,6 +240,14 @@ public class EmergencyNumberTracker extends Handler {
            case EVENT_UPDATE_OTA_EMERGENCY_NUMBER_DB:
            case EVENT_UPDATE_OTA_EMERGENCY_NUMBER_DB:
                updateOtaEmergencyNumberListDatabaseAndNotify();
                updateOtaEmergencyNumberListDatabaseAndNotify();
                break;
                break;
            case EVENT_OVERRIDE_TEST_OTA_EMERGENCY_NUMBER_DB_FILE_PATH:
                if (msg.obj == null) {
                    loge("EVENT_OVERRIDE_TEST_OTA_EMERGENCY_NUMBER_DB_FILE_PATH:"
                            + " Result from otaFilePath is null.");
                } else {
                    overrideTestOtaEmergencyNumberDbFilePath((String) msg.obj);
                }
                break;
        }
        }
    }
    }


@@ -341,6 +345,16 @@ public class EmergencyNumberTracker extends Handler {
        this.obtainMessage(EVENT_UPDATE_OTA_EMERGENCY_NUMBER_DB).sendToTarget();
        this.obtainMessage(EVENT_UPDATE_OTA_EMERGENCY_NUMBER_DB).sendToTarget();
    }
    }


    /**
     * Override the test OTA Emergency Number database file path.
     *
     * @hide
     */
    public void updateTestOtaEmergencyNumberDbFilePath(String otaFilePath) {
        this.obtainMessage(
                EVENT_OVERRIDE_TEST_OTA_EMERGENCY_NUMBER_DB_FILE_PATH, otaFilePath).sendToTarget();
    }

    private EmergencyNumber convertEmergencyNumberFromEccInfo(EccInfo eccInfo, String countryIso) {
    private EmergencyNumber convertEmergencyNumberFromEccInfo(EccInfo eccInfo, String countryIso) {
        String phoneNumber = eccInfo.phoneNumber.trim();
        String phoneNumber = eccInfo.phoneNumber.trim();
        if (phoneNumber.isEmpty()) {
        if (phoneNumber.isEmpty()) {
@@ -441,8 +455,7 @@ public class EmergencyNumberTracker extends Handler {
        List<EmergencyNumber> updatedOtaEmergencyNumberList = new ArrayList<>();
        List<EmergencyNumber> updatedOtaEmergencyNumberList = new ArrayList<>();
        try {
        try {
            inputStream = new BufferedInputStream(
            inputStream = new BufferedInputStream(
                    new FileInputStream(new File(Environment.getDataDirectory(),
                    new FileInputStream(mEmergencyNumberDbOtaFilePath));
                            EMERGENCY_NUMBER_DB_OTA_FILE_PATH)));
            allEccMessages = ProtobufEccData.AllInfo.parseFrom(readInputStreamToByteArray(
            allEccMessages = ProtobufEccData.AllInfo.parseFrom(readInputStreamToByteArray(
                    new GZIPInputStream(inputStream)));
                    new GZIPInputStream(inputStream)));
            logd(mCountryIso + " ota emergency database is loaded. Ver: " + otaDatabaseVersion);
            logd(mCountryIso + " ota emergency database is loaded. Ver: " + otaDatabaseVersion);
@@ -539,6 +552,26 @@ public class EmergencyNumberTracker extends Handler {
        notifyEmergencyNumberList();
        notifyEmergencyNumberList();
    }
    }


    private void overrideTestOtaEmergencyNumberDbFilePath(String otaFilePath) {
        logd("overrideTestOtaEmergencyNumberDbFilePath:" + otaFilePath);
        if (otaFilePath.equals("RESET")) {
            mEmergencyNumberDbOtaFilePath = new File(Environment.getDataDirectory(),
                    EMERGENCY_NUMBER_DB_OTA_FILE_PATH);
            return;
        }
        String[] otaFilePathParts = otaFilePath.split("@");
        if (otaFilePathParts.length != 2) {
            loge("overrideTestOtaEmergencyNumberDbFilePath: otaFilePath length error");
            return;
        }
        if (otaFilePathParts[0].equals("sdcard")) {
            mEmergencyNumberDbOtaFilePath = new File(
                    Environment.getExternalStorageDirectory(), otaFilePathParts[1]);
        } else {
            loge("overrideTestOtaEmergencyNumberDbFilePath: otaFilePath prefix error");
        }
    }

    private void updateOtaEmergencyNumberListDatabaseAndNotify() {
    private void updateOtaEmergencyNumberListDatabaseAndNotify() {
        logd("updateOtaEmergencyNumberListDatabaseAndNotify():"
        logd("updateOtaEmergencyNumberListDatabaseAndNotify():"
                + " receiving Emegency Number database OTA update");
                + " receiving Emegency Number database OTA update");
@@ -724,6 +757,10 @@ public class EmergencyNumberTracker extends Handler {
        return mCountryIso;
        return mCountryIso;
    }
    }


    public int getEmergencyNumberDbVersion() {
        return mCurrentDatabaseVersion;
    }

    private synchronized void updateEmergencyCountryIso(String countryIso) {
    private synchronized void updateEmergencyCountryIso(String countryIso) {
        mCountryIso = countryIso;
        mCountryIso = countryIso;
    }
    }
+5 −0
Original line number Original line Diff line number Diff line
@@ -259,6 +259,11 @@ public class ImsPhone extends ImsPhoneBase {
        return mCurrentSubscriberUris;
        return mCurrentSubscriberUris;
    }
    }


    @Override
    public int getEmergencyNumberDbVersion() {
        return getEmergencyNumberTracker().getEmergencyNumberDbVersion();
    }

    @Override
    @Override
    public EmergencyNumberTracker getEmergencyNumberTracker() {
    public EmergencyNumberTracker getEmergencyNumberTracker() {
        return mDefaultPhone.getEmergencyNumberTracker();
        return mDefaultPhone.getEmergencyNumberTracker();