Search in sources :

Example 1 with IsimUiccRecords

use of com.android.internal.telephony.uicc.IsimUiccRecords in project android_frameworks_opt_telephony by LineageOS.

the class GsmCdmaPhone method onUpdateIccAvailability.

// todo: check if ICC availability needs to be handled here. mSimRecords should not be needed
// now because APIs can be called directly on UiccProfile, and that should handle the requests
// correctly based on supported apps, voice RAT, etc.
@Override
protected void onUpdateIccAvailability() {
    if (mUiccController == null) {
        return;
    }
    UiccCardApplication newUiccApplication = null;
    // Update mIsimUiccRecords
    if (isPhoneTypeGsm() || isPhoneTypeCdmaLte()) {
        newUiccApplication = mUiccController.getUiccCardApplication(mPhoneId, UiccController.APP_FAM_IMS);
        IsimUiccRecords newIsimUiccRecords = null;
        if (newUiccApplication != null) {
            newIsimUiccRecords = (IsimUiccRecords) newUiccApplication.getIccRecords();
            if (DBG)
                logd("New ISIM application found");
        }
        mIsimUiccRecords = newIsimUiccRecords;
    }
    // Update mSimRecords
    if (mSimRecords != null) {
        mSimRecords.unregisterForRecordsLoaded(this);
    }
    if (isPhoneTypeCdmaLte() || isPhoneTypeCdma()) {
        newUiccApplication = mUiccController.getUiccCardApplication(mPhoneId, UiccController.APP_FAM_3GPP);
        SIMRecords newSimRecords = null;
        if (newUiccApplication != null) {
            newSimRecords = (SIMRecords) newUiccApplication.getIccRecords();
        }
        mSimRecords = newSimRecords;
        if (mSimRecords != null) {
            mSimRecords.registerForRecordsLoaded(this, EVENT_SIM_RECORDS_LOADED, null);
        }
    } else {
        mSimRecords = null;
    }
    // Update mIccRecords, mUiccApplication, mIccPhoneBookIntManager
    newUiccApplication = getUiccCardApplication();
    if (!isPhoneTypeGsm() && newUiccApplication == null) {
        logd("can't find 3GPP2 application; trying APP_FAM_3GPP");
        newUiccApplication = mUiccController.getUiccCardApplication(mPhoneId, UiccController.APP_FAM_3GPP);
    }
    UiccCardApplication app = mUiccApplication.get();
    if (app != newUiccApplication) {
        if (app != null) {
            if (DBG)
                logd("Removing stale icc objects.");
            if (mIccRecords.get() != null) {
                unregisterForIccRecordEvents();
                mIccPhoneBookIntManager.updateIccRecords(null);
            }
            mIccRecords.set(null);
            mUiccApplication.set(null);
        }
        if (newUiccApplication != null) {
            if (DBG) {
                logd("New Uicc application found. type = " + newUiccApplication.getType());
            }
            final IccRecords iccRecords = newUiccApplication.getIccRecords();
            mUiccApplication.set(newUiccApplication);
            mIccRecords.set(iccRecords);
            registerForIccRecordEvents();
            mIccPhoneBookIntManager.updateIccRecords(iccRecords);
            if (iccRecords != null) {
                final String simOperatorNumeric = iccRecords.getOperatorNumeric();
                if (DBG) {
                    logd("New simOperatorNumeric = " + simOperatorNumeric);
                }
                if (!TextUtils.isEmpty(simOperatorNumeric)) {
                    TelephonyManager.from(mContext).setSimOperatorNumericForPhone(mPhoneId, simOperatorNumeric);
                }
            }
            updateCurrentCarrierInProvider();
        }
    }
    reapplyUiccAppsEnablementIfNeeded(ENABLE_UICC_APPS_MAX_RETRIES);
}
Also used : IccRecords(com.android.internal.telephony.uicc.IccRecords) SIMRecords(com.android.internal.telephony.uicc.SIMRecords) IsimUiccRecords(com.android.internal.telephony.uicc.IsimUiccRecords) UiccCardApplication(com.android.internal.telephony.uicc.UiccCardApplication)

Aggregations

IccRecords (com.android.internal.telephony.uicc.IccRecords)1 IsimUiccRecords (com.android.internal.telephony.uicc.IsimUiccRecords)1 SIMRecords (com.android.internal.telephony.uicc.SIMRecords)1 UiccCardApplication (com.android.internal.telephony.uicc.UiccCardApplication)1