package com.dwdesign.tweetings.util; import static com.dwdesign.tweetings.util.Utils.openTweetSearch; import static com.dwdesign.tweetings.util.Utils.openUserListDetails; import static com.dwdesign.tweetings.util.Utils.openUserProfile; import static com.dwdesign.tweetings.util.Utils.expandTwitLonger; import static com.dwdesign.tweetings.util.Utils.openImage; import com.dwdesign.tweetings.fragment.StatusFragment; import com.dwdesign.tweetings.util.TwidereLinkify.OnLinkClickListener; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.util.Log; public class OnLinkClickHandler implements OnLinkClickListener { private final Activity activity; private final long account_id; private final boolean is_possibly_sensitive; public OnLinkClickHandler(final Context context, final long account_id) { this(context, account_id, false); } public OnLinkClickHandler(final Context context, final long account_id, final boolean is_possibly_sensitive) { activity = context instanceof Activity ? (Activity) context : null; this.account_id = account_id; this.is_possibly_sensitive = is_possibly_sensitive; } @Override public void onLinkClick(final String link, final int type) { if (activity == null) return; switch (type) { case TwidereLinkify.LINK_TYPE_MENTION_LIST: { openUserProfile(activity, account_id, -1, link); break; } case TwidereLinkify.LINK_TYPE_HASHTAG: { openTweetSearch(activity, account_id, link); break; } case TwidereLinkify.LINK_TYPE_LINK_WITH_IMAGE_EXTENSION: { openImage(activity, Uri.parse(link), is_possibly_sensitive); break; } case TwidereLinkify.LINK_TYPE_TWITLONGER: { expandTwitLonger(activity, account_id, link); break; } case TwidereLinkify.LINK_TYPE_LINK: { final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(link)); activity.startActivity(intent); break; } case TwidereLinkify.LINK_TYPE_LIST: { final String[] mention_list = link.split("\\/"); if (mention_list == null || mention_list.length != 2) { break; } openUserListDetails(activity, account_id, -1, -1, mention_list[0], mention_list[1]); break; } case TwidereLinkify.LINK_TYPE_CASHTAG: { openTweetSearch(activity, account_id, link); break; } } } }