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
This commit is contained in:
Shuo Qian
2019-12-19 15:39:44 -08:00
committed by sqian
parent e82d740d6c
commit c12886376a
4 changed files with 109 additions and 13 deletions

View File

@@ -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();

View File

@@ -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);

View File

@@ -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,

View File

@@ -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;