package cn.sharesdk.onekeyshare;
import java.util.ArrayList;
import java.util.HashMap;
import com.mob.tools.FakeActivity;
import cn.sharesdk.framework.Platform;
public class FollowerListFakeActivity extends FakeActivity {
protected Platform platform;
public void setPlatform(Platform platform) {
this.platform = platform;
}
public Platform getPlatform() {
return platform;
}
public boolean isRadioMode(String platformName) {
return "FacebookMessenger".equals(platformName);
}
public void setResultForChecked(ArrayList<String> checked) {
HashMap<String, Object> res = new HashMap<String, Object>();
res.put("selected", checked);
res.put("platform", platform);
setResult(res);
}
public static class Following {
public boolean checked;
public String screenName;
public String description;
public String uid;
public String icon;
//@Name 用于微博等提示或关联某个人
public String atName;
}
public static class FollowersResult {
public ArrayList<Following> list;
public boolean hasNextPage = false;
}
public static FollowersResult parseFollowers(String platformName, HashMap<String, Object> res, HashMap<String, Boolean> uidMap) {
if (res == null || res.size() <= 0) {
return null;
}
boolean hasNext = false;
ArrayList<Following> data = new ArrayList<Following>();
if ("SinaWeibo".equals(platformName)) {
// users[id, name, description]
@SuppressWarnings("unchecked")
ArrayList<HashMap<String, Object>> users
= (ArrayList<HashMap<String,Object>>) res.get("users");
for (HashMap<String, Object> user : users) {
String uid = String.valueOf(user.get("id"));
if (!uidMap.containsKey(uid)) {
Following following = new Following();
following.uid = uid;
following.screenName = String.valueOf(user.get("name"));
following.description = String.valueOf(user.get("description"));
following.icon = String.valueOf(user.get("profile_image_url"));
following.atName = following.screenName;
uidMap.put(following.uid, true);
data.add(following);
}
}
hasNext = (Integer) res.get("total_number") > uidMap.size();
}
else if ("TencentWeibo".equals(platformName)) {
hasNext = ((Integer)res.get("hasnext") == 0);
// info[nick, name, tweet[text]]
@SuppressWarnings("unchecked")
ArrayList<HashMap<String, Object>> infos
= (ArrayList<HashMap<String,Object>>) res.get("info");
for (HashMap<String, Object> info : infos) {
String uid = String.valueOf(info.get("name"));
if (!uidMap.containsKey(uid)) {
Following following = new Following();
following.screenName = String.valueOf(info.get("nick"));
following.uid = uid;
following.atName = uid;
@SuppressWarnings("unchecked")
ArrayList<HashMap<String, Object>> tweets = (ArrayList<HashMap<String,Object>>) info.get("tweet");
for (HashMap<String, Object> tweet : tweets) {
following.description = String.valueOf(tweet.get("text"));
break;
}
following.icon = String.valueOf(info.get("head")) + "/100";
uidMap.put(following.uid, true);
data.add(following);
}
}
}
else if ("Facebook".equals(platformName)) {
// data[id, name]
@SuppressWarnings("unchecked")
ArrayList<HashMap<String, Object>> datas
= (ArrayList<HashMap<String,Object>>) res.get("data");
for (HashMap<String, Object> d : datas) {
String uid = String.valueOf(d.get("id"));
if (!uidMap.containsKey(uid)) {
Following following = new Following();
following.uid = uid;
following.atName = "["+uid+"]";
following.screenName = String.valueOf(d.get("name"));
@SuppressWarnings("unchecked")
HashMap<String, Object> picture = (HashMap<String, Object>) d.get("picture");
if (picture != null) {
@SuppressWarnings("unchecked")
HashMap<String, Object> pData = (HashMap<String, Object>) picture.get("data");
following.icon = String.valueOf(pData.get("url"));
}
uidMap.put(following.uid, true);
data.add(following);
}
}
@SuppressWarnings("unchecked")
HashMap<String, Object> paging = (HashMap<String, Object>) res.get("paging");
hasNext = paging.containsKey("next");
}
else if ("Twitter".equals(platformName)) {
// users[screen_name, name, description]
@SuppressWarnings("unchecked")
ArrayList<HashMap<String, Object>> users
= (ArrayList<HashMap<String,Object>>) res.get("users");
for (HashMap<String, Object> user : users) {
String uid = String.valueOf(user.get("screen_name"));
if (!uidMap.containsKey(uid)) {
Following following = new Following();
following.uid = uid;
following.atName = uid;
following.screenName = String.valueOf(user.get("name"));
following.description = String.valueOf(user.get("description"));
following.icon = String.valueOf(user.get("profile_image_url"));
uidMap.put(following.uid, true);
data.add(following);
}
}
}
else if ("FacebookMessenger".equals(platformName)) {
@SuppressWarnings("unchecked")
ArrayList<HashMap<String, Object>> users
= (ArrayList<HashMap<String,Object>>) res.get("users");
for (HashMap<String, Object> user : users) {
String userAddr = String.valueOf(user.get("jid"));
if (!uidMap.containsKey(userAddr)) {
Following following = new Following();
following.uid = userAddr;
following.atName = userAddr;
following.screenName = String.valueOf(user.get("name"));
uidMap.put(following.uid, true);
data.add(following);
}
}
hasNext = false;
}
FollowersResult ret = new FollowersResult();
ret.list = data;
ret.hasNextPage = hasNext;
return ret;
}
}