Browse Source

fix im 解决问题:切换网络的时候,同时有wifi和流量的时候,切换wifi开关导致im连接断开的情况,现在已经解决。在im库之前没有升级版本之前,是不会产生这个问题。

Arison 8 years ago
parent
commit
c4b5b02bf2
24 changed files with 851 additions and 96 deletions
  1. 0 1
      WeiChat/src/main/AndroidManifest.xml
  2. 2 11
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/secretary/BookingAddActivity.java
  3. 33 20
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/secretary/BookingListActivity.java
  4. 7 7
      WeiChat/src/main/res/layout/activity_booking_list.xml
  5. 20 4
      WeiChat/src/main/res/layout/activity_contacts.xml
  6. 10 3
      WeiChat/src/main/res/layout/item_contact_layout.xml
  7. 1 1
      app_core/common/src/main/java/com/core/widget/view/Activity/SelectActivity.java
  8. 18 3
      app_core/common/src/main/res/layout/activity_contacts.xml
  9. 1 4
      app_core/common/src/main/res/layout/activity_select.xml
  10. 10 4
      app_core/common/src/main/res/layout/item_contact_layout.xml
  11. 2 0
      app_modular/appbooking/build.gradle
  12. 3 2
      app_modular/appbooking/src/main/AndroidManifest.xml
  13. 111 0
      app_modular/appbooking/src/main/java/com/modular/booking/activity/business/BBCompanyListActivity.java
  14. 295 0
      app_modular/appbooking/src/main/java/com/modular/booking/activity/business/BBookingAddActivity.java
  15. 0 19
      app_modular/appbooking/src/main/java/com/modular/booking/activity/business/BbookingAddActivity.java
  16. 5 1
      app_modular/appbooking/src/main/java/com/modular/booking/activity/shares/BBSharesListActivity.java
  17. 21 0
      app_modular/appbooking/src/main/res/layout/activity_bbcompany_list.xml
  18. 193 1
      app_modular/appbooking/src/main/res/layout/activity_bbooking_add.xml
  19. 1 1
      app_modular/appbooking/src/main/res/layout/activity_shares_list.xml
  20. 2 0
      app_modular/appbooking/src/main/res/values/strings.xml
  21. 4 0
      app_modular/appcontact/src/main/AndroidManifest.xml
  22. 17 2
      app_modular/appcontact/src/main/java/com/uas/appcontact/adapter/ContactsAdapter.java
  23. 11 1
      app_modular/appcontact/src/main/java/com/uas/appcontact/model/contacts/ContactsModel.java
  24. 84 11
      app_modular/appcontact/src/main/java/com/uas/appcontact/ui/activity/ContactsActivity.java

+ 0 - 1
WeiChat/src/main/AndroidManifest.xml

@@ -1040,7 +1040,6 @@
         <activity
             android:name=".ui.erp.activity.oa.AddContactsActivity"
             android:label="@string/add_contact">
-
         </activity>
         <activity
             android:name=".ui.erp.activity.oa.AddVisitReportActivity"

+ 2 - 11
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/secretary/BookingAddActivity.java

@@ -59,8 +59,7 @@ import java.util.regex.Pattern;
  * @author:Arison on 2017/6/22
  */
 public class BookingAddActivity extends OABaseActivity implements HttpImp, View.OnClickListener {
-
-
+    
     private TextView tvBookObject;
     private RelativeLayout companyAddRl;
     private RelativeLayout rlObject;
@@ -151,9 +150,7 @@ public class BookingAddActivity extends OABaseActivity implements HttpImp, View.
         });
     }
 
-    private EditText getEtBookContent() {
-        return (EditText) findViewById(R.id.et_book_content);
-    }
+  
 
     @Override
     public void onClick(View view) {
@@ -225,12 +222,6 @@ public class BookingAddActivity extends OABaseActivity implements HttpImp, View.
                 tvBookAddress.setText(poi.address + poi.name);
                 latitude = poi.location.latitude;
                 longitude = poi.location.longitude;
-//                SelectAimModel entity = data.getParcelableExtra("data");
-//                tvBookAddress.setText(entity.getAddress());
-//                if (entity.getLatLng() != null) {
-//                    latitude = entity.getLatLng().latitude;
-//                    longitude = entity.getLatLng().longitude;
-//                }
                 break;
             case 0x24://时间
 

+ 33 - 20
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/secretary/BookingListActivity.java

@@ -33,6 +33,8 @@ import com.core.widget.EmptyLayout;
 import com.core.widget.MyListView;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
+import com.modular.booking.activity.business.BBookingAddActivity;
+import com.modular.booking.activity.shares.BBSharesListActivity;
 import com.modular.booking.adapter.BookAdapter;
 import com.modular.booking.model.BookingModel;
 import com.xzjmyk.pm.activity.R;
@@ -45,7 +47,6 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -68,6 +69,13 @@ public class BookingListActivity extends OABaseActivity implements HttpImp, View
     @ViewInject(R.id.sv_top)
     CustomerScrollView sv_top;
 
+    private TextView tvPersonalNum;
+    private TextView mBookPersonal;
+    private TextView tvBusinessNum;
+    private TextView mBookBusiness;
+    private TextView mBookService;
+    private TextView mBookShares;
+
     private EmptyLayout emptyLayout;
     private Date curDate;
     private int posItem;
@@ -90,21 +98,6 @@ public class BookingListActivity extends OABaseActivity implements HttpImp, View
     @Override
     protected void onResume() {
         super.onResume();
-//        Intent intent = getIntent();
-//        if (intent != null) {
-//            String cDate = intent.getStringExtra("curDate");
-//            if (!StringUtil.isEmpty(cDate)) {
-//                getIntent().getExtras().putString("curDate","");
-//                Lg.d(cDate);
-//                curDate = DateFormatUtil.getDate4StrDate(cDate, "yyyy-MM-dd");
-////                if (pagerAdapter != null) {
-////                    Lg.d("adapter !null");
-////                    Lg.d("cview:"+calendarView);
-////                    pagerAdapter.setDate(curDate);
-////                   
-////                } 
-//            }
-//        }
         initData(curDate);
     }
 
@@ -135,6 +128,10 @@ public class BookingListActivity extends OABaseActivity implements HttpImp, View
     private void initEvent() {
         tv_book_me.setOnClickListener(this);
         tv_book_shared.setOnClickListener(this);
+        mBookBusiness.setOnClickListener(this);
+        mBookPersonal.setOnClickListener(this);
+        mBookService.setOnClickListener(this);
+        mBookShares.setOnClickListener(this);
         
         viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
             @Override
@@ -185,7 +182,13 @@ public class BookingListActivity extends OABaseActivity implements HttpImp, View
     }
 
     private void initView() {
-        tv_book_me.setSelected(true);
+        tvPersonalNum = (TextView) findViewById(R.id.tv_personal_num);
+        tvBusinessNum = (TextView) findViewById(R.id.tv_business_num);
+        mBookPersonal = (TextView) findViewById(R.id.mBookPersonal);
+        mBookBusiness = (TextView) findViewById(R.id.mBookBusiness);
+        mBookService = (TextView) findViewById(R.id.mBookService);
+        mBookShares = (TextView) findViewById(R.id.mBookShares);
+        
         Intent intent = getIntent();
         if (intent != null) {
             String cDate = intent.getStringExtra("curDate");
@@ -198,8 +201,8 @@ public class BookingListActivity extends OABaseActivity implements HttpImp, View
         }else{
             curDate = new Date(System.currentTimeMillis());
         }
-     
 
+        tv_book_me.setSelected(true);
         posItem = OACalenderViewPagerAdapter.MAX_NUM / 2;
         //设置为空显示列表
         emptyLayout = new EmptyLayout(ct, lv_book);
@@ -223,6 +226,18 @@ public class BookingListActivity extends OABaseActivity implements HttpImp, View
     @Override
     public void onClick(View v) {
         switch (v.getId()) {
+            case R.id.mBookPersonal:
+                startActivity(new Intent(mContext, BookingAddActivity.class));
+                break;
+            case R.id.mBookBusiness:
+                startActivity(new Intent(mContext, BBookingAddActivity.class));
+                break;
+            case R.id.mBookService:
+                ToastMessage("暂未开放!");
+                break;
+            case  R.id.mBookShares:
+                startActivity(new Intent(mContext, BBSharesListActivity.class));
+                break;
             case R.id.tv_book_me:
                 tv_book_shared.setSelected(false);
                 tv_book_me.setSelected(true);
@@ -230,7 +245,6 @@ public class BookingListActivity extends OABaseActivity implements HttpImp, View
                     mAdapter.setType(1);
                 }
                 loadListData();
-
                 break;
             case R.id.tv_book_shared:
                 tv_book_shared.setSelected(true);
@@ -239,7 +253,6 @@ public class BookingListActivity extends OABaseActivity implements HttpImp, View
                     mAdapter.setType(2);
                 }
                 loadListData();
-
                 break;
         }
     }

+ 7 - 7
WeiChat/src/main/res/layout/activity_booking_list.xml

@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <com.core.widget.CustomerScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:id="@+id/sv_top"
@@ -53,7 +53,7 @@
                 android:layout_width="0dp"
                 android:layout_height="match_parent">
                 <TextView
-                    android:id="@+id/tv_signin_num"
+                    android:id="@+id/tv_personal_num"
                     android:layout_width="10dp"
                     android:layout_height="10dp"
                     android:layout_marginRight="10dp"
@@ -67,7 +67,7 @@
                     android:layout_alignParentEnd="true"
                     android:layout_alignTop="@+id/signin" />
                 <TextView
-                    android:id="@+id/mbook"
+                    android:id="@+id/mBookPersonal"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:drawablePadding="@dimen/drawable_padding"
@@ -82,7 +82,7 @@
                 android:layout_width="0dp"
                 android:layout_height="match_parent">
                 <TextView
-                    android:id="@+id/tv_signout_num"
+                    android:id="@+id/tv_business_num"
                     android:layout_width="10dp"
                     android:layout_height="10dp"
                     android:layout_marginRight="10dp"
@@ -95,7 +95,7 @@
                     android:textSize="10.0dip"
                     />
                 <TextView
-                    android:id="@+id/outoffice"
+                    android:id="@+id/mBookBusiness"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="2dp"
@@ -108,7 +108,7 @@
             </RelativeLayout>
 
             <TextView
-                android:id="@+id/worklog"
+                android:id="@+id/mBookService"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="2dp"
@@ -119,7 +119,7 @@
                 android:text="@string/booking_service"
                 android:textColor="@color/white" />
             <TextView
-                android:id="@+id/erp"
+                android:id="@+id/mBookShares"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="2dp"

+ 20 - 4
WeiChat/src/main/res/layout/activity_contacts.xml

@@ -3,8 +3,7 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:context="com.xzjmyk.pm.activity.com.uas.appcontact.ui.activity.ContactsActivity">
+    android:layout_height="match_parent">
     <com.core.widget.VoiceSearchView
         android:id="@+id/voiceSearchView"
         android:layout_width="match_parent"
@@ -13,7 +12,8 @@
         xmlns:ptr="http://schemas.android.com/apk/res-auto"
         android:id="@+id/mList"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_above="@+id/include_tag"
         android:layout_below="@+id/voiceSearchView"
         android:divider="#00000000"
         android:dividerHeight="0dip"
@@ -26,5 +26,21 @@
         ptr:ptrOverScroll="false"
         ptr:ptrScrollingWhileRefreshingEnabled="true"
         ptr:ptrShowIndicator="false" />
-    
+    <LinearLayout
+        android:id="@+id/include_tag"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:clickable="true"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+        android:orientation="vertical">
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="2px"
+            android:background="@color/item_line" />
+
+        <include layout="@layout/include_select" />
+    </LinearLayout>
 </RelativeLayout>

+ 10 - 3
WeiChat/src/main/res/layout/item_contact_layout.xml

@@ -16,14 +16,21 @@
         android:layout_width="match_parent"
         android:layout_height="@dimen/item_height"
         android:padding="10dp">
-
+        <CheckBox
+            android:id="@+id/cb"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:layout_marginRight="8dp"
+            android:button="@drawable/oa_checkbox"
+            android:focusableInTouchMode="false" />
         <ImageView
             android:id="@+id/head_img"
             android:layout_width="40dp"
             android:layout_height="40dp"
             android:layout_marginRight="8dp"
-  
-            android:padding="5dp"
+             android:layout_toRightOf="@+id/cb"
+              android:padding="5dp"
             android:src="@drawable/default_ptr_flip" />
 
         <TextView

+ 1 - 1
app_core/common/src/main/java/com/core/widget/view/Activity/SelectActivity.java

@@ -63,7 +63,7 @@ import java.util.List;
  */
 public class SelectActivity extends BaseActivity {
 
-    private ListView list;//列表控件
+    private ListView list;
     private ListAdapter adapter;
     private EmptyLayout emptyLayout;
 

+ 18 - 3
app_core/common/src/main/res/layout/activity_contacts.xml

@@ -3,8 +3,7 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:context="com.xzjmyk.pm.activity.ui.erp.activity.contanct.ContactsActivity">
+    android:layout_height="match_parent">
     <com.core.widget.VoiceSearchView
         android:id="@+id/voiceSearchView"
         android:layout_width="match_parent"
@@ -14,6 +13,7 @@
         android:id="@+id/mList"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
+        android:layout_above="@+id/include_tag"
         android:layout_below="@+id/voiceSearchView"
         android:divider="#00000000"
         android:dividerHeight="0dip"
@@ -26,5 +26,20 @@
         ptr:ptrOverScroll="false"
         ptr:ptrScrollingWhileRefreshingEnabled="true"
         ptr:ptrShowIndicator="false" />
-    
+    <LinearLayout
+        android:id="@+id/include_tag"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+        android:orientation="vertical">
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="2px"
+            android:background="@color/item_line" />
+
+        <include layout="@layout/include_select" />
+    </LinearLayout>
 </RelativeLayout>

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

@@ -5,14 +5,12 @@
     android:layout_height="match_parent"
     android:focusable="true"
     android:focusableInTouchMode="true"
-    android:orientation="vertical"
-    tools:context="com.xzjmyk.pm.activity.ui.message.SelectActivity">
+    android:orientation="vertical">
 
     <com.core.widget.VoiceSearchView
         android:id="@+id/voiceSearchView"
         android:layout_width="match_parent"
         android:layout_height="48dp" />
-
     <ListView
         android:id="@+id/listview"
         android:layout_width="match_parent"
@@ -20,5 +18,4 @@
         android:divider="@color/item_line"
         android:dividerHeight="1px"
         android:listSelector="@color/item_color1" />
-
 </LinearLayout>

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

@@ -4,8 +4,7 @@
     android:layout_height="wrap_content"
     android:background="@drawable/selector_me_menu_item_bg"
     android:orientation="vertical">
-
-
+    
     <View
         android:id="@+id/tag_view"
         android:layout_width="match_parent"
@@ -16,13 +15,20 @@
         android:layout_width="match_parent"
         android:layout_height="@dimen/item_height"
         android:padding="10dp">
-
+        <CheckBox
+            android:id="@+id/cb"
+            android:layout_width="15dp"
+            android:layout_height="15dp"
+            android:layout_centerVertical="true"
+            android:layout_marginRight="8dp"
+            android:button="@drawable/oa_checkbox"
+            android:focusableInTouchMode="false" />
         <ImageView
             android:id="@+id/head_img"
             android:layout_width="40dp"
             android:layout_height="40dp"
             android:layout_marginRight="8dp"
-  
+            android:layout_toRightOf="@+id/cb"
             android:padding="5dp"
             android:src="@drawable/default_ptr_flip" />
 

+ 2 - 0
app_modular/appbooking/build.gradle

@@ -24,6 +24,8 @@ dependencies {
     testCompile deps.junit
 
     compile project(':common')
+    compile project(':appcontact')
+
 
     compile 'com.android.support.constraint:constraint-layout:+'
 }

+ 3 - 2
app_modular/appbooking/src/main/AndroidManifest.xml

@@ -3,8 +3,9 @@
     package="com.modular.booking">
 
     <application>
-        <activity android:name=".activity.business.BbookingAddActivity" />
-        <activity android:name=".activity.shares.SharesListActivity"></activity>
+        <activity android:name=".activity.business.BBookingAddActivity" />
+        <activity android:name=".activity.shares.BBSharesListActivity" />
+        <activity android:name=".activity.business.BBCompanyListActivity"></activity>
     </application>
 
 </manifest>

+ 111 - 0
app_modular/appbooking/src/main/java/com/modular/booking/activity/business/BBCompanyListActivity.java

@@ -0,0 +1,111 @@
+package com.modular.booking.activity.business;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.CheckBox;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.common.data.StringUtil;
+import com.core.base.BaseActivity;
+import com.core.model.SelectBean;
+import com.core.widget.VoiceSearchView;
+import com.core.widget.view.EmptyLayout;
+import com.modular.booking.R;
+
+import java.util.List;
+
+/**
+  * @desc:查询公司列表
+  * @author:Arison on 2017/9/8
+  */
+public class BBCompanyListActivity extends BaseActivity {
+    
+    private ListView list;
+    private VoiceSearchView search_edit;
+    private ListAdapter adapter;
+    private EmptyLayout emptyLayout;
+    
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_bbcompany_list);
+    }
+    
+    public void initView(){
+        
+    }
+    
+    public void initEvent(){
+        
+    }
+
+    class ListAdapter extends BaseAdapter {
+        private List<SelectBean> formBeaan;
+
+        public ListAdapter() {
+        }
+
+        public ListAdapter(List<SelectBean> formBeaan) {
+            this.formBeaan = formBeaan;
+        }
+
+        public void setFormBeaan(List<SelectBean> formBeaan) {
+            this.formBeaan = formBeaan;
+        }
+
+        public List<SelectBean> getFormBeaan() {
+            return formBeaan;
+        }
+
+        @Override
+        public int getCount() {
+            return formBeaan == null ? 0 : formBeaan.size();
+        }
+
+        @Override
+        public Object getItem(int i) {
+            return formBeaan.get(i);
+        }
+
+        @Override
+        public long getItemId(int i) {
+            return i;
+        }
+
+        //临时变量
+        SelectBean chche = null;
+
+        @Override
+        public View getView(int i, View view, ViewGroup viewGroup) {
+           ListAdapter.ViewHoler holer = null;
+            if (view == null) {
+                view = LayoutInflater.from(ct).inflate(com.core.app.R.layout.select_list_item, null);
+                holer = new ListAdapter.ViewHoler();
+                holer.select_scb = (CheckBox) view.findViewById(com.core.app.R.id.select_scb);
+                holer.name_tv = (TextView) view.findViewById(com.core.app.R.id.name_tv);
+                view.setTag(holer);
+            } else {
+                holer = (ListAdapter.ViewHoler) view.getTag();
+            }
+            chche = formBeaan.get(i);
+            holer.name_tv.setText(StringUtil.isEmpty(chche.getName()) ? "" : chche.getName());
+            holer.select_scb.setChecked(chche.isClick());
+//            if (isSingle) {
+//                holer.select_scb.setVisibility(View.GONE);
+//            } else {
+//                holer.select_scb.setFocusable(false);
+//                holer.select_scb.setClickable(false);
+//            }
+            return view;
+        }
+
+        class ViewHoler {
+            CheckBox select_scb;
+            TextView name_tv;
+        }
+    }
+}

+ 295 - 0
app_modular/appbooking/src/main/java/com/modular/booking/activity/business/BBookingAddActivity.java

@@ -0,0 +1,295 @@
+package com.modular.booking.activity.business;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.BaseAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.baidu.mapapi.search.core.PoiInfo;
+import com.common.data.DateFormatUtil;
+import com.common.data.StringUtil;
+import com.core.app.MyApplication;
+import com.core.base.BaseActivity;
+import com.core.selectcalendar.SelectCalendarActivity;
+import com.core.selectcalendar.bean.DataState;
+import com.core.widget.NScrollerGridView;
+import com.core.widget.view.Activity.SearchLocationActivity;
+import com.core.widget.view.model.SearchPoiParam;
+import com.modular.booking.R;
+import com.modular.booking.model.BookingModel;
+import com.uas.appcontact.model.contacts.ContactsModel;
+import com.uas.appcontact.ui.activity.ContactsActivity;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @desc:商务预约新增界面
+ * @author:Arison on 2017/9/7
+ */
+public class BBookingAddActivity extends BaseActivity implements View.OnClickListener {
+    private TextView tvBookObject;
+    private RelativeLayout companyAddRl;
+    private RelativeLayout rlObject;
+    private TextView tvBookTimes;
+    private RelativeLayout remarkRl;
+    private RelativeLayout topic_rl;
+    private EditText tv_book_topic;
+    private TextView tvBookAddress;
+    private double latitude;
+    private double longitude;
+    private int imId;
+    private String startTime;
+    private String endTime;
+    private EditText et_book_content;
+    BookingModel model;
+    private Button bt_commit;
+    private NScrollerGridView gv_topic;
+    List<DataState> dataStates;
+    GridDataAdapter adapter;
+    private String phone;
+    private String[] mTypes = {"商务洽谈", "开会", "外出娱乐", "吃饭", "卡拉OK", "其它"};
+
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_bbooking_add);
+        initView();
+        initEvent();
+    }
+
+    private void initEvent() {
+        findViewById(R.id.submit_btn).setOnClickListener(this);
+        rlObject.setOnClickListener(this);
+        companyAddRl.setOnClickListener(this);
+        remarkRl.setOnClickListener(this);
+        topic_rl.setOnClickListener(this);
+
+        gv_topic.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                GridDataAdapter.ViewModle modle = (GridDataAdapter.ViewModle) view.getTag();
+                tv_book_topic.setText(modle.tv_text.getText().toString());
+                tv_book_topic.setSelection(modle.tv_text.getText().toString().length());
+
+            }
+        });
+    }
+
+    public void initView() {
+        getSupportActionBar().setTitle(getString(R.string.booking_business));
+
+        tvBookObject = (TextView) findViewById(R.id.tv_book_object);
+        companyAddRl = (RelativeLayout) findViewById(R.id.company_add_rl);
+        tvBookTimes = (TextView) findViewById(R.id.tv_book_times);
+        remarkRl = (RelativeLayout) findViewById(R.id.remark_rl);
+        rlObject = (RelativeLayout) findViewById(R.id.rl_object);
+
+        topic_rl = (RelativeLayout) findViewById(R.id.topic_rl);
+        tvBookAddress = (TextView) findViewById(R.id.tv_book_address);
+        et_book_content = (EditText) findViewById(R.id.et_book_content);
+
+        tv_book_topic = (EditText) findViewById(R.id.tv_book_topic);
+        gv_topic = (NScrollerGridView) findViewById(R.id.gv_topic);
+        bt_commit = (Button) findViewById(R.id.submit_btn);
+        tv_book_topic.setText("商务洽谈");
+
+        if (getIntent() != null && getIntent().getExtras() != null) {
+            model = getIntent().getExtras().getParcelable("model");
+            if (model != null) {
+                tvBookObject.setText(model.getAb_bman());
+                tvBookTimes.setText(model.getAb_starttime().substring(0, 10) + " " + model.getAb_starttime().substring(11, 16) + "-"
+                        + model.getAb_endtime().substring(11, 16));
+                tvBookAddress.setText(model.getAb_address());
+                et_book_content.setText(model.getAb_content());
+                longitude = Double.valueOf(model.getAb_longitude());
+                latitude = Double.valueOf(model.getAb_latitude());
+                imId = Integer.valueOf(model.getAb_bmanid());
+                startTime = model.getAb_starttime();
+                endTime = model.getAb_endtime();
+                ((Button) findViewById(R.id.submit_btn)).setText(getString(R.string.booking_change));
+            }
+        }
+
+        dataStates = new ArrayList<>();
+        for (String str : mTypes) {
+            DataState dataState = new DataState();
+            dataState.setValue(str);
+            dataStates.add(dataState);
+        }
+
+        adapter = new GridDataAdapter(this, dataStates);
+        gv_topic.setAdapter(adapter);
+
+
+    }
+
+    @Override
+    public void onClick(View v) {
+        int i = v.getId();
+        if (i == R.id.submit_btn) {
+
+        } else if (i == R.id.topic_rl) {
+
+        } else if (i == R.id.company_add_rl) {
+            //时间
+            if (!StringUtil.isEmpty(tvBookObject.getText().toString())) {
+                startActivityForResult(new Intent(mContext, SelectCalendarActivity.class)
+                                .putExtra("startDate", DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS))
+                                .putExtra("endDate", DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS))
+                                .putExtra("hasMenu", false)
+                                .putExtra("imId", imId)
+                                .putExtra("type", 1)
+                        , 0x24);
+            } else {
+                ToastMessage("请先选择预约对象!");
+            }
+        } else if (i == R.id.remark_rl) {
+            //地址
+            Intent intent = new Intent(ct, SearchLocationActivity.class);
+            SearchPoiParam poiParam = new SearchPoiParam();
+            poiParam.setType(2);
+            poiParam.setTitle("地图搜索");
+            poiParam.setRadius(300);
+            //poiParam.setContrastLatLng(new LatLng(companyLocation.getLocation().longitude, companyLocation.getLocation().latitude));
+            poiParam.setResultCode(0x23);
+            poiParam.setDistanceTag(MyApplication.getInstance().getResources().getString(R.string.rice));
+            intent.putExtra("data", poiParam);
+            startActivityForResult(intent, 0x23);
+        } else if (i == R.id.rl_object) {
+            if (model != null) {
+                ToastMessage("预约对象不能更改!");
+            } else {
+                //"com.modular.contact.ContactsActivity"
+                Intent  intent = new Intent(this, ContactsActivity.class);
+                intent.putExtra("type", 1);
+                intent.putExtra("title", getString(R.string.booking_object_name));
+                intent.putExtra("isSingleSelect",false);
+                startActivityForResult(intent,0x01);
+            }
+        } else if (i == R.id.rl_company) {
+
+        }
+    }
+
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (data == null) return;
+        switch (requestCode) {
+            case 0x01://对象
+                ArrayList<ContactsModel> models=data.getParcelableArrayListExtra("data");
+                //拿到多个预约对象,需要下拉他们的企业信息
+                StringBuilder names=new StringBuilder("");
+                for (int i=0;i<models.size();i++){
+                   names.append(models.get(i).getName()+",");
+                }
+                tvBookObject.setText(names.toString());
+                break;
+            case 0x02://企业
+
+                break;
+            case 0x23://地址
+                PoiInfo poi = data.getParcelableExtra("resultKey");
+                if (poi == null) return;
+                tvBookAddress.setText(poi.address + poi.name);
+                latitude = poi.location.latitude;
+                longitude = poi.location.longitude;
+                break;
+            case 0x24://时间
+                startTime = data.getStringExtra("startDate");
+                endTime = data.getStringExtra("endDate");
+                String displayDate = startTime.substring(11, 16) + "-" + endTime.substring(11, 16);
+                tvBookTimes.setText(displayDate);
+                break;
+            case 0x11://主题
+
+                break;
+
+        }
+    }
+
+
+    public class GridDataAdapter extends BaseAdapter {
+
+        private Context ct;
+        private List<DataState> mData = new ArrayList<>();
+        private LayoutInflater inflater;
+        private int selected = -1;
+
+        GridDataAdapter(Context ct, List<DataState> data) {
+            this.ct = ct;
+            this.mData = data;
+            this.inflater = LayoutInflater.from(ct);
+        }
+
+        @Override
+        public int getCount() {
+            return mData.size();
+        }
+
+        @Override
+        public Object getItem(int position) {
+            return mData.get(position);
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+
+        public int getSelected() {
+            return selected;
+        }
+
+        public void setSelected(int selected) {
+            this.selected = selected;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            GridDataAdapter.ViewModle modle = null;
+
+            if (convertView == null) {
+                convertView = inflater.inflate(R.layout.item_simple_text, parent, false);
+                modle = new GridDataAdapter.ViewModle();
+                modle.tv_text = (TextView) convertView.findViewById(R.id.tv_text);
+                convertView.setTag(modle);
+            } else {
+                modle = (GridDataAdapter.ViewModle) convertView.getTag();
+            }
+            modle.tv_text.setText(mData.get(position).getValue());
+            if (mData.get(position).isClicked()) {
+                modle.clicked = true;
+                modle.tv_text.setTextColor(mContext.getResources().getColor(R.color.black));
+                modle.tv_text.setBackgroundResource(R.drawable.bg_select_blue);
+                if (selected == position) {
+                    modle.tv_text.setSelected(true);
+                    modle.tv_text.setTextColor(mContext.getResources().getColor(R.color.white));
+                } else {
+                    modle.tv_text.setSelected(false);
+                }
+            } else {
+                modle.clicked = false;
+                modle.tv_text.setTextColor(mContext.getResources().getColor(R.color.light_gray));
+                modle.tv_text.setBackgroundResource(R.drawable.bg_select_red);
+                modle.tv_text.setSelected(false);
+            }
+            return convertView;
+        }
+
+        class ViewModle {
+            TextView tv_text;
+            boolean clicked;
+        }
+    }
+}

+ 0 - 19
app_modular/appbooking/src/main/java/com/modular/booking/activity/business/BbookingAddActivity.java

@@ -1,19 +0,0 @@
-package com.modular.booking.activity.business;
-
-import android.os.Bundle;
-
-import com.core.base.BaseActivity;
-import com.modular.booking.R;
-
-/**
-  * @desc:商务预约新增界面
-  * @author:Arison on 2017/9/7
-  */
-public class BbookingAddActivity extends BaseActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_bbooking_add);
-    }
-}

+ 5 - 1
app_modular/appbooking/src/main/java/com/modular/booking/activity/shares/SharesListActivity.java → app_modular/appbooking/src/main/java/com/modular/booking/activity/shares/BBSharesListActivity.java

@@ -5,7 +5,11 @@ import android.os.Bundle;
 import com.core.base.BaseActivity;
 import com.modular.booking.R;
 
-public class SharesListActivity extends BaseActivity {
+/**
+  * @desc:分享列表界面
+  * @author:Arison on 2017/9/7
+  */
+public class BBSharesListActivity extends BaseActivity {
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {

+ 21 - 0
app_modular/appbooking/src/main/res/layout/activity_bbcompany_list.xml

@@ -0,0 +1,21 @@
+<?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="match_parent"
+    android:focusable="true"
+    android:focusableInTouchMode="true"
+    android:orientation="vertical">
+
+    <com.core.widget.VoiceSearchView
+        android:id="@+id/voiceSearchView"
+        android:layout_width="match_parent"
+        android:layout_height="48dp" />
+
+    <ListView
+        android:id="@+id/listview"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:divider="@color/item_line"
+        android:dividerHeight="1px"
+        android:listSelector="@color/item_color1" />
+</LinearLayout>

+ 193 - 1
app_modular/appbooking/src/main/res/layout/activity_bbooking_add.xml

@@ -4,6 +4,198 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    tools:context="com.modular.booking.activity.business.BbookingAddActivity">
+    tools:context="com.modular.booking.activity.business.BBookingAddActivity">
 
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/hine_bg">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="@color/hine_bg"
+            android:focusable="true"
+            android:focusableInTouchMode="true"
+            android:orientation="vertical">
+       
+            <RelativeLayout
+                android:id="@+id/rl_object"
+                style="@style/item_menu">
+
+                <TextView
+                    style="@style/item_menu_tag"
+                    android:gravity="center_vertical"
+                    android:layout_marginLeft="5dp"
+                    android:text="@string/booking_object" />
+
+                <TextView
+                    android:id="@+id/tv_book_object"
+                    style="@style/item_menu_input"
+                    android:layout_toRightOf="@id/company_tag"
+                    android:drawablePadding="6dp"
+                    android:layout_width="300dp"
+                    android:ellipsize="end"
+                    android:drawableRight="@drawable/oa_next"
+                    android:hint="@string/common_select" />
+            </RelativeLayout>
+            <RelativeLayout
+                android:id="@+id/rl_company"
+                style="@style/item_menu">
+
+                <TextView
+                    style="@style/item_menu_tag"
+                    android:gravity="center_vertical"
+                    android:layout_marginLeft="5dp"
+                    android:text="@string/booking_add_company" />
+
+                <TextView
+                    android:id="@+id/tv_book_company"
+                    style="@style/item_menu_input"
+                    android:layout_toRightOf="@id/company_tag"
+                    android:drawablePadding="6dp"
+                    android:layout_width="300dp"
+                    android:ellipsize="end"
+                    android:drawableRight="@drawable/oa_next"
+                    android:hint="@string/common_select" />
+            </RelativeLayout>
+            <RelativeLayout
+                android:id="@+id/company_add_rl"
+                style="@style/item_menu">
+
+                <TextView
+
+                    style="@style/item_menu_tag"
+                    android:gravity="center_vertical"
+                    android:text="@string/times"
+                    android:layout_marginLeft="5dp"
+                    android:textColor="@color/hintColor" />
+
+                <TextView
+                    android:id="@+id/tv_book_times"
+                    style="@style/item_menu_input"
+                    android:drawableRight="@drawable/oa_next"
+                    android:hint="@string/common_select"
+                    android:textColor="@color/hintColor"
+                    android:layout_alignParentTop="true"
+                    android:layout_alignParentRight="true"
+                    android:layout_alignParentEnd="true" />
+            </RelativeLayout>
+
+            <RelativeLayout
+                android:id="@+id/remark_rl"
+                style="@style/item_menu">
+
+                <TextView
+                    style="@style/item_menu_tag"
+                    android:layout_alignParentLeft="true"
+                    android:layout_alignParentStart="true"
+                    android:layout_alignParentTop="true"
+                    android:layout_marginLeft="5dp"
+                    android:gravity="center_vertical"
+                    android:text="@string/address" />
+
+                <TextView
+                    android:id="@+id/tv_book_address"
+                    style="@style/item_menu_input"
+                    android:layout_width="300dp"
+                    android:ellipsize="end"
+                    android:layout_toRightOf="@id/remark_tag"
+                    android:drawablePadding="6dp"
+                    android:drawableRight="@drawable/oa_next"
+                  
+                    android:hint="@string/common_select" />
+            </RelativeLayout>
+
+            <RelativeLayout
+                android:id="@+id/topic_rl"
+                style="@style/item_menu">
+
+                <TextView
+                    style="@style/item_menu_tag"
+                    android:layout_alignParentLeft="true"
+                    android:layout_alignParentStart="true"
+                    android:layout_alignParentTop="true"
+                    android:gravity="center_vertical"
+                    android:layout_marginLeft="5dp"
+                    android:text="@string/booking_topic" />
+
+                <EditText
+                    android:id="@+id/tv_book_topic"
+                    style="@style/item_menu_input"
+                    android:layout_width="300dp"
+                    android:layout_toRightOf="@id/remark_tag"
+                    android:drawablePadding="6dp"
+                    android:drawableRight="@drawable/oa_next"
+                    android:ellipsize="end"
+                    android:hint="@string/common_select" />
+            </RelativeLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="30dp" />
+
+            <RelativeLayout
+                style="@style/form_relative_customer"
+                android:layout_height="20dp"
+                android:background="@color/white">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="match_parent"
+                    android:layout_marginLeft="10dp"
+                    android:gravity="center_vertical"
+                    android:text="@string/booking_topic"
+                    android:visibility="gone" />
+            </RelativeLayout>
+
+            <com.core.widget.NScrollerGridView
+                android:id="@+id/gv_topic"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@color/white"
+                android:horizontalSpacing="15dp"
+                android:numColumns="4"
+                android:paddingLeft="15dp"
+                android:paddingRight="15dp"
+                android:paddingTop="5dp"
+                android:scrollbars="none"
+                android:verticalSpacing="10dp" />
+
+            <EditText
+                android:id="@+id/et_book_content"
+                android:layout_width="match_parent"
+                android:layout_height="50dp"
+                android:layout_marginBottom="10dp"
+                android:background="@color/white"
+                android:enabled="false"
+                android:gravity="top"
+                android:paddingLeft="10dp"
+                android:textSize="15sp" />
+
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginBottom="30dp"
+                android:layout_marginTop="60dp">
+
+                <Button
+                    android:id="@+id/submit_btn"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_alignParentBottom="true"
+                    android:layout_marginBottom="10dp"
+                    android:layout_marginLeft="20dp"
+                    android:layout_marginRight="20dp"
+                    android:background="@drawable/bg_bule_btn"
+                    android:padding="10dp"
+                    android:text="@string/app_button_commit"
+                    android:textColor="@color/white"
+                    android:textSize="@dimen/text_main" />
+            </RelativeLayout>
+        </LinearLayout>
+
+
+    </ScrollView>
 </android.support.constraint.ConstraintLayout>

+ 1 - 1
app_modular/appbooking/src/main/res/layout/activity_shares_list.xml

@@ -4,7 +4,7 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    tools:context="com.modular.booking.activity.shares.SharesListActivity">
+    tools:context="com.modular.booking.activity.shares.BBSharesListActivity">
     <com.handmark.pulltorefresh.library.PullToRefreshListView
         android:id="@+id/shareList"
         android:layout_width="match_parent"

+ 2 - 0
app_modular/appbooking/src/main/res/values/strings.xml

@@ -7,4 +7,6 @@
     <string name="booking_service">服务预约</string>
     <string name="booking_share">共享预约</string>
 
+    <string name="booking_add_company">企业</string>
+
 </resources>

+ 4 - 0
app_modular/appcontact/src/main/AndroidManifest.xml

@@ -12,6 +12,10 @@
         <activity
             android:name="com.uas.appcontact.ui.activity.ContactsActivity"
             android:windowSoftInputMode="adjustPan" />
+             <intent-filter>
+               <action android:name="com.modular.contact.ContactsActivity" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
         <activity
             android:name="com.uas.appcontact.ui.activity.CompanyContactsActivity"
             android:windowSoftInputMode="stateVisible|adjustResize" />

+ 17 - 2
app_modular/appcontact/src/main/java/com/uas/appcontact/adapter/ContactsAdapter.java

@@ -5,6 +5,7 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
+import android.widget.CheckBox;
 import android.widget.ImageView;
 import android.widget.TextView;
 
@@ -39,7 +40,7 @@ public class ContactsAdapter extends BaseAdapter {
     }
 
     @Override
-    public Object getItem(int position) {
+    public ContactsModel getItem(int position) {
         return models.get(position);
     }
 
@@ -56,6 +57,7 @@ public class ContactsAdapter extends BaseAdapter {
             convertView = LayoutInflater.from(MyApplication.getInstance()).
                     inflate(R.layout.item_contact_layout, parent, false);
             holder.name_tv = (TextView) convertView.findViewById(R.id.name_tv);
+            holder.checkBox=(CheckBox) convertView.findViewById(R.id.cb);
             holder.sub_tv = (TextView) convertView.findViewById(R.id.sub_tv);
             holder.status_tv = (TextView) convertView.findViewById(R.id.status_tv);
             holder.head_img = (ImageView) convertView.findViewById(R.id.head_img);
@@ -68,7 +70,7 @@ public class ContactsAdapter extends BaseAdapter {
         final ContactsModel model=models.get(position);
         holder.targetId=  model.getImid();
         holder.model=model;
-///设定为每次刷新都会去删除缓存重新获取数据
+        ///设定为每次刷新都会去删除缓存重新获取数据
         AvatarHelper.getInstance().display(model.getImid() + "", holder.head_img, true, false);
         holder.name_tv.setText(model.getName());
         holder.sub_tv.setText(model.getPhone());
@@ -114,6 +116,8 @@ public class ContactsAdapter extends BaseAdapter {
         if (textColor != 0) {
             holder.status_tv.setTextColor(MyApplication.getInstance().getResources().getColor(textColor));
         }
+        
+        holder.checkBox.setChecked(model.isClick);
         holder.status_tv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -122,6 +126,8 @@ public class ContactsAdapter extends BaseAdapter {
               }
             }
         });
+        holder.checkBox.setFocusable(false);
+        holder.checkBox.setClickable(false);
         return convertView;
     }
 
@@ -130,6 +136,7 @@ public class ContactsAdapter extends BaseAdapter {
                   name_tv,
                   sub_tv,
                   status_tv;
+       public CheckBox checkBox;
        public ImageView head_img;
        public View tag_view;
        public String targetId;
@@ -139,4 +146,12 @@ public class ContactsAdapter extends BaseAdapter {
     public interface ResultItemsInface{
          void onResultForItems(View view, ContactsModel model, int position);
     }
+
+    public List<ContactsModel> getModels() {
+        return models;
+    }
+
+    public void setModels(List<ContactsModel> models) {
+        this.models = models;
+    }
 }

+ 11 - 1
app_modular/appcontact/src/main/java/com/uas/appcontact/model/contacts/ContactsModel.java

@@ -15,10 +15,10 @@ public class ContactsModel implements Parcelable {
     private String name;
     private String company;
     private String whichsys;
-    
     private String phone;
     private String email;
     private Integer type;
+    public boolean isClick = false;
 
 
     public ContactsModel() {
@@ -88,6 +88,14 @@ public class ContactsModel implements Parcelable {
         this.type = type;
     }
 
+    public boolean isClick() {
+        return isClick;
+    }
+
+    public void setClick(boolean click) {
+        isClick = click;
+    }
+
     @Override
     public int describeContents() {
         return 0;
@@ -103,6 +111,7 @@ public class ContactsModel implements Parcelable {
         dest.writeString(this.phone);
         dest.writeString(this.email);
         dest.writeValue(this.type);
+        dest.writeByte(this.isClick ? (byte) 1 : (byte) 0);
     }
 
     protected ContactsModel(Parcel in) {
@@ -114,6 +123,7 @@ public class ContactsModel implements Parcelable {
         this.phone = in.readString();
         this.email = in.readString();
         this.type = (Integer) in.readValue(Integer.class.getClassLoader());
+        this.isClick = in.readByte() != 0;
     }
 
     public static final Creator<ContactsModel> CREATOR = new Creator<ContactsModel>() {

+ 84 - 11
app_modular/appcontact/src/main/java/com/uas/appcontact/ui/activity/ContactsActivity.java

@@ -14,6 +14,8 @@ import android.support.annotation.Nullable;
 import android.text.Editable;
 import android.view.View;
 import android.widget.AdapterView;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
 import android.widget.ListView;
 import android.widget.TextView;
 
@@ -83,6 +85,9 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
 
     private PullToRefreshListView mlist;
     private VoiceSearchView voiceSearchView;
+    private TextView mumber_tv;
+    private CheckBox all_sure_cb;
+    private boolean isClickCb = true;
     private boolean mBind;
     private CoreService mXmppService;
     private ContactsAdapter adapter;
@@ -91,7 +96,9 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
     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;
 
 
     @Override
@@ -101,7 +108,6 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
         ViewUtils.inject(this);
         contactsDao = ContactsDao.getInstance();
         initView();
-
         initData();
     }
 
@@ -122,10 +128,15 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
 
     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);
+                
+        
         voiceSearchView = (VoiceSearchView) findViewById(R.id.voiceSearchView);
         if (getIntent() != null) {
             type = getIntent().getIntExtra("type", 0);
             String title = getIntent().getStringExtra("title");
+            isSingleSelect=getIntent().getBooleanExtra("isSingleSelect",true);
             if (!StringUtil.isEmpty(title)) {
                 getSupportActionBar().setTitle(title);
             } else {
@@ -164,7 +175,7 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                 ContactsAdapter.ViewHolder viewHolder = (ContactsAdapter.ViewHolder) view.getTag();
-                if (type == 0) {//默认情况
+                if (type == 0) {//默认情况---点击查看详情
                     if (viewHolder.model.getType() == 3) {
                         return;
                     }
@@ -180,19 +191,21 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
                     //friend.setStatus();
                     intent.putExtra("friend", friend);
                     startActivity(intent);
-                } else if (type == 1) { //获取对象界面
-                    if (viewHolder.model.getType() == 3) {
-                        //邀请注册  拿IMID
-                        Intent intent = new Intent();
-                        intent.putExtra("data", viewHolder.model);
-                        setResult(0x20, intent);
-                        finish();
-                    } else {
-                        Intent intent = new 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();
                     }
+
                 }
             }
         });
@@ -230,6 +243,66 @@ public class ContactsActivity extends OABaseActivity implements ContactsAdapter.
             }
         });
 
+        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){
+               models.add(adapter.getItem(i));
+            }
+        }
+        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() {