Loading flags/messaging.aconfig +8 −1 Original line number Diff line number Diff line Loading @@ -6,3 +6,10 @@ flag { description: "Previously, the DB allows insertion of a random sub Id, but doesn't allow query it. This change rejects such interaction." bug: "294125411" } flag { name: "sms_domain_selection_enabled" namespace: "telephony" description: "This flag controls AP domain selection support for normal/emergency SMS." bug: "262804071" } src/java/com/android/internal/telephony/CarrierKeyDownloadManager.java +20 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.net.Uri; import android.os.Handler; import android.os.Message; import android.os.PersistableBundle; import android.os.UserManager; import android.telephony.CarrierConfigManager; import android.telephony.ImsiEncryptionInfo; import android.telephony.SubscriptionManager; Loading Loading @@ -108,6 +109,7 @@ public class CarrierKeyDownloadManager extends Handler { private boolean mAllowedOverMeteredNetwork = false; private boolean mDeleteOldKeyAfterDownload = false; private TelephonyManager mTelephonyManager; private UserManager mUserManager; @VisibleForTesting public String mMccMncForDownload; Loading @@ -125,18 +127,35 @@ public class CarrierKeyDownloadManager extends Handler { mDownloadManager = (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE); mTelephonyManager = mContext.getSystemService(TelephonyManager.class) .createForSubscriptionId(mPhone.getSubId()); mUserManager = mContext.getSystemService(UserManager.class); CarrierConfigManager carrierConfigManager = mContext.getSystemService( CarrierConfigManager.class); // Callback which directly handle config change should be executed on handler thread carrierConfigManager.registerCarrierConfigChangeListener(this::post, (slotIndex, subId, carrierId, specificCarrierId) -> { if (slotIndex == mPhone.getPhoneId()) { boolean isUserUnlocked = mUserManager.isUserUnlocked(); if (isUserUnlocked && slotIndex == mPhone.getPhoneId()) { Log.d(LOG_TAG, "Carrier Config changed: slotIndex=" + slotIndex); handleAlarmOrConfigChange(); } else { Log.d(LOG_TAG, "User is locked"); mContext.registerReceiver(mUserUnlockedReceiver, new IntentFilter( Intent.ACTION_USER_UNLOCKED)); } }); } private final BroadcastReceiver mUserUnlockedReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (Intent.ACTION_USER_UNLOCKED.equals(intent.getAction())) { Log.d(LOG_TAG, "Received UserUnlockedReceiver"); handleAlarmOrConfigChange(); } } }; private final BroadcastReceiver mDownloadReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Loading src/java/com/android/internal/telephony/GsmCdmaPhone.java +1 −1 Original line number Diff line number Diff line Loading @@ -463,7 +463,7 @@ public class GsmCdmaPhone extends Phone { mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, LOG_TAG); mIccSmsInterfaceManager = mTelephonyComponentFactory .inject(IccSmsInterfaceManager.class.getName()) .makeIccSmsInterfaceManager(this); .makeIccSmsInterfaceManager(this, mFeatureFlags); mCi.registerForAvailable(this, EVENT_RADIO_AVAILABLE, null); mCi.registerForOffOrNotAvailable(this, EVENT_RADIO_OFF_OR_NOT_AVAILABLE, null); Loading src/java/com/android/internal/telephony/IccSmsInterfaceManager.java +4 −2 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static android.telephony.SmsManager.STATUS_ON_ICC_READ; import static android.telephony.SmsManager.STATUS_ON_ICC_UNREAD; import android.Manifest; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.app.AppOpsManager; import android.app.PendingIntent; Loading @@ -47,6 +48,7 @@ import android.util.Log; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo; import com.android.internal.telephony.flags.FeatureFlags; import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo; import com.android.internal.telephony.uicc.IccConstants; import com.android.internal.telephony.uicc.IccFileHandler; Loading Loading @@ -155,11 +157,11 @@ public class IccSmsInterfaceManager { } }; protected IccSmsInterfaceManager(Phone phone) { protected IccSmsInterfaceManager(Phone phone, @NonNull FeatureFlags featureFlags) { this(phone, phone.getContext(), (AppOpsManager) phone.getContext().getSystemService(Context.APP_OPS_SERVICE), new SmsDispatchersController( phone, phone.mSmsStorageMonitor, phone.mSmsUsageMonitor), phone, phone.mSmsStorageMonitor, phone.mSmsUsageMonitor, featureFlags), new SmsPermissions(phone, phone.getContext(), (AppOpsManager) phone.getContext().getSystemService( Context.APP_OPS_SERVICE))); Loading src/java/com/android/internal/telephony/ImsSmsDispatcher.java +4 −0 Original line number Diff line number Diff line Loading @@ -202,10 +202,13 @@ public class ImsSmsDispatcher extends SMSDispatcher { tracker.onSent(mContext); mTrackers.remove(token); mPhone.notifySmsSent(tracker.mDestAddress); mSmsDispatchersController.notifySmsSentToEmergencyStateTracker( tracker.mDestAddress, tracker.mMessageId); break; case ImsSmsImplBase.SEND_STATUS_ERROR: tracker.onFailed(mContext, reason, networkReasonCode); mTrackers.remove(token); notifySmsSentFailedToEmergencyStateTracker(tracker); break; case ImsSmsImplBase.SEND_STATUS_ERROR_RETRY: int maxRetryCountOverIms = getMaxRetryCountOverIms(); Loading @@ -224,6 +227,7 @@ public class ImsSmsDispatcher extends SMSDispatcher { } else { tracker.onFailed(mContext, reason, networkReasonCode); mTrackers.remove(token); notifySmsSentFailedToEmergencyStateTracker(tracker); } break; case ImsSmsImplBase.SEND_STATUS_ERROR_FALLBACK: Loading Loading
flags/messaging.aconfig +8 −1 Original line number Diff line number Diff line Loading @@ -6,3 +6,10 @@ flag { description: "Previously, the DB allows insertion of a random sub Id, but doesn't allow query it. This change rejects such interaction." bug: "294125411" } flag { name: "sms_domain_selection_enabled" namespace: "telephony" description: "This flag controls AP domain selection support for normal/emergency SMS." bug: "262804071" }
src/java/com/android/internal/telephony/CarrierKeyDownloadManager.java +20 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.net.Uri; import android.os.Handler; import android.os.Message; import android.os.PersistableBundle; import android.os.UserManager; import android.telephony.CarrierConfigManager; import android.telephony.ImsiEncryptionInfo; import android.telephony.SubscriptionManager; Loading Loading @@ -108,6 +109,7 @@ public class CarrierKeyDownloadManager extends Handler { private boolean mAllowedOverMeteredNetwork = false; private boolean mDeleteOldKeyAfterDownload = false; private TelephonyManager mTelephonyManager; private UserManager mUserManager; @VisibleForTesting public String mMccMncForDownload; Loading @@ -125,18 +127,35 @@ public class CarrierKeyDownloadManager extends Handler { mDownloadManager = (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE); mTelephonyManager = mContext.getSystemService(TelephonyManager.class) .createForSubscriptionId(mPhone.getSubId()); mUserManager = mContext.getSystemService(UserManager.class); CarrierConfigManager carrierConfigManager = mContext.getSystemService( CarrierConfigManager.class); // Callback which directly handle config change should be executed on handler thread carrierConfigManager.registerCarrierConfigChangeListener(this::post, (slotIndex, subId, carrierId, specificCarrierId) -> { if (slotIndex == mPhone.getPhoneId()) { boolean isUserUnlocked = mUserManager.isUserUnlocked(); if (isUserUnlocked && slotIndex == mPhone.getPhoneId()) { Log.d(LOG_TAG, "Carrier Config changed: slotIndex=" + slotIndex); handleAlarmOrConfigChange(); } else { Log.d(LOG_TAG, "User is locked"); mContext.registerReceiver(mUserUnlockedReceiver, new IntentFilter( Intent.ACTION_USER_UNLOCKED)); } }); } private final BroadcastReceiver mUserUnlockedReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (Intent.ACTION_USER_UNLOCKED.equals(intent.getAction())) { Log.d(LOG_TAG, "Received UserUnlockedReceiver"); handleAlarmOrConfigChange(); } } }; private final BroadcastReceiver mDownloadReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Loading
src/java/com/android/internal/telephony/GsmCdmaPhone.java +1 −1 Original line number Diff line number Diff line Loading @@ -463,7 +463,7 @@ public class GsmCdmaPhone extends Phone { mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, LOG_TAG); mIccSmsInterfaceManager = mTelephonyComponentFactory .inject(IccSmsInterfaceManager.class.getName()) .makeIccSmsInterfaceManager(this); .makeIccSmsInterfaceManager(this, mFeatureFlags); mCi.registerForAvailable(this, EVENT_RADIO_AVAILABLE, null); mCi.registerForOffOrNotAvailable(this, EVENT_RADIO_OFF_OR_NOT_AVAILABLE, null); Loading
src/java/com/android/internal/telephony/IccSmsInterfaceManager.java +4 −2 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static android.telephony.SmsManager.STATUS_ON_ICC_READ; import static android.telephony.SmsManager.STATUS_ON_ICC_UNREAD; import android.Manifest; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.app.AppOpsManager; import android.app.PendingIntent; Loading @@ -47,6 +48,7 @@ import android.util.Log; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo; import com.android.internal.telephony.flags.FeatureFlags; import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo; import com.android.internal.telephony.uicc.IccConstants; import com.android.internal.telephony.uicc.IccFileHandler; Loading Loading @@ -155,11 +157,11 @@ public class IccSmsInterfaceManager { } }; protected IccSmsInterfaceManager(Phone phone) { protected IccSmsInterfaceManager(Phone phone, @NonNull FeatureFlags featureFlags) { this(phone, phone.getContext(), (AppOpsManager) phone.getContext().getSystemService(Context.APP_OPS_SERVICE), new SmsDispatchersController( phone, phone.mSmsStorageMonitor, phone.mSmsUsageMonitor), phone, phone.mSmsStorageMonitor, phone.mSmsUsageMonitor, featureFlags), new SmsPermissions(phone, phone.getContext(), (AppOpsManager) phone.getContext().getSystemService( Context.APP_OPS_SERVICE))); Loading
src/java/com/android/internal/telephony/ImsSmsDispatcher.java +4 −0 Original line number Diff line number Diff line Loading @@ -202,10 +202,13 @@ public class ImsSmsDispatcher extends SMSDispatcher { tracker.onSent(mContext); mTrackers.remove(token); mPhone.notifySmsSent(tracker.mDestAddress); mSmsDispatchersController.notifySmsSentToEmergencyStateTracker( tracker.mDestAddress, tracker.mMessageId); break; case ImsSmsImplBase.SEND_STATUS_ERROR: tracker.onFailed(mContext, reason, networkReasonCode); mTrackers.remove(token); notifySmsSentFailedToEmergencyStateTracker(tracker); break; case ImsSmsImplBase.SEND_STATUS_ERROR_RETRY: int maxRetryCountOverIms = getMaxRetryCountOverIms(); Loading @@ -224,6 +227,7 @@ public class ImsSmsDispatcher extends SMSDispatcher { } else { tracker.onFailed(mContext, reason, networkReasonCode); mTrackers.remove(token); notifySmsSentFailedToEmergencyStateTracker(tracker); } break; case ImsSmsImplBase.SEND_STATUS_ERROR_FALLBACK: Loading