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

Commit edc625f5 authored by Andrew Lee's avatar Andrew Lee
Browse files

Add StatusHints to Conference object.

+ Consolidated ParcelableConference constructors; only one is used.

Bug: 20181703
Change-Id: Iad49f10404e1c1eedc4ef68525bde0f10a8dfc97
parent 6b91ebf5
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -29995,6 +29995,7 @@ package android.telecom {
    method public final android.telecom.PhoneAccountHandle getPhoneAccountHandle();
    method public android.telecom.Connection getPrimaryConnection();
    method public final int getState();
    method public final android.telecom.StatusHints getStatusHints();
    method public void onAudioStateChanged(android.telecom.AudioState);
    method public void onConnectionAdded(android.telecom.Connection);
    method public void onDisconnect();
@@ -30013,6 +30014,7 @@ package android.telecom {
    method public final void setConnectionCapabilities(int);
    method public final void setDisconnected(android.telecom.DisconnectCause);
    method public final void setOnHold();
    method public final void setStatusHints(android.telecom.StatusHints);
    field public static long CONNECT_TIME_NOT_SPECIFIED;
    field protected android.telecom.PhoneAccountHandle mPhoneAccount;
  }
+21 −0
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ public abstract class Conference implements IConferenceable {
        public void onDestroyed(Conference conference) {}
        public void onConnectionCapabilitiesChanged(
                Conference conference, int connectionCapabilities) {}
        public void onStatusHintsChanged(Conference conference, StatusHints statusHints) {}
    }

    private final Set<Listener> mListeners = new CopyOnWriteArraySet<>();
@@ -66,6 +67,7 @@ public abstract class Conference implements IConferenceable {
    private int mConnectionCapabilities;
    private String mDisconnectMessage;
    private long mConnectTimeMillis = CONNECT_TIME_NOT_SPECIFIED;
    private StatusHints mStatusHints;

    private final Connection.Listener mConnectionDeathListener = new Connection.Listener() {
        @Override
@@ -484,4 +486,23 @@ public abstract class Conference implements IConferenceable {
        }
        mConferenceableConnections.clear();
    }

    /**
     * Sets the label and icon status to display in the InCall UI.
     *
     * @param statusHints The status label and icon to set.
     */
    public final void setStatusHints(StatusHints statusHints) {
        mStatusHints = statusHints;
        for (Listener l : mListeners) {
            l.onStatusHintsChanged(this, statusHints);
        }
    }

    /**
     * @return The status hints for this conference.
     */
    public final StatusHints getStatusHints() {
        return mStatusHints;
    }
}
+8 −1
Original line number Diff line number Diff line
@@ -415,6 +415,12 @@ public abstract class ConnectionService extends Service {
                    Connection.capabilitiesToString(connectionCapabilities));
            mAdapter.setConnectionCapabilities(id, connectionCapabilities);
        }

        @Override
        public void onStatusHintsChanged(Conference conference, StatusHints statusHints) {
            String id = mIdByConference.get(conference);
            mAdapter.setStatusHints(id, statusHints);
        }
    };

    private final Connection.Listener mConnectionListener = new Connection.Listener() {
@@ -884,7 +890,8 @@ public abstract class ConnectionService extends Service {
                    conference.getState(),
                    conference.getConnectionCapabilities(),
                    connectionIds,
                    conference.getConnectTimeMillis());
                    conference.getConnectTimeMillis(),
                    conference.getStatusHints());
            mAdapter.addConferenceCall(id, parcelableConference);

            // Go through any child calls and set the parent.
+13 −13
Original line number Diff line number Diff line
@@ -32,28 +32,22 @@ public final class ParcelableConference implements Parcelable {
    private int mState;
    private int mConnectionCapabilities;
    private List<String> mConnectionIds;
    private long mConnectTimeMillis;
    private long mConnectTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED;
    private StatusHints mStatusHints;

    public ParcelableConference(
            PhoneAccountHandle phoneAccount,
            int state,
            int connectionCapabilities,
            List<String> connectionIds) {
            List<String> connectionIds,
            long connectTimeMillis,
            StatusHints statusHints) {
        mPhoneAccount = phoneAccount;
        mState = state;
        mConnectionCapabilities = connectionCapabilities;
        mConnectionIds = connectionIds;
        mConnectTimeMillis = Conference.CONNECT_TIME_NOT_SPECIFIED;
    }

    public ParcelableConference(
            PhoneAccountHandle phoneAccount,
            int state,
            int connectionCapabilities,
            List<String> connectionIds,
            long connectTimeMillis) {
        this(phoneAccount, state, connectionCapabilities, connectionIds);
        mConnectTimeMillis = connectTimeMillis;
        mStatusHints = statusHints;
    }

    @Override
@@ -92,6 +86,10 @@ public final class ParcelableConference implements Parcelable {
        return mConnectTimeMillis;
    }

    public StatusHints getStatusHints() {
        return mStatusHints;
    }

    public static final Parcelable.Creator<ParcelableConference> CREATOR =
            new Parcelable.Creator<ParcelableConference> () {
        @Override
@@ -103,9 +101,10 @@ public final class ParcelableConference implements Parcelable {
            List<String> connectionIds = new ArrayList<>(2);
            source.readList(connectionIds, classLoader);
            long connectTimeMillis = source.readLong();
            StatusHints statusHints = source.readParcelable(classLoader);

            return new ParcelableConference(phoneAccount, state, capabilities, connectionIds,
                    connectTimeMillis);
                    connectTimeMillis, statusHints);
        }

        @Override
@@ -128,5 +127,6 @@ public final class ParcelableConference implements Parcelable {
        destination.writeInt(mConnectionCapabilities);
        destination.writeList(mConnectionIds);
        destination.writeLong(mConnectTimeMillis);
        destination.writeParcelable(mStatusHints, 0);
    }
}