Merge "Support for API cleanups." am: eeb095aa02

Change-Id: I1241ed5f20896e7d2758dc6627a13c8cd9114091
This commit is contained in:
Automerger Merge Worker 2020-02-13 18:19:51 +00:00
commit 4324282bf5
4 changed files with 66 additions and 4 deletions

View File

@ -337,8 +337,8 @@ public final class CallLogManager extends CallsManagerListenerBase {
int callFeatures = getCallFeatures(call.getVideoStateHistory(),
call.getDisconnectCause().getCode() == DisconnectCause.CALL_PULLED,
call.wasHighDefAudio(), call.wasWifi(),
(call.getConnectionProperties() & Connection.PROPERTY_ASSISTED_DIALING_USED) ==
Connection.PROPERTY_ASSISTED_DIALING_USED,
(call.getConnectionProperties() & Connection.PROPERTY_ASSISTED_DIALING) ==
Connection.PROPERTY_ASSISTED_DIALING,
call.wasEverRttCall(),
call.wasVolte());

View File

@ -16,9 +16,12 @@
package com.android.server.telecom;
import static android.Manifest.permission.MODIFY_PHONE_STATE;
import android.app.AppOpsManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Binder;
import android.os.Bundle;
@ -465,6 +468,32 @@ public class ConnectionServiceWrapper extends ServiceBinder implements
public void addConferenceCall(String callId, ParcelableConference parcelableConference,
Session.Info sessionInfo) {
Log.startSession(sessionInfo, LogUtils.Sessions.CSW_ADD_CONFERENCE_CALL);
if (parcelableConference.getConnectElapsedTimeMillis() != 0
&& mContext.checkCallingOrSelfPermission(MODIFY_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED) {
Log.w(this, "addConferenceCall from caller without permission!");
parcelableConference = new ParcelableConference(
parcelableConference.getPhoneAccount(),
parcelableConference.getState(),
parcelableConference.getConnectionCapabilities(),
parcelableConference.getConnectionProperties(),
parcelableConference.getConnectionIds(),
parcelableConference.getVideoProvider(),
parcelableConference.getVideoState(),
0 /* connectTimeMillis */,
0 /* connectElapsedRealTime */,
parcelableConference.getStatusHints(),
parcelableConference.getExtras(),
parcelableConference.getHandle(),
parcelableConference.getHandlePresentation(),
"" /* callerDisplayName */,
TelecomManager.PRESENTATION_UNKNOWN /* callerDisplayNamePresentation */,
parcelableConference.getDisconnectCause(),
parcelableConference.isRingbackRequested()
);
}
long token = Binder.clearCallingIdentity();
try {
synchronized (mLock) {
@ -752,6 +781,13 @@ public class ConnectionServiceWrapper extends ServiceBinder implements
public void setAddress(String callId, Uri address, int presentation,
Session.Info sessionInfo) {
Log.startSession(sessionInfo, "CSW.sA");
if (mContext.checkCallingOrSelfPermission(MODIFY_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED) {
Log.w(this, "setAddress from caller without permission.");
return;
}
long token = Binder.clearCallingIdentity();
try {
synchronized (mLock) {
@ -836,6 +872,13 @@ public class ConnectionServiceWrapper extends ServiceBinder implements
mAppOpsManager.checkPackage(Binder.getCallingUid(),
callingPhoneAccountHandle.getComponentName().getPackageName());
}
if (mContext.checkCallingOrSelfPermission(MODIFY_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED) {
Log.w(this, "addExistingConnection from caller without permission!");
return;
}
long token = Binder.clearCallingIdentity();
try {
synchronized (mLock) {
@ -1038,6 +1081,13 @@ public class ConnectionServiceWrapper extends ServiceBinder implements
public void setConferenceState(String callId, boolean isConference,
Session.Info sessionInfo) throws RemoteException {
Log.startSession(sessionInfo, "CSW.sCS");
if (mContext.checkCallingOrSelfPermission(MODIFY_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED) {
Log.w(this, "setConferenceState from caller without permission.");
return;
}
long token = Binder.clearCallingIdentity();
try {
synchronized (mLock) {

View File

@ -553,8 +553,8 @@ public class ParcelableCallUtils {
Connection.PROPERTY_SELF_MANAGED,
android.telecom.Call.Details.PROPERTY_SELF_MANAGED,
Connection.PROPERTY_ASSISTED_DIALING_USED,
android.telecom.Call.Details.PROPERTY_ASSISTED_DIALING_USED,
Connection.PROPERTY_ASSISTED_DIALING,
android.telecom.Call.Details.PROPERTY_ASSISTED_DIALING,
Connection.PROPERTY_IS_RTT,
android.telecom.Call.Details.PROPERTY_RTT,

View File

@ -490,6 +490,18 @@ public class TelecomServiceImpl {
if (callingUid != Process.SHELL_UID) {
enforceUserHandleMatchesCaller(account.getAccountHandle());
}
if (TextUtils.isEmpty(account.getGroupId())
&& mContext.checkCallingOrSelfPermission(MODIFY_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED) {
Log.w(this, "registerPhoneAccount - attempt to set a"
+ " group from a non-system caller.");
// Not permitted to set group, so null it out.
account = new PhoneAccount.Builder(account)
.setGroupId(null)
.build();
}
final long token = Binder.clearCallingIdentity();
try {
mPhoneAccountRegistrar.registerPhoneAccount(account);