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

Commit 5ffbe8b8 authored by Andrew Lee's avatar Andrew Lee
Browse files

Add methods to set a CallVideoProvider on a Call.

Bug: 15893156
Change-Id: I6ae151bc37d8c0be2e4c9823e9444717b6cdc0de
parent f759b5bb
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -27628,6 +27628,7 @@ package android.telecomm {
    method public void notifyIncomingCall(android.telecomm.CallInfo);
    method public void onPostDialWait(java.lang.String, java.lang.String);
    method public void setActive(java.lang.String);
    method public void setCallVideoProvider(java.lang.String, android.telecomm.CallVideoProvider);
    method public void setDialing(java.lang.String);
    method public void setDisconnected(java.lang.String, int, java.lang.String);
    method public void setOnHold(java.lang.String);
@@ -27677,6 +27678,11 @@ package android.telecomm {
    enum_constant public static final android.telecomm.CallState RINGING;
  }
  public abstract class CallVideoProvider {
    ctor protected CallVideoProvider();
    method public abstract void setCamera(java.lang.String);
  }
  public class CallVideoProviderWrapper implements android.os.IBinder.DeathRecipient {
    method public void binderDied();
    method public void setCamera(java.lang.String) throws android.os.RemoteException;
@@ -27707,6 +27713,7 @@ package android.telecomm {
    method protected void onStopDtmfTone();
    method protected void onUnhold();
    method public final void setActive();
    method public final void setCallVideoProvider(android.telecomm.CallVideoProvider);
    method public final void setDestroyed();
    method public final void setDialing();
    method public final void setDisconnected(int, java.lang.String);
@@ -27728,6 +27735,7 @@ package android.telecomm {
    method public abstract void onHandleChanged(android.telecomm.Connection, android.net.Uri);
    method public abstract void onParentConnectionChanged(android.telecomm.Connection, android.telecomm.Connection);
    method public abstract void onRequestingRingback(android.telecomm.Connection, boolean);
    method public abstract void onSetCallVideoProvider(android.telecomm.Connection, android.telecomm.CallVideoProvider);
    method public abstract void onSignalChanged(android.telecomm.Connection, android.os.Bundle);
    method public abstract void onStateChanged(android.telecomm.Connection, int);
  }
@@ -27741,6 +27749,7 @@ package android.telecomm {
    method public void onHandleChanged(android.telecomm.Connection, android.net.Uri);
    method public void onParentConnectionChanged(android.telecomm.Connection, android.telecomm.Connection);
    method public void onRequestingRingback(android.telecomm.Connection, boolean);
    method public void onSetCallVideoProvider(android.telecomm.Connection, android.telecomm.CallVideoProvider);
    method public void onSignalChanged(android.telecomm.Connection, android.os.Bundle);
    method public void onStateChanged(android.telecomm.Connection, int);
  }
+16 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.os.RemoteException;

import com.android.internal.telecomm.ICallService;
import com.android.internal.telecomm.ICallServiceAdapter;
import com.android.internal.telecomm.ICallVideoProvider;
import com.android.internal.telecomm.RemoteServiceCallback;

import java.util.ArrayList;
@@ -338,4 +339,19 @@ public final class CallServiceAdapter implements DeathRecipient {
            }
        }
    }

    /**
     * Sets the call video provider for a call.
     *
     * @param callId The unique ID of the call to set with the given call video provider.
     * @param callVideoProvider The call video provider instance to set on the call.
     */
    public void setCallVideoProvider(String callId, CallVideoProvider callVideoProvider) {
        for (ICallServiceAdapter adapter : mAdapters) {
            try {
                adapter.setCallVideoProvider(callId, callVideoProvider.getInterface());
            } catch (RemoteException e) {
            }
        }
    }
}
+8 −1
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@ import android.os.Message;

import com.android.internal.telecomm.ICallVideoProvider;

/** @hide */
public abstract class CallVideoProvider {
    private static final int MSG_SET_CAMERA = 1;

@@ -60,6 +59,14 @@ public abstract class CallVideoProvider {
        mBinder = new CallVideoProviderBinder();
    }

    /**
     * Returns binder object which can be used across IPC methods.
     * @hide
     */
    public final ICallVideoProvider getInterface() {
        return mBinder;
    }

    /**
     * Sets the camera to be used for video recording in a video call.
     *
+16 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.telecomm;

import android.net.Uri;
import android.os.Bundle;
import android.telecomm.CallVideoProvider;

import java.util.ArrayList;
import java.util.Collections;
@@ -40,6 +41,7 @@ public abstract class Connection {
        void onDestroyed(Connection c);
        void onConferenceCapableChanged(Connection c, boolean isConferenceCapable);
        void onParentConnectionChanged(Connection c, Connection parent);
        void onSetCallVideoProvider(Connection c, CallVideoProvider callVideoProvider);
    }

    public static class ListenerBase implements Listener {
@@ -78,6 +80,10 @@ public abstract class Connection {
        /** ${inheritDoc} */
        @Override
        public void onParentConnectionChanged(Connection c, Connection parent) {}

        /** {@inheritDoc} */
        @Override
        public void onSetCallVideoProvider(Connection c, CallVideoProvider callVideoProvider) {}
    }

    public final class State {
@@ -414,6 +420,16 @@ public abstract class Connection {
        setState(State.HOLDING);
    }

    /**
     * Sets the call video provider.
     * @param callVideoProvider The call video provider.
     */
    public final void setCallVideoProvider(CallVideoProvider callVideoProvider) {
        for (Listener l : mListeners) {
            l.onSetCallVideoProvider(this, callVideoProvider);
        }
    }

    /**
     * Sets state to disconnected. This will first notify listeners with an
     * {@link Listener#onStateChanged(Connection, int)} event, then will fire an
+6 −0
Original line number Diff line number Diff line
@@ -155,6 +155,12 @@ public abstract class ConnectionService extends CallService {
            String parentId = parent == null ? null : mIdByConnection.get(parent);
            getAdapter().setIsConferenced(id, parentId);
        }

        @Override
        public void onSetCallVideoProvider(Connection c, CallVideoProvider callVideoProvider) {
            String id = mIdByConnection.get(c);
            getAdapter().setCallVideoProvider(id, callVideoProvider);
        }
    };

    @Override
Loading