package com.suan.weclient.util.data.holder; import android.util.Log; import com.suan.weclient.util.data.DataManager; import com.suan.weclient.util.data.bean.UserBean; import org.json.JSONArray; import org.json.JSONObject; import java.util.ArrayList; /** * Created by lhk on 1/29/14. */ public class UserGoupPushHelper { private int currentIndex; private ArrayList<PushUserHolder> userHolders; public UserGoupPushHelper(String source) { init(source); } private void init(String source) { if (source.length() != 0) { try { JSONObject contentObject = new JSONObject(source); currentIndex = contentObject.getInt("currentIndex"); userHolders = new ArrayList<PushUserHolder>(); JSONArray contentArray = contentObject.getJSONArray("contentArray"); for (int i = 0; i < contentArray.length(); i++) { JSONObject nowObject = contentArray.getJSONObject(i); PushUserHolder nowHolder = new PushUserHolder(nowObject); userHolders.add(nowHolder); } return; } catch (Exception e) { Log.e("init error", "" + e); } } else { userHolders = new ArrayList<PushUserHolder>(); currentIndex = 0; } } public String getString() { try { JSONObject contentObject = new JSONObject(); contentObject.put("currentIndex", currentIndex); JSONArray contentArray = new JSONArray(); for (int i = 0; i < userHolders.size(); i++) { JSONObject nowObject = userHolders.get(i).getContentObject(); contentArray.put(nowObject); } contentObject.put("contentArray", contentArray); return contentObject.toString(); } catch (Exception e) { Log.e("get contentObject error", "" + e); } return null; } public void updateUserGroup(DataManager dataManager) { ArrayList<PushUserHolder> newUserHolders = new ArrayList<PushUserHolder>(); for (int i = 0; i < dataManager.getUserGroup().size(); i++) { PushUserHolder nowBornHolder = new PushUserHolder(dataManager.getUserGroup().get(i)); for (int j = 0; j < userHolders.size(); j++) { PushUserHolder nowSearchHolder = userHolders.get(j); //find the same old holder and set data to new holder if (nowBornHolder.getUserBean().getUserName().equals(nowSearchHolder.getUserBean().getUserName())) { nowBornHolder.setLastMsgId(nowSearchHolder.getLastMsgId()); nowBornHolder.setLastNotifyTime(nowSearchHolder.getLastNotifyTime()); nowBornHolder.setLastNewMessageCount(nowSearchHolder.getLastNewMessageCount()); } } newUserHolders.add(nowBornHolder); } userHolders = newUserHolders; currentIndex = dataManager.getCurrentPosition(); } public int getCurrentIndex() { return currentIndex; } public ArrayList<PushUserHolder> getUserHolders() { return userHolders; } public class PushUserHolder { private UserBean userBean; private String lastMsgId = ""; private int lastNewMessageCount = 0; private long lastNotifyTime = 0; public PushUserHolder(UserBean userBean) { this.userBean = userBean; } public PushUserHolder(JSONObject jsonObject) { try { this.userBean = new UserBean(jsonObject.getJSONObject("userBean")); this.lastMsgId = jsonObject.getString("lastMsgId"); this.lastNewMessageCount = jsonObject.getInt("lastNewMessageCount"); this.lastNotifyTime = jsonObject.getLong("lastNotifyTime"); } catch (Exception e) { Log.e("user holder error", "" + e); } } public JSONObject getContentObject() { try { JSONObject contentObject = new JSONObject(); JSONObject userObject = userBean.getContentObject(); contentObject.put("userBean", userObject); contentObject.put("lastMsgId", lastMsgId); contentObject.put("lastNewMessageCount", lastNewMessageCount); contentObject.put("lastNotifyTime", lastNotifyTime); return contentObject; } catch (Exception e) { } return null; } public String getLastMsgId() { return lastMsgId; } public void setLastMsgId(String lastMsgId) { this.lastMsgId = lastMsgId; } public int getLastNewMessageCount() { return lastNewMessageCount; } public void setLastNewMessageCount(int lastNewMessageCount) { this.lastNewMessageCount = lastNewMessageCount; } public long getLastNotifyTime() { return lastNotifyTime; } public void setLastNotifyTime(long lastNotifyTime) { this.lastNotifyTime = lastNotifyTime; } public UserBean getUserBean() { return this.userBean; } } }