package com.wenming.weiswift.mvp.model.imp; import android.content.Context; import com.google.gson.Gson; import com.sina.weibo.sdk.exception.WeiboException; import com.sina.weibo.sdk.net.RequestListener; import com.wenming.weiswift.api.FriendshipsAPI; import com.wenming.weiswift.entity.User; import com.wenming.weiswift.entity.list.UserList; import com.wenming.weiswift.mvp.model.FriendShipModel; import com.wenming.weiswift.ui.common.NewFeature; import com.wenming.weiswift.ui.common.login.AccessTokenKeeper; import com.wenming.weiswift.ui.common.login.Constants; import com.wenming.weiswift.utils.SDCardUtil; import com.wenming.weiswift.utils.ToastUtil; import java.util.ArrayList; /** * Created by wenmingvs on 16/6/6. */ public class FriendShipModelImp implements FriendShipModel { private OnRequestListener mOnRequestUIListener; private Context mContext; @Override public void user_destroy(final User user, Context context, OnRequestListener onRequestListener, boolean updateCache) { FriendshipsAPI friendshipsAPI = new FriendshipsAPI(context, Constants.APP_KEY, AccessTokenKeeper.readAccessToken(context)); mContext = context; mOnRequestUIListener = onRequestListener; friendshipsAPI.destroy(Long.valueOf(user.id), user.screen_name, new RequestListener() { @Override public void onComplete(String s) { ToastUtil.showShort(mContext, "取消关注成功"); //更新内存 user.following = false; //更新本地缓存 updateCache(mContext, user); NewFeature.refresh_profileLayout = true; mOnRequestUIListener.onSuccess(); } @Override public void onWeiboException(WeiboException e) { ToastUtil.showShort(mContext, "取消关注失败"); ToastUtil.showShort(mContext, e.getMessage()); mOnRequestUIListener.onError(e.getMessage()); } }); } @Override public void user_create(final User user, Context context, OnRequestListener onRequestListener, boolean updateCache) { FriendshipsAPI friendshipsAPI = new FriendshipsAPI(context, Constants.APP_KEY, AccessTokenKeeper.readAccessToken(context)); mContext = context; mOnRequestUIListener = onRequestListener; friendshipsAPI.create(Long.valueOf(user.id), user.screen_name, new RequestListener() { @Override public void onComplete(String s) { ToastUtil.showShort(mContext, "关注成功"); user.following = true; NewFeature.refresh_profileLayout = true; mOnRequestUIListener.onSuccess(); } @Override public void onWeiboException(WeiboException e) { ToastUtil.showShort(mContext, "关注失败"); ToastUtil.showShort(mContext, e.getMessage()); mOnRequestUIListener.onError(e.getMessage()); } }); } /** * @param context */ private void updateCache(Context context, User usertoUpdate) { String follerResponse = SDCardUtil.get(context, SDCardUtil.getSDCardPath() + "/weiSwift/profile", "我的粉丝列表" + AccessTokenKeeper.readAccessToken(context).getUid() + ".txt"); if (follerResponse != null) { UserList userList = UserList.parse(follerResponse); ArrayList<User> usersList = userList.users; for (User user : usersList) { if (user.id.equals(usertoUpdate.id)) { user.following = usertoUpdate.following; break; } } userList.users = usersList; SDCardUtil.put(context, SDCardUtil.getSDCardPath() + "/weiSwift/profile", "我的粉丝列表" + AccessTokenKeeper.readAccessToken(context).getUid() + ".txt", new Gson().toJson(userList)); } } }