Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 50aca23b authored by Andrew Lee's avatar Andrew Lee
Browse files

Add VideoCall and VideoCall.Listener as an inner classes of Call.

Bug: 16494880
Bug: 16495203
Change-Id: Ife3b6723374ea5fbbff4927c4f9168d075be21e1
parent ed1391a9
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -349,8 +349,8 @@ LOCAL_SRC_FILES += \
	media/java/android/media/tv/ITvInputServiceCallback.aidl \
	media/java/android/media/tv/ITvInputSession.aidl \
	media/java/android/media/tv/ITvInputSessionCallback.aidl \
	telecomm/java/com/android/internal/telecomm/ICallVideoProvider.aidl \
	telecomm/java/com/android/internal/telecomm/ICallVideoClient.aidl \
	telecomm/java/com/android/internal/telecomm/IVideoCallCallback.aidl \
	telecomm/java/com/android/internal/telecomm/IVideoCallProvider.aidl \
	telecomm/java/com/android/internal/telecomm/IConnectionService.aidl \
	telecomm/java/com/android/internal/telecomm/IConnectionServiceAdapter.aidl \
	telecomm/java/com/android/internal/telecomm/IInCallAdapter.aidl \
+70 −59
Original line number Diff line number Diff line
@@ -28460,13 +28460,13 @@ package android.telecomm {
    method public void answer(int);
    method public void conference();
    method public void disconnect();
    method public android.telecomm.RemoteCallVideoProvider getCallVideoProvider();
    method public java.util.List<java.lang.String> getCannedTextResponses();
    method public java.util.List<android.telecomm.Call> getChildren();
    method public android.telecomm.Call.Details getDetails();
    method public android.telecomm.Call getParent();
    method public java.lang.String getRemainingPostDialSequence();
    method public int getState();
    method public android.telecomm.InCallService.VideoCall getVideoCall();
    method public void hold();
    method public void phoneAccountClicked();
    method public void phoneAccountSelected(android.telecomm.PhoneAccountHandle);
@@ -28505,7 +28505,6 @@ package android.telecomm {
  public static abstract class Call.Listener {
    ctor public Call.Listener();
    method public void onCallDestroyed(android.telecomm.Call);
    method public void onCallVideoProviderChanged(android.telecomm.Call, android.telecomm.RemoteCallVideoProvider);
    method public void onCannedTextResponsesLoaded(android.telecomm.Call, java.util.List<java.lang.String>);
    method public void onChildrenChanged(android.telecomm.Call, java.util.List<android.telecomm.Call>);
    method public void onDetailsChanged(android.telecomm.Call, android.telecomm.Call.Details);
@@ -28514,6 +28513,7 @@ package android.telecomm {
    method public void onPostDialWait(android.telecomm.Call, java.lang.String);
    method public void onStartActivity(android.telecomm.Call, android.app.PendingIntent);
    method public void onStateChanged(android.telecomm.Call, int);
    method public void onVideoCallChanged(android.telecomm.Call, android.telecomm.InCallService.VideoCall);
  }
  public final class CallAudioState implements android.os.Parcelable {
@@ -28577,45 +28577,12 @@ package android.telecomm {
    enum_constant public static final android.telecomm.CallState RINGING;
  }
  public abstract class CallVideoClient {
    ctor public CallVideoClient();
    method public abstract void onHandleCallSessionEvent(int);
    method public abstract void onHandleCameraCapabilitiesChange(android.telecomm.CallCameraCapabilities);
    method public abstract void onReceiveSessionModifyRequest(android.telecomm.VideoCallProfile);
    method public abstract void onReceiveSessionModifyResponse(int, android.telecomm.VideoCallProfile, android.telecomm.VideoCallProfile);
    method public abstract void onUpdateCallDataUsage(int);
    method public abstract void onUpdatePeerDimensions(int, int);
    field public static final int SESSION_EVENT_RX_PAUSE = 1; // 0x1
    field public static final int SESSION_EVENT_RX_RESUME = 2; // 0x2
    field public static final int SESSION_EVENT_TX_START = 3; // 0x3
    field public static final int SESSION_EVENT_TX_STOP = 4; // 0x4
    field public static final int SESSION_MODIFY_REQUEST_FAIL = 2; // 0x2
    field public static final int SESSION_MODIFY_REQUEST_INVALID = 3; // 0x3
    field public static final int SESSION_MODIFY_REQUEST_SUCCESS = 1; // 0x1
  }
  public abstract class CallVideoProvider {
    ctor public CallVideoProvider();
    method public abstract void onRequestCallDataUsage();
    method public abstract void onRequestCameraCapabilities();
    method public abstract void onSendSessionModifyRequest(android.telecomm.VideoCallProfile);
    method public abstract void onSendSessionModifyResponse(android.telecomm.VideoCallProfile);
    method public abstract void onSetCallVideoClient(android.telecomm.RemoteCallVideoClient);
    method public abstract void onSetCamera(java.lang.String);
    method public abstract void onSetDeviceOrientation(int);
    method public abstract void onSetDisplaySurface(android.view.Surface);
    method public abstract void onSetPauseImage(java.lang.String);
    method public abstract void onSetPreviewSurface(android.view.Surface);
    method public abstract void onSetZoom(float);
  }
  public abstract class Connection {
    ctor public Connection();
    method public final void destroy();
    method public final boolean getAudioModeIsVoip();
    method public final android.telecomm.CallAudioState getCallAudioState();
    method public final int getCallCapabilities();
    method public final android.telecomm.CallVideoProvider getCallVideoProvider();
    method public final java.lang.String getCallerDisplayName();
    method public final int getCallerDisplayNamePresentation();
    method public final java.util.List<android.telecomm.Connection> getChildConnections();
@@ -28624,6 +28591,7 @@ package android.telecomm {
    method public final android.telecomm.Connection getParentConnection();
    method public final int getState();
    method public final android.telecomm.StatusHints getStatusHints();
    method public final android.telecomm.VideoCallProvider getVideoCallProvider();
    method public final int getVideoState();
    method public final boolean isConferenceConnection();
    method public final boolean isRequestingRingback();
@@ -28645,7 +28613,6 @@ package android.telecomm {
    method public final void setActive();
    method public final void setAudioModeIsVoip(boolean);
    method public final void setCallCapabilities(int);
    method public final void setCallVideoProvider(android.telecomm.CallVideoProvider);
    method public final void setCallerDisplayName(java.lang.String, int);
    method public final void setDialing();
    method public final void setDisconnected(int, java.lang.String);
@@ -28657,6 +28624,7 @@ package android.telecomm {
    method public final void setRinging();
    method public final void setSignal(android.os.Bundle);
    method public final void setStatusHints(android.telecomm.StatusHints);
    method public final void setVideoCallProvider(android.telecomm.VideoCallProvider);
    method public final void setVideoState(int);
    method public final void startActivityFromInCall(android.app.PendingIntent);
    method public static java.lang.String stateToString(int);
@@ -28740,6 +28708,38 @@ package android.telecomm {
    method public void onPhoneDestroyed(android.telecomm.Phone);
  }
  public static abstract class InCallService.VideoCall {
    ctor public InCallService.VideoCall();
    method public abstract void requestCallDataUsage();
    method public abstract void requestCameraCapabilities();
    method public abstract void sendSessionModifyRequest(android.telecomm.VideoCallProfile);
    method public abstract void sendSessionModifyResponse(android.telecomm.VideoCallProfile);
    method public abstract void setCamera(java.lang.String);
    method public abstract void setDeviceOrientation(int);
    method public abstract void setDisplaySurface(android.view.Surface);
    method public abstract void setPauseImage(java.lang.String);
    method public abstract void setPreviewSurface(android.view.Surface);
    method public abstract void setVideoCallListener(android.telecomm.InCallService.VideoCall.Listener);
    method public abstract void setZoom(float);
    field public static final int SESSION_EVENT_RX_PAUSE = 1; // 0x1
    field public static final int SESSION_EVENT_RX_RESUME = 2; // 0x2
    field public static final int SESSION_EVENT_TX_START = 3; // 0x3
    field public static final int SESSION_EVENT_TX_STOP = 4; // 0x4
    field public static final int SESSION_MODIFY_REQUEST_FAIL = 2; // 0x2
    field public static final int SESSION_MODIFY_REQUEST_INVALID = 3; // 0x3
    field public static final int SESSION_MODIFY_REQUEST_SUCCESS = 1; // 0x1
  }
  public static abstract class InCallService.VideoCall.Listener {
    ctor public InCallService.VideoCall.Listener();
    method public abstract void onCallDataUsageChanged(int);
    method public abstract void onCallSessionEvent(int);
    method public abstract void onCameraCapabilitiesChanged(android.telecomm.CallCameraCapabilities);
    method public abstract void onPeerDimensionsChanged(int, int);
    method public abstract void onSessionModifyRequestReceived(android.telecomm.VideoCallProfile);
    method public abstract void onSessionModifyResponseReceived(int, android.telecomm.VideoCallProfile, android.telecomm.VideoCallProfile);
  }
  public final class Phone {
    method public final void addListener(android.telecomm.Phone.Listener);
    method public final android.telecomm.CallAudioState getAudioState();
@@ -28784,29 +28784,6 @@ package android.telecomm {
    field public static final android.os.Parcelable.Creator CREATOR;
  }
  public class RemoteCallVideoClient {
    method public void handleCallSessionEvent(int);
    method public void handleCameraCapabilitiesChange(android.telecomm.CallCameraCapabilities);
    method public void receiveSessionModifyRequest(android.telecomm.VideoCallProfile);
    method public void receiveSessionModifyResponse(int, android.telecomm.VideoCallProfile, android.telecomm.VideoCallProfile);
    method public void updateCallDataUsage(int);
    method public void updatePeerDimensions(int, int);
  }
  public class RemoteCallVideoProvider {
    method public void requestCallDataUsage();
    method public void requestCameraCapabilities();
    method public void sendSessionModifyRequest(android.telecomm.VideoCallProfile);
    method public void sendSessionModifyResponse(android.telecomm.VideoCallProfile);
    method public void setCallVideoClient(android.telecomm.CallVideoClient);
    method public void setCamera(java.lang.String);
    method public void setDeviceOrientation(int);
    method public void setDisplaySurface(android.view.Surface);
    method public void setPauseImage(java.lang.String);
    method public void setPreviewSurface(android.view.Surface);
    method public void setZoom(float);
  }
  public final class RemoteConnection {
    method public void abort();
    method public void addListener(android.telecomm.RemoteConnection.Listener);
@@ -28893,6 +28870,20 @@ package android.telecomm {
    field public static final java.lang.String EXTRA_START_CALL_WITH_VIDEO_STATE = "android.intent.extra.START_CALL_WITH_VIDEO_STATE";
  }
  public class VideoCallImpl extends android.telecomm.InCallService.VideoCall {
    method public void requestCallDataUsage();
    method public void requestCameraCapabilities();
    method public void sendSessionModifyRequest(android.telecomm.VideoCallProfile);
    method public void sendSessionModifyResponse(android.telecomm.VideoCallProfile);
    method public void setCamera(java.lang.String);
    method public void setDeviceOrientation(int);
    method public void setDisplaySurface(android.view.Surface);
    method public void setPauseImage(java.lang.String);
    method public void setPreviewSurface(android.view.Surface);
    method public void setVideoCallListener(android.telecomm.InCallService.VideoCall.Listener);
    method public void setZoom(float);
  }
  public class VideoCallProfile implements android.os.Parcelable {
    ctor public VideoCallProfile(int);
    ctor public VideoCallProfile(int, int);
@@ -28912,6 +28903,26 @@ package android.telecomm {
    field public static final int VIDEO_STATE_TX_ENABLED = 1; // 0x1
  }
  public abstract class VideoCallProvider {
    ctor public VideoCallProvider();
    method public void changeCallDataUsage(int);
    method public void changeCameraCapabilities(android.telecomm.CallCameraCapabilities);
    method public void changePeerDimensions(int, int);
    method public void handleCallSessionEvent(int);
    method public abstract void onRequestCallDataUsage();
    method public abstract void onRequestCameraCapabilities();
    method public abstract void onSendSessionModifyRequest(android.telecomm.VideoCallProfile);
    method public abstract void onSendSessionModifyResponse(android.telecomm.VideoCallProfile);
    method public abstract void onSetCamera(java.lang.String);
    method public abstract void onSetDeviceOrientation(int);
    method public abstract void onSetDisplaySurface(android.view.Surface);
    method public abstract void onSetPauseImage(java.lang.String);
    method public abstract void onSetPreviewSurface(android.view.Surface);
    method public abstract void onSetZoom(float);
    method public void receiveSessionModifyRequest(android.telecomm.VideoCallProfile);
    method public void receiveSessionModifyResponse(int, android.telecomm.VideoCallProfile, android.telecomm.VideoCallProfile);
  }
}
package android.telephony {
+16 −23
Original line number Diff line number Diff line
@@ -18,9 +18,9 @@ package android.telecomm;

import android.app.PendingIntent;
import android.net.Uri;
import android.os.RemoteException;
import android.telephony.DisconnectCause;

import java.lang.String;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -309,15 +309,13 @@ public final class Call {
        public void onPostDialWait(Call call, String remainingPostDialSequence) {}

        /**
         * Invoked when the {@code RemoteCallVideoProvider} of the {@code Call} has changed.
         * Invoked when the {@code Call.VideoCall} of the {@code Call} has changed.
         *
         * @param call The {@code Call} invoking this method.
         * @param callVideoProvider The {@code RemoteCallVideoProvider} associated with the
         * {@code Call}.
         * @param videoCall The {@code Call.VideoCall} associated with the {@code Call}.
         */

        public void onCallVideoProviderChanged(Call call,
                RemoteCallVideoProvider callVideoProvider) {}
        public void onVideoCallChanged(Call call, InCallService.VideoCall videoCall) {}

        /**
         * Launches an activity for this connection on top of the in-call UI.
@@ -348,7 +346,7 @@ public final class Call {
    private final List<Call> mUnmodifiableChildren = Collections.unmodifiableList(mChildren);
    private List<String> mCannedTextResponses = null;
    private String mRemainingPostDialSequence;
    private RemoteCallVideoProvider mCallVideoProvider;
    private InCallService.VideoCall mVideoCall;
    private Details mDetails;
    private final List<Listener> mListeners = new ArrayList<>();

@@ -533,10 +531,10 @@ public final class Call {
    /**
     * Obtains an object that can be used to display video from this {@code Call}.
     *
     * @return An {@code ICallVideoProvider}.
     * @return An {@code Call.VideoCall}.
     */
    public RemoteCallVideoProvider getCallVideoProvider() {
        return mCallVideoProvider;
    public InCallService.VideoCall getVideoCall() {
        return mVideoCall;
    }

    /**
@@ -609,14 +607,9 @@ public final class Call {
                    Collections.unmodifiableList(parcelableCall.getCannedSmsResponses());
        }

        boolean callVideoProviderChanged = false;
        try {
            callVideoProviderChanged =
                    !Objects.equals(mCallVideoProvider, parcelableCall.getCallVideoProvider());
            if (callVideoProviderChanged) {
                mCallVideoProvider = parcelableCall.getCallVideoProvider();
            }
        } catch (RemoteException e) {
        boolean videoCallChanged = !Objects.equals(mVideoCall, parcelableCall.getVideoCall());
        if (videoCallChanged) {
            mVideoCall = parcelableCall.getVideoCall();
        }

        int state = stateFromParcelableCallState(parcelableCall.getState());
@@ -649,8 +642,8 @@ public final class Call {
        if (cannedTextResponsesChanged) {
            fireCannedTextResponsesLoaded(mCannedTextResponses);
        }
        if (callVideoProviderChanged) {
            fireCallVideoProviderChanged(mCallVideoProvider);
        if (videoCallChanged) {
            fireVideoCallChanged(mVideoCall);
        }

        // If we have transitioned to DISCONNECTED, that means we need to notify clients and
@@ -715,10 +708,10 @@ public final class Call {
        }
    }

    private void fireCallVideoProviderChanged(RemoteCallVideoProvider callVideoProvider) {
    private void fireVideoCallChanged(InCallService.VideoCall videoCall) {
        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
        for (int i = 0; i < listeners.length; i++) {
            listeners[i].onCallVideoProviderChanged(this, callVideoProvider);
            listeners[i].onVideoCallChanged(this, videoCall);
        }
    }

+9 −11
Original line number Diff line number Diff line
@@ -19,10 +19,8 @@ package android.telecomm;
import android.app.PendingIntent;
import android.net.Uri;
import android.os.Bundle;
import android.telecomm.CallVideoProvider;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -46,7 +44,7 @@ public abstract class Connection {
        public void onDestroyed(Connection c) {}
        public void onCallCapabilitiesChanged(Connection c, int callCapabilities) {}
        public void onParentConnectionChanged(Connection c, Connection parent) {}
        public void onCallVideoProviderChanged(Connection c, CallVideoProvider callVideoProvider) {}
        public void onVideoCallProviderChanged(Connection c, VideoCallProvider videoCallProvider) {}
        public void onAudioModeIsVoipChanged(Connection c, boolean isVoip) {}
        public void onStatusHintsChanged(Connection c, StatusHints statusHints) {}
        public void onStartActivityFromInCall(Connection c, PendingIntent intent) {}
@@ -75,7 +73,7 @@ public abstract class Connection {
    private boolean mRequestingRingback = false;
    private int mCallCapabilities;
    private Connection mParentConnection;
    private CallVideoProvider mCallVideoProvider;
    private VideoCallProvider mVideoCallProvider;
    private boolean mAudioModeIsVoip;
    private StatusHints mStatusHints;
    private int mVideoState;
@@ -349,18 +347,18 @@ public abstract class Connection {
    }

    /**
     * Sets the call video provider.
     * @param callVideoProvider The call video provider.
     * Sets the video call provider.
     * @param videoCallProvider The video call provider.
     */
    public final void setCallVideoProvider(CallVideoProvider callVideoProvider) {
        mCallVideoProvider = callVideoProvider;
    public final void setVideoCallProvider(VideoCallProvider videoCallProvider) {
        mVideoCallProvider = videoCallProvider;
        for (Listener l : mListeners) {
            l.onCallVideoProviderChanged(this, callVideoProvider);
            l.onVideoCallProviderChanged(this, videoCallProvider);
        }
    }

    public final CallVideoProvider getCallVideoProvider() {
        return mCallVideoProvider;
    public final VideoCallProvider getVideoCallProvider() {
        return mVideoCallProvider;
    }

    /**
+4 −4
Original line number Diff line number Diff line
@@ -390,9 +390,9 @@ public abstract class ConnectionService extends Service {
        }

        @Override
        public void onCallVideoProviderChanged(Connection c, CallVideoProvider callVideoProvider) {
        public void onVideoCallProviderChanged(Connection c, VideoCallProvider videoCallProvider) {
            String id = mIdByConnection.get(c);
            mAdapter.setCallVideoProvider(id, callVideoProvider);
            mAdapter.setVideoCallProvider(id, videoCallProvider);
        }

        @Override
@@ -443,8 +443,8 @@ public abstract class ConnectionService extends Service {
                                connection.getHandlePresentation(),
                                connection.getCallerDisplayName(),
                                connection.getCallerDisplayNamePresentation(),
                                connection.getCallVideoProvider() == null ?
                                        null : connection.getCallVideoProvider().getInterface(),
                                connection.getVideoCallProvider() == null ?
                                        null : connection.getVideoCallProvider().getInterface(),
                                connection.getVideoState()));
            }

Loading