Loading src/java/com/android/internal/telephony/CarrierKeyDownloadManager.java +17 −13 Original line number Diff line number Diff line Loading @@ -85,8 +85,6 @@ public class CarrierKeyDownloadManager extends Handler { // This will define the end date of the window. private static final int END_RENEWAL_WINDOW_DAYS = 7; /* Intent for downloading the public key */ private static final String INTENT_KEY_RENEWAL_ALARM_PREFIX = "com.android.internal.telephony.carrier_key_download_alarm"; Loading Loading @@ -125,7 +123,7 @@ public class CarrierKeyDownloadManager extends Handler { IntentFilter filter = new IntentFilter(); filter.addAction(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED); filter.addAction(DownloadManager.ACTION_DOWNLOAD_COMPLETE); filter.addAction(INTENT_KEY_RENEWAL_ALARM_PREFIX + mPhone.getPhoneId()); filter.addAction(INTENT_KEY_RENEWAL_ALARM_PREFIX); filter.addAction(TelephonyIntents.ACTION_CARRIER_CERTIFICATE_DOWNLOAD); mContext.registerReceiver(mBroadcastReceiver, filter, null, phone); mDownloadManager = (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE); Loading @@ -135,18 +133,22 @@ public class CarrierKeyDownloadManager extends Handler { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); int slotId = mPhone.getPhoneId(); if (action.equals(INTENT_KEY_RENEWAL_ALARM_PREFIX + slotId)) { int slotIndex = SubscriptionManager.getSlotIndex(mPhone.getSubId()); int phoneId = mPhone.getPhoneId(); if (action.equals(INTENT_KEY_RENEWAL_ALARM_PREFIX)) { int slotIndexExtra = intent.getIntExtra(SubscriptionManager.EXTRA_SLOT_INDEX, -1); if (slotIndexExtra == slotIndex) { Log.d(LOG_TAG, "Handling key renewal alarm: " + action); sendEmptyMessage(EVENT_ALARM_OR_CONFIG_CHANGE); } } else if (action.equals(TelephonyIntents.ACTION_CARRIER_CERTIFICATE_DOWNLOAD)) { if (slotId == intent.getIntExtra(PhoneConstants.PHONE_KEY, if (phoneId == intent.getIntExtra(PhoneConstants.PHONE_KEY, SubscriptionManager.INVALID_SIM_SLOT_INDEX)) { Log.d(LOG_TAG, "Handling reset intent: " + action); sendEmptyMessage(EVENT_ALARM_OR_CONFIG_CHANGE); } } else if (action.equals(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED)) { if (slotId == intent.getIntExtra(PhoneConstants.PHONE_KEY, if (phoneId == intent.getIntExtra(PhoneConstants.PHONE_KEY, SubscriptionManager.INVALID_SIM_SLOT_INDEX)) { Log.d(LOG_TAG, "Carrier Config changed: " + action); sendEmptyMessage(EVENT_ALARM_OR_CONFIG_CHANGE); Loading Loading @@ -210,8 +212,9 @@ public class CarrierKeyDownloadManager extends Handler { private void cleanupRenewalAlarms() { Log.d(LOG_TAG, "Cleaning up existing renewal alarms"); int slotId = mPhone.getPhoneId(); Intent intent = new Intent(INTENT_KEY_RENEWAL_ALARM_PREFIX + slotId); int slotIndex = SubscriptionManager.getSlotIndex(mPhone.getSubId()); Intent intent = new Intent(INTENT_KEY_RENEWAL_ALARM_PREFIX); intent.putExtra(SubscriptionManager.EXTRA_SLOT_INDEX, slotIndex); PendingIntent carrierKeyDownloadIntent = PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); AlarmManager alarmManager = Loading Loading @@ -266,12 +269,13 @@ public class CarrierKeyDownloadManager extends Handler { @VisibleForTesting public void resetRenewalAlarm() { cleanupRenewalAlarms(); int slotId = mPhone.getPhoneId(); int slotIndex = SubscriptionManager.getSlotIndex(mPhone.getSubId()); long minExpirationDate = getExpirationDate(); Log.d(LOG_TAG, "minExpirationDate: " + new Date(minExpirationDate)); final AlarmManager alarmManager = (AlarmManager) mContext.getSystemService( Context.ALARM_SERVICE); Intent intent = new Intent(INTENT_KEY_RENEWAL_ALARM_PREFIX + slotId); Intent intent = new Intent(INTENT_KEY_RENEWAL_ALARM_PREFIX); intent.putExtra(SubscriptionManager.EXTRA_SLOT_INDEX, slotIndex); PendingIntent carrierKeyDownloadIntent = PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); alarmManager.set(AlarmManager.RTC_WAKEUP, minExpirationDate, carrierKeyDownloadIntent); Loading tests/telephonytests/src/com/android/internal/telephony/CarrierKeyDownloadMgrTest.java +6 −4 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.content.SharedPreferences; import android.os.PersistableBundle; import android.telephony.CarrierConfigManager; import android.telephony.ImsiEncryptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.test.suitebuilder.annotation.SmallTest; import android.testing.AndroidTestingRunner; Loading Loading @@ -319,17 +320,18 @@ public class CarrierKeyDownloadMgrTest extends TelephonyTest { public void testAlarmRenewal() { CarrierConfigManager carrierConfigManager = (CarrierConfigManager) mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE); int slotId = mPhone.getPhoneId(); PersistableBundle bundle = carrierConfigManager.getConfigForSubId(slotId); int slotIndex = SubscriptionManager.getSlotIndex(mPhone.getSubId()); PersistableBundle bundle = carrierConfigManager.getConfigForSubId(slotIndex); bundle.putInt(CarrierConfigManager.IMSI_KEY_AVAILABILITY_INT, 3); bundle.putString(CarrierConfigManager.IMSI_KEY_DOWNLOAD_URL_STRING, mURL); when(mTelephonyManager.getSimOperator(anyInt())).thenReturn("310260"); Intent mIntent = new Intent("com.android.internal.telephony.carrier_key_download_alarm" + slotId); Intent mIntent = new Intent("com.android.internal.telephony.carrier_key_download_alarm"); mIntent.putExtra(SubscriptionManager.EXTRA_SLOT_INDEX, slotIndex); mContext.sendBroadcast(mIntent); processAllMessages(); SharedPreferences preferences = getDefaultSharedPreferences(mContext); int slotId = mPhone.getPhoneId(); String mccMnc = preferences.getString("CARRIER_KEY_DM_MCC_MNC" + slotId, null); assertTrue(mccMnc.equals("310:260")); } Loading Loading
src/java/com/android/internal/telephony/CarrierKeyDownloadManager.java +17 −13 Original line number Diff line number Diff line Loading @@ -85,8 +85,6 @@ public class CarrierKeyDownloadManager extends Handler { // This will define the end date of the window. private static final int END_RENEWAL_WINDOW_DAYS = 7; /* Intent for downloading the public key */ private static final String INTENT_KEY_RENEWAL_ALARM_PREFIX = "com.android.internal.telephony.carrier_key_download_alarm"; Loading Loading @@ -125,7 +123,7 @@ public class CarrierKeyDownloadManager extends Handler { IntentFilter filter = new IntentFilter(); filter.addAction(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED); filter.addAction(DownloadManager.ACTION_DOWNLOAD_COMPLETE); filter.addAction(INTENT_KEY_RENEWAL_ALARM_PREFIX + mPhone.getPhoneId()); filter.addAction(INTENT_KEY_RENEWAL_ALARM_PREFIX); filter.addAction(TelephonyIntents.ACTION_CARRIER_CERTIFICATE_DOWNLOAD); mContext.registerReceiver(mBroadcastReceiver, filter, null, phone); mDownloadManager = (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE); Loading @@ -135,18 +133,22 @@ public class CarrierKeyDownloadManager extends Handler { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); int slotId = mPhone.getPhoneId(); if (action.equals(INTENT_KEY_RENEWAL_ALARM_PREFIX + slotId)) { int slotIndex = SubscriptionManager.getSlotIndex(mPhone.getSubId()); int phoneId = mPhone.getPhoneId(); if (action.equals(INTENT_KEY_RENEWAL_ALARM_PREFIX)) { int slotIndexExtra = intent.getIntExtra(SubscriptionManager.EXTRA_SLOT_INDEX, -1); if (slotIndexExtra == slotIndex) { Log.d(LOG_TAG, "Handling key renewal alarm: " + action); sendEmptyMessage(EVENT_ALARM_OR_CONFIG_CHANGE); } } else if (action.equals(TelephonyIntents.ACTION_CARRIER_CERTIFICATE_DOWNLOAD)) { if (slotId == intent.getIntExtra(PhoneConstants.PHONE_KEY, if (phoneId == intent.getIntExtra(PhoneConstants.PHONE_KEY, SubscriptionManager.INVALID_SIM_SLOT_INDEX)) { Log.d(LOG_TAG, "Handling reset intent: " + action); sendEmptyMessage(EVENT_ALARM_OR_CONFIG_CHANGE); } } else if (action.equals(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED)) { if (slotId == intent.getIntExtra(PhoneConstants.PHONE_KEY, if (phoneId == intent.getIntExtra(PhoneConstants.PHONE_KEY, SubscriptionManager.INVALID_SIM_SLOT_INDEX)) { Log.d(LOG_TAG, "Carrier Config changed: " + action); sendEmptyMessage(EVENT_ALARM_OR_CONFIG_CHANGE); Loading Loading @@ -210,8 +212,9 @@ public class CarrierKeyDownloadManager extends Handler { private void cleanupRenewalAlarms() { Log.d(LOG_TAG, "Cleaning up existing renewal alarms"); int slotId = mPhone.getPhoneId(); Intent intent = new Intent(INTENT_KEY_RENEWAL_ALARM_PREFIX + slotId); int slotIndex = SubscriptionManager.getSlotIndex(mPhone.getSubId()); Intent intent = new Intent(INTENT_KEY_RENEWAL_ALARM_PREFIX); intent.putExtra(SubscriptionManager.EXTRA_SLOT_INDEX, slotIndex); PendingIntent carrierKeyDownloadIntent = PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); AlarmManager alarmManager = Loading Loading @@ -266,12 +269,13 @@ public class CarrierKeyDownloadManager extends Handler { @VisibleForTesting public void resetRenewalAlarm() { cleanupRenewalAlarms(); int slotId = mPhone.getPhoneId(); int slotIndex = SubscriptionManager.getSlotIndex(mPhone.getSubId()); long minExpirationDate = getExpirationDate(); Log.d(LOG_TAG, "minExpirationDate: " + new Date(minExpirationDate)); final AlarmManager alarmManager = (AlarmManager) mContext.getSystemService( Context.ALARM_SERVICE); Intent intent = new Intent(INTENT_KEY_RENEWAL_ALARM_PREFIX + slotId); Intent intent = new Intent(INTENT_KEY_RENEWAL_ALARM_PREFIX); intent.putExtra(SubscriptionManager.EXTRA_SLOT_INDEX, slotIndex); PendingIntent carrierKeyDownloadIntent = PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); alarmManager.set(AlarmManager.RTC_WAKEUP, minExpirationDate, carrierKeyDownloadIntent); Loading
tests/telephonytests/src/com/android/internal/telephony/CarrierKeyDownloadMgrTest.java +6 −4 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.content.SharedPreferences; import android.os.PersistableBundle; import android.telephony.CarrierConfigManager; import android.telephony.ImsiEncryptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.test.suitebuilder.annotation.SmallTest; import android.testing.AndroidTestingRunner; Loading Loading @@ -319,17 +320,18 @@ public class CarrierKeyDownloadMgrTest extends TelephonyTest { public void testAlarmRenewal() { CarrierConfigManager carrierConfigManager = (CarrierConfigManager) mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE); int slotId = mPhone.getPhoneId(); PersistableBundle bundle = carrierConfigManager.getConfigForSubId(slotId); int slotIndex = SubscriptionManager.getSlotIndex(mPhone.getSubId()); PersistableBundle bundle = carrierConfigManager.getConfigForSubId(slotIndex); bundle.putInt(CarrierConfigManager.IMSI_KEY_AVAILABILITY_INT, 3); bundle.putString(CarrierConfigManager.IMSI_KEY_DOWNLOAD_URL_STRING, mURL); when(mTelephonyManager.getSimOperator(anyInt())).thenReturn("310260"); Intent mIntent = new Intent("com.android.internal.telephony.carrier_key_download_alarm" + slotId); Intent mIntent = new Intent("com.android.internal.telephony.carrier_key_download_alarm"); mIntent.putExtra(SubscriptionManager.EXTRA_SLOT_INDEX, slotIndex); mContext.sendBroadcast(mIntent); processAllMessages(); SharedPreferences preferences = getDefaultSharedPreferences(mContext); int slotId = mPhone.getPhoneId(); String mccMnc = preferences.getString("CARRIER_KEY_DM_MCC_MNC" + slotId, null); assertTrue(mccMnc.equals("310:260")); } Loading