Loading flags/misc.aconfig +11 −0 Original line number Diff line number Diff line Loading @@ -195,3 +195,14 @@ flag { purpose: PURPOSE_BUGFIX } } # OWNER=jackyu TARGET=25Q2 flag { name: "hsum_broadcast" namespace: "telephony" description: "Fixed the bug that broadcast intent is only sent to the system user." bug:"362554272" metadata { purpose: PURPOSE_BUGFIX } } src/java/com/android/internal/telephony/CarrierResolver.java +17 −3 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.net.Uri; import android.os.AsyncResult; import android.os.Handler; import android.os.Message; import android.os.UserHandle; import android.provider.Telephony; import android.service.carrier.CarrierIdentifier; import android.telephony.CarrierConfigManager; Loading @@ -41,6 +42,7 @@ import android.util.LocalLog; import android.util.Log; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telephony.flags.FeatureFlags; import com.android.internal.telephony.metrics.CarrierIdMatchStats; import com.android.internal.telephony.metrics.TelephonyMetrics; import com.android.internal.telephony.subscription.SubscriptionManagerService; Loading Loading @@ -112,6 +114,9 @@ public class CarrierResolver extends Handler { private final LocalLog mCarrierIdLocalLog = new LocalLog(16); private final TelephonyManager mTelephonyMgr; @NonNull private final FeatureFlags mFeatureFlags; private final ContentObserver mContentObserver = new ContentObserver(this) { @Override public void onChange(boolean selfChange, Uri uri) { Loading Loading @@ -172,9 +177,10 @@ public class CarrierResolver extends Handler { } }; public CarrierResolver(Phone phone) { public CarrierResolver(Phone phone, @NonNull FeatureFlags flags) { logd("Creating CarrierResolver[" + phone.getPhoneId() + "]"); mContext = phone.getContext(); mFeatureFlags = flags; mPhone = phone; mTelephonyMgr = TelephonyManager.from(mContext); Loading Loading @@ -500,7 +506,11 @@ public class CarrierResolver extends Handler { intent.putExtra(TelephonyManager.EXTRA_SPECIFIC_CARRIER_ID, mSpecificCarrierId); intent.putExtra(TelephonyManager.EXTRA_SPECIFIC_CARRIER_NAME, mSpecificCarrierName); intent.putExtra(TelephonyManager.EXTRA_SUBSCRIPTION_ID, mPhone.getSubId()); if (mFeatureFlags.hsumBroadcast()) { mContext.sendBroadcastAsUser(intent, UserHandle.ALL); } else { mContext.sendBroadcast(intent); } // notify content observers for specific carrier id change event. ContentValues cv = new ContentValues(); Loading Loading @@ -535,7 +545,11 @@ public class CarrierResolver extends Handler { intent.putExtra(TelephonyManager.EXTRA_CARRIER_ID, mCarrierId); intent.putExtra(TelephonyManager.EXTRA_CARRIER_NAME, mCarrierName); intent.putExtra(TelephonyManager.EXTRA_SUBSCRIPTION_ID, mPhone.getSubId()); if (mFeatureFlags.hsumBroadcast()) { mContext.sendBroadcastAsUser(intent, UserHandle.ALL); } else { mContext.sendBroadcast(intent); } // notify content observers for carrier id change event ContentValues cv = new ContentValues(); Loading src/java/com/android/internal/telephony/GsmCdmaPhone.java +1 −1 Original line number Diff line number Diff line Loading @@ -390,7 +390,7 @@ public class GsmCdmaPhone extends Phone { .makeDataNetworkController(this, getLooper(), featureFlags); mCarrierResolver = mTelephonyComponentFactory.inject(CarrierResolver.class.getName()) .makeCarrierResolver(this); .makeCarrierResolver(this, featureFlags); mCarrierPrivilegesTracker = new CarrierPrivilegesTracker(Looper.myLooper(), this, context); getCarrierActionAgent().registerForCarrierAction( Loading src/java/com/android/internal/telephony/InboundSmsHandler.java +6 −1 Original line number Diff line number Diff line Loading @@ -806,8 +806,13 @@ public abstract class InboundSmsHandler extends StateMachine { Intent intent = new Intent(Intents.SMS_REJECTED_ACTION); intent.putExtra("result", result); intent.putExtra("subId", mPhone.getSubId()); if (mFeatureFlags.hsumBroadcast()) { mContext.sendBroadcastAsUser(intent, UserHandle.ALL, android.Manifest.permission.RECEIVE_SMS); } else { mContext.sendBroadcast(intent, android.Manifest.permission.RECEIVE_SMS); } } acknowledgeLastIncomingSms(success, result, response); } Loading src/java/com/android/internal/telephony/MultiSimSettingController.java +11 −2 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.os.Handler; import android.os.Looper; import android.os.Message; import android.os.ParcelUuid; import android.os.UserHandle; import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.telephony.CarrierConfigManager; Loading Loading @@ -792,8 +793,12 @@ public class MultiSimSettingController extends Handler { intent.putExtra(EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE, type); intent.putExtra(EXTRA_SUBSCRIPTION_ID, defaultSubId); if (mFeatureFlags.hsumBroadcast()) { mContext.sendBroadcastAsUser(intent, UserHandle.ALL); } else { mContext.sendBroadcast(intent); } } private void sendSubChangeNotificationIfNeeded(int change, boolean dataSelected, boolean voiceSelected, boolean smsSelected) { Loading Loading @@ -830,9 +835,13 @@ public class MultiSimSettingController extends Handler { if (simCombinationParams.mWarningType == EXTRA_SIM_COMBINATION_WARNING_TYPE_DUAL_CDMA) { intent.putExtra(EXTRA_SIM_COMBINATION_NAMES, simCombinationParams.mSimNames); } if (mFeatureFlags.hsumBroadcast()) { mContext.sendBroadcastAsUser(intent, UserHandle.ALL); } else { mContext.sendBroadcast(intent); } } } /** * Check that the primary subscription has changed due to the pSIM conversion. Loading Loading
flags/misc.aconfig +11 −0 Original line number Diff line number Diff line Loading @@ -195,3 +195,14 @@ flag { purpose: PURPOSE_BUGFIX } } # OWNER=jackyu TARGET=25Q2 flag { name: "hsum_broadcast" namespace: "telephony" description: "Fixed the bug that broadcast intent is only sent to the system user." bug:"362554272" metadata { purpose: PURPOSE_BUGFIX } }
src/java/com/android/internal/telephony/CarrierResolver.java +17 −3 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.net.Uri; import android.os.AsyncResult; import android.os.Handler; import android.os.Message; import android.os.UserHandle; import android.provider.Telephony; import android.service.carrier.CarrierIdentifier; import android.telephony.CarrierConfigManager; Loading @@ -41,6 +42,7 @@ import android.util.LocalLog; import android.util.Log; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.telephony.flags.FeatureFlags; import com.android.internal.telephony.metrics.CarrierIdMatchStats; import com.android.internal.telephony.metrics.TelephonyMetrics; import com.android.internal.telephony.subscription.SubscriptionManagerService; Loading Loading @@ -112,6 +114,9 @@ public class CarrierResolver extends Handler { private final LocalLog mCarrierIdLocalLog = new LocalLog(16); private final TelephonyManager mTelephonyMgr; @NonNull private final FeatureFlags mFeatureFlags; private final ContentObserver mContentObserver = new ContentObserver(this) { @Override public void onChange(boolean selfChange, Uri uri) { Loading Loading @@ -172,9 +177,10 @@ public class CarrierResolver extends Handler { } }; public CarrierResolver(Phone phone) { public CarrierResolver(Phone phone, @NonNull FeatureFlags flags) { logd("Creating CarrierResolver[" + phone.getPhoneId() + "]"); mContext = phone.getContext(); mFeatureFlags = flags; mPhone = phone; mTelephonyMgr = TelephonyManager.from(mContext); Loading Loading @@ -500,7 +506,11 @@ public class CarrierResolver extends Handler { intent.putExtra(TelephonyManager.EXTRA_SPECIFIC_CARRIER_ID, mSpecificCarrierId); intent.putExtra(TelephonyManager.EXTRA_SPECIFIC_CARRIER_NAME, mSpecificCarrierName); intent.putExtra(TelephonyManager.EXTRA_SUBSCRIPTION_ID, mPhone.getSubId()); if (mFeatureFlags.hsumBroadcast()) { mContext.sendBroadcastAsUser(intent, UserHandle.ALL); } else { mContext.sendBroadcast(intent); } // notify content observers for specific carrier id change event. ContentValues cv = new ContentValues(); Loading Loading @@ -535,7 +545,11 @@ public class CarrierResolver extends Handler { intent.putExtra(TelephonyManager.EXTRA_CARRIER_ID, mCarrierId); intent.putExtra(TelephonyManager.EXTRA_CARRIER_NAME, mCarrierName); intent.putExtra(TelephonyManager.EXTRA_SUBSCRIPTION_ID, mPhone.getSubId()); if (mFeatureFlags.hsumBroadcast()) { mContext.sendBroadcastAsUser(intent, UserHandle.ALL); } else { mContext.sendBroadcast(intent); } // notify content observers for carrier id change event ContentValues cv = new ContentValues(); Loading
src/java/com/android/internal/telephony/GsmCdmaPhone.java +1 −1 Original line number Diff line number Diff line Loading @@ -390,7 +390,7 @@ public class GsmCdmaPhone extends Phone { .makeDataNetworkController(this, getLooper(), featureFlags); mCarrierResolver = mTelephonyComponentFactory.inject(CarrierResolver.class.getName()) .makeCarrierResolver(this); .makeCarrierResolver(this, featureFlags); mCarrierPrivilegesTracker = new CarrierPrivilegesTracker(Looper.myLooper(), this, context); getCarrierActionAgent().registerForCarrierAction( Loading
src/java/com/android/internal/telephony/InboundSmsHandler.java +6 −1 Original line number Diff line number Diff line Loading @@ -806,8 +806,13 @@ public abstract class InboundSmsHandler extends StateMachine { Intent intent = new Intent(Intents.SMS_REJECTED_ACTION); intent.putExtra("result", result); intent.putExtra("subId", mPhone.getSubId()); if (mFeatureFlags.hsumBroadcast()) { mContext.sendBroadcastAsUser(intent, UserHandle.ALL, android.Manifest.permission.RECEIVE_SMS); } else { mContext.sendBroadcast(intent, android.Manifest.permission.RECEIVE_SMS); } } acknowledgeLastIncomingSms(success, result, response); } Loading
src/java/com/android/internal/telephony/MultiSimSettingController.java +11 −2 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.os.Handler; import android.os.Looper; import android.os.Message; import android.os.ParcelUuid; import android.os.UserHandle; import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.telephony.CarrierConfigManager; Loading Loading @@ -792,8 +793,12 @@ public class MultiSimSettingController extends Handler { intent.putExtra(EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE, type); intent.putExtra(EXTRA_SUBSCRIPTION_ID, defaultSubId); if (mFeatureFlags.hsumBroadcast()) { mContext.sendBroadcastAsUser(intent, UserHandle.ALL); } else { mContext.sendBroadcast(intent); } } private void sendSubChangeNotificationIfNeeded(int change, boolean dataSelected, boolean voiceSelected, boolean smsSelected) { Loading Loading @@ -830,9 +835,13 @@ public class MultiSimSettingController extends Handler { if (simCombinationParams.mWarningType == EXTRA_SIM_COMBINATION_WARNING_TYPE_DUAL_CDMA) { intent.putExtra(EXTRA_SIM_COMBINATION_NAMES, simCombinationParams.mSimNames); } if (mFeatureFlags.hsumBroadcast()) { mContext.sendBroadcastAsUser(intent, UserHandle.ALL); } else { mContext.sendBroadcast(intent); } } } /** * Check that the primary subscription has changed due to the pSIM conversion. Loading