Loading src/java/com/android/internal/telephony/IccPhoneBookInterfaceManager.java +11 −4 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ public abstract class IccPhoneBookInterfaceManager { protected final Object mLock = new Object(); protected int mRecordSize[]; protected boolean mSuccess; private boolean mForceAdnUsage = false; protected List<AdnRecord> mRecords; Loading Loading @@ -125,6 +126,7 @@ public abstract class IccPhoneBookInterfaceManager { if (mRecords != null) { mRecords.clear(); } mForceAdnUsage = false; } public void updateIccRecords(IccRecords iccRecords) { Loading Loading @@ -314,13 +316,13 @@ public abstract class IccPhoneBookInterfaceManager { "Requires android.permission.READ_CONTACTS permission"); } efid = updateEfForIccType(efid); if (DBG) logd("getAdnRecordsInEF: efid=" + efid); synchronized(mLock) { checkThread(); AtomicBoolean status = new AtomicBoolean(false); Message response = mBaseHandler.obtainMessage(EVENT_LOAD_DONE, status); efid = updateEfForIccType(efid); if (DBG) logd("getAdnRecordsInEF: efid=" + efid); if (mAdnCache != null) { mAdnCache.requestLoadAllAdnLike(efid, mAdnCache.extensionEfForEf(efid), null, response); Loading @@ -328,6 +330,11 @@ public abstract class IccPhoneBookInterfaceManager { } else { loge("Failure while trying to load from SIM due to uninitialised adncache"); } if (mRecords == null && efid == IccConstants.EF_PBR && !mAdnCache.isPbrPresent()) { logd("getAdnRecordsInEF: Load from EF_ADN as pbr is not present"); mForceAdnUsage = true; return getAdnRecordsInEf(IccConstants.EF_ADN); } } return mRecords; } Loading Loading @@ -369,7 +376,7 @@ public abstract class IccPhoneBookInterfaceManager { private int updateEfForIccType(int efid) { // Check if we are trying to read ADN records if (efid == IccConstants.EF_ADN) { if (efid == IccConstants.EF_ADN && !mForceAdnUsage) { if (mPhone.getCurrentUiccAppType() == AppType.APPTYPE_USIM || mPhone.getCurrentUiccAppType() == AppType.APPTYPE_CSIM) { return IccConstants.EF_PBR; Loading src/java/com/android/internal/telephony/gsm/UsimPhoneBookManager.java +6 −0 Original line number Diff line number Diff line Loading @@ -149,6 +149,10 @@ public class UsimPhoneBookManager extends Handler implements IccConstants { mRefreshCache = false; } public boolean isPbrFilePresent() { return mIsPbrPresent; } public ArrayList<AdnRecord> loadEfFilesFromUsim() { synchronized (mLock) { if (!mPhoneBookRecords.isEmpty()) { Loading Loading @@ -947,6 +951,8 @@ public class UsimPhoneBookManager extends Handler implements IccConstants { ar = (AsyncResult) msg.obj; if (ar.exception == null) { createPbrFile((ArrayList<byte[]>) ar.result); } else { mIsPbrPresent = false; } synchronized (mLock) { mLock.notify(); Loading src/java/com/android/internal/telephony/uicc/AdnRecordCache.java +4 −0 Original line number Diff line number Diff line Loading @@ -355,6 +355,10 @@ public final class AdnRecordCache extends Handler implements IccConstants { useLocalPb ? mUsimLocalPhoneBookManager : mUsimGlobalPhoneBookManager; } public boolean isPbrPresent() { return (mUsimGlobalPhoneBookManager.isPbrFilePresent() || mUsimLocalPhoneBookManager.isPbrFilePresent()); } /** * Responds with exception (in response) if efid is not a known ADN-like Loading Loading
src/java/com/android/internal/telephony/IccPhoneBookInterfaceManager.java +11 −4 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ public abstract class IccPhoneBookInterfaceManager { protected final Object mLock = new Object(); protected int mRecordSize[]; protected boolean mSuccess; private boolean mForceAdnUsage = false; protected List<AdnRecord> mRecords; Loading Loading @@ -125,6 +126,7 @@ public abstract class IccPhoneBookInterfaceManager { if (mRecords != null) { mRecords.clear(); } mForceAdnUsage = false; } public void updateIccRecords(IccRecords iccRecords) { Loading Loading @@ -314,13 +316,13 @@ public abstract class IccPhoneBookInterfaceManager { "Requires android.permission.READ_CONTACTS permission"); } efid = updateEfForIccType(efid); if (DBG) logd("getAdnRecordsInEF: efid=" + efid); synchronized(mLock) { checkThread(); AtomicBoolean status = new AtomicBoolean(false); Message response = mBaseHandler.obtainMessage(EVENT_LOAD_DONE, status); efid = updateEfForIccType(efid); if (DBG) logd("getAdnRecordsInEF: efid=" + efid); if (mAdnCache != null) { mAdnCache.requestLoadAllAdnLike(efid, mAdnCache.extensionEfForEf(efid), null, response); Loading @@ -328,6 +330,11 @@ public abstract class IccPhoneBookInterfaceManager { } else { loge("Failure while trying to load from SIM due to uninitialised adncache"); } if (mRecords == null && efid == IccConstants.EF_PBR && !mAdnCache.isPbrPresent()) { logd("getAdnRecordsInEF: Load from EF_ADN as pbr is not present"); mForceAdnUsage = true; return getAdnRecordsInEf(IccConstants.EF_ADN); } } return mRecords; } Loading Loading @@ -369,7 +376,7 @@ public abstract class IccPhoneBookInterfaceManager { private int updateEfForIccType(int efid) { // Check if we are trying to read ADN records if (efid == IccConstants.EF_ADN) { if (efid == IccConstants.EF_ADN && !mForceAdnUsage) { if (mPhone.getCurrentUiccAppType() == AppType.APPTYPE_USIM || mPhone.getCurrentUiccAppType() == AppType.APPTYPE_CSIM) { return IccConstants.EF_PBR; Loading
src/java/com/android/internal/telephony/gsm/UsimPhoneBookManager.java +6 −0 Original line number Diff line number Diff line Loading @@ -149,6 +149,10 @@ public class UsimPhoneBookManager extends Handler implements IccConstants { mRefreshCache = false; } public boolean isPbrFilePresent() { return mIsPbrPresent; } public ArrayList<AdnRecord> loadEfFilesFromUsim() { synchronized (mLock) { if (!mPhoneBookRecords.isEmpty()) { Loading Loading @@ -947,6 +951,8 @@ public class UsimPhoneBookManager extends Handler implements IccConstants { ar = (AsyncResult) msg.obj; if (ar.exception == null) { createPbrFile((ArrayList<byte[]>) ar.result); } else { mIsPbrPresent = false; } synchronized (mLock) { mLock.notify(); Loading
src/java/com/android/internal/telephony/uicc/AdnRecordCache.java +4 −0 Original line number Diff line number Diff line Loading @@ -355,6 +355,10 @@ public final class AdnRecordCache extends Handler implements IccConstants { useLocalPb ? mUsimLocalPhoneBookManager : mUsimGlobalPhoneBookManager; } public boolean isPbrPresent() { return (mUsimGlobalPhoneBookManager.isPbrFilePresent() || mUsimLocalPhoneBookManager.isPbrFilePresent()); } /** * Responds with exception (in response) if efid is not a known ADN-like Loading