Merge "Fix component query/binding for multiuser" into udc-dev
diff --git a/src/com/android/server/telecom/CallEndpointController.java b/src/com/android/server/telecom/CallEndpointController.java
index 82164b3..7e11b47 100644
--- a/src/com/android/server/telecom/CallEndpointController.java
+++ b/src/com/android/server/telecom/CallEndpointController.java
@@ -247,8 +247,9 @@
                     for (BluetoothDevice device : state.getSupportedBluetoothDevices()) {
                         CallEndpoint endpoint = findMatchingBluetoothEndpoint(device);
                         if (endpoint == null) {
+                            String deviceName = device.getName();
                             endpoint = new CallEndpoint(
-                                    device.getName() != null ? device.getName() : "",
+                                    deviceName != null ? deviceName : "",
                                     CallEndpoint.TYPE_BLUETOOTH);
                         }
                         newAvailableEndpoints.add(endpoint);
diff --git a/src/com/android/server/telecom/voip/VoipCallMonitor.java b/src/com/android/server/telecom/voip/VoipCallMonitor.java
index 9254395..3779a6d 100644
--- a/src/com/android/server/telecom/voip/VoipCallMonitor.java
+++ b/src/com/android/server/telecom/voip/VoipCallMonitor.java
@@ -36,6 +36,7 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.server.LocalServices;
 import com.android.server.telecom.Call;
+
 import com.android.server.telecom.CallsManagerListenerBase;
 import com.android.server.telecom.LogUtils;
 import com.android.server.telecom.LoggedHandlerExecutor;
@@ -46,6 +47,7 @@
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
 
@@ -89,13 +91,21 @@
                         boolean sbnMatched = false;
                         for (Call call : mNotificationPendingCalls) {
                             if (info.matchesCall(call)) {
+                                Log.i(this, "onNotificationPosted: found a pending "
+                                                + "callId=[%s] for the call notification w/ "
+                                                + "id=[%s]",
+                                        call.getId(), sbn.getId());
                                 mNotificationPendingCalls.remove(call);
                                 mNotificationInfoToCallMap.put(info, call);
                                 sbnMatched = true;
                                 break;
                             }
                         }
-                        if (!sbnMatched) {
+                        if (!sbnMatched &&
+                                !mCachedNotifications.contains(info) /* don't re-add if update */) {
+                            Log.i(this, "onNotificationPosted: could not find a"
+                                            + "call for the call notification w/ id=[%s]",
+                                    sbn.getId());
                             // notification may post before we started to monitor the call, cache
                             // this notification and try to match it later with new added call.
                             mCachedNotifications.add(info);
@@ -154,7 +164,6 @@
             Set<Call> callList = mAccountHandleToCallMap.computeIfAbsent(phoneAccountHandle,
                     k -> new HashSet<>());
             callList.add(call);
-
             CompletableFuture.completedFuture(null).thenComposeAsync(
                     (x) -> {
                         startFGSDelegation(call.getCallingPackageIdentity().mCallingPackagePid,
@@ -223,11 +232,15 @@
             Log.i(this, "stopFGSDelegation of call %s", call);
             PhoneAccountHandle handle = call.getTargetPhoneAccount();
             Set<Call> calls = mAccountHandleToCallMap.get(handle);
+
+            // Every call for the package that is losing foreground service delegation should be
+            // removed from tracking maps/contains in this class
             if (calls != null) {
                 for (Call c : calls) {
-                    stopMonitorWorks(c);
+                    stopMonitorWorks(c); // remove the call from tacking in this class
                 }
             }
+
             mAccountHandleToCallMap.remove(handle);
 
             if (mActivityManagerInternal != null) {
@@ -253,6 +266,8 @@
             boolean sbnMatched = false;
             for (NotificationInfo info : mCachedNotifications) {
                 if (info.matchesCall(call)) {
+                    Log.i(this, "startMonitorNotification: found a cached call "
+                            + "notification for call=[%s]", call);
                     mCachedNotifications.remove(info);
                     mNotificationInfoToCallMap.put(info, call);
                     sbnMatched = true;
@@ -261,6 +276,8 @@
             }
             if (!sbnMatched) {
                 // Only continue to
+                Log.i(this, "startMonitorNotification: could not find a call"
+                        + " notification for the call=[%s];", call);
                 mNotificationPendingCalls.add(call);
                 CompletableFuture<Void> future = new CompletableFuture<>();
                 mHandler.postDelayed(() -> future.complete(null), 5000L);
@@ -288,12 +305,7 @@
         mActivityManagerInternal = ami;
     }
 
-    @VisibleForTesting
-    public void setNotificationListenerService(NotificationListenerService listener) {
-        mNotificationListener = listener;
-    }
-
-    private class NotificationInfo {
+    private static class NotificationInfo extends Object {
         private String mPackageName;
         private UserHandle mUserHandle;
 
@@ -305,8 +317,49 @@
         boolean matchesCall(Call call) {
             PhoneAccountHandle accountHandle = call.getTargetPhoneAccount();
             return mPackageName != null && mPackageName.equals(
-                   accountHandle.getComponentName().getPackageName())
+                    accountHandle.getComponentName().getPackageName())
                     && mUserHandle != null && mUserHandle.equals(accountHandle.getUserHandle());
         }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (!(obj instanceof NotificationInfo)) {
+                return false;
+            }
+            NotificationInfo that = (NotificationInfo) obj;
+            return Objects.equals(this.mPackageName, that.mPackageName)
+                    && Objects.equals(this.mUserHandle, that.mUserHandle);
+        }
+
+        @Override
+        public int hashCode() {
+            return Objects.hash(mPackageName, mUserHandle);
+        }
+
+        @Override
+        public String toString() {
+            StringBuilder sb = new StringBuilder();
+            sb.append("{ NotificationInfo: [mPackageName: ")
+                    .append(mPackageName)
+                    .append("], [mUserHandle=")
+                    .append(mUserHandle)
+                    .append("]  }");
+            return sb.toString();
+        }
+    }
+
+    @VisibleForTesting
+    public void postNotification(StatusBarNotification statusBarNotification) {
+        mNotificationListener.onNotificationPosted(statusBarNotification);
+    }
+
+    @VisibleForTesting
+    public void removeNotification(StatusBarNotification statusBarNotification) {
+        mNotificationListener.onNotificationRemoved(statusBarNotification);
+    }
+
+    @VisibleForTesting
+    public Set<Call> getCallsForHandle(PhoneAccountHandle handle){
+        return mAccountHandleToCallMap.get(handle);
     }
 }
diff --git a/testapps/transactionalVoipApp/res/layout/in_call_activity.xml b/testapps/transactionalVoipApp/res/layout/in_call_activity.xml
index bed2e1a..a92a99b 100644
--- a/testapps/transactionalVoipApp/res/layout/in_call_activity.xml
+++ b/testapps/transactionalVoipApp/res/layout/in_call_activity.xml
@@ -29,6 +29,13 @@
     />
 
     <Button
+        android:id="@+id/updateCallStyleNotification"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/update_notification"
+    />
+
+    <Button
         android:id="@+id/answer_button"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/testapps/transactionalVoipApp/res/values-af/strings.xml b/testapps/transactionalVoipApp/res/values-af/strings.xml
index 78abd1b..7158973 100644
--- a/testapps/transactionalVoipApp/res/values-af/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-af/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Luidspreker"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"begin stroom"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-am/strings.xml b/testapps/transactionalVoipApp/res/values-am/strings.xml
index 2766bf8..16dbb73 100644
--- a/testapps/transactionalVoipApp/res/values-am/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-am/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"ድምጽ ማውጫ"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"ብሉቱዝ"</string>
     <string name="start_stream" msgid="3567634786280097431">"ዥረት ይጀምሩ"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-ar/strings.xml b/testapps/transactionalVoipApp/res/values-ar/strings.xml
index 8a42e30..b1ec27c 100644
--- a/testapps/transactionalVoipApp/res/values-ar/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-ar/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"مكبّر الصوت"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"البلوتوث"</string>
     <string name="start_stream" msgid="3567634786280097431">"بدء البث"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-as/strings.xml b/testapps/transactionalVoipApp/res/values-as/strings.xml
index 56014c4..7f8447a 100644
--- a/testapps/transactionalVoipApp/res/values-as/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-as/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"স্পীকাৰ"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"ব্লুটুথ"</string>
     <string name="start_stream" msgid="3567634786280097431">"ষ্ট্ৰীম কৰিবলৈ আৰম্ভ কৰক"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-az/strings.xml b/testapps/transactionalVoipApp/res/values-az/strings.xml
index 14af0ab..49f9add 100644
--- a/testapps/transactionalVoipApp/res/values-az/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-az/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Dinamik"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"yayıma başlayın"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-b+sr+Latn/strings.xml b/testapps/transactionalVoipApp/res/values-b+sr+Latn/strings.xml
index 3c4019c..f824910 100644
--- a/testapps/transactionalVoipApp/res/values-b+sr+Latn/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-b+sr+Latn/strings.xml
@@ -32,4 +32,6 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Zvučnik"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"počnite da strimujete"</string>
+    <string name="crash_app" msgid="2548690390730057704">"izbaciti izuzetak"</string>
+    <string name="update_notification" msgid="8677916482672588779">"ažurirajte obaveštenje na stil aktuelnog poziva"</string>
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-be/strings.xml b/testapps/transactionalVoipApp/res/values-be/strings.xml
index 9decf62..8b928a8 100644
--- a/testapps/transactionalVoipApp/res/values-be/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-be/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Дынамік"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"пачаць перадачу плынню"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-bg/strings.xml b/testapps/transactionalVoipApp/res/values-bg/strings.xml
index 63b55f9..a52ec38 100644
--- a/testapps/transactionalVoipApp/res/values-bg/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-bg/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Високоговорител"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"започване на поточно предаване"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-bn/strings.xml b/testapps/transactionalVoipApp/res/values-bn/strings.xml
index b03123a..55550bf 100644
--- a/testapps/transactionalVoipApp/res/values-bn/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-bn/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"স্পিকার"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"ব্লুটুথ"</string>
     <string name="start_stream" msgid="3567634786280097431">"স্ট্রিমিং শুরু করুন"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-bs/strings.xml b/testapps/transactionalVoipApp/res/values-bs/strings.xml
index e4cbb08..2c239bf 100644
--- a/testapps/transactionalVoipApp/res/values-bs/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-bs/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Zvučnik"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"pokreni prijenos"</string>
+    <string name="crash_app" msgid="2548690390730057704">"izbacivanje iznimke"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-ca/strings.xml b/testapps/transactionalVoipApp/res/values-ca/strings.xml
index 6780882..9884eab 100644
--- a/testapps/transactionalVoipApp/res/values-ca/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-ca/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Altaveu"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"inicia la reproducció en continu"</string>
+    <string name="crash_app" msgid="2548690390730057704">"llança una excepció"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-cs/strings.xml b/testapps/transactionalVoipApp/res/values-cs/strings.xml
index 46a938b..381741d 100644
--- a/testapps/transactionalVoipApp/res/values-cs/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-cs/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Reproduktor"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"zahájit streamování"</string>
+    <string name="crash_app" msgid="2548690390730057704">"vyvolat výjimku"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-da/strings.xml b/testapps/transactionalVoipApp/res/values-da/strings.xml
index e857f3e..4347548 100644
--- a/testapps/transactionalVoipApp/res/values-da/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-da/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Højttaler"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"start med at streame"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-de/strings.xml b/testapps/transactionalVoipApp/res/values-de/strings.xml
index cf3116c..f927da7 100644
--- a/testapps/transactionalVoipApp/res/values-de/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-de/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Lautsprecher"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"Streaming starten"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-el/strings.xml b/testapps/transactionalVoipApp/res/values-el/strings.xml
index d838d2e..aa38b38 100644
--- a/testapps/transactionalVoipApp/res/values-el/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-el/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Ηχείο"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"έναρξη ροής"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-en-rAU/strings.xml b/testapps/transactionalVoipApp/res/values-en-rAU/strings.xml
index 5bfa1a1..fede2be 100644
--- a/testapps/transactionalVoipApp/res/values-en-rAU/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-en-rAU/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Speaker"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"start streaming"</string>
+    <string name="crash_app" msgid="2548690390730057704">"throw exception"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-en-rCA/strings.xml b/testapps/transactionalVoipApp/res/values-en-rCA/strings.xml
index 1014001..269f0d3 100644
--- a/testapps/transactionalVoipApp/res/values-en-rCA/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-en-rCA/strings.xml
@@ -32,4 +32,6 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Speaker"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"start streaming"</string>
+    <string name="crash_app" msgid="2548690390730057704">"throw exception"</string>
+    <string name="update_notification" msgid="8677916482672588779">"update notification to ongoing call style"</string>
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-en-rGB/strings.xml b/testapps/transactionalVoipApp/res/values-en-rGB/strings.xml
index 5bfa1a1..fede2be 100644
--- a/testapps/transactionalVoipApp/res/values-en-rGB/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-en-rGB/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Speaker"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"start streaming"</string>
+    <string name="crash_app" msgid="2548690390730057704">"throw exception"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-en-rIN/strings.xml b/testapps/transactionalVoipApp/res/values-en-rIN/strings.xml
index 5bfa1a1..fede2be 100644
--- a/testapps/transactionalVoipApp/res/values-en-rIN/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-en-rIN/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Speaker"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"start streaming"</string>
+    <string name="crash_app" msgid="2548690390730057704">"throw exception"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-en-rXC/strings.xml b/testapps/transactionalVoipApp/res/values-en-rXC/strings.xml
index 40b0016..d94683a 100644
--- a/testapps/transactionalVoipApp/res/values-en-rXC/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-en-rXC/strings.xml
@@ -32,4 +32,6 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‎‎‏‎‏‎‏‏‎‏‏‏‎‎‎‎‎‎‎‎‏‎‎‏‎‏‎‏‎‏‎‎‏‏‎‏‏‏‏‎‎‏‎‎‎‎‏‏‎‏‎‎‏‏‏‎‏‎Speaker‎‏‎‎‏‎"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‏‎‏‏‏‎‎‏‎‎‏‏‏‎‏‎‎‏‏‏‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‎‎‏‏‎‎‎‎‏‎‏‎‏‏‏‏‎‎‎Bluetooth‎‏‎‎‏‎"</string>
     <string name="start_stream" msgid="3567634786280097431">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‎‎‏‎‏‏‎‎‏‎‎‎‏‏‏‎‏‏‏‏‏‎‎‏‏‏‎‎‏‎‎‎‏‏‎‏‎‏‎‎‎‏‏‎‏‎‎‏‎‏‏‏‎start streaming‎‏‎‎‏‎"</string>
+    <string name="crash_app" msgid="2548690390730057704">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‏‏‎‏‎‏‏‏‏‎‏‏‎‎‎‏‎‎‎‏‏‎‏‎‎‎‎‎‏‎‎‏‎‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‏‏‎‏‎‎‎‎throw exception‎‏‎‎‏‎"</string>
+    <string name="update_notification" msgid="8677916482672588779">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‏‏‎‎‎‏‎‎‏‏‏‎‎‎‏‎‎‎‎‎‎‏‏‏‏‎‎‎‎‏‏‎‏‎‎‏‏‏‏‎‏‏‏‏‏‏‎‏‎‏‏‎update notification to ongoing call style‎‏‎‎‏‎"</string>
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-es-rUS/strings.xml b/testapps/transactionalVoipApp/res/values-es-rUS/strings.xml
index 3410a16..8e33408 100644
--- a/testapps/transactionalVoipApp/res/values-es-rUS/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-es-rUS/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Bocina"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"Iniciar transmisión"</string>
+    <string name="crash_app" msgid="2548690390730057704">"generación de excepción"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-es/strings.xml b/testapps/transactionalVoipApp/res/values-es/strings.xml
index 2ce1e81..e98c2ac 100644
--- a/testapps/transactionalVoipApp/res/values-es/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-es/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Altavoz"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"iniciar emisión"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-et/strings.xml b/testapps/transactionalVoipApp/res/values-et/strings.xml
index 477dec5..b599723 100644
--- a/testapps/transactionalVoipApp/res/values-et/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-et/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Kõlar"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"käivita voogesitus"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-eu/strings.xml b/testapps/transactionalVoipApp/res/values-eu/strings.xml
index 962346f..71da57a 100644
--- a/testapps/transactionalVoipApp/res/values-eu/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-eu/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Bozgorailua"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetootha"</string>
     <string name="start_stream" msgid="3567634786280097431">"hasi zuzenean igortzen"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-fa/strings.xml b/testapps/transactionalVoipApp/res/values-fa/strings.xml
index bd9cddf..924c6df 100644
--- a/testapps/transactionalVoipApp/res/values-fa/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-fa/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"بلندگو"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"بلوتوث"</string>
     <string name="start_stream" msgid="3567634786280097431">"شروع جاری‌سازی"</string>
+    <string name="crash_app" msgid="2548690390730057704">"استثنا قائل شدن"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-fi/strings.xml b/testapps/transactionalVoipApp/res/values-fi/strings.xml
index c95efcb..39fb180 100644
--- a/testapps/transactionalVoipApp/res/values-fi/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-fi/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Kaiutin"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"aloita suoratoisto"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-fr-rCA/strings.xml b/testapps/transactionalVoipApp/res/values-fr-rCA/strings.xml
index 64df91c..dff9e9a 100644
--- a/testapps/transactionalVoipApp/res/values-fr-rCA/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-fr-rCA/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Haut-parleur"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"démarrer une diffusion"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-fr/strings.xml b/testapps/transactionalVoipApp/res/values-fr/strings.xml
index f1d1bd7..c6c453e 100644
--- a/testapps/transactionalVoipApp/res/values-fr/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-fr/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Haut-parleur"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"démarrer la diffusion"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-gl/strings.xml b/testapps/transactionalVoipApp/res/values-gl/strings.xml
index 76fbb34..9e94ba9 100644
--- a/testapps/transactionalVoipApp/res/values-gl/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-gl/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Altofalante"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"iniciar reprodución en tempo real"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-gu/strings.xml b/testapps/transactionalVoipApp/res/values-gu/strings.xml
index b0066da..7ad733e 100644
--- a/testapps/transactionalVoipApp/res/values-gu/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-gu/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"સ્પીકર"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"બ્લૂટૂથ"</string>
     <string name="start_stream" msgid="3567634786280097431">"સ્ટ્રીમિંગ શરૂ કરો"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-hi/strings.xml b/testapps/transactionalVoipApp/res/values-hi/strings.xml
index a6e4a10..8e819e5 100644
--- a/testapps/transactionalVoipApp/res/values-hi/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-hi/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"स्पीकर"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"ब्लूटूथ"</string>
     <string name="start_stream" msgid="3567634786280097431">"स्ट्रीमिंग शुरू करें"</string>
+    <string name="crash_app" msgid="2548690390730057704">"अपवाद जोड़ें"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-hr/strings.xml b/testapps/transactionalVoipApp/res/values-hr/strings.xml
index 768d378..a531604 100644
--- a/testapps/transactionalVoipApp/res/values-hr/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-hr/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Zvučnik"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"pokretanje streaminga"</string>
+    <string name="crash_app" msgid="2548690390730057704">"izbacivanje iznimke"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-hu/strings.xml b/testapps/transactionalVoipApp/res/values-hu/strings.xml
index cda3b7e..dd40501 100644
--- a/testapps/transactionalVoipApp/res/values-hu/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-hu/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Hangszóró"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"streamelés indítása"</string>
+    <string name="crash_app" msgid="2548690390730057704">"kivétel dobása"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-hy/strings.xml b/testapps/transactionalVoipApp/res/values-hy/strings.xml
index b56941f..ddabd42 100644
--- a/testapps/transactionalVoipApp/res/values-hy/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-hy/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Բարձրախոս"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"սկսել հեռարձակում"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-in/strings.xml b/testapps/transactionalVoipApp/res/values-in/strings.xml
index e29fea7..51800be 100644
--- a/testapps/transactionalVoipApp/res/values-in/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-in/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Speaker"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"mulai streaming"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-is/strings.xml b/testapps/transactionalVoipApp/res/values-is/strings.xml
index 4ecb2ca..e8e22d1 100644
--- a/testapps/transactionalVoipApp/res/values-is/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-is/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Hátalari"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"hefja streymi"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-it/strings.xml b/testapps/transactionalVoipApp/res/values-it/strings.xml
index bb83aa1..40e87c2 100644
--- a/testapps/transactionalVoipApp/res/values-it/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-it/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Altoparlante"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"avvia streaming"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-iw/strings.xml b/testapps/transactionalVoipApp/res/values-iw/strings.xml
index 4de997e..3accc06 100644
--- a/testapps/transactionalVoipApp/res/values-iw/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-iw/strings.xml
@@ -32,4 +32,6 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"רמקול"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"התחלת השידור"</string>
+    <string name="crash_app" msgid="2548690390730057704">"חריגה להקפצה של הודעת שגיאה"</string>
+    <string name="update_notification" msgid="8677916482672588779">"עדכון ההתראה לסגנון של שיחה רציפה"</string>
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-ja/strings.xml b/testapps/transactionalVoipApp/res/values-ja/strings.xml
index a5e8251..f0b131d 100644
--- a/testapps/transactionalVoipApp/res/values-ja/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-ja/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"スピーカー"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"ストリーミングを開始"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-ka/strings.xml b/testapps/transactionalVoipApp/res/values-ka/strings.xml
index 671cffb..3695706 100644
--- a/testapps/transactionalVoipApp/res/values-ka/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-ka/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"დინამიკი"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"სტრიმინგის დაწყება"</string>
+    <string name="crash_app" msgid="2548690390730057704">"ხარვეზის გადასროლა"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-kk/strings.xml b/testapps/transactionalVoipApp/res/values-kk/strings.xml
index 2713491..87ab23c 100644
--- a/testapps/transactionalVoipApp/res/values-kk/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-kk/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Динамик"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"трансляцияны бастау"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-km/strings.xml b/testapps/transactionalVoipApp/res/values-km/strings.xml
index 13f4983..c6f31e0 100644
--- a/testapps/transactionalVoipApp/res/values-km/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-km/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"ឧបករណ៍​បំពង​សំឡេង"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"ប៊្លូធូស"</string>
     <string name="start_stream" msgid="3567634786280097431">"ចាប់ផ្ដើម​ការផ្សាយ"</string>
+    <string name="crash_app" msgid="2548690390730057704">"បោះ​ការលើកលែង"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-kn/strings.xml b/testapps/transactionalVoipApp/res/values-kn/strings.xml
index b994f92..dce846d 100644
--- a/testapps/transactionalVoipApp/res/values-kn/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-kn/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"ಸ್ಪೀಕರ್"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"ಬ್ಲೂಟೂತ್"</string>
     <string name="start_stream" msgid="3567634786280097431">"ಸ್ಟ್ರೀಮ್ ಮಾಡುವುದನ್ನು ಪ್ರಾರಂಭಿಸಿ"</string>
+    <string name="crash_app" msgid="2548690390730057704">"ಥ್ರೋ ಎಕ್ಸೆಪ್ಶನ್"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-ko/strings.xml b/testapps/transactionalVoipApp/res/values-ko/strings.xml
index 9eb4556..8a8d3f9 100644
--- a/testapps/transactionalVoipApp/res/values-ko/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-ko/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"스피커"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"블루투스"</string>
     <string name="start_stream" msgid="3567634786280097431">"스트리밍 시작"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-ky/strings.xml b/testapps/transactionalVoipApp/res/values-ky/strings.xml
index 577dcda..198c411 100644
--- a/testapps/transactionalVoipApp/res/values-ky/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-ky/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Динамик"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"агымды баштоо"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-lo/strings.xml b/testapps/transactionalVoipApp/res/values-lo/strings.xml
index 69126d9..6acb6d0 100644
--- a/testapps/transactionalVoipApp/res/values-lo/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-lo/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"ລຳໂພງ"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"ເລີ່ມການສະຕຣີມ"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-lt/strings.xml b/testapps/transactionalVoipApp/res/values-lt/strings.xml
index 91e51fe..30412e2 100644
--- a/testapps/transactionalVoipApp/res/values-lt/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-lt/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Garsiakalbis"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"pradėti srautinį perdavimą"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-lv/strings.xml b/testapps/transactionalVoipApp/res/values-lv/strings.xml
index ae6896f..cc10928 100644
--- a/testapps/transactionalVoipApp/res/values-lv/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-lv/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Skaļrunis"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"sākt straumēšanu"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-mk/strings.xml b/testapps/transactionalVoipApp/res/values-mk/strings.xml
index 8501eaf..c113219 100644
--- a/testapps/transactionalVoipApp/res/values-mk/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-mk/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Звучник"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"започни стриминг"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-ml/strings.xml b/testapps/transactionalVoipApp/res/values-ml/strings.xml
index 67e4e34..6c70b22 100644
--- a/testapps/transactionalVoipApp/res/values-ml/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-ml/strings.xml
@@ -32,4 +32,6 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"സ്പീക്കർ"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"സ്‌ട്രീമിംഗ് ആരംഭിക്കുക"</string>
+    <string name="crash_app" msgid="2548690390730057704">"ഒഴിവാക്കൽ ത്രോ ചെയ്യുക"</string>
+    <string name="update_notification" msgid="8677916482672588779">"സജീവമായ കോൾ ശൈലിയിലേക്ക് അറിയിപ്പ് അപ്ഡേറ്റ് ചെയ്യുക"</string>
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-mn/strings.xml b/testapps/transactionalVoipApp/res/values-mn/strings.xml
index e4b6f36..ea00df8 100644
--- a/testapps/transactionalVoipApp/res/values-mn/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-mn/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Чанга яригч"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"дамжуулалтыг эхлүүлэх"</string>
+    <string name="crash_app" msgid="2548690390730057704">"шидэх гажиг"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-mr/strings.xml b/testapps/transactionalVoipApp/res/values-mr/strings.xml
index dfb3184..2abecfd 100644
--- a/testapps/transactionalVoipApp/res/values-mr/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-mr/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"स्पीकर"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"ब्लूटूथ"</string>
     <string name="start_stream" msgid="3567634786280097431">"स्ट्रीम करणे सुरू करा"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-ms/strings.xml b/testapps/transactionalVoipApp/res/values-ms/strings.xml
index 3005391..abcb702 100644
--- a/testapps/transactionalVoipApp/res/values-ms/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-ms/strings.xml
@@ -32,4 +32,6 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Pembesar suara"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"mulakan penstriman"</string>
+    <string name="crash_app" msgid="2548690390730057704">"buat pengecualian"</string>
+    <string name="update_notification" msgid="8677916482672588779">"kemas kinikan pemberitahuan kepada gaya panggilan keluar"</string>
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-my/strings.xml b/testapps/transactionalVoipApp/res/values-my/strings.xml
index 818a3f7..330f4c6 100644
--- a/testapps/transactionalVoipApp/res/values-my/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-my/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"စပီကာ"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"ဘလူးတုသ်"</string>
     <string name="start_stream" msgid="3567634786280097431">"တိုက်ရိုက်လွှင့်ခြင်း စတင်ရန်"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-nb/strings.xml b/testapps/transactionalVoipApp/res/values-nb/strings.xml
index ab0353d..15f3aaf 100644
--- a/testapps/transactionalVoipApp/res/values-nb/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-nb/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Høyttaler"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"start strømming"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-ne/strings.xml b/testapps/transactionalVoipApp/res/values-ne/strings.xml
index 3a12a70..f342fdd 100644
--- a/testapps/transactionalVoipApp/res/values-ne/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-ne/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"स्पिकर"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"ब्लुटुथ"</string>
     <string name="start_stream" msgid="3567634786280097431">"स्ट्रिम गर्न थाल्नुहोस्"</string>
+    <string name="crash_app" msgid="2548690390730057704">"अपवाद देखाउने काम"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-nl/strings.xml b/testapps/transactionalVoipApp/res/values-nl/strings.xml
index 7c9ce32..ecb541a 100644
--- a/testapps/transactionalVoipApp/res/values-nl/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-nl/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Speaker"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"streamen starten"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-or/strings.xml b/testapps/transactionalVoipApp/res/values-or/strings.xml
index 7a805f4..a1cfef4 100644
--- a/testapps/transactionalVoipApp/res/values-or/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-or/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"ସ୍ପିକର"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"ବ୍ଲୁଟୁଥ"</string>
     <string name="start_stream" msgid="3567634786280097431">"ଷ୍ଟ୍ରିମିଂ ଆରମ୍ଭ କରନ୍ତୁ"</string>
+    <string name="crash_app" msgid="2548690390730057704">"ଥ୍ରୋ ଏକ୍ସସେପସନ"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-pa/strings.xml b/testapps/transactionalVoipApp/res/values-pa/strings.xml
index 8293899..9ecb6fb 100644
--- a/testapps/transactionalVoipApp/res/values-pa/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-pa/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"ਸਪੀਕਰ"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"ਬਲੂਟੁੱਥ"</string>
     <string name="start_stream" msgid="3567634786280097431">"ਸਟ੍ਰੀਮਿੰਗ ਸ਼ੁਰੂ ਕਰੋ"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-pl/strings.xml b/testapps/transactionalVoipApp/res/values-pl/strings.xml
index 3cb8ac4..4712a11 100644
--- a/testapps/transactionalVoipApp/res/values-pl/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-pl/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Głośnik"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"rozpocznij transmisję"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-pt-rPT/strings.xml b/testapps/transactionalVoipApp/res/values-pt-rPT/strings.xml
index 6c4f149..f038ecd 100644
--- a/testapps/transactionalVoipApp/res/values-pt-rPT/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-pt-rPT/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Altifalante"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"Iniciar stream"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-pt/strings.xml b/testapps/transactionalVoipApp/res/values-pt/strings.xml
index 97bba50..cce8a14 100644
--- a/testapps/transactionalVoipApp/res/values-pt/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-pt/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Alto-falante"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"Iniciar transmissão"</string>
+    <string name="crash_app" msgid="2548690390730057704">"gerar exceção"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-ro/strings.xml b/testapps/transactionalVoipApp/res/values-ro/strings.xml
index bb630a8..76f01a0 100644
--- a/testapps/transactionalVoipApp/res/values-ro/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-ro/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Difuzor"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"începe streamingul"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-ru/strings.xml b/testapps/transactionalVoipApp/res/values-ru/strings.xml
index 87c06f1..30fc084 100644
--- a/testapps/transactionalVoipApp/res/values-ru/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-ru/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Колонка"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"Начать трансляцию"</string>
+    <string name="crash_app" msgid="2548690390730057704">"отправить сообщение об исключении"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-si/strings.xml b/testapps/transactionalVoipApp/res/values-si/strings.xml
index c28e166..8085ab9 100644
--- a/testapps/transactionalVoipApp/res/values-si/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-si/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"ස්පීකරය"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"බ්ලූටූත්"</string>
     <string name="start_stream" msgid="3567634786280097431">"ප්‍රවාහය අරඹන්න"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-sk/strings.xml b/testapps/transactionalVoipApp/res/values-sk/strings.xml
index 5e76289..e33f77b 100644
--- a/testapps/transactionalVoipApp/res/values-sk/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-sk/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Reproduktor"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"spustiť streamovanie"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-sl/strings.xml b/testapps/transactionalVoipApp/res/values-sl/strings.xml
index 435eac9..d3bc068 100644
--- a/testapps/transactionalVoipApp/res/values-sl/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-sl/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Zvočnik"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"začni pretočno predvajanje"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-sq/strings.xml b/testapps/transactionalVoipApp/res/values-sq/strings.xml
index 3d18edf..43b3b8f 100644
--- a/testapps/transactionalVoipApp/res/values-sq/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-sq/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Altoparlanti"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"nis transmetimin"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-sr/strings.xml b/testapps/transactionalVoipApp/res/values-sr/strings.xml
index df6a08b..cd413f4 100644
--- a/testapps/transactionalVoipApp/res/values-sr/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-sr/strings.xml
@@ -32,4 +32,6 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Звучник"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"почните да стримујете"</string>
+    <string name="crash_app" msgid="2548690390730057704">"избацити изузетак"</string>
+    <string name="update_notification" msgid="8677916482672588779">"ажурирајте обавештење на стил актуелног позива"</string>
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-sv/strings.xml b/testapps/transactionalVoipApp/res/values-sv/strings.xml
index 51d300a..05dd692 100644
--- a/testapps/transactionalVoipApp/res/values-sv/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-sv/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Högtalare"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"starta streaming"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-sw/strings.xml b/testapps/transactionalVoipApp/res/values-sw/strings.xml
index 3ad2501..fbf50f8 100644
--- a/testapps/transactionalVoipApp/res/values-sw/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-sw/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Spika"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"anzisha kutiririsha"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-ta/strings.xml b/testapps/transactionalVoipApp/res/values-ta/strings.xml
index 884291d..2cf57c7 100644
--- a/testapps/transactionalVoipApp/res/values-ta/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-ta/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"ஸ்பீக்கர்"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"புளூடூத்"</string>
     <string name="start_stream" msgid="3567634786280097431">"ஸ்ட்ரீமிங்கைத் தொடங்கு"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-te/strings.xml b/testapps/transactionalVoipApp/res/values-te/strings.xml
index b926d1a..f4560ab 100644
--- a/testapps/transactionalVoipApp/res/values-te/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-te/strings.xml
@@ -32,4 +32,6 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"స్పీకర్"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"బ్లూటూత్"</string>
     <string name="start_stream" msgid="3567634786280097431">"స్ట్రీమింగ్‌ను ప్రారంభించండి"</string>
+    <string name="crash_app" msgid="2548690390730057704">"మినహాయింపు వేయండి"</string>
+    <string name="update_notification" msgid="8677916482672588779">"జరుగుతున్న కాల్ స్టయిల్‌కి నోటిఫికేషన్‌ను అప్‌డేట్ చేయండి"</string>
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-th/strings.xml b/testapps/transactionalVoipApp/res/values-th/strings.xml
index a1a9803..3e8cb53 100644
--- a/testapps/transactionalVoipApp/res/values-th/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-th/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"ลำโพง"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"บลูทูธ"</string>
     <string name="start_stream" msgid="3567634786280097431">"เริ่มสตรีมมิง"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-tl/strings.xml b/testapps/transactionalVoipApp/res/values-tl/strings.xml
index d3399ff..5cf6682 100644
--- a/testapps/transactionalVoipApp/res/values-tl/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-tl/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Speaker"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"simulan ang streaming"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-tr/strings.xml b/testapps/transactionalVoipApp/res/values-tr/strings.xml
index d9a94ab..fe74f82 100644
--- a/testapps/transactionalVoipApp/res/values-tr/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-tr/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Hoparlör"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"yayın başlat"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-uk/strings.xml b/testapps/transactionalVoipApp/res/values-uk/strings.xml
index e08728c..dae6214 100644
--- a/testapps/transactionalVoipApp/res/values-uk/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-uk/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Колонка"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"Почати трансляцію"</string>
+    <string name="crash_app" msgid="2548690390730057704">"надіслати повідомлення про виняток"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-ur/strings.xml b/testapps/transactionalVoipApp/res/values-ur/strings.xml
index e0e0c6e..122cb51 100644
--- a/testapps/transactionalVoipApp/res/values-ur/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-ur/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"اسپیکر"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"بلوٹوتھ"</string>
     <string name="start_stream" msgid="3567634786280097431">"سلسلہ بندی شروع کریں"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-uz/strings.xml b/testapps/transactionalVoipApp/res/values-uz/strings.xml
index 5421322..3c607a5 100644
--- a/testapps/transactionalVoipApp/res/values-uz/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-uz/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Karnay"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"strimingni boshlash"</string>
+    <string name="crash_app" msgid="2548690390730057704">"istisno berish"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-vi/strings.xml b/testapps/transactionalVoipApp/res/values-vi/strings.xml
index 88362e4..e756f9c 100644
--- a/testapps/transactionalVoipApp/res/values-vi/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-vi/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Loa"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"bắt đầu phát trực tuyến"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-zh-rCN/strings.xml b/testapps/transactionalVoipApp/res/values-zh-rCN/strings.xml
index 4b816ba..305e55b 100644
--- a/testapps/transactionalVoipApp/res/values-zh-rCN/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-zh-rCN/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"扬声器"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"蓝牙"</string>
     <string name="start_stream" msgid="3567634786280097431">"开始直播"</string>
+    <string name="crash_app" msgid="2548690390730057704">"抛出异常"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-zh-rHK/strings.xml b/testapps/transactionalVoipApp/res/values-zh-rHK/strings.xml
index 5b80831..2b5444b 100644
--- a/testapps/transactionalVoipApp/res/values-zh-rHK/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-zh-rHK/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"喇叭"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"藍牙"</string>
     <string name="start_stream" msgid="3567634786280097431">"開始串流播放"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-zh-rTW/strings.xml b/testapps/transactionalVoipApp/res/values-zh-rTW/strings.xml
index b8a2045..9ef032f 100644
--- a/testapps/transactionalVoipApp/res/values-zh-rTW/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-zh-rTW/strings.xml
@@ -32,4 +32,8 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"喇叭"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"藍牙"</string>
     <string name="start_stream" msgid="3567634786280097431">"開始串流播放"</string>
+    <!-- no translation found for crash_app (2548690390730057704) -->
+    <skip />
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values-zu/strings.xml b/testapps/transactionalVoipApp/res/values-zu/strings.xml
index 8e14895..567152e 100644
--- a/testapps/transactionalVoipApp/res/values-zu/strings.xml
+++ b/testapps/transactionalVoipApp/res/values-zu/strings.xml
@@ -32,4 +32,7 @@
     <string name="request_speaker_endpoint" msgid="1033259535289845405">"Isipikha"</string>
     <string name="request_bluetooth_endpoint" msgid="5933254250623451836">"I-Bluetooth"</string>
     <string name="start_stream" msgid="3567634786280097431">"Qala ukusakaza-bukhoma"</string>
+    <string name="crash_app" msgid="2548690390730057704">"phonsela okuhlukile"</string>
+    <!-- no translation found for update_notification (8677916482672588779) -->
+    <skip />
 </resources>
diff --git a/testapps/transactionalVoipApp/res/values/strings.xml b/testapps/transactionalVoipApp/res/values/strings.xml
index c8486c1..8239a0e 100644
--- a/testapps/transactionalVoipApp/res/values/strings.xml
+++ b/testapps/transactionalVoipApp/res/values/strings.xml
@@ -39,5 +39,6 @@
     <!-- extra functionality -->
     <string name="start_stream">start streaming</string>
     <string name="crash_app">throw exception</string>
+    <string name="update_notification"> update notification to ongoing call style</string>
 
 </resources>
\ No newline at end of file
diff --git a/testapps/transactionalVoipApp/src/com/android/server/telecom/transactionalVoipApp/InCallActivity.java b/testapps/transactionalVoipApp/src/com/android/server/telecom/transactionalVoipApp/InCallActivity.java
index 53f5e9c..707c325 100644
--- a/testapps/transactionalVoipApp/src/com/android/server/telecom/transactionalVoipApp/InCallActivity.java
+++ b/testapps/transactionalVoipApp/src/com/android/server/telecom/transactionalVoipApp/InCallActivity.java
@@ -21,11 +21,9 @@
 import static android.telecom.CallAttributes.DIRECTION_OUTGOING;
 
 import android.app.Activity;
-import android.graphics.Color;
 import android.media.AudioManager;
 import android.media.AudioRecord;
 import android.media.MediaPlayer;
-import android.net.StringNetworkSpecifier;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.OutcomeReceiver;
@@ -174,8 +172,15 @@
                         "Intentionally throwing RuntimeException from InCallActivity");
             }
         });
-    }
 
+        findViewById(R.id.updateCallStyleNotification).setOnClickListener(
+                new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        Utils.updateCallStyleNotification_toOngoingCall(getApplicationContext());
+                    }
+                });
+    }
 
     @Override
     protected void onStop() {
diff --git a/testapps/transactionalVoipApp/src/com/android/server/telecom/transactionalVoipApp/Utils.java b/testapps/transactionalVoipApp/src/com/android/server/telecom/transactionalVoipApp/Utils.java
index 98de790..0de2b19 100644
--- a/testapps/transactionalVoipApp/src/com/android/server/telecom/transactionalVoipApp/Utils.java
+++ b/testapps/transactionalVoipApp/src/com/android/server/telecom/transactionalVoipApp/Utils.java
@@ -17,6 +17,7 @@
 package com.android.server.telecom.transactionalVoipApp;
 
 import android.app.Notification;
+import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.app.Person;
 import android.content.ComponentName;
@@ -38,9 +39,11 @@
 
 public class Utils {
     public static final String TAG = "TransactionalAppUtils";
+    public static final String CALLER_NAME = "Sundar Pichai";
     public static final String sEXTRAS_KEY = "ExtrasKey";
     public static final String sCALL_DIRECTION_KEY = "CallDirectionKey";
     public static final String CHANNEL_ID = "TelecomVoipAppChannelId";
+    public static final int CALL_NOTIFICATION_ID = 123456;
     private static final int SAMPLING_RATE_HZ = 44100;
 
     public static final PhoneAccountHandle PHONE_ACCOUNT_HANDLE = new PhoneAccountHandle(
@@ -70,7 +73,7 @@
                 .setContentTitle("Incoming call")
                 .setSmallIcon(R.drawable.ic_android_black_24dp)
                 .setStyle(Notification.CallStyle.forIncomingCall(
-                        new Person.Builder().setName("Tom Stu").setImportant(true).build(),
+                        new Person.Builder().setName(CALLER_NAME).setImportant(true).build(),
                         pendingAnswer, pendingReject)
                 )
                 .setFullScreenIntent(pendingAnswer, true)
@@ -79,6 +82,29 @@
         return callStyleNotification;
     }
 
+
+    public static void updateCallStyleNotification_toOngoingCall(Context context) {
+        PendingIntent ongoingCall = PendingIntent.getActivity(context, 0,
+                new Intent(""), PendingIntent.FLAG_IMMUTABLE);
+
+        Notification callStyleNotification = new Notification.Builder(context,
+                CHANNEL_ID)
+                .setContentText("active call in the TransactionalTestApp")
+                .setContentTitle("Ongoing call")
+                .setSmallIcon(R.drawable.ic_android_black_24dp)
+                .setStyle(Notification.CallStyle.forOngoingCall(
+                        new Person.Builder().setName(CALLER_NAME).setImportant(true).build(),
+                        ongoingCall)
+                )
+                .setFullScreenIntent(ongoingCall, true)
+                .build();
+
+        NotificationManager notificationManager =
+                context.getSystemService(NotificationManager.class);
+
+        notificationManager.notify(CALL_NOTIFICATION_ID, callStyleNotification);
+    }
+
     public static MediaPlayer createMediaPlayer(Context context) {
         int audioToPlay = (Math.random() > 0.5f) ?
                 com.android.server.telecom.transactionalVoipApp.R.raw.sample_audio :
diff --git a/testapps/transactionalVoipApp/src/com/android/server/telecom/transactionalVoipApp/VoipAppMainActivity.java b/testapps/transactionalVoipApp/src/com/android/server/telecom/transactionalVoipApp/VoipAppMainActivity.java
index ae7d9d0..7578b9d 100644
--- a/testapps/transactionalVoipApp/src/com/android/server/telecom/transactionalVoipApp/VoipAppMainActivity.java
+++ b/testapps/transactionalVoipApp/src/com/android/server/telecom/transactionalVoipApp/VoipAppMainActivity.java
@@ -99,7 +99,7 @@
     }
 
     private void startInCallActivity(int direction) {
-        mNotificationManager.notify(123456,
+        mNotificationManager.notify(Utils.CALL_NOTIFICATION_ID,
                 Utils.createCallStyleNotification(getApplicationContext()));
         Bundle extras = new Bundle();
         extras.putInt(Utils.sCALL_DIRECTION_KEY, direction);
diff --git a/tests/src/com/android/server/telecom/tests/VoipCallMonitorTest.java b/tests/src/com/android/server/telecom/tests/VoipCallMonitorTest.java
index c9ea34f..c66b0f7 100644
--- a/tests/src/com/android/server/telecom/tests/VoipCallMonitorTest.java
+++ b/tests/src/com/android/server/telecom/tests/VoipCallMonitorTest.java
@@ -18,30 +18,30 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.timeout;
-import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.app.ActivityManagerInternal;
 import android.app.ForegroundServiceDelegationOptions;
+import android.app.Notification;
+import android.app.PendingIntent;
+import android.app.Person;
 import android.content.ComponentName;
+import android.content.Intent;
 import android.content.ServiceConnection;
 import android.os.Bundle;
 import android.os.IBinder;
 import android.os.UserHandle;
-import android.service.notification.NotificationListenerService;
+import android.service.notification.StatusBarNotification;
 import android.telecom.PhoneAccountHandle;
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.server.telecom.Call;
-import com.android.server.telecom.CallsManager;
+import com.android.server.telecom.CallState;
 import com.android.server.telecom.TelecomSystem;
 import com.android.server.telecom.voip.VoipCallMonitor;
 
@@ -55,16 +55,18 @@
 @RunWith(JUnit4.class)
 public class VoipCallMonitorTest extends TelecomTestCase {
     private VoipCallMonitor mMonitor;
+    private static final String NAME = "John Smith";
     private static final String PKG_NAME_1 = "telecom.voip.test1";
     private static final String PKG_NAME_2 = "telecom.voip.test2";
     private static final String CLS_NAME = "VoipActivity";
     private static final String ID_1 = "id1";
+    public static final String CHANNEL_ID = "TelecomVoipAppChannelId";
     private static final UserHandle USER_HANDLE_1 = new UserHandle(1);
     private static final long TIMEOUT = 5000L;
 
     @Mock private TelecomSystem.SyncRoot mLock;
     @Mock private ActivityManagerInternal mActivityManagerInternal;
-    @Mock private NotificationListenerService mListenerService;
+    @Mock private IBinder mServiceConnection;
 
     private final PhoneAccountHandle mHandle1User1 = new PhoneAccountHandle(
             new ComponentName(PKG_NAME_1, CLS_NAME), ID_1, USER_HANDLE_1);
@@ -77,12 +79,11 @@
         super.setUp();
         mMonitor = new VoipCallMonitor(mContext, mLock);
         mActivityManagerInternal = mock(ActivityManagerInternal.class);
-        mListenerService = mock(NotificationListenerService.class);
         mMonitor.setActivityManagerInternal(mActivityManagerInternal);
-        mMonitor.setNotificationListenerService(mListenerService);
-        doNothing().when(mListenerService).registerAsSystemService(eq(mContext),
-                any(ComponentName.class), anyInt());
         mMonitor.startMonitor();
+        when(mActivityManagerInternal.startForegroundServiceDelegate(any(
+                ForegroundServiceDelegationOptions.class), any(ServiceConnection.class)))
+                .thenReturn(true);
     }
 
     @SmallTest
@@ -206,13 +207,98 @@
                 .stopForegroundServiceDelegate(any(ServiceConnection.class));
     }
 
+    /**
+     * Ensure an app loses foreground service delegation if the user dismisses the call style
+     * notification or the app removes the notification.
+     * Note: post the notification AFTER foreground service delegation is gained
+     */
+    @SmallTest
+    @Test
+    public void testStopFgsIfCallNotificationIsRemoved_PostedAfterFgsIsGained() {
+        // GIVEN
+        StatusBarNotification sbn = createStatusBarNotificationFromHandle(mHandle1User1);
+
+        // WHEN
+        // FGS is gained after the call is added to VoipCallMonitor
+        ServiceConnection c = addCallAndVerifyFgsIsGained(createTestCall("1", mHandle1User1));
+        // simulate an app posting a call style notification after FGS is gained
+        mMonitor.postNotification(sbn);
+
+        // THEN
+        // shortly after posting the notification, simulate the user dismissing it
+        mMonitor.removeNotification(sbn);
+        // FGS should be removed once the notification is removed
+        verify(mActivityManagerInternal, timeout(TIMEOUT)).stopForegroundServiceDelegate(c);
+    }
+
+    /**
+     * Ensure an app loses foreground service delegation if the user dismisses the call style
+     * notification or the app removes the notification.
+     * Note: post the notification BEFORE foreground service delegation is gained
+     */
+    @SmallTest
+    @Test
+    public void testStopFgsIfCallNotificationIsRemoved_PostedBeforeFgsIsGained() {
+        // GIVEN
+        StatusBarNotification sbn = createStatusBarNotificationFromHandle(mHandle1User1);
+
+        // WHEN
+        //  an app posts a call style notification before FGS is gained
+        mMonitor.postNotification(sbn);
+        // FGS is gained after the call is added to VoipCallMonitor
+        ServiceConnection c = addCallAndVerifyFgsIsGained(createTestCall("1", mHandle1User1));
+
+        // THEN
+        // shortly after posting the notification, simulate the user dismissing it
+        mMonitor.removeNotification(sbn);
+        // FGS should be removed once the notification is removed
+        verify(mActivityManagerInternal, timeout(TIMEOUT)).stopForegroundServiceDelegate(c);
+    }
+
     private Call createTestCall(String id, PhoneAccountHandle handle) {
         Call call = mock(Call.class);
         when(call.getTargetPhoneAccount()).thenReturn(handle);
         when(call.isTransactionalCall()).thenReturn(true);
         when(call.getExtras()).thenReturn(new Bundle());
         when(call.getId()).thenReturn(id);
-        when(call.getCallingPackageIdentity()).thenReturn( new Call.CallingPackageIdentity() );
+        when(call.getCallingPackageIdentity()).thenReturn(new Call.CallingPackageIdentity());
+        when(call.getState()).thenReturn(CallState.ACTIVE);
         return call;
     }
+
+    private Notification createCallStyleNotification() {
+        PendingIntent pendingOngoingIntent = PendingIntent.getActivity(mContext, 0,
+                new Intent(""), PendingIntent.FLAG_IMMUTABLE);
+
+        return new Notification.Builder(mContext,
+                CHANNEL_ID)
+                .setStyle(Notification.CallStyle.forOngoingCall(
+                        new Person.Builder().setName(NAME).setImportant(true).build(),
+                        pendingOngoingIntent)
+                )
+                .setFullScreenIntent(pendingOngoingIntent, true)
+                .build();
+    }
+
+    private StatusBarNotification createStatusBarNotificationFromHandle(PhoneAccountHandle handle) {
+        return new StatusBarNotification(
+                handle.getComponentName().getPackageName(), "", 0, "", 0, 0,
+                createCallStyleNotification(), handle.getUserHandle(), "", 0);
+    }
+
+    private ServiceConnection addCallAndVerifyFgsIsGained(Call call) {
+        ArgumentCaptor<ServiceConnection> captor = ArgumentCaptor.forClass(ServiceConnection.class);
+        // add the call to the VoipCallMonitor under test which will start FGS
+        mMonitor.onCallAdded(call);
+        // FGS should be granted within the timeout
+        verify(mActivityManagerInternal, timeout(TIMEOUT))
+                .startForegroundServiceDelegate(any(
+                                ForegroundServiceDelegationOptions.class),
+                        captor.capture());
+        // onServiceConnected must be called in order for VoipCallMonitor to start monitoring for
+        // a notification before the timeout expires
+        ServiceConnection serviceConnection = captor.getValue();
+        serviceConnection.onServiceConnected(mHandle1User1.getComponentName(), mServiceConnection);
+        return serviceConnection;
+    }
 }