package com.moupress.app.friendshost.activity; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.BaseAdapter; import android.widget.LinearLayout; import android.widget.TextView; import com.github.droidfu.widgets.WebImageView; import com.moupress.app.friendshost.FriendsHostActivity; import com.moupress.app.friendshost.R; import com.moupress.app.friendshost.sns.FeedEntry; import com.moupress.app.friendshost.ui.listeners.TextLinkClickListenerImpl; import com.moupress.app.friendshost.uicomponent.FeedItemUIComponent; import com.moupress.app.friendshost.uicomponent.LinkEnabledTextView; public class LstViewFeedAdapter extends BaseAdapter{ private ArrayList<FeedEntry> feedArrayList; private Activity zActivity; private int iLayoutResId; private LayoutInflater viewInflator; private String snsName; public LstViewFeedAdapter(Activity activity, int layoutResId, String snsName) { this.zActivity = activity; this.iLayoutResId = layoutResId; viewInflator = zActivity.getLayoutInflater(); this.snsName = snsName; } public void clear() { feedArrayList = new ArrayList<FeedEntry>(); } @Override public int getCount() { if (feedArrayList == null ) { return 0; } else { return feedArrayList.size(); } } @Override public Object getItem(int position) { return feedArrayList.get(position); } @Override public long getItemId(int position) { return position; } private void ViewFeedDtl(int position) { FeedEntry feed = (FeedEntry) feedArrayList.get(position); FriendsHostActivity.zPubsub.fFeedDisplayDetailUI(feed, snsName); } @Override public View getView(final int position, View convertView, ViewGroup parent) { FeedItemUIComponent feedItemUIComponent; if(convertView == null) { convertView = viewInflator.inflate(iLayoutResId, null); feedItemUIComponent = new FeedItemUIComponent(); //Img_Head feedItemUIComponent.setImg_Head((WebImageView) convertView.findViewById(R.id.img_feeduser)); //txv_FeedUser feedItemUIComponent.setTxv_FeedUser((TextView) convertView.findViewById(R.id.txt_name)); //layout_img feedItemUIComponent.setImg_Layout((LinearLayout)convertView.findViewById(R.id.layout_img)); //txt_msgcreatedtime feedItemUIComponent.setTxv_MsgCreationTime((TextView)convertView.findViewById(R.id.txt_msgcreatedtime)); //txt_msgbody LinkEnabledTextView txvLink = (LinkEnabledTextView)convertView.findViewById(R.id.txt_msgbody); txvLink.setOnTextLinkClickListener(new TextLinkClickListenerImpl(zActivity)); txvLink.setTextColor(Color.BLACK); txvLink.setLinkTextColor(Color.BLUE); feedItemUIComponent.setTxv_MsgBody(txvLink); //img_photopreview feedItemUIComponent.setImg_PhotoPreview((WebImageView) convertView.findViewById(R.id.img_photopreview)); //txv_imgName feedItemUIComponent.setTxv_ImgName((TextView) convertView.findViewById(R.id.txv_imgName)); //txv_ImgCaption feedItemUIComponent.setTxv_ImgCaption((TextView) convertView.findViewById(R.id.txv_imgCaption)); //txv_ImgDecription feedItemUIComponent.setTxv_ImgDecription((TextView) convertView.findViewById(R.id.txv_imgdescription)); //txt_LikeCnt feedItemUIComponent.setTxv_LikeCnt((TextView) convertView.findViewById(R.id.txt_likecnt)); //txt_CmtCnt feedItemUIComponent.setTxv_CmtCnt((TextView) convertView.findViewById(R.id.txt_cmtcnt)); convertView.setTag(feedItemUIComponent); } else { feedItemUIComponent = (FeedItemUIComponent) convertView.getTag(); } convertView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ViewFeedDtl(position); } }); feedItemUIComponent.getTxv_MsgBody().setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { if(!((LinkEnabledTextView)v).IsLinkedTxtClicked) { ViewFeedDtl(position); } ((LinkEnabledTextView)v).IsLinkedTxtClicked = false; }}); feedItemUIComponent.ImgHeadLoad(feedArrayList.get(position).getzFriend().getHeadurl()); if (feedArrayList == null || feedArrayList.size() < 2) { feedItemUIComponent.getTxv_FeedUser().setText("This is your time sign in.\n" + "It will take a few mininutes to load your feed.\n" + "Please refresh later"); feedItemUIComponent.getImg_Head().setVisibility(View.GONE); feedItemUIComponent.getTxv_MsgCreationTime().setVisibility(View.GONE); feedItemUIComponent.getTxv_MsgBody().setVisibility(View.GONE); feedItemUIComponent.getTxv_LikeCnt().setVisibility(View.GONE); feedItemUIComponent.getTxv_CmtCnt().setVisibility(View.GONE); }else { if(position < feedArrayList.size()) { feedItemUIComponent.getTxv_FeedUser().setText(feedArrayList.get(position).getsName()); feedItemUIComponent.getTxv_MsgCreationTime().setText(feedArrayList.get(position).getsCreatedTime()); try{ feedItemUIComponent.TxtMsgBodyLoad(feedArrayList.get(position).getsMsgBody(), feedArrayList.get(position).getsStory()); } catch(Exception e) { } feedItemUIComponent.ImgPhotoPreviewLoad(feedArrayList.get(position).getsPhotoPreviewLink()); feedItemUIComponent.TxtImgNameLoad(feedArrayList.get(position).getsPhotoPreviewName()); feedItemUIComponent.TxvImgCaptionLoad( feedArrayList.get(position).getsPhotoPreviewCaption()); feedItemUIComponent.TxvImgDecription(feedArrayList.get(position).getsPhotoPreviewDescription()); feedItemUIComponent.LikeCntLoad(feedArrayList.get(position).getsCntLikes()); feedItemUIComponent.CmtCntLoad(feedArrayList.get(position).getsCntCmt()); } } return convertView; } // @Override // public View getView(int position, View convertView, ViewGroup parent) { // // if (convertView == null) { // convertView = viewInflator.inflate(iLayoutResId, null); // } // // WebImageView img_Head = (WebImageView) convertView.findViewById(R.id.img_feeduser); // String sHeadImgSrc = feedArrayList.get(position).getzFriend().getHeadurl(); // if(sHeadImgSrc != null) // { // img_Head.setImageUrl(sHeadImgSrc); // img_Head.loadImage(); // } //// Bitmap imgHead = null; //// if (sHeadImgSrc != null) { //// imgHead = ImageOperations(sHeadImgSrc); //// } //// if (imgHead != null) { //// img_Head.setScaleType(ImageView.ScaleType.CENTER_INSIDE); //// img_Head.setImageBitmap(imgHead); //// } // // TextView txv_FeedUser = (TextView) convertView.findViewById(R.id.txt_name); // // if (feedArrayList == null || feedArrayList.size() < 2) { // txv_FeedUser.setText("Feed Not available yet. \nPlease refresh later"); // // //disable other views // convertView.findViewById(R.id.img_feeduser).setVisibility(View.GONE); // ((LinearLayout)convertView.findViewById(R.id.layout_img)).setVisibility(View.GONE); // convertView.findViewById(R.id.txt_msgcreatedtime).setVisibility(View.GONE); // convertView.findViewById(R.id.txt_msgbody).setVisibility(View.GONE); // } else { // // //compulsory field // //TextView txv_FeedUser = (TextView) convertView.findViewById(R.id.txt_name); // txv_FeedUser.setText(feedArrayList.get(position).getsName()); // TextView txv_MsgCreationTime = (TextView) convertView.findViewById(R.id.txt_msgcreatedtime); // String sCreateTime = feedArrayList.get(position).getsCreatedTime(); // txv_MsgCreationTime.setText(sCreateTime); // // // optional field // // message or tagged story // String sMsgBody = feedArrayList.get(position).getsMsgBody(); // String sStory = feedArrayList.get(position).getsStory(); // TextView txv_MsgBody = (TextView) convertView.findViewById(R.id.txt_msgbody); // // if ( sMsgBody != null && sStory != null ) { // txv_MsgBody.setText(sMsgBody + "\n" + sStory); // } else if ( sMsgBody != null ) { // txv_MsgBody.setText(sMsgBody); // } else if ( sStory != null ) { // txv_MsgBody.setText(sStory); // } else { // txv_MsgBody.setVisibility(View.GONE); // } // String username = feedArrayList.get(position).getsName(); //// if (username.equals("梁玉萍")) { //// System.out.println(""); //// } // WebImageView img_PhotoPreview = (WebImageView) convertView.findViewById(R.id.img_photopreview); // String sImgSrc = feedArrayList.get(position).getsPhotoPreviewLink(); // //img_PhotoPreview.setImageUrl(sHeadImgSrc); // //img_PhotoPreview. // //img_PhotoPreview.loadImage(); // if (sImgSrc != null && sImgSrc.startsWith("http://") && sImgSrc.endsWith(".jpg")) { // img_PhotoPreview.setImageUrl(sImgSrc); // //img_PhotoPreview.setScaleType(ImageView.ScaleType.CENTER_INSIDE); // img_PhotoPreview.loadImage(); // } else { // img_PhotoPreview.setVisibility(View.GONE); // } // //String sImgSrc = "http://photos-g.ak.fbcdn.net/hphotos-ak-ash4/431333_10150739807624187_554329186_11304408_1165959123_s.jpg"; //// Bitmap imgPhoto = ImageOperations(sImgSrc); //// if (imgPhoto != null) { //// img_PhotoPreview.setScaleType(ImageView.ScaleType.CENTER_INSIDE); //// img_PhotoPreview.setImageBitmap(imgPhoto); //// } else { //// img_PhotoPreview.setVisibility(View.GONE); //// } // // // Image related text // String sImgName = feedArrayList.get(position).getsPhotoPreviewName(); // String sImgCaption = feedArrayList.get(position).getsPhotoPreviewCaption(); // String sImgDescription = feedArrayList.get(position).getsPhotoPreviewDescription(); // // TextView txv_ImgName = (TextView) convertView.findViewById(R.id.txv_imgName); // TextView txv_ImgCaption = (TextView) convertView.findViewById(R.id.txv_imgCaption); // TextView txv_ImgDecription = (TextView) convertView.findViewById(R.id.txv_imgdescription); // if (sImgName != null) { // txv_ImgName.setText(sImgName); // } else { // txv_ImgName.setVisibility(View.GONE); // } // if (sImgCaption != null) { // txv_ImgCaption.setText(sImgCaption); // } else { // txv_ImgCaption.setVisibility(View.GONE); // } // if (sImgDescription != null) { // txv_ImgDecription.setText(sImgDescription); //// } else if (sMsgBody != null && sStory != null ) { //// txv_ImgDecription.setText(sStory); // } else { // txv_ImgDecription.setVisibility(View.GONE); // } // } // return convertView; // } public void addItem(String[] feedMsg) { FeedEntry item = new FeedEntry(); if ( feedMsg.length > 2 ) { item.setsName(feedMsg[0]); //name item.setsOwnerID(feedMsg[1]); //feed owner id item.setsCreatedTime(feedMsg[2]); //created time item.setsMsgBody(feedMsg[3]); //message item.setsStory(feedMsg[4]); //story //item.setsStory_tags(feedMsg[4]); //story_tags item.setsPhotoPreviewLink(feedMsg[5]); //pic url item.setsPhotoPreviewName(feedMsg[6]); //pic/album name item.setsPhotoPreviewCaption(feedMsg[7]); //pic/album caption item.setsPhotoPreviewDescription(feedMsg[8]); //pic/album description } else { //No local feed available item.setsName(feedMsg[0]); } feedArrayList.add(item); } public void addItem(FeedEntry item) { feedArrayList.add(item); } private Bitmap ImageOperations(String url) { HttpURLConnection con = null; Bitmap bmp = null; if (url != null) { try { URL ulrn = new URL(url); con = (HttpURLConnection)ulrn.openConnection(); InputStream is = con.getInputStream(); bmp = BitmapFactory.decodeStream(is); } catch(Exception e) { } finally { if (con != null) { con.disconnect(); } } } return bmp; } // public Object fetch(String address) throws MalformedURLException,IOException { // URL url = new URL(address); // Object content = url.getContent(); // return content; // } }