Просмотр исходного кода

优化:在用户切换公司和套件时候,通讯录异步更新数据

gongpm 10 лет назад
Родитель
Сommit
7643050708

+ 0 - 1
WeiChat/src/main/java/com/sk/weichat/ui/MainActivity.java

@@ -246,7 +246,6 @@ public class MainActivity extends BaseActivity implements NetWorkObserver, AuthS
                         if (newTime>oldTime){//当有新消息
                             Log.i("gongpengming","newTime="+newTime+"@@@ oldTime="+oldTime);
                             unWorkReadTV.setVisibility(View.VISIBLE);
-
                             timeMin=newTime;
                             isUnReadWork = true;
                         }else{

+ 27 - 42
WeiChat/src/main/java/com/sk/weichat/ui/erp/fragment/LinksManFragment.java

@@ -3,10 +3,12 @@ package com.sk.weichat.ui.erp.fragment;
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.ProgressDialog;
+import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.IntentFilter;
 import android.content.ServiceConnection;
 import android.os.Bundle;
 import android.os.Handler;
@@ -94,8 +96,7 @@ import java.util.Map;
  */
 public class LinksManFragment extends XutilsFragment implements View.OnClickListener {
 
-    //    private String TAG = "LinksManFragment";
-    private final int LOAD_SUCCESS_ALLDATA = 9;
+
     private Context ct;
     @ViewInject(R.id.my_data_rl)
     private RelativeLayout my_data_rl;
@@ -111,49 +112,23 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
     private BaseComparator<Friend> mBaseComparator;
     private FriendSortAdapter mAdapter;
     private String mLoginUserId;
-    private Handler mHandler = new Handler() {
+    private Handler mHandler = new Handler() ;
+    private boolean mNeedUpdate = true;
+    private Activity mActivity;
+    private DBManager manager;
+
+    //接收修改公司广播
+    private IntentFilter inputFilter;
+    private BroadcastReceiver receiver=new BroadcastReceiver() {
         @Override
-        public void handleMessage(Message msg) {
-            if (msg.what == LOAD_SUCCESS_ALLDATA) {
-
-                String result = msg.getData().getString("result");
-                JSONObject jsonobject = JSON.parseObject(result);
-
-                String server_time = jsonobject.getString("sysdate");
-                Log.i("gongpengming", result);
-//                    List<HrorgsEntity> hrorgsEntities = JSON.parseArray(jsonobject.getString("hrorgs"), HrorgsEntity.class);
-//                    List<EmployeesEntity> employeesEntities = JSON.parseArray(jsonobject.getString("employees"), EmployeesEntity.class);
-//                    Log.i(TAG, result);
-//                    master = CommonUtil.getSharedPreferences(ct, "erp_master");
-//                    HrorgsEntity hrEntity = manager.select_getRootData(new String[]{master}, "whichsys=?");
-//                    boolean isFristLoad = true;//是否第一次加载
-//                    if (hrEntity != null) {
-//                        isFristLoad = false;
-//                    }
-//                    reScrollView.getLoadingLayoutProxy().setRefreshingLabel("正在同步数据,请稍等...");
-//                    //空代表取缓存
-//                    if (!hrorgsEntities.isEmpty() || !employeesEntities.isEmpty()) {
-//                        Log.i(TAG, "是否是第一次加载数据:" + isFristLoad);
-//                        Log.i(TAG, "同步数据......");
-//                        insertDataSqlite(isFristLoad, hrorgsEntities, employeesEntities,
-//                                server_time);    //写入缓存
-//                        rl_empty.setVisibility(View.GONE);
-//                        ll_content.setVisibility(View.VISIBLE);
-//                        LoadRootHrorgFromServer();//取缓存
-//                    } else {
-//                        Log.i(TAG, "取缓存数据.....!");
-//                        LoadRootHrorgFromServer();//取缓存
-//                    }
-//                    reScrollView.onRefreshComplete();
-//                    progressDialog.dismiss();
+        public void onReceive(Context context, Intent intent) {
+            if ("home".equals(intent.getStringExtra("falg"))){
+                upDataFriend();
+                loadData();
 
             }
         }
     };
-    private boolean mNeedUpdate = true;
-    private Activity mActivity;
-    private DBManager manager;
-
     @Override
     public void onClick(View v) {
         switch (v.getId()) {
@@ -186,6 +161,8 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        inputFilter=new IntentFilter("com.app.home.update");
+        getActivity().registerReceiver(receiver,inputFilter);
         setHasOptionsMenu(true);
     }
 
@@ -196,7 +173,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
             ct = getActivity();
             initView();
         }
-//        getDataByDB();
+
     }
 
     private void getDataByDB(List<Friend> friend) {
@@ -229,7 +206,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         friend.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
         friend.setRemarkName(employee.getEM_NAME());//备注
         friend.setNickName(employee.getEM_NAME());//昵称
-        friend.setDescription("企业通讯录人员");
+//        friend.setDescription("企业通讯录人员");
         // timeSend作为取群聊离线消息的标志,所以要在这里设置一个初始值
         friend.setTimeSend(TimeUtils.sk_time_current_time());
         friend.setStatus(Friend.STATUS_UNKNOW);
@@ -756,6 +733,14 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         inflater.inflate(R.menu.menu_nearby, menu);
     }
 
+    @Override
+    public void onDestroy() {
+        Log.i("gongpengming","onDestroy");
+        getActivity().unregisterReceiver(receiver);
+
+        super.onDestroy();
+    }
+
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         if (item.getItemId() == R.id.search) {

+ 7 - 1
WeiChat/src/main/java/com/sk/weichat/ui/erp/net/ViewUtil.java

@@ -354,10 +354,15 @@ public class ViewUtil {
                 case Constants.SUCCESS_LOGIN:
                     LoginSucess(msg);
                     break;
-                case Constants.SUCCESS_ERP:
+                case Constants.SUCCESS_ERP://切换公司成功
+
                     String result = msg.getData().getString("result");
                     boolean success = JSON.parseObject(result).getBoolean("success");
                     if (success) {
+                        Intent intent = new Intent("com.app.home.update");
+                        intent.putExtra("falg", "home");
+                        ct.sendBroadcast(intent);
+                        Log.i("gongpengming","发送成功修改公司");
                         ChangeStatusERP(msg.getData().getString("result"));
                     } else {
                         String reason = JSON.parseObject(result).getString("reason");
@@ -365,6 +370,7 @@ public class ViewUtil {
                     }
                     break;
                 case Constants.SUCCESS_B2B:
+                    Log.i("logingongpengming","修改成功SUCCESS_B2B");
                     ChangeStatusB2B(msg.getData().getString("result"));
                     break;
                 case Constants.SocketTimeoutException:

+ 4 - 0
WeiChat/src/main/java/com/sk/weichat/ui/me/MeFragment.java

@@ -98,6 +98,7 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
                             });
                     mDialog.show();
                     mDialog.initViewData(mList);
+
                     break;
                 case 3://切换账套登录
                     Map<String, Object> results = FlexJsonUtil.fromJson(msg
@@ -111,10 +112,13 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
                         CommonUtil.setSharedPreferences(ct, "erp_master", master);
                         CommonUtil.setSharedPreferences(ct, "Master_ch", master_ch);
                         master_tv.setText(master_ch);
+
                         // 发送给主页刷新的广播
                         Intent intent = new Intent("com.app.home.update");
                         intent.putExtra("falg", "home");
+
                         ct.sendBroadcast(intent);
+                        Log.i("gongpengming","发送成功修改套件");
                     } else {
                         com.sk.weichat.ui.erp.net.ViewUtil.ToastMessage(ct, "账套切换失败!");
                     }

+ 15 - 0
WeiChat/src/main/java/com/sk/weichat/ui/message/MessageFragment.java

@@ -108,6 +108,18 @@ public class MessageFragment extends EasyFragment {
             }
         }
     };
+//    //接收修改公司广播
+//    private IntentFilter inputFilter;
+//    private BroadcastReceiver receiver=new BroadcastReceiver() {
+//        @Override
+//        public void onReceive(Context context, Intent intent) {
+//            if ("home".equals(intent.getStringExtra("falg"))){
+//                upDataFriend();
+//                loadData();
+//
+//            }
+//        }
+//    };
     private BaseActivity mActivity;
 
     public MessageFragment() {
@@ -125,6 +137,8 @@ public class MessageFragment extends EasyFragment {
         if (createView) {
             initView();
         }
+//        inputFilter=new IntentFilter("com.app.home.update");
+//        getActivity().registerReceiver(receiver,inputFilter);
     }
 
     @Override
@@ -137,6 +151,7 @@ public class MessageFragment extends EasyFragment {
     public void onDestroy() {
         super.onDestroy();
         getActivity().unregisterReceiver(mUpdateReceiver);
+//        getActivity().unregisterReceiver(receiver);
     }
 
     @Override