/** * Loads the AdnRecords in efid and returns them as a List of AdnRecords * * <p>throws SecurityException if no READ_CONTACTS permission * * @param efid the EF id of a ADN-like ICC * @return List of AdnRecord */ public List<AdnRecord> getAdnRecordsInEf(int efid) { if (phone.getContext().checkCallingOrSelfPermission(android.Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) { throw new SecurityException("Requires android.permission.READ_CONTACTS permission"); } efid = updateEfForIccType(efid); if (DBG) logd("getAdnRecordsInEF: efid=" + efid); synchronized (mLock) { checkThread(); Message response = mBaseHandler.obtainMessage(EVENT_LOAD_DONE); adnCache.requestLoadAllAdnLike(efid, adnCache.extensionEfForEf(efid), response); try { mLock.wait(); } catch (InterruptedException e) { logd("interrupted while trying to load from the SIM"); } } return records; }