177e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal/*
277e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal * Copyright (C) 2013 The Android Open Source Project
377e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal *
477e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal * Licensed under the Apache License, Version 2.0 (the "License");
577e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal * you may not use this file except in compliance with the License.
677e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal * You may obtain a copy of the License at
777e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal *
877e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal *      http://www.apache.org/licenses/LICENSE-2.0
977e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal *
1077e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal * Unless required by applicable law or agreed to in writing, software
1177e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal * distributed under the License is distributed on an "AS IS" BASIS,
1277e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1377e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal * See the License for the specific language governing permissions and
1477e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal * limitations under the License.
1577e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal */
1677e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal
1777e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepalpackage com.android.internal.telephony;
1877e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal
1977e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepalimport com.android.internal.telephony.CallInfo;
2077e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal
2177e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal/**
2277e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal * Provides methods for ICallService implementations to interact with the system phone app.
2377e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal */
2477e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepaloneway interface ICallServiceAdapter {
2577e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal
2677e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal    /**
2777e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal     * Retrieves a new unique call id for use with newOutgoingCall and newIncomingCall.
2877e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal     */
2977e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal    void getNextCallId(/* TODO(santoscordon): Needs response object */);
3077e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal
3177e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal    /**
3277e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal     * Tells CallsManager of a new incoming call.
3377e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal     */
3477e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal    void newIncomingCall(String callId, in CallInfo info);
3577e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal
3677e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal    /**
3777e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal     * Tells CallsManager of a new outgoing call.
3877e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal     */
3977e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal    void newOutgoingCall(String callId, in CallInfo info);
4077e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal
4177e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal    /**
4277e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal     * Sets a call's state to active (e.g., an ongoing call where two parties can actively
4377e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal     * communicate).
4477e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal     */
4577e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal    void setActive(String callId);
4677e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal
4777e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal    /**
4877e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal     * Sets a call's state to ringing (e.g., an inbound ringing call).
4977e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal     */
5077e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal    void setRinging(String callId);
5177e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal
5277e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal    /**
5377e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal     * Sets a call's state to dialing (e.g., dialing an outbound call).
5477e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal     */
5577e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal    void setDialing(String callId);
5677e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal
5777e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal    /**
5877e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal     * Sets a call's state to disconnected.
5977e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal     */
6077e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal    void setDisconnected(String callId);
6177e0d606f63c8526931018a3ae86f8b9d722c0bdSailesh Nepal}
62