Loading src/java/com/android/internal/telephony/IccSmsInterfaceManager.java +17 −33 Original line number Diff line number Diff line Loading @@ -24,11 +24,8 @@ import android.Manifest; import android.app.AppOpsManager; import android.app.PendingIntent; import android.compat.annotation.UnsupportedAppUsage; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.database.Cursor; import android.database.sqlite.SQLiteException; Loading @@ -40,11 +37,9 @@ import android.os.Looper; import android.os.Message; import android.os.UserManager; import android.provider.Telephony; import android.telephony.CarrierConfigManager; import android.telephony.SmsCbMessage; import android.telephony.SmsManager; import android.telephony.SmsMessage; import android.telephony.SubscriptionManager; import android.telephony.emergency.EmergencyNumber; import android.util.LocalLog; import android.util.Log; Loading Loading @@ -190,24 +185,6 @@ public class IccSmsInterfaceManager { mAppOps = appOps; mDispatchersController = dispatchersController; mSmsPermissions = new SmsPermissions(phone, context, appOps); mContext.registerReceiver( new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED .equals(intent.getAction())) { if (mPhone.getPhoneId() == intent.getIntExtra( CarrierConfigManager.EXTRA_SLOT_INDEX, SubscriptionManager.INVALID_SIM_SLOT_INDEX)) { new Thread(() -> { log("Carrier config changed. Update ranges."); mCellBroadcastRangeManager.updateRanges(); }).start(); } } } }, new IntentFilter(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED)); } private void enforceNotOnHandlerThread(String methodName) { Loading Loading @@ -957,7 +934,7 @@ public class IccSmsInterfaceManager { } public boolean enableCellBroadcastRange(int startMessageId, int endMessageId, int ranType) { mContext.enforceCallingPermission("android.permission.RECEIVE_EMERGENCY_BROADCAST", mContext.enforceCallingPermission(android.Manifest.permission.RECEIVE_EMERGENCY_BROADCAST, "enabling cell broadcast range [" + startMessageId + "-" + endMessageId + "]. " + "ranType=" + ranType); if (ranType == SmsCbMessage.MESSAGE_FORMAT_3GPP) { Loading @@ -970,7 +947,7 @@ public class IccSmsInterfaceManager { } public boolean disableCellBroadcastRange(int startMessageId, int endMessageId, int ranType) { mContext.enforceCallingPermission("android.permission.RECEIVE_EMERGENCY_BROADCAST", mContext.enforceCallingPermission(android.Manifest.permission.RECEIVE_EMERGENCY_BROADCAST, "disabling cell broadcast range [" + startMessageId + "-" + endMessageId + "]. ranType=" + ranType); if (ranType == SmsCbMessage.MESSAGE_FORMAT_3GPP) { Loading @@ -985,8 +962,7 @@ public class IccSmsInterfaceManager { @UnsupportedAppUsage synchronized public boolean enableGsmBroadcastRange(int startMessageId, int endMessageId) { mContext.enforceCallingPermission( "android.permission.RECEIVE_SMS", mContext.enforceCallingPermission(android.Manifest.permission.RECEIVE_EMERGENCY_BROADCAST, "Enabling cell broadcast SMS"); String client = mContext.getPackageManager().getNameForUid( Loading Loading @@ -1016,8 +992,7 @@ public class IccSmsInterfaceManager { @UnsupportedAppUsage synchronized public boolean disableGsmBroadcastRange(int startMessageId, int endMessageId) { mContext.enforceCallingPermission( "android.permission.RECEIVE_SMS", mContext.enforceCallingPermission(android.Manifest.permission.RECEIVE_EMERGENCY_BROADCAST, "Disabling cell broadcast SMS"); String client = mContext.getPackageManager().getNameForUid( Loading Loading @@ -1047,8 +1022,7 @@ public class IccSmsInterfaceManager { @UnsupportedAppUsage synchronized public boolean enableCdmaBroadcastRange(int startMessageId, int endMessageId) { mContext.enforceCallingPermission( "android.permission.RECEIVE_SMS", mContext.enforceCallingPermission(android.Manifest.permission.RECEIVE_EMERGENCY_BROADCAST, "Enabling cdma broadcast SMS"); String client = mContext.getPackageManager().getNameForUid( Loading Loading @@ -1077,8 +1051,7 @@ public class IccSmsInterfaceManager { @UnsupportedAppUsage synchronized public boolean disableCdmaBroadcastRange(int startMessageId, int endMessageId) { mContext.enforceCallingPermission( "android.permission.RECEIVE_SMS", mContext.enforceCallingPermission(android.Manifest.permission.RECEIVE_EMERGENCY_BROADCAST, "Disabling cell broadcast SMS"); String client = mContext.getPackageManager().getNameForUid( Loading @@ -1104,6 +1077,17 @@ public class IccSmsInterfaceManager { return true; } /** * Reset all cell broadcast ranges. Previously enabled ranges will become invalid after this. */ public void resetAllCellBroadcastRanges() { mContext.enforceCallingPermission(android.Manifest.permission.RECEIVE_EMERGENCY_BROADCAST, "resetAllCellBroadcastRanges"); mCdmaBroadcastRangeManager.clearRanges(); mCellBroadcastRangeManager.clearRanges(); log("Cell broadcast ranges reset."); } class CellBroadcastRangeManager extends IntRangeManager { private ArrayList<SmsBroadcastConfigInfo> mConfigList = new ArrayList<SmsBroadcastConfigInfo>(); Loading src/java/com/android/internal/telephony/IntRangeManager.java +7 −0 Original line number Diff line number Diff line Loading @@ -188,6 +188,13 @@ public abstract class IntRangeManager { protected IntRangeManager() {} /** * Clear all the ranges. */ public synchronized void clearRanges() { mRanges.clear(); } /** * Enable a range for the specified client and update ranges * if necessary. If {@link #finishUpdate} returns failure, Loading src/java/com/android/internal/telephony/SmsController.java +18 −0 Original line number Diff line number Diff line Loading @@ -822,4 +822,22 @@ public class SmsController extends ISmsImplBase { return 0; } } /** * Reset all cell broadcast ranges. Previously enabled ranges will become invalid after this. * * @param subId Subscription index * @return {@code true} if succeeded, otherwise {@code false}. */ @Override public boolean resetAllCellBroadcastRanges(int subId) { IccSmsInterfaceManager iccSmsIntMgr = getIccSmsInterfaceManager(subId); if (iccSmsIntMgr != null) { iccSmsIntMgr.resetAllCellBroadcastRanges(); return true; } else { Rlog.e(LOG_TAG, "iccSmsIntMgr is null for " + " subId: " + subId); return false; } } } Loading
src/java/com/android/internal/telephony/IccSmsInterfaceManager.java +17 −33 Original line number Diff line number Diff line Loading @@ -24,11 +24,8 @@ import android.Manifest; import android.app.AppOpsManager; import android.app.PendingIntent; import android.compat.annotation.UnsupportedAppUsage; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.database.Cursor; import android.database.sqlite.SQLiteException; Loading @@ -40,11 +37,9 @@ import android.os.Looper; import android.os.Message; import android.os.UserManager; import android.provider.Telephony; import android.telephony.CarrierConfigManager; import android.telephony.SmsCbMessage; import android.telephony.SmsManager; import android.telephony.SmsMessage; import android.telephony.SubscriptionManager; import android.telephony.emergency.EmergencyNumber; import android.util.LocalLog; import android.util.Log; Loading Loading @@ -190,24 +185,6 @@ public class IccSmsInterfaceManager { mAppOps = appOps; mDispatchersController = dispatchersController; mSmsPermissions = new SmsPermissions(phone, context, appOps); mContext.registerReceiver( new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED .equals(intent.getAction())) { if (mPhone.getPhoneId() == intent.getIntExtra( CarrierConfigManager.EXTRA_SLOT_INDEX, SubscriptionManager.INVALID_SIM_SLOT_INDEX)) { new Thread(() -> { log("Carrier config changed. Update ranges."); mCellBroadcastRangeManager.updateRanges(); }).start(); } } } }, new IntentFilter(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED)); } private void enforceNotOnHandlerThread(String methodName) { Loading Loading @@ -957,7 +934,7 @@ public class IccSmsInterfaceManager { } public boolean enableCellBroadcastRange(int startMessageId, int endMessageId, int ranType) { mContext.enforceCallingPermission("android.permission.RECEIVE_EMERGENCY_BROADCAST", mContext.enforceCallingPermission(android.Manifest.permission.RECEIVE_EMERGENCY_BROADCAST, "enabling cell broadcast range [" + startMessageId + "-" + endMessageId + "]. " + "ranType=" + ranType); if (ranType == SmsCbMessage.MESSAGE_FORMAT_3GPP) { Loading @@ -970,7 +947,7 @@ public class IccSmsInterfaceManager { } public boolean disableCellBroadcastRange(int startMessageId, int endMessageId, int ranType) { mContext.enforceCallingPermission("android.permission.RECEIVE_EMERGENCY_BROADCAST", mContext.enforceCallingPermission(android.Manifest.permission.RECEIVE_EMERGENCY_BROADCAST, "disabling cell broadcast range [" + startMessageId + "-" + endMessageId + "]. ranType=" + ranType); if (ranType == SmsCbMessage.MESSAGE_FORMAT_3GPP) { Loading @@ -985,8 +962,7 @@ public class IccSmsInterfaceManager { @UnsupportedAppUsage synchronized public boolean enableGsmBroadcastRange(int startMessageId, int endMessageId) { mContext.enforceCallingPermission( "android.permission.RECEIVE_SMS", mContext.enforceCallingPermission(android.Manifest.permission.RECEIVE_EMERGENCY_BROADCAST, "Enabling cell broadcast SMS"); String client = mContext.getPackageManager().getNameForUid( Loading Loading @@ -1016,8 +992,7 @@ public class IccSmsInterfaceManager { @UnsupportedAppUsage synchronized public boolean disableGsmBroadcastRange(int startMessageId, int endMessageId) { mContext.enforceCallingPermission( "android.permission.RECEIVE_SMS", mContext.enforceCallingPermission(android.Manifest.permission.RECEIVE_EMERGENCY_BROADCAST, "Disabling cell broadcast SMS"); String client = mContext.getPackageManager().getNameForUid( Loading Loading @@ -1047,8 +1022,7 @@ public class IccSmsInterfaceManager { @UnsupportedAppUsage synchronized public boolean enableCdmaBroadcastRange(int startMessageId, int endMessageId) { mContext.enforceCallingPermission( "android.permission.RECEIVE_SMS", mContext.enforceCallingPermission(android.Manifest.permission.RECEIVE_EMERGENCY_BROADCAST, "Enabling cdma broadcast SMS"); String client = mContext.getPackageManager().getNameForUid( Loading Loading @@ -1077,8 +1051,7 @@ public class IccSmsInterfaceManager { @UnsupportedAppUsage synchronized public boolean disableCdmaBroadcastRange(int startMessageId, int endMessageId) { mContext.enforceCallingPermission( "android.permission.RECEIVE_SMS", mContext.enforceCallingPermission(android.Manifest.permission.RECEIVE_EMERGENCY_BROADCAST, "Disabling cell broadcast SMS"); String client = mContext.getPackageManager().getNameForUid( Loading @@ -1104,6 +1077,17 @@ public class IccSmsInterfaceManager { return true; } /** * Reset all cell broadcast ranges. Previously enabled ranges will become invalid after this. */ public void resetAllCellBroadcastRanges() { mContext.enforceCallingPermission(android.Manifest.permission.RECEIVE_EMERGENCY_BROADCAST, "resetAllCellBroadcastRanges"); mCdmaBroadcastRangeManager.clearRanges(); mCellBroadcastRangeManager.clearRanges(); log("Cell broadcast ranges reset."); } class CellBroadcastRangeManager extends IntRangeManager { private ArrayList<SmsBroadcastConfigInfo> mConfigList = new ArrayList<SmsBroadcastConfigInfo>(); Loading
src/java/com/android/internal/telephony/IntRangeManager.java +7 −0 Original line number Diff line number Diff line Loading @@ -188,6 +188,13 @@ public abstract class IntRangeManager { protected IntRangeManager() {} /** * Clear all the ranges. */ public synchronized void clearRanges() { mRanges.clear(); } /** * Enable a range for the specified client and update ranges * if necessary. If {@link #finishUpdate} returns failure, Loading
src/java/com/android/internal/telephony/SmsController.java +18 −0 Original line number Diff line number Diff line Loading @@ -822,4 +822,22 @@ public class SmsController extends ISmsImplBase { return 0; } } /** * Reset all cell broadcast ranges. Previously enabled ranges will become invalid after this. * * @param subId Subscription index * @return {@code true} if succeeded, otherwise {@code false}. */ @Override public boolean resetAllCellBroadcastRanges(int subId) { IccSmsInterfaceManager iccSmsIntMgr = getIccSmsInterfaceManager(subId); if (iccSmsIntMgr != null) { iccSmsIntMgr.resetAllCellBroadcastRanges(); return true; } else { Rlog.e(LOG_TAG, "iccSmsIntMgr is null for " + " subId: " + subId); return false; } } }