summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/enrichedcall
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/enrichedcall')
-rw-r--r--java/com/android/dialer/enrichedcall/EnrichedCallManager.java28
-rw-r--r--java/com/android/dialer/enrichedcall/stub/EnrichedCallManagerStub.java19
2 files changed, 40 insertions, 7 deletions
diff --git a/java/com/android/dialer/enrichedcall/EnrichedCallManager.java b/java/com/android/dialer/enrichedcall/EnrichedCallManager.java
index fa822a659..0d3ed9e43 100644
--- a/java/com/android/dialer/enrichedcall/EnrichedCallManager.java
+++ b/java/com/android/dialer/enrichedcall/EnrichedCallManager.java
@@ -158,7 +158,7 @@ public interface EnrichedCallManager {
/**
* Callback fired when state changes. Listeners should call {@link #getSession(long)} or {@link
- * #getSession(String, String)} to retrieve the new state.
+ * #getSession(String, String, Filter)} to retrieve the new state.
*/
void onEnrichedCallStateChanged();
}
@@ -172,16 +172,25 @@ public interface EnrichedCallManager {
@MainThread
void registerStateChangedListener(@NonNull StateChangedListener listener);
- /** Returns the {@link Session} for the given unique call id, falling back to the number. */
+ /**
+ * Returns the {@link Session} for the given unique call id, falling back to the number. If a
+ * filter is provided, it will be applied to both the uniqueCalId and number lookups.
+ */
@MainThread
@Nullable
- Session getSession(@NonNull String uniqueCallId, @NonNull String number);
+ Session getSession(@NonNull String uniqueCallId, @NonNull String number, @Nullable Filter filter);
/** Returns the {@link Session} for the given sessionId, or {@code null} if no session exists. */
@MainThread
@Nullable
Session getSession(long sessionId);
+ @NonNull
+ Filter createIncomingCallComposerFilter();
+
+ @NonNull
+ Filter createOutgoingCallComposerFilter();
+
/**
* Starts an asynchronous process to get all historical data for the given number and set of
* {@link CallDetailsEntries}.
@@ -265,9 +274,13 @@ public interface EnrichedCallManager {
@MainThread
void unregisterVideoShareListener(@NonNull VideoShareListener listener);
- /** Called when an incoming video share invite is received. */
+ /**
+ * Called when an incoming video share invite is received.
+ *
+ * @return whether or not the invite was accepted by the manager (rejected when disabled)
+ */
@MainThread
- void onIncomingVideoShareInvite(long sessionId, @NonNull String number);
+ boolean onIncomingVideoShareInvite(long sessionId, @NonNull String number);
/**
* Starts a video share session with the given remote number.
@@ -303,4 +316,9 @@ public interface EnrichedCallManager {
*/
@MainThread
void endVideoShareSession(long sessionId);
+
+ /** Interface for filtering sessions (compatible with Predicate from Java 8) */
+ interface Filter {
+ boolean test(Session session);
+ }
}
diff --git a/java/com/android/dialer/enrichedcall/stub/EnrichedCallManagerStub.java b/java/com/android/dialer/enrichedcall/stub/EnrichedCallManagerStub.java
index 1d008ca05..0540d912e 100644
--- a/java/com/android/dialer/enrichedcall/stub/EnrichedCallManagerStub.java
+++ b/java/com/android/dialer/enrichedcall/stub/EnrichedCallManagerStub.java
@@ -74,7 +74,8 @@ public final class EnrichedCallManagerStub implements EnrichedCallManager {
@Nullable
@Override
- public Session getSession(@NonNull String uniqueCallId, @NonNull String number) {
+ public Session getSession(
+ @NonNull String uniqueCallId, @NonNull String number, @Nullable Filter filter) {
return null;
}
@@ -84,6 +85,18 @@ public final class EnrichedCallManagerStub implements EnrichedCallManager {
return null;
}
+ @NonNull
+ @Override
+ public Filter createIncomingCallComposerFilter() {
+ return session -> false;
+ }
+
+ @NonNull
+ @Override
+ public Filter createOutgoingCallComposerFilter() {
+ return session -> false;
+ }
+
@Nullable
@Override
@MainThread
@@ -122,7 +135,9 @@ public final class EnrichedCallManagerStub implements EnrichedCallManager {
public void unregisterVideoShareListener(@NonNull VideoShareListener listener) {}
@Override
- public void onIncomingVideoShareInvite(long sessionId, @NonNull String number) {}
+ public boolean onIncomingVideoShareInvite(long sessionId, @NonNull String number) {
+ return false;
+ }
@Override
public long startVideoShareSession(String number) {