Bitliker 9 лет назад
Родитель
Сommit
57513db98d
26 измененных файлов с 1071 добавлено и 353 удалено
  1. 5 7
      WeiChat/src/main/AndroidManifest.xml
  2. 5 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/MeetUserEntity.java
  3. 63 20
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/MeetingDocBean.java
  4. 2 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/calendar/views/TaskMonthView.java
  5. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/CommonFragmentActivity.java
  6. 224 103
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddMeetingActivity.java
  7. 126 16
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetDetailsActivity.java
  8. 21 30
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetSelectActivity.java
  9. 27 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetingActivity.java
  10. 38 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OARegisterActivity.java
  11. 0 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OutSigninOKActivity.java
  12. 38 26
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SaveMeetActivity.java
  13. 24 8
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/OaRegisterFragment.java
  14. 13 10
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninFragment.java
  15. 2 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/groupchat/GroupChatFragment.java
  16. 92 103
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/groupchat/SelectContactsActivity.java
  17. 234 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/AutoCreateRoomUtil.java
  18. 26 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/CalculateUtil.java
  19. 109 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/JsonUtils.java
  20. 1 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/TimeUtils.java
  21. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/volley/Result.java
  22. 2 1
      WeiChat/src/main/res/layout/activity_meet_details.xml
  23. 1 0
      WeiChat/src/main/res/layout/activity_meeting.xml
  24. 14 0
      WeiChat/src/main/res/layout/activity_save_meet.xml
  25. 1 0
      WeiChat/src/main/res/layout/fragment_register_oa.xml
  26. 1 0
      WeiChat/src/main/res/layout/oa_meeting_item.xml

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

@@ -471,16 +471,14 @@
         <activity
             android:name=".ui.erp.activity.oa.OutofficeSetActivity"
             android:label="签到设置" />
-        <activity android:name=".ui.erp.activity.oa.TestActivity"></activity>
-        <activity android:name=".ui.erp.activity.oa.OutSigninOKActivity"
-            android:label="签到"/>
-        <activity android:name=".ui.erp.activity.crm.ContactManAddActivity" >
-        </activity>
-        <activity android:name=".ui.erp.activity.oa.TestActivity" />
         <activity
             android:name=".ui.erp.activity.oa.OutSigninOKActivity"
             android:label="签到" />
-        <activity android:name=".ui.erp.activity.oa.SaveMeetActivity" />
+        <activity android:name=".ui.erp.activity.crm.ContactManAddActivity" />
+        <activity android:name=".ui.erp.activity.oa.TestActivity" />
+        <activity
+            android:name=".ui.erp.activity.oa.SaveMeetActivity"
+            android:label="会议纪要" />
         <activity
             android:name=".ui.erp.activity.oa.MeetSelectActivity"
             android:label="选择与会人员" />

+ 5 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/MeetUserEntity.java

@@ -7,7 +7,7 @@ import android.os.Parcelable;
  * Created by gongpm on 2016/7/26.
  */
 public class MeetUserEntity implements Parcelable {
-    private int imId;
+    private String imId;
     private String name;
     private String emCode;
     private boolean isClick=false;
@@ -17,7 +17,7 @@ public class MeetUserEntity implements Parcelable {
 
 
     protected MeetUserEntity(Parcel in) {
-        imId = in.readInt();
+        imId = in.readString();
         name = in.readString();
         emCode = in.readString();
         isClick = in.readByte() != 0;
@@ -43,11 +43,11 @@ public class MeetUserEntity implements Parcelable {
         isClick = click;
     }
 
-    public int getImId() {
+    public String getImId() {
         return imId;
     }
 
-    public void setImId(int imId) {
+    public void setImId(String imId) {
         this.imId = imId;
     }
 
@@ -75,7 +75,7 @@ public class MeetUserEntity implements Parcelable {
     @Override
     public void writeToParcel(Parcel parcel, int i) {
 
-        parcel.writeInt(imId);
+        parcel.writeString(imId);
         parcel.writeString(name);
         parcel.writeString(emCode);
         parcel.writeByte((byte) (isClick ? 1 : 0));

+ 63 - 20
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/MeetingDocBean.java

@@ -1,10 +1,12 @@
 package com.xzjmyk.pm.activity.bean.oa;
 
+import android.os.Parcel;
+import android.os.Parcelable;
+
 /**
  * Created by gongpm on 2016/7/25.
  */
-public class MeetingDocBean {
-    private String md_fileno;
+public class MeetingDocBean implements Parcelable {
     private String md_recorder;
     private String md_recorderdate;
     private String md_status;
@@ -17,13 +19,45 @@ public class MeetingDocBean {
     private String md_starttime;
     private String md_statuscode;
     private String md_endtime;
-
     private String md_group;
     private String md_attachs;
     private String md_contents;
-    private String md_id;
     private String md_groupid;
 
+    public MeetingDocBean() {
+    }
+
+    protected MeetingDocBean(Parcel in) {
+        md_recorder = in.readString();
+        md_recorderdate = in.readString();
+        md_status = in.readString();
+        md_title = in.readString();
+        md_mtname = in.readString();
+        md_meetingname = in.readString();
+        md_meetingcode = in.readString();
+        md_mrcode = in.readString();
+        md_mrname = in.readString();
+        md_starttime = in.readString();
+        md_statuscode = in.readString();
+        md_endtime = in.readString();
+        md_group = in.readString();
+        md_attachs = in.readString();
+        md_contents = in.readString();
+        md_groupid = in.readString();
+    }
+
+    public static final Creator<MeetingDocBean> CREATOR = new Creator<MeetingDocBean>() {
+        @Override
+        public MeetingDocBean createFromParcel(Parcel in) {
+            return new MeetingDocBean(in);
+        }
+
+        @Override
+        public MeetingDocBean[] newArray(int size) {
+            return new MeetingDocBean[size];
+        }
+    };
+
     public String getMd_group() {
         return md_group;
     }
@@ -48,14 +82,6 @@ public class MeetingDocBean {
         this.md_contents = md_contents;
     }
 
-    public String getMd_id() {
-        return md_id;
-    }
-
-    public void setMd_id(String md_id) {
-        this.md_id = md_id;
-    }
-
     public String getMd_groupid() {
         return md_groupid;
     }
@@ -64,14 +90,6 @@ public class MeetingDocBean {
         this.md_groupid = md_groupid;
     }
 
-    public String getMd_fileno() {
-        return md_fileno;
-    }
-
-    public void setMd_fileno(String md_fileno) {
-        this.md_fileno = md_fileno;
-    }
-
     public String getMd_recorder() {
         return md_recorder;
     }
@@ -167,4 +185,29 @@ public class MeetingDocBean {
     public void setMd_endtime(String md_endtime) {
         this.md_endtime = md_endtime;
     }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel parcel, int i) {
+        parcel.writeString(md_recorder);
+        parcel.writeString(md_recorderdate);
+        parcel.writeString(md_status);
+        parcel.writeString(md_title);
+        parcel.writeString(md_mtname);
+        parcel.writeString(md_meetingname);
+        parcel.writeString(md_meetingcode);
+        parcel.writeString(md_mrcode);
+        parcel.writeString(md_mrname);
+        parcel.writeString(md_starttime);
+        parcel.writeString(md_statuscode);
+        parcel.writeString(md_endtime);
+        parcel.writeString(md_group);
+        parcel.writeString(md_attachs);
+        parcel.writeString(md_contents);
+        parcel.writeString(md_groupid);
+    }
 }

+ 2 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/calendar/views/TaskMonthView.java

@@ -613,7 +613,7 @@ public class TaskMonthView extends View {
 
                                         taskDatePicker.setMonth(true, date);
                                         if (isTime)
-                                            onDatePickedListener.onDatePicked(date + "  " + tim);
+                                            onDatePickedListener.onDatePicked(date + " " + tim);
                                     }
                                 }
                             });
@@ -625,7 +625,7 @@ public class TaskMonthView extends View {
                             if (null != onDatePickedListener) {
                                 taskDatePicker.setMonth(true, date);
                                 if (isTime)
-                                    onDatePickedListener.onDatePicked(date + "  " + tim);
+                                    onDatePickedListener.onDatePicked(date + " " + tim);
                             }
                         }
                     } else if (mDPMode == DPMode.MULTIPLE) {

+ 1 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/CommonFragmentActivity.java

@@ -37,6 +37,7 @@ public class CommonFragmentActivity extends BaseActivity {
     public void initView() {
         type=getIntent().getIntExtra("type", Constants.TYPE_CHAT_All);
         switch (type){
+
           case Constants.TYPE_CHAT_All:
               GroupChatFragment groupChatFrament = new GroupChatFragment();
               FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();

+ 224 - 103
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddMeetingActivity.java

@@ -1,10 +1,14 @@
 package com.xzjmyk.pm.activity.ui.erp.activity.oa;
 
 import android.app.AlertDialog;
+import android.content.ComponentName;
 import android.content.Intent;
+import android.content.ServiceConnection;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.IBinder;
 import android.os.Message;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.Gravity;
 import android.view.View;
@@ -12,12 +16,22 @@ import android.view.ViewGroup;
 import android.widget.EditText;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
+import com.android.volley.Response;
+import com.android.volley.VolleyError;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
+import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.bean.Area;
+import com.xzjmyk.pm.activity.bean.message.ChatMessage;
+import com.xzjmyk.pm.activity.bean.message.MucRoom;
+import com.xzjmyk.pm.activity.bean.message.XmppMessage;
 import com.xzjmyk.pm.activity.bean.oa.MeetBean;
 import com.xzjmyk.pm.activity.bean.oa.MeetUserEntity;
+import com.xzjmyk.pm.activity.db.dao.ChatMessageDao;
+import com.xzjmyk.pm.activity.helper.UploadEngine;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.calendar.cons.DPMode;
 import com.xzjmyk.pm.activity.ui.calendar.views.TaskDatePicker;
@@ -29,13 +43,20 @@ import com.xzjmyk.pm.activity.util.CalendarUtils;
 import com.xzjmyk.pm.activity.util.StringUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.ToastUtil;
+import com.xzjmyk.pm.activity.volley.ObjectResult;
+import com.xzjmyk.pm.activity.volley.Result;
+import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
 import com.xzjmyk.pm.activity.xmpp.CoreService;
 
+import org.json.JSONException;
+import org.json.JSONObject;
+
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 public class AddMeetingActivity extends BaseActivity implements View.OnClickListener {
 
@@ -57,22 +78,33 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
     private EditText tag_et;
 
     private AddMeetingActivity ct;
+    private String roomJid;//创建的房间号
     private final int whatSignin = 0x12;
+    private final int whatAdd = 0x11;
     private String baseUrl;
     private int request = 0x13;
     public static int resultCode = 0x14;
     ArrayList<MeetUserEntity> entities = null;//成员
-    private MeetUserEntity entity;//管理员
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
-            ct.progressDialog.dismiss();
             String message = (String) msg.getData().get("result");
             switch (msg.what) {
                 case whatSignin:
                     //TODO 创建会议成功  开始创建群组
-                    Log.i("gongpengming", "TODO 创建会议成功  开始创建群组");
-                    createRoom();
+                    try {
+                        JSONObject json = new JSONObject(message);
+                        if (!json.isNull("success") && json.getBoolean("success")) {
+                            ToastUtil.showToast(ct, "添加会议成功,正在为你建立会议群");
+                            createRoom(name_et.getText().toString() + "会议群", "创建为了提醒会议成员");
+                        }
+                    } catch (JSONException e) {
+                        ToastUtil.showToast(ct, "内部错误");
+                        e.printStackTrace();
+                    }
+                    break;
+                case whatAdd:
+                    Log.i("gongpengming", "msg==whatAdd");
                     break;
                 case Constants.HTTP_SUCCESS_INIT:
                     break;
@@ -81,80 +113,78 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
             }
         }
     };
+    private boolean mBind;
 
-
-    private void createRoom() {
+    private void createRoom(String name, String doc) {
         //创建群组
-        CoreService mXmppService;
-
-
+        List<String> list = new ArrayList<>();
+        for (int i = 0; i < entities.size(); i++) {
+            list.add(entities.get(i).getImId());
+        }
+        String roomName = name;
+        String roomDesc = doc;
+        createGroupChat(roomName, null, roomDesc, list);
     }
 
-    private void createGroupChat(String nickName, String roomName, String roomSubject, String roomDesc,
-                                 List<String> inviteUsers, final int or_id) {
-//        try {
-//            roomJid = mXmppService.createMucRoom(nickName, roomName, roomSubject, roomDesc);
-//        } catch (NullPointerException e) {
-//            roomJid = mXmppService.createMucRoom(nickName, roomName, "", roomDesc);
-//        }
-//        if (TextUtils.isEmpty(roomJid)) {
-//            ToastUtil.showToast(mContext, R.string.create_room_failed);
-//            return;
-//        }
-//
-//        Map<String, String> params = new HashMap<String, String>();
-//        params.put("access_token", MyApplication.getInstance().mAccessToken);
-//        params.put("jid", roomJid);
-//        params.put("name", roomName);
-//        params.put("category", "1");
-//        params.put("desc", roomDesc);
-//        params.put("countryId", String.valueOf(Area.getDefaultCountyId()));// 国家Id
-//
-//        Area area = Area.getDefaultProvince();
-//        if (area != null) {
-//            params.put("provinceId", String.valueOf(area.getId()));// 省份Id
-//        }
-//        area = Area.getDefaultCity();
-//        if (area != null) {
-//            params.put("cityId", String.valueOf(area.getId()));// 城市Id
-//            area = Area.getDefaultDistrict(area.getId());
-//            if (area != null) {
-//                params.put("areaId", String.valueOf(area.getId()));// 城市Id
-//            }
-//        }
-//
-//        double latitude = MyApplication.getInstance().getBdLocationHelper().getLatitude();
-//        double longitude = MyApplication.getInstance().getBdLocationHelper().getLongitude();
-//        if (latitude != 0)
-//            params.put("latitude", String.valueOf(latitude));
-//        if (longitude != 0)
-//            params.put("longitude", String.valueOf(longitude));
-//        params.put("text", JSON.toJSONString(inviteUsers));
-//        ProgressDialogUtil.show(mProgressDialog);
-//        StringJsonObjectRequest<MucRoom> request = new StringJsonObjectRequest<MucRoom>(mConfig.ROOM_ADD,
-//                new Response.ErrorListener() {
-//                    @Override
-//                    public void onErrorResponse(VolleyError arg0) {
-//                        ProgressDialogUtil.dismiss(mProgressDialog);
-//                        ToastUtil.showErrorNet(mContext);
-//                    }
-//                }, new StringJsonObjectRequest.Listener<MucRoom>() {
-//            @Override
-//            public void onResponse(ObjectResult<MucRoom> result) {
-//                boolean parserResult = Result.defaultParser(mContext, result, true);
-//                if (parserResult && result.getData() != null) {
-//                    mPullToRefreshListView.setPullDownRefreshing(200);//加载列表
-//                    updateCreateFalgToERP(or_id);
-//                }
-//                ProgressDialogUtil.dismiss(mProgressDialog);
-//            }
-//        }, MucRoom.class, params);
-//        String HASHCODE = Integer.toHexString(this.hashCode()) + "@";
-//        MyApplication.getInstance().getFastVolley().addDefaultRequest(HASHCODE, request);
-    }
+    private void createGroupChat(String roomName, String roomSubject, String roomDesc, List<String> inviteUsers) {
+        AppConfig mConfig = MyApplication.getInstance().getConfig();
+        String nickName = MyApplication.getInstance().mLoginUser.getNickName();
+        //创建群组
+        try {
+            roomJid = mXmppService.createMucRoom(nickName, roomName, roomSubject, roomDesc);
+        } catch (NullPointerException e) {
+            roomJid = mXmppService.createMucRoom(nickName, roomName, "", roomDesc);
+        }
+        if (TextUtils.isEmpty(roomJid)) {
+            ToastUtil.showToast(this, R.string.create_room_failed);
+            return;
+        }
+        Map<String, String> params = new HashMap<String, String>();
+        params.put("access_token", MyApplication.getInstance().mAccessToken);
+        params.put("jid", roomJid);
+        params.put("name", roomName);
+        params.put("desc", roomDesc);
+        params.put("countryId", String.valueOf(Area.getDefaultCountyId()));// 国家Id
+        Area area = Area.getDefaultProvince();
+        if (area != null) {
+            params.put("provinceId", String.valueOf(area.getId()));// 省份Id
+        }
+        area = Area.getDefaultCity();
+        params.put("category", 0 + "");
+        if (area != null) {
+            params.put("cityId", String.valueOf(area.getId()));// 城市Id
+            area = Area.getDefaultDistrict(area.getId());
+            if (area != null) {
+                params.put("areaId", String.valueOf(area.getId()));// 城市Id
+            }
+        }
 
+        double latitude = MyApplication.getInstance().getBdLocationHelper().getLatitude();
+        double longitude = MyApplication.getInstance().getBdLocationHelper().getLongitude();
+        if (latitude != 0)
+            params.put("latitude", String.valueOf(latitude));
+        if (longitude != 0)
+            params.put("longitude", String.valueOf(longitude));
+        params.put("text", JSON.toJSONString(inviteUsers));
+        StringJsonObjectRequest<MucRoom> request = new StringJsonObjectRequest<MucRoom>(mConfig.ROOM_ADD,
+                new Response.ErrorListener() {
+                    @Override
+                    public void onErrorResponse(VolleyError arg0) {
 
-    private boolean isSingle;
+                    }
+                }, new StringJsonObjectRequest.Listener<MucRoom>() {
+            @Override
+            public void onResponse(ObjectResult<MucRoom> result) {
+                boolean parserResult = Result.defaultParser(ct, result, true);
+                if (parserResult && result.getData() != null) {
+                    Log.i("gongpengming", "创建群组成功" + result.getResultData());
+                    sendMucChatMessage();
+                }
+            }
+        }, MucRoom.class, params);
+        String HASHCODE = Integer.toHexString(this.hashCode()) + "@";
+        MyApplication.getInstance().getFastVolley().addDefaultRequest(HASHCODE, request);
+    }
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -163,17 +193,17 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
         ViewUtils.inject(this);
         baseUrl = CommonUtil.getSharedPreferences(this, "erp_baseurl");
         ct = this;
+        mBind = bindService(CoreService.getIntent(), mServiceConnection, BIND_AUTO_CREATE);
         initView();
     }
 
 
     private void initView() {
+        user_tv.setText(MyApplication.getInstance().mLoginUser.getNickName());
         findViewById(R.id.bt_save).setOnClickListener(this);
         findViewById(R.id.start_rl).setOnClickListener(this);
         findViewById(R.id.end_rl).setOnClickListener(this);
         findViewById(R.id.users_rl).setOnClickListener(this);
-        findViewById(R.id.user_rl).setOnClickListener(this);
-
     }
 
     @Override
@@ -187,18 +217,69 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
                 break;
             case R.id.bt_save:
                 signinAble();
+                progressDialog.show();
                 break;
             case R.id.users_rl://选择参会人员
-                isSingle = false;
-                startSelectActivity();
-                break;
-            case R.id.user_rl://选择管理员
-                isSingle = true;
-                startSelectActivity();
+                Intent intent = new Intent(ct, MeetSelectActivity.class);
+                startActivityForResult(intent, request);
                 break;
+
+        }
+    }
+
+    private void sendMucChatMessage() {
+        ChatMessage message = new ChatMessage();
+        message.setType(XmppMessage.TYPE_TEXT);
+        message.setContent("大家注意按时去开会");
+        message.setFromUserName(MyApplication.getInstance().mLoginUser.getNickName());
+        message.setFromUserId(MyApplication.getInstance().mLoginUser.getUserId());
+        message.setTimeSend(TimeUtils.sk_time_current_time());
+        message.setPacketId(UUID.randomUUID().toString().replaceAll("-", ""));
+        ChatMessageDao.getInstance().saveNewSingleChatMessage(MyApplication.getInstance().mLoginUser.getUserId(), roomJid, message);
+        if (message.getType() == XmppMessage.TYPE_VOICE || message.getType() == XmppMessage.TYPE_IMAGE
+                || message.getType() == XmppMessage.TYPE_VIDEO || message.getType() == XmppMessage.TYPE_FILE) {
+            if (!message.isUpload()) {
+                UploadEngine.uploadImFile(roomJid, message, mUploadResponse);
+            } else {
+                send(message);
+            }
+        } else {
+            send(message);
+
         }
     }
 
+    private void send(ChatMessage message) {
+        mXmppService.sendMucChatMessage(roomJid, message);
+        ct.progressDialog.dismiss();
+        ToastUtil.showToast(ct, "建立群组成功");
+        //TODO 完成返回
+        endOfActivity();
+
+    }
+
+    private void endOfActivity() {
+        Intent intent = new Intent();
+        intent.putExtra("data", "data");
+        setResult(0x14, intent);
+        finish();
+        progressDialog.dismiss();
+    }
+
+    //发送消息到好友
+    private UploadEngine.ImFileUploadResponse mUploadResponse = new UploadEngine.ImFileUploadResponse() {
+        @Override
+        public void onSuccess(String toUserId, ChatMessage message) {
+            mXmppService.sendChatMessage(roomJid, message);
+        }
+
+        @Override
+        public void onFailure(String toUserId, ChatMessage message) {
+            Log.i("gongpengming", "发送失败");
+        }
+    };
+
+    //判断是否可以进行创建
     private void signinAble() {
         if (StringUtils.isEmpty(name_et.getText().toString())) {
             ToastUtil.showToast(this, "会议名为空或格式不正确");
@@ -237,20 +318,15 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
         for (int i = 0; i < entities.size(); i++) {
             if (i == 0) {
                 builder.append(entities.get(i).getName());
-                builderId.append(entities.get(i).getImId());
+                builderId.append("employee#" + entities.get(i).getImId());
             } else {
                 builder.append(";" + entities.get(i).getName());
-                builderId.append(";" + entities.get(i).getImId());
+                builderId.append(";employee#" + entities.get(i).getImId());
             }
         }
-
+        Log.i("gongpengming", builderId.toString());
         doSignin(builder.toString(), builderId.toString());
-    }
-
-    public void startSelectActivity() {
-        Intent intent = new Intent(ct, MeetSelectActivity.class);
-        intent.putExtra(MeetSelectActivity.KEY_IS_SINGLE, isSingle);
-        startActivityForResult(intent, request);
+        addRiCheng();
     }
 
     //TODO 待修改方案
@@ -275,9 +351,9 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
             @Override
             public void onDatePicked(String date) {
                 if (isStart) {
-                    start_tv.setText(date);
+                    start_tv.setText(date + ":00:00");
                 } else {
-                    end_tv.setText(date);
+                    end_tv.setText(date + ":00:00");
                 }
                 dialog.dismiss();
             }
@@ -309,7 +385,6 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
         bean.setMa_groupid(ids);
         bean.setMa_statuscode("ENTERING");
         String formStore = FlexJsonUtil.toJson(bean);
-        Log.i("gongpengming", formStore);
         String caller = "Meetingroomapply";
         param.put("caller", caller);
         param.put("param", "[]");
@@ -320,23 +395,69 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
         ViewUtil.httpSendRequest(ct, url, param, handler, headers, whatSignin, null, null, "post");
     }
 
+    private void addRiCheng() {
+        //获取网络数据
+        if (baseUrl == null) {
+            baseUrl = CommonUtil.getSharedPreferences(this, "erp_baseurl");
+        }
+        String url = baseUrl + "common/saveCommon.action";
+        final Map<String, Object> param = new HashMap<>();
+        String formStore = "{" +
+                "\"ag_arrange\":" + "陈萍" +","+
+                "\"ag_atid\":" + "4633" +","+
+                "\"ag_type\":" + "重要" +","+
+                "\"ag_start\":" + "2016-07-20 09:16:04" +","+
+                "\"ag_end\":" + "2016-07-20 09:16:06" +","+
+                "\"ag_issecrecy\":" + "陈萍" +","+
+                "\"ag_title\":" + "测试" +","+
+                "\"ag_executor\":" + "陈萍" +","+
+                "\"ag_content\":" + "测试123" +","+
+                "\"ag_arrange_id\":" + "45" +","+
+                "\"ag_executor_id\":" + "1008885" +","+
+                "\"AG_PREDICT\":" + "" +","+
+                "\"AG_ISMESSAGE\":" + "" +","+
+                "\"AG_ISWEEK\":" + "" +
+                "}";
+        String caller = "Agenda";
+        param.put("caller", caller);
+        param.put("param", "[]");
+        param.put("formStore", formStore);
+        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, param, handler, headers, whatAdd, null, null, "post");
+    }
+
+    private CoreService mXmppService;
+    private ServiceConnection mServiceConnection = new ServiceConnection() {
+
+
+        @Override
+        public void onServiceDisconnected(ComponentName name) {
+            mXmppService = null;
+        }
+
+        @Override
+        public void onServiceConnected(ComponentName name, IBinder service) {
+            mXmppService = ((CoreService.CoreServiceBinder) service).getService();
+        }
+    };
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (mBind) {
+            unbindService(mServiceConnection);
+        }
+    }
 
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (data == null) return;
-        Log.i("gongpengming", "return之后");
         if (requestCode == this.request) {
-            Log.i("gongpengming", "requestCode之后");
-            Log.i("gongpengming", "resultCode==" + resultCode);
             if (resultCode == this.resultCode) {
-                Log.i("gongpengming", "resultCode之后");
-                if (isSingle) {
-                    entity = data.getParcelableExtra("data");
-                    user_tv.setText(entity.getName());
-                } else {
-                    entities = data.getParcelableArrayListExtra("data");
-                    users_tv.setText("选择" + entities.size() + "人");
-                }
+                entities = data.getParcelableArrayListExtra("data");
+                users_tv.setText("选择" + entities.size() + "人");
             }
         }
     }

+ 126 - 16
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetDetailsActivity.java

@@ -6,23 +6,48 @@ import android.os.Handler;
 import android.os.Message;
 import android.util.Log;
 import android.view.View;
+import android.widget.TextView;
 
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.bean.oa.MeetingDocBean;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.view.CustomerListView;
+import com.xzjmyk.pm.activity.util.TimeUtils;
+import com.xzjmyk.pm.activity.util.ToastUtil;
+
+import org.json.JSONException;
+import org.json.JSONObject;
 
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-public class
-MeetDetailsActivity extends BaseActivity implements View.OnClickListener {
+public class MeetDetailsActivity extends BaseActivity implements View.OnClickListener {
+    @ViewInject(R.id.name_tv)
+    private TextView name_tv;
+    @ViewInject(R.id.addr_tv)
+    private TextView addr_tv;
+    @ViewInject(R.id.user_tv)
+    private TextView user_tv;
+    @ViewInject(R.id.oa_meeting_start)
+    private TextView oa_meeting_start;
+    @ViewInject(R.id.oa_meeting_start_date)
+    private TextView oa_meeting_start_date;
+    @ViewInject(R.id.status_tv)
+    private TextView status_tv;
+
+
     private CustomerListView meet_listview;
     private final int whatLoad = 0x11;
     private final int whatEndMeet = 0x12;
-    private int ma_code;
+    private final int doMeet = 0x13;
+    private int ma_id;
+    private String ma_code;
+    private JSONObject object;
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
@@ -31,21 +56,37 @@ MeetDetailsActivity extends BaseActivity implements View.OnClickListener {
             Log.i("gongpengming", message);
             switch (msg.what) {
                 case whatLoad:
-                    Log.i("gongpengming", "what==whatLoad");
+                    try {
+                        JSONObject json = new JSONObject(message);
+                        object = json.getJSONObject("panelData");
+                        updataUI();
+                    } catch (JSONException e) {
+                        e.printStackTrace();
+                    }
                     break;
-                case whatEndMeet:
+                case ENDMEET:
+                    ToastUtil.showToast(ct, "会议结束成功");
                     Log.i("gongpengming", "what==whatLoad");
                     break;
-
+                case SIGNNIN:
+                    ToastUtil.showToast(ct, "会议签到成功");
+                    Log.i("gongpengming", "what==doMeet");
+                    break;
             }
         }
     };
+    private String endTime;
+    private String startTime;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_meet_details);
-        ma_code = getIntent().getIntExtra("code", 4864);
+        ViewUtils.inject(this);
+        ma_id = getIntent().getIntExtra("id", 4864);
+        ma_code = getIntent().getStringExtra("code");
+        startTime = getIntent().getStringExtra("start");
+        endTime = getIntent().getStringExtra("end");
         getSupportActionBar().setTitle("会议详情");
         loadNetData();
         initView();
@@ -56,10 +97,36 @@ MeetDetailsActivity extends BaseActivity implements View.OnClickListener {
         findViewById(R.id.meet_save).setOnClickListener(this);
         findViewById(R.id.click_find).setOnClickListener(this);
         findViewById(R.id.end_meet_tv).setOnClickListener(this);
+        findViewById(R.id.click_btn).setOnClickListener(this);
     }
 
     String baseUrl;
 
+    private void updataUI() {
+        if (object == null) return;
+        try {
+            name_tv.setText(object.getString("ma_theme"));
+            addr_tv.setText(object.getString("mr_site"));
+            user_tv.setText(object.getString("ma_recorder"));
+            String time = object.getString("ma_starttime");
+            long startLongTime = TimeUtils.f_str_2_long(time);
+            oa_meeting_start.setText(TimeUtils.ss_long_2_str(startLongTime));
+            oa_meeting_start_date.setText(TimeUtils.long2str(startLongTime, "HH:mm"));
+            String str;
+            long endLongTime = 0;
+            if (System.currentTimeMillis() < startLongTime) {
+                str = "会议未开始";
+            } else if (System.currentTimeMillis() < endLongTime) {
+                str = "会议进行中";
+            } else {
+                str = "会议已结束";
+            }
+            status_tv.setText(str);
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+    }
+
     //获取网络数据
     private void loadNetData() {
         progressDialog.show();
@@ -74,48 +141,91 @@ MeetDetailsActivity extends BaseActivity implements View.OnClickListener {
         String caller = "Meetingroomapply";
         param.put("caller", caller);
         param.put("emcode", em_code);
-        param.put("formCondition", "ma_id=" + ma_code);
-        param.put("gridCondition", "ma_id=" + ma_code);
+        param.put("formCondition", "ma_id=" + ma_id);
+        param.put("gridCondition", "ma_id=" + ma_id);
         param.put("sessionId", sessionId);
         Log.i("gongpengming", url + "?emcode=" + em_code + "sessionId=" + sessionId);
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
         ViewUtil.httpSendRequest(ct, url, param, handler, headers, whatLoad, null, null, "post");
     }
-    private void endOfMeeting() {
+
+    private final int SIGNNIN = 0x1, ENDMEET = 0x2;
+
+    /**
+     * 提交接口(结束会议、会议签到、为与会成员加 日程)
+     *
+     * @param type 接口类型
+     */
+    private void doNetSubmit(int type) {
         progressDialog.show();
         //获取网络数据
         if (baseUrl == null) {
             baseUrl = CommonUtil.getSharedPreferences(this, "erp_baseurl");
         }
-        String url = baseUrl + "mobile/crm/updateMeeting.action";
+        String urlSub = "";
+        switch (type) {
+            case SIGNNIN:
+                urlSub = "mobile/oa/meeting/meetingSignInMobile.action";//会议签到
+                break;
+            case ENDMEET:
+                urlSub = "mobile/crm/updateMeeting.action";//结束会议
+                break;
+
+        }
+        String url = baseUrl + urlSub;
         String em_code = CommonUtil.getSharedPreferences(ct, "erp_username");
         String sessionId = CommonUtil.getSharedPreferences(ct, "sessionId");
         final Map<String, Object> param = new HashMap<>();
         String caller = "Meetingroomapply";
-//        param.put("caller", caller);
         param.put("emcode", em_code);
-        param.put("ma_id", +ma_code);
+        if (type != ENDMEET)
+            param.put("caller", caller);
+        param.put("ma_id", ma_id);
         param.put("sessionId", sessionId);
         Log.i("gongpengming", url + "?emcode=" + em_code + "sessionId=" + sessionId);
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-        ViewUtil.httpSendRequest(ct, url, param, handler, headers, whatLoad, null, null, "post");
+        ViewUtil.httpSendRequest(ct, url, param, handler, headers, type, null, null, "post");
     }
 
+
     @Override
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.click_find:
                 Intent intent = new Intent(MeetDetailsActivity.this, OARegisterActivity.class);
                 intent.putExtra("code", ma_code);
+                intent.putExtra("id", ma_code);
                 startActivity(intent);
                 break;
             case R.id.meet_save:
-                startActivity(new Intent(ct, SaveMeetActivity.class));
+                MeetingDocBean bean = new MeetingDocBean();
+                Intent data = new Intent(ct, SaveMeetActivity.class);
+                bean.setMd_recorder(user_tv.getText().toString());
+                bean.setMd_recorderdate("");
+                bean.setMd_status("再录入");
+                bean.setMd_title(name_tv.getText().toString());
+                bean.setMd_mtname(name_tv.getText().toString());
+                bean.setMd_meetingname("");
+                bean.setMd_meetingcode("");
+                bean.setMd_mrcode("");
+                bean.setMd_mrname("");
+                bean.setMd_starttime(startTime);
+                bean.setMd_statuscode("ENTERING");
+                bean.setMd_endtime(endTime);
+                bean.setMd_group("陈虎");//数据返回
+                bean.setMd_attachs("");
+                bean.setMd_contents("jil");
+                bean.setMd_groupid("employee#1010913");//数据返回
+                data.putExtra("data", bean);
+                startActivity(data);
                 break;
             case R.id.end_meet_tv:
-                endOfMeeting();
+                doNetSubmit(ENDMEET);
+                break;
+            case R.id.click_btn:
+                doNetSubmit(SIGNNIN);
                 break;
         }
     }

+ 21 - 30
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetSelectActivity.java

@@ -4,7 +4,6 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.text.Editable;
 import android.text.TextWatcher;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -38,10 +37,8 @@ public class MeetSelectActivity extends BaseActivity {
     private ClearEditText search_edit;
 
     private DBManager manager;
-    public static final String KEY_IS_SINGLE = "KEY_IS_SINGLE";
     private ArrayList<MeetUserEntity> entities;
     private MeetSelectAdapter adapter;
-    private boolean isSingle = false;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -72,13 +69,8 @@ public class MeetSelectActivity extends BaseActivity {
         listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
-                if (isSingle) {
-                    entities.get(i).setClick(true);
-                    selectOK();
-                } else {
-                    entities.get(i).setClick(true);
-                    adapter.notifyDataSetChanged();
-                }
+                entities.get(i).setClick(!entities.get(i).isClick());
+                adapter.notifyDataSetChanged();
             }
         });
     }
@@ -90,10 +82,7 @@ public class MeetSelectActivity extends BaseActivity {
             if (entities.get(i).isClick()) list.add(entities.get(i));
         }
         Intent intent = new Intent();
-        if (isSingle) {
-            intent.putExtra("data", list.get(0));
-        } else
-            intent.putExtra("data", list);
+        intent.putExtra("data", list);
         setResult(AddMeetingActivity.resultCode, intent);
         finish();
     }
@@ -108,33 +97,35 @@ public class MeetSelectActivity extends BaseActivity {
 
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
-        if (!isSingle) {
-            getMenuInflater().inflate(R.menu.menu_visit_save, menu);
-        }
+        getMenuInflater().inflate(R.menu.menu_visit_save, menu);
         return super.onCreateOptionsMenu(menu);
     }
-
     private void init() {
-        isSingle = getIntent().getBooleanExtra(KEY_IS_SINGLE, false);
-        Log.i("gongpengming", "isSingle=" + isSingle);
+        getDataByDB();
+    }
+    private void getDataByDB() {  //企业通讯录好友
         if (entities == null)
             entities = new ArrayList<>();
         if (manager == null)
             manager = new DBManager(ct);
         String master = CommonUtil.getSharedPreferences(ct, "erp_master"); //待优化   每次都 读取文件耗性能
         if (StringUtils.isEmpty(master)) return;
-        List<EmployeesEntity> emList = manager.select_getEmployee(new String[]{master}, "whichsys=?");//获取当前账套列表
-        if (emList == null || emList.size() <= 0) return;
-        MeetUserEntity entity = null;
-        for (int i = 0; i < emList.size(); i++) {
-            entity = new MeetUserEntity();
-            entity.setEmCode(emList.get(i).getEM_CODE());
-            entity.setImId(emList.get(i).getEM_ID());
-            entity.setName(emList.get(i).getEM_NAME());
-            entities.add(entity);
-        }//完成数据加载
+        List<EmployeesEntity> emList = manager.select_getEmployee(
+                new String[]{master},
+                "whichsys=?");
+        for (int i = 0; i < emList.size(); i++) {//企业通讯人员
+            if (emList.get(i).getEm_IMID() == 0) continue;
+            entities.add(EnterChatAction(emList.get(i)));
+        }
     }
 
+    private MeetUserEntity EnterChatAction(EmployeesEntity employee) {
+        MeetUserEntity entity = new MeetUserEntity();
+        entity.setImId(String.valueOf(employee.getEm_IMID()));
+        entity.setName(employee.getEM_NAME());
+        entity.setEmCode(employee.getEM_CODE());
+        return entity;
+    }
 
     class MeetSelectAdapter extends BaseAdapter {
         @Override

+ 27 - 6
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetingActivity.java

@@ -40,11 +40,13 @@ public class MeetingActivity extends BaseActivity {
 
     private String baseUrl;
     private final int whatLoad = 0x11;
+    private int requestCode = 0x13;
 
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
             progressDialog.dismiss();
+            listView.setRefreshing(false);
             String message = (String) msg.getData().get("result");
             Log.i("gongpengming", message);
             switch (msg.what) {
@@ -94,7 +96,13 @@ public class MeetingActivity extends BaseActivity {
             @Override
             public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                 Intent intent = new Intent(MeetingActivity.this, MeetDetailsActivity.class);
-                intent.putExtra("code", entities.get(i).getMa_id());
+                MeetEntity entity = entities.get((i - 1 < 0 ? 0 : (i - 1)));
+                String startTime = entity.getMa_starttime();
+                String endTime = entity.getMa_endtime();
+                intent.putExtra("code", entity.getMa_code());
+                intent.putExtra("id", entity.getMa_id());
+                intent.putExtra("start", startTime);
+                intent.putExtra("end", endTime);
                 startActivity(intent);
             }
         });
@@ -114,8 +122,9 @@ public class MeetingActivity extends BaseActivity {
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == R.id.add)
-            activity.startActivity(new Intent(activity, AddMeetingActivity.class));
+        if (item.getItemId() == R.id.add) {
+            activity.startActivityForResult(new Intent(activity, AddMeetingActivity.class), requestCode);
+        }
         return super.onOptionsItemSelected(item);
     }
 
@@ -134,7 +143,7 @@ public class MeetingActivity extends BaseActivity {
         String emcode = CommonUtil.getSharedPreferences(ct, "erp_username");
         String sessionId = CommonUtil.getSharedPreferences(ct, "sessionId");
         String caller = "Meetingroomapply";
-        String condition = "MA_STATUSCODE='AUDITED'";
+        String condition = "MA_STATUSCODE='AUDITED'and MD_EMCODE=" + "\'" + emcode + "\'";
         final Map<String, Object> param = new HashMap<>();
         param.put("caller", caller);
         param.put("emcode", emcode);
@@ -218,7 +227,7 @@ public class MeetingActivity extends BaseActivity {
             long endLong = TimeUtils.f_str_2_long(entity.getMa_endtime());
             viewholder.oa_meeting_start.setText(TimeUtils.long2str(endLong, "MM月dd日"));
             viewholder.oa_meeting_end.setText(TimeUtils.long2str(endLong, "MM月dd日"));
-            viewholder.oa_meeting_start_date.setText(TimeUtils.long2str(endLong, "HH:mm"));
+            viewholder.oa_meeting_start_date.setText(TimeUtils.long2str(startLong, "HH:mm"));
             viewholder.oa_meeting_end_date.setText(TimeUtils.long2str(endLong, "HH:mm"));
             viewholder.oa_meeting_name_tv.setText(entity.getMa_theme());
             viewholder.oa_meeting_status_tv.setText(str);
@@ -236,8 +245,20 @@ public class MeetingActivity extends BaseActivity {
                     oa_meeting_addr_tv,//会议地址
                     oa_meeting_user_tv;//会议发起人
         }
-
     }
 
 
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (data == null) return;
+        if (requestCode == this.requestCode) {
+            if (resultCode == 0x14) {
+                if ("data".equals(data.getStringExtra("data"))) {
+                    //TODO 刷新
+                    loadNetData();
+                    listView.setRefreshing(true);
+                }
+            }
+        }
+    }
 }

+ 38 - 6
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OARegisterActivity.java

@@ -16,6 +16,10 @@ import com.xzjmyk.pm.activity.ui.erp.fragment.OaRegisterFragment;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
@@ -24,7 +28,9 @@ public class OARegisterActivity extends BaseActivity {
     private TabLayout tabLayout;
     private ViewPager viewPager;
     private String[] title = {"已签到", "未签到"};
-    private int ma_code;
+    private int ma_id;
+    private String ma_code;
+    private String baseUrl;
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
@@ -32,16 +38,40 @@ public class OARegisterActivity extends BaseActivity {
             String message = (String) msg.getData().get("result");
             Log.i("gongpengming", message);
             if (msg.what == 0x11) {
+                try {
+                    JSONObject json = new JSONObject(message);
+                    if (json.isNull("success") || !json.getBoolean("success")) return;
+                    confirmed = json.getJSONObject("participants").getJSONArray("confirmed");
+                    unconfirmed = json.getJSONObject("participants").getJSONArray("unconfirmed");
+//                    String[] strcon = new String[confirmed.length()];
+//                    String[] struncon = new String[unconfirmed.length()];
+//                    for (int i = 0; i < confirmed.length(); i++) {
+//                        strcon[i] = confirmed.getJSONObject(i).getString("EM_NAME");
+//                        Log.i("gongpengming", "strcon[]=" + strcon[i]);
+//                    }
+//                    for (int i = 0; i < unconfirmed.length(); i++) {
+//                        struncon[i] = unconfirmed.getJSONObject(i).getString("EM_NAME");
+//                        Log.i("gongpengming", "struncon[]=" + struncon[i]);
+//                    }
+//                    Log.i("gongpengming", "unconfirmed=" + unconfirmed.length() + "@@confirmed=" + confirmed.length());
+                    updataUI();
+                } catch (JSONException e) {
+                    Log.i("gongpengming", "错误" + e.getMessage());
+                    e.printStackTrace();
+                }
                 Log.i("gongpengming", "msg.what==0x11");
             }
         }
     };
+    private JSONArray confirmed;
+    private JSONArray unconfirmed;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_oaregister);
-        ma_code = getIntent().getIntExtra("code", 4864);
+        ma_id = getIntent().getIntExtra("id", 4864);
+        ma_code = getIntent().getStringExtra("code");
         initView();
         loadNetData();
     }
@@ -49,14 +79,16 @@ public class OARegisterActivity extends BaseActivity {
     private void initView() {
         tabLayout = (TabLayout) findViewById(R.id.tabLayout);
         viewPager = (ViewPager) findViewById(R.id.viewPager);
+
+    }
+
+    private void updataUI() {
         ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
         viewPager.setAdapter(adapter);
         tabLayout.setupWithViewPager(viewPager);
         tabLayout.setTabsFromPagerAdapter(adapter);//给Tabs设置适配器
     }
 
-    private String baseUrl;
-
     //获取网络数据
     private void loadNetData() {
         progressDialog.show();
@@ -73,6 +105,7 @@ public class OARegisterActivity extends BaseActivity {
         param.put("emcode", em_code);
         param.put("formCondition", "ma_id=" + ma_code);
         param.put("gridCondition", "ma_id=" + ma_code);
+        param.put("ma_code", ma_code);
         param.put("sessionId", sessionId);
         Log.i("gongpengming", url + "?emcode=" + em_code + "sessionId=" + sessionId);
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
@@ -80,7 +113,6 @@ public class OARegisterActivity extends BaseActivity {
         ViewUtil.httpSendRequest(ct, url, param, handler, headers, 0x11, null, null, "post");
     }
 
-
     class ViewPagerAdapter extends FragmentPagerAdapter {
         @Override
         public CharSequence getPageTitle(int position) {
@@ -93,7 +125,7 @@ public class OARegisterActivity extends BaseActivity {
 
         @Override
         public Fragment getItem(int position) {
-            return OaRegisterFragment.getInstance(title[position]);
+            return OaRegisterFragment.getInstance(position == 0 ? confirmed : unconfirmed);
         }
 
         @Override

+ 0 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OutSigninOKActivity.java

@@ -75,10 +75,8 @@ public class OutSigninOKActivity extends BaseActivity {
         public void handleMessage(Message msg) {
             progressDialog.dismiss();
             String message = (String) msg.getData().get("result");
-            Log.i("gongpengming", message);
             switch (msg.what) {
                 case whatSignin:
-                    Log.i("gongpengming", "msg.what == whatSignin");
                     try {
                         JSONObject json = new JSONObject(message);
                         if (!json.isNull("success") && json.getBoolean("success")) {
@@ -115,7 +113,6 @@ public class OutSigninOKActivity extends BaseActivity {
         bean.setMo_company(com_tv.getText().toString().trim());
         bean.setMo_signtime(TimeUtils.f_long_2_str(System.currentTimeMillis()));
         String formStore = FlexJsonUtil.toJson(bean);
-        Log.i("gongpengming", formStore);
         String caller = "mobile_outsign";
         param.put("caller", caller);
         param.put("formStore", formStore);

+ 38 - 26
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SaveMeetActivity.java

@@ -3,37 +3,65 @@ package com.xzjmyk.pm.activity.ui.erp.activity.oa;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.support.v7.app.AppCompatActivity;
-import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
 
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.oa.MeetingDocBean;
+import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.FlexJsonUtil;
+import com.xzjmyk.pm.activity.util.ToastUtil;
+
+import org.json.JSONException;
+import org.json.JSONObject;
 
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-public class SaveMeetActivity extends AppCompatActivity {
+//会议纪要
+public class SaveMeetActivity extends BaseActivity {
 
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
             String message = (String) msg.getData().get("result");
-            Log.i("gongpengming", message);
             if (msg.what == 0x11) {
-                Log.i("gongpengming", "SaveMeetActivity++++msg.what == 0x11");
+                try {
+                    JSONObject json = new JSONObject(message);
+                    if (!json.isNull("success") && json.getBoolean("success")) {
+                        ToastUtil.showToast(SaveMeetActivity.this, "保存会议纪要成功");
+                        finish();
+                    }
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
             }
         }
     };
+    private MeetingDocBean bean;
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == R.id.save) {
+            doSave();
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        getMenuInflater().inflate(R.menu.menu_visit_save, menu);
+        return super.onCreateOptionsMenu(menu);
+    }
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_save_meet);
-        doSave();
+        bean = getIntent().getParcelableExtra("data");
     }
 
     private String baseUrl;
@@ -44,27 +72,11 @@ public class SaveMeetActivity extends AppCompatActivity {
             baseUrl = CommonUtil.getSharedPreferences(this, "erp_baseurl");
         String url = baseUrl + "oa/meeting/saveMeetingDoc.action";
         final Map<String, Object> param = new HashMap<>();
-        MeetingDocBean bean = new MeetingDocBean();
-        bean.setMd_fileno("2016070019");
-        bean.setMd_recorder("陈萍萍");
-        bean.setMd_recorderdate("2016-07-20");
-        bean.setMd_status("再录入");
-        bean.setMd_title("测试");
-        bean.setMd_mtname("");
-        bean.setMd_meetingname("");
-        bean.setMd_meetingcode("");
-        bean.setMd_mrcode("");
-        bean.setMd_mrname("");
-        bean.setMd_starttime("2016-07-20 08:30:00");
-        bean.setMd_statuscode("ENTERING");
-        bean.setMd_endtime("2016-07-20 18:30:00");
-        bean.setMd_group("陈虎");
-        bean.setMd_attachs("");
-        bean.setMd_contents("jil");
-        bean.setMd_id("5411");
-        bean.setMd_groupid("1010913");
+        if (bean == null) {
+            ToastUtil.showToast(this, "系统出错,请稍后再试");
+            return;
+        }
         String formStore = FlexJsonUtil.toJson(bean);
-        Log.i("gongpengming", formStore);
         String caller = "MeetingDoc";
         param.put("caller", caller);
         param.put("formStore", formStore);

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

@@ -10,6 +10,9 @@ import android.widget.ListView;
 
 import com.xzjmyk.pm.activity.R;
 
+import org.json.JSONArray;
+import org.json.JSONException;
+
 import java.util.ArrayList;
 
 /**
@@ -17,13 +20,13 @@ import java.util.ArrayList;
  */
 public class OaRegisterFragment extends Fragment {
     private ListView listView;
-    private ArrayList<String> str = new ArrayList<>();
+    private JSONArray array;
 
 
-    public synchronized static OaRegisterFragment getInstance(String title) {
+    public synchronized static OaRegisterFragment getInstance(JSONArray data) {
         OaRegisterFragment fragment = new OaRegisterFragment();
         Bundle bundle = new Bundle();
-        bundle.putString("KEY", title);
+        bundle.putString("DATA", data.toString());
         fragment.setArguments(bundle);
         return fragment;
     }
@@ -34,16 +37,29 @@ public class OaRegisterFragment extends Fragment {
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
         View view = inflater.inflate(R.layout.fragment_register_oa, container, false);
         Bundle bundle = getArguments();
-        String title = bundle.getString("KEY");
-        for (int i = 0; i < 30; i++)
-            str.add(title + i);
-        initView(view);
+        String data = bundle.getString("DATA");
+        try {
+            array = new JSONArray(data);
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+        initView(view, array);
         return view;
     }
 
-    private void initView(View view) {
+    private void initView(View view, JSONArray array) {
         listView = (ListView) view.findViewById(R.id.listview);
+        if (array == null || array.length() <= 0) return;
+        ArrayList str = new ArrayList();
+        try {
+            for (int i = 0; i < array.length(); i++) {
+                str.add(array.getJSONObject(i).getString("EM_NAME"));
+            }
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
         ArrayAdapter<String> adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, str);
         listView.setAdapter(adapter);
     }
+
 }

+ 13 - 10
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninFragment.java

@@ -68,8 +68,8 @@ public class SigninFragment extends EasyFragment {
             Bundle message = msg.getData();
             switch (msg.what) {
                 case whatLoad:
-                    Log.i("gongpengming", "msg.what == whatLoad");
                     try {
+                        //获取到当前时间
                         JSONObject object = new JSONObject(message.getString("result"));
                         String u = object.isNull("ondutytime") ? "00:00" : object.getString("ondutytime");
                         String d = object.isNull("offdutytime") ? "00:00" : object.getString("offdutytime");
@@ -80,9 +80,6 @@ public class SigninFragment extends EasyFragment {
                         time0fwork_tv.setText((uHH < 10 ? "0" : "") + uHH + ":" + (uMM < 10 ? "0" : "") + uMM);
                         time0fuwork_tv.setText((dHH < 10 ? "0" : "") + dHH + ":" + (dMM < 10 ? "0" : "") + dMM);
                         //获取到签到时间后开线程计算距离签到时间
-                        double latitude = MyApplication.getInstance().getBdLocationHelper().getLatitude();
-                        double longitude = MyApplication.getInstance().getBdLocationHelper().getLongitude();
-                        Log.i("gongpengming", "latitude=" + latitude + "@@ longitude" + longitude);
                         startThrad();
                     } catch (JSONException e) {
                         e.printStackTrace();
@@ -161,16 +158,17 @@ public class SigninFragment extends EasyFragment {
                 int mHour = mCalendar.get(Calendar.HOUR);
                 int mMin = mCalendar.get(Calendar.MINUTE);
                 int mSecond = mCalendar.get(Calendar.SECOND);
+
                 if (mHour < uHH) {//当前时间在上班时间之前
-                    beforeTheTime(mHour, mMin,mSecond);
+                    beforeTheTime(mHour, mMin, mSecond);
                 } else if (mHour == uHH) {//
                     if (mMin < uMM) {//还没到上班考勤时间
-                        beforeTheTime(mHour, mMin,mSecond);
+                        beforeTheTime(mHour, mMin, mSecond);
                     } else {//过了上班考勤时间
-                        endTheTime(mHour, mMin,mSecond);
+                        endTheTime(mHour, mMin, mSecond);
                     }
                 } else if (mHour < dHH && mHour > uHH) {//当前时间在上班时间之后在下班时间之前
-                    endTheTime(mHour, mMin,mSecond);
+                    endTheTime(mHour, mMin, mSecond);
                 } else {//当前时间在上班时间和下班时间之后  当天打卡时间已过
                     sendHandle(-1, -1);
                 }
@@ -205,10 +203,16 @@ public class SigninFragment extends EasyFragment {
         }
     }
 
+    /**
+     * @param mHour   当前时
+     * @param mMin    当前分
+     * @param mSecond 当前秒
+     */
     private void beforeTheTime(int mHour, int mMin, int mSecond) {//当前时间在上班时间之前
         try {
             int m = mMin - uMM;
             int h = uHH - mHour;
+
             while (true) {
                 if (isPlay) break;
                 m--;
@@ -278,11 +282,10 @@ public class SigninFragment extends EasyFragment {
         bean.setCl_distance(300);
         bean.setCl_emcode(CommonUtil.getSharedPreferences(ct, "erp_username"));
         bean.setCl_emname(MyApplication.getInstance().mLoginUser.getNickName());
-        bean.setCl_time("2016-07-22");
+        bean.setCl_time(TimeUtils.f_long_2_str(System.currentTimeMillis()));
         bean.setCl_location("test地址");
         bean.setCl_phone(MyApplication.getInstance().mLoginUser.getTelephone());
         String formStore = FlexJsonUtil.toJson(bean);
-        Log.i("gongpengming", formStore);
         String caller = "CardLog";
         param.put("caller", caller);
         param.put("formStore", formStore);

+ 2 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/groupchat/GroupChatFragment.java

@@ -285,7 +285,9 @@ public class GroupChatFragment extends EasyFragment {
                     List<MucRoom> datas = result.getData();
                     if (datas != null && datas.size() > 0) {
                         for (int i = 0; i < datas.size(); i++) {
+                            Log.i("gongpengming",datas.get(i).getName());
                             if (datas.get(i).getCategory() == 1) {
+
                             } else {
                                 mMucRooms.add(datas.get(i));
                             }

+ 92 - 103
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/groupchat/SelectContactsActivity.java

@@ -6,15 +6,12 @@ import android.content.ComponentName;
 import android.content.Intent;
 import android.content.ServiceConnection;
 import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
 import android.media.ThumbnailUtils;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
-import android.os.Looper;
 import android.os.Message;
 import android.text.TextUtils;
-import android.text.format.DateFormat;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -35,7 +32,6 @@ import com.android.volley.VolleyError;
 import com.loopj.android.http.AsyncHttpClient;
 import com.loopj.android.http.AsyncHttpResponseHandler;
 import com.loopj.android.http.RequestParams;
-import com.nostra13.universalimageloader.core.ImageLoader;
 import com.xzjmyk.pm.activity.AppConstant;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
@@ -45,7 +41,6 @@ import com.xzjmyk.pm.activity.bean.MucRoomSimple;
 import com.xzjmyk.pm.activity.bean.User;
 import com.xzjmyk.pm.activity.bean.message.MucRoom;
 import com.xzjmyk.pm.activity.broadcast.CardcastUiUpdateUtil;
-import com.xzjmyk.pm.activity.broadcast.MsgBroadcast;
 import com.xzjmyk.pm.activity.broadcast.MucgroupUpdateUtil;
 import com.xzjmyk.pm.activity.db.dao.FriendDao;
 import com.xzjmyk.pm.activity.db.dao.UserDao;
@@ -61,10 +56,8 @@ import com.xzjmyk.pm.activity.ui.message.MucChatActivity;
 import com.xzjmyk.pm.activity.util.Constants;
 import com.xzjmyk.pm.activity.util.DateFormatUtil;
 import com.xzjmyk.pm.activity.util.DisplayUtil;
-import com.xzjmyk.pm.activity.util.FileUtil;
 import com.xzjmyk.pm.activity.util.ImageUtil;
 import com.xzjmyk.pm.activity.util.ProgressDialogUtil;
-import com.xzjmyk.pm.activity.util.SystemUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.util.ViewHolder;
@@ -81,7 +74,6 @@ import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
@@ -203,9 +195,9 @@ public class SelectContactsActivity extends BaseActivity {
     private void loadData() {
         List<Friend> userInfos = FriendDao.getInstance().getAllContacts(mLoginUserId);
         //排除自己
-        if(!ListUtils.isEmpty(userInfos)){
-            for (int i=0;i<userInfos.size();i++){
-                if (userInfos.get(i).getUserId().equals(MyApplication.getInstance().mLoginUser.getUserId())){
+        if (!ListUtils.isEmpty(userInfos)) {
+            for (int i = 0; i < userInfos.size(); i++) {
+                if (userInfos.get(i).getUserId().equals(MyApplication.getInstance().mLoginUser.getUserId())) {
                     userInfos.remove(userInfos.get(i));
                 }
             }
@@ -318,13 +310,13 @@ public class SelectContactsActivity extends BaseActivity {
         }
     }
 
-     /**
-      * @功能:创建群对话框
-      * @author:Arisono
-      * @param:
-      * @return:
-      */
-     private void showCreateGroupChatDialog() {
+    /**
+     * @功能:创建群对话框
+     * @author:Arisono
+     * @param:
+     * @return:
+     */
+    private void showCreateGroupChatDialog() {
 
         if (mXmppService == null || !mXmppService.isMucEnable()) {
             ToastUtil.showToast(mContext, R.string.service_start_failed);
@@ -335,7 +327,7 @@ public class SelectContactsActivity extends BaseActivity {
         TextView tvName = (TextView) rootView.findViewById(R.id.creater_name);
         TextView tvNum = (TextView) rootView.findViewById(R.id.tv_num);
         User user = UserDao.getInstance().getUserByUserId(mLoginUserId);
-        tvNum.setText(mSelectPositions.size()+"/1000");
+        tvNum.setText(mSelectPositions.size() + "/1000");
         tvName.setText(MyApplication.getInstance().mLoginUser.getNickName());
         // final EditText roomSubjectEdit = (EditText)
         // rootView.findViewById(R.id.room_subject_edit);
@@ -372,7 +364,6 @@ public class SelectContactsActivity extends BaseActivity {
     private void createGroupChat(final String roomName, String roomSubject, final String roomDesc) {
         String nickName = MyApplication.getInstance().mLoginUser.getNickName();
         final String roomJid = mXmppService.createMucRoom(nickName, roomName, roomSubject, roomDesc);
-        Log.i("gongpengming",roomJid);
         if (TextUtils.isEmpty(roomJid)) {
             ToastUtil.showToast(mContext, R.string.create_room_failed);
             return;
@@ -405,32 +396,32 @@ public class SelectContactsActivity extends BaseActivity {
         if (longitude != 0)
             params.put("longitude", String.valueOf(longitude));
 
-       final   List<String> inviteUsers = new LinkedList<String>();
+        final List<String> inviteUsers = new LinkedList<String>();
         // 邀请好友
         for (int i = 0; i < mSelectPositions.size(); i++) {
             if (mSelectPositions.get(i) == -1) {
                 continue;
             }
             String userId = mFriendList.get(mSelectPositions.get(i)).getUserId();
+            Log.i("gongpengming", userId);
             inviteUsers.add(userId);
         }
         //开启线程处理合成群头像操作
-        final Thread uploadImageTask=
-             new Thread(new Runnable() {
-            @Override
-            public void run() {
-                uploadIsEnd=false;//开始上传任务
-                photoId= NumberUtils.generateNumber2();//八位不重复随机数
-                inviteUsers.add(0, MyApplication.getInstance().mLoginUser.getUserId());
-                image=  createChatImage(inviteUsers);
-                Message msg=mhandler.obtainMessage();
-                msg.getData().putString("roomjId",roomJid);
-                msg.what=uploadFile;
-                mhandler.sendMessage(msg);
-            }
-        });
+        final Thread uploadImageTask =
+                new Thread(new Runnable() {
+                    @Override
+                    public void run() {
+                        uploadIsEnd = false;//开始上传任务
+                        photoId = NumberUtils.generateNumber2();//八位不重复随机数
+                        inviteUsers.add(0, MyApplication.getInstance().mLoginUser.getUserId());
+                        image = createChatImage(inviteUsers);
+                        Message msg = mhandler.obtainMessage();
+                        msg.getData().putString("roomjId", roomJid);
+                        msg.what = uploadFile;
+                        mhandler.sendMessage(msg);
+                    }
+                });
         uploadImageTask.start();
-        Log.i("Arison", "前 photoId=" + photoId);
         params.put("text", JSON.toJSONString(inviteUsers));
 
         ProgressDialogUtil.show(mProgressDialog);
@@ -446,8 +437,8 @@ public class SelectContactsActivity extends BaseActivity {
             public void onResponse(ObjectResult<MucRoom> result) {
                 boolean parserResult = Result.defaultParser(mContext, result, true);
                 if (parserResult && result.getData() != null) {
-                    while (uploadImageTask.isAlive()){
-                          //上传线程正在运行
+                    while (uploadImageTask.isAlive()) {
+                        //上传线程正在运行
                         // Log.i("Arison","SelectContactsActivity:onResponse:440:上传是否结束:"+uploadIsEnd);
                     }
 //                    while (!uploadIsEnd){
@@ -455,7 +446,7 @@ public class SelectContactsActivity extends BaseActivity {
 //                        Log.i("Arison","SelectContactsActivity:onResponse:440:上传是否结束:"+uploadIsEnd);
 //                    }
 
-                    createRoomSuccess(result.getData().getId(), roomJid, roomName, roomDesc,photoId);
+                    createRoomSuccess(result.getData().getId(), roomJid, roomName, roomDesc, photoId);
                     ProgressDialogUtil.dismiss(mProgressDialog);
                 }
 
@@ -464,24 +455,24 @@ public class SelectContactsActivity extends BaseActivity {
         addDefaultRequest(request);
     }
 
-    private final int uploadFile=1;
+    private final int uploadFile = 1;
     File image;
-    private Handler mhandler=new Handler(){
+    private Handler mhandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
-          switch (msg.what){
-              case uploadFile:
-                  String roomjId=msg.getData().getString("roomjId");
-                  Log.i("Arison","SelectContactsActivity:handleMessage:466:handler uploadFile="+uploadFile);
-                  uploadAvatar(image,roomjId);
-                  break;
-          }
+            switch (msg.what) {
+                case uploadFile:
+                    String roomjId = msg.getData().getString("roomjId");
+                    Log.i("Arison", "SelectContactsActivity:handleMessage:466:handler uploadFile=" + uploadFile);
+                    uploadAvatar(image, roomjId);
+                    break;
+            }
 
         }
     };
 
 
-    private void createRoomSuccess(String roomId, String roomJid, String roomName, String roomDesc,String photoId) {
+    private void createRoomSuccess(String roomId, String roomJid, String roomName, String roomDesc, String photoId) {
         Log.i("Arison", "photoId=" + photoId);
         Friend friend = new Friend();// 将房间也存为好友
         friend.setOwnerId(mLoginUserId);
@@ -531,47 +522,47 @@ public class SelectContactsActivity extends BaseActivity {
         finish();
     }
 
-   /**
-    * @功能:合成九宫图头像--耗时操作
-    * @author:Arisono
-    * @param:
-    * @return:
-    */
-    private File createChatImage(List<String> inviteUsers){
-        Log.i("Arison","SelectContactsActivity:createChatImage:473:开始合成图片:"+DateFormatUtil.getFormatDate(System.currentTimeMillis()));
-        File file=null;
-        if (!ListUtils.isEmpty(inviteUsers)){
-            int size=inviteUsers.size()>9?9:inviteUsers.size();
+    /**
+     * @功能:合成九宫图头像--耗时操作
+     * @author:Arisono
+     * @param:
+     * @return:
+     */
+    private File createChatImage(List<String> inviteUsers) {
+        Log.i("Arison", "SelectContactsActivity:createChatImage:473:开始合成图片:" + DateFormatUtil.getFormatDate(System.currentTimeMillis()));
+        File file = null;
+        if (!ListUtils.isEmpty(inviteUsers)) {
+            int size = inviteUsers.size() > 9 ? 9 : inviteUsers.size();
             List<MyBitmapEntity> mEntityList = getBitmapEntitys(size);
-            Bitmap mBitmaps[]=new Bitmap[size];
-            for (int i=0;i<size;i++){
-                String url=AvatarHelper.getAvatarUrl(inviteUsers.get(i), false);
-                Bitmap nextBitmap=null;
-                String filepath=HttpUtil.download(url, FileUtils.getSDRoot()+"/uu/chat/head"+i+".png");
-                Log.i("Arison","SelectContactsActivity:createChatImage:493:filepath:"+filepath);
-                nextBitmap= ImageUtil.compressBitmapWithFilePath(filepath,300,300);
-                if(nextBitmap==null){
-                    nextBitmap=ImageUtil.compressBitmapWithResources(this,R.drawable.avatar_normal,300,300);
+            Bitmap mBitmaps[] = new Bitmap[size];
+            for (int i = 0; i < size; i++) {
+                String url = AvatarHelper.getAvatarUrl(inviteUsers.get(i), false);
+                Bitmap nextBitmap = null;
+                String filepath = HttpUtil.download(url, FileUtils.getSDRoot() + "/uu/chat/head" + i + ".png");
+                Log.i("Arison", "SelectContactsActivity:createChatImage:493:filepath:" + filepath);
+                nextBitmap = ImageUtil.compressBitmapWithFilePath(filepath, 300, 300);
+                if (nextBitmap == null) {
+                    nextBitmap = ImageUtil.compressBitmapWithResources(this, R.drawable.avatar_normal, 300, 300);
                 }
-                Bitmap tempBitmap=ThumbnailUtils.extractThumbnail(nextBitmap, (int) mEntityList
+                Bitmap tempBitmap = ThumbnailUtils.extractThumbnail(nextBitmap, (int) mEntityList
                         .get(i).width, (int) mEntityList.get(i).width);
-                Log.i("Arison","createChatImage:499:tempBitmap:"+url);
-                Log.i("Arison","createChatImage:499:tempBitmap:"+nextBitmap);
-                mBitmaps[i]=tempBitmap;
+                Log.i("Arison", "createChatImage:499:tempBitmap:" + url);
+                Log.i("Arison", "createChatImage:499:tempBitmap:" + nextBitmap);
+                mBitmaps[i] = tempBitmap;
             }
 
             Bitmap combineBitmap = BitmapUtil.getCombineBitmaps(mEntityList, mBitmaps);
 
             try {
-              file=  BitmapUtil.saveFile(combineBitmap,"chatImage.png");
+                file = BitmapUtil.saveFile(combineBitmap, "chatImage.png");
             } catch (IOException e) {
                 e.printStackTrace();
-            } catch (Exception e){
+            } catch (Exception e) {
                 e.printStackTrace();
             }
         }
-        Log.i("Arison","SelectContactsActivity:createChatImage:473:合成图片结束:"+DateFormatUtil.getFormatDate(System.currentTimeMillis())+";file="+file);
-        return  file;
+        Log.i("Arison", "SelectContactsActivity:createChatImage:473:合成图片结束:" + DateFormatUtil.getFormatDate(System.currentTimeMillis()) + ";file=" + file);
+        return file;
     }
 
 
@@ -608,7 +599,7 @@ public class SelectContactsActivity extends BaseActivity {
                     Log.i("Arison", "SelectContactsActivity:onSuccess:567:" + "上次头像成功!");
                     ToastUtil.showToast(SelectContactsActivity.this, R.string.upload_avatar_success);
                     //更新服务器
-                    updateIMChatImageId(roomjId,photoId);
+                    updateIMChatImageId(roomjId, photoId);
                 } else {
                     Log.i("Arison", "SelectContactsActivity:onSuccess:567:" + "上次头失败!");
                     ToastUtil.showToast(SelectContactsActivity.this, R.string.upload_avatar_failed);
@@ -625,7 +616,7 @@ public class SelectContactsActivity extends BaseActivity {
     }
 
     private String photoId;
-    private static boolean uploadIsEnd=true;
+    private static boolean uploadIsEnd = true;
 
     /**
      * @功能:上传文件后,需要上传更新图像id
@@ -633,44 +624,42 @@ public class SelectContactsActivity extends BaseActivity {
      * @param:
      * @return:
      */
-    public void updateIMChatImageId(String roomjId,String photoId){
+    public void updateIMChatImageId(String roomjId, String photoId) {
 //        this.uploadIsEnd=true;
-		String url = MyApplication.getInstance().getConfig().apiUrl+"room/setRelationGroupPhoto";
-		final String requestTag = "loginManagerSystem";
-		Map<String, String> params = new HashMap<String, String>();
+        String url = MyApplication.getInstance().getConfig().apiUrl + "room/setRelationGroupPhoto";
+        final String requestTag = "loginManagerSystem";
+        Map<String, String> params = new HashMap<String, String>();
         params.put("access_token", MyApplication.getInstance().mAccessToken);
         params.put("roomId", roomjId);
-        params.put("photoid",photoId);
+        params.put("photoid", photoId);
 //		final ProgressDialog dialog = ProgressDialogUtil.init(mContext, null, getString(R.string.please_wait), true);
 //		ProgressDialogUtil.show(dialog);
         StringJsonObjectRequest<String> mRequest = new StringJsonObjectRequest<String>(
-				Request.Method.GET, url,
-				new Response.ErrorListener() {
-					@Override
-					public void onErrorResponse(VolleyError volleyError) {
+                Request.Method.GET, url,
+                new Response.ErrorListener() {
+                    @Override
+                    public void onErrorResponse(VolleyError volleyError) {
 //						ProgressDialogUtil.dismiss(dialog);
 //						ToastUtil.showErrorNet(mContext);
-					}
-				},
-				new StringJsonObjectRequest.Listener<String>() {
-					@Override
-					public void onResponse(ObjectResult<String> result) {
-						Log.i("Arison","更新头像id result:"+ result.getResultData());
-					}
-				}, String.class, params, true);
-		mRequest.setTag(requestTag);
-		addDefaultRequest(mRequest);
+                    }
+                },
+                new StringJsonObjectRequest.Listener<String>() {
+                    @Override
+                    public void onResponse(ObjectResult<String> result) {
+                        Log.i("Arison", "更新头像id result:" + result.getResultData());
+                    }
+                }, String.class, params, true);
+        mRequest.setTag(requestTag);
+        addDefaultRequest(mRequest);
     }
 
 
-
-
     public static class MyBitmapEntity {
         public float x;
-        public  float y;
+        public float y;
         public float width;
-        public  float height;
-        public  static int devide = 1;
+        public float height;
+        public static int devide = 1;
         public int index = -1;
 
         @Override

+ 234 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/AutoCreateRoomUtil.java

@@ -1,5 +1,27 @@
 package com.xzjmyk.pm.activity.util;
 
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.ServiceConnection;
+import android.os.IBinder;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.alibaba.fastjson.JSON;
+import com.android.volley.Response;
+import com.android.volley.VolleyError;
+import com.xzjmyk.pm.activity.MyApplication;
+import com.xzjmyk.pm.activity.bean.Area;
+import com.xzjmyk.pm.activity.bean.message.MucRoom;
+import com.xzjmyk.pm.activity.volley.ObjectResult;
+import com.xzjmyk.pm.activity.volley.Result;
+import com.xzjmyk.pm.activity.volley.StringJsonObjectRequest;
+import com.xzjmyk.pm.activity.xmpp.CoreService;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 /**
  * 自动创建群工具类
  * Created by gongpm on 2016/7/26.
@@ -7,6 +29,10 @@ package com.xzjmyk.pm.activity.util;
 public class AutoCreateRoomUtil {
     private static AutoCreateRoomUtil instence = null;
 
+    public AutoCreateRoomUtil() {
+
+    }
+
     public static AutoCreateRoomUtil getInstence() {
         if (instence == null) {
             synchronized (AutoCreateRoomUtil.class) {
@@ -16,9 +42,217 @@ public class AutoCreateRoomUtil {
         return instence;
     }
 
+    private ServiceConnection mServiceConnection = new ServiceConnection() {
+        @Override
+        public void onServiceDisconnected(ComponentName name) {
+            mXmppService = null;
+        }
+
+        @Override
+        public void onServiceConnected(ComponentName name, IBinder service) {
+            mXmppService = ((CoreService.CoreServiceBinder) service).getService();
+            create();
+        }
+    };
 
+    private CoreService mXmppService;
 
 
+    private void createGroupChat(String nickName, String roomName, String roomSubject, String roomDesc,
+                                 List<String> inviteUsers, final int or_id) {
+//        AppConfig mConfig = MyApplication.getInstance().getConfig();
+//        String roomJid;
+//
+//        //创建群组
+//        try {
+//            roomJid = mXmppService.createMucRoom(nickName, roomName, roomSubject, roomDesc);
+//        } catch (NullPointerException e) {
+//            roomJid = mXmppService.createMucRoom(nickName, roomName, "", roomDesc);
+//        }
+//        if (TextUtils.isEmpty(roomJid)) {
+//            ToastUtil.showToast(context, R.string.create_room_failed);
+//            return;
+//        }
+//
+//        Map<String, String> params = new HashMap<String, String>();
+//        params.put("access_token", MyApplication.getInstance().mAccessToken);
+//        params.put("jid", roomJid);
+//        params.put("name", roomName);
+//        params.put("category", "1");
+//        params.put("desc", roomDesc);
+//        params.put("countryId", String.valueOf(Area.getDefaultCountyId()));// 国家Id
+//        Area area = Area.getDefaultProvince();
+//        if (area != null) {
+//            params.put("provinceId", String.valueOf(area.getId()));// 省份Id
+//        }
+//        area = Area.getDefaultCity();
+//        if (area != null) {
+//            params.put("cityId", String.valueOf(area.getId()));// 城市Id
+//            area = Area.getDefaultDistrict(area.getId());
+//            if (area != null) {
+//                params.put("areaId", String.valueOf(area.getId()));// 城市Id
+//            }
+//        }
+//
+//        double latitude = MyApplication.getInstance().getBdLocationHelper().getLatitude();
+//        double longitude = MyApplication.getInstance().getBdLocationHelper().getLongitude();
+//        if (latitude != 0)
+//            params.put("latitude", String.valueOf(latitude));
+//        if (longitude != 0)
+//            params.put("longitude", String.valueOf(longitude));
+//        params.put("text", JSON.toJSONString(inviteUsers));
+//        StringJsonObjectRequest<MucRoom> request = new StringJsonObjectRequest<MucRoom>(mConfig.ROOM_ADD,
+//                new Response.ErrorListener() {
+//                    @Override
+//                    public void onErrorResponse(VolleyError arg0) {
+//
+//                    }
+//                }, new StringJsonObjectRequest.Listener<MucRoom>() {
+//            @Override
+//            public void onResponse(ObjectResult<MucRoom> result) {
+//                boolean parserResult = Result.defaultParser(context, result, true);
+//                if (parserResult && result.getData() != null) {
+//                    Log.i("gongpengming", "创建群组成功");
+//                }
+//            }
+//        }, MucRoom.class, params);
+//        String HASHCODE = Integer.toHexString(this.hashCode()) + "@";
+//        MyApplication.getInstance().getFastVolley().addDefaultRequest(HASHCODE, request);
+    }
+
+    private String roomName;
+    private String roomDesc;
+    private List<String> inviteUsers;
+    private Context context;
 
 
+    public void create() {
+        String nickName = MyApplication.getInstance().mLoginUser.getNickName();
+        Log.i("gongpengming", "mXmppService==" + (mXmppService == null));
+        String roomJid;
+        try {
+            roomJid = mXmppService.createMucRoom(nickName, roomName, "", roomDesc);
+        } catch (NullPointerException e) {
+            roomJid = mXmppService.createMucRoom(nickName, roomName, "", roomDesc);
+        }
+        if (TextUtils.isEmpty(roomJid)) {
+            Log.i("gongpengming", "roomJid==null");
+            return;
+        }
+        Map<String, String> params = new HashMap<String, String>();
+        params.put("access_token", MyApplication.getInstance().mAccessToken);
+        params.put("jid", roomJid);
+        params.put("name", roomName);
+        params.put("desc", roomDesc);
+        params.put("countryId", String.valueOf(Area.getDefaultCountyId()));// 国家Id
+
+        Area area = Area.getDefaultProvince();
+        if (area != null) {
+            params.put("provinceId", String.valueOf(area.getId()));// 省份Id
+        }
+        area = Area.getDefaultCity();
+        if (area != null) {
+            params.put("cityId", String.valueOf(area.getId()));// 城市Id
+            area = Area.getDefaultDistrict(area.getId());
+            if (area != null) {
+                params.put("areaId", String.valueOf(area.getId()));// 城市Id
+            }
+        }
+
+        double latitude = MyApplication.getInstance().getBdLocationHelper().getLatitude();
+        double longitude = MyApplication.getInstance().getBdLocationHelper().getLongitude();
+        if (latitude != 0)
+            params.put("latitude", String.valueOf(latitude));
+        if (longitude != 0)
+            params.put("longitude", String.valueOf(longitude));
+        //TODO 开启线程处理合成群头像操作
+        params.put("text", JSON.toJSONString(inviteUsers));
+        StringJsonObjectRequest<MucRoom> request = new StringJsonObjectRequest<MucRoom>(MyApplication.getInstance().getConfig().ROOM_ADD,
+                new Response.ErrorListener() {
+                    @Override
+                    public void onErrorResponse(VolleyError arg0) {
+                        Log.i("gongpengming", "网络错误");
+                    }
+                }, new StringJsonObjectRequest.Listener<MucRoom>() {
+            @Override
+            public void onResponse(ObjectResult<MucRoom> result) {
+                boolean parserResult = Result.defaultParser(context, result, true);
+                if (parserResult && result.getData() != null) {
+                    Log.i("gongpengming", "创建成功" + result.toString());
+                }
+            }
+        }, MucRoom.class, params);
+        MyApplication.getInstance().getFastVolley().addDefaultRequest("", request);
+    }
+
+    /**
+     * @param roomName    群名字
+     * @param inviteUsers 群成员
+     * @param roomDesc    群说明
+     */
+    public void createGroupChat(final Context context, final String roomName, final String roomDesc, List<String> inviteUsers) {
+        String nickName = MyApplication.getInstance().mLoginUser.getNickName();
+        boolean mBind = context.bindService(CoreService.getIntent(), mServiceConnection, Context.BIND_AUTO_CREATE);
+        this.context = context;
+        this.roomName = roomName;
+        this.roomDesc = roomDesc;
+        this.inviteUsers = inviteUsers;
+
+//        Log.i("gongpengming", "mBind==" + mBind);
+//        Log.i("gongpengming", "mXmppService==" + (mXmppService == null));
+//        String roomJid;
+//        try {
+//            roomJid = mXmppService.createMucRoom(nickName, roomName, "", roomDesc);
+//        } catch (NullPointerException e) {
+//            roomJid = mXmppService.createMucRoom(nickName, roomName, "", roomDesc);
+//        }
+//        if (TextUtils.isEmpty(roomJid)) {
+//            Log.i("gongpengming", "roomJid==null");
+//            return;
+//        }
+//        Map<String, String> params = new HashMap<String, String>();
+//        params.put("access_token", MyApplication.getInstance().mAccessToken);
+//        params.put("jid", roomJid);
+//        params.put("name", roomName);
+//        params.put("desc", roomDesc);
+//        params.put("countryId", String.valueOf(Area.getDefaultCountyId()));// 国家Id
+//
+//        Area area = Area.getDefaultProvince();
+//        if (area != null) {
+//            params.put("provinceId", String.valueOf(area.getId()));// 省份Id
+//        }
+//        area = Area.getDefaultCity();
+//        if (area != null) {
+//            params.put("cityId", String.valueOf(area.getId()));// 城市Id
+//            area = Area.getDefaultDistrict(area.getId());
+//            if (area != null) {
+//                params.put("areaId", String.valueOf(area.getId()));// 城市Id
+//            }
+//        }
+//
+//        double latitude = MyApplication.getInstance().getBdLocationHelper().getLatitude();
+//        double longitude = MyApplication.getInstance().getBdLocationHelper().getLongitude();
+//        if (latitude != 0)
+//            params.put("latitude", String.valueOf(latitude));
+//        if (longitude != 0)
+//            params.put("longitude", String.valueOf(longitude));
+//        //TODO 开启线程处理合成群头像操作
+//        params.put("text", JSON.toJSONString(inviteUsers));
+//        StringJsonObjectRequest<MucRoom> request = new StringJsonObjectRequest<MucRoom>(MyApplication.getInstance().getConfig().ROOM_ADD,
+//                new Response.ErrorListener() {
+//                    @Override
+//                    public void onErrorResponse(VolleyError arg0) {
+//                        Log.i("gongpengming", "网络错误");
+//                    }
+//                }, new StringJsonObjectRequest.Listener<MucRoom>() {
+//            @Override
+//            public void onResponse(ObjectResult<MucRoom> result) {
+//                boolean parserResult = Result.defaultParser(context, result, true);
+//                if (parserResult && result.getData() != null) {
+//                    Log.i("gongpengming", "创建成功" + result.toString());
+//                }
+//            }
+//        }, MucRoom.class, params);
+//        MyApplication.getInstance().getFastVolley().addDefaultRequest("", request);
+    }
 }

+ 26 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/CalculateUtil.java

@@ -0,0 +1,26 @@
+package com.xzjmyk.pm.activity.util;
+
+/**
+ * Created by gongpm on 2016/7/27.
+ * 计算工具类
+ */
+public class CalculateUtil {
+    private static CalculateUtil instance;
+
+    private CalculateUtil() {
+    }
+
+    public static CalculateUtil getInstance() {
+        if (instance == null) {
+            synchronized (CalculateUtil.class) {
+                instance = new CalculateUtil();
+            }
+        }
+        return instance;
+    }
+
+
+
+
+
+}

+ 109 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/JsonUtils.java

@@ -0,0 +1,109 @@
+package com.xzjmyk.pm.activity.util;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 解析json
+ * update gongpm 2016/07/27
+ */
+public class JsonUtils {
+
+    /**
+     * 解析List<Map<String,String>>集合
+     *
+     * @param key
+     * @param json
+     * @return
+     */
+    public static List<Map<String, String>> parseListKeyMaps(String key, String json) {
+        List<Map<String, String>> list = new ArrayList<Map<String, String>>();
+        try {
+            JSONObject jsonObject = new JSONObject(json);
+            JSONArray jsonArray = jsonObject.getJSONArray(key);
+            for (int i = 0; i < jsonArray.length(); i++) {
+                JSONObject jsonObject2 = jsonArray.getJSONObject(i);
+                Map<String, String> map = new HashMap<String, String>();
+                Iterator<String> iterator = jsonObject2.keys();
+                while (iterator.hasNext()) {
+                    String json_key = iterator.next();
+                    Object json_value = jsonObject2.get(json_key);
+                    if (json_value == null) {
+                        json_value = "";
+                    }
+                    map.put(json_key, "" + json_value);
+                }
+                list.add(map);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return list;
+    }
+
+
+    /**
+     * 解析List<Map<String,String>>集合
+     *
+     * @param
+     * @param json
+     * @return
+     */
+    public static List<Map<String, String>> parseListMaps(String json) {
+        List<Map<String, String>> list = new ArrayList<Map<String, String>>();
+        try {
+            JSONArray jsonArray = new JSONArray(json);
+            for (int i = 0; i < jsonArray.length(); i++) {
+                JSONObject jsonObject2 = jsonArray.getJSONObject(i);
+                Map<String, String> map = new HashMap<String, String>();
+                Iterator<String> iterator = jsonObject2.keys();
+                while (iterator.hasNext()) {
+                    String json_key = iterator.next();
+                    Object json_value = jsonObject2.get(json_key);
+                    if (json_value == null) {
+                        json_value = "";
+                    }
+                    map.put(json_key, "" + json_value);
+                }
+                list.add(map);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return list;
+    }
+
+
+    /**
+     * 解析map 集合
+     *
+     * @param key
+     * @param json
+     * @return
+     */
+    public static HashMap<String, String> parseMaps(String key, String json) {
+        HashMap<String, String> map = new HashMap<String, String>();
+        try {
+            JSONObject jsonObject = new JSONObject(json);
+            String string = jsonObject.getString(key);
+            JSONObject jsonObject2 = new JSONObject(string);
+            Iterator<String> iterator = jsonObject2.keys();
+            while (iterator.hasNext()) {
+                String json_key = iterator.next();
+                Object json_value = jsonObject2.get(json_key);
+                if (json_value == null) {
+                    json_value = "";
+                }
+                map.put(json_key, "" + json_value);
+            }
+        } catch (Exception e) {
+        }
+        return map;
+    }
+}

+ 1 - 6
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/TimeUtils.java

@@ -14,9 +14,6 @@ import java.util.Date;
 @SuppressWarnings("deprecation")
 public class TimeUtils {
 
-    // ///s 代表Simple日期格式:yyyy-MM-dd
-    // ///f 代表Full日期格式:yyyy-MM-dd hh:mm:ss
-
     public static final SimpleDateFormat ss_format = new SimpleDateFormat("MM-dd");
     public static final SimpleDateFormat day_format = new SimpleDateFormat("yyyy年MM月dd日");
     public static final SimpleDateFormat s_format = new SimpleDateFormat("yyyy-MM-dd");
@@ -24,8 +21,6 @@ public class TimeUtils {
     public static final SimpleDateFormat int_format = new SimpleDateFormat("yyyyMMdd");
     public static final SimpleDateFormat ym_format = new SimpleDateFormat("yyyyMM");
 
-
-
     //获取指定时间在星期几
     public static String getWeek(String date) { //yyyy-MM-dd
         Calendar c = Calendar.getInstance();
@@ -181,7 +176,7 @@ public class TimeUtils {
         return 0;
     }
 
-    public static String long2str(long timestamp,String str){
+    public static String long2str(long timestamp, String str) {
         SimpleDateFormat formart = new SimpleDateFormat(str);
         return formart.format(new Date(timestamp));
     }

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/volley/Result.java

@@ -77,7 +77,7 @@ public class Result {
         } else {
             if (showToast) {
                 //TODO 返回错误
-                Log.i("gongpengming", "返回错误");
+                Log.i("gongpengming", "返回错误"+result);
                 showResultToast(context, result);
             }
             return false;

+ 2 - 1
WeiChat/src/main/res/layout/activity_meet_details.xml

@@ -313,7 +313,8 @@
                 android:clickable="true"
                 android:gravity="center"
                 android:padding="20dp"
-                android:text="结束会议" />
+                android:text="结束会议"
+                android:textColor="@color/text_main" />
         </RelativeLayout>
     </RelativeLayout>
 

+ 1 - 0
WeiChat/src/main/res/layout/activity_meeting.xml

@@ -3,6 +3,7 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:background="@drawable/bg_main"
     tools:context="com.xzjmyk.pm.activity.ui.erp.activity.oa.MeetingActivity">
 
     <com.handmark.pulltorefresh.library.PullToRefreshListView

+ 14 - 0
WeiChat/src/main/res/layout/activity_save_meet.xml

@@ -8,5 +8,19 @@
     android:paddingRight="@dimen/activity_horizontal_margin"
     android:paddingTop="@dimen/activity_vertical_margin"
     tools:context="com.xzjmyk.pm.activity.ui.erp.activity.oa.SaveMeetActivity">
+    <EditText
+        android:id="@+id/text_edit"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/top_tag"
+        android:background="@drawable/full_edit_bg"
+        android:gravity="top"
+        android:hint="请填写备注"
+        android:inputType="textMultiLine"
+        android:minHeight="150dp"
+        android:padding="10dp"
+        android:textColor="@color/black"
+        android:textColorHint="@color/grey"
+        android:textSize="16sp" />
 
 </RelativeLayout>

+ 1 - 0
WeiChat/src/main/res/layout/fragment_register_oa.xml

@@ -6,6 +6,7 @@
 
     <ListView
         android:id="@+id/listview"
+        android:divider="@color/item_line"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />
 </LinearLayout>

+ 1 - 0
WeiChat/src/main/res/layout/oa_meeting_item.xml

@@ -2,6 +2,7 @@
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:background="@color/white"
     android:padding="10dp">
 
     <TextView