Search in sources :

Example 11 with Tag

use of com.abewy.android.apps.klyph.core.fql.Tag in project Klyph by jonathangerbaud.

the class TagAdapter method mergeViewWithData.

@Override
protected void mergeViewWithData(View view, GraphObject data) {
    super.mergeViewWithData(view, data);
    PicturePrimaryTextHolder holder = (PicturePrimaryTextHolder) getHolder(view);
    // holder.getPicture().setImageDrawable(null);
    Tag tag = (Tag) data;
    holder.getPrimaryText().setText(tag.getName());
    String url = FacebookUtil.getImageURLForId(tag.getId());
    loadImage(holder.getPicture(), url, AttrUtil.getResourceId(getContext(view), R.attr.squarePlaceHolderIcon), data);
}
Also used : PicturePrimaryTextHolder(com.abewy.android.apps.klyph.adapter.holder.PicturePrimaryTextHolder) Tag(com.abewy.android.apps.klyph.core.fql.Tag)

Example 12 with Tag

use of com.abewy.android.apps.klyph.core.fql.Tag in project Klyph by jonathangerbaud.

the class TextViewUtil method setElementClickable.

/**
 * Make a substring clickable and associated with a list of tags
 * If callback is null, TextViewUtil.onTagClick is called
 */
public static void setElementClickable(Context context, TextView textView, String elementName, List<Tag> tags, TagCallback callback, boolean clickable) {
    String text = textView.getText().toString();
    int offset = text.indexOf(elementName);
    if (offset == -1) {
        Log.e("TextViewUtil", "setElementClickable : element name not in text TextView : [" + elementName + "] in " + text);
    } else {
        Tag tag = tags.get(0);
        tag.setOffset(offset);
        tag.setLength(elementName.length());
        Map<String, List<Tag>> map = new HashMap<String, List<Tag>>();
        map.put(String.valueOf(offset), tags);
        setTextClickableForTags(context, textView, map, callback, clickable);
    }
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) List(java.util.List) Tag(com.abewy.android.apps.klyph.core.fql.Tag) TextPaint(android.text.TextPaint)

Example 13 with Tag

use of com.abewy.android.apps.klyph.core.fql.Tag in project Klyph by jonathangerbaud.

the class TextViewUtil method setElementClickable.

/**
 * Make a substring clickable and associated a tag with values elementName, elementId and elementType
 * If callback is null, TextViewUtil.onTagClick is called
 */
public static void setElementClickable(Context context, TextView textView, String elementName, String elementId, String elementType, TagCallback callback, boolean clickable) {
    String text = textView.getText().toString();
    int offset = text.indexOf(elementName);
    if (offset == -1) {
        Log.e("TextViewUtil", "setElementClickable : element name not in text TextView : [" + elementName + "] in " + text);
    } else {
        Tag tag = new Tag();
        tag.setId(elementId);
        tag.setName(elementName);
        tag.setType(elementType);
        tag.setOffset(offset);
        tag.setLength(elementName.length());
        Map<String, List<Tag>> map = new HashMap<String, List<Tag>>();
        List<Tag> tags = new ArrayList<Tag>();
        tags.add(tag);
        map.put(String.valueOf(offset), tags);
        setTextClickableForTags(context, textView, map, callback, clickable);
    }
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) Tag(com.abewy.android.apps.klyph.core.fql.Tag) TextPaint(android.text.TextPaint)

Example 14 with Tag

use of com.abewy.android.apps.klyph.core.fql.Tag in project Klyph by jonathangerbaud.

the class TextViewUtil method onTagClick.

/**
 * Handle a tag click generated by one of the method of this class.
 * Opens the activity/dialog assotiated with the type of tag :
 * <ul>
 * <li>User : UserActivity</li>
 * <li>Page : PageActivity</li>
 * <li>Event : EventActivity</li>
 * <li>Album : AlbumActivity</li>
 * <li>Several tags : UserListDialog</li>
 */
public static void onTagClick(Context context, List<Tag> tags) {
    if (tags.size() == 1) {
        Tag tag = tags.get(0);
        String type = tag.getType();
        Intent intent = null;
        if (type.equals(GraphType.FQL_USER.name()) || type.equals("user")) {
            intent = new Intent(context, UserActivity.class);
            intent.putExtra(KlyphBundleExtras.USER_ID, tag.getId());
            intent.putExtra(KlyphBundleExtras.USER_NAME, tag.getName());
        } else if (type.equals(GraphType.FQL_PAGE.name()) || type.equals("page")) {
            intent = new Intent(context, PageActivity.class);
            intent.putExtra(KlyphBundleExtras.PAGE_ID, tag.getId());
            intent.putExtra(KlyphBundleExtras.PAGE_NAME, tag.getName());
        } else if (type.equals(GraphType.FQL_EVENT.name()) || type.equals("event")) {
            intent = new Intent(context, EventActivity.class);
            intent.putExtra(KlyphBundleExtras.EVENT_ID, tag.getId());
            intent.putExtra(KlyphBundleExtras.EVENT_NAME, tag.getName());
        } else if (type.equals(GraphType.FQL_ALBUM.name())) {
            intent = new Intent(context, AlbumActivity.class);
            intent.putExtra(KlyphBundleExtras.ALBUM_ID, tag.getId());
            intent.putExtra(KlyphBundleExtras.ALBUM_NAME, tag.getName());
        }
        if (intent != null) {
            context.startActivity(intent);
        } else {
            Log.e("TextViewUtil", "Click on an unlisted type : " + type);
        }
    } else {
        UserListDialog uld = new UserListDialog(false);
        uld.loadList(tags);
        uld.show(((FragmentActivity) context).getFragmentManager(), "userlist");
    }
}
Also used : UserListDialog(com.abewy.android.apps.klyph.fragment.UserListDialog) Intent(android.content.Intent) Tag(com.abewy.android.apps.klyph.core.fql.Tag) UserActivity(com.abewy.android.apps.klyph.app.UserActivity) EventActivity(com.abewy.android.apps.klyph.app.EventActivity)

Aggregations

Tag (com.abewy.android.apps.klyph.core.fql.Tag)14 ArrayList (java.util.ArrayList)4 List (java.util.List)4 TextPaint (android.text.TextPaint)3 Intent (android.content.Intent)2 View (android.view.View)2 EventActivity (com.abewy.android.apps.klyph.app.EventActivity)2 UserActivity (com.abewy.android.apps.klyph.app.UserActivity)2 Friend (com.abewy.android.apps.klyph.core.fql.Friend)2 Page (com.abewy.android.apps.klyph.core.fql.Page)2 Stream (com.abewy.android.apps.klyph.core.fql.Stream)2 HashMap (java.util.HashMap)2 Hashtable (java.util.Hashtable)2 JSONArray (org.json.JSONArray)2 SpannableStringBuilder (android.text.SpannableStringBuilder)1 CharacterStyle (android.text.style.CharacterStyle)1 ClickableSpan (android.text.style.ClickableSpan)1 StyleSpan (android.text.style.StyleSpan)1 TextView (android.widget.TextView)1 PicturePrimaryTextHolder (com.abewy.android.apps.klyph.adapter.holder.PicturePrimaryTextHolder)1