Selaa lähdekoodia

信息页面显示企业通讯录的名字,修复通讯录筛选后点击出现非点击联系人bug

gongpm 10 vuotta sitten
vanhempi
commit
f33bbdbb34

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

@@ -28,42 +28,42 @@ import com.baidu.android.pushservice.PushManager;
 import com.baidu.autoupdatesdk.BDAutoUpdateSDK;
 import com.baidu.autoupdatesdk.UICheckUpdateCallback;
 import com.xzjmyk.pm.activity.AppConfig;
+import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.NetWorkObservable;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.bean.User;
 import com.xzjmyk.pm.activity.bean.circle.CircleMessage;
 import com.xzjmyk.pm.activity.bean.message.NewFriendMessage;
 import com.xzjmyk.pm.activity.broadcast.CardcastUiUpdateUtil;
+import com.xzjmyk.pm.activity.broadcast.MsgBroadcast;
 import com.xzjmyk.pm.activity.db.dao.FriendDao;
 import com.xzjmyk.pm.activity.db.dao.UserDao;
+import com.xzjmyk.pm.activity.helper.LoginHelper;
+import com.xzjmyk.pm.activity.ui.account.LoginActivity;
+import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.cardcast.AttentionFragment;
 import com.xzjmyk.pm.activity.ui.cardcast.FriendFragment;
 import com.xzjmyk.pm.activity.ui.cardcast.RoomFragment;
+import com.xzjmyk.pm.activity.ui.circle.BusinessCircleFragment;
 import com.xzjmyk.pm.activity.ui.erp.fragment.LinksManFragment;
 import com.xzjmyk.pm.activity.ui.erp.fragment.WorksFragment;
+import com.xzjmyk.pm.activity.ui.find.MyFriendFragment;
 import com.xzjmyk.pm.activity.ui.groupchat.GroupChatFragment;
 import com.xzjmyk.pm.activity.ui.me.MeFragment;
+import com.xzjmyk.pm.activity.ui.me.ScreenListener;
 import com.xzjmyk.pm.activity.ui.message.MessageFragment;
+import com.xzjmyk.pm.activity.ui.nearby.NearbyFragment;
+import com.xzjmyk.pm.activity.util.Constants;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
+import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.view.DivideRadioGroup;
 import com.xzjmyk.pm.activity.volley.ArrayResult;
+import com.xzjmyk.pm.activity.volley.FastVolley;
+import com.xzjmyk.pm.activity.volley.Result;
 import com.xzjmyk.pm.activity.volley.StringJsonArrayRequest;
 import com.xzjmyk.pm.activity.xmpp.CoreService;
 import com.xzjmyk.pm.activity.xmpp.ListenerManager;
 import com.xzjmyk.pm.activity.xmpp.listener.AuthStateListener;
-import com.xzjmyk.pm.activity.MyApplication;
-import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.bean.User;
-import com.xzjmyk.pm.activity.broadcast.MsgBroadcast;
-import com.xzjmyk.pm.activity.helper.LoginHelper;
-import com.xzjmyk.pm.activity.ui.account.LoginActivity;
-import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.ui.circle.BusinessCircleFragment;
-import com.xzjmyk.pm.activity.ui.find.MyFriendFragment;
-import com.xzjmyk.pm.activity.ui.me.ScreenListener;
-import com.xzjmyk.pm.activity.ui.nearby.NearbyFragment;
-import com.xzjmyk.pm.activity.util.Constants;
-import com.xzjmyk.pm.activity.util.ToastUtil;
-import com.xzjmyk.pm.activity.volley.FastVolley;
-import com.xzjmyk.pm.activity.volley.Result;
 
 import java.util.HashMap;
 import java.util.List;
@@ -327,20 +327,20 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
                 removeNeedUserFragment(false);
 
             } else if (action.equals(LoginHelper.ACTION_CONFLICT)) {
+
                 // 改变用户状态
                 MyApplication.getInstance().mUserStatus = LoginHelper.STATUS_USER_TOKEN_CHANGE;
                 mCoreService.logout();
-                // mFindRb.setChecked(true);
                 removeNeedUserFragment(true);
                 cancelUserCheckIfExist();
                 // 弹出对话框
                 startActivity(new Intent(MainActivity.this, UserCheckedActivity.class));
-
                 if (Build.VERSION.SDK_INT == Build.VERSION_CODES.HONEYCOMB) {
                     mActivityManager.moveTaskToFront(getTaskId(), ActivityManager.MOVE_TASK_WITH_HOME);
                 } else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
                     mActivityManager.moveTaskToFront(getTaskId(), ActivityManager.MOVE_TASK_NO_USER_ACTION);
                 }
+
             } else if (action.equals(LoginHelper.ACTION_NEED_UPDATE)) {
                 // mFindRb.setChecked(true);
                 removeNeedUserFragment(true);

+ 3 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/UserCheckedActivity.java

@@ -57,8 +57,11 @@ public class UserCheckedActivity extends ActionBackActivity {
 			mTitleTv.setText(R.string.overdue_title);
 			mDesTv.setText(R.string.deficiency_data_des);
 		} else if (status == LoginHelper.STATUS_USER_TOKEN_CHANGE) {
+			//TODO 下线通知
 			mTitleTv.setText(R.string.logout_title);
 			mDesTv.setText(R.string.logout_des);
+
+
 		} else {// 其他的状态,一般不会出现,为了容错,加个判断
 			loginAgain();
 			return;

+ 8 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/LinksManFragment.java

@@ -368,7 +368,11 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                 try {
-                    friend = mSortFriends.get((int) id).getBean();
+                    if (isSeaching)
+                        friend = sortFrientSeach.get((int) id).getBean();
+                    else
+                        friend = mSortFriends.get((int) id).getBean();
+
                 } catch (ArrayIndexOutOfBoundsException e) {
                     return;
                 }
@@ -406,7 +410,10 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         mProgressDialog = ProgressDialogUtil.init(getActivity(), null, getString(R.string.please_wait));
     }
 
+    private boolean isSeaching = false;
+
     private void goneView(boolean b) {
+        isSeaching = b;
         if (b) {
             my_data_rl.setVisibility(View.GONE);
             // my_friends_rl.setVisibility(View.GONE);

+ 14 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java

@@ -311,6 +311,19 @@ public class MessageFragment extends EasyFragment {
         mActivity = (BaseActivity) getActivity();
     }
 
+    public void setFriendName(List<Friend> friends, String id) {
+        List<Friend> f = FriendDao.getInstance().getFriends(id);
+        for (int i = 0; i < friends.size(); i++) {
+            for (int j = 0; j < f.size(); j++) {
+                if (friends.get(i).get_id() == f.get(j).get_id()) {
+                    friends.get(i).setNickName(f.get(j).getNickName());
+                    friends.get(i).setRemarkName(f.get(j).getRemarkName());
+                    break;
+                }
+            }
+        }
+    }
+
     /**
      * 请求加载新的筛选条件的数据
      * <p/>
@@ -323,6 +336,7 @@ public class MessageFragment extends EasyFragment {
                 String mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
                 long startTime = System.currentTimeMillis();
                 final List<Friend> friends = FriendDao.getInstance().getNearlyFriendMsg(mLoginUserId);
+                setFriendName(friends, mLoginUserId);
                 long delayTime = 200 - (startTime - System.currentTimeMillis());// 保证至少200ms的刷新过程
                 if (delayTime < 0) {
                     delayTime = 0;

+ 107 - 103
WeiChat/src/main/java/com/xzjmyk/pm/activity/xmpp/XReconnectionManager.java

@@ -130,7 +130,8 @@ public class XReconnectionManager extends AbstractConnectionListener {
 							}
 						} else if (checkTokenStatus == 1) {// 表示检查成功Token过期(或出现不能继续请求Token状态的异常),停止重新登陆
 							doReconnecting = false;
-							conflict();
+							//TODO 关闭自动登录  可能出现账号异常情况
+//							conflict();
 						} else if (checkTokenStatus == 2) {// 2、表示检查成功,Token没有改变,可以继续下面的重新登陆
 							break;
 						}
@@ -185,128 +186,131 @@ public class XReconnectionManager extends AbstractConnectionListener {
 	 * @return
 	 */
 	private int syncCheckToken() {// 同步网络请求Token
-		if (CoreService.DEBUG)
+		if (CoreService.DEBUG) {
 			Log.d(CoreService.TAG, "开始重新登陆前的 Token 状态检查");
-		Log.d("wang","开始重新登陆前的 Token 状态检查");
-		String requestUrl = MyApplication.getInstance().getConfig().USER_LOGIN_AUTO;
-		if (requestUrl == null) {
-			return 1;
-		}
-		HttpURLConnection httpConn = null;
-		DataOutputStream out = null;
-		InputStream is = null;
-		try {
-			URL url = new URL(requestUrl);
-			httpConn = (HttpURLConnection) url.openConnection();
-			httpConn.setDoOutput(true);
-			httpConn.setDoInput(true);
-			httpConn.setConnectTimeout(5 * 1000);
-			httpConn.setReadTimeout(5 * 1000);
-			httpConn.setRequestMethod("POST");
-			httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
-			out = new DataOutputStream(httpConn.getOutputStream());
-			// 参数
-			String access_token = MyApplication.getInstance().mAccessToken;
-			if (TextUtils.isEmpty(access_token)) {
-				access_token = UserSp.getInstance(mContext).getAccessToken(null);
-			}
+			Log.d("wang", "开始重新登陆前的 Token 状态检查");
+			String requestUrl = MyApplication.getInstance().getConfig().USER_LOGIN_AUTO;
+			if (requestUrl == null) {
+				Log.i("gongpengming", "requestUrl 为空");
 
-			if (TextUtils.isEmpty(access_token)) {
 				return 1;
 			}
+			HttpURLConnection httpConn = null;
+			DataOutputStream out = null;
+			InputStream is = null;
+			try {
+				URL url = new URL(requestUrl);
+				httpConn = (HttpURLConnection) url.openConnection();
+				httpConn.setDoOutput(true);
+				httpConn.setDoInput(true);
+				httpConn.setConnectTimeout(5 * 1000);
+				httpConn.setReadTimeout(5 * 1000);
+				httpConn.setRequestMethod("POST");
+				httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
+				out = new DataOutputStream(httpConn.getOutputStream());
+				// 参数
+				String access_token = MyApplication.getInstance().mAccessToken;
+				if (TextUtils.isEmpty(access_token)) {
+					access_token = UserSp.getInstance(mContext).getAccessToken(null);
+				}
 
-			String serial = DeviceInfoUtil.getDeviceId(mContext);
-			if (TextUtils.isEmpty(serial)) {
-				return 1;
-			}
-			if (CoreService.DEBUG) {
-				Log.d(CoreService.TAG, "requestUrl:" + requestUrl);
-				Log.d(CoreService.TAG, "access_token:" + access_token);
-				Log.d(CoreService.TAG, "serial:" + serial);
-			}
+				if (TextUtils.isEmpty(access_token)) {
+					return 1;
+				}
 
-			StringBuilder sb = new StringBuilder();
-			sb.append("access_token=" + access_token + "&");
-			String user = ((XMPPTCPConnection) mConnection).getDirectUser();
-			Log.d("wang","user..."+ user);
-			if (user == null) {
-				Log.d("wang","user == null");
-				return 1;
-			}
-			sb.append("userId=" + StringUtils.parseName(user) + "&");
-			sb.append("serial=" + serial);
-			out.write(sb.toString().getBytes("UTF-8"));
-			out.flush();
-
-			int statusCode = httpConn.getResponseCode();
-			if (statusCode != 200) {
-				return 0;
-			}
-			is = httpConn.getInputStream();
-			if (is == null) {
-				return 0;
-			}
-			StringBuffer buffer = new StringBuffer();
-			int len = -1;
-			byte[] data = new byte[1024];
-			try {
-				while ((len = is.read(data)) != -1) {
-					buffer.append(new String(data, 0, len));
+				String serial = DeviceInfoUtil.getDeviceId(mContext);
+				if (TextUtils.isEmpty(serial)) {
+					return 1;
+				}
+				if (CoreService.DEBUG) {
+					Log.d(CoreService.TAG, "requestUrl:" + requestUrl);
+					Log.d(CoreService.TAG, "access_token:" + access_token);
+					Log.d(CoreService.TAG, "serial:" + serial);
 				}
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-			String result = buffer.toString();
-			if (CoreService.DEBUG) {
-				Log.d(CoreService.TAG, "检查状态result:" + result);
-			}
 
-			if (TextUtils.isEmpty(result)) {
-				Log.d("wang","result==null");
-				return 0;
-			}
+				StringBuilder sb = new StringBuilder();
+				sb.append("access_token=" + access_token + "&");
+				String user = ((XMPPTCPConnection) mConnection).getDirectUser();
+				Log.d("wang", "user..." + user);
+				if (user == null) {
+					Log.d("wang", "user == null");
+					return 1;
+				}
+				sb.append("userId=" + StringUtils.parseName(user) + "&");
+				sb.append("serial=" + serial);
+				out.write(sb.toString().getBytes("UTF-8"));
+				out.flush();
 
-			try {
-				JSONObject jsonObject = JSON.parseObject(result);
-				int resultCode = jsonObject.getIntValue(Result.RESULT_CODE);
-				if (resultCode != 1) {
+				int statusCode = httpConn.getResponseCode();
+				if (statusCode != 200) {
+					return 0;
+				}
+				is = httpConn.getInputStream();
+				if (is == null) {
+					return 0;
+				}
+				StringBuffer buffer = new StringBuffer();
+				int len = -1;
+				byte[] data = new byte[1024];
+				try {
+					while ((len = is.read(data)) != -1) {
+						buffer.append(new String(data, 0, len));
+					}
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+				String result = buffer.toString();
+				if (CoreService.DEBUG) {
+					Log.d(CoreService.TAG, "检查状态result:" + result);
+				}
+
+				if (TextUtils.isEmpty(result)) {
+					Log.d("wang", "result==null");
 					return 0;
 				}
 
-				LoginAuto loginAuto = JSON.parseObject(jsonObject.getString(Result.DATA), LoginAuto.class);
-				if (loginAuto != null) {// 判断时候要继续重新登陆
-					int tokenExists = loginAuto.getTokenExists();// 1=令牌存在、0=令牌不存在
-					int serialStatus = loginAuto.getSerialStatus();// 1=没有设备号、2=设备号一致、3=设备号不一致
-					if (serialStatus == 2) {// 设备号一致,说明没有切换过设备
-						if (tokenExists == 1) {// Token存在,
-							return 2;
-						} else {// Token 不存在
+				try {
+					JSONObject jsonObject = JSON.parseObject(result);
+					int resultCode = jsonObject.getIntValue(Result.RESULT_CODE);
+					if (resultCode != 1) {
+						return 0;
+					}
+
+					LoginAuto loginAuto = JSON.parseObject(jsonObject.getString(Result.DATA), LoginAuto.class);
+					if (loginAuto != null) {// 判断时候要继续重新登陆
+						int tokenExists = loginAuto.getTokenExists();// 1=令牌存在、0=令牌不存在
+						int serialStatus = loginAuto.getSerialStatus();// 1=没有设备号、2=设备号一致、3=设备号不一致
+						if (serialStatus == 2) {// 设备号一致,说明没有切换过设备
+							if (tokenExists == 1) {// Token存在,
+								return 2;
+							} else {// Token 不存在
+								return 1;
+							}
+						} else {// 设备号不一致,那么就是切换过手机
 							return 1;
 						}
-					} else {// 设备号不一致,那么就是切换过手机
-						return 1;
+					} else {
+						return 0;
 					}
-				} else {
-					return 0;
+				} catch (Exception e) {
+					e.printStackTrace();
 				}
 			} catch (Exception e) {
 				e.printStackTrace();
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		} finally {
-			try {
-				if (out != null) {
-					out.close();
+			} finally {
+				try {
+					if (out != null) {
+						out.close();
+					}
+					if (is != null) {
+						is.close();
+					}
+				} catch (IOException e) {
+					e.printStackTrace();
 				}
-				if (is != null) {
-					is.close();
+				if (httpConn != null) {
+					httpConn.disconnect();
 				}
-			} catch (IOException e) {
-				e.printStackTrace();
-			}
-			if (httpConn != null) {
-				httpConn.disconnect();
 			}
 		}
 		return 0;