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

Commit e7127ff0 authored by Sailesh Nepal's avatar Sailesh Nepal Committed by Android (Google) Code Review
Browse files

Merge "Add Connection.startActivityFromInCall" into lmp-dev

parents a3ee6642 2ab88cc3
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -28176,6 +28176,7 @@ package android.telecomm {
    method public void onParentChanged(android.telecomm.Call, android.telecomm.Call);
    method public void onPostDial(android.telecomm.Call, java.lang.String);
    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);
  }
@@ -28321,6 +28322,7 @@ package android.telecomm {
    method public final void setSignal(android.os.Bundle);
    method public final void setStatusHints(android.telecomm.StatusHints);
    method public final void setVideoState(int);
    method public final void startActivityFromInCall(android.app.PendingIntent);
    method public static java.lang.String stateToString(int);
  }
@@ -28527,6 +28529,7 @@ package android.telecomm {
    method public abstract void onHandleChanged(android.telecomm.RemoteConnection, android.net.Uri, int);
    method public abstract void onPostDialWait(android.telecomm.RemoteConnection, java.lang.String);
    method public abstract void onRequestingRingback(android.telecomm.RemoteConnection, boolean);
    method public abstract void onStartActivityFromInCall(android.telecomm.RemoteConnection, android.app.PendingIntent);
    method public abstract void onStateChanged(android.telecomm.RemoteConnection, int);
    method public abstract void onStatusHintsChanged(android.telecomm.RemoteConnection, android.telecomm.StatusHints);
    method public abstract void onVideoStateChanged(android.telecomm.RemoteConnection, int);
+21 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.telecomm;

import android.app.PendingIntent;
import android.net.Uri;
import android.os.RemoteException;
import android.telephony.DisconnectCause;
@@ -317,6 +318,14 @@ public final class Call {
        public void onCallVideoProviderChanged(Call call,
                RemoteCallVideoProvider callVideoProvider) {}

        /**
         * Launches an activity for this connection on top of the in-call UI.
         *
         * @param call The {@code Call} invoking this method.
         * @param intent The intent to use to start the activity.
         */
        public void onStartActivity(Call call, PendingIntent intent) {}

        /**
         * Invoked when the {@code Call} is destroyed. Clients should refrain from cleaning
         * up their UI for the {@code Call} in response to state transitions. Specifically,
@@ -664,6 +673,11 @@ public final class Call {
        firePostDialWait(mRemainingPostDialSequence);
    }

    /** {@hide} */
    final void internalStartActivity(PendingIntent intent) {
        fireStartActivity(intent);
    }

    private void fireStateChanged(int newState) {
        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
        for (int i = 0; i < listeners.length; i++) {
@@ -720,6 +734,13 @@ public final class Call {
        }
    }

    private void fireStartActivity(PendingIntent intent) {
        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
        for (int i = 0; i < listeners.length; i++) {
            listeners[i].onStartActivity(this, intent);
        }
    }

    private void fireCallDestroyed() {
        Listener[] listeners = mListeners.toArray(new Listener[mListeners.size()]);
        for (int i = 0; i < listeners.length; i++) {
+16 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.telecomm;

import android.app.PendingIntent;
import android.net.Uri;
import android.os.Bundle;
import android.telecomm.CallVideoProvider;
@@ -48,6 +49,7 @@ public abstract class Connection {
        public void onCallVideoProviderChanged(Connection c, CallVideoProvider callVideoProvider) {}
        public void onAudioModeIsVoipChanged(Connection c, boolean isVoip) {}
        public void onStatusHintsChanged(Connection c, StatusHints statusHints) {}
        public void onStartActivityFromInCall(Connection c, PendingIntent intent) {}
    }

    public final class State {
@@ -463,6 +465,20 @@ public abstract class Connection {
        }
    }

    /**
     * Launches an activity for this connection on top of the in-call UI.
     *
     * @param intent The intent to use to start the activity.
     */
    public final void startActivityFromInCall(PendingIntent intent) {
        if (!intent.isActivity()) {
            throw new IllegalArgumentException("Activity intent required.");
        }
        for (Listener l : mListeners) {
            l.onStartActivityFromInCall(this, intent);
        }
    }

    /**
     * Notifies this Connection that the {@link #getCallAudioState()} property has a new value.
     *
+7 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.telecomm;

import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.content.ComponentName;
@@ -398,6 +399,12 @@ public abstract class ConnectionService extends Service {
            String id = mIdByConnection.get(c);
            mAdapter.setStatusHints(id, statusHints);
        }

        @Override
        public void onStartActivityFromInCall(Connection c, PendingIntent intent) {
            String id = mIdByConnection.get(c);
            mAdapter.startActivityFromInCall(id, intent);
        }
    };

    /** {@inheritDoc} */
+10 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.telecomm;

import android.app.PendingIntent;
import android.content.ComponentName;
import android.net.Uri;
import android.os.IBinder;
@@ -344,4 +345,13 @@ final class ConnectionServiceAdapter implements DeathRecipient {
            }
        }
    }

    void startActivityFromInCall(String callId, PendingIntent intent) {
        for (IConnectionServiceAdapter adapter : mAdapters) {
            try {
                adapter.startActivityFromInCall(callId, intent);
            } catch (RemoteException e) {
            }
        }
    }
}
Loading