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

Commit 2ea0b56c authored by Nathan Harold's avatar Nathan Harold Committed by Gerrit Code Review
Browse files

Merge changes from topics "barring-cp", "nri-rplmn"

* changes:
  Allow Nullable Registered PLMN
  Return the RPLMN from NetworkRegistrationInfo
  Expose PreciseDataConnectionstate#getApnSetting()
  Skip sanitizing location info for Null Barring CID
  Remove BarringInfo#isServiceBarred()
  Introduce a new RIL request constant to support getBarringInfo.
  Update BarringInfo as Barring HAL date stuctures updated
  Add a BARRING_TYPE_UNKNOWN for Unreported Barring
  Add Callback to notify changes of barring status
parents 055e616b 4ad89fb9
Loading
Loading
Loading
Loading
+36 −0
Original line number Diff line number Diff line
@@ -44680,6 +44680,38 @@ package android.telephony {
    field public static final int PRIORITY_MED = 2; // 0x2
  }
  public final class BarringInfo implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public android.telephony.BarringInfo.BarringServiceInfo getBarringServiceInfo(int);
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final int BARRING_SERVICE_TYPE_CS_FALLBACK = 5; // 0x5
    field public static final int BARRING_SERVICE_TYPE_CS_SERVICE = 0; // 0x0
    field public static final int BARRING_SERVICE_TYPE_CS_VOICE = 2; // 0x2
    field public static final int BARRING_SERVICE_TYPE_EMERGENCY = 8; // 0x8
    field public static final int BARRING_SERVICE_TYPE_MMTEL_VIDEO = 7; // 0x7
    field public static final int BARRING_SERVICE_TYPE_MMTEL_VOICE = 6; // 0x6
    field public static final int BARRING_SERVICE_TYPE_MO_DATA = 4; // 0x4
    field public static final int BARRING_SERVICE_TYPE_MO_SIGNALLING = 3; // 0x3
    field public static final int BARRING_SERVICE_TYPE_PS_SERVICE = 1; // 0x1
    field public static final int BARRING_SERVICE_TYPE_SMS = 9; // 0x9
    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.BarringInfo> CREATOR;
  }
  public static final class BarringInfo.BarringServiceInfo implements android.os.Parcelable {
    method public int describeContents();
    method public int getBarringType();
    method public int getConditionalBarringFactor();
    method public int getConditionalBarringTimeSeconds();
    method public boolean isBarred();
    method public boolean isConditionallyBarred();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final int BARRING_TYPE_CONDITIONAL = 1; // 0x1
    field public static final int BARRING_TYPE_NONE = 0; // 0x0
    field public static final int BARRING_TYPE_UNCONDITIONAL = 2; // 0x2
    field public static final int BARRING_TYPE_UNKNOWN = -1; // 0xffffffff
    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.BarringInfo.BarringServiceInfo> CREATOR;
  }
  public class CarrierConfigManager {
    method @Nullable public android.os.PersistableBundle getConfig();
    method @Nullable public android.os.PersistableBundle getConfigByComponentForSubId(@NonNull String, int);
@@ -45316,6 +45348,7 @@ package android.telephony {
    method @Nullable public android.telephony.CellIdentity getCellIdentity();
    method public int getDomain();
    method public int getNrState();
    method @Nullable public String getRegisteredPlmn();
    method public int getTransportType();
    method public boolean isRegistered();
    method public boolean isRoaming();
@@ -45442,6 +45475,7 @@ package android.telephony {
    ctor public PhoneStateListener();
    ctor public PhoneStateListener(@NonNull java.util.concurrent.Executor);
    method public void onActiveDataSubscriptionIdChanged(int);
    method public void onBarringInfoChanged(@NonNull android.telephony.BarringInfo);
    method @RequiresPermission("android.permission.READ_PRECISE_PHONE_STATE") public void onCallDisconnectCauseChanged(int, int);
    method public void onCallForwardingIndicatorChanged(boolean);
    method public void onCallStateChanged(int, String);
@@ -45460,6 +45494,7 @@ package android.telephony {
    method public void onSignalStrengthsChanged(android.telephony.SignalStrength);
    method public void onUserMobileDataStateChanged(boolean);
    field public static final int LISTEN_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGE = 4194304; // 0x400000
    field @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public static final int LISTEN_BARRING_INFO = -2147483648; // 0x80000000
    field @RequiresPermission("android.permission.READ_PRECISE_PHONE_STATE") public static final int LISTEN_CALL_DISCONNECT_CAUSES = 33554432; // 0x2000000
    field public static final int LISTEN_CALL_FORWARDING_INDICATOR = 8; // 0x8
    field public static final int LISTEN_CALL_STATE = 32; // 0x20
@@ -45482,6 +45517,7 @@ package android.telephony {
  public final class PreciseDataConnectionState implements android.os.Parcelable {
    method public int describeContents();
    method @Nullable public android.telephony.data.ApnSetting getApnSetting();
    method public int getLastCauseCode();
    method @Nullable public android.net.LinkProperties getLinkProperties();
    method public int getNetworkType();
+6 −0
Original line number Diff line number Diff line
@@ -8169,6 +8169,11 @@ package android.telephony {
    field public static final int FREQUENCY_RANGE_GROUP_UNKNOWN = 0; // 0x0
  }
  public final class BarringInfo implements android.os.Parcelable {
    ctor public BarringInfo();
    method @NonNull public android.telephony.BarringInfo createLocationInfoSanitizedCopy();
  }
  public final class CallAttributes implements android.os.Parcelable {
    ctor public CallAttributes(@NonNull android.telephony.PreciseCallState, int, @NonNull android.telephony.CallQuality);
    method public int describeContents();
@@ -8844,6 +8849,7 @@ package android.telephony {
    method @NonNull public android.telephony.NetworkRegistrationInfo.Builder setCellIdentity(@Nullable android.telephony.CellIdentity);
    method @NonNull public android.telephony.NetworkRegistrationInfo.Builder setDomain(int);
    method @NonNull public android.telephony.NetworkRegistrationInfo.Builder setEmergencyOnly(boolean);
    method @NonNull public android.telephony.NetworkRegistrationInfo.Builder setRegisteredPlmn(@Nullable String);
    method @NonNull public android.telephony.NetworkRegistrationInfo.Builder setRegistrationState(int);
    method @NonNull public android.telephony.NetworkRegistrationInfo.Builder setRejectCause(int);
    method @NonNull public android.telephony.NetworkRegistrationInfo.Builder setTransportType(int);
+10 −0
Original line number Diff line number Diff line
@@ -3098,6 +3098,15 @@ package android.telephony {
    field public static final int FREQUENCY_RANGE_GROUP_UNKNOWN = 0; // 0x0
  }

  public final class BarringInfo implements android.os.Parcelable {
    ctor public BarringInfo();
    ctor public BarringInfo(@Nullable android.telephony.CellIdentity, @NonNull android.util.SparseArray<android.telephony.BarringInfo.BarringServiceInfo>);
  }

  public static final class BarringInfo.BarringServiceInfo implements android.os.Parcelable {
    ctor public BarringInfo.BarringServiceInfo(int, boolean, int, int);
  }

  public final class CallQuality implements android.os.Parcelable {
    ctor public CallQuality(int, int, int, int, int, int, int, int, int, int, int);
    ctor public CallQuality(int, int, int, int, int, int, int, int, int, int, int, boolean, boolean, boolean);
@@ -3184,6 +3193,7 @@ package android.telephony {
    method @NonNull public android.telephony.NetworkRegistrationInfo.Builder setCellIdentity(@Nullable android.telephony.CellIdentity);
    method @NonNull public android.telephony.NetworkRegistrationInfo.Builder setDomain(int);
    method @NonNull public android.telephony.NetworkRegistrationInfo.Builder setEmergencyOnly(boolean);
    method @NonNull public android.telephony.NetworkRegistrationInfo.Builder setRegisteredPlmn(@Nullable String);
    method @NonNull public android.telephony.NetworkRegistrationInfo.Builder setRegistrationState(int);
    method @NonNull public android.telephony.NetworkRegistrationInfo.Builder setRejectCause(int);
    method @NonNull public android.telephony.NetworkRegistrationInfo.Builder setTransportType(int);
+33 −0
Original line number Diff line number Diff line
@@ -427,6 +427,17 @@ public class PhoneStateListener {
    @RequiresPermission(Manifest.permission.READ_PHONE_STATE)
    public static final int LISTEN_REGISTRATION_FAILURE = 0x40000000;

    /**
     * Listen for Barring Information for the current registered / camped cell.
     *
     * <p>Requires permission {@link android.Manifest.permission#READ_PHONE_STATE} or the calling
     * app has carrier privileges (see {@link TelephonyManager#hasCarrierPrivileges}).
     *
     * @see #onBarringInfoChanged()
     */
    @RequiresPermission(Manifest.permission.READ_PHONE_STATE)
    public static final int LISTEN_BARRING_INFO = 0x80000000;

    /*
     * Subscription used to listen to the phone state changes
     * @hide
@@ -1035,6 +1046,20 @@ public class PhoneStateListener {
        // default implementation empty
    }

    /**
     * Report updated barring information for the current camped/registered cell.
     *
     * <p>Barring info is provided for all services applicable to the current camped/registered
     * cell, for the registered PLMN and current access class/access category.
     *
     * @param barringInfo for all services on the current cell.
     *
     * @see android.telephony.BarringInfo
     */
    public void onBarringInfoChanged(@NonNull BarringInfo barringInfo) {
        // default implementation empty
    }

    /**
     * The callback methods need to be called on the handler thread where
     * this object was created.  If the binder did that for us it'd be nice.
@@ -1328,6 +1353,14 @@ public class PhoneStateListener {
                            cellIdentity, chosenPlmn, domain, causeCode, additionalCauseCode)));
            // default implementation empty
        }

        public void onBarringInfoChanged(BarringInfo barringInfo) {
            PhoneStateListener psl = mPhoneStateListenerWeakRef.get();
            if (psl == null) return;

            Binder.withCleanCallingIdentity(
                    () -> mExecutor.execute(() -> psl.onBarringInfoChanged(barringInfo)));
        }
    }


+17 −0
Original line number Diff line number Diff line
@@ -729,4 +729,21 @@ public class TelephonyRegistryManager {
        } catch (RemoteException ex) {
        }
    }

    /**
     * Notify {@link BarringInfo} has changed for a specific subscription.
     *
     * @param slotIndex for the phone object that got updated barring info.
     * @param subId for which the BarringInfo changed.
     * @param barringInfo updated BarringInfo.
     */
    public void notifyBarringInfoChanged(
            int slotIndex, int subId, @NonNull BarringInfo barringInfo) {
        try {
            sRegistry.notifyBarringInfoChanged(slotIndex, subId, barringInfo);
        } catch (RemoteException ex) {
            // system server crash
        }
    }

}
Loading