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

Commit c1288637 authored by Shuo Qian's avatar Shuo Qian Committed by sqian
Browse files

Make PreciseCallState Constructor System API

We would make the constructor of PreciseCallState system API, to resolve
the mainline concern from TelephonyRegistry.

Also clean up unused imports.

Test: built
Bug: 146585782
Change-Id: I0bbca065f86fe352a06c63bdd1b25d34e77a9265
parent e82d740d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -8588,6 +8588,7 @@ package android.telephony {
  }
  public final class PreciseCallState implements android.os.Parcelable {
    ctor public PreciseCallState(int, int, int, int, int);
    method public int describeContents();
    method public int getBackgroundCallState();
    method public int getForegroundCallState();
+13 −4
Original line number Diff line number Diff line
@@ -441,10 +441,10 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
            mCallDisconnectCause[i] = DisconnectCause.NOT_VALID;
            mCallPreciseDisconnectCause[i] = PreciseDisconnectCause.NOT_VALID;
            mCallQuality[i] = createCallQuality();
            mCallAttributes[i] = new CallAttributes(new PreciseCallState(),
            mCallAttributes[i] = new CallAttributes(createPreciseCallState(),
                    TelephonyManager.NETWORK_TYPE_UNKNOWN, createCallQuality());
            mCallNetworkType[i] = TelephonyManager.NETWORK_TYPE_UNKNOWN;
            mPreciseCallState[i] = new PreciseCallState();
            mPreciseCallState[i] = createPreciseCallState();
            mRingingCallState[i] = PreciseCallState.PRECISE_CALL_STATE_IDLE;
            mForegroundCallState[i] = PreciseCallState.PRECISE_CALL_STATE_IDLE;
            mBackgroundCallState[i] = PreciseCallState.PRECISE_CALL_STATE_IDLE;
@@ -534,10 +534,10 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
            mCallDisconnectCause[i] = DisconnectCause.NOT_VALID;
            mCallPreciseDisconnectCause[i] = PreciseDisconnectCause.NOT_VALID;
            mCallQuality[i] = createCallQuality();
            mCallAttributes[i] = new CallAttributes(new PreciseCallState(),
            mCallAttributes[i] = new CallAttributes(createPreciseCallState(),
                    TelephonyManager.NETWORK_TYPE_UNKNOWN, createCallQuality());
            mCallNetworkType[i] = TelephonyManager.NETWORK_TYPE_UNKNOWN;
            mPreciseCallState[i] = new PreciseCallState();
            mPreciseCallState[i] = createPreciseCallState();
            mRingingCallState[i] = PreciseCallState.PRECISE_CALL_STATE_IDLE;
            mForegroundCallState[i] = PreciseCallState.PRECISE_CALL_STATE_IDLE;
            mBackgroundCallState[i] = PreciseCallState.PRECISE_CALL_STATE_IDLE;
@@ -2645,6 +2645,15 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
        }
    }

    /** Returns a new PreciseCallState object with default values. */
    private static PreciseCallState createPreciseCallState() {
        return new PreciseCallState(PreciseCallState.PRECISE_CALL_STATE_NOT_VALID,
            PreciseCallState.PRECISE_CALL_STATE_NOT_VALID,
            PreciseCallState.PRECISE_CALL_STATE_NOT_VALID,
            DisconnectCause.NOT_VALID,
            PreciseDisconnectCause.NOT_VALID);
    }

    /** Returns a new CallQuality object with default values. */
    private static CallQuality createCallQuality() {
        return new CallQuality(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+80 −0
Original line number Diff line number Diff line
@@ -485,6 +485,86 @@ public class Annotation {
            PreciseCallState.PRECISE_CALL_STATE_DISCONNECTING})
    public @interface PreciseCallStates {}

    @IntDef(value = {
            DisconnectCause.NOT_VALID,
            DisconnectCause.NOT_DISCONNECTED,
            DisconnectCause.INCOMING_MISSED,
            DisconnectCause.NORMAL,
            DisconnectCause.LOCAL,
            DisconnectCause.BUSY,
            DisconnectCause.CONGESTION,
            DisconnectCause.MMI,
            DisconnectCause.INVALID_NUMBER,
            DisconnectCause.NUMBER_UNREACHABLE,
            DisconnectCause.SERVER_UNREACHABLE,
            DisconnectCause.INVALID_CREDENTIALS,
            DisconnectCause.OUT_OF_NETWORK,
            DisconnectCause.SERVER_ERROR,
            DisconnectCause.TIMED_OUT,
            DisconnectCause.LOST_SIGNAL,
            DisconnectCause.LIMIT_EXCEEDED,
            DisconnectCause.INCOMING_REJECTED,
            DisconnectCause.POWER_OFF,
            DisconnectCause.OUT_OF_SERVICE,
            DisconnectCause.ICC_ERROR,
            DisconnectCause.CALL_BARRED,
            DisconnectCause.FDN_BLOCKED,
            DisconnectCause.CS_RESTRICTED,
            DisconnectCause.CS_RESTRICTED_NORMAL,
            DisconnectCause.CS_RESTRICTED_EMERGENCY,
            DisconnectCause.UNOBTAINABLE_NUMBER,
            DisconnectCause.CDMA_LOCKED_UNTIL_POWER_CYCLE,
            DisconnectCause.CDMA_DROP,
            DisconnectCause.CDMA_INTERCEPT,
            DisconnectCause.CDMA_REORDER,
            DisconnectCause.CDMA_SO_REJECT,
            DisconnectCause.CDMA_RETRY_ORDER,
            DisconnectCause.CDMA_ACCESS_FAILURE,
            DisconnectCause.CDMA_PREEMPTED,
            DisconnectCause.CDMA_NOT_EMERGENCY,
            DisconnectCause.CDMA_ACCESS_BLOCKED,
            DisconnectCause.ERROR_UNSPECIFIED,
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface DisconnectCauses {
    }

    @IntDef(value = {
            PreciseDisconnectCause.NOT_VALID,
            PreciseDisconnectCause.NO_DISCONNECT_CAUSE_AVAILABLE,
            PreciseDisconnectCause.UNOBTAINABLE_NUMBER,
            PreciseDisconnectCause.NORMAL,
            PreciseDisconnectCause.BUSY,
            PreciseDisconnectCause.NUMBER_CHANGED,
            PreciseDisconnectCause.STATUS_ENQUIRY,
            PreciseDisconnectCause.NORMAL_UNSPECIFIED,
            PreciseDisconnectCause.NO_CIRCUIT_AVAIL,
            PreciseDisconnectCause.TEMPORARY_FAILURE,
            PreciseDisconnectCause.SWITCHING_CONGESTION,
            PreciseDisconnectCause.CHANNEL_NOT_AVAIL,
            PreciseDisconnectCause.QOS_NOT_AVAIL,
            PreciseDisconnectCause.BEARER_NOT_AVAIL,
            PreciseDisconnectCause.ACM_LIMIT_EXCEEDED,
            PreciseDisconnectCause.CALL_BARRED,
            PreciseDisconnectCause.FDN_BLOCKED,
            PreciseDisconnectCause.IMSI_UNKNOWN_IN_VLR,
            PreciseDisconnectCause.IMEI_NOT_ACCEPTED,
            PreciseDisconnectCause.CDMA_LOCKED_UNTIL_POWER_CYCLE,
            PreciseDisconnectCause.CDMA_DROP,
            PreciseDisconnectCause.CDMA_INTERCEPT,
            PreciseDisconnectCause.CDMA_REORDER,
            PreciseDisconnectCause.CDMA_SO_REJECT,
            PreciseDisconnectCause.CDMA_RETRY_ORDER,
            PreciseDisconnectCause.CDMA_ACCESS_FAILURE,
            PreciseDisconnectCause.CDMA_PREEMPTED,
            PreciseDisconnectCause.CDMA_NOT_EMERGENCY,
            PreciseDisconnectCause.CDMA_ACCESS_BLOCKED,
            PreciseDisconnectCause.ERROR_UNSPECIFIED,
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface PreciseDisconnectCauses {
    }

    @Retention(RetentionPolicy.SOURCE)
    @IntDef(prefix = {"RIL_RADIO_TECHNOLOGY_" }, value = {
            ServiceState.RIL_RADIO_TECHNOLOGY_UNKNOWN,
+15 −9
Original line number Diff line number Diff line
@@ -16,19 +16,18 @@

package android.telephony;

import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.annotation.UnsupportedAppUsage;
import android.os.Parcel;
import android.os.Parcelable;
import android.telephony.Annotation.DisconnectCauses;
import android.telephony.Annotation.PreciseCallStates;
import android.telephony.Annotation.PreciseDisconnectCauses;
import android.telephony.DisconnectCause;
import android.telephony.PreciseDisconnectCause;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Objects;

/**
@@ -73,19 +72,26 @@ public final class PreciseCallState implements Parcelable {
    private @PreciseCallStates int mRingingCallState = PRECISE_CALL_STATE_NOT_VALID;
    private @PreciseCallStates int mForegroundCallState = PRECISE_CALL_STATE_NOT_VALID;
    private @PreciseCallStates int mBackgroundCallState = PRECISE_CALL_STATE_NOT_VALID;
    private int mDisconnectCause = DisconnectCause.NOT_VALID;
    private int mPreciseDisconnectCause = PreciseDisconnectCause.NOT_VALID;
    private @DisconnectCauses int mDisconnectCause = DisconnectCause.NOT_VALID;
    private @PreciseDisconnectCauses int mPreciseDisconnectCause = PreciseDisconnectCause.NOT_VALID;

    /**
     * Constructor
     * Construct PreciseCallState with parameters
     *
     * @param ringingCall ring call state
     * @param foregroundCall foreground call state
     * @param backgroundCall background call state
     * @param disconnectCause disconnect cause
     * @param preciseDisconnectCause precise disconnect cause
     *
     * @hide
     */
    @UnsupportedAppUsage
    @SystemApi
    public PreciseCallState(@PreciseCallStates int ringingCall,
                            @PreciseCallStates int foregroundCall,
                            @PreciseCallStates int backgroundCall, int disconnectCause,
                            int preciseDisconnectCause) {
                            @PreciseCallStates int backgroundCall,
                            @DisconnectCauses int disconnectCause,
                            @PreciseDisconnectCauses int preciseDisconnectCause) {
        mRingingCallState = ringingCall;
        mForegroundCallState = foregroundCall;
        mBackgroundCallState = backgroundCall;