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

Commit 25eca0ea authored by Tyler Gunn's avatar Tyler Gunn
Browse files

Implement call streaming notification.

- Fixing some issues with CallStreamingController:
1. onCallStreamingStopped was not called when streaming stops.
2. added missing break for some cases statements.
- Fix bug where transactional calls don't set the provided display name
on the call.  This meant that the caller name wouldn't show up on BT, or
in this case the call streaming notification.
- Added new CallStreamingNotification class; this just listens for calls
that are streaming and posts or removes a call streaming notification.
- Added code in TelecomBroadcastIntentProcessor to handle hangup and stop
streaming from the call streaming notification.
- Fix bug in transactional test app which meant that all calls would be
treated as incoming.
- Add a call streaming test app which implements a bare minimum streaming
service for test purposes.

Test: Manual testing using test app.
Bug: 277232336
Merged-In: Id09ba876bc958e5f4f0f560186035f293ba4dfc5
Change-Id: Id09ba876bc958e5f4f0f560186035f293ba4dfc5
parent 390a9d13
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ android_app {
    ],
    static_libs: [
        "androidx.annotation_annotation",
        "androidx.core_core",
    ],
    libs: [
        "services",
+2 −0
Original line number Diff line number Diff line
@@ -63,6 +63,8 @@
    <uses-permission android:name="android.permission.WRITE_BLOCKED_NUMBERS"/>
    <uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/>
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
    <uses-permission android:name="android.permission.USE_COLORIZED_NOTIFICATIONS"/>
    <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/>
    <uses-permission android:name="com.android.phone.permission.ACCESS_LAST_KNOWN_CELL_ID"/>
    <uses-permission android:name="android.permission.STATUS_BAR_SERVICE" />

+11 −0
Original line number Diff line number Diff line
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="20dp"
    android:height="20dp"
    android:viewportWidth="24"
    android:viewportHeight="24"
    android:tint="?android:attr/colorControlNormal"
    android:autoMirrored="true">
  <path
      android:fillColor="#FF000000"
      android:pathData="M5,6h16L21,4L5,4c-1.1,0 -2,0.9 -2,2v11L1,17v3h11v-3L5,17L5,6zM21,8h-6c-0.55,0 -1,0.45 -1,1v10c0,0.55 0.45,1 1,1h6c0.55,0 1,-0.45 1,-1L22,9c0,-0.55 -0.45,-1 -1,-1zM20,17h-4v-7h4v7z"/>
</vector>
+20 −0
Original line number Diff line number Diff line
@@ -321,6 +321,10 @@
    <string name="notification_channel_disconnected_calls">Disconnected calls</string>
    <!-- Notification channel name for a channel containing crashed phone apps service notifications. -->
    <string name="notification_channel_in_call_service_crash">Crashed phone apps</string>
    <!-- Notification channel name for a channel containing notifications related to call streaming.
         Call streaming is a feature where an app can use another device like a tablet to see and
         control a call taking place on their phone. -->
    <string name="notification_channel_call_streaming">Call streaming</string>

    <!-- Alert dialog content used to inform the user that placing a new outgoing call will end the
         ongoing call in the app "other_app". -->
@@ -395,4 +399,20 @@
    <string name="callendpoint_name_streaming">External</string>
    <!-- The user-visible name of the unknown new type CallEndpoint -->
    <string name="callendpoint_name_unknown">Unknown</string>

    <!-- The content of a notification shown when a call is being streamed to another device.
         Call streaming is a feature where a user can see and interact with a call from another
         device like a tablet while the call takes place on their phone. -->
    <string name="call_streaming_notification_body">Streaming audio to other device</string>
    <!-- A notification action which is shown when a call is being streamed to another device.
         Tapping the action will hang up the call.
         Call streaming is a feature where a user can see and interact with a call from another
         device like a tablet while the call takes place on their phone. -->
    <string name="call_streaming_notification_action_hang_up">Hang up</string>
    <!-- A notification action which is shown when a call is being streamed to another device.
         Tapping the action will move the call back to the phone from the device it is being
         streamed to.
         Call streaming is a feature where a user can see and interact with a call from another
         device like a tablet while the call takes place on their phone. -->
    <string name="call_streaming_notification_action_switch_here">Switch here</string>
</resources>
+3 −0
Original line number Diff line number Diff line
@@ -999,6 +999,9 @@ public class Call implements CreateConnectionResponse, EventManager.Loggable,
        s.append(SimpleDateFormat.getDateTimeInstance().format(new Date(getCreationTimeMillis())));
        s.append("]");
        s.append(isIncoming() ? "(MT - incoming)" : "(MO - outgoing)");
        s.append("(User=");
        s.append(getInitiatingUser());
        s.append(")");
        s.append("\n\t");

        PhoneAccountHandle targetPhoneAccountHandle = getTargetPhoneAccount();
Loading