package io.github.droidkaigi.confsched.widget; import android.app.Activity; import android.content.Context; import android.databinding.BindingAdapter; import android.databinding.DataBindingUtil; import android.support.annotation.NonNull; import android.text.TextUtils; import android.util.AttributeSet; import android.view.LayoutInflater; import android.widget.RelativeLayout; import io.github.droidkaigi.confsched.R; import io.github.droidkaigi.confsched.databinding.ViewSpeakerSnsIconsBinding; import io.github.droidkaigi.confsched.model.Speaker; import io.github.droidkaigi.confsched.util.AppUtil; public class SpeakerSnsIconsView extends RelativeLayout { private ViewSpeakerSnsIconsBinding binding; public SpeakerSnsIconsView(Context context) { this(context, null); } public SpeakerSnsIconsView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public SpeakerSnsIconsView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); binding = DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.view_speaker_sns_icons, this, true); } @BindingAdapter("speakerSnsIcons") public static void setSpeakerSnsIcons(SpeakerSnsIconsView view, @NonNull Speaker speaker) { ViewSpeakerSnsIconsBinding binding = view.binding; if (TextUtils.isEmpty(speaker.twitterName) && TextUtils.isEmpty(speaker.githubName)) { binding.getRoot().setVisibility(GONE); return; } if (TextUtils.isEmpty(speaker.twitterName)) { binding.coverTwitter.setVisibility(GONE); } else { binding.coverTwitter.setVisibility(VISIBLE); binding.coverTwitter.setOnClickListener(v -> AppUtil.showWebPage((Activity) view.getContext(), AppUtil.getTwitterUrl(speaker.twitterName))); } if (TextUtils.isEmpty(speaker.githubName)) { binding.coverGithub.setVisibility(GONE); } else { binding.coverGithub.setVisibility(VISIBLE); binding.coverGithub.setOnClickListener(v -> AppUtil.showWebPage((Activity) view.getContext(), AppUtil.getGitHubUrl(speaker.githubName))); } } }