Merge "Fix NPE in DialerCall that cause it crash and failed to show disconnection error message." am: 5d01ebb84a am: e2eb24bd29 am: a31d71bd34

Original change: https://android-review.googlesource.com/c/platform/packages/apps/Dialer/+/1671906

Change-Id: Ic6cbd99e9daf9d0c34ab01da72b185571db36cbd
diff --git a/java/com/android/incallui/CallButtonPresenter.java b/java/com/android/incallui/CallButtonPresenter.java
index 2a9600a..f2f7a40 100644
--- a/java/com/android/incallui/CallButtonPresenter.java
+++ b/java/com/android/incallui/CallButtonPresenter.java
@@ -208,18 +208,22 @@
     int newRoute;
     if (audioState.getRoute() == CallAudioState.ROUTE_SPEAKER) {
       newRoute = CallAudioState.ROUTE_WIRED_OR_EARPIECE;
-      Logger.get(context)
-          .logCallImpression(
-              DialerImpression.Type.IN_CALL_SCREEN_TURN_ON_WIRED_OR_EARPIECE,
-              call.getUniqueCallId(),
-              call.getTimeAddedMs());
+      if (call != null) {
+        Logger.get(context)
+                .logCallImpression(
+                        DialerImpression.Type.IN_CALL_SCREEN_TURN_ON_WIRED_OR_EARPIECE,
+                        call.getUniqueCallId(),
+                        call.getTimeAddedMs());
+      }
     } else {
       newRoute = CallAudioState.ROUTE_SPEAKER;
-      Logger.get(context)
-          .logCallImpression(
-              DialerImpression.Type.IN_CALL_SCREEN_TURN_ON_SPEAKERPHONE,
-              call.getUniqueCallId(),
-              call.getTimeAddedMs());
+      if (call != null) {
+        Logger.get(context)
+                .logCallImpression(
+                        DialerImpression.Type.IN_CALL_SCREEN_TURN_ON_SPEAKERPHONE,
+                        call.getUniqueCallId(),
+                        call.getTimeAddedMs());
+      }
     }
 
     setAudioRoute(newRoute);