Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e59097e6 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Replaced send broadcast with user aware version" into main

parents 5ee70c19 2269ea7c
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -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
    }
}
+17 −3
Original line number Diff line number Diff line
@@ -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;
@@ -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;
@@ -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) {
@@ -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);

@@ -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();
@@ -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();
+1 −1
Original line number Diff line number Diff line
@@ -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(
+6 −1
Original line number Diff line number Diff line
@@ -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);
    }

+11 −2
Original line number Diff line number Diff line
@@ -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;
@@ -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) {
@@ -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