package com.appboy.ui.inappmessage.factories;
import android.app.Activity;
import com.appboy.enums.inappmessage.ImageStyle;
import com.appboy.models.IInAppMessage;
import com.appboy.models.InAppMessageModal;
import com.appboy.ui.R;
import com.appboy.ui.inappmessage.IInAppMessageViewFactory;
import com.appboy.ui.inappmessage.views.AppboyInAppMessageModalView;
import com.appboy.ui.support.FrescoLibraryUtils;
public class AppboyModalViewFactory implements IInAppMessageViewFactory {
@Override
public AppboyInAppMessageModalView createInAppMessageView(Activity activity, IInAppMessage inAppMessage) {
InAppMessageModal inAppMessageModal = (InAppMessageModal) inAppMessage;
boolean isGraphic = inAppMessageModal.getImageStyle().equals(ImageStyle.GRAPHIC);
AppboyInAppMessageModalView view = getAppropriateModalView(activity, isGraphic);
view.inflateStubViews(activity, inAppMessageModal);
if (FrescoLibraryUtils.canUseFresco(activity.getApplicationContext())) {
view.setMessageSimpleDrawee(inAppMessageModal, activity);
} else {
view.setMessageImageView(inAppMessageModal.getBitmap());
}
// modal frame should not be clickable.
view.getFrameView().setOnClickListener(null);
view.setMessageBackgroundColor(inAppMessage.getBackgroundColor());
view.setFrameColor(inAppMessageModal.getFrameColor());
view.setMessageButtons(inAppMessageModal.getMessageButtons());
view.setMessageCloseButtonColor(inAppMessageModal.getCloseButtonColor());
if (!isGraphic) {
view.setMessage(inAppMessage.getMessage());
view.setMessageTextColor(inAppMessage.getMessageTextColor());
view.setMessageHeaderText(inAppMessageModal.getHeader());
view.setMessageHeaderTextColor(inAppMessageModal.getHeaderTextColor());
view.setMessageIcon(inAppMessage.getIcon(), inAppMessage.getIconColor(), inAppMessage.getIconBackgroundColor());
view.setMessageHeaderTextAlignment(inAppMessageModal.getHeaderTextAlign());
view.setMessageTextAlign(inAppMessageModal.getMessageTextAlign());
view.resetMessageMargins(inAppMessage.getImageDownloadSuccessful());
}
return view;
}
AppboyInAppMessageModalView getAppropriateModalView(Activity activity, boolean isGraphic) {
if (isGraphic) {
return (AppboyInAppMessageModalView) activity.getLayoutInflater().inflate(R.layout.com_appboy_inappmessage_modal_graphic, null);
} else {
return (AppboyInAppMessageModalView) activity.getLayoutInflater().inflate(R.layout.com_appboy_inappmessage_modal, null);
}
}
}