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

Commit cc1c45fb authored by Aishwarya Mallamapti's avatar Aishwarya Mallamapti
Browse files

Protect data call blocking using satellite feature flags.

Bug: 291811962
Bug: 296437388
Test: Flashed build on raven-userdebug and performed basic funtionality
tests,
atest DataNetworkControllerTest

Change-Id: I8fff723b6175fc6c25dfb6b0bad010161a7fd12b
parent 644015aa
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ aconfig_declarations {
      "misc.aconfig",
      "subscription.aconfig",
      "uicc.aconfig",
      "satellite.aconfig",
    ],
}

@@ -35,3 +36,10 @@ java_aconfig_library {
    name: "telephony_flags-lib",
    aconfig_declarations: "telephony_flags"
}

// Create test version of java flag library to access flags using static approach
java_aconfig_library {
    name: "telephony_flags-lib-test",
    aconfig_declarations: "telephony_flags",
    test: true
}
+15 −0
Original line number Diff line number Diff line
package: "com.android.internal.telephony.flags"

flag {
    name: "oem_enabled_satellite_flag"
    namespace: "telephony"
    description: "This flag controls satellite communication supported by OEMs."
    bug:"291811962"
}

flag {
    name: "carrier_enabled_satellite_flag"
    namespace: "telephony"
    description: "This flag controls satellite communication supported by carriers."
    bug:"296437388"
}
 No newline at end of file
+10 −6
Original line number Diff line number Diff line
@@ -107,6 +107,7 @@ import com.android.internal.telephony.data.LinkBandwidthEstimator;
import com.android.internal.telephony.domainselection.DomainSelectionResolver;
import com.android.internal.telephony.emergency.EmergencyNumberTracker;
import com.android.internal.telephony.emergency.EmergencyStateTracker;
import com.android.internal.telephony.flags.FeatureFlags;
import com.android.internal.telephony.gsm.GsmMmiCode;
import com.android.internal.telephony.gsm.SsData;
import com.android.internal.telephony.gsm.SuppServiceNotification;
@@ -299,23 +300,26 @@ public class GsmCdmaPhone extends Phone {
    // Constructors

    public GsmCdmaPhone(Context context, CommandsInterface ci, PhoneNotifier notifier, int phoneId,
                        int precisePhoneType, TelephonyComponentFactory telephonyComponentFactory) {
        this(context, ci, notifier, false, phoneId, precisePhoneType, telephonyComponentFactory);
                        int precisePhoneType, TelephonyComponentFactory telephonyComponentFactory,
            @NonNull FeatureFlags featureFlags) {
        this(context, ci, notifier, false, phoneId, precisePhoneType, telephonyComponentFactory,
                featureFlags);
    }

    public GsmCdmaPhone(Context context, CommandsInterface ci, PhoneNotifier notifier,
                        boolean unitTestMode, int phoneId, int precisePhoneType,
                        TelephonyComponentFactory telephonyComponentFactory) {
                        TelephonyComponentFactory telephonyComponentFactory,
            @NonNull FeatureFlags featureFlags) {
        this(context, ci, notifier,
                unitTestMode, phoneId, precisePhoneType,
                telephonyComponentFactory,
                ImsManager::getInstance);
                ImsManager::getInstance, featureFlags);
    }

    public GsmCdmaPhone(Context context, CommandsInterface ci, PhoneNotifier notifier,
            boolean unitTestMode, int phoneId, int precisePhoneType,
            TelephonyComponentFactory telephonyComponentFactory,
            ImsManagerFactory imsManagerFactory) {
            ImsManagerFactory imsManagerFactory, @NonNull FeatureFlags featureFlags) {
        super(precisePhoneType == PhoneConstants.PHONE_TYPE_GSM ? "GSM" : "CDMA",
                notifier, context, ci, unitTestMode, phoneId, telephonyComponentFactory);

@@ -352,7 +356,7 @@ public class GsmCdmaPhone extends Phone {

        mDataNetworkController = mTelephonyComponentFactory.inject(
                DataNetworkController.class.getName())
                .makeDataNetworkController(this, getLooper());
                .makeDataNetworkController(this, getLooper(), featureFlags);

        mCarrierResolver = mTelephonyComponentFactory.inject(CarrierResolver.class.getName())
                .makeCarrierResolver(this);
+4 −1
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ import com.android.internal.telephony.data.TelephonyNetworkFactory;
import com.android.internal.telephony.euicc.EuiccCardController;
import com.android.internal.telephony.euicc.EuiccController;
import com.android.internal.telephony.flags.FeatureFlags;
import com.android.internal.telephony.flags.FeatureFlagsImpl;
import com.android.internal.telephony.imsphone.ImsPhone;
import com.android.internal.telephony.imsphone.ImsPhoneFactory;
import com.android.internal.telephony.metrics.MetricsCollector;
@@ -104,6 +105,7 @@ public class PhoneFactory {
    static private final HashMap<String, LocalLog>sLocalLogs = new HashMap<String, LocalLog>();
    private static MetricsCollector sMetricsCollector;
    private static RadioInterfaceCapabilityController sRadioHalCapabilities;
    private static @NonNull FeatureFlags sFeatureFlags = new FeatureFlagsImpl();

    //***** Class Methods

@@ -112,6 +114,7 @@ public class PhoneFactory {
     * @param featureFlags The feature flag.
     */
    public static void makeDefaultPhones(Context context, @NonNull FeatureFlags featureFlags) {
        sFeatureFlags = featureFlags;
        makeDefaultPhone(context, featureFlags);
    }

@@ -324,7 +327,7 @@ public class PhoneFactory {

        return injectedComponentFactory.makePhone(context,
                sCommandsInterfaces[phoneId], sPhoneNotifier, phoneId, phoneType,
                TelephonyComponentFactory.getInstance());
                TelephonyComponentFactory.getInstance(), sFeatureFlags);
    }

    @UnsupportedAppUsage
+8 −4
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import com.android.internal.telephony.data.DataSettingsManager;
import com.android.internal.telephony.data.LinkBandwidthEstimator;
import com.android.internal.telephony.data.PhoneSwitcher;
import com.android.internal.telephony.emergency.EmergencyNumberTracker;
import com.android.internal.telephony.flags.FeatureFlags;
import com.android.internal.telephony.imsphone.ImsExternalCallTracker;
import com.android.internal.telephony.imsphone.ImsNrSaModeHandler;
import com.android.internal.telephony.imsphone.ImsPhone;
@@ -429,9 +430,10 @@ public class TelephonyComponentFactory {

    public Phone makePhone(Context context, CommandsInterface ci, PhoneNotifier notifier,
            int phoneId, int precisePhoneType,
            TelephonyComponentFactory telephonyComponentFactory) {
            TelephonyComponentFactory telephonyComponentFactory,
            @NonNull FeatureFlags featureFlags) {
        return new GsmCdmaPhone(context, ci, notifier, phoneId, precisePhoneType,
                telephonyComponentFactory);
                telephonyComponentFactory, featureFlags);
    }

    public PhoneSwitcher makePhoneSwitcher(int maxDataAttachModemCount, Context context,
@@ -476,10 +478,12 @@ public class TelephonyComponentFactory {
     *
     * @param phone The phone object
     * @param looper The looper for event handling
     * @param featureFlags The feature flag.
     * @return The data network controller instance
     */
    public DataNetworkController makeDataNetworkController(Phone phone, Looper looper) {
        return new DataNetworkController(phone, looper);
    public DataNetworkController makeDataNetworkController(Phone phone, Looper looper,
            @NonNull FeatureFlags featureFlags) {
        return new DataNetworkController(phone, looper, featureFlags);
    }

    /**
Loading