Merge "Support for API cleanups." am: eeb095aa02
Change-Id: I1241ed5f20896e7d2758dc6627a13c8cd9114091
This commit is contained in:
commit
4324282bf5
|
@ -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());
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue