package com.appboy.unity.utils; import android.content.Context; import android.util.Log; import com.appboy.Appboy; import com.appboy.Constants; import com.appboy.models.IInAppMessage; import com.appboy.models.IInAppMessageImmersive; import com.appboy.models.MessageButton; public class InAppMessageUtils { private static final String TAG = String.format("%s.%s", Constants.APPBOY_LOG_TAG_PREFIX, InAppMessageUtils.class.getName()); public static IInAppMessage inAppMessageFromString(Context context, String messageJSONString) { return Appboy.getInstance(context).deserializeInAppMessageString(messageJSONString); } public static void logInAppMessageClick(IInAppMessage inAppMessage) { if (inAppMessage != null) { inAppMessage.logClick(); } else { Log.e(TAG, "The in-app message is null, Not logging in-app message click."); } } public static void logInAppMessageButtonClick(IInAppMessage inAppMessage, int buttonId) { if (inAppMessage == null) { Log.e(TAG, "The in-app message is null. Not logging in-app message button click."); return; } if (inAppMessage instanceof IInAppMessageImmersive) { IInAppMessageImmersive inAppMessageImmersive = (IInAppMessageImmersive)inAppMessage; for (MessageButton button : inAppMessageImmersive.getMessageButtons()) { if (button.getId() == buttonId) { inAppMessageImmersive.logButtonClick(button); break; } } } else { Log.e(TAG, "The in-app message %s isn't an instance of " + "InAppMessageImmersive. Not logging in-app message button click."); } } public static void logInAppMessageImpression(IInAppMessage inAppMessage) { if (inAppMessage != null) { inAppMessage.logImpression(); } else { Log.e(TAG, "The in-app message is null, Not logging in-app message impression."); } } }