UserActivity.java :  » Client » vimeoid » org » vimeoid » activity » guest » item » Android Open Source

Android Open Source » Client » vimeoid 
vimeoid » org » vimeoid » activity » guest » item » UserActivity.java
/**
 * 
 */
package org.vimeoid.activity.guest.item;

import org.vimeoid.R;
import org.vimeoid.activity.guest.SingleItemActivity;
import org.vimeoid.adapter.LActionItem;
import org.vimeoid.adapter.SectionedActionsAdapter;
import org.vimeoid.dto.simple.User;
import org.vimeoid.util.Invoke;
import org.vimeoid.util.Utils;

import android.database.Cursor;
import android.text.Html;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.TextView;

/**
 * <dl>
 * <dt>Project:</dt> <dd>vimeoid</dd>
 * <dt>Package:</dt> <dd>org.vimeoid.activity.guest.item</dd>
 * </dl>
 *
 * <code>UserActivity</code>
 *
 * <p>Description</p>
 *
 * @author Ulric Wilfred <shaman.sir@gmail.com>
 * @date Sep 16, 2010 6:38:02 PM 
 *
 */
public class UserActivity extends SingleItemActivity<User> {
    
    public static final String TAG = "UserActivity";

    public UserActivity() {
        super(R.layout.view_single_user, User.SINGLE_PROJECTION);
    }

    @Override
    protected User extractFromCursor(Cursor cursor, int position) {
        return User.singleFromCursor(cursor, position);
    }
    
    @Override
    protected void onItemReceived(final User user) {
        
        // biography        
        ((TextView)findViewById(R.id.userBio)).setText((user.biography.length() > 0) 
                                                       ? Html.fromHtml(user.biography)
                                                       : getString(R.string.no_biography_supplied));
        
        // user portrait
        final ImageView uploaderPortrait = (ImageView)findViewById(R.id.userPortrait);
        imageLoader.displayImage(user.mediumPortraitUrl, uploaderPortrait);        
        
        super.onItemReceived(user);
       
    }    

    @Override
    protected SectionedActionsAdapter fillWithActions(SectionedActionsAdapter actionsAdapter, final User user) {
        
        // Statistics section
        int statsSection = actionsAdapter.addSection(getString(R.string.statistics));
        // number of videos
        final LActionItem videoAction = actionsAdapter.addAction(statsSection, R.drawable.video, 
                                        Utils.quantity(this, R.plurals.num_of_videos, (int)user.videosUploaded));
        if (user.videosUploaded > 0) {
            videoAction.onClick =  new OnClickListener() {
                @Override public void onClick(View v) { Invoke.Guest.selectVideosBy(UserActivity.this, user); };
            };
        }
        // number of albums
        final LActionItem albumAction = actionsAdapter.addAction(statsSection, R.drawable.album, 
                                        Utils.quantity(this, R.plurals.num_of_albums, (int)user.albumsCount));
        if (user.albumsCount > 0) {
            albumAction.onClick =  new OnClickListener() {
                @Override public void onClick(View v) { Invoke.Guest.selectAlbumsOf(UserActivity.this, user); };
            };
        }
        // number of channels
        final LActionItem channelAction = actionsAdapter.addAction(statsSection, R.drawable.channel, 
                                          Utils.quantity(this, R.plurals.num_of_channels, (int)user.channelsCount));
        if (user.channelsCount > 0) {
            channelAction.onClick =  new OnClickListener() {
                @Override public void onClick(View v) { Invoke.Guest.selectChannelsOf(UserActivity.this, user); };
            };
        }
        // number of contacts
        actionsAdapter.addAction(statsSection, R.drawable.contact, 
                       Utils.quantity(this, R.plurals.num_of_contacts, (int)user.contactsCount));
        // number of appearances
        final LActionItem appearanceAction = actionsAdapter.addAction(statsSection, R.drawable.appearance,
                          Utils.quantity(this, R.plurals.num_of_appearances, (int)user.videosAppearsIn));
        if (user.videosAppearsIn > 0) {
            appearanceAction.onClick =  new OnClickListener() {
                @Override public void onClick(View v) { Invoke.Guest.selectApperancesOf(UserActivity.this, user); };
            };
        }
        // number of likes
        final LActionItem likeAction = actionsAdapter.addAction(statsSection, R.drawable.like, 
                          Utils.quantity(this, R.plurals.num_of_likes, (int)user.videosLiked));
        if (user.videosLiked > 0) {  
          likeAction.onClick =  new OnClickListener() {
                @Override public void onClick(View v) { Invoke.Guest.selectLikesOf(UserActivity.this, user); };
            };
        }
        // subsriptions
        final LActionItem subscriptionAction = actionsAdapter.addAction(statsSection, R.drawable.subscribe, 
                                               getString(R.string.subscriptions));
        subscriptionAction.onClick =  new OnClickListener() {
            @Override public void onClick(View v) { Invoke.Guest.selectSubsriptionsOf(UserActivity.this, user); };
        };        
        
        // Information section
        int infoSection = actionsAdapter.addSection(getString(R.string.information));
        // location
        if (user.location.length() > 0) {
          actionsAdapter.addAction(infoSection, R.drawable.location,
                           getString(R.string.location_is, user.location));              
        }
        // created on
        actionsAdapter.addAction(infoSection, R.drawable.duration,
                       getString(R.string.created_on, user.createdOn));
        // from staff
        if (user.fromStaff) {
            actionsAdapter.addAction(infoSection, R.drawable.staff, getString(R.string.user_from_staff));    
        }
        // plus member
        if (user.isPlusMember) {
            actionsAdapter.addAction(infoSection, R.drawable.plus, getString(R.string.user_is_plus_member));    
        }        
        
        return actionsAdapter;
    }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.