From 98309d05a5a01247152f6cc0a229afdce303be5c Mon Sep 17 00:00:00 2001 From: Matthew Robertson Date: Tue, 8 Nov 2022 14:17:25 -0500 Subject: [PATCH 1/2] Make ForcedSender.sendBlocking do nothing, instead of throw, when given a wrong Transport type. This will make it easier to mock Transport in tests. This method is best-effort anyway, so doing nothing instead of throwing is fine. --- .../android/datatransport/runtime/ForcedSender.java | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/transport/transport-runtime/src/main/java/com/google/android/datatransport/runtime/ForcedSender.java b/transport/transport-runtime/src/main/java/com/google/android/datatransport/runtime/ForcedSender.java index d0a9ef2b8cc..ae1692b3652 100644 --- a/transport/transport-runtime/src/main/java/com/google/android/datatransport/runtime/ForcedSender.java +++ b/transport/transport-runtime/src/main/java/com/google/android/datatransport/runtime/ForcedSender.java @@ -14,7 +14,6 @@ package com.google.android.datatransport.runtime; -import android.annotation.SuppressLint; import androidx.annotation.Discouraged; import androidx.annotation.WorkerThread; import com.google.android.datatransport.Priority; @@ -26,16 +25,11 @@ public final class ForcedSender { @WorkerThread public static void sendBlocking(Transport transport, Priority priority) { - @SuppressLint("DiscouragedApi") - TransportContext context = getTransportContextOrThrow(transport).withPriority(priority); - TransportRuntime.getInstance().getUploader().logAndUpdateState(context, 1); - } - - private static TransportContext getTransportContextOrThrow(Transport transport) { if (transport instanceof TransportImpl) { - return ((TransportImpl) transport).getTransportContext(); + TransportContext context = + ((TransportImpl) transport).getTransportContext().withPriority(priority); + TransportRuntime.getInstance().getUploader().logAndUpdateState(context, 1); } - throw new IllegalArgumentException("Expected instance of TransportImpl."); } private ForcedSender() {} From f640d70edffebb84c2b9298501831a20312c81f0 Mon Sep 17 00:00:00 2001 From: Matthew Robertson Date: Fri, 11 Nov 2022 12:52:24 -0500 Subject: [PATCH 2/2] Log warning when given wrong type. --- .../google/android/datatransport/runtime/ForcedSender.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/transport/transport-runtime/src/main/java/com/google/android/datatransport/runtime/ForcedSender.java b/transport/transport-runtime/src/main/java/com/google/android/datatransport/runtime/ForcedSender.java index ae1692b3652..9bc141fed41 100644 --- a/transport/transport-runtime/src/main/java/com/google/android/datatransport/runtime/ForcedSender.java +++ b/transport/transport-runtime/src/main/java/com/google/android/datatransport/runtime/ForcedSender.java @@ -14,21 +14,28 @@ package com.google.android.datatransport.runtime; +import android.annotation.SuppressLint; import androidx.annotation.Discouraged; import androidx.annotation.WorkerThread; import com.google.android.datatransport.Priority; import com.google.android.datatransport.Transport; +import com.google.android.datatransport.runtime.logging.Logging; @Discouraged( message = "TransportRuntime is not a realtime delivery system, don't use unless you absolutely must.") public final class ForcedSender { + private static final String LOG_TAG = "ForcedSender"; + + @SuppressLint("DiscouragedApi") @WorkerThread public static void sendBlocking(Transport transport, Priority priority) { if (transport instanceof TransportImpl) { TransportContext context = ((TransportImpl) transport).getTransportContext().withPriority(priority); TransportRuntime.getInstance().getUploader().logAndUpdateState(context, 1); + } else { + Logging.w(LOG_TAG, "Expected instance of `TransportImpl`, got `%s`.", transport); } }