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

Commit 13fbcf7a authored by Thomas Stuart's avatar Thomas Stuart
Browse files

add flag for emergency calling notif changes

This CL gates the changes in ag/24212903 with a flag.

Fixes: 310010827
Bug: 290241725 (orignal bug)
Test: updated 2 tests
Change-Id: I1e4d065173f66df8fcba026d99e7217647f49c69
parent 6098a061
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -15,6 +15,13 @@ flag {
  bug: "275225402"
}

flag {
  name: "stop_spamming_emergency_notification"
  namespace: "telephony"
  description: "When set, the no wifi emergency calling availability notif will have a do not ask again button"
  bug: "275225402"
}

flag {
  name: "enable_wps_check_api_flag"
  namespace: "telephony"
+31 −14
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.internal.telephony;

import android.annotation.NonNull;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
@@ -42,6 +43,7 @@ import android.telephony.TelephonyManager;
import android.telephony.TelephonyManager.NetworkTypeBitMask;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.flags.FeatureFlags;
import com.android.internal.telephony.util.ArrayUtils;
import com.android.internal.telephony.util.NotificationChannelController;
import com.android.telephony.Rlog;
@@ -85,6 +87,7 @@ public class CarrierServiceStateTracker extends Handler {
    private long mAllowedNetworkType = -1;
    private AllowedNetworkTypesListener mAllowedNetworkTypesListener;
    private TelephonyManager mTelephonyManager;
    @NonNull private final FeatureFlags mFeatureFlags;

    /**
     * The listener for allowed network types changed
@@ -105,7 +108,9 @@ public class CarrierServiceStateTracker extends Handler {
        }
    }

    public CarrierServiceStateTracker(Phone phone, ServiceStateTracker sst) {
    public CarrierServiceStateTracker(Phone phone, ServiceStateTracker sst,
            @NonNull FeatureFlags featureFlags) {
        mFeatureFlags = featureFlags;
        this.mPhone = phone;
        this.mSST = sst;
        mTelephonyManager = mPhone.getContext().getSystemService(
@@ -165,12 +170,14 @@ public class CarrierServiceStateTracker extends Handler {
        mAllowedNetworkTypesListener = new AllowedNetworkTypesListener();
        registerAllowedNetworkTypesListener();

        if (mFeatureFlags.stopSpammingEmergencyNotification()) {
            // register a receiver for notification actions
            mPhone.getContext().registerReceiver(
                    mActionReceiver,
                    new IntentFilter(ACTION_NEVER_ASK_AGAIN),
                    Context.RECEIVER_NOT_EXPORTED);
        }
    }

    /**
     * Return preferred network mode listener
@@ -402,7 +409,8 @@ public class CarrierServiceStateTracker extends Handler {
            return;
        }

        if (shouldSilenceEmrgNetNotif(notificationType, context)) {
        if (mFeatureFlags.stopSpammingEmergencyNotification()
                && shouldSilenceEmrgNetNotif(notificationType, context)) {
            Rlog.i(LOG_TAG, "sendNotification: silencing NOTIFICATION_EMERGENCY_NETWORK");
            return;
        }
@@ -681,6 +689,7 @@ public class CarrierServiceStateTracker extends Handler {
                    com.android.internal.R.string.EmergencyCallWarningTitle);
            CharSequence details = res.getText(
                    com.android.internal.R.string.EmergencyCallWarningSummary);
            if (mFeatureFlags.stopSpammingEmergencyNotification()) {
                return new Notification.Builder(context)
                        .setContentTitle(title)
                        .setStyle(new Notification.BigTextStyle().bigText(details))
@@ -688,6 +697,14 @@ public class CarrierServiceStateTracker extends Handler {
                        .setOngoing(true)
                        .setActions(createDoNotShowAgainAction(context))
                        .setChannelId(NotificationChannelController.CHANNEL_ID_WFC);
            } else {
                return new Notification.Builder(context)
                        .setContentTitle(title)
                        .setStyle(new Notification.BigTextStyle().bigText(details))
                        .setContentText(details)
                        .setOngoing(true)
                        .setChannelId(NotificationChannelController.CHANNEL_ID_WFC);
            }
        }

        /**
+1 −1
Original line number Diff line number Diff line
@@ -354,7 +354,7 @@ public class GsmCdmaPhone extends Phone {
        mSignalStrengthController = mTelephonyComponentFactory.inject(
                SignalStrengthController.class.getName()).makeSignalStrengthController(this);
        mSST = mTelephonyComponentFactory.inject(ServiceStateTracker.class.getName())
                .makeServiceStateTracker(this, this.mCi);
                .makeServiceStateTracker(this, this.mCi, featureFlags);
        mEmergencyNumberTracker = mTelephonyComponentFactory
                .inject(EmergencyNumberTracker.class.getName()).makeEmergencyNumberTracker(
                        this, this.mCi);
+4 −2
Original line number Diff line number Diff line
@@ -94,6 +94,7 @@ import com.android.internal.telephony.data.AccessNetworksManager;
import com.android.internal.telephony.data.AccessNetworksManager.AccessNetworksManagerCallback;
import com.android.internal.telephony.data.DataNetwork;
import com.android.internal.telephony.data.DataNetworkController.DataNetworkControllerCallback;
import com.android.internal.telephony.flags.FeatureFlags;
import com.android.internal.telephony.imsphone.ImsPhone;
import com.android.internal.telephony.metrics.RadioPowerStateStats;
import com.android.internal.telephony.metrics.ServiceStateStats;
@@ -625,7 +626,8 @@ public class ServiceStateTracker extends Handler {
     */
    private AccessNetworksManagerCallback mAccessNetworksManagerCallback = null;

    public ServiceStateTracker(GsmCdmaPhone phone, CommandsInterface ci) {
    public ServiceStateTracker(GsmCdmaPhone phone, CommandsInterface ci,
            FeatureFlags featureFlags) {
        mNitzState = TelephonyComponentFactory.getInstance()
                .inject(NitzStateMachine.class.getName())
                .makeNitzStateMachine(phone);
@@ -710,7 +712,7 @@ public class ServiceStateTracker extends Handler {
        mCi.setOnRestrictedStateChanged(this, EVENT_RESTRICTED_STATE_CHANGED, null);
        updatePhoneType();

        mCSST = new CarrierServiceStateTracker(phone, this);
        mCSST = new CarrierServiceStateTracker(phone, this, featureFlags);

        registerForNetworkAttached(mCSST,
                CarrierServiceStateTracker.CARRIER_EVENT_VOICE_REGISTRATION, null);
+3 −2
Original line number Diff line number Diff line
@@ -288,8 +288,9 @@ public class TelephonyComponentFactory {
        return new SmsUsageMonitor(context);
    }

    public ServiceStateTracker makeServiceStateTracker(GsmCdmaPhone phone, CommandsInterface ci) {
        return new ServiceStateTracker(phone, ci);
    public ServiceStateTracker makeServiceStateTracker(GsmCdmaPhone phone, CommandsInterface ci,
            @NonNull FeatureFlags featureFlags) {
        return new ServiceStateTracker(phone, ci, featureFlags);
    }

    /**
Loading