Browse Source

Merge branch 'developer_master' of https://gitlab.com/Arisono/SkWeiChat-Baidu into developer_master

LiuJie 10 years ago
parent
commit
118a4c3d65

+ 17 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/PublicMessageAdapter.java

@@ -59,7 +59,6 @@ import com.xzjmyk.pm.activity.volley.Result;
 import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -447,7 +446,13 @@ public class PublicMessageAdapter extends BaseAdapter implements BusinessCircleA
         }
         if (comments != null && comments.size() > 0) {
             viewHolder.command_listView.setVisibility(View.VISIBLE);
-            mAdapter = new CommentAdapter(position, comments);
+            for (int i = 0; i < comments.size(); i++)
+//                Log.i("gongpengming",comments.get(i).getBody());
+//            Log.i("gongpengming","------------------------");
+////            Collections.reverse(comments);
+//            for (int i=0;i<comments.size();i++)
+//                Log.i("gongpengming",comments.get(i).getBody());
+                mAdapter = new CommentAdapter(position, comments);
             viewHolder.command_listView.setAdapter(mAdapter);
         } else {
             viewHolder.command_listView.setVisibility(View.GONE);
@@ -604,6 +609,11 @@ public class PublicMessageAdapter extends BaseAdapter implements BusinessCircleA
         return convertView;
     }
 
+    public void notifyDataSetChanged(boolean isfrish) {
+        this.isfrish = isfrish;
+        notifyDataSetChanged();
+    }
+
     class ViewHolder {
         View viewLine;
         ImageView avatar_img;
@@ -634,6 +644,8 @@ public class PublicMessageAdapter extends BaseAdapter implements BusinessCircleA
         ImageView image_view;
     }
 
+    boolean isfrish = false;
+
     /* 转载的单张图片 */
     class FwSingleImageHolder extends ViewHolder {
         TextView text_tv;
@@ -682,11 +694,13 @@ public class PublicMessageAdapter extends BaseAdapter implements BusinessCircleA
     public class CommentAdapter extends BaseAdapter {
         private int messagePosition;
         private List<Comment> datas;
+        private Map<Integer, Boolean> is;
+
 
         public CommentAdapter(int messagePosition, List<Comment> datas) {
             this.messagePosition = messagePosition;
             this.datas = datas;
-            Collections.reverse(datas);
+
         }
 
         @Override

+ 10 - 9
WeiChat/src/main/java/com/xzjmyk/pm/activity/helper/LoginHelper.java

@@ -4,19 +4,18 @@ import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.text.TextUtils;
-import android.util.Log;
 
 import com.android.volley.Response;
 import com.android.volley.VolleyError;
 import com.xzjmyk.pm.activity.AppConfig;
+import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.bean.LoginAuto;
+import com.xzjmyk.pm.activity.bean.LoginRegisterResult;
+import com.xzjmyk.pm.activity.bean.User;
 import com.xzjmyk.pm.activity.db.dao.UserDao;
 import com.xzjmyk.pm.activity.sp.UserSp;
 import com.xzjmyk.pm.activity.ui.MainActivity;
 import com.xzjmyk.pm.activity.util.DeviceInfoUtil;
-import com.xzjmyk.pm.activity.MyApplication;
-import com.xzjmyk.pm.activity.bean.LoginRegisterResult;
-import com.xzjmyk.pm.activity.bean.User;
 import com.xzjmyk.pm.activity.volley.ObjectResult;
 import com.xzjmyk.pm.activity.volley.Result;
 import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
@@ -26,13 +25,14 @@ import java.util.Map;
 
 /**
  * 当前登陆用户的帮助类
- * 
+ * token
  * 
  */
 public class LoginHelper {
 	public static final String ACTION_LOGIN = AppConfig.sPackageName + ".action.login";// 登陆
 	public static final String ACTION_LOGOUT = AppConfig.sPackageName + ".action.logout";// 用户手动注销登出
 	public static final String ACTION_CONFLICT = AppConfig.sPackageName + ".action.conflict";// 登陆冲突(另外一个设备登陆了)
+	public static final String ACTION_TOKEN= AppConfig.sPackageName + ".action.token";// token异常
 	// 用户需要重新登陆,更新本地数据(可能是STATUS_USER_TOKEN_OVERDUE,STATUS_USER_NO_UPDATE,STATUS_USER_TOKEN_CHANGE三种状态之一)
 	public static final String ACTION_NEED_UPDATE = AppConfig.sPackageName + ".action.need_update";
 	public static final String ACTION_LOGIN_GIVE_UP = AppConfig.sPackageName + ".action.login_give_up";// 在下载资料的时候,没下载完就放弃登陆了
@@ -95,7 +95,11 @@ public class LoginHelper {
 		Intent intent = new Intent(ACTION_CONFLICT);
 		context.sendBroadcast(intent);
 	}
-
+	// 登陆冲突(另外一个设备登陆了)
+	public static void broadcastToken(Context context) {
+		Intent intent = new Intent(ACTION_TOKEN);
+		context.sendBroadcast(intent);
+	}
 	public static void broadcastNeedUpdate(Context context) {
 		Intent intent = new Intent(ACTION_NEED_UPDATE);
 		context.sendBroadcast(intent);
@@ -256,7 +260,6 @@ public class LoginHelper {
 
 		if (status == STATUS_USER_TOKEN_CHANGE) {// Token已经变更,直接提示,不需要再检测Token是否变更
 			MyApplication.getInstance().mUserStatusChecked = true;
-			Log.i("gongpengming","另一个账号登录");
 			broadcastNeedUpdate(activity);
 			return;
 		}
@@ -286,7 +289,6 @@ public class LoginHelper {
 
 					@Override
 					public void onErrorResponse(VolleyError arg0) {
-						Log.d("wang","检查token错误");
 						if (listener != null) {
 							listener.onCheckFailed();
 						}
@@ -299,7 +301,6 @@ public class LoginHelper {
 							MyApplication.getInstance().mUserStatusChecked = true;// 检测Token成功
 							int tokenExists = result.getData().getTokenExists();// 1=令牌存在、0=令牌不存在
 							int serialStatus = result.getData().getSerialStatus();// 1=没有设备号、2=设备号一致、3=设备号不一致
-							Log.d("gongpengming","serialStatus"+serialStatus);
 							if (serialStatus == 2) {// 设备号一致,说明没有切换过设备
 								if (tokenExists == 1) {// Token也存在,说明不用登陆了
 									if (status == STATUS_USER_FULL) {// 本地数据完整,那么就免登陆使用

+ 7 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java

@@ -235,7 +235,7 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
     public void changeRedZone(boolean b) {
         if (b) {
             unWorkReadTV.setVisibility(View.VISIBLE);
-            if (mWorksFragment!=null)
+            if (mWorksFragment != null)
                 mWorksFragment.setVISIBLE();
         } else {
             unWorkReadTV.setVisibility(View.GONE);
@@ -271,12 +271,12 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
                         if (newTime > oldTime) {//当有新消息
                             if (!data.getUserId().equals(MyApplication.getInstance().mLoginUser.getUserId())) {
                                 unWorkReadTV.setVisibility(View.VISIBLE);
-                                if (mWorksFragment!=null)
+                                if (mWorksFragment != null)
                                     mWorksFragment.setVISIBLE();
                                 timeMin = newTime;
                                 isUnReadWork = true;
-                            }else{
-                                 PreferenceUtils.putLong(mContext, TIME_MAIN,newTime); //获取以前时间
+                            } else {
+                                PreferenceUtils.putLong(mContext, TIME_MAIN, newTime); //获取以前时间
                             }
 
                         } else {
@@ -344,6 +344,9 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
                     mActivityManager.moveTaskToFront(getTaskId(), ActivityManager.MOVE_TASK_NO_USER_ACTION);
                 }
 
+            } else if (action.equals(LoginHelper.ACTION_TOKEN)) {  //TOKEN异常
+                // TODO  token异常
+                ToastUtil.showToast(MainActivity.this, "TOKEN 错误,建议重新登陆");
             } else if (action.equals(LoginHelper.ACTION_NEED_UPDATE)) {
                 // mFindRb.setChecked(true);
                 removeNeedUserFragment(true);

+ 17 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/circle/BusinessCircleActivity.java

@@ -59,6 +59,8 @@ import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -95,6 +97,13 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
     private String mNickName;
     public showCEView ceView;
     private File vFile;
+    private Comparator<? super Comment> comp = new Comparator<Comment>() {
+        @Override
+        public int compare(Comment comment, Comment t1) {
+
+            return (int) (comment.getTime() - t1.getTime());
+        }
+    };
 
     public void setShowCEViewListener(showCEView ceView) {
         this.ceView = ceView;
@@ -584,6 +593,10 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
                 boolean success = Result.defaultParser(mContext, result, true);
                 if (success) {
                     List<PublicMessage> datas = result.getData();
+                    for (int i = 0; i < datas.size(); i++) {
+                        Collections.sort(datas.get(i).getComments(), comp);
+                    }
+
                     if (isPullDwonToRefersh) {
                         mMessages.clear();
                     }
@@ -595,7 +608,7 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
                         }
                         mMessages.addAll(datas);
                     }
-                    mAdapter.notifyDataSetChanged();
+                    mAdapter.notifyDataSetChanged(true);
                 } else {
 
                 }
@@ -683,7 +696,7 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
                     if (datas != null && datas.size() > 0) {// 没有更多数据
                         mMessages.addAll(datas);
                     }
-                    mAdapter.notifyDataSetChanged();
+                    mAdapter.notifyDataSetChanged(true);
                 }
                 mPullToRefreshListView.onRefreshComplete();
             }
@@ -735,8 +748,8 @@ public class BusinessCircleActivity extends BaseActivity implements showCEView {
                         message.setComments(comments);
                     }
                     comment.setCommentId(result.getData());
-                    comments.add(0,comment);//  防止评论时候显示在第一个位置
-                    mAdapter.notifyDataSetChanged();
+                    comments.add(comment);//  防止评论时候显示在第一个位置
+                    mAdapter.notifyDataSetChanged(false);
                 }
             }
         }, String.class, params);

+ 28 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/tool/CommentUtil.java

@@ -0,0 +1,28 @@
+package com.xzjmyk.pm.activity.ui.tool;
+
+import com.xzjmyk.pm.activity.bean.circle.Comment;
+
+import java.util.Comparator;
+
+/**
+ * Created by gongpm on 2016/5/19.
+ */
+public class CommentUtil implements Comparator<String> {
+    public int compare(String o1, String o2) {
+        return o1.length() == o2.length() ? o1.compareTo(o2) : o1.length() - o2.length();
+    }
+
+
+
+    public static void ReverseDemo() {
+        Comparator<? super Comment> comp = new Comparator<Comment>() {
+            @Override
+            public int compare(Comment comment, Comment t1) {
+
+                return (int) (comment.getTime() - t1.getTime());
+            }
+        };
+
+    }
+
+}

+ 4 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/volley/Result.java

@@ -45,13 +45,14 @@ public class Result {
 		if (result.resultCode == CODE_SUCCESS) {// 成功
 			return true;
 		} else if (result.resultCode == CODE_NO_TOKEN) {// 缺少参数Token
-
-			LoginHelper.broadcastConflict(context);
+			//TODO 发出异常登录的广播
+			LoginHelper.broadcastToken(context);
 			if (showToast)
 				showResultToast(context, result);
 			return false;
 		} else if (result.resultCode == CODE_TOKEN_ERROR) {// Token过期或错误
-			LoginHelper.broadcastConflict(context);
+			//TODO 发出异常登录的广播
+			LoginHelper.broadcastToken(context);
 			if (showToast)
 				showResultToast(context, result);
 			return false;