package com.appboy.ui.inappmessage.views;
import android.content.Context;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.View;
import android.widget.TextView;
import com.appboy.enums.inappmessage.TextAlign;
import com.appboy.models.MessageButton;
import com.appboy.support.StringUtils;
import com.appboy.ui.R;
import com.appboy.ui.inappmessage.IInAppMessageImmersiveView;
import com.appboy.ui.support.ViewUtils;
import java.util.List;
public abstract class AppboyInAppMessageImmersiveBaseView extends AppboyInAppMessageBaseView implements IInAppMessageImmersiveView {
public AppboyInAppMessageImmersiveBaseView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public abstract List<View> getMessageButtonViews();
public void setMessageButtons(List<MessageButton> messageButtons) {
View buttonLayout = getMessageButtonsView();
int backgroundColor = getContext().getResources().getColor(R.color.com_appboy_inappmessage_button_bg_light);
InAppMessageViewUtils.setButtons(getMessageButtonViews(), buttonLayout, backgroundColor, messageButtons);
InAppMessageViewUtils.resetButtonSizesIfNecessary(getMessageButtonViews(), messageButtons);
}
public void setMessageCloseButtonColor(int color) {
InAppMessageViewUtils.setViewBackgroundColorFilter(getMessageCloseButtonView(),
color, getContext().getResources().getColor(R.color.com_appboy_inappmessage_button_close_light));
}
public void setMessageHeaderTextColor(int color) {
InAppMessageViewUtils.setTextViewColor(getMessageHeaderTextView(), color);
}
public void setMessageHeaderText(String text) {
getMessageHeaderTextView().setText(text);
}
public void setMessageHeaderTextAlignment(TextAlign textAlign) {
InAppMessageViewUtils.setTextAlignment(getMessageHeaderTextView(), textAlign);
}
public void setFrameColor(Integer color) {
InAppMessageViewUtils.setFrameColor(getFrameView(), color);
}
public void resetMessageMargins() {
boolean successful = false;
if (getMessageImageView() != null && getMessageImageView().getDrawable() != null) {
successful = true;
}
resetMessageMargins(successful);
}
@Override
public void resetMessageMargins(boolean imageRetrievalSuccessful) {
super.resetMessageMargins(imageRetrievalSuccessful);
if (StringUtils.isNullOrBlank(getMessageTextView().getText().toString())) {
ViewUtils.removeViewFromParent(getMessageTextView());
}
if (StringUtils.isNullOrBlank(getMessageHeaderTextView().getText().toString())) {
ViewUtils.removeViewFromParent(getMessageHeaderTextView());
}
InAppMessageViewUtils.resetMessageMarginsIfNecessary(getMessageTextView(), getMessageHeaderTextView());
}
public abstract View getFrameView();
public abstract View getMessageButtonsView();
public abstract TextView getMessageTextView();
public abstract TextView getMessageHeaderTextView();
/**
* Immersive messages can alternatively be closed by the back button.
* @return If the button pressed was the back button, close the in-app message
* and return true to indicate that the event was handled.
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
InAppMessageViewUtils.closeInAppMessageOnKeycodeBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}