Merge "Support for showing self-managed calls in IncallService."
This commit is contained in:
@ -36744,6 +36744,7 @@ package android.telecom {
|
||||
field public static final int PROPERTY_HAS_CDMA_VOICE_PRIVACY = 128; // 0x80
|
||||
field public static final int PROPERTY_HIGH_DEF_AUDIO = 16; // 0x10
|
||||
field public static final int PROPERTY_IS_EXTERNAL_CALL = 64; // 0x40
|
||||
field public static final int PROPERTY_SELF_MANAGED = 256; // 0x100
|
||||
field public static final int PROPERTY_WIFI = 8; // 0x8
|
||||
}
|
||||
|
||||
@ -37311,6 +37312,7 @@ package android.telecom {
|
||||
method public boolean handleMmi(java.lang.String);
|
||||
method public boolean handleMmi(java.lang.String, android.telecom.PhoneAccountHandle);
|
||||
method public boolean isInCall();
|
||||
method public boolean isInManagedCall();
|
||||
method public boolean isIncomingCallPermitted(android.telecom.PhoneAccountHandle);
|
||||
method public boolean isOutgoingCallPermitted(android.telecom.PhoneAccountHandle);
|
||||
method public boolean isVoiceMailNumber(android.telecom.PhoneAccountHandle, java.lang.String);
|
||||
@ -37347,6 +37349,7 @@ package android.telecom {
|
||||
field public static final java.lang.String GATEWAY_ORIGINAL_ADDRESS = "android.telecom.extra.GATEWAY_ORIGINAL_ADDRESS";
|
||||
field public static final java.lang.String GATEWAY_PROVIDER_PACKAGE = "android.telecom.extra.GATEWAY_PROVIDER_PACKAGE";
|
||||
field public static final java.lang.String METADATA_INCLUDE_EXTERNAL_CALLS = "android.telecom.INCLUDE_EXTERNAL_CALLS";
|
||||
field public static final java.lang.String METADATA_INCLUDE_SELF_MANAGED_CALLS = "android.telecom.INCLUDE_SELF_MANAGED_CALLS";
|
||||
field public static final java.lang.String METADATA_IN_CALL_SERVICE_RINGING = "android.telecom.IN_CALL_SERVICE_RINGING";
|
||||
field public static final java.lang.String METADATA_IN_CALL_SERVICE_UI = "android.telecom.IN_CALL_SERVICE_UI";
|
||||
field public static final int PRESENTATION_ALLOWED = 1; // 0x1
|
||||
|
@ -39718,6 +39718,7 @@ package android.telecom {
|
||||
field public static final int PROPERTY_HAS_CDMA_VOICE_PRIVACY = 128; // 0x80
|
||||
field public static final int PROPERTY_HIGH_DEF_AUDIO = 16; // 0x10
|
||||
field public static final int PROPERTY_IS_EXTERNAL_CALL = 64; // 0x40
|
||||
field public static final int PROPERTY_SELF_MANAGED = 256; // 0x100
|
||||
field public static final int PROPERTY_WIFI = 8; // 0x8
|
||||
}
|
||||
|
||||
@ -40477,6 +40478,7 @@ package android.telecom {
|
||||
method public boolean handleMmi(java.lang.String);
|
||||
method public boolean handleMmi(java.lang.String, android.telecom.PhoneAccountHandle);
|
||||
method public boolean isInCall();
|
||||
method public boolean isInManagedCall();
|
||||
method public boolean isIncomingCallPermitted(android.telecom.PhoneAccountHandle);
|
||||
method public boolean isOutgoingCallPermitted(android.telecom.PhoneAccountHandle);
|
||||
method public boolean isRinging();
|
||||
@ -40520,6 +40522,7 @@ package android.telecom {
|
||||
field public static final java.lang.String GATEWAY_ORIGINAL_ADDRESS = "android.telecom.extra.GATEWAY_ORIGINAL_ADDRESS";
|
||||
field public static final java.lang.String GATEWAY_PROVIDER_PACKAGE = "android.telecom.extra.GATEWAY_PROVIDER_PACKAGE";
|
||||
field public static final java.lang.String METADATA_INCLUDE_EXTERNAL_CALLS = "android.telecom.INCLUDE_EXTERNAL_CALLS";
|
||||
field public static final java.lang.String METADATA_INCLUDE_SELF_MANAGED_CALLS = "android.telecom.INCLUDE_SELF_MANAGED_CALLS";
|
||||
field public static final java.lang.String METADATA_IN_CALL_SERVICE_RINGING = "android.telecom.IN_CALL_SERVICE_RINGING";
|
||||
field public static final java.lang.String METADATA_IN_CALL_SERVICE_UI = "android.telecom.IN_CALL_SERVICE_UI";
|
||||
field public static final int PRESENTATION_ALLOWED = 1; // 0x1
|
||||
|
@ -36826,6 +36826,7 @@ package android.telecom {
|
||||
field public static final int PROPERTY_HAS_CDMA_VOICE_PRIVACY = 128; // 0x80
|
||||
field public static final int PROPERTY_HIGH_DEF_AUDIO = 16; // 0x10
|
||||
field public static final int PROPERTY_IS_EXTERNAL_CALL = 64; // 0x40
|
||||
field public static final int PROPERTY_SELF_MANAGED = 256; // 0x100
|
||||
field public static final int PROPERTY_WIFI = 8; // 0x8
|
||||
}
|
||||
|
||||
@ -37393,6 +37394,7 @@ package android.telecom {
|
||||
method public boolean handleMmi(java.lang.String);
|
||||
method public boolean handleMmi(java.lang.String, android.telecom.PhoneAccountHandle);
|
||||
method public boolean isInCall();
|
||||
method public boolean isInManagedCall();
|
||||
method public boolean isIncomingCallPermitted(android.telecom.PhoneAccountHandle);
|
||||
method public boolean isOutgoingCallPermitted(android.telecom.PhoneAccountHandle);
|
||||
method public boolean isVoiceMailNumber(android.telecom.PhoneAccountHandle, java.lang.String);
|
||||
@ -37429,6 +37431,7 @@ package android.telecom {
|
||||
field public static final java.lang.String GATEWAY_ORIGINAL_ADDRESS = "android.telecom.extra.GATEWAY_ORIGINAL_ADDRESS";
|
||||
field public static final java.lang.String GATEWAY_PROVIDER_PACKAGE = "android.telecom.extra.GATEWAY_PROVIDER_PACKAGE";
|
||||
field public static final java.lang.String METADATA_INCLUDE_EXTERNAL_CALLS = "android.telecom.INCLUDE_EXTERNAL_CALLS";
|
||||
field public static final java.lang.String METADATA_INCLUDE_SELF_MANAGED_CALLS = "android.telecom.INCLUDE_SELF_MANAGED_CALLS";
|
||||
field public static final java.lang.String METADATA_IN_CALL_SERVICE_RINGING = "android.telecom.IN_CALL_SERVICE_RINGING";
|
||||
field public static final java.lang.String METADATA_IN_CALL_SERVICE_UI = "android.telecom.IN_CALL_SERVICE_UI";
|
||||
field public static final int PRESENTATION_ALLOWED = 1; // 0x1
|
||||
|
@ -321,8 +321,15 @@ public final class Call {
|
||||
*/
|
||||
public static final int PROPERTY_HAS_CDMA_VOICE_PRIVACY = 0x00000080;
|
||||
|
||||
/**
|
||||
* Indicates that the call is from a self-managed {@link ConnectionService}.
|
||||
* <p>
|
||||
* See also {@link Connection#PROPERTY_SELF_MANAGED}
|
||||
*/
|
||||
public static final int PROPERTY_SELF_MANAGED = 0x00000100;
|
||||
|
||||
//******************************************************************************************
|
||||
// Next PROPERTY value: 0x00000100
|
||||
// Next PROPERTY value: 0x00000200
|
||||
//******************************************************************************************
|
||||
|
||||
private final String mTelecomCallId;
|
||||
|
@ -372,6 +372,24 @@ public class TelecomManager {
|
||||
public static final String METADATA_INCLUDE_EXTERNAL_CALLS =
|
||||
"android.telecom.INCLUDE_EXTERNAL_CALLS";
|
||||
|
||||
/**
|
||||
* A boolean meta-data value indicating whether an {@link InCallService} wants to be informed of
|
||||
* calls which have the {@link Call.Details#PROPERTY_SELF_MANAGED} property. A self-managed
|
||||
* call is one which originates from a self-managed {@link ConnectionService} which has chosen
|
||||
* to implement its own call user interface. An {@link InCallService} implementation which
|
||||
* would like to be informed of external calls should set this meta-data to {@code true} in the
|
||||
* manifest registration of their {@link InCallService}. By default, the {@link InCallService}
|
||||
* will NOT be informed about self-managed calls.
|
||||
* <p>
|
||||
* An {@link InCallService} which receives self-managed calls is free to view and control the
|
||||
* state of calls in the self-managed {@link ConnectionService}. An example use-case is
|
||||
* exposing these calls to a wearable or automotive device via its companion app.
|
||||
* <p>
|
||||
* See also {@link Connection#PROPERTY_SELF_MANAGED}.
|
||||
*/
|
||||
public static final String METADATA_INCLUDE_SELF_MANAGED_CALLS =
|
||||
"android.telecom.INCLUDE_SELF_MANAGED_CALLS";
|
||||
|
||||
/**
|
||||
* The dual tone multi-frequency signaling character sent to indicate the dialing system should
|
||||
* pause for a predefined period.
|
||||
@ -1051,10 +1069,12 @@ public class TelecomManager {
|
||||
|
||||
/**
|
||||
* Returns whether there is an ongoing phone call (can be in dialing, ringing, active or holding
|
||||
* states).
|
||||
* states) originating from either a manager or self-managed {@link ConnectionService}.
|
||||
* <p>
|
||||
* Requires permission: {@link android.Manifest.permission#READ_PHONE_STATE}
|
||||
* </p>
|
||||
*
|
||||
* @return {@code true} if there is an ongoing call in either a managed or self-managed
|
||||
* {@link ConnectionService}, {@code false} otherwise.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
|
||||
public boolean isInCall() {
|
||||
@ -1068,6 +1088,31 @@ public class TelecomManager {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether there is an ongoing call originating from a managed
|
||||
* {@link ConnectionService}. An ongoing call can be in dialing, ringing, active or holding
|
||||
* states.
|
||||
* <p>
|
||||
* If you also need to know if there are ongoing self-managed calls, use {@link #isInCall()}
|
||||
* instead.
|
||||
* <p>
|
||||
* Requires permission: {@link android.Manifest.permission#READ_PHONE_STATE}
|
||||
*
|
||||
* @return {@code true} if there is an ongoing call in a managed {@link ConnectionService},
|
||||
* {@code false} otherwise.
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
|
||||
public boolean isInManagedCall() {
|
||||
try {
|
||||
if (isServiceConnected()) {
|
||||
return getTelecomService().isInManagedCall(mContext.getOpPackageName());
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "RemoteException calling isInManagedCall().", e);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns one of the following constants that represents the current state of Telecom:
|
||||
*
|
||||
@ -1079,6 +1124,9 @@ public class TelecomManager {
|
||||
* {@link android.Manifest.permission#READ_PHONE_STATE} permission. This is intentional, to
|
||||
* preserve the behavior of {@link TelephonyManager#getCallState()}, which also did not require
|
||||
* the permission.
|
||||
*
|
||||
* Takes into consideration both managed and self-managed calls.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@ -1096,6 +1144,7 @@ public class TelecomManager {
|
||||
/**
|
||||
* Returns whether there currently exists is a ringing incoming-call.
|
||||
*
|
||||
* @return {@code true} if there is a managed or self-managed ringing call.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
|
@ -164,6 +164,11 @@ interface ITelecomService {
|
||||
*/
|
||||
boolean isInCall(String callingPackage);
|
||||
|
||||
/**
|
||||
* @see TelecomServiceImpl#isInManagedCall
|
||||
*/
|
||||
boolean isInManagedCall(String callingPackage);
|
||||
|
||||
/**
|
||||
* @see TelecomServiceImpl#isRinging
|
||||
*/
|
||||
|
Reference in New Issue
Block a user