Browse Source

合并代码,ContactsActivity 代码没动,采用网上分支
2.处理消息首页的闪烁问题

Bitliker 8 years ago
parent
commit
b1e36b788f
22 changed files with 1444 additions and 971 deletions
  1. 7 5
      WeiChat/src/main/AndroidManifest.xml
  2. 18 8
      app_core/common/src/main/java/com/core/app/MyApplication.java
  3. 1 1
      app_core/common/src/main/java/com/core/widget/view/selectcalendar/SelectCalendarActivity.java
  4. 25 1
      app_core/common/src/main/res/layout/bsetting_activity.xml
  5. 4 4
      app_core/common/src/main/res/layout/image_setting_activity.xml
  6. 39 5
      app_core/common/src/main/res/layout/person_setting_activity.xml
  7. 47 41
      app_modular/appbooking/src/main/java/com/modular/booking/activity/business/BBookingAddActivity.java
  8. 5 1
      app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServiceAddActivity.java
  9. 848 855
      app_modular/appcontact/src/main/java/com/uas/appcontact/ui/activity/ContactsActivity.java
  10. 3 6
      app_modular/appme/src/main/AndroidManifest.xml
  11. 3 1
      app_modular/appme/src/main/java/com/uas/appme/settings/Constant/Constant.java
  12. 4 0
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BComSetCompanyRestActivity.java
  13. 4 0
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BComSetEmployeeRestActivity.java
  14. 3 0
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BSetComRestListActivity.java
  15. 3 0
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BSettingActivity.java
  16. 33 9
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BSettingLocationActivity.java
  17. 6 8
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/ImageSettingActivity.java
  18. 261 19
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/PersonSettingActivity.java
  19. 1 1
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/PersonSettingListActivity.java
  20. 7 4
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/SettingActivity.java
  21. 120 0
      app_modular/appme/src/main/res/layout/com_location_input_item.xml
  22. 2 2
      version.gradle

+ 7 - 5
WeiChat/src/main/AndroidManifest.xml

@@ -258,7 +258,7 @@
         <activity android:name=".ui.erp.activity.NewsTwoActivity" />
         <activity android:name=".ui.erp.activity.NoticesActivity" />
         <activity android:name=".ui.erp.activity.InformActivity" />
-        <activity android:name=".ui.platform.task.TaskActivity" >
+        <activity android:name=".ui.platform.task.TaskActivity">
             <intent-filter>
                 <action android:name="com.modular.task.TaskActivity" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -918,7 +918,7 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-        <activity android:name=".ui.platform.task.TaskB2BActivity" >
+        <activity android:name=".ui.platform.task.TaskB2BActivity">
             <intent-filter>
                 <action android:name="com.modular.task.TaskB2BActivity" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -1046,15 +1046,17 @@
         <activity android:name=".ui.erp.activity.datainquiry.activity.ReportQuerySearchActivity" />
 
         <activity android:name="com.core.widget.view.selectcalendar.SelectCalendarActivity" />
-        <activity android:name=".ui.erp.activity.oa.NavigationActivity"
+        <activity
+            android:name=".ui.erp.activity.oa.NavigationActivity"
             android:label="@string/navigation">
             <intent-filter>
                 <action android:name="com.modular.appworks.NavigationActivity" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-        <activity android:name="com.modular.appmessages.activity.UUSportActivity"
-            android:label="@string/set_sport"/>
+        <activity
+            android:name="com.modular.appmessages.activity.UUSportActivity"
+            android:label="@string/set_sport" />
 
     </application>
 

+ 18 - 8
app_core/common/src/main/java/com/core/app/MyApplication.java

@@ -220,7 +220,7 @@ public class MyApplication extends BaseApplication {
 			mNetWorkObservable.release();
 		}
 		// 清除图片加载
-		ImageLoader.getInstance().destroy();
+//		ImageLoader.getInstance().destroy();
 		releaseFastVolley();
 		android.os.Process.killProcess(android.os.Process.myPid());
 	}
@@ -229,10 +229,7 @@ public class MyApplication extends BaseApplication {
 		DatabaseManager.initializeInstance(DBOpenHelper.getInstance(this));
 	}
 
-	/**
-	 * @desc:初始化分享组件
-	 * @author:Arison on 2016/9/29
-	 */
+	
 	public void initShareAPI() {
 		PlatformConfig.setWeixin("wx2539cc96bf158e00", "b057aa3e807ba7c505a2f03cc541bbf6");
 		PlatformConfig.setSinaWeibo("493318722", "7def652c3683603b08bab87d34b1f944");
@@ -248,9 +245,7 @@ public class MyApplication extends BaseApplication {
 		}
 	}
 
-	/**
-	 * 为HttpUtils配置参数
-	 */
+
 	private void configHttpUtils() {
 		mHttpUtils.configRequestThreadPoolSize(4);
 		mHttpUtils.configRequestRetryCount(3);
@@ -357,6 +352,21 @@ public class MyApplication extends BaseApplication {
 					.threadPoolSize(4)
 					.build();
 			ImageLoader.getInstance().init(config);
+		}else{
+			//getCacheDir()
+			ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this).defaultDisplayImageOptions(mNormalImageOptions)
+					// .denyCacheImageMultipleSizesInMemory()
+					.discCache(new TotalSizeLimitedDiscCache(getCacheDir(), 50 * 1024 * 1024))
+					// 最多缓存50M的图片
+					.discCacheFileNameGenerator(new Md5FileNameGenerator())
+					.memoryCache(memoryCache)
+					.tasksProcessingOrder(QueueProcessingType.LIFO)
+					.threadPriority(Thread.NORM_PRIORITY - 2)
+					.imageDownloader(new AuthImageDownloader(this))
+					.denyCacheImageMultipleSizesInMemory()
+					.threadPoolSize(4)
+					.build();
+			ImageLoader.getInstance().init(config);
 		}
 	
 		

+ 1 - 1
app_core/common/src/main/java/com/core/widget/view/selectcalendar/SelectCalendarActivity.java

@@ -1344,7 +1344,7 @@ public class SelectCalendarActivity extends BaseActivity implements View.OnClick
         }
         LogUtil.d("HttpLogs", "businessType:" + businessType);
         //如果有人,就是人的id 。如果没有人,就是服务项目名称
-        LogUtil.d("HttpLogs", "serviceId:" + serviceId);
+        LogUtil.d("HttpLogs", "commonid:" + serviceId);
         LogUtil.d("HttpLogs", "ym:" + ym);
         LogUtil.d("HttpLogs", "companyId:" + companyId);
         HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL).isDebug(true).build();

+ 25 - 1
app_core/common/src/main/res/layout/bsetting_activity.xml

@@ -260,6 +260,30 @@
             android:layout_centerVertical="true"
             android:background="@drawable/oa_next"
             android:contentDescription="@string/app_name" />
-        Business hours
+    </RelativeLayout>
+    <RelativeLayout
+        android:id="@+id/business_introduction_rl"
+        style="@style/IMTbleLine"
+        android:background="@drawable/selector_me_menu_item_bg">
+        <View
+            android:layout_alignParentBottom="true"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/line"
+            android:background="@color/item_line" />
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:gravity="center"
+            android:text="商家详情"
+            android:textColor="@color/black"
+            android:textSize="14sp" />
+        <ImageView
+            android:layout_width="@dimen/next_width"
+            android:layout_height="@dimen/next_height"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:background="@drawable/oa_next"
+            android:contentDescription="@string/app_name" />
     </RelativeLayout>
 </LinearLayout>

+ 4 - 4
app_core/common/src/main/res/layout/image_setting_activity.xml

@@ -8,7 +8,7 @@
         android:layout_width="200dp"
         android:layout_height="200dp"
         android:scaleType="fitXY"
-        android:src="@drawable/common_header_boy"
+        android:src="@drawable/add_picture"
         android:layout_centerInParent="true"
         />
 
@@ -20,9 +20,9 @@
         android:padding="10dp"
         android:textColor="@color/blue"
         android:textSize="18sp"
-        android:layout_above="@+id/image_im"
-        android:layout_centerHorizontal="true"
-        android:layout_marginBottom="20dp"/>
+        android:layout_marginBottom="143dp"
+        android:layout_alignParentBottom="true"
+        android:layout_centerHorizontal="true" />
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"

+ 39 - 5
app_core/common/src/main/res/layout/person_setting_activity.xml

@@ -180,7 +180,7 @@
                 android:background="@color/item_line" />
             <RelativeLayout
                 style="@style/IMTbleLine2"
-                android:minHeight="40dp"
+                android:layout_height="50dp"
                 android:background="@color/white">
                 <TextView
                     android:id="@+id/email_tv"
@@ -199,20 +199,54 @@
                     android:layout_alignParentRight="true"
                     android:layout_centerVertical="true"
                     android:background="@null"
-                    android:layout_toRightOf="@+id/email_tv"
                     android:hint="@string/common_input1"
                     android:textSize="15sp"
+                    android:inputType="number"
                     android:gravity="center_vertical|right"
+                    android:layout_marginLeft="5dp"
                     whatever:testType="regexp"
                     whatever:customRegexp="^([\\w-])+(\\.\\w+)*@([\\w-])+((\\.\\w{2,3}){1,3})$"
-                    whatever:testErrorString="请输入正确的邮箱格式"
-                    android:maxLength="20"
-                    android:layout_marginLeft="10dp" />
+                    whatever:testErrorString="请输入正确的邮箱格式"/>
             </RelativeLayout>
             <View
                 android:layout_width="match_parent"
                 android:layout_height="2px"
                 android:background="@color/item_line" />
+
+
+            <RelativeLayout
+                style="@style/IMTbleLine2"
+                android:minHeight="150dp"
+                android:layout_height="150dp"
+                android:background="@color/white"
+                android:layout_marginTop="10dp">
+                <TextView
+                    android:id="@+id/image_tv"
+                    style="@style/form_relative_left_text"
+                    android:text="头像"
+                    android:layout_marginLeft="0dp"
+                    android:textColor="@color/text_main"
+                    android:textSize="15sp"
+                    android:layout_centerVertical="false"
+                    />
+                <TextView
+                    android:id="@+id/image_tv_"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="点击更换照片"
+                    android:padding="10dp"
+                    android:textColor="@color/blue"
+                    android:textSize="18sp"
+                    android:layout_centerHorizontal="true"
+                    android:layout_marginBottom="20dp"/>
+                <ImageView
+                    android:id="@+id/image_im"
+                    android:layout_below="@+id/image_tv_"
+                    android:layout_width="100dp"
+                    android:layout_height="100dp"
+                    android:src="@drawable/add_picture"
+                    android:layout_centerInParent="true"/>
+            </RelativeLayout>
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"

+ 47 - 41
app_modular/appbooking/src/main/java/com/modular/booking/activity/business/BBookingAddActivity.java

@@ -208,7 +208,7 @@ public class BBookingAddActivity extends OABaseActivity implements View.OnClickL
                 intent.putExtra("type", 1);
                 intent.putExtra("title", getString(R.string.booking_object_name));
                 intent.putExtra("isSingleSelect", false);
-                intent.putParcelableArrayListExtra("models",models);
+                intent.putParcelableArrayListExtra("models",models);//状态回传
                 startActivityForResult(intent, 0x01);
             }
         } else if (i == R.id.rl_company) {
@@ -240,11 +240,13 @@ public class BBookingAddActivity extends OABaseActivity implements View.OnClickL
                         phones.append(models.get(i).getPhone() + ",");
                     }
                 }
+                //根据手机号进行公司查询
                 comboxGetCompany(phones.toString());
                 if (StringUtil.isEmpty(tvBookObject.getText().toString())){
                     tvBookObject.setText(names.toString());
                 }else{
-                    tvBookObject.setText(tvBookObject.getText().toString()+","+names.toString());
+                    tvBookObject.setText(names.toString());
+                  //  tvBookObject.setText(tvBookObject.getText().toString()+","+names.toString());
                 }
                 break;
             case 0x02://企业
@@ -328,7 +330,7 @@ public class BBookingAddActivity extends OABaseActivity implements View.OnClickL
             bt_commit.setEnabled(true);
             return;
         }
-        //ab_bcompany
+        //前面四个值是连带出来的
         String map = "{" +
                 "\"ab_bman\":\"" + tvBookObject.getText().toString() + "\"," +
                 "\"ab_bmanid\":\"" + imId + "\"," +
@@ -446,48 +448,52 @@ public class BBookingAddActivity extends OABaseActivity implements View.OnClickL
                 .build(), new ResultSubscriber<>(new ResultListener<Object>() {
             @Override
             public void onResponse(Object o) {
-                LogUtil.d("ResponseText", "o:" + o.toString());
-                if (JSONUtil.validate(o.toString())) {
-                    JSONArray datas = JSON.parseObject(o.toString()).getJSONArray("listdata");
-                    if (!ListUtils.isEmpty(datas)) {
-                        StringBuilder companyBuilder = new StringBuilder("");
-                        StringBuilder imidBuilder = new StringBuilder("");
-                        StringBuilder phoneBuilder = new StringBuilder("");
-                        StringBuilder nameBuilder = new StringBuilder("");
-                        for (int i = 0; i < datas.size(); i++) {
-                            JSONObject object = datas.getJSONObject(i);
-                            if (i == datas.size() - 1) {
-                                companyBuilder.append(object.getString("company"));
-                                imidBuilder.append(StringUtil.isEmpty(object.getString("imid"))==true?"0":object.getString("imid"));
-                                phoneBuilder.append(object.getString("usertel"));
-                                nameBuilder.append(object.getString("username"));
-                            } else {
-                                companyBuilder.append(object.getString("company") + ",");
-                                if(StringUtil.isEmpty(object.getString("imid"))){
-                                    imidBuilder.append("0" + ",");
-                                }else{
-                                    imidBuilder.append(object.getString("imid") + ",");
+                try {
+                    LogUtil.d("ResponseText", "o:" + o.toString());
+                    if (JSONUtil.validate(o.toString())) {
+                        JSONArray datas = JSON.parseObject(o.toString()).getJSONArray("listdata");
+                        if (!ListUtils.isEmpty(datas)) {
+                            StringBuilder companyBuilder = new StringBuilder("");
+                            StringBuilder imidBuilder = new StringBuilder("");
+                            StringBuilder phoneBuilder = new StringBuilder("");
+                            StringBuilder nameBuilder = new StringBuilder("");
+                            for (int i = 0; i < datas.size(); i++) {
+                                JSONObject object = datas.getJSONObject(i);
+                                if (i == datas.size() - 1) {
+                                    companyBuilder.append(object.getString("company"));
+                                    imidBuilder.append(StringUtil.isEmpty(object.getString("imid"))==true?"0":object.getString("imid"));
+                                    phoneBuilder.append(object.getString("usertel"));
+                                    nameBuilder.append(object.getString("username"));
+                                } else {
+                                    companyBuilder.append(object.getString("company") + ",");
+                                    if(StringUtil.isEmpty(object.getString("imid"))){
+                                        imidBuilder.append("0" + ",");
+                                    }else{
+                                        imidBuilder.append(object.getString("imid") + ",");
+                                    }
+                                    phoneBuilder.append(object.getString("usertel") + ",");
+                                    nameBuilder.append(object.getString("username") + ",");
                                 }
-                                phoneBuilder.append(object.getString("usertel") + ",");
-                                nameBuilder.append(object.getString("username") + ",");
                             }
+                            
+//                            if (StringUtil.isEmpty(tv_book_company.getText().toString())){
+                                tv_book_company.setText(companyBuilder.toString());
+                                imId = imidBuilder.toString();
+                                phone = phoneBuilder.toString();
+//                            }else{
+//                                tv_book_company.setText(tv_book_company.getText().toString()+","+companyBuilder.toString());
+//                                imId =imId+","+ imidBuilder.toString();
+//                                phone = phone+","+phoneBuilder.toString();
+//                                imId= imId.replace("null","");
+//                                phone = phone.replace("null","");
+//                            }
+                            
+         
                         }
-                        
-                        if (StringUtil.isEmpty(tv_book_company.getText().toString())){
-                            tv_book_company.setText(companyBuilder.toString());
-                            imId = imidBuilder.toString();
-                            phone = phoneBuilder.toString();
-                        }else{
-                            tv_book_company.setText(tv_book_company.getText().toString()+","+companyBuilder.toString());
-                            imId =imId+","+ imidBuilder.toString();
-                            phone = phone+","+phoneBuilder.toString();
-                            imId= imId.replace("null","");
-                            phone = phone.replace("null","");
-                        }
-                        
-     
+    
                     }
-
+                } catch (Exception e) {
+                    e.printStackTrace();
                 }
             }
         }));

+ 5 - 1
app_modular/appbooking/src/main/java/com/modular/booking/activity/services/BServiceAddActivity.java

@@ -298,7 +298,11 @@ public class BServiceAddActivity extends OABaseActivity implements View.OnClickL
             //TODO  2.需要传进去商家的id或是ktv包厢的id,在里面请求,判断商家繁忙时刻 5.11、获取商家服务繁忙时间段
             String serviceParam = null;
             if (!StringUtil.isEmpty(sb_userid)||"10001".equals(model.getIndustrycode())) {
-                serviceParam = serviceId;
+                if ("10001".equals(model.getIndustrycode())) {
+                    serviceParam = serviceId;
+                }else{
+                    serviceParam=sb_userid;
+                }
             } else {
                 serviceParam = serviceName;
             }

+ 848 - 855
app_modular/appcontact/src/main/java/com/uas/appcontact/ui/activity/ContactsActivity.java

@@ -8,7 +8,6 @@ import android.content.pm.PackageManager;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
-import android.os.Looper;
 import android.os.Message;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
@@ -34,7 +33,6 @@ import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.common.system.PermissionUtil;
-import com.common.system.SystemUtil;
 import com.common.thread.ThreadPool;
 import com.core.api.wxapi.ApiPlatform;
 import com.core.api.wxapi.ApiUtils;
@@ -51,6 +49,7 @@ import com.core.model.User;
 import com.core.model.XmppMessage;
 import com.core.net.http.ViewUtil;
 import com.core.net.http.http.OAHttpHelper;
+import com.core.net.utils.NetUtils;
 import com.core.net.volley.ArrayResult;
 import com.core.net.volley.ObjectResult;
 import com.core.net.volley.Result;
@@ -90,867 +89,861 @@ import java.util.Map;
 
 public class ContactsActivity extends OABaseActivity implements ContactsAdapter.ResultItemsInface {
 
-	private PullToRefreshListView mlist;
-	private VoiceSearchView voiceSearchView;
-	private RelativeLayout select_rl;
-	private TextView mumber_tv;
-	private CheckBox all_sure_cb;
-	private boolean isClickCb = true;
-	private boolean mBind;
-	private CoreService mXmppService;
-	private ContactsAdapter adapter;
-	private ContactsDao contactsDao;
-	private EmptyLayout emptyLayout;
-	private List<ContactsModel> models = new ArrayList<>();
-	private List<ContactsModel> tmodels = new ArrayList<>();
-	private int type = 0;//0默认情况。1 其它界面调用
-	private boolean isSingleSelect = true;//true 单选  false 多选
-	private String searchKey;
-	private int allSelect = 0;
-
-	private LinearLayout include_tag;
-	private ArrayList<ContactsModel> stateModels = new ArrayList<>();//记住状态值
-
-
-	@Override
-	protected void onCreate(Bundle savedInstanceState) {
-		super.onCreate(savedInstanceState);
-		setContentView(R.layout.activity_contacts);
-		ViewUtils.inject(this);
-		contactsDao = ContactsDao.getInstance();
-		initView();
-		initData();
-	}
-
-	private ServiceConnection mServiceConnection = new ServiceConnection() {
-		@Override
-		public void onServiceDisconnected(ComponentName name) {
-			LogUtil.i("onServiceDisconnected");
-			mXmppService = null;
-		}
-
-		@Override
-		public void onServiceConnected(ComponentName name, IBinder service) {
-			mXmppService = ((CoreService.CoreServiceBinder) service).getService();
-			LogUtil.i("onServiceConnected");
-			LogUtil.i("mXmppService=" + (mXmppService == null));
-		}
-	};
-
-	private void initView() {
-		mlist = (PullToRefreshListView) findViewById(R.id.mList);
-		all_sure_cb = (CheckBox) findViewById(R.id.all_sure_cb);
-		mumber_tv = (TextView) findViewById(R.id.mumber_tv);
-		include_tag = (LinearLayout) findViewById(R.id.include_tag);
-		select_rl = (RelativeLayout) findViewById(R.id.select_rl);
-		voiceSearchView = (VoiceSearchView) findViewById(R.id.voiceSearchView);
-		if (getIntent() != null) {
-			type = getIntent().getIntExtra("type", 0);
-			String title = getIntent().getStringExtra("title");
-			isSingleSelect = getIntent().getBooleanExtra("isSingleSelect", true);
-			stateModels = getIntent().getParcelableArrayListExtra("models");
-			if (isSingleSelect) {
-				select_rl.setVisibility(View.GONE);
-			} else {
-				select_rl.setVisibility(View.VISIBLE);
-			}
-			if (!StringUtil.isEmpty(title)) {
-				getSupportActionBar().setTitle(title);
-			} else {
-				getSupportActionBar().setTitle(getString(R.string.common_Contact_person));
-			}
-		}
-		//设置为空显示列表
-		emptyLayout = new EmptyLayout(ct, mlist.getRefreshableView());
-		emptyLayout.setShowLoadingButton(false);
-		emptyLayout.setShowEmptyButton(false);
-		emptyLayout.setShowErrorButton(false);
+    private PullToRefreshListView mlist;
+    private VoiceSearchView voiceSearchView;
+    private RelativeLayout select_rl;
+    private TextView mumber_tv;
+    private CheckBox all_sure_cb;
+    private boolean isClickCb = true;
+    private boolean mBind;
+    private CoreService mXmppService;
+    private ContactsAdapter adapter;
+    private ContactsDao contactsDao;
+    private EmptyLayout emptyLayout;
+    private List<ContactsModel> models = new ArrayList<>();
+    private List<ContactsModel> tmodels = new ArrayList<>();
+    private int type = 0;//0默认情况。1 其它界面调用
+    private boolean isSingleSelect = true;//true 单选  false 多选
+    private String searchKey;
+    private int allSelect = 0;
+
+    private LinearLayout include_tag;
+    private ArrayList<ContactsModel> stateModels= new ArrayList<>();//记住状态值
+
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_contacts);
+        ViewUtils.inject(this);
+        contactsDao = ContactsDao.getInstance();
+        initView();
+        initData();
+    }
+
+    private ServiceConnection mServiceConnection = new ServiceConnection() {
+        @Override
+        public void onServiceDisconnected(ComponentName name) {
+            LogUtil.i("onServiceDisconnected");
+            mXmppService = null;
+        }
+
+        @Override
+        public void onServiceConnected(ComponentName name, IBinder service) {
+            mXmppService = ((CoreService.CoreServiceBinder) service).getService();
+            LogUtil.i("onServiceConnected");
+            LogUtil.i("mXmppService=" + (mXmppService == null));
+        }
+    };
+
+    private void initView() {
+        mlist = (PullToRefreshListView) findViewById(R.id.mList);
+        all_sure_cb = (CheckBox) findViewById(R.id.all_sure_cb);
+        mumber_tv = (TextView) findViewById(R.id.mumber_tv);
+        include_tag = (LinearLayout) findViewById(R.id.include_tag);
+        select_rl = (RelativeLayout) findViewById(R.id.select_rl);
+        voiceSearchView = (VoiceSearchView) findViewById(R.id.voiceSearchView);
+        if (getIntent() != null) {
+            type = getIntent().getIntExtra("type", 0);
+            String title = getIntent().getStringExtra("title");
+            isSingleSelect = getIntent().getBooleanExtra("isSingleSelect", true);
+            stateModels=getIntent().getParcelableArrayListExtra("models");
+            if (isSingleSelect) {
+                select_rl.setVisibility(View.GONE);
+            } else {
+                select_rl.setVisibility(View.VISIBLE);
+            }
+            if (!StringUtil.isEmpty(title)) {
+                getSupportActionBar().setTitle(title);
+            } else {
+                getSupportActionBar().setTitle(getString(R.string.common_Contact_person));
+            }
+        }
+        //设置为空显示列表
+        emptyLayout = new EmptyLayout(ct, mlist.getRefreshableView());
+        emptyLayout.setShowLoadingButton(false);
+        emptyLayout.setShowEmptyButton(false);
+        emptyLayout.setShowErrorButton(false);
 //        emptyLayout.setEmptyViewRes(R.layout.book_empty_list);
 
-		mBind = activity.bindService(getIntent(), mServiceConnection, activity.BIND_AUTO_CREATE);
-		mlist.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
-		mlist.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
-			@Override
-			public void onRefresh(PullToRefreshBase<ListView> refreshView) {
-				ThreadPool.getThreadPool().addTask(new Runnable() {
-					@Override
-					public void run() {
-						if (SystemUtil.isNetWorkConnected(MyApplication.getInstance())) {
-							if (!ListUtils.isEmpty(tmodels)) {
-								tmodels.clear();
-							}
-							contactsDao.delete();//删除缓存
-							loadUUFriendForNet();//先加载UU好友---》企业架构人员----》本地通讯录
-						} else {
-							getCaceData(true);//先加载UU好友---》企业架构人员----》本地通讯录
-						}
-					}
-				});
-			}
-		});
-		mlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-			@Override
-			public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-				ContactsAdapter.ViewHolder viewHolder = (ContactsAdapter.ViewHolder) view.getTag();
-				if (type == 0) {//默认情况---点击查看详情
-					if (viewHolder.model.getType() == 3) {
-						return;
-					}
-					Intent intent = new Intent("com.modular.basic.BasicInfoActivity");
-					intent.putExtra(AppConstant.EXTRA_NICK_CODE, viewHolder.sub_tv.getText().toString());
-					intent.putExtra(AppConstant.EXTRA_USER_ID, viewHolder.model.getImid());
-					intent.putExtra(AppConstant.EXTRA_NICK_NAME, viewHolder.name_tv.getText().toString());
-					//intent.putExtra(AppConstant.EXTRA_EM_CODE, friend.getEmCode());
-					Friend friend = new Friend();
-					friend.setPhone(viewHolder.model.getPhone());
-					friend.setUserId(viewHolder.model.getImid());
-					friend.setRemarkName(viewHolder.model.getName());
-					//friend.setStatus();
-					intent.putExtra("friend", friend);
-					startActivity(intent);
-				} else if (type == 1) { //预约---获取对象界面
-					//预约对象
-					if (isSingleSelect) {
-						Intent intent = new Intent();
-						intent.putExtra("data", viewHolder.model);
-						setResult(0x20, intent);
-						finish();
-					} else {
-						boolean isChecked = !viewHolder.checkBox.isChecked();
-						LogUtil.d("ContactsActivity", "isChecked:" + isChecked);
-						setSelectNumber(isChecked);
-						adapter.getItem(position - 1).setClick(isChecked);
-						adapter.notifyDataSetChanged();
-					}
-
-				}
-			}
-		});
-
-		voiceSearchView.addTextChangedListener(new EditChangeListener() {
-			@Override
-			public void afterTextChanged(Editable s) {
-				updateSreachKey(s == null ? "" : s.toString());
-			}
-		});
-
-		all_sure_cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
-			@Override
-			public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
-				if (isClickCb) {
-					if (adapter == null) return;
-					for (int i = 0; i < adapter.getModels().size(); i++) {
-						adapter.getModels().get(i).setClick(b);
-					}
-					allSelect = getSelectNumber().size();
-					mumber_tv.setText(getString(R.string.selected) + allSelect + " " + "人员");
-					adapter.notifyDataSetChanged();
-					all_sure_cb.setText(b ? R.string.cancel_select_all : R.string.select_all);
-				}
-				isClickCb = true;
-			}
-		});
-
-
-		findViewById(R.id.sure_tv).setOnClickListener(new View.OnClickListener() {
-			@Override
-			public void onClick(View view) {
-				ArrayList<ContactsModel> models = getSelectNumber();
-				Intent intent = new Intent();
-				intent.putParcelableArrayListExtra("data", models);
-				activity.setResult(0x01, intent);
-				activity.finish();
-			}
-		});
-
-	}
-
-	public ArrayList<ContactsModel> getSelectNumber() {
-		ArrayList<ContactsModel> models = new ArrayList<>();
-		for (int i = 0; i < adapter.getModels().size(); i++) {
-			if (adapter.getModels().get(i).isClick) {
-				if (StringUtil.isEmpty(adapter.getModels().get(i).getImid())) {
-					adapter.getItem(i).setImid("0");
-				}
-				models.add(adapter.getItem(i));
-			}
-		}
-		LogUtil.d("myTest", "选择的联系人:" + JSON.toJSONString(models));
-		return models;
-	}
-
-	/**
-	 * 点击后
-	 *
-	 * @param isClicked 点击后是否为选中状态
-	 */
-	private void setSelectNumber(boolean isClicked) {
-		allSelect += isClicked ? 1 : -1;
-		if (allSelect < 0)
-			allSelect = 0;
-		if (!isClicked && all_sure_cb.isChecked()) {
-			isClickCb = false;
-			all_sure_cb.setChecked(false);
-			all_sure_cb.setText(R.string.select_all);
-		} else if (isClicked && !all_sure_cb.isChecked() && !ListUtils.isEmpty(adapter.getModels()) && allSelect == adapter.getModels().size()) {
-			isClickCb = false;
-			all_sure_cb.setChecked(true);
-			all_sure_cb.setText(R.string.cancel_select_all);
-		}
-		mumber_tv.setText(getString(R.string.selected) + allSelect + " " + "人员");
-	}
-
-	private void initData() {
-		if (!ListUtils.isEmpty(models)) {
-			models.clear();
-		}
-		showLoading();
-		adapter = new ContactsAdapter(this, models);
-		adapter.setSingleSelect(isSingleSelect);
-		mlist.setAdapter(adapter);
-		String[] permissions = {Manifest.permission.READ_CONTACTS};
-		if (PermissionUtil.lacksPermissions(ct, permissions)) {
-			PermissionUtil.requestPermission(this, PermissionUtil.DEFAULT_REQUEST, permissions);
-		} else {
-			getCaceData(false);
-			isHasPermiss = true;
-			LogUtil.d("Test", "有权限@....");
-		}
-	}
-
-	boolean isHasPermiss = false;
-
-	@Override
-	public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
-		super.onRequestPermissionsResult(requestCode, permissions, grantResults);
-		if (requestCode == PermissionUtil.DEFAULT_REQUEST) {
-			if (grantResults.length != 1 || grantResults[0] != PackageManager.PERMISSION_GRANTED) {
-				ToastUtil.showToast(ct, R.string.not_system_permission);
-				isHasPermiss = false;
-				getCaceData(false);
-				LogUtil.d("Test", "没有权限....");
-			} else {
-				isHasPermiss = true;
-				getCaceData(false);
-				LogUtil.d("Test", "有权限....");
-			}
-		}
-	}
-
-
-	//1
-	public void loadCompanyContacts() {
-		ThreadPool.getThreadPool().addTask(new Runnable() {
-			@Override
-			public void run() {
-				List<EmployeesEntity> emdatas = getEmListByDB();
-				if (emdatas != null) {
-					LogUtil.d("Test", "企业架构人员不为空!");
-					for (EmployeesEntity entity : emdatas) {
-						ContactsModel model = new ContactsModel();
-						model.setImid(String.valueOf(entity.getEm_IMID()));
-						model.setType(2);
-						model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
-						model.setName(entity.getEM_NAME());
-						model.setEmail(entity.getEM_EMAIL());
-						model.setPhone(entity.getEM_MOBILE());
-						model.setWhichsys(entity.getWHICHSYS());
-						model.setCompany(entity.getCOMPANY());
-						tmodels.add(model);
-					}
-					//执行第二步
-					loadLocalContacts();
-				} else {
-					//联网取企业架构
-					loadUASFriendsNet();
-				}
-			}
-		});
-	}
-
-	//2
-	public void loadIMContacts() {
-		ThreadPool.getThreadPool().addTask(new Runnable() {
-			@Override
-			public void run() {
-				List<Friend> friends = FriendDao.getInstance().getFriends(MyApplication.getInstance().mLoginUser.getUserId());
-				if (friends != null) {
-					LogUtil.d("Test", "IM好友不为空!");
-					for (Friend entity : friends) {
-						ContactsModel model = new ContactsModel();
-						model.setImid(String.valueOf(entity.getUserId()));
-						model.setType(1);
-						model.setName(entity.getShowName());
-						model.setEmail("");
-						model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
-						model.setPhone(entity.getPhone());
-						model.setWhichsys(CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master"));
-						model.setCompany("");
-						tmodels.add(model);
-					}
-					loadCompanyContacts();
-				} else {
-					//联网取UU好友数据
-					loadUUFriendForNet();
-				}
-
-			}
-
-		});
-	}
-
-	//3需要权限
-	public void loadLocalContacts() {
-		ThreadPool.getThreadPool().addTask(new Runnable() {
-			@Override
-			public void run() {
-				if (isHasPermiss) {
-					List<Contacts> contacts = ContactsUtils.getContacts1();
-					if (contacts != null) {
-						for (Contacts entity : contacts) {
-							ContactsModel model = new ContactsModel();
-							model.setImid("0");
-							model.setName(StringUtil.isEmpty(entity.getName()) ? entity.getNickname() : entity.getName());
-							model.setType(3);
-							model.setEmail("");
-							model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
-							model.setPhone(entity.getPhone());
-							model.setWhichsys(CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master"));
-							model.setCompany("");
-							tmodels.add(model);
-
-						}
-						contactsDao.save(tmodels);
-						getCaceData(false);
-					}
-				} else {
-					//没权限
-					contactsDao.save(tmodels);
-					getCaceData(false);
-				}
-
-			}
-		});
-	}
-
-	/**
-	 * @desc:加载通讯录数据
-	 */
-	public void getCaceData(final boolean isHasNet) {
-		ThreadPool.getThreadPool().addTask(new Runnable() {
-			@Override
-			public void run() {
-				final List<ContactsModel> lists = getLocalContactsByDB();
-				//上传
-//                if (!ListUtils.isEmpty(stateModels)){
-//                    for (int i = 0; i <lists.size() ; i++) {
-//                        for (int j = 0; j <stateModels.size(); j++) {
-//                            if (lists.get(i).getImid().equals(stateModels.get(j).getImid())){
-//                                lists.get(i).setClick(stateModels.get(j).isClick);
-//                            }
-//                        }
-//                    }
-//                }
-				ThreadPool.getThreadPool().addTask(new Runnable() {
-					@Override
-					public void run() {
-						List<ContactsModel> contacts = new ArrayList<>();
-						for (ContactsModel model : lists) {
-							if ("0".equals(model.getImid()) || StringUtil.isEmpty(model.getImid())) {
-								contacts.add(model);
-							}
-						}
-						uploadData(contacts);
-					}
-				});
-				boolean falg = !ListUtils.isEmpty(lists) && !isHasNet;
-				if (falg) {
-					LogUtil.d("Test", "取缓存数据:" + falg);
-					getStateByPhones(lists);
-					OAHttpHelper.getInstance().post(new Runnable() {
-						@Override
-						public void run() {
-							//更新ui
-							if (adapter != null) {
-								models.clear();
-								models.addAll(lists);
-								adapter.notifyDataSetChanged();
-								if (adapter.getCount() == 0) emptyLayout.showEmpty();
-								mlist.onRefreshComplete();
-								voiceSearchView.getSearch_edit().setHint(lists.size() + "位联系人");
-								dimssLoading();
-
-							}
-						}
-					});
-
-				} else {
-					LogUtil.d("Test", "-----------缓存为空!---------");
-					if (!ListUtils.isEmpty(tmodels)) {
-						tmodels.clear();
-					}
-					contactsDao.delete();//删除缓存
-					loadUUFriendForNet();//先加载UU好友---》企业架构人员----》本地通讯录
-				}
-			}
-		});
-	}
-
-	private List<ContactsModel> getLocalContactsByDB() {
-		if (StringUtil.isEmpty(searchKey)) {
-			List<ContactsModel> models = contactsDao.find();
-			return models;
-		} else {
-			return contactsDao.find(searchKey);
-		}
-	}
-
-	private List<EmployeesEntity> getEmListByDB() {
-		DBManager manager = new DBManager();
-		String master = CommonUtil.getMaster();
-		List<EmployeesEntity> emList = null;
-		if (!StringUtil.isEmpty(master)) {
-			try {
-				emList = manager.select_getEmployee(new String[]{master}, "whichsys=?");
-			} catch (Exception e) {
-
-			}
-		}
-		manager.closeDB();
-		return emList;
-	}
-
-
-	@Deprecated
-	private void getStateByPhones(final List<ContactsModel> models) {
-		StringBuilder builder = new StringBuilder();
-		int i = 0;
-		for (ContactsModel u : models) {
-			if (u.getType() == 3) {
-				if (i == models.size() - 1) {
-					builder.append(u.getPhone());
-				} else {
-					builder.append(u.getPhone() + ",");
-				}
-			}
-			i++;
-		}
-		HashMap<String, String> params = new HashMap<>();
-		String myUserId = MyApplication.getInstance().mLoginUser.getUserId();
-		params.put("token", MyApplication.getInstance().mAccessToken);
-		params.put("userid", myUserId);
-		params.put("telephones", builder.toString());
-		LogUtil.d("array builder.toString=" + builder.toString());
-		StringJsonObjectRequest<String> request = new StringJsonObjectRequest<String>(
-				MyApplication.getInstance().getConfig().APP_QUER_YUSER, new Response.ErrorListener() {
-			@Override
-			public void onErrorResponse(VolleyError arg0) {
-				ToastUtil.showErrorNet(MyApplication.getInstance());
-			}
-		}, new StringJsonObjectRequest.Listener<String>() {
-			@Override
-			public void onResponse(ObjectResult<String> result) {
-				String message = result.toString();
-				if (!StringUtil.isEmpty(message)) {
-					LogUtil.d("Test", "message:" + message);
-					try {
-						hanlderAppQueryuserInThread(message);
-					} catch (Exception e) {
-
-					}
-				}
-			}
-		}, String.class, params);
-		MyApplication.getInstance().getFastVolley().addDefaultRequest("Volley", request);
-	}
-
-	@Deprecated
-	private void hanlderAppQueryuserInThread(String message) {
-		if (JSONUtil.validate(message)) {
-			JSONObject object = JSON.parseObject(message);
-			String resultData = object.getString("resultData");
-			object = object.parseObject(resultData);
-			String user = object.getString("user");
-			JSONArray array = JSON.parseArray(user);
-			LogUtil.i("array=" + array);
-
-			if (!ListUtils.isEmpty(array)) {
-				JSONObject o = null;
+        mBind = activity.bindService(getIntent(), mServiceConnection, activity.BIND_AUTO_CREATE);
+        mlist.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
+        mlist.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
+            @Override
+            public void onRefresh(PullToRefreshBase<ListView> refreshView) {
+                ThreadPool.getThreadPool().addTask(new Runnable() {
+                    @Override
+                    public void run() {
+                        if (NetUtils.isNetWorkConnected(MyApplication.getInstance())) {
+                            if (!ListUtils.isEmpty(tmodels)) {
+                                tmodels.clear();
+                            }
+                            contactsDao.delete();//删除缓存
+                            loadUUFriendForNet();//先加载UU好友---》企业架构人员----》本地通讯录
+                        } else {
+                            getCaceData(true);//先加载UU好友---》企业架构人员----》本地通讯录
+                        }
+                    }
+                });
+            }
+        });
+        mlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                ContactsAdapter.ViewHolder viewHolder = (ContactsAdapter.ViewHolder) view.getTag();
+                if (type == 0) {//默认情况---点击查看详情
+                    if (viewHolder.model.getType() == 3) {
+                        return;
+                    }
+                    Intent intent = new Intent("com.modular.basic.BasicInfoActivity");
+                    intent.putExtra(AppConstant.EXTRA_NICK_CODE, viewHolder.sub_tv.getText().toString());
+                    intent.putExtra(AppConstant.EXTRA_USER_ID, viewHolder.model.getImid());
+                    intent.putExtra(AppConstant.EXTRA_NICK_NAME, viewHolder.name_tv.getText().toString());
+                    //intent.putExtra(AppConstant.EXTRA_EM_CODE, friend.getEmCode());
+                    Friend friend = new Friend();
+                    friend.setPhone(viewHolder.model.getPhone());
+                    friend.setUserId(viewHolder.model.getImid());
+                    friend.setRemarkName(viewHolder.model.getName());
+                    //friend.setStatus();
+                    intent.putExtra("friend", friend);
+                    startActivity(intent);
+                } else if (type == 1) { //预约---获取对象界面
+                    //预约对象
+                    if (isSingleSelect) {
+                        Intent intent = new Intent();
+                        intent.putExtra("data", viewHolder.model);
+                        setResult(0x20, intent);
+                        finish();
+                    } else {
+                        boolean isChecked = !viewHolder.checkBox.isChecked();
+                        LogUtil.d("ContactsActivity", "isChecked:" + isChecked);
+                        setSelectNumber(isChecked);
+                        adapter.getItem(position - 1).setClick(isChecked);
+                        adapter.notifyDataSetChanged();
+                    }
+
+                }
+            }
+        });
+
+        voiceSearchView.addTextChangedListener(new EditChangeListener() {
+            @Override
+            public void afterTextChanged(Editable s) {
+                searchKey = s.toString();
+                LogUtil.d("arison", " searchKey:" + searchKey);
+                if (!StringUtil.isEmpty(s.toString())) {
+                    mlist.setMode(PullToRefreshBase.Mode.DISABLED);
+                    //contactsDao.find(s.toString());
+                    List<ContactsModel> cacheData =contactsDao.find(s.toString()) ;
+                    if (!ListUtils.isEmpty(stateModels)){
+                        for (int i = 0; i <cacheData.size() ; i++) {
+                            for (int j = 0; j <stateModels.size(); j++) {
+                                if (cacheData.get(i).getImid().equals(stateModels.get(j).getImid())){
+                                    cacheData.get(i).setClick(stateModels.get(j).isClick);
+                                }
+                            }
+                        }
+                    }
+                    if (adapter != null) {
+                        if (ListUtils.isEmpty(cacheData)) {
+                            searchContactsByNet(s.toString());
+                            return;
+                        }
+                        models.clear();
+                        models.addAll(cacheData);
+                        adapter.notifyDataSetChanged();
+                        //查询需要优化
+                        //getStateByPhones(cacheData);
+                        if (models.size() == 0) {
+                            emptyLayout.showEmpty();
+                        }
+                    } else {
+
+                    }
+                } else {
+                    mlist.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
+                    getCaceData(false);
+                }
+
+            }
+        });
+
+        all_sure_cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
+                if (isClickCb) {
+                    if (adapter == null) return;
+                    for (int i = 0; i < adapter.getModels().size(); i++) {
+                        adapter.getModels().get(i).setClick(b);
+                    }
+                    allSelect = getSelectNumber().size();
+                    mumber_tv.setText(getString(R.string.selected) + allSelect + " " + "人员");
+                    adapter.notifyDataSetChanged();
+                    all_sure_cb.setText(b ? R.string.cancel_select_all : R.string.select_all);
+                }
+                isClickCb = true;
+            }
+        });
+
+
+        findViewById(R.id.sure_tv).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                ArrayList<ContactsModel> models = getSelectNumber();
+                Intent intent = new Intent();
+                intent.putParcelableArrayListExtra("data", models);
+                activity.setResult(0x01, intent);
+                activity.finish();
+            }
+        });
+
+    }
+
+    public ArrayList<ContactsModel> getSelectNumber() {
+        ArrayList<ContactsModel> models = new ArrayList<>();
+        for (int i = 0; i < adapter.getModels().size(); i++) {
+            if (adapter.getModels().get(i).isClick) {
+                if (StringUtil.isEmpty(adapter.getModels().get(i).getImid())){
+                    adapter.getItem(i).setImid("0");
+                }
+                models.add(adapter.getItem(i));
+            }
+        }
+        LogUtil.d("myTest","选择的联系人:"+JSON.toJSONString(models));
+        return models;
+    }
+
+    /**
+     * 点击后
+     *
+     * @param isClicked 点击后是否为选中状态
+     */
+    private void setSelectNumber(boolean isClicked) {
+        allSelect += isClicked ? 1 : -1;
+        if (allSelect < 0)
+            allSelect = 0;
+        if (!isClicked && all_sure_cb.isChecked()) {
+            isClickCb = false;
+            all_sure_cb.setChecked(false);
+            all_sure_cb.setText(R.string.select_all);
+        } else if (isClicked && !all_sure_cb.isChecked() && !ListUtils.isEmpty(adapter.getModels()) && allSelect == adapter.getModels().size()) {
+            isClickCb = false;
+            all_sure_cb.setChecked(true);
+            all_sure_cb.setText(R.string.cancel_select_all);
+        }
+        mumber_tv.setText(getString(R.string.selected) + allSelect + " " + "人员");
+    }
+
+    private void initData() {
+        if (!ListUtils.isEmpty(models)) {
+            models.clear();
+        }
+        showLoading();
+        adapter = new ContactsAdapter(this, models);
+        adapter.setSingleSelect(isSingleSelect);
+        mlist.setAdapter(adapter);
+        String[] permissions = {Manifest.permission.READ_CONTACTS};
+        if (PermissionUtil.lacksPermissions(ct, permissions)) {
+            PermissionUtil.requestPermission(this, PermissionUtil.DEFAULT_REQUEST, permissions);
+        } else {
+            getCaceData(false);
+            isHasPermiss = true;
+            LogUtil.d("Test", "有权限@....");
+        }
+    }
+
+    boolean isHasPermiss = false;
+
+    @Override
+    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+        if (requestCode == PermissionUtil.DEFAULT_REQUEST) {
+            if (grantResults.length != 1 || grantResults[0] != PackageManager.PERMISSION_GRANTED) {
+                ToastUtil.showToast(ct, R.string.not_system_permission);
+                isHasPermiss = false;
+                getCaceData(false);
+                LogUtil.d("Test", "没有权限....");
+            } else {
+                isHasPermiss = true;
+                getCaceData(false);
+                LogUtil.d("Test", "有权限....");
+            }
+        }
+    }
+
+
+    //1
+    public void loadCompanyContacts() {
+        ThreadPool.getThreadPool().addTask(new Runnable() {
+            @Override
+            public void run() {
+                List<EmployeesEntity> emdatas = getEmListByDB();
+                if (emdatas != null) {
+                    LogUtil.d("Test", "企业架构人员不为空!");
+                    for (EmployeesEntity entity : emdatas) {
+                        ContactsModel model = new ContactsModel();
+                        model.setImid(String.valueOf(entity.getEm_IMID()));
+                        model.setType(2);
+                        model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
+                        model.setName(entity.getEM_NAME());
+                        model.setEmail(entity.getEM_EMAIL());
+                        model.setPhone(entity.getEM_MOBILE());
+                        model.setWhichsys(entity.getWHICHSYS());
+                        model.setCompany(entity.getCOMPANY());
+                        tmodels.add(model);
+                    }
+                    //执行第二步
+                    loadLocalContacts();
+                } else {
+                    //联网取企业架构
+                    loadUASFriendsNet();
+                }
+            }
+        });
+    }
+
+    //2
+    public void loadIMContacts() {
+        ThreadPool.getThreadPool().addTask(new Runnable() {
+            @Override
+            public void run() {
+                List<Friend> friends = FriendDao.getInstance().getFriends(MyApplication.getInstance().mLoginUser.getUserId());
+                if (friends != null) {
+                    LogUtil.d("Test", "IM好友不为空!");
+                    for (Friend entity : friends) {
+                        ContactsModel model = new ContactsModel();
+                        model.setImid(String.valueOf(entity.getUserId()));
+                        model.setType(1);
+                        model.setName(entity.getShowName());
+                        model.setEmail("");
+                        model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
+                        model.setPhone(entity.getPhone());
+                        model.setWhichsys(CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master"));
+                        model.setCompany("");
+                        tmodels.add(model);
+                    }
+                    loadCompanyContacts();
+                } else {
+                    //联网取UU好友数据
+                    loadUUFriendForNet();
+                }
+
+            }
+
+        });
+    }
+
+    //3需要权限
+    public void loadLocalContacts() {
+        ThreadPool.getThreadPool().addTask(new Runnable() {
+            @Override
+            public void run() {
+                if (isHasPermiss) {
+                    List<Contacts> contacts = ContactsUtils.getContacts1();
+                    if (contacts != null) {
+                        for (Contacts entity : contacts) {
+                            ContactsModel model = new ContactsModel();
+                            model.setImid("0");
+                            model.setName(StringUtil.isEmpty(entity.getName()) ? entity.getNickname() : entity.getName());
+                            model.setType(3);
+                            model.setEmail("");
+                            model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
+                            model.setPhone(entity.getPhone());
+                            model.setWhichsys(CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master"));
+                            model.setCompany("");
+                            tmodels.add(model);
+
+                        }
+                        contactsDao.save(tmodels);
+                        getCaceData(false);
+                    }
+                } else {
+                    //没权限
+                    contactsDao.save(tmodels);
+                    getCaceData(false);
+                }
+
+            }
+        });
+    }
+
+    /**
+     * @desc:加载通讯录数据
+     */
+    public void getCaceData(final boolean isHasNet) {
+        ThreadPool.getThreadPool().addTask(new Runnable() {
+            @Override
+            public void run() {
+                final List<ContactsModel> lists = getLocalContactsByDB();
+                //上传
+                if (!ListUtils.isEmpty(stateModels)){
+                    for (int i = 0; i <lists.size() ; i++) {
+                        for (int j = 0; j <stateModels.size(); j++) {
+                            if (lists.get(i).getImid().equals(stateModels.get(j).getImid())){
+                                lists.get(i).setClick(stateModels.get(j).isClick);
+                            }
+                        }
+                    }
+                }
+                ThreadPool.getThreadPool().addTask(new Runnable() {
+                    @Override
+                    public void run() {
+                        List<ContactsModel> contacts = new ArrayList<>();
+                        for (ContactsModel model : lists) {
+                            if ("0".equals(model.getImid()) || StringUtil.isEmpty(model.getImid())) {
+                                contacts.add(model);
+                            }
+                        }
+                        uploadData(contacts);
+                    }
+                });
+                boolean falg = !ListUtils.isEmpty(lists) && !isHasNet;
+                if (falg) {
+                    LogUtil.d("Test", "取缓存数据:" + falg);
+                    getStateByPhones(lists);
+                    OAHttpHelper.getInstance().post(new Runnable() {
+                        @Override
+                        public void run() {
+                            //更新ui
+                            if (adapter != null) {
+                                models.clear();
+                                models.addAll(lists);
+                                adapter.notifyDataSetChanged();
+                                if (adapter.getCount() == 0) emptyLayout.showEmpty();
+                                mlist.onRefreshComplete();
+                                voiceSearchView.getSearch_edit().setHint(lists.size() + "位联系人");
+                                dimssLoading();
+                                allSelect = getSelectNumber().size();
+                                mumber_tv.setText(getString(R.string.selected) + allSelect + " " + "人员");
+                            }
+                        }
+                    });
+
+                } else {
+                    LogUtil.d("Test", "-----------缓存为空!---------");
+                    if (!ListUtils.isEmpty(tmodels)) {
+                        tmodels.clear();
+                    }
+                    contactsDao.delete();//删除缓存
+                    loadUUFriendForNet();//先加载UU好友---》企业架构人员----》本地通讯录
+                }
+            }
+        });
+    }
+
+    private List<ContactsModel> getLocalContactsByDB() {
+        if (StringUtil.isEmpty(searchKey)) {
+            List<ContactsModel> models = contactsDao.find();
+            return models;
+        } else {
+            return contactsDao.find(searchKey);
+        }
+    }
+
+    private List<EmployeesEntity> getEmListByDB() {
+        DBManager manager = new DBManager();
+        String master = CommonUtil.getMaster();
+        List<EmployeesEntity> emList = null;
+        if (!StringUtil.isEmpty(master)) {
+            try {
+                emList = manager.select_getEmployee(new String[]{master}, "whichsys=?");
+            } catch (Exception e) {
+
+            }
+        }
+        manager.closeDB();
+        return emList;
+    }
+
+
+    @Deprecated
+    private void getStateByPhones(final List<ContactsModel> models) {
+        StringBuilder builder = new StringBuilder();
+        int i = 0;
+        for (ContactsModel u : models) {
+            if (u.getType() == 3) {
+                if (i == models.size() - 1) {
+                    builder.append(u.getPhone());
+                } else {
+                    builder.append(u.getPhone() + ",");
+                }
+            }
+            i++;
+        }
+        HashMap<String, String> params = new HashMap<>();
+        String myUserId = MyApplication.getInstance().mLoginUser.getUserId();
+        params.put("token", MyApplication.getInstance().mAccessToken);
+        params.put("userid", myUserId);
+        params.put("telephones", builder.toString());
+        LogUtil.d("array builder.toString=" + builder.toString());
+        StringJsonObjectRequest<String> request = new StringJsonObjectRequest<String>(
+                MyApplication.getInstance().getConfig().APP_QUER_YUSER, new Response.ErrorListener() {
+            @Override
+            public void onErrorResponse(VolleyError arg0) {
+                ToastUtil.showErrorNet(MyApplication.getInstance());
+            }
+        }, new StringJsonObjectRequest.Listener<String>() {
+            @Override
+            public void onResponse(ObjectResult<String> result) {
+                String message = result.toString();
+                if (!StringUtil.isEmpty(message)) {
+                    LogUtil.d("Test", "message:" + message);
+                    try {
+                        hanlderAppQueryuserInThread(message);
+                    } catch (Exception e) {
+
+                    }
+                }
+            }
+        }, String.class, params);
+        MyApplication.getInstance().getFastVolley().addDefaultRequest("Volley", request);
+    }
+
+    @Deprecated
+    private void hanlderAppQueryuserInThread(String message) {
+        if (JSONUtil.validate(message)) {
+            JSONObject object = JSON.parseObject(message);
+            String resultData = object.getString("resultData");
+            object = object.parseObject(resultData);
+            String user = object.getString("user");
+            JSONArray array = JSON.parseArray(user);
+            LogUtil.i("array=" + array);
+
+            if (!ListUtils.isEmpty(array)) {
+                JSONObject o = null;
 //                for (ContactsModel model:models){
 //                    model.setType(3);
 //                }
-				for (int i = 0; i < array.size(); i++) {
-					o = array.getJSONObject(i);
-					String telephone = JSONUtil.getText(o, "telephone");
-					String isfriend = JSONUtil.getText(o, "isfriend");
-					int _id = JSONUtil.getInt(o, "_id");
-					for (int j = 0; j < models.size(); j++) {
-						ContactsModel model = models.get(j);
-						if (model.getPhone().equals(telephone)) {
-							if (isfriend.equals("0")) {
-								model.setType(2);//非好友
-								model.setImid(String.valueOf(_id));
-								contactsDao.update(model, "0");
-							} else if (isfriend.equals("1")) {
-								model.setType(1);//好友
-								model.setImid(String.valueOf(_id));
-								contactsDao.update(model, "0");
-							}
-						}
-					}
-				}
-				adapter.notifyDataSetChanged();
-			}
-		}
-		//计算全部数据完成
-
-	}
-
-	@Override
-	public void onResultForItems(View view, ContactsModel model, int position) {
-		TextView textView = (TextView) view;
-		String add = MyApplication.getInstance().getString(R.string.add);
-		String invite = MyApplication.getInstance().getString(R.string.invite);
-		if (textView.getText().toString().equals(add)) {
-			addUser(model, position);
-		}
-		if (textView.getText().toString().equals(invite)) {
-			invite(model, position);
-		}
-	}
-
-
-	//TODO 添加好友
-	private void addUser(final ContactsModel user, final int position) {
-		if (user == null) {
-			return;
-		}
-		showLoading();
-		HashMap<String, String> params = new HashMap<String, String>();
-		params.put("access_token", MyApplication.getInstance().mAccessToken);
-		params.put("toUserId", String.valueOf(user.getImid()));
-		StringJsonObjectRequest<AddAttentionResult> request = new StringJsonObjectRequest<AddAttentionResult>(
-				MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_ADD, new Response.ErrorListener() {
-			@Override
-			public void onErrorResponse(VolleyError arg0) {
-				dimssLoading();
-				ToastUtil.showErrorNet(activity);
-			}
-		}, new StringJsonObjectRequest.Listener<AddAttentionResult>() {
-			@Override
-			public void onResponse(ObjectResult<AddAttentionResult> result) {
-				dimssLoading();
-				boolean success = Result.defaultParser(MyApplication.getInstance(), result, true);
-				String message = result.toString();
-				if (success) {
-					showToast(R.string.add_attention_succ, R.color.load_submit);
-					// 添加为关注
-					User mUser = new User();
-					mUser.setUserId(String.valueOf(user.getImid()));//已经开通了UU IM的人
-					mUser.setNickName(user.getName());//手机通讯录的名字
-					// 发送推送的消息
-					NewFriendMessage mess = NewFriendMessage.createWillSendMessage(
-							MyApplication.getInstance().mLoginUser, XmppMessage.TYPE_FRIEND, null, mUser);
-					LogUtil.i("mXmppService=" + (mXmppService == null));
-					if (mXmppService != null)
-						mXmppService.sendNewFriendMessage(mUser.getUserId(), mess);
-					// 添加为好友
-					NewFriendDao.getInstance().ascensionNewFriend(mess, Friend.STATUS_FRIEND);
-
-
-					ContactsModel tData = models.get(position);
-					if (StringUtil.isEmpty(tData.getWhichsys())) {
-						tData.setWhichsys("");
-					}
-					tData.setType(1);
-					LogUtil.d("Test", "tdata:" + JSON.toJSONString(tData));
-					contactsDao.update(tData);
-					adapter.notifyDataSetChanged();
-				}
-			}
-		}, AddAttentionResult.class, params);
-		MyApplication.getInstance().getFastVolley().addDefaultRequest("Volley", request);
-	}
-
-
-	private void invite(ContactsModel user, int position) {
-		LogUtil.i("invite");
-		final String name = CommonUtil.getName();
-		final String phone = user.getPhone().trim().replaceAll(" ", "");
+                for (int i = 0; i < array.size(); i++) {
+                    o = array.getJSONObject(i);
+                    String telephone = JSONUtil.getText(o, "telephone");
+                    String isfriend = JSONUtil.getText(o, "isfriend");
+                    int _id = JSONUtil.getInt(o, "_id");
+                    for (int j = 0; j < models.size(); j++) {
+                        ContactsModel model = models.get(j);
+                        if (model.getPhone().equals(telephone)) {
+                            if (isfriend.equals("0")) {
+                                model.setType(2);//非好友
+                                model.setImid(String.valueOf(_id));
+                                contactsDao.update(model, "0");
+                            } else if (isfriend.equals("1")) {
+                                model.setType(1);//好友
+                                model.setImid(String.valueOf(_id));
+                                contactsDao.update(model, "0");
+                            }
+                        }
+                    }
+                }
+                adapter.notifyDataSetChanged();
+            }
+        }
+        //计算全部数据完成
+
+    }
+
+    @Override
+    public void onResultForItems(View view, ContactsModel model, int position) {
+        TextView textView = (TextView) view;
+        String add = MyApplication.getInstance().getString(R.string.add);
+        String invite = MyApplication.getInstance().getString(R.string.invite);
+        if (textView.getText().toString().equals(add)) {
+            addUser(model, position);
+        }
+        if (textView.getText().toString().equals(invite)) {
+            invite(model, position);
+        }
+    }
+
+
+    //TODO 添加好友
+    private void addUser(final ContactsModel user, final int position) {
+        if (user == null) {
+            return;
+        }
+        showLoading();
+        HashMap<String, String> params = new HashMap<String, String>();
+        params.put("access_token", MyApplication.getInstance().mAccessToken);
+        params.put("toUserId", String.valueOf(user.getImid()));
+        StringJsonObjectRequest<AddAttentionResult> request = new StringJsonObjectRequest<AddAttentionResult>(
+                MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_ADD, new Response.ErrorListener() {
+            @Override
+            public void onErrorResponse(VolleyError arg0) {
+                dimssLoading();
+                ToastUtil.showErrorNet(activity);
+            }
+        }, new StringJsonObjectRequest.Listener<AddAttentionResult>() {
+            @Override
+            public void onResponse(ObjectResult<AddAttentionResult> result) {
+                dimssLoading();
+                boolean success = Result.defaultParser(MyApplication.getInstance(), result, true);
+                String message = result.toString();
+                if (success) {
+                    showToast(R.string.add_attention_succ, R.color.load_submit);
+                    // 添加为关注
+                    User mUser = new User();
+                    mUser.setUserId(String.valueOf(user.getImid()));//已经开通了UU IM的人
+                    mUser.setNickName(user.getName());//手机通讯录的名字
+                    // 发送推送的消息
+                    NewFriendMessage mess = NewFriendMessage.createWillSendMessage(
+                            MyApplication.getInstance().mLoginUser, XmppMessage.TYPE_FRIEND, null, mUser);
+                    LogUtil.i("mXmppService=" + (mXmppService == null));
+                    if (mXmppService != null)
+                        mXmppService.sendNewFriendMessage(mUser.getUserId(), mess);
+                    // 添加为好友
+                    NewFriendDao.getInstance().ascensionNewFriend(mess, Friend.STATUS_FRIEND);
+
+
+                    ContactsModel tData = models.get(position);
+                    if (StringUtil.isEmpty(tData.getWhichsys())) {
+                        tData.setWhichsys("");
+                    }
+                    tData.setType(1);
+                    LogUtil.d("Test", "tdata:" + JSON.toJSONString(tData));
+                    contactsDao.update(tData);
+                    adapter.notifyDataSetChanged();
+                }
+            }
+        }, AddAttentionResult.class, params);
+        MyApplication.getInstance().getFastVolley().addDefaultRequest("Volley", request);
+    }
+
+
+    private void invite(ContactsModel user, int position) {
+        LogUtil.i("invite");
+        final String name = CommonUtil.getName();
+        final String phone = user.getPhone().trim().replaceAll(" ", "");
 
 //        if (!com.xzjmyk.pm.activity.util.StringUtil.isMobileNumber(phone)) {
 //            showToast("选择人员电话号码为空或是格式不正确", R.color.load_submit);
 //            return;
 //        }
-		StringJsonObjectRequest<AddAttentionResult> request = new StringJsonObjectRequest<AddAttentionResult>(
-				Request.Method.POST, "http://message.ubtob.com/sms/send", new Response.ErrorListener() {
-			@Override
-			public void onErrorResponse(VolleyError arg0) {
-				dimssLoading();
-			}
-		}, new StringJsonObjectRequest.Listener<AddAttentionResult>() {
-			@Override
-			public void onResponse(ObjectResult<AddAttentionResult> result) {
-				String message = result.toString();
-				showToast("短信发送成功", R.color.load_submit);
-				LogUtil.i("message=" + message);
-			}
-		}, AddAttentionResult.class, null) {
-			@Override
-			public byte[] getBody() throws AuthFailureError {
-				String param = "{\"receiver\":\"" + phone + "\",\"params\":[\"" + name + "\"],\"templateId\":\"4b60e18b-de2e-410f-9de1-819265d9e636\"}";
-				LogUtil.i("param=" + param);
-				return param.getBytes();
-			}
-
-			@Override
-			public Map<String, String> getHeaders() {
-				HashMap<String, String> headers = new HashMap<String, String>();
-				headers.put("Accept", "application/json");
-				headers.put("Content-Type", "application/json; charset=UTF-8");
-				return headers;
-			}
-		};
-		MyApplication.getInstance().getFastVolley().addDefaultRequest("Volley", request);
-	}
-
-	@Override
-	protected void onDestroy() {
-		super.onDestroy();
-		if (mBind) {
-			activity.unbindService(mServiceConnection);
-		}
-	}
-
-	private void updateSreachKey(final String keyWork) {
-//		showLoading();
-		searchKey = keyWork;
-		LogUtil.d("arison", " searchKey:" + searchKey);
-		if (!StringUtil.isEmpty(keyWork)) {
-			mlist.setMode(PullToRefreshBase.Mode.DISABLED);
-			ThreadPool.getThreadPool().addTask(new Runnable() {
-				@Override
-				public void run() {
-					LogUtil.i("isMainThread=" + (Looper.getMainLooper() == Looper.myLooper()));
-					final List<ContactsModel> cacheData = contactsDao.find(keyWork);
-					OAHttpHelper.getInstance().post(new Runnable() {
-						@Override
-						public void run() {
-							dimssLoading();
-							LogUtil.i("isMainThread2=" + (Looper.getMainLooper() == Looper.myLooper()));
-							if (adapter != null) {
-								if (ListUtils.isEmpty(cacheData)) {
-									LogUtil.d("arison", "searchContactsByNet:" + searchKey);
-									searchContactsByNet(keyWork);
-									return;
-								}
-								models.clear();
-								models.addAll(cacheData);
-								adapter.notifyDataSetChanged();
-								//查询需要优化
-								//getStateByPhones(cacheData);
-								if (models.size() == 0) {
-									emptyLayout.showEmpty();
-								}
-							}
-						}
-					});
-				}
-			});
-
-		} else {
-			mlist.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
-			getCaceData(false);
-		}
-	}
-
-	private void loadUASFriendsNet() {
-		CommonInterface.getInstance().loadCompanyData(new CommonInterface.OnResultListener() {
-			@Override
-			public void result(@NonNull boolean success, @NonNull int what, @Nullable String message) {
-				try {
-					if (success) {
-						String role = CommonUtil.getUserRole();
-						if ("1".equals(role)) {
-							//个人用户不需要加载企业架构
-							loadLocalContacts();
-						}
-						boolean isB2b = ApiUtils.getApiModel() instanceof ApiPlatform;
-						JSONObject object = JSON.parseObject(message);
-						List<EmployeesEntity> emdatas = null;
-						if (isB2b) {
-							emdatas = CompanyHandlerInfoUtil.getEmployeesByB2b(object);
-						} else {
-							emdatas = CompanyHandlerInfoUtil.getEmployeesByNet(object);
-						}
-						if (ListUtils.isEmpty(emdatas)) return;
-						for (EmployeesEntity entity : emdatas) {
-							ContactsModel model = new ContactsModel();
-							model.setImid(String.valueOf(entity.getEm_IMID()));
-							model.setType(2);
-							model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
-							model.setName(entity.getEM_NAME());
-							model.setEmail(entity.getEM_EMAIL());
-							model.setPhone(entity.getEM_MOBILE());
-							model.setWhichsys(entity.getWHICHSYS());
-							model.setCompany(entity.getCOMPANY());
-							tmodels.add(model);
-						}
-						loadLocalContacts();
-					} else {
-						loadLocalContacts();
-					}
-				} catch (Exception e) {
-					loadLocalContacts();
-				}
-			}
-		});
-	}
-
-
-	String HASHCODE = Integer.toHexString(this.hashCode()) + "@";
-
-	private void loadUUFriendForNet() {
-		HashMap<String, String> params = new HashMap<String, String>();
-		params.put("access_token", MyApplication.getInstance().mAccessToken);
-		LogUtil.d("Test", "url:" + MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_LIST);
-		LogUtil.d("Test", "access_token" + MyApplication.getInstance().mAccessToken);
-		StringJsonArrayRequest<AttentionUser> request = new StringJsonArrayRequest<AttentionUser>(
-				MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_LIST, new Response.ErrorListener() {
-			@Override
-			public void onErrorResponse(VolleyError arg0) {
-				loadCompanyContacts();
-			}
-		}, new StringJsonArrayRequest.Listener<AttentionUser>() {
-			@Override
-			public void onResponse(ArrayResult<AttentionUser> result) {
-				LogUtil.d("Test", "result:" + result);
-				boolean success = Result.defaultParser(MyApplication.getInstance(), result, false);
-				if (success) {
-					FriendDao.getInstance().addAttentionUsers(OAHttpHelper.getInstance(), MyApplication.getInstance().mLoginUser.getUserId(), result.getData(),
-							new OnCompleteListener() {
-								@Override
-								public void onCompleted() {
-									List<Friend> friends = FriendDao.getInstance().getFriends(MyApplication.getInstance().mLoginUser.getUserId());
-									if (!ListUtils.isEmpty(friends)) {
-										for (Friend entity : friends) {
-											ContactsModel model = new ContactsModel();
-											model.setImid(String.valueOf(entity.getUserId()));
-											model.setType(1);
-											model.setName(entity.getShowName());
-											model.setEmail("");
-											model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
-											model.setPhone(entity.getPhone());
-											//uu好友
-											model.setWhichsys(CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master"));
-											model.setCompany("");
-											tmodels.add(model);
-										}
-									}
-									loadUASFriendsNet();
-								}
-							});
-				} else {
-					loadUASFriendsNet();
-				}
-			}
-		}, AttentionUser.class, params);
-		MyApplication.getInstance().getFastVolley().addDefaultRequest(HASHCODE, request);
-	}
-
-	private void searchContactsByNet(String key) {
-		String url = Constants.IM_BASE_URL + "user/appSearch";
-		Map<String, Object> params = new HashMap<>();
-		params.put("token", MyApplication.getInstance().mAccessToken);
-		params.put("name", key);
-
-		LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-		headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-		ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, 0x01, null, null, "post");
-	}
-
-	private Handler mHandler = new Handler() {
-		@Override
-		public void handleMessage(Message msg) {
-			switch (msg.what) {
-				case 0x01:
-					try {
-						String result = msg.getData().getString("result");
-						String root = JSON.parseObject(result).getString("result");
-						JSONArray array = JSON.parseArray(root);
-						List<ContactsModel> xmodels = new ArrayList<>();
-						for (int i = 0; i < array.size(); i++) {
-							ContactsModel model = new ContactsModel();
-							model.setType(2);
-							model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
-							model.setImid(array.getJSONObject(i).getString("imid"));
-							model.setName(array.getJSONObject(i).getString("nickname"));
-							model.setPhone(array.getJSONObject(i).getString("telephone"));
-							xmodels.add(model);
-						}
-						if (!ListUtils.isEmpty(models)) {
-							models.clear();
-							models.addAll(xmodels);
-						} else {
-							models.addAll(xmodels);
-						}
-						if (adapter != null) {
-							adapter.notifyDataSetChanged();
-						}
-						if (adapter.getCount() == 0) {
-							emptyLayout.showEmpty();
-						}
-					} catch (Exception e) {
-
-					}
-					break;
-			}
-		}
-	};
-
-
-	//
-	public void uploadData(List<ContactsModel> models) {
-		if (!ListUtils.isEmpty(models)) {
-			StringBuilder mapBuilder = new StringBuilder("[");
-			for (int i = 0; i < models.size(); i++) {
-				if (i == models.size() - 1) {
-					mapBuilder.append("{\n" +
-							"\"am_telephone\":\"" + models.get(i).getPhone() + "\",\n" +
-							"\"am_username\":\"" + models.get(i).getName() + "\",\n" +
-							"\"am_userid\":\"" + 0 + "\"\n" +
-							"}]");
-				} else {
-					mapBuilder.append("{\n" +
-							"\"am_telephone\":\"" + models.get(i).getPhone() + "\",\n" +
-							"\"am_username\":\"" + models.get(i).getName() + "\",\n" +
-							"\"am_userid\":\"" + 0 + "\"\n" +
-							"},");
-				}
-			}
-
-			HttpClient httpClient = new HttpClient.Builder().url(Constants.IM_BASE_URL)
-					.add("comParam", "param")
-					.isDebug(true).build(true);
-			httpClient.Api().send(new HttpClient.Builder()
-					.url("/user/appMobileContact")
-					.header("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8")
-					.add("token", MyApplication.getInstance().mAccessToken)
-					.add("userid", MyApplication.getInstance().mLoginUser.getUserId())
-					.add("username", MyApplication.getInstance().mLoginUser.getNickName())
-					.add("map", mapBuilder.toString())
-					.method(Method.POST)
-					.build(), new ResultSubscriber<>(new ResultListener<Object>() {
-
-				@Override
-				public void onResponse(Object o) {
-					LogUtil.prinlnLongMsg("HttpLogs", o.toString());
-					LogUtil.d("HttpLogs", "result:" + o.toString());
-					if (JSONUtil.validate(o.toString())) {
-
-					}
-				}
-			}));
-		}
-	}
+        StringJsonObjectRequest<AddAttentionResult> request = new StringJsonObjectRequest<AddAttentionResult>(
+                Request.Method.POST, "http://message.ubtob.com/sms/send", new Response.ErrorListener() {
+            @Override
+            public void onErrorResponse(VolleyError arg0) {
+                dimssLoading();
+            }
+        }, new StringJsonObjectRequest.Listener<AddAttentionResult>() {
+            @Override
+            public void onResponse(ObjectResult<AddAttentionResult> result) {
+                String message = result.toString();
+                showToast("短信发送成功", R.color.load_submit);
+                LogUtil.i("message=" + message);
+            }
+        }, AddAttentionResult.class, null) {
+            @Override
+            public byte[] getBody() throws AuthFailureError {
+                String param = "{\"receiver\":\"" + phone + "\",\"params\":[\"" + name + "\"],\"templateId\":\"4b60e18b-de2e-410f-9de1-819265d9e636\"}";
+                LogUtil.i("param=" + param);
+                return param.getBytes();
+            }
+
+            @Override
+            public Map<String, String> getHeaders() {
+                HashMap<String, String> headers = new HashMap<String, String>();
+                headers.put("Accept", "application/json");
+                headers.put("Content-Type", "application/json; charset=UTF-8");
+                return headers;
+            }
+        };
+        MyApplication.getInstance().getFastVolley().addDefaultRequest("Volley", request);
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (mBind) {
+            activity.unbindService(mServiceConnection);
+        }
+    }
+
+    private void loadUASFriendsNet() {
+        CommonInterface.getInstance().loadCompanyData(new CommonInterface.OnResultListener() {
+            @Override
+            public void result(@NonNull boolean success, @NonNull int what, @Nullable String message) {
+                try {
+                    if (success) {
+                        String role = CommonUtil.getUserRole();
+                        if ("1".equals(role)) {
+                            //个人用户不需要加载企业架构
+                            loadLocalContacts();
+                        }
+                        boolean isB2b = ApiUtils.getApiModel() instanceof ApiPlatform;
+                        JSONObject object = JSON.parseObject(message);
+                        List<EmployeesEntity> emdatas = null;
+                        if (isB2b) {
+                            emdatas = CompanyHandlerInfoUtil.getEmployeesByB2b(object);
+                        } else {
+                            emdatas = CompanyHandlerInfoUtil.getEmployeesByNet(object);
+                        }
+                        if (ListUtils.isEmpty(emdatas)) return;
+                        for (EmployeesEntity entity : emdatas) {
+                            ContactsModel model = new ContactsModel();
+                            model.setImid(String.valueOf(entity.getEm_IMID()));
+                            model.setType(2);
+                            model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
+                            model.setName(entity.getEM_NAME());
+                            model.setEmail(entity.getEM_EMAIL());
+                            model.setPhone(entity.getEM_MOBILE());
+                            model.setWhichsys(entity.getWHICHSYS());
+                            model.setCompany(entity.getCOMPANY());
+                            tmodels.add(model);
+                        }
+                        loadLocalContacts();
+                    } else {
+                        loadLocalContacts();
+                    }
+                } catch (Exception e) {
+                    loadLocalContacts();
+                }
+            }
+        });
+    }
+
+
+    String HASHCODE = Integer.toHexString(this.hashCode()) + "@";
+
+    private void loadUUFriendForNet() {
+        HashMap<String, String> params = new HashMap<String, String>();
+        params.put("access_token", MyApplication.getInstance().mAccessToken);
+        LogUtil.d("Test", "url:" + MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_LIST);
+        LogUtil.d("Test", "access_token" + MyApplication.getInstance().mAccessToken);
+        StringJsonArrayRequest<AttentionUser> request = new StringJsonArrayRequest<AttentionUser>(
+                MyApplication.getInstance().getConfig().FRIENDS_ATTENTION_LIST, new Response.ErrorListener() {
+            @Override
+            public void onErrorResponse(VolleyError arg0) {
+                loadCompanyContacts();
+            }
+        }, new StringJsonArrayRequest.Listener<AttentionUser>() {
+            @Override
+            public void onResponse(ArrayResult<AttentionUser> result) {
+                LogUtil.d("Test", "result:" + result);
+                boolean success = Result.defaultParser(MyApplication.getInstance(), result, false);
+                if (success) {
+                    FriendDao.getInstance().addAttentionUsers(OAHttpHelper.getInstance(), MyApplication.getInstance().mLoginUser.getUserId(), result.getData(),
+                            new OnCompleteListener() {
+                                @Override
+                                public void onCompleted() {
+                                    List<Friend> friends = FriendDao.getInstance().getFriends(MyApplication.getInstance().mLoginUser.getUserId());
+                                    if (!ListUtils.isEmpty(friends)) {
+                                        for (Friend entity : friends) {
+                                            ContactsModel model = new ContactsModel();
+                                            model.setImid(String.valueOf(entity.getUserId()));
+                                            model.setType(1);
+                                            model.setName(entity.getShowName());
+                                            model.setEmail("");
+                                            model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
+                                            model.setPhone(entity.getPhone());
+                                            //uu好友
+                                            model.setWhichsys(CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master"));
+                                            model.setCompany("");
+                                            tmodels.add(model);
+                                        }
+                                    }
+                                    loadUASFriendsNet();
+                                }
+                            });
+                } else {
+                    loadUASFriendsNet();
+                }
+            }
+        }, AttentionUser.class, params);
+        MyApplication.getInstance().getFastVolley().addDefaultRequest(HASHCODE, request);
+    }
+
+    private void searchContactsByNet(String key) {
+        String url = Constants.IM_BASE_URL + "user/appSearch";
+        Map<String, Object> params = new HashMap<>();
+        params.put("token", MyApplication.getInstance().mAccessToken);
+        params.put("name", key);
+
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, 0x01, null, null, "post");
+    }
+
+    private Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case 0x01:
+                    try {
+                        String result = msg.getData().getString("result");
+                        String root = JSON.parseObject(result).getString("result");
+                        JSONArray array = JSON.parseArray(root);
+                        List<ContactsModel> xmodels = new ArrayList<>();
+                        for (int i = 0; i < array.size(); i++) {
+                            ContactsModel model = new ContactsModel();
+                            model.setType(2);
+                            model.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
+                            model.setImid(array.getJSONObject(i).getString("imid"));
+                            model.setName(array.getJSONObject(i).getString("nickname"));
+                            model.setPhone(array.getJSONObject(i).getString("telephone"));
+                            xmodels.add(model);
+                        }
+                        if (!ListUtils.isEmpty(models)) {
+                            models.clear();
+                            models.addAll(xmodels);
+                        } else {
+                            models.addAll(xmodels);
+                        }
+                        if (adapter != null) {
+                            adapter.notifyDataSetChanged();
+                        }
+                        if (adapter.getCount() == 0) {
+                            emptyLayout.showEmpty();
+                        }
+                    } catch (Exception e) {
+
+                    }
+                    break;
+            }
+        }
+    };
+
+
+    //
+    public void uploadData(List<ContactsModel> models) {
+        if (!ListUtils.isEmpty(models)) {
+            StringBuilder mapBuilder = new StringBuilder("[");
+            for (int i = 0; i < models.size(); i++) {
+                if (i == models.size() - 1) {
+                    mapBuilder.append("{\n" +
+                            "\"am_telephone\":\"" + models.get(i).getPhone() + "\",\n" +
+                            "\"am_username\":\"" + models.get(i).getName() + "\",\n" +
+                            "\"am_userid\":\"" + 0 + "\"\n" +
+                            "}]");
+                } else {
+                    mapBuilder.append("{\n" +
+                            "\"am_telephone\":\"" + models.get(i).getPhone() + "\",\n" +
+                            "\"am_username\":\"" + models.get(i).getName() + "\",\n" +
+                            "\"am_userid\":\"" + 0 + "\"\n" +
+                            "},");
+                }
+            }
+
+            HttpClient httpClient = new HttpClient.Builder().url(Constants.IM_BASE_URL)
+                    .add("comParam", "param")
+                    .isDebug(true).build(true);
+            httpClient.Api().send(new HttpClient.Builder()
+                    .url("/user/appMobileContact")
+                    .header("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8")
+                    .add("token", MyApplication.getInstance().mAccessToken)
+                    .add("userid", MyApplication.getInstance().mLoginUser.getUserId())
+                    .add("username", MyApplication.getInstance().mLoginUser.getNickName())
+                    .add("map", mapBuilder.toString())
+                    .method(Method.POST)
+                    .build(), new ResultSubscriber<>(new ResultListener<Object>() {
+
+                @Override
+                public void onResponse(Object o) {
+                    LogUtil.prinlnLongMsg("HttpLogs", o.toString());
+                    LogUtil.d("HttpLogs", "result:" + o.toString());
+                    if (JSONUtil.validate(o.toString())) {
+
+                    }
+                }
+            }));
+        }
+    }
 }

+ 3 - 6
app_modular/appme/src/main/AndroidManifest.xml

@@ -53,18 +53,15 @@
             android:label="新增人员"
             android:windowSoftInputMode="adjustPan"/>
         <activity android:name=".settings.activity.PersonSettingListActivity"
-            android:label="@string/more"/>
+            />
         <activity android:name=".settings.activity.BComSetEmployeeRestActivity"
             android:label="设置员工休息日"/>
         <activity android:name=".settings.activity.BComSetCompanyRestActivity"
             android:label="设置企业休息日"/>
         <activity android:name=".settings.activity.BSettingLocationActivity"
             android:label="设置服务/场地/房间"/>
-            android:label="批量设置服务/场地/房间"/>
-        <activity android:name=".settings.activity.BRestActivity"
-            android:label="@string/more"/>
-        <activity android:name=".settings.activity.BSetComRestListActivity"
-            android:label="@string/more"/>
+        <activity android:name=".settings.activity.BRestActivity" />
+        <activity android:name=".settings.activity.BSetComRestListActivity" />
         <activity android:name=".settings.activity.BusinessHoursSetting"
             android:label="设置营业时间"/>
     </application>

+ 3 - 1
app_modular/appme/src/main/java/com/uas/appme/settings/Constant/Constant.java

@@ -11,10 +11,12 @@ import com.core.utils.CommonUtil;
 public class Constant {
     public static String BAIDU_PUSH = "BAIDUPUSH";
     public static String UU_STEP = "UUSTEP";
-    public static String BASE_BOOKING_SETTING_URL= "http://113.105.74.140:8092/";
+    public static String BASE_BOOKING_SETTING_URL= "http://113.105.74.140:8092/"; //发布正式ip
+//    public static String BASE_BOOKING_SETTING_URL= "http://192.168.253.136:8092/";   //测试LQM本地ip
     public static String BASE_COMPANYID =  CommonUtil.getSharedPreferences(MyApplication.getInstance(),"erp_uu");
 //    public static String BASE_COMPANYID = "201";
 
     public static String B_SETTINGRED = "B_SETTINGRED";
     public static String UU_STEP_RED = "UU_STEP_RED";
+    public static String BASE_LQM_URL = "http://192.168.253.136:8092/";
 }

+ 4 - 0
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BComSetCompanyRestActivity.java

@@ -136,6 +136,10 @@ public class BComSetCompanyRestActivity extends BaseActivity implements View.OnC
                 LogUtil.prinlnLongMsg("appBatchMrest", o.toString()+"");
                 if (o.toString().contains("result") && JSON.parseObject(o.toString()).getBooleanValue("result")) {
                     Toast.makeText(ct,getString(R.string.common_save_success),Toast.LENGTH_LONG).show();
+                    startActivity(new Intent(ct,BSetComRestListActivity.class)
+                            .putExtra("sc_industry",sc_industry)
+                            .putExtra("sc_industrycode",sc_industrycode)
+                            .putExtra("type","company"));
                     finish();
                 }
                 progressDialog.dismiss();

+ 4 - 0
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BComSetEmployeeRestActivity.java

@@ -197,6 +197,10 @@ public class BComSetEmployeeRestActivity extends BaseActivity implements View.On
                 LogUtil.prinlnLongMsg("appBatchMrest", o.toString()+"");
                 if (o.toString().contains("result") && JSON.parseObject(o.toString()).getBooleanValue("result")) {
                     Toast.makeText(ct,getString(R.string.common_save_success),Toast.LENGTH_LONG).show();
+                    startActivity(new Intent(ct,BSetComRestListActivity.class)
+                            .putExtra("sc_industry",sc_industry)
+                            .putExtra("sc_industrycode",sc_industrycode)
+                            .putExtra("type","eomployee"));
                     finish();
                 }
                 progressDialog.dismiss();

+ 3 - 0
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BSetComRestListActivity.java

@@ -210,12 +210,15 @@ public class BSetComRestListActivity extends BaseActivity {
 
 		switch (type) {
 			case "eomployee":
+				getSupportActionBar().setTitle("员工休息日");
 				psetting_list.setAdapter(emyAdapter);
 				break;
 			case "company":
+				getSupportActionBar().setTitle("企业休息日");
 				psetting_list.setAdapter(cmyAdapter);
 				break;
 			case "place":
+				getSupportActionBar().setTitle("服务/场地/房间");
 				psetting_list.setAdapter(pmyAdapter);
 				break;
 		}

+ 3 - 0
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BSettingActivity.java

@@ -94,6 +94,8 @@ public class BSettingActivity extends BaseActivity implements View.OnClickListen
         }else if (v.getId() == R.id.booking_timetype_rl){
             startActivity(new Intent(ct,BusinessHoursSetting.class)
                     .putExtra("setType",2));
+        }else if (v.getId() == R.id.business_introduction_rl){
+
         }
     }
 
@@ -106,5 +108,6 @@ public class BSettingActivity extends BaseActivity implements View.OnClickListen
         findViewById(R.id.batchplace_rl).setOnClickListener(this);
         findViewById(R.id.business_hours_rl).setOnClickListener(this);
         findViewById(R.id.booking_timetype_rl).setOnClickListener(this);
+        findViewById(R.id.business_introduction_rl).setOnClickListener(this);
     }
 }

+ 33 - 9
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BSettingLocationActivity.java

@@ -21,6 +21,7 @@ import android.widget.TextView;
 import android.widget.Toast;
 
 import com.alibaba.fastjson.JSON;
+import com.andreabaccega.widget.FormEditText;
 import com.common.LogUtil;
 import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
@@ -149,6 +150,10 @@ public class BSettingLocationActivity extends BaseActivity implements View.OnCli
     @Override
     public void onClick(View v) {
         if (v.getId() == R.id.add_new_rl){
+            if (StringUtil.isEmpty(mList.get(mList.size()-1).getSt_name())){
+                ToastMessage("请输入名称");
+                return;
+            }
             BSetLocationBean model = new BSetLocationBean();
             model.setSt_companyname(CommonUtil.getSharedPreferences(MyApplication.getInstance(),"erp_commpany"));
             model.setSt_companyid(CommonUtil.getSharedPreferences(MyApplication.getInstance(),"erp_uu"));
@@ -277,6 +282,10 @@ public class BSettingLocationActivity extends BaseActivity implements View.OnCli
                         LogUtil.prinlnLongMsg("appBatchPlace", o.toString()+"");
                         if (o.toString().contains("result") && JSON.parseObject(o.toString()).getBooleanValue("result")) {
                             Toast.makeText(ct,getString(R.string.common_save_success),Toast.LENGTH_LONG).show();
+                            startActivity(new Intent(ct,BSetComRestListActivity.class)
+                                    .putExtra("sc_industry",sc_industry)
+                                    .putExtra("sc_industrycode",sc_industrycode)
+                                    .putExtra("type","place"));
                             finish();
                         }
                         progressDialog.dismiss();save_bt.setEnabled(true);
@@ -328,29 +337,44 @@ public class BSettingLocationActivity extends BaseActivity implements View.OnCli
             ViewHolder viewHolder = null;
             if (convertView == null){
                 viewHolder = new ViewHolder();
-                convertView =  View.inflate(mContext, R.layout.com_location_item,null);
-                viewHolder.name_tv = (TextView) convertView.findViewById(R.id.name_tv);
+                convertView =  View.inflate(mContext, R.layout.com_location_input_item,null);
+                viewHolder.name_tv = (FormEditText) convertView.findViewById(R.id.name_tv);
                 viewHolder.industry_tv = (TextView) convertView.findViewById(R.id.industry_tv);
                 convertView.setTag(viewHolder);
+                viewHolder.name_tv.setFocusable(false);
+                viewHolder.name_tv.setKeyListener(null);
             }else {
                 viewHolder = (ViewHolder) convertView.getTag();
             }
-
-            if (!ListUtils.isEmpty(modelList)){
-                viewHolder.name_tv.setText(modelList.get(position).getSt_name()+"");
-                viewHolder.industry_tv.setText(modelList.get(position).getSt_siid()+"");
-            }
-
             viewHolder.name_tv.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
                     doInputName(position);
                 }
             });
+
+            /*viewHolder.name_tv.addTextChangedListener(new TextWatcher() {
+                @Override
+                public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
+                @Override
+                public void onTextChanged(CharSequence s, int start, int before, int count) {}
+                @Override
+                public void afterTextChanged(Editable s) {
+//                    String strChche =  s.toString().replace(" ", "");//去除空格
+//                    strChche = strChche.replace(" ", " ");//去除空格
+                    if(StringUtil.isEmpty(s.toString())) return;
+                    mList.get(position).setSt_name(s.toString());
+                    myAdapter.notifyDataSetChanged();
+                }
+            });
+*/
+            if (!ListUtils.isEmpty(modelList)){
+                viewHolder.name_tv.setText(modelList.get(position).getSt_name()+"");
+            }
             return convertView;
         }
         class ViewHolder{
-            TextView name_tv;
+            FormEditText name_tv;
             TextView industry_tv;
         }
     }

+ 6 - 8
app_modular/appme/src/main/java/com/uas/appme/settings/activity/ImageSettingActivity.java

@@ -77,7 +77,7 @@ public class ImageSettingActivity extends BaseActivity implements View.OnClickLi
         findViewById(R.id.image_tv).setOnClickListener(this);
         findViewById(R.id.btn_save).setOnClickListener(this);
         mProgressDialog = ProgressDialogUtil.init(mContext, null, getString(R.string.please_wait));
-
+        mImageIm.setOnClickListener(this);
         String business_iamge = getIntent().getStringExtra("business_iamge");
         if (!StringUtil.isEmpty(business_iamge))
             ImageLoader.getInstance().displayImage(business_iamge,mImageIm);
@@ -85,10 +85,10 @@ public class ImageSettingActivity extends BaseActivity implements View.OnClickLi
 
     @Override
     public void onClick(View v) {
-        if (v.getId() == R.id.image_tv){
+        if (v.getId() == R.id.image_tv || v.getId() == R.id.image_im){
             if (PermissionUtil.lacksPermissions(ct, Manifest.permission.CAMERA)) {
                 PermissionUtil.requestPermission(ImageSettingActivity.this,PermissionUtil.DEFAULT_REQUEST,Manifest.permission.CAMERA);
-//                ToastUtil.showToast(ct,R.string.not_camera_permission);
+                ToastUtil.showToast(ct,R.string.not_camera_permission);
             } else {
                 showSelectPictureDialog();//添加
             }
@@ -180,7 +180,7 @@ public class ImageSettingActivity extends BaseActivity implements View.OnClickLi
                 }
         }
     }));
-    }
+	}
 
 
     @Override
@@ -190,8 +190,6 @@ public class ImageSettingActivity extends BaseActivity implements View.OnClickLi
         if (requestCode == 0x01 && resultCode == 0x02 && data != null){  //新的多选方式
             photoselect = data.getStringArrayListExtra("files").get(0);
             mImageIm.setImageURI(Uri.fromFile(new File(photoselect)));
-            Log.i("files0x01",data.getStringArrayListExtra("files").toString());
-            Log.i("files0x01",photoselect);
         }else if (requestCode == REQUEST_CODE_CAPTURE_PHOTO) {// 拍照返回
             if (resultCode == Activity.RESULT_OK) {
                 if (mNewPhotoUri != null) {
@@ -207,8 +205,8 @@ public class ImageSettingActivity extends BaseActivity implements View.OnClickLi
             if (resultCode == Activity.RESULT_OK){
                 if (data != null && data.getData() != null){
                     photoselect= CameraUtil.getImagePathFromUri(this, data.getData());
-//                    mImageIm.setImageURI(Uri.fromFile(new File(photoselect)));
-                    ImageLoader.getInstance().displayImage(photoselect,mImageIm);
+                    mImageIm.setImageURI(Uri.fromFile(new File(photoselect)));
+//                    ImageLoader.getInstance().displayImage(photoselect,mImageIm);
                     Log.i("files0x01",photoselect);
                 }
             }

+ 261 - 19
app_modular/appme/src/main/java/com/uas/appme/settings/activity/PersonSettingActivity.java

@@ -1,39 +1,66 @@
 package com.uas.appme.settings.activity;
 
+import android.Manifest;
+import android.app.Activity;
 import android.app.AlertDialog;
+import android.app.ProgressDialog;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.net.Uri;
 import android.os.Bundle;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.Button;
+import android.widget.ImageView;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 import android.widget.Toast;
 
 import com.alibaba.fastjson.JSON;
 import com.andreabaccega.widget.FormEditText;
+import com.android.volley.AuthFailureError;
+import com.android.volley.Request;
+import com.android.volley.Response;
+import com.android.volley.VolleyError;
 import com.common.LogUtil;
 import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.common.hmac.Md5Util;
+import com.common.system.PermissionUtil;
+import com.common.ui.CameraUtil;
+import com.common.ui.ImageUtil;
+import com.common.ui.ProgressDialogUtil;
 import com.core.app.MyApplication;
 import com.core.base.BaseActivity;
 import com.core.model.SelectBean;
+import com.core.net.volley.ObjectResult;
+import com.core.net.volley.Result;
+import com.core.net.volley.StringJsonObjectRequest;
 import com.core.utils.CommonUtil;
+import com.core.utils.ToastUtil;
+import com.core.utils.helper.AvatarHelper;
 import com.core.widget.view.Activity.SelectActivity;
-import com.iflytek.cloud.thirdparty.V;
+import com.core.xmpp.model.AddAttentionResult;
+import com.loopj.android.http.AsyncHttpClient;
+import com.loopj.android.http.AsyncHttpResponseHandler;
+import com.loopj.android.http.RequestParams;
 import com.me.network.app.http.HttpClient;
 import com.me.network.app.http.Method;
 import com.me.network.app.http.rx.ResultListener;
 import com.me.network.app.http.rx.ResultSubscriber;
+import com.nostra13.universalimageloader.core.ImageLoader;
 import com.uas.appme.R;
 import com.uas.appme.settings.Constant.Constant;
 import com.uas.appme.settings.model.BSettingPlaceBean;
 import com.uas.appme.settings.model.PersonSetingBean;
+import com.umeng.socialize.utils.Log;
 
+import org.apache.http.Header;
+
+import java.io.File;
+import java.io.FileNotFoundException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -61,13 +88,25 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
     private String result;
     private String sm_userid;
     private Button deleteBtn;
+    private ImageView image_im;
+    private Uri mNewPhotoUri;// 拍照和图库 获得图片的URI
+    private static final int REQUEST_CODE_CAPTURE_PHOTO = 1;// 拍照
+    private static final int REQUEST_CODE_PICK_PHOTO = 2;//单选照片
+    private String photoselect=null;
+    private ProgressDialog mProgressDialog;
+    private Boolean updateChangeP = false; //更新是否更换了头像,若没换
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.person_setting_activity);
-
         initView();
         initData();
+        String[] permissions = new String[]{Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE};
+        for (String permission : permissions) {
+            if (PermissionUtil.lacksPermissions(ct, permission)) {
+                PermissionUtil.requestPermission(this, PermissionUtil.DEFAULT_REQUEST, permission);
+            }
+        }
     }
 
 
@@ -84,6 +123,9 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
         mDepartmentRl = (RelativeLayout) findViewById(R.id.user_department_rl);
         user_department_tv = (TextView) findViewById(R.id.user_department_tv);
         deleteBtn = (Button)findViewById(R.id.deleteBtn);
+        image_im = (ImageView) findViewById(R.id.image_im);
+        image_im.setOnClickListener(this);
+        findViewById(R.id.image_tv_).setOnClickListener(this);
 
         deleteBtn.setOnClickListener(this);
         mUserSexTv.setKeyListener(null);
@@ -99,7 +141,7 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
         sc_industry = getIntent().getStringExtra("sc_industry");
         sc_industrycode = getIntent().getStringExtra("sc_industrycode");
 
-
+        mProgressDialog = ProgressDialogUtil.init(mContext, null, getString(R.string.please_wait));
     }
     private void initData() {
 
@@ -118,7 +160,9 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
       if (!"医疗".equals(sc_industry))
           user_department_tv.setText("部门");
 
-        HttpClient httpClient = new HttpClient.Builder(Constant.BASE_BOOKING_SETTING_URL).isDebug(true).build(true);
+        HttpClient httpClient =
+//                new HttpClient.Builder(Constant.BASE_BOOKING_SETTING_URL).isDebug(true).build(true);\
+                new HttpClient.Builder(Constant.BASE_BOOKING_SETTING_URL).isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
                 .url("user/appPlaceList")
                 .add("companyid",CommonUtil.getSharedPreferences(MyApplication.getInstance(),"erp_uu"))
@@ -159,9 +203,10 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
             sm_id = model.getResult().get(position).getSm_id();
             mBtnSave.setText(getString(R.string.common_update_button));
             getSupportActionBar().setTitle(getString(R.string.common_update_button));
-
             sm_userid = model.getResult().get(position).getSm_userid();
-
+            AvatarHelper.getInstance().display(sm_userid, image_im, true, true); //显示头像照片
+            photoselect = AvatarHelper.getAvatarUrl(sm_userid,true);
+            Log.i("files0x01",photoselect);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -185,9 +230,46 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
             saveJudge();
         }else if (v.getId() == R.id.deleteBtn){
             doDelete();
+        }else if (v.getId() == R.id.image_im || v.getId() == R.id.image_tv_){
+            if (PermissionUtil.lacksPermissions(ct, Manifest.permission.CAMERA)) {
+                PermissionUtil.requestPermission(PersonSettingActivity.this,PermissionUtil.DEFAULT_REQUEST,Manifest.permission.CAMERA);
+                ToastUtil.showToast(ct,R.string.not_camera_permission);
+            } else {
+                showSelectPictureDialog();//添加
+            }
+        }
+    }
+    private void showSelectPictureDialog() {
+        String[] items = new String[]{getString(com.uas.appworks.R.string.c_take_picture), getString(com.uas.appworks.R.string.c_photo_album)};
+        AlertDialog.Builder builder = new AlertDialog.Builder(this).setSingleChoiceItems(items, 0,
+                new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        if (which == 0) {
+                            try {
+                                takePhoto();
+                            } catch (Exception e) {
+                                String message=e.getMessage();
+                                if (!StringUtil.isEmpty(message)&&message.contains("Permission")){
+                                    ToastUtil.showToast(ct,R.string.not_system_permission);
+                                }
+                            }
+                        } else {
+                            CameraUtil.pickImageSimple(PersonSettingActivity.this, REQUEST_CODE_PICK_PHOTO);  //传统单选方式
+                        }
+                        dialog.dismiss();
+                    }
+                });
+        builder.show();
+    }
+    private void takePhoto() {
+        try {
+            mNewPhotoUri = CameraUtil.getOutputMediaFileUri(this, MyApplication.getInstance().getLoginUserId(), CameraUtil.MEDIA_TYPE_IMAGE);
+            CameraUtil.captureImage(this, mNewPhotoUri, REQUEST_CODE_CAPTURE_PHOTO);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
     }
-
     private void doDelete() {
         HttpClient httpClient = new HttpClient.Builder(Constant.BASE_BOOKING_SETTING_URL).isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
@@ -214,7 +296,6 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
             }
         }));
     }
-
     private void doSelectDepartment(List<String> department, int requestCode) {
         ArrayList<SelectBean> beans = new ArrayList<>();
         SelectBean bean = null;
@@ -243,8 +324,8 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
-        if (data == null) return;
         if (resultCode == 0x20) {
+            if (data == null) return;
             SelectBean b = data.getParcelableExtra("data");
             if (b == null) return;
             String department = StringUtil.isEmpty(b.getName()) ? "" : b.getName();
@@ -252,9 +333,45 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
                 mUserDepartmentEv.setText(department);
             }
         }
+        if (requestCode == REQUEST_CODE_CAPTURE_PHOTO) {// 拍照返回
+            if (resultCode == Activity.RESULT_OK) {
+                if (mNewPhotoUri != null) {
+                    photoselect = mNewPhotoUri.getPath();
+                    ImageLoader.getInstance().displayImage(mNewPhotoUri.toString(),image_im);
+                    Log.i("files0x01",photoselect);
+                    updateChangeP = true;
+                } else {
+                    ToastUtil.showToast(this, com.uas.appworks.R.string.c_take_picture_failed);
+                }
+            }
+        }else if (requestCode == REQUEST_CODE_PICK_PHOTO) {// 传统单选方式,选择一张图片,然后立即调用裁减
+            if (resultCode == Activity.RESULT_OK){
+                if (data != null && data.getData() != null){
+                    photoselect= CameraUtil.getImagePathFromUri(this, data.getData());
+                    image_im.setImageURI(Uri.fromFile(new File(photoselect)));
+//                    ImageLoader.getInstance().displayImage(photoselect,image_im);
+                    Log.i("files0x01",photoselect);
+                    updateChangeP = true;
+                }
+            }
+        }
     }
 
     private void saveJudge() {
+        File file=  new File(photoselect);
+        if (StringUtil.isEmpty(result)){
+            if (!file.exists()) {// 录入时的,且图片文件不存在
+                ToastMessage("请添加头像照片");
+                return;
+            } else {
+                doSave();
+            }
+        }else
+            doSave();
+
+    }
+
+    private void doSave() {
         if (mUserNameTv.testValidity() && mUserSexTv.testValidity()
                 && mUserTelTv.testValidity()){
             if (!StringUtil.isEmpty(mUserEmailTv.getText().toString())) {
@@ -265,7 +382,6 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
                 }
             }else
                 saveRequest();
-
         }
     }
 
@@ -287,7 +403,9 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
         params.put("sm_email",mUserEmailTv.getText().toString());
         LogUtil.prinlnLongMsg("appPersonSet",JSONUtil.map2JSON(params));
 
-        HttpClient httpClient = new HttpClient.Builder(Constant.BASE_BOOKING_SETTING_URL).isDebug(true).build(true);
+        HttpClient httpClient =
+//                new HttpClient.Builder(Constant.BASE_BOOKING_SETTING_URL).isDebug(true).build(true);
+                    new HttpClient.Builder(Constant.BASE_BOOKING_SETTING_URL).isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
                 .url("user/appPersonSet")
                 .add("map", JSONUtil.map2JSON(params))
@@ -302,19 +420,145 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
                 .build(),new ResultSubscriber<>(new ResultListener<Object>() {
             @Override
             public void onResponse(Object o) {
-                if (!JSONUtil.validate(o.toString()) || o == null) return;
                 LogUtil.prinlnLongMsg("appPersonSet", o.toString()+"");
-                if (o.toString().contains("result") && JSON.parseObject(o.toString()).getBoolean("result")){
-                    Toast.makeText(ct,getString(R.string.common_save_success),Toast.LENGTH_LONG).show();
-                    setResult(20);
-                    finish();
-                }else
+
+                try {
+                    if (!JSONUtil.validate(o.toString()) || o == null) return;
+                    if (o.toString().contains("result") && JSON.parseObject(o.toString()).getBoolean("result")){
+                        if (o.toString().contains("imid")){
+                            String imid = JSON.parseObject(o.toString()).getString("imid");
+                            if (StringUtil.isEmpty(imid)) return;
+                            if (updateChangeP) {  //更换过照片
+                                unLoadHeader(imid);
+                            }else {
+                                beforeSendMsg();  //只有在更新操作时且没换头像走这里
+                            }
+                        }else
+                            beforeSendMsg();
+
+                    }else
+                        ToastMessage(getString(R.string.save_failed));
+                } catch (Exception e) {
+                    e.printStackTrace();
                     ToastMessage(getString(R.string.save_failed));
+                }
             }
         }));
 
     }
 
+    private void jumpTo() {
+        if (!StringUtil.isEmpty(sm_id)){
+            Toast.makeText(ct,getString(R.string.update_success),Toast.LENGTH_LONG).show();
+            setResult(20);
+        }else {
+            Toast.makeText(ct,getString(R.string.common_save_success),Toast.LENGTH_LONG).show();
+            startActivity(new Intent(PersonSettingActivity.this,PersonSettingListActivity.class)
+                    .putExtra("sc_industry",sc_industry)
+                    .putExtra("sc_industrycode",sc_industrycode));
+        }
+        finish();
+    }
+
+    private void unLoadHeader(String imid) {
+        File file=  new File(photoselect);
+        if (!file.exists()) {// 文件不存在
+            return;
+        }
+
+        file = ImageUtil.compressBitmapToFile(photoselect,100,360,480);  //压缩
+        // 显示正在上传的ProgressDialog
+        ProgressDialogUtil.show(mProgressDialog, getString(R.string.upload_avataring));
+        RequestParams params = new RequestParams();
+//        String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
+        params.put("userId", imid);
+        try {
+            params.put("file1", file);
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        }
+
+        AsyncHttpClient client = new AsyncHttpClient();
+        LogUtil.i("url=" + mConfig.AVATAR_UPLOAD_URL);
+        LogUtil.i("params=" + params.toString());
+        client.post(mConfig.AVATAR_UPLOAD_URL, params, new AsyncHttpResponseHandler() {
+            @Override
+            public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
+                boolean success = false;
+                if (arg0 == 200) {
+                    Result result = null;
+                    try {
+                        result = JSON.parseObject(new String(arg2), Result.class);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                    if (result != null && result.getResultCode() == Result.CODE_SUCCESS) {
+                        success = true;
+                    }
+                }
+                ProgressDialogUtil.dismiss(mProgressDialog);
+                if (success) {
+                    ToastUtil.showToast(PersonSettingActivity.this, R.string.upload_avatar_success);
+                    beforeSendMsg();
+
+                } else {
+                    ToastUtil.showToast(PersonSettingActivity.this, R.string.upload_avatar_failed);
+                }
+
+            }
+
+            @Override
+            public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
+                ProgressDialogUtil.dismiss(mProgressDialog);
+                ToastUtil.showToast(PersonSettingActivity.this, R.string.upload_avatar_failed);
+            }
+        });
+    }
+
+    private void beforeSendMsg() {
+        String name = CommonUtil.getName();
+        String phone = mUserTelTv.getText().toString().trim().replaceAll(" ", "");
+        String modeid1 = "0398e112-97a3-40b0-8430-0e871ef22524";
+
+        String modeid2 = "fd4ac30e-b176-4410-ac0e-e39c8b71dfe0";
+
+        sendMessages(modeid1,name,phone);
+        sendMessages(modeid2,name,phone);
+    }
+
+    private void sendMessages( final String modeid, final String name, final String phone) {
+        StringJsonObjectRequest<AddAttentionResult> request = new StringJsonObjectRequest<AddAttentionResult>(
+                Request.Method.POST, "http://message.ubtob.com/sms/send", new Response.ErrorListener() {
+            @Override
+            public void onErrorResponse(VolleyError arg0) {
+//                dimssLoading();
+            }
+        }, new StringJsonObjectRequest.Listener<AddAttentionResult>() {
+            @Override
+            public void onResponse(ObjectResult<AddAttentionResult> result) {
+                Toast.makeText(ct,"短信发送成功",Toast.LENGTH_LONG).show();
+                jumpTo();
+
+            }
+        }, AddAttentionResult.class, null) {
+            @Override
+            public byte[] getBody() throws AuthFailureError {
+                String param = "{\"receiver\":\"" + phone + "\",\"params\":[\"" + name + "\"],\"templateId\":\"" + modeid + "\"}";
+                LogUtil.i("param=" + param);
+                return param.getBytes();
+            }
+
+            @Override
+            public Map<String, String> getHeaders() {
+                HashMap<String, String> headers = new HashMap<String, String>();
+                headers.put("Accept", "application/json");
+                headers.put("Content-Type", "application/json; charset=UTF-8");
+                return headers;
+            }
+        };
+        MyApplication.getInstance().getFastVolley().addDefaultRequest("Volley", request);
+    }
+
     private void showSelectSexDialog() {
         // 1是男,0是女,2是全部
         String[] sexs = new String[]{ getString(com.uas.appcontact.R.string.user_body), getString(com.uas.appcontact.R.string.user_girl)};
@@ -361,6 +605,4 @@ public class PersonSettingActivity extends BaseActivity implements View.OnClickL
         }
         return super.onOptionsItemSelected(item);
     }
-
-
 }

+ 1 - 1
app_modular/appme/src/main/java/com/uas/appme/settings/activity/PersonSettingListActivity.java

@@ -67,7 +67,7 @@ public class PersonSettingListActivity extends BaseActivity {
     }
     private void initData() {
         LogUtil.prinlnLongMsg("initData()","initData()");
-
+        getSupportActionBar().setTitle("人员列表");
         //接收商家类型
         sc_industry = getIntent().getStringExtra("sc_industry");
         sc_industrycode = getIntent().getStringExtra("sc_industrycode");

+ 7 - 4
app_modular/appme/src/main/java/com/uas/appme/settings/activity/SettingActivity.java

@@ -34,6 +34,7 @@ import com.baidu.autoupdatesdk.CPCheckUpdateCallback;
 import com.baidu.autoupdatesdk.UICheckUpdateCallback;
 import com.common.LogUtil;
 import com.common.data.JSONUtil;
+import com.common.data.StringUtil;
 import com.common.file.FileUtils;
 import com.common.preferences.PreferenceUtils;
 import com.common.system.DisplayUtil;
@@ -187,7 +188,11 @@ public class SettingActivity extends BaseActivity implements View.OnClickListene
         findViewById(R.id.clear_cache_rl).setOnClickListener(this);
         findViewById(R.id.use_help_rl).setOnClickListener(this);
         findViewById(R.id.about_us_rl).setOnClickListener(this);
-        long cacheSize = FileUtils.getFileSize(new File(MyApplication.getInstance().mAppDir));
+        String path= MyApplication.getInstance().mAppDir;
+        if (StringUtil.isEmpty(path)){
+            path=getCacheDir().getPath();
+        }
+        long cacheSize = FileUtils.getFileSize(new File(path));
         mCacheTv.setText(FileUtils.formatFileSize(cacheSize));
         uas_website_tv.setText(CommonUtil.getSharedPreferences(this, "erp_baseurl"));
 
@@ -298,7 +303,7 @@ public class SettingActivity extends BaseActivity implements View.OnClickListene
 //                            businessmen_setting_rl.setVisibility(View.VISIBLE);
 //                        }
                         else{
-                            businessmen_setting_rl.setVisibility(View.GONE);
+                            businessmen_setting_rl.setVisibility(View.VISIBLE);
                         }
                     }
                 } catch (Exception e) {
@@ -307,8 +312,6 @@ public class SettingActivity extends BaseActivity implements View.OnClickListene
             }
         }));
 
-        if (CommonUtil.isReleaseVersion())
-            businessmen_setting_rl.setVisibility(View.GONE);
     }
 
     private boolean isServiceRunning(String servicename) { // 判断某个服务是否已经运行

+ 120 - 0
app_modular/appme/src/main/res/layout/com_location_input_item.xml

@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    xmlns:whatever="http://schemas.android.com/tools"
+    android:layout_marginLeft="25dp"
+    android:layout_marginRight="25dp"
+    android:orientation="vertical">
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginBottom="10dp"
+        android:background="@drawable/text_hint_bg"
+        android:textColor="@color/green"
+        android:textSize="16sp"
+        android:visibility="gone"
+        />
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:background="@drawable/rl_circular_bg">
+
+        <RelativeLayout
+            android:id="@id/name_rl"
+            style="@style/IMTbleLine2"
+            android:layout_height="50dp"
+            android:background="@color/white"
+            >
+
+            <TextView
+                android:id="@+id/of_add_set_range_text"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_centerVertical="true"
+                android:text="名称"
+                android:textSize="14sp"
+                />
+
+            <com.andreabaccega.widget.FormEditText
+                android:id="@+id/name_tv"
+                style="@style/IMTbleLine_TextValue"
+                android:layout_toLeftOf="@+id/of_add_set_range_img"
+                android:layout_toRightOf="@+id/of_add_set_range_text"
+                android:textColor="@color/dark_dark_grey"
+                android:padding="10dp"
+                android:hint="@string/common_input"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentRight="true"
+                android:layout_centerVertical="true"
+                android:background="@null"
+                android:textSize="15sp"
+                android:gravity="center_vertical|right"
+                whatever:testType="regexp"
+                whatever:customRegexp="^[A-Za-z\u4e00-\u9fa5]{1,8}+$"
+                whatever:testErrorString="姓名只能为12个字符之内的中、英文"
+                android:layout_marginLeft="10dp"
+                />
+            <ImageView
+                android:id="@+id/of_add_set_range_img"
+                android:layout_width="@dimen/next_width"
+                android:layout_height="@dimen/next_height"
+                android:layout_alignParentRight="true"
+                android:layout_centerVertical="true"
+                android:background="@drawable/oa_next"
+                android:contentDescription="@string/app_name"
+                android:visibility="gone"
+                />
+        </RelativeLayout>
+        <View
+            android:id="@+id/line"
+            android:layout_width="match_parent"
+            android:layout_height="2px"
+            android:background="@color/item_line"
+            android:layout_below="@+id/position_tv"
+            android:layout_marginLeft="20dp"
+            android:layout_marginRight="20dp"
+            android:visibility="gone"
+            />
+        <RelativeLayout
+            style="@style/IMTbleLine2"
+            android:layout_height="50dp"
+            android:background="@color/white"
+            android:visibility="gone"
+            >
+
+            <TextView
+                android:id="@+id/of_add_set_range_text2"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="行业"
+                android:textSize="14sp"
+                android:layout_alignParentTop="true"
+                android:layout_alignParentLeft="true"
+                android:layout_alignParentStart="true"
+                android:layout_marginTop="16dp" />
+
+            <TextView
+                android:id="@+id/industry_tv"
+                style="@style/IMTbleLine_TextValue"
+                android:textColor="@color/dark_dark_grey"
+                android:padding="10dp"
+                android:layout_alignBaseline="@+id/of_add_set_range_text2"
+                android:layout_alignBottom="@+id/of_add_set_range_text2"
+                android:layout_toRightOf="@+id/of_add_set_range_text2"
+                android:layout_toEndOf="@+id/of_add_set_range_text2" />
+            <ImageView
+                android:id="@+id/of_add_set_range_img2"
+                android:layout_width="@dimen/next_width"
+                android:layout_height="@dimen/next_height"
+                android:layout_alignParentRight="true"
+                android:layout_centerVertical="true"
+                android:background="@drawable/oa_next"
+                android:contentDescription="@string/app_name"
+                />
+        </RelativeLayout>
+    </LinearLayout>
+</LinearLayout>

+ 2 - 2
version.gradle

@@ -11,8 +11,8 @@ ext {
             minSdkVersion    : 9,
             targetSdkVersion : 24,
             javaVersion      : JavaVersion.VERSION_1_8,
-            versionCode      : 122,
-            versionName      : '6.0.1',
+            versionCode      : 123,
+            versionName      : '6.0.3',
     ]
 
     depsVersion = [