View Javadoc
1   /*
2    * Copyright (C) 2003-2014 eXo Platform SAS.
3    *
4    * This is free software; you can redistribute it and/or modify it
5    * under the terms of the GNU Lesser General Public License as
6    * published by the Free Software Foundation; either version 3 of
7    * the License, or (at your option) any later version.
8    *
9    * This software is distributed in the hope that it will be useful,
10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12   * Lesser General Public License for more details.
13   *
14   * You should have received a copy of the GNU Lesser General Public
15   * License along with this software; if not, write to the Free
16   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
17   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
18   */
19  package org.exoplatform.ui.social;
20  
21  import java.util.ArrayList;
22  
23  import org.exoplatform.R;
24  import org.exoplatform.model.SocialLikeInfo;
25  import org.exoplatform.utils.ExoConstants;
26  import org.exoplatform.utils.image.ExoPicasso;
27  import android.annotation.SuppressLint;
28  import android.app.Activity;
29  import android.content.Context;
30  import android.net.Uri;
31  import android.os.Bundle;
32  import android.view.LayoutInflater;
33  import android.view.View;
34  import android.view.ViewGroup;
35  import android.widget.AdapterView;
36  import android.widget.AdapterView.OnItemClickListener;
37  import android.widget.BaseAdapter;
38  import android.widget.GridView;
39  import android.widget.ImageView;
40  import android.widget.TextView;
41  
42  /**
43   * Created by The eXo Platform SAS Author : eXoPlatform exo@exoplatform.com Jun
44   * 4, 2012
45   */
46  public class LikeListActivity extends Activity {
47  
48    /*
49     * This class for displaying the liker list information include avatar and
50     * liker's name
51     */
52  
53    private ArrayList<SocialLikeInfo> likeList;
54  
55    private GridView                  likedGridView;
56  
57    private StringBuffer              title;
58  
59    @Override
60    protected void onCreate(Bundle savedInstanceState) {
61      super.onCreate(savedInstanceState);
62      // setActionBarContentView(R.layout.like_list_activity_layout);
63      setContentView(R.layout.like_list_activity_layout);
64      /*
65       * Get liker list from intent extra
66       */
67      likeList = getIntent().getParcelableArrayListExtra(ExoConstants.SOCIAL_LIKED_LIST_EXTRA);
68      int size = 0;
69      if (likeList != null) {
70        size = likeList.size();
71        initUI();
72      }
73  
74      /*
75       * Set title for activity
76       */
77  
78      String liker;
79      if (size == 0 || size == 1) {
80        liker = getResources().getString(R.string.Liker);
81      } else {
82        liker = getResources().getString(R.string.Likers);
83      }
84      title = new StringBuffer();
85      title.append(size);
86      title.append(" ");
87      title.append(liker);
88      setTitle(title.toString());
89  
90    }
91  
92    private void initUI() {
93      likedGridView = (GridView) findViewById(R.id.like_list_gridview);
94      likedGridView.setAdapter(new LikedItemAdapter(this));
95      likedGridView.setOnItemClickListener(new OnItemClickListener() {
96  
97        @Override
98        public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
99        }
100     });
101   }
102 
103   /*
104    * The adapter for liker grid
105    */
106   private class LikedItemAdapter extends BaseAdapter {
107 
108     private LayoutInflater mInflater;
109 
110     public LikedItemAdapter(Context context) {
111       mInflater = LayoutInflater.from(context);
112     }
113 
114     @Override
115     public int getCount() {
116       return likeList.size();
117     }
118 
119     @Override
120     public Object getItem(int position) {
121       return position;
122     }
123 
124     @Override
125     public long getItemId(int position) {
126       return position;
127     }
128 
129     @SuppressLint("InflateParams")
130     @Override
131     public View getView(int position, View convertView, ViewGroup parent) {
132       ViewHolder viewHolder;
133       if (convertView == null) {
134         // Inflate layout from layout resource
135         // Passing parent instead of null ends in java.lang.UnsupportedOperationException:
136         // addView(View, LayoutParams) is not supported in AdapterView
137         convertView = mInflater.inflate(R.layout.liked_grid_item, null);
138         viewHolder = new ViewHolder();
139         viewHolder.imageView = (ImageView) convertView.findViewById(R.id.liked_avatar);
140         viewHolder.textView = (TextView) convertView.findViewById(R.id.liked_name);
141         convertView.setTag(viewHolder);
142       } else {
143         viewHolder = (ViewHolder) convertView.getTag();
144       }
145 
146       ExoPicasso.picasso(getApplicationContext())
147                 .load(Uri.parse(likeList.get(position).likedImageUrl))
148                 .error(R.drawable.default_avatar)
149                 .into(viewHolder.imageView);
150       viewHolder.textView.setText(likeList.get(position).getLikeName());
151 
152       return convertView;
153     }
154 
155   }
156 
157   private class ViewHolder {
158     public ImageView imageView;
159 
160     public TextView  textView;
161   }
162 
163 }