Skip to content

[In-App Messaging] DisplayErrorListener won't be triggered while displaying error in-app messaging.  #5644

@ione0213

Description

@ione0213

[READ] Step 1: Are you in the right place?

  • Yes

[REQUIRED] Step 2: Describe your environment

  • Android Studio version: Hedgehog 2023.1.1 Patch 1
  • Firebase Component: In-App Messaging
  • Component version: 32.2.3

[REQUIRED] Step 3: Describe the problem

DisplayErrorListener won't trigger while displaying error in-app messaging.

Steps to reproduce:

  1. Add FirebaseInAppMessagingDisplayErrorListener via FirebaseInAppMessaging.getInstance().addDisplayErrorListener().
  2. Create a new campaign with a jpeg whose format is unsupported and make it display in the app.
  3. DisplayErrorListener won't be triggered while displaying error in-app messaging.

What happened? How can we make the problem occur?
This could be a description, log/console output, etc.

We found while the function onLoadFailed was accessed, the inAppMessage and displayCallbacks objects are always null.
Hence DisplayErrorListener will never be triggered.

Relevant Code:

@FirebaseAppScope public class GlideErrorListener implements RequestListener<Object> { private InAppMessage inAppMessage; private FirebaseInAppMessagingDisplayCallbacks displayCallbacks; @Inject GlideErrorListener() {} public void setInAppMessage( InAppMessage inAppMessage, FirebaseInAppMessagingDisplayCallbacks displayCallbacks) { this.inAppMessage = inAppMessage; this.displayCallbacks = displayCallbacks; } @Override public boolean onLoadFailed( @Nullable GlideException e, Object model, Target<Object> target, boolean isFirstResource) { Logging.logd("Image Downloading Error : " + e.getMessage() + ":" + e.getCause()); if (inAppMessage != null && displayCallbacks != null) { if (e.getLocalizedMessage().contains("Failed to decode")) { displayCallbacks.displayErrorEncountered( FirebaseInAppMessagingDisplayCallbacks.InAppMessagingErrorReason .IMAGE_UNSUPPORTED_FORMAT); } else { displayCallbacks.displayErrorEncountered( FirebaseInAppMessagingDisplayCallbacks.InAppMessagingErrorReason .UNSPECIFIED_RENDER_ERROR); } } return false; } @Override public boolean onResourceReady( Object resource, Object model, Target<Object> target, DataSource dataSource, boolean isFirstResource) { Logging.logd("Image Downloading Success : " + resource); return false; } } 

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions