Pārlūkot izejas kodu

移动语音搜索框

Bitliker 9 gadi atpakaļ
vecāks
revīzija
22a2cca610

+ 46 - 56
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/SelectCollisionPresenter.java

@@ -2,7 +2,6 @@ package com.xzjmyk.pm.activity.ui.erp.presenter;
 
 import android.app.Activity;
 import android.content.Intent;
-import android.os.Looper;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.text.Editable;
@@ -11,26 +10,25 @@ import android.util.Log;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.common.LogUtil;
+import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.common.thread.ThreadPool;
+import com.core.base.BaseActivity;
+import com.core.dao.DBManager;
+import com.core.model.EmployeesEntity;
+import com.core.net.http.http.OAHttpHelper;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.oa.SelectEmUser;
 import com.xzjmyk.pm.activity.sortlist.BaseComparator;
 import com.xzjmyk.pm.activity.sortlist.BaseSortModel;
 import com.xzjmyk.pm.activity.sortlist.PingYinUtil;
-import com.core.base.BaseActivity;
-import com.core.dao.DBManager;
 import com.xzjmyk.pm.activity.ui.erp.db.dao.ContactsDao;
-import com.core.model.EmployeesEntity;
 import com.xzjmyk.pm.activity.ui.erp.entity.SelectCollisionTurnBean;
 import com.xzjmyk.pm.activity.ui.erp.model.contacts.ContactsModel;
 import com.xzjmyk.pm.activity.ui.erp.presenter.imp.ISelectActiveView;
-import com.xzjmyk.pm.activity.util.oa.CommonUtil;
-import com.common.data.ListUtils;
 import com.xzjmyk.pm.activity.util.oa.CommonInterface;
+import com.xzjmyk.pm.activity.util.oa.CommonUtil;
 import com.xzjmyk.pm.activity.util.oa.CompanyHandlerInfoUtil;
-import com.core.net.http.http.OAHttpHelper;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -50,7 +48,7 @@ public class SelectCollisionPresenter {
     public SelectCollisionPresenter(ISelectActiveView iSelectActiveView) {
         if (iSelectActiveView == null) new NullPointerException("iSelectActiveView is Null");
         this.iSelectActiveView = iSelectActiveView;
-        this.mActivity= (Activity) iSelectActiveView;
+        this.mActivity = (Activity) iSelectActiveView;
     }
 
     public void start(SelectCollisionTurnBean selectBean) {
@@ -68,15 +66,14 @@ public class SelectCollisionPresenter {
         if (!StringUtil.isEmpty(selectBean.getSureText()))
             iSelectActiveView.showSureText(selectBean.getSureText());
         if (ListUtils.isEmpty(selects)) {
-            if(selectBean.getTitle().equals(StringUtil.getMessage(R.string.select_share_friend))){//分享好友
+            if (selectBean.getTitle().equals(StringUtil.getMessage(R.string.select_share_friend))) {//分享好友
                 //企业架构+UU好友
                 loadShareFriendInThread();
-            }else{
+            } else {
                 //企业架构
                 loadDataInThread();
             }
-        }
-        else {
+        } else {
             setUser2Sort(selects, true);
         }
     }
@@ -150,19 +147,19 @@ public class SelectCollisionPresenter {
         }
         return chche;
     }
-    
-    
-    private void loadShareFriendInThread(){
+
+
+    private void loadShareFriendInThread() {
         iSelectActiveView.showLoading();
         ThreadPool.getThreadPool().addTask(new Runnable() {
             @Override
             public void run() {
-              List<ContactsModel> models=  ContactsDao.getInstance().findByShare();
-              if (!ListUtils.isEmpty(models)){
-                  handlerLoadShareData(models);
-              }else{
-                  //联网加载
-              }
+                List<ContactsModel> models = ContactsDao.getInstance().findByShare();
+                if (!ListUtils.isEmpty(models)) {
+                    handlerLoadShareData(models);
+                } else {
+                    //联网加载
+                }
             }
         });
     }
@@ -174,20 +171,18 @@ public class SelectCollisionPresenter {
             @Override
             public void run() {
                 try {
-                    LogUtil.d("Presenter","是否是主綫程:"+isMainThread());
                     final List<EmployeesEntity> employees = getEmListByDB();
                     OAHttpHelper.getInstance().post(new Runnable() {
                         @Override
                         public void run() {
-                        ThreadPool.getThreadPool().addTask(new Runnable() {
-                            @Override
-                            public void run() {
-                                LogUtil.d("Presenter","是否是主綫程:"+isMainThread());
-                                if (ListUtils.isEmpty(employees))
-                                    loadDataByNet();
-                                else handlerLoadData(employees);
-                            }
-                        });
+                            ThreadPool.getThreadPool().addTask(new Runnable() {
+                                @Override
+                                public void run() {
+                                    if (ListUtils.isEmpty(employees))
+                                        loadDataByNet();
+                                    else handlerLoadData(employees);
+                                }
+                            });
                         }
                     });
                 } catch (Exception e) {
@@ -233,27 +228,22 @@ public class SelectCollisionPresenter {
             iSelectActiveView.showToast(message, R.color.load_warning);
     }
 
-    
-    private void handlerLoadShareData(List<ContactsModel> employees){
+
+    private void handlerLoadShareData(List<ContactsModel> employees) {
         if (ListUtils.isEmpty(employees)) return;//TODO 请求下来时候数据为空
         List<SelectEmUser> users = new ArrayList<>();
         SelectEmUser user = null;
         for (ContactsModel e : employees) {
             user = new SelectEmUser();
-            //user.setDefaultorid(e.getEm_defaultorid());
-           // user.setDepart(e.getEM_DEPART());
             user.setEmName(e.getName());
             user.setImId(Integer.valueOf(e.getImid()));
-           // user.setEmCode(e.getEM_CODE());
-           // user.setPosition(e.getEM_POSITION());
-           // user.setEmId(e.getEM_ID());
             users.add(user);
         }
         setUser2Sort(users, false);
     }
-    
+
     private void handlerLoadData(List<EmployeesEntity> employees) {
-       
+
         if (ListUtils.isEmpty(employees)) return;//TODO 请求下来时候数据为空
         SelectEmUser user = null;
         List<SelectEmUser> users = new ArrayList<>();
@@ -270,9 +260,11 @@ public class SelectCollisionPresenter {
         }
         setUser2Sort(users, false);
     }
+
     int numSelect;
+
     private void setUser2Sort(List<SelectEmUser> list, boolean isClickAll) {
-         numSelect = 0;
+        numSelect = 0;
         for (SelectEmUser e : list) {
             BaseSortModel<SelectEmUser> mode = new BaseSortModel<>();
             if (isSelected(isClickAll, selectBean.getSelectCode(), e.getEmCode())) {
@@ -292,21 +284,21 @@ public class SelectCollisionPresenter {
         if (!selectBean.getTitle().equals(mActivity.getString(R.string.select_share_friend))) {
             Collections.sort(allList, mBaseComparator);
         }
-      
+
         //计算全部数据完成
-       OAHttpHelper.getInstance().post(new Runnable() {
-           @Override
-           public void run() {
-               iSelectActiveView.dimssLoading();
-               iSelectActiveView.showNumber(numSelect);
-               iSelectActiveView.isAllClicked(numSelect == allList.size());
-               iSelectActiveView.showModel(allList);
-           }
-       });
+        OAHttpHelper.getInstance().post(new Runnable() {
+            @Override
+            public void run() {
+                iSelectActiveView.dimssLoading();
+                iSelectActiveView.showNumber(numSelect);
+                iSelectActiveView.isAllClicked(numSelect == allList.size());
+                iSelectActiveView.showModel(allList);
+            }
+        });
     }
 
     private boolean isSelected(boolean isClickAll, String SelectCode, String emCode) {
-        return !isClickAll && !StringUtil.isEmpty(SelectCode) && StringUtil.isInclude(SelectCode , emCode);
+        return !isClickAll && !StringUtil.isEmpty(SelectCode) && StringUtil.isInclude(SelectCode, emCode);
     }
 
     /**
@@ -343,7 +335,5 @@ public class SelectCollisionPresenter {
         return StringUtil.isEmpty(str) ? "" : str;
     }
 
-    public boolean isMainThread() {
-        return Looper.getMainLooper().getThread() == Thread.currentThread();
-    }
+
 }

+ 2 - 2
app_core/common/src/main/java/com/core/dao/DBManager.java

@@ -7,11 +7,11 @@ import android.database.sqlite.SQLiteStatement;
 import android.util.Log;
 
 import com.common.LogUtil;
-import com.common.R;
 import com.common.data.StringUtil;
 import com.core.app.MyApplication;
 import com.core.db.DatabaseManager;
 import com.core.model.B2BMsg;
+import com.common.R;
 import com.core.model.EmployeesEntity;
 import com.core.model.Hrorgs;
 import com.core.model.HrorgsEntity;
@@ -257,7 +257,7 @@ public class DBManager {
     }
 
     private boolean checkDbObject() {
-        if (db==null)db=DatabaseManager.getInstance().openDatabase();
+        if (db == null) db = DatabaseManager.getInstance().openDatabase();
         if (!db.isOpen()) {
             return true;
         } else {

+ 62 - 16
app_modular/appcontact/src/main/java/com/uas/appcontact/manager/ContactsManager.java

@@ -2,6 +2,7 @@ package com.uas.appcontact.manager;
 
 
 import android.os.Bundle;
+import android.os.Looper;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -42,14 +43,34 @@ public class ContactsManager implements OnHttpResultListener {
     private final int LOAD_COMPANY_WHAT = 1;
 
 
-    private void loadContactByDb() {
-
-
+    //获取通讯录数据。当数据库不存在时候,获取网络数据
+    public void loadContact(final OnEmployListener listener) throws Exception {
+        ThreadUtil.getInstance().addLoopTask(new Runnable() {
+            @Override
+            public void run() {
+                DBManager manager = new DBManager();
+                String master = CommonUtil.getMaster();
+                List<EmployeesEntity> emList = null;
+                if (!StringUtil.isEmpty(master)) {
+                    emList = manager.select_getEmployee(new String[]{master}, "whichsys=?");
+                }
+                manager.closeDB();
+                if (ListUtils.isEmpty(emList)) {
+                    OAHttpHelper.getInstance().post(new Runnable() {
+                        @Override
+                        public void run() {
+                            loadContactByNet(listener);
+                        }
+                    });
+                } else {
+                    listener.callback(emList);
+                }
+            }
+        });
     }
 
-
-    /*获取企业架构数据*/
-    private void loadContactByNet() {
+    /*获取网络企业架构数据*/
+    public void loadContactByNet(final OnEmployListener listener) {
         String master = CommonUtil.getMaster();
         Map<String, Object> param = new HashMap<>();
         param.put("master", master);
@@ -57,6 +78,7 @@ public class ContactsManager implements OnHttpResultListener {
         Bundle bundle = new Bundle();
         boolean isB2b = ApiUtils.getApiModel() instanceof ApiPlatform;
         bundle.putBoolean("isB2b", isB2b);
+        bundle.putSerializable("listener", listener);
         String url = isB2b ? ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().getUsersInfo : "mobile/getAllHrorgEmps.action";
         Request request = new Request.Bulider()
                 .setWhat(LOAD_COMPANY_WHAT)
@@ -69,16 +91,26 @@ public class ContactsManager implements OnHttpResultListener {
     }
 
 
+
+
+
+
+
     @Override
     public void result(int what, boolean isJSON, String message, Bundle bundle) {
         if (!isJSON) return;
         switch (what) {
             case LOAD_COMPANY_WHAT:
                 boolean isB2b = false;
+                OnEmployListener listener = null;
                 if (bundle != null) {
                     isB2b = bundle.getBoolean("isB2b", false);
+                    Serializable serializable = bundle.getSerializable("listener");
+                    if (serializable instanceof OnEmployListener) {
+                        listener = (OnEmployListener) serializable;
+                    }
                 }
-                handEmployees(isB2b, JSON.parseObject(message));
+                handEmployees(isB2b, JSON.parseObject(message), listener);
                 break;
         }
     }
@@ -89,22 +121,19 @@ public class ContactsManager implements OnHttpResultListener {
     }
 
 
-    private void handEmployees(final boolean isB2b, final JSONObject object) {
+    private void handEmployees(final boolean isB2b, final JSONObject object, final OnEmployListener listener) {
         ThreadUtil.getInstance().addLoopTask(new Runnable() {
             @Override
             public void run() {
                 try {
-                    List<EmployeesEntity> employees = isB2b ? getB2BEmployees(object) : getERPEmployees(object);
-                    //TODO 从返回数据中解析出企业对象并保存到数据库中后。。。。
-
-
+                    final List<EmployeesEntity> employees = isB2b ? getB2BEmployees(object) : getERPEmployees(object);
+                    setEmployListener(employees, listener);
                 } catch (Exception e) {
+                    setEmployListener(null, listener);
                     e.printStackTrace();
                 }
-
             }
         });
-
     }
 
     public static List<EmployeesEntity> getB2BEmployees(JSONObject object) throws Exception {
@@ -256,12 +285,29 @@ public class ContactsManager implements OnHttpResultListener {
     }
 
 
+    private void setEmployListener(final List<EmployeesEntity> entities, final OnEmployListener listener) {
+        if (Looper.myLooper() == Looper.getMainLooper()) {
+            if (listener != null) {
+                listener.callback(entities);
+            }
+        } else {
+            OAHttpHelper.getInstance().post(new Runnable() {
+                @Override
+                public void run() {
+                    if (listener != null) {
+                        listener.callback(entities);
+                    }
+                }
+            });
+        }
+    }
+
     //接口
-    public interface OnEmployListener extends Serializable{
+    public interface OnEmployListener extends Serializable {
         void callback(List<EmployeesEntity> employees);
     }
 
-    public interface OnFriendListener  extends Serializable {
+    public interface OnFriendListener extends Serializable {
         void callback(List<Friend> employees);
     }
 }