Browse Source

修改通讯录后备份

Bitliker 9 years ago
parent
commit
65fe847c89
21 changed files with 400 additions and 330 deletions
  1. 1 1
      WeiChat/build.gradle
  2. 0 1
      WeiChat/src/main/AndroidManifest.xml
  3. 85 37
      WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/FriendSortAdapter.java
  4. 31 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/Friend.java
  5. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/base/XutilsFragment.java
  6. 0 15
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/SubscribeActivity.java
  7. 1 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AlarmaActivity.java
  8. 0 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SigninActivity.java
  9. 46 9
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/ContactExpanAdapter.java
  10. 0 13
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/ContactFragment.java
  11. 63 187
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/LinksManFragment.java
  12. 2 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninFragment.java
  13. 8 8
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java
  14. 27 23
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/crouton/Crouton.java
  15. 0 18
      WeiChat/src/main/res/layout/activity_subscribe.xml
  16. 24 0
      WeiChat/src/main/res/layout/contact_expan_title.xml
  17. 67 0
      WeiChat/src/main/res/layout/contact_item.xml
  18. 4 4
      WeiChat/src/main/res/layout/fragment_friend.xml
  19. 38 5
      WeiChat/src/main/res/layout/header_fragment_contact.xml
  20. 1 1
      WeiChat/src/main/res/values/strings.xml
  21. 1 1
      lib-zxing/build.gradle

+ 1 - 1
WeiChat/build.gradle

@@ -8,7 +8,7 @@ android {
     }
     signingConfigs {
         config {
-            storeFile file('E:/CompanyProject/applicationsignname[20150409]')
+            storeFile file('D:/config/applicationsignname[20150409]')
             storePassword '13237658359'
             keyAlias 'jie-20150409'
             keyPassword '13237658359'

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

@@ -438,7 +438,6 @@
         <activity android:name=".video.VideoActivity" />
         <activity android:name=".ui.erp.activity.CompanyActivity" />
         <activity android:name=".ui.erp.activity.BaseInfoActivity" />
-        <activity android:name=".ui.erp.activity.SubscribeActivity" />
         <activity android:name=".ui.message.SubscriptionActivity" />
         <activity android:name=".ui.circle.PhoneSelectActivity" />
         <activity android:name=".ui.erp.activity.crm.ClientActivity" />

+ 85 - 37
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/FriendSortAdapter.java

@@ -1,7 +1,10 @@
 package com.xzjmyk.pm.activity.adapter;
 
 import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -10,23 +13,26 @@ import android.widget.ImageView;
 import android.widget.SectionIndexer;
 import android.widget.TextView;
 
+import com.afollestad.materialdialogs.MaterialDialog;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.Friend;
 import com.xzjmyk.pm.activity.helper.AvatarHelper;
 import com.xzjmyk.pm.activity.sortlist.BaseSortModel;
+import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
-import com.xzjmyk.pm.activity.util.ViewHolder;
+import com.xzjmyk.pm.activity.view.crouton.Crouton;
 
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 public class FriendSortAdapter extends BaseAdapter implements SectionIndexer {
 
     private Context mContext;
     private List<BaseSortModel<Friend>> mSortFriends;
     private boolean isRefeshed;
-    private boolean isFrist;
     private Map<Integer, String> isLog;
 
     public FriendSortAdapter(Context context, List<BaseSortModel<Friend>> sortFriends) {
@@ -62,71 +68,106 @@ public class FriendSortAdapter extends BaseAdapter implements SectionIndexer {
 
 
     @Override
-    public View getView(final int position, View convertView, ViewGroup parent) {
+    public View getView(int position, View convertView, ViewGroup parent) {
+        ViewHolder holder = null;
         // 根据position获取分类的首字母的Char ascii值
         int section = getSectionForPosition(position);
         if (convertView == null) {
-            convertView = LayoutInflater.from(mContext).inflate(R.layout.row_sort_friend, parent, false);
-        }
-        if (position == getPositionForSection(section)) {
-            isFrist = true;
+            holder = new ViewHolder();
+            convertView = LayoutInflater.from(mContext).inflate(R.layout.contact_item, parent, false);
+            holder.header_img = (ImageView) convertView.findViewById(R.id.header_img);
+            holder.phone_img = (ImageView) convertView.findViewById(R.id.phone_img);
+            holder.tag_tv = (TextView) convertView.findViewById(R.id.tag_tv);
+            holder.name_tv = (TextView) convertView.findViewById(R.id.name_tv);
+            holder.sub_tv = (TextView) convertView.findViewById(R.id.sub_tv);
+            convertView.setTag(holder);
+        } else {
+            holder = (ViewHolder) convertView.getTag();
         }
-        isFrist = !isFrist;
-        TextView catagoryTitleTv = ViewHolder.get(convertView, R.id.catagory_title);
-        ImageView avatar_img = ViewHolder.get(convertView, R.id.avatar_img);
-        TextView nick_name_tv = ViewHolder.get(convertView, R.id.nick_name_tv);
-        TextView des_tv = ViewHolder.get(convertView, R.id.des_tv);
-        ImageView img_tag_friend = ViewHolder.get(convertView, R.id.img_tag_friend);
         // 如果当前位置等于该分类首字母的Char的位置 ,则认为是第一次出现
         if (position == getPositionForSection(section)) {
-            catagoryTitleTv.setVisibility(View.VISIBLE);
-            catagoryTitleTv.setText(mSortFriends.get(position).getFirstLetter());
-
+            holder.tag_tv.setVisibility(View.VISIBLE);
+            holder.tag_tv.setText(mSortFriends.get(position).getFirstLetter());
         } else {
-            catagoryTitleTv.setVisibility(View.GONE);
+            holder.tag_tv.setVisibility(View.GONE);
         }
-
-        // 设置头像
         final Friend friend = mSortFriends.get(position).getBean();
-        if (friend.isFriend()) {
-            img_tag_friend.setVisibility(View.VISIBLE);
-        } else {
-            img_tag_friend.setVisibility(View.GONE);
-        }
+        /*头像*/
         if (friend.getRoomFlag() == 0) {// 这是单个人
             if (friend.getUserId().equals(Friend.ID_SYSTEM_MESSAGE)) {// 系统消息的头像
-                avatar_img.setImageResource(R.drawable.im_notice);
+                holder.header_img.setImageResource(R.drawable.im_notice);
             } else if (friend.getUserId().equals(Friend.ID_NEW_FRIEND_MESSAGE)) {// 新朋友的头像
-                avatar_img.setImageResource(R.drawable.im_new_friends);
-            } else if( Integer.valueOf(friend.getUserId())==0){
-               avatar_img.setImageResource(com.xzjmyk.pm.activity.R.drawable.avatar_normal);
+                holder.header_img.setImageResource(R.drawable.im_new_friends);
+            } else if (Integer.valueOf(friend.getUserId()) == 0) {
+                holder.header_img.setImageResource(com.xzjmyk.pm.activity.R.drawable.avatar_normal);
             } else {// 其他
                 if (isRefeshed) {
-                    AvatarHelper.getInstance().display(friend.getUserId(), avatar_img, true, true);//设定为每次刷新都会去删除缓存重新获取数据
+                    AvatarHelper.getInstance().display(friend.getUserId(), holder.header_img, true, true);//设定为每次刷新都会去删除缓存重新获取数据
                     isRefeshed = false;
                 } else {
-                    AvatarHelper.getInstance().displayAvatar(friend.getUserId(), avatar_img, true);//不会删除缓存
+                    AvatarHelper.getInstance().displayAvatar(friend.getUserId(), holder.header_img, true);//不会删除缓存
                 }
             }
         } else {// 这是1个房间
             if (TextUtils.isEmpty(friend.getRoomCreateUserId())) {
-                avatar_img.setImageResource(R.drawable.avatar_normal);
+                holder.header_img.setImageResource(R.drawable.avatar_normal);
             } else {
-                AvatarHelper.getInstance().displayAvatar(friend.getRoomCreateUserId(), avatar_img, true);// 目前在备注名放房间的创建者Id
+                AvatarHelper.getInstance().displayAvatar(friend.getRoomCreateUserId(), holder.header_img, true);// 目前在备注名放房间的创建者Id
             }
         }
-
-        // 昵称
+        /*昵称*/
         String name = friend.getRemarkName();
         if (TextUtils.isEmpty(name)) {
             name = friend.getNickName();
         }
-        nick_name_tv.setText(name);
-        // 个性签名
-        des_tv.setText(friend.getDescription());
+        holder.name_tv.setText(name);
+        /*个性签名*/
+        holder.sub_tv.setText((StringUtils.isEmpty(friend.getDepart()) ? "" : (friend.getDepart() + ">"))
+                + " " + (StringUtils.isEmpty(friend.getPosition()) ? "" : friend.getPosition()));
+        holder.phone_img.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Log.i("goongepngming", "点击 了=" + friend.getPhone());
+                String phone = friend.getPhone();
+                if (!StringUtils.isEmpty(phone)) {
+                    String check = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";
+                    Pattern regex = Pattern.compile(check);
+                    Matcher matcher = regex.matcher(phone.toString());
+                    if (matcher.matches()) {
+                        phoneAction(phone);
+                    } else {
+                        ViewUtil.ShowMessageTitle(mContext, "手机格式不正确!");
+                    }
+
+                } else {
+                    Crouton.makeText(mContext, R.string.not_phone);
+                }
+//                friend.getRemarkName()
+            }
+        });
         return convertView;
     }
 
+    private void phoneAction(final String phone) {
+        MaterialDialog dialog = new MaterialDialog.Builder(mContext).title("确认是否拨打电话").content("手机号码:" + phone)
+                .positiveText("拨打").negativeText("取消").autoDismiss(false).callback(new MaterialDialog.ButtonCallback() {
+                    @Override
+                    public void onPositive(MaterialDialog dialog) {
+                        // 用intent启动拨打电话
+                        Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone));
+                        mContext.startActivity(intent);
+                    }
+
+                    @Override
+                    public void onNegative(MaterialDialog dialog) {
+                        super.onNegative(dialog);
+                        dialog.dismiss();
+                    }
+                }).build();
+
+        dialog.show();
+    }
+
     /**
      * 根据ListView的当前位置获取分类的首字母的Char ascii值
      */
@@ -153,4 +194,11 @@ public class FriendSortAdapter extends BaseAdapter implements SectionIndexer {
         return null;
     }
 
+    class ViewHolder {
+        TextView tag_tv;
+        ImageView header_img;
+        TextView name_tv;
+        TextView sub_tv;
+        ImageView phone_img;
+    }
 }

+ 31 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/Friend.java

@@ -92,7 +92,7 @@ public class Friend implements Serializable {
     private int status;// -1:黑名单;0:陌生人;1:单方关注;2:互为好友;8:系统号;9:非显示系统号
 
     @DatabaseField
-    private String privacy;// 隐私
+    private String privacy;// 隐私(现用于记录是否特别关注)
 
     @DatabaseField
     private String remarkName;// 备注
@@ -115,6 +115,36 @@ public class Friend implements Serializable {
 
     private String emCode;
 
+    private String phone;//手机号码
+
+    private String depart;//部门
+
+    private String position;//职位
+
+    public String getPosition() {
+        return position;
+    }
+
+    public void setPosition(String position) {
+        this.position = position;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getDepart() {
+        return depart;
+    }
+
+    public void setDepart(String depart) {
+        this.depart = depart;
+    }
+
     public String getEmCode() {
         return emCode;
     }

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/base/XutilsFragment.java

@@ -26,7 +26,7 @@ public abstract class XutilsFragment extends Fragment {
     protected boolean cacheView() {
         return true;
     }
-
+    
     /**
      * 指定该Fragment的Layout id
      *

+ 0 - 15
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/SubscribeActivity.java

@@ -1,15 +0,0 @@
-package com.xzjmyk.pm.activity.ui.erp.activity;
-
-import android.os.Bundle;
-
-import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-
-public class SubscribeActivity extends BaseActivity {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_subscribe);
-    }
-}

+ 1 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AlarmaActivity.java

@@ -161,7 +161,6 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
                 break;
             }
         }
-
         if (!isOk) {//不在当天允许提醒范围内
             if (chchelong != -1) {
                 chchelong += 24 * 60 * 60 * 1000;
@@ -178,7 +177,7 @@ public class AlarmaActivity extends BaseActivity implements View.OnClickListener
         AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE);
         Calendar calendar = Calendar.getInstance();
         calendar.setTimeInMillis(time);
-        Crouton.makeText(ct,"将在"+TimeUtils.long2str(time,"yyyy-MM-dd HH:mm")+"为您提醒");
+        Crouton.makeText(ct, "将在" + TimeUtils.long2str(time, "yyyy-MM-dd HH:mm") + "为您提醒");
         alarm.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), getPendingIntent(intent));
     }
 

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

@@ -8,7 +8,6 @@ import android.widget.RadioButton;
 
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.ui.erp.fragment.ContactFragment;
 import com.xzjmyk.pm.activity.ui.erp.fragment.SigninFragment;
 import com.xzjmyk.pm.activity.ui.erp.fragment.SigninSetFragment;
 
@@ -28,9 +27,7 @@ public class SigninActivity extends BaseActivity {
     private void initView() {
         manager = getSupportFragmentManager();
         signinFragment = new SigninFragment();
-        ContactFragment contactFragment=new ContactFragment();
         manager.beginTransaction().replace(R.id.content_fl, signinFragment).commit();
-        manager.beginTransaction().replace(R.id.content_fl, contactFragment).commit();
         setting_rb = (RadioButton) findViewById(R.id.setting_rb);
         setting_rb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
             @Override

+ 46 - 9
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/ContactExpanAdapter.java

@@ -5,8 +5,15 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.BaseExpandableListAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
 
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.bean.Friend;
+import com.xzjmyk.pm.activity.sortlist.BaseSortModel;
+import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
+
+import java.util.List;
 
 /**
  * Created by pengminggong on 2016/10/13.
@@ -14,28 +21,31 @@ import com.xzjmyk.pm.activity.R;
 
 public class ContactExpanAdapter extends BaseExpandableListAdapter {
     private Context ct;
+    private List<List<BaseSortModel<Friend>>> likeFriends;
 
-    public ContactExpanAdapter(Context ct) {
+    public ContactExpanAdapter(Context ct, List<List<BaseSortModel<Friend>>> likeFriends) {
         this.ct = ct;
+        this.likeFriends = likeFriends;
     }
 
     @Override
     public int getGroupCount() {
-        return 1;
+        return ListUtils.isEmpty(likeFriends) ? 0 : likeFriends.size();
     }
 
     @Override
     public int getChildrenCount(int i) {
-        return 20;
+        return likeFriends.get(i).size();
     }
+
     @Override
     public Object getGroup(int i) {
-        return 1;
+        return likeFriends.get(i);
     }
 
     @Override
     public Object getChild(int i, int i1) {
-        return 1;
+        return likeFriends.get(i).get(i1);
     }
 
     @Override
@@ -45,7 +55,7 @@ public class ContactExpanAdapter extends BaseExpandableListAdapter {
 
     @Override
     public long getChildId(int i, int i1) {
-        return i;
+        return i1;
     }
 
     @Override
@@ -55,18 +65,45 @@ public class ContactExpanAdapter extends BaseExpandableListAdapter {
 
     @Override
     public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
-        view = LayoutInflater.from(ct).inflate(R.layout.row_sort_friend, viewGroup, false);
+        view = LayoutInflater.from(ct).inflate(R.layout.contact_expan_title, viewGroup, false);
+        TextView tv = (TextView) view.findViewById(R.id.num_tv);
+        ImageView next_img = (ImageView) view.findViewById(R.id.next_img);
+        tv.setText("常用联系人(" + likeFriends.get(i).size() + ")");
+        if (b) {
+            next_img.setImageResource(R.drawable.oa_next);
+        } else {
+            next_img.setImageResource(R.drawable.oa_doit);
+        }
         return view;
     }
 
     @Override
     public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
-        view = LayoutInflater.from(ct).inflate(R.layout.row_sort_friend, viewGroup, false);
+        ViewHolder holder = null;
+        if (view == null) {
+            holder = new ViewHolder();
+            view = LayoutInflater.from(ct).inflate(R.layout.contact_item, viewGroup, false);
+            holder.header_img = (ImageView) view.findViewById(R.id.header_img);
+            holder.phone_img = (ImageView) view.findViewById(R.id.phone_img);
+            holder.tag_tv = (TextView) view.findViewById(R.id.tag_tv);
+            holder.name_tv = (TextView) view.findViewById(R.id.name_tv);
+            holder.sub_tv = (TextView) view.findViewById(R.id.sub_tv);
+            view.setTag(holder);
+        } else {
+            holder = (ViewHolder) view.getTag();
+        }
+
         return view;
     }
 
+    class ViewHolder {
+        TextView tag_tv, name_tv, sub_tv;
+        ImageView header_img, phone_img;
+    }
+
     @Override
     public boolean isChildSelectable(int i, int i1) {
-        return false;
+        //子控件可以点击
+        return true;
     }
 }

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

@@ -2,12 +2,10 @@ package com.xzjmyk.pm.activity.ui.erp.fragment;
 
 import android.os.Bundle;
 import android.view.View;
-import android.widget.ExpandableListView;
 
 import com.lidroid.xutils.ViewUtils;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.EasyFragment;
-import com.xzjmyk.pm.activity.ui.erp.adapter.ContactExpanAdapter;
 
 
 /**
@@ -32,19 +30,8 @@ public class ContactFragment extends EasyFragment {
     @Override
     protected void onCreateView(Bundle savedInstanceState, boolean createView) {
         ViewUtils.inject(getmRootView());
-        initView();
     }
 
-    private void initView() {
-
-        ExpandableListView expandableListView = (ExpandableListView) findViewById(R.id.expandablelistview);
-        ContactExpanAdapter adapter = new ContactExpanAdapter(ct);
-        expandableListView.setAdapter(adapter);
-//        View headerView = LayoutInflater.from(ct).inflate(R.layout.header_fragment_contact, null);
-//        listView = refreshListView.getRefreshableView();
-//        setHeaderView(headerView);
-
-    }
 
 
     public void setHeaderView(View headerView) {

+ 63 - 187
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/LinksManFragment.java

@@ -26,17 +26,14 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AdapterView;
 import android.widget.EditText;
-import android.widget.ExpandableListAdapter;
 import android.widget.ExpandableListView;
 import android.widget.ListView;
-import android.widget.RelativeLayout;
 import android.widget.TextView;
 
 import com.android.volley.Response;
 import com.android.volley.VolleyError;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
-import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.AppConstant;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
@@ -59,7 +56,6 @@ import com.xzjmyk.pm.activity.ui.circle.BasicInfoActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.CommonFragmentActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.CompanyContactsActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.MyFriendActivity;
-import com.xzjmyk.pm.activity.ui.erp.activity.SubscribeActivity;
 import com.xzjmyk.pm.activity.ui.erp.adapter.ContactExpanAdapter;
 import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
 import com.xzjmyk.pm.activity.ui.erp.entity.EmployeesEntity;
@@ -88,24 +84,14 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 
+import static com.xzjmyk.pm.activity.R.id.company;
+
 /**
  * @desc:联系人
  * @author:Administrator on 2016/1/30 16:15
  */
 public class LinksManFragment extends XutilsFragment implements View.OnClickListener {
     private Context ct;
-    @ViewInject(R.id.my_data_rl)
-    private RelativeLayout my_data_rl;
-    @ViewInject(R.id.my_friends_rl)
-    private RelativeLayout my_friends_rl;
-    @ViewInject(R.id.my_friend_rl)
-    private RelativeLayout my_tingyue_rl;
-    @ViewInject(R.id.my_tingyue_rl)
-    private RelativeLayout my_friend_rl;
-    @ViewInject(R.id.local_video_rl)
-
-    private RelativeLayout local_video_rl;
-    private RelativeLayout chat_manage_rl;
     private PullToRefreshListView mPullToRefreshListView;
     private TextView mTextDialog;
     private SideBar mSideBar;
@@ -120,7 +106,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
     private boolean mNeedUpdate = true;
     private Activity mActivity;
     private DBManager manager;
-
+    private int groupHeight = 0;
     //接收修改F司广播
     private IntentFilter inputFilter;
     private BroadcastReceiver receiver = new BroadcastReceiver() {
@@ -144,24 +130,18 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
     @Override
     public void onClick(View v) {
         switch (v.getId()) {
-            case R.id.my_tingyue_rl:
-                ct.startActivity(new Intent(ct, SubscribeActivity.class));
-                break;
-            case R.id.my_data_rl:
+            case R.id.company://企业架构
                 ((MainActivity) ct).startActivityForResult(new Intent(ct, CompanyContactsActivity.class), MainActivity.UPDATA_LIST);
                 break;
-            case R.id.my_friends_rl:
+            case R.id.uu_friend://好友
                 ct.startActivity(new Intent(ct, MyFriendActivity.class));
                 break;
-            case R.id.my_friend_rl:
+            case R.id.group://商务群
                 Intent intent = new Intent(ct, CommonFragmentActivity.class);
                 intent.putExtra("type", Constants.TYPE_CHAT_All);
                 ct.startActivity(intent);
                 break;
-            case R.id.local_video_rl:
-                ToastUtil.showToast(getActivity(), "抱歉,该功能还未开发");
-                break;
-            case R.id.my_friend_manage:
+            case R.id.my_friend_manage://管理群
                 intent = new Intent(ct, CommonFragmentActivity.class);
                 intent.putExtra("type", Constants.TYPE_CHAT_MANAGE);
                 ct.startActivity(intent);
@@ -187,9 +167,9 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         inputFilter = new IntentFilter("com.app.home.update");
         getActivity().registerReceiver(receiver, inputFilter);
         setHasOptionsMenu(true);
-
     }
 
+
     @Override
     protected void onCreateView(Bundle savedInstanceState, boolean createView) {
         if (createView) {
@@ -208,37 +188,21 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                 "whichsys=?");
         List<Friend> friends = new ArrayList<>();
         if (emList.size() > 0 && mLoginUserId != null) {
-            for (int i = 0; i < emList.size(); i++) {//企业通讯人员
-                // friends.add(EnterChatAction(emList.get(i)));
-                if (mLoginUserId.equals((emList.get(i).getEm_IMID() + ""))) {
+            for (EmployeesEntity e : emList) {//企业通讯人员
+                String fId = String.valueOf(e.getEm_IMID());
+                if (mLoginUserId.equals(fId)) {
                     continue;
                 }
-                String fId = String.valueOf(emList.get(i).getEm_IMID());
-                if (!ListUtils.isEmpty(friend)) {
-                    for (int j = 0; j < friend.size(); j++) {//IM好友
-                        if (mLoginUserId.equals((friend.get(j).getUserId() + ""))) {
-                            friend.remove(j);
-                            continue;
-                        }
-                        if (fId.equals(friend.get(j).getUserId())) {  //当有重复
-                            //改昵称
-                            friend.get(j).setNickName(emList.get(i).getEM_NAME());
-                            friend.get(j).setRemarkName(emList.get(i).getEM_NAME());//备注
-                            FriendDao.getInstance().setRemarkName(mLoginUserId, friend.get(j).getUserId(), friend.get(j).getRemarkName());
-                            break;
-                        } else if ((j == (friend.size() - 1)) && !(fId.equals(friend.get(j).getUserId()))) {
-                            friends.add(EnterChatAction(emList.get(i)));
-                        }
+                friends.add(EnterChatAction(e));//所有的企业结构人员添加到列表中
+                if (ListUtils.isEmpty(friend)) continue;
+                for (int i = 0; i < friend.size(); i++) {
+                    if (friend.get(i).getUserId().equals(fId) || mLoginUserId.equals(friend.get(i).getUserId())) {//当前用户和企业架构重复或为自己
+                        friend.remove(i);
+                        break;
                     }
-                } else {
-                    friends.add(EnterChatAction(emList.get(i)));
                 }
             }
         }
-        //下面两行待优化
-        if (friend == null) return;
-        for (int i = 0; i < friend.size(); i++) friend.get(i).setFriend(true);
-        for (int i = 0; i < friends.size(); i++) friends.get(i).setFriend(false);
         friend.addAll(friends);
     }
 
@@ -250,8 +214,9 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         friend.setOwnerId(MyApplication.getInstance().mLoginUser.getUserId());
         friend.setRemarkName(employee.getEM_NAME());//备注
         friend.setNickName(employee.getEM_NAME());//昵称
-        friend.setEmCode(employee.getEM_MOBILE());
-
+        friend.setPhone(employee.getEM_MOBILE());
+        friend.setDepart(employee.getEM_DEPART());
+        friend.setPosition(employee.getEM_POSITION());
         friend.setTimeSend(TimeUtils.sk_time_current_time());
         friend.setStatus(Friend.STATUS_UNKNOW);
         return friend;
@@ -282,7 +247,6 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                 }
             }
         }, AttentionUser.class, params);
-//		mActivity.addDefaultRequest(request);
         MyApplication.getInstance().getFastVolley().addDefaultRequest(HASHCODE, request);
     }
 
@@ -302,12 +266,10 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         mcProgressDialog = CustomProgressDialog.createDialog(ct);
         mcProgressDialog.show();
         mBind = getActivity().bindService(CoreService.getIntent(), mServiceConnection, Activity.BIND_AUTO_CREATE);
-        setHeaderView();
-        setHeaderView2();
         mTextDialog = (TextView) findViewById(R.id.text_dialog);
         mSideBar = (SideBar) findViewById(R.id.sidebar);
         mSideBar.setTextView(mTextDialog);
-
+        setHeaderView();
         //查好友
         search_edit.addTextChangedListener(new TextWatcher() {
             @Override
@@ -331,10 +293,9 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                             sortFrientSeach.add(mode);
                         }
                     }
-                    goneView(true);
                     mAdapter.setData(sortFrientSeach);
                 } else {
-                    goneView(false);
+
                     mAdapter.setData(mSortFriends);
                 }
             }
@@ -355,7 +316,6 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
 
             @Override
             public void onTouchingUp() {
-                //linear_top_menu.setVisibility(View.VISIBLE);
             }
         });
         mAdapter = new FriendSortAdapter(getActivity(), mSortFriends);
@@ -375,16 +335,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
 
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                try {
-                    if (isSeaching)
-                        friend = sortFrientSeach.get((int) id).getBean();
-                    else
-                        friend = mSortFriends.get((int) id).getBean();
-
-                } catch (ArrayIndexOutOfBoundsException e) {
-                    return;
-                }
-
+                friend = mSortFriends.get((int) id).getBean();
                 Intent intent = null;
                 if (friend.getUserId().equals(Friend.ID_NEW_FRIEND_MESSAGE)) {// 新朋友消息
                     intent = new Intent(getActivity(), NewFriendActivity.class);
@@ -393,8 +344,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                     intent.putExtra(ChatActivity.FRIEND, friend);
                 } else {
                     intent = new Intent(getActivity(), BasicInfoActivity.class);
-//                    intent.putExtra(AppConstant.EXTRA_FRIEND, friend);
-                    intent.putExtra(AppConstant.EXTRA_NICK_CODE, friend.getEmCode());
+                    intent.putExtra(AppConstant.EXTRA_NICK_CODE, friend.getPhone());
                     intent.putExtra(AppConstant.EXTRA_USER_ID, friend.getUserId());
                     intent.putExtra(AppConstant.EXTRA_NICK_NAME, friend.getNickName());
                 }
@@ -420,28 +370,6 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         mProgressDialog = ProgressDialogUtil.init(getActivity(), null, getString(R.string.please_wait));
     }
 
-
-    private boolean isSeaching = false;
-
-    private void goneView(boolean b) {
-        isSeaching = b;
-        if (b) {
-//            my_tingyue_rl.setVisibility(View.GONE);
-            my_data_rl.setVisibility(View.GONE);
-            chat_manage_rl.setVisibility(View.GONE);
-            // my_friends_rl.setVisibility(View.GONE);
-            my_friend_rl.setVisibility(View.GONE);
-            // local_video_rl.setVisibility(View.GONE);
-        } else {
-//            my_tingyue_rl.setVisibility(View.VISIBLE);
-            my_data_rl.setVisibility(View.VISIBLE);
-            chat_manage_rl.setVisibility(View.VISIBLE);
-            //my_friends_rl.setVisibility(View.VISIBLE);
-            my_friend_rl.setVisibility(View.VISIBLE);
-            //local_video_rl.setVisibility(View.VISIBLE);
-        }
-    }
-
     public void update() {
         if (isResumed()) {
             loadData();
@@ -461,64 +389,46 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
 
     /*处理头文件*/
     private void setHeaderView() {
-        headview = LayoutInflater.from(ct).inflate(R.layout.headview_cantacts_menus, null);
-        mPullToRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
-        mPullToRefreshListView.getRefreshableView().addHeaderView(headview);
-        search_edit = (ClearEditText) findViewById(R.id.search_edit);
-        my_friend_rl = (RelativeLayout) headview.findViewById(R.id.my_friend_rl);
-        my_data_rl = (RelativeLayout) headview.findViewById(R.id.my_data_rl);
-        my_friends_rl = (RelativeLayout) headview.findViewById(R.id.my_friends_rl);
-        local_video_rl = (RelativeLayout) headview.findViewById(R.id.local_video_rl);
-        chat_manage_rl = (RelativeLayout) headview.findViewById(R.id.my_friend_manage);
-        my_friend_rl.setOnClickListener(this);
-        my_data_rl.setOnClickListener(this);
-        my_friends_rl.setOnClickListener(this);
-        local_video_rl.setOnClickListener(this);
-        chat_manage_rl.setOnClickListener(this);
-
-    }
-
-    private void setHeaderView2() {
         headview = LayoutInflater.from(ct).inflate(R.layout.header_fragment_contact, null);
         mPullToRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
         mPullToRefreshListView.getRefreshableView().addHeaderView(headview);
         expandableListView = (ExpandableListView) headview.findViewById(R.id.expandablelistview);
-        ContactExpanAdapter adapter = new ContactExpanAdapter(ct);
+        search_edit = (ClearEditText) headview.findViewById(R.id.search_edit);
+        headview.findViewById(company).setOnClickListener(this);//企业结构
+        headview.findViewById(R.id.group).setOnClickListener(this);//商务群
+        headview.findViewById(R.id.uu_friend).setOnClickListener(this);//我的好友
+        ContactExpanAdapter adapter = new ContactExpanAdapter(ct, getTest());
         expandableListView.setAdapter(adapter);
+        expandableListView.post(new Runnable() {//在OncreateView中视图还没有创建,所以不能获取高度
+            @Override
+            public void run() {
+                groupHeight = expandableListView.getHeight();
+            }
+        });
+
         expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
             @Override
             public boolean onGroupClick(ExpandableListView parent, View view, int i, long l) {
-                Log.i("gongpengming", "aaaa");
-//                setListViewHeight(parent, i);
-                Log.i("gongpengming", "是否打开=" + parent.isGroupExpanded(i));
-                Log.i("gongpengming", "parent子控件数量" + parent.getExpandableListAdapter().getChildrenCount(i));
-                Log.i("gongpengming", "parent高度" + parent.getHeight());
-                Log.i("gongpengming", "view子空间高度" + view.getHeight());
-                Log.i("gongpengming", "i" + i);
-                Log.i("gongpengming", "l" + l);
-                int Group = parent.getExpandableListAdapter().getGroupCount();
-                int Group2 = parent.getExpandableListAdapter().getChildrenCount(i);
+                int children = parent.getExpandableListAdapter().getChildrenCount(i);
+                int childHeight = view.getHeight();
                 ViewGroup.LayoutParams params = expandableListView.getLayoutParams();
-                if (parent.isGroupExpanded(i)) {
-                    params.height = Group * parent.getHeight() + Group2 * view.getHeight();
+                params.width = ViewGroup.LayoutParams.MATCH_PARENT;
+                if (!parent.isGroupExpanded(i)) {//判断点击前是否是打开状态,点击前打开,点击后为关闭
+                    params.height = groupHeight + children * childHeight;
                 } else {
-                    params.height = Group * parent.getHeight();
+                    params.height = groupHeight;
                 }
-                params.width = ViewGroup.LayoutParams.MATCH_PARENT;
                 expandableListView.setLayoutParams(params);
                 return false;
-
             }
         });
-//        expandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
-//            @Override
-//            public void onGroupExpand(int i) {
-//                Log.i("gongpengming","ccccc");
-//                ViewGroup.LayoutParams params = expandableListView.getLayoutParams();
-//                params.height = 300; params.width =  ViewGroup.LayoutParams.MATCH_PARENT;
-//                expandableListView.setLayoutParams(params);
-//            }
-//        });
+        expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
+            @Override
+            public boolean onChildClick(ExpandableListView expandableListView, View view, int i, int i1, long l) {
+                Log.i("gongpengming", "点击了" + i1);
+                return false;
+            }
+        });
     }
 
 
@@ -572,56 +482,13 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         if (StringUtils.isEmpty(master)) return;
         //查找本地数据库,管理群存在,则不创建
         List<HrorgsEntity> hlist = db.queryHrorgList(new String[]{master, emCode}, "whichsys=? and or_headmancode=?");
-        if (hlist.isEmpty()) {
-            chat_manage_rl.setVisibility(View.GONE);
-        } else {
-            chat_manage_rl.setVisibility(View.VISIBLE);
-        }
+//        if (hlist.isEmpty()) {
+//            chat_manage_rl.setVisibility(View.GONE);
+//        } else {
+//            chat_manage_rl.setVisibility(View.VISIBLE);
+//        }
     }
 
-    private void setListViewHeight(ExpandableListView listView, int group) {
-        //得到相应ListView的适配器
-        ExpandableListAdapter listAdapter = listView.getExpandableListAdapter();
-        //总高度
-        int totalHeight = 0;
-        //期望的宽度
-        int desiredWidth = View.MeasureSpec.makeMeasureSpec(listView.getWidth(), View.MeasureSpec.EXACTLY);
-        for (int i = 0; i < listAdapter.getGroupCount(); i++) {
-            //得到一级条目
-            View groupItem = listAdapter.getGroupView(i, false, null, listView);
-            //groupItem根据给的参数测量一下尺寸,方法调用完后groupItem大小就确定了
-            groupItem.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED);
-            //累加一级条目高度
-            totalHeight += groupItem.getHeight();
-            //    除了group条目外都展开了  或者  group那一条目没有展开
-            if (((listView.isGroupExpanded(group)) && (i != group)) || ((!listView.isGroupExpanded(group)) && (i == group))) {
-                for (int j = 0; j < listAdapter.getChildrenCount(i); j++) {
-                    //得到二级条目
-                    View listItem = listAdapter.getChildView(i, j, false, null, listView);
-                    //listItem根据给的参数测量一下尺寸,方法调用完后listItem大小就确定了
-                    listItem.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED);
-                    //累加二级条目高度
-                    totalHeight += listItem.getHeight();
-                }
-            }
-        }
-        //获得listView的布局参数
-        ViewGroup.LayoutParams params = listView.getLayoutParams();
-        //listView的高度 = 一级条目和二级条目总和 + 分割线高度总和
-        int height = totalHeight + (listView.getDividerHeight() * (listAdapter.getGroupCount() - 1));
-        //如果高度小于10,则设置为200,没有太大关系
-        if (height < 10) {
-            height = 200;
-        }
-        //把高度赋值给布局参数
-        params.height = height;
-        //把布局参数回传给listView
-        listView.setLayoutParams(params);
-        //listView按照参数从新布局
-        listView.requestLayout();
-    }
-
-
     private final void setSortCondition(BaseSortModel<Friend> mode) {
         Friend friend = mode.getBean();
         if (friend == null) {
@@ -959,4 +826,13 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         return super.onOptionsItemSelected(item);
     }
 
+    public List<List<BaseSortModel<Friend>>> getTest() {
+        List<List<BaseSortModel<Friend>>> test = new ArrayList<>();
+        List<BaseSortModel<Friend>> t = new ArrayList<>();
+        for (int i = 0; i < 10; i++) {
+            t.add(new BaseSortModel());
+        }
+        test.add(t);
+        return test;
+    }
 }

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

@@ -639,6 +639,8 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
             code = CommonUtil.getSharedPreferences(ct, "erp_username");
         }
         param.put("emcode", code);
+        param.put("master", CommonUtil.getSharedPreferences(ct, "erp_master"));
+        param.put("sessionUser", CommonUtil.getSharedPreferences(ct, "erp_master"));
         param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));

+ 8 - 8
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java

@@ -751,11 +751,11 @@ public class MessageFragment extends EasyFragment {
                     if (num > 0) {
                         num_tv.setText(num + "");
                         num_tv.setVisibility(View.VISIBLE);
-                        content_tv.setText("您有" + num + "条订阅消息未阅读");
+                        content_tv.setText("您有" + num + "条订阅消息");
                         time_tv.setText("刚刚");
                     } else {
                         num_tv.setVisibility(View.GONE);
-                        content_tv.setText("您暂无未阅读订阅消息");
+                        content_tv.setText("您暂无订阅消息");
                     }
                     break;
                 case Constants.SUCCESS_LOGIN://公告
@@ -785,11 +785,11 @@ public class MessageFragment extends EasyFragment {
                     if (TASK_count > 0) {
                         task_num_tv.setText(TASK_count + "");
                         task_num_tv.setVisibility(View.VISIBLE);
-                        task_content_tv.setText("您有" + TASK_count + "条任务未阅读");
+                        task_content_tv.setText("您有" + TASK_count + "条任务");
                         task_time_tv.setText("刚刚");
                     } else {
                         task_num_tv.setVisibility(View.GONE);
-                        task_content_tv.setText("您暂无未阅读任务");
+                        task_content_tv.setText("您暂无任务");
                     }
                     break;
                 case DAIBAN_MSG:
@@ -797,11 +797,11 @@ public class MessageFragment extends EasyFragment {
                     if (DAIBAN_count > 0) {
                         schedule_num_tv.setText(DAIBAN_count + "");
                         schedule_num_tv.setVisibility(View.VISIBLE);
-                        schedule_content_tv.setText("您有" + DAIBAN_count + "条待审批流程未阅读");
+                        schedule_content_tv.setText("您有" + DAIBAN_count + "条待审批流程");
                         schedule_time_tv.setText("刚刚");
                     } else {
                         schedule_num_tv.setVisibility(View.GONE);
-                        schedule_content_tv.setText("您暂无未阅读审批流程");
+                        schedule_content_tv.setText("您暂无审批流程");
                     }
                     break;
             }
@@ -814,11 +814,11 @@ public class MessageFragment extends EasyFragment {
         if (count > 0) {
             notice_num_tv.setText(count + "");
             notice_num_tv.setVisibility(View.VISIBLE);
-            notice_content_tv.setText("您有" + count + "条通知未阅读");
+            notice_content_tv.setText("您有" + count + "条通知");
             notice_time_tv.setText("刚刚");
         } else {
             notice_num_tv.setVisibility(View.GONE);
-            notice_content_tv.setText("您暂无未阅读通知");
+            notice_content_tv.setText("您暂无通知");
         }
     }
 

+ 27 - 23
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/crouton/Crouton.java

@@ -178,12 +178,18 @@ public final class Crouton {
         return new Crouton(activity, text, style);
     }
 
+    public static void makeText(Context ct, int id) {
+        makeText((BaseActivity) ct, id, ct.getResources().getColor(R.color.light_green), 1000).show();
+    }
+
     public static void makeText(Context ct, String message) {
         makeText((BaseActivity) ct, message, ct.getResources().getColor(R.color.light_green), 1000).show();
     }
-    public static void makeText(Context ct, String message,int time) {
-        makeText((BaseActivity) ct, message, ct.getResources().getColor(R.color.light_green),  time).show();
+
+    public static void makeText(Context ct, String message, int time) {
+        makeText((BaseActivity) ct, message, ct.getResources().getColor(R.color.light_green), time).show();
     }
+
     /**
      * 自定义设置背景色,延时时间
      *
@@ -196,10 +202,10 @@ public final class Crouton {
     public static Crouton makeText(Activity activity, CharSequence text, int color, int time) {
         Style customColor = new Style.Builder().setBackgroundColorValue(color).build();
         Configuration customConfiguration;
-        if (time==Configuration.DURATION_INFINITE){
+        if (time == Configuration.DURATION_INFINITE) {
             customConfiguration = new Configuration.Builder().setDuration(Configuration.DURATION_INFINITE).build();
-        }else{
-           customConfiguration = new Configuration.Builder().setDuration(time).build();
+        } else {
+            customConfiguration = new Configuration.Builder().setDuration(time).build();
         }
         return new Crouton(activity, text, customColor).setConfiguration(customConfiguration);
     }
@@ -221,22 +227,24 @@ public final class Crouton {
 
     /**
      * 自定义设置背景色,延时时间
+     *
      * @param activity
      * @param text
      * @param color
      * @param time
      * @return
      */
-    public static Crouton makeText(Activity activity,int height, CharSequence text, int color, int time){
+    public static Crouton makeText(Activity activity, int height, CharSequence text, int color, int time) {
         Style customColor = new Style.Builder().setBackgroundColorValue(color)
                 .setHeight(
-                        (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
+                        (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
                                 height,
                                 activity.getResources().getDisplayMetrics())
                 ).build();
         Configuration customConfiguration = new Configuration.Builder().setDuration(time).build();
         return new Crouton(activity, text, customColor).setConfiguration(customConfiguration);
     }
+
     /**
      * 自定义设置背景色,延时时间
      *
@@ -398,22 +406,18 @@ public final class Crouton {
         return new Crouton(activity, customView, viewGroup);
     }
 
-  /**
-   * Creates a {@link Crouton} with provided text-resource and style for a given
-   * activity.
-   *
-   * @param activity
-   *     The {@link Activity} that represents the context in which the Crouton should exist.
-   * @param customView
-   *     The custom {@link View} to display
-   * @param viewGroupResId
-   *     The resource id of the {@link ViewGroup} that this {@link Crouton} should be added to.
-   *
-   * @return The created {@link Crouton}.
-   */
-  public static Crouton make(Activity activity, View customView, int viewGroupResId) {
-    return new Crouton(activity, customView, (ViewGroup) activity.findViewById(viewGroupResId));
-  }
+    /**
+     * Creates a {@link Crouton} with provided text-resource and style for a given
+     * activity.
+     *
+     * @param activity       The {@link Activity} that represents the context in which the Crouton should exist.
+     * @param customView     The custom {@link View} to display
+     * @param viewGroupResId The resource id of the {@link ViewGroup} that this {@link Crouton} should be added to.
+     * @return The created {@link Crouton}.
+     */
+    public static Crouton make(Activity activity, View customView, int viewGroupResId) {
+        return new Crouton(activity, customView, (ViewGroup) activity.findViewById(viewGroupResId));
+    }
 
     /**
      * Creates a {@link Crouton} with provided text-resource and style for a given

+ 0 - 18
WeiChat/src/main/res/layout/activity_subscribe.xml

@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:paddingBottom="@dimen/activity_vertical_margin"
-    android:paddingLeft="@dimen/activity_horizontal_margin"
-    android:paddingRight="@dimen/activity_horizontal_margin"
-    android:paddingTop="@dimen/activity_vertical_margin"
-    tools:context="com.xzjmyk.pm.activity.ui.erp.activity.SubscribeActivity">
-
-    <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_centerInParent="true"
-        android:text="该功能还未开通"
-        android:textSize="20sp" />
-</RelativeLayout>

+ 24 - 0
WeiChat/src/main/res/layout/contact_expan_title.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="60dp">
+
+    <TextView
+        android:id="@+id/num_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerVertical="true"
+        android:layout_marginLeft="10dp"
+        android:text="常用联系人(0)"
+        android:textColor="@color/text_main"
+        android:textSize="@dimen/text_main" />
+
+    <ImageView
+        android:id="@+id/next_img"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:layout_marginRight="8dp"
+        android:layout_centerVertical="true"
+        android:src="@drawable/oa_next" />
+</RelativeLayout>

+ 67 - 0
WeiChat/src/main/res/layout/contact_item.xml

@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingBottom="10dp">
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="2px"
+        android:background="@color/item_line" />
+
+    <TextView
+        android:id="@+id/tag_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
+        android:gravity="bottom"
+        android:text="A"
+        android:visibility="gone" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="2px"
+        android:layout_below="@id/tag_tv"
+        android:background="@color/item_line" />
+
+    <ImageView
+        android:layout_marginTop="10dp"
+        android:id="@+id/header_img"
+        android:layout_width="40dp"
+        android:layout_height="40dp"
+        android:layout_below="@id/tag_tv"
+        android:layout_marginLeft="10dp" />
+
+    <TextView
+        android:id="@+id/name_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignTop="@id/header_img"
+        android:layout_marginLeft="10dp"
+        android:layout_marginTop="3dp"
+        android:layout_toRightOf="@id/header_img"
+        android:text="aaa"
+        android:textColor="@color/text_main"
+        android:textSize="@dimen/text_main" />
+
+    <TextView
+        android:id="@+id/sub_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignLeft="@id/name_tv"
+        android:layout_below="@id/name_tv"
+        android:layout_marginTop="2dp"
+        android:text="aaa"
+        android:textColor="@color/text_hine"
+        android:textSize="@dimen/text_hine" />
+
+    <ImageView
+        android:id="@+id/phone_img"
+        android:layout_width="40dp"
+        android:layout_height="40dp"
+        android:layout_alignParentRight="true"
+        android:layout_centerVertical="true"
+        android:layout_marginRight="20dp"
+        android:padding="10dp"
+        android:src="@drawable/phone" />
+</RelativeLayout>

+ 4 - 4
WeiChat/src/main/res/layout/fragment_friend.xml

@@ -4,8 +4,6 @@
     android:layout_height="match_parent"
     android:background="@drawable/bg_main">
 
-
-
     <com.handmark.pulltorefresh.library.PullToRefreshListView xmlns:ptr="http://schemas.android.com/apk/res-auto"
         android:id="@+id/pull_refresh_list"
         android:layout_width="match_parent"
@@ -38,7 +36,9 @@
     <com.xzjmyk.pm.activity.sortlist.SideBar
         android:id="@+id/sidebar"
         android:layout_width="30.0dip"
-        android:layout_height="fill_parent"
+        android:layout_height="match_parent"
         android:layout_alignParentRight="true"
-        android:layout_gravity="right|center" />
+        android:layout_gravity="right|center"
+        android:layout_marginBottom="10dp"
+        android:layout_marginTop="200dp" />
 </RelativeLayout>

+ 38 - 5
WeiChat/src/main/res/layout/header_fragment_contact.xml

@@ -4,12 +4,41 @@
     android:layout_height="match_parent"
     android:orientation="vertical">
 
+    <RelativeLayout
+        android:id="@+id/seach_top"
+        android:layout_width="match_parent"
+        android:layout_height="48dp"
+        android:background="@drawable/bg_bar"
+        android:orientation="horizontal"
+        android:paddingBottom="5dp"
+        android:paddingLeft="15dp"
+        android:paddingRight="15dp"
+        android:paddingTop="5dp">
+
+        <com.xzjmyk.pm.activity.view.ClearEditText
+            android:id="@+id/search_edit"
+            android:layout_width="fill_parent"
+            android:layout_height="fill_parent"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="10dp"
+            android:layout_marginRight="10dp"
+            android:background="@drawable/search_input"
+            android:drawableLeft="@drawable/search"
+            android:drawableRight="@drawable/search_clear"
+            android:hint="@string/search"
+            android:textColor="@color/dark_grey"
+            android:textColorHint="@color/grey"
+            android:textSize="15sp" />
+    </RelativeLayout>
+
     <LinearLayout
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
+        android:layout_height="80dp"
+        android:gravity="center"
         android:orientation="horizontal">
 
         <TextView
+            android:id="@+id/company"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
             android:layout_weight="1"
@@ -18,20 +47,22 @@
             android:text="企业架构" />
 
         <TextView
+            android:id="@+id/group"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:drawableTop="@drawable/qunliao"
             android:gravity="center"
-            android:text="企业架构" />
+            android:text="商务群" />
 
         <TextView
+            android:id="@+id/uu_friend"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:drawableTop="@drawable/uuhaoyou"
             android:gravity="center"
-            android:text="企业架构" />
+            android:text="UU好友" />
 
         <TextView
             android:layout_width="0dp"
@@ -39,11 +70,13 @@
             android:layout_weight="1"
             android:drawableTop="@drawable/guanzhu"
             android:gravity="center"
-            android:text="企业架构" />
+            android:text="特别关注" />
     </LinearLayout>
 
     <ExpandableListView
         android:id="@+id/expandablelistview"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content" />
+        android:layout_height="wrap_content"
+        android:childDivider="@null"
+        android:groupIndicator="@null" />
 </LinearLayout>

+ 1 - 1
WeiChat/src/main/res/values/strings.xml

@@ -10,7 +10,7 @@
 
     <string name="crm_sale_num">****元  (第**名)</string>
 
-
+    <string name="not_phone">当前用户没有公开手机号</string>
     <string name="crm_ranking">我的排名</string>
     <string name="crm_sale_msg">本月销售简报</string>
     <string name="crm_branch">我的下属</string>

+ 1 - 1
lib-zxing/build.gradle

@@ -38,4 +38,4 @@ ext {
     PUBLISH_VERSION = '1.9'
 }
 
-apply from: 'https://raw.githubusercontent.com/blundell/release-android-library/master/android-release-aar.gradle'
+//apply from: 'https://raw.githubusercontent.com/blundell/release-android-library/master/android-release-aar.gradle'