Add interface definitions for CallService/PhoneService

Interfaces are meant to replace ThirdParty*.aidl/java files in same
directory long term.  The differences in methods are on purpose and
reflect more recent design directions.

Change-Id: Ia98603a1d0b6d07a3393c5f7c5aa040f9e3916e4
This commit is contained in:
Sailesh Nepal
2014-02-11 22:36:26 -08:00
parent 1bd7876d76
commit eaeb071a17
5 changed files with 220 additions and 0 deletions

View File

@@ -272,6 +272,8 @@ LOCAL_SRC_FILES += \
media/java/android/media/IRemoteDisplayProvider.aidl \
media/java/android/media/IRemoteVolumeObserver.aidl \
media/java/android/media/IRingtonePlayer.aidl \
telephony/java/com/android/internal/telephony/ICallService.aidl \
telephony/java/com/android/internal/telephony/ICallServiceAdapter.aidl \
telephony/java/com/android/internal/telephony/IPhoneStateListener.aidl \
telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl \
telephony/java/com/android/internal/telephony/ITelephony.aidl \

View File

@@ -0,0 +1,19 @@
/*
** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
package com.android.internal.telephony;
parcelable CallInfo;

View File

@@ -0,0 +1,77 @@
/*
** Copyright 2013, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
package com.android.internal.telephony;
import android.os.Parcel;
import android.os.Parcelable;
/**
* A parcelable holder class of Call information data.
*/
public class CallInfo implements Parcelable {
/**
* Endpoint to which the call is connected.
* This could be the dialed value for outgoing calls or the caller id of incoming calls.
*/
private String handle;
public CallInfo(String handle) {
this.handle = handle;
}
public String getHandle() {
return handle;
}
//
// Parcelling related code below here.
//
/**
* Responsible for creating CallInfo objects for deserialized Parcels.
*/
public static final Parcelable.Creator<CallInfo> CREATOR
= new Parcelable.Creator<CallInfo> () {
@Override
public CallInfo createFromParcel(Parcel source) {
return new CallInfo(source.readString());
}
@Override
public CallInfo[] newArray(int size) {
return new CallInfo[size];
}
};
/**
* {@inheritDoc}
*/
@Override
public int describeContents() {
return 0;
}
/**
* Writes CallInfo object into a serializeable Parcel.
*/
@Override
public void writeToParcel(Parcel destination, int flags) {
destination.writeString(handle);
}
}

View File

@@ -0,0 +1,61 @@
/*
* Copyright (C) 2013 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.internal.telephony;
import com.android.internal.telephony.ICallServiceAdapter;
/**
* Service interface for services which would like to provide calls to be
* managed by the system in-call UI.
*
* This interface provides methods that the android framework can use to deliver commands
* for calls provided by this call service including making new calls and disconnecting
* existing ones. A binding to ICallService implementations exists for two conditions:
* 1) There exists one or more live calls for that call service,
* 2) Prior to an outbound call to test if this call service is compatible with the outgoing call.
*/
oneway interface ICallService {
/**
* Determines if the CallService can make calls to the handle.
* TODO(santoscordon): Move this method into its own service interface long term.
* TODO(santoscordon): Add response callback parameter.
*/
void isCompatibleWith(String handle);
/**
* Attempts to call the relevant party using the specified handle, be it a phone number,
* SIP address, or some other kind of user ID. Note that the set of handle types is
* dynamically extensible since call providers should be able to implement arbitrary
* handle-calling systems. See {@link #isCompatibleWith}.
* TODO(santoscordon): Should this have a response attached to it to ensure that the call
* service actually plans to make the call?
*/
void call(String handle);
/**
* Disconnects the call identified by callId.
*/
void disconnect(String callId);
/**
* Sets an implementation of ICallServiceAdapter which the call service can use to add new calls
* and communicate state changes of existing calls. This is the first method that is called
* after a the framework binds to the call service.
*/
void setCallServiceAdapter(ICallServiceAdapter CallServiceAdapter);
}

View File

@@ -0,0 +1,61 @@
/*
* Copyright (C) 2013 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.internal.telephony;
import com.android.internal.telephony.CallInfo;
/**
* Provides methods for ICallService implementations to interact with the system phone app.
*/
oneway interface ICallServiceAdapter {
/**
* Retrieves a new unique call id for use with newOutgoingCall and newIncomingCall.
*/
void getNextCallId(/* TODO(santoscordon): Needs response object */);
/**
* Tells CallsManager of a new incoming call.
*/
void newIncomingCall(String callId, in CallInfo info);
/**
* Tells CallsManager of a new outgoing call.
*/
void newOutgoingCall(String callId, in CallInfo info);
/**
* Sets a call's state to active (e.g., an ongoing call where two parties can actively
* communicate).
*/
void setActive(String callId);
/**
* Sets a call's state to ringing (e.g., an inbound ringing call).
*/
void setRinging(String callId);
/**
* Sets a call's state to dialing (e.g., dialing an outbound call).
*/
void setDialing(String callId);
/**
* Sets a call's state to disconnected.
*/
void setDisconnected(String callId);
}