Browse Source

处理访问接口时候返回null的情况

gongpm 10 years ago
parent
commit
cf76da6b9a
27 changed files with 473 additions and 232 deletions
  1. 8 5
      WeiChat/src/main/AndroidManifest.xml
  2. BIN
      WeiChat/src/main/assets/test.jpg
  3. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/MyApplication.java
  4. 0 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java
  5. 222 121
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/SplashActivity.java
  6. 3 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/account/LoginActivity.java
  7. 1 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/AddTaskActivity.java
  8. 7 23
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/SaleSelectActivity.java
  9. 15 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/SubscribeActivity.java
  10. 22 27
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/LinksManFragment.java
  11. 0 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/groupchat/GroupChatFragment.java
  12. 32 8
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/SettingActivity.java
  13. 5 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/ChatActivity.java
  14. 4 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MucChatActivity.java
  15. 21 12
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/RoomInfoActivity.java
  16. 13 7
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/ChatContentView.java
  17. 30 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/HeadImageView.java
  18. 0 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/xmpp/CoreService.java
  19. 3 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/xmpp/XChatManager.java
  20. BIN
      WeiChat/src/main/res/drawable-hdpi/tingyue.png
  21. BIN
      WeiChat/src/main/res/drawable-xhdpi/bg_chat.jpg
  22. 26 0
      WeiChat/src/main/res/layout/activity_setting.xml
  23. 18 0
      WeiChat/src/main/res/layout/activity_subscribe.xml
  24. 2 3
      WeiChat/src/main/res/layout/chat.xml
  25. 0 1
      WeiChat/src/main/res/layout/fragment_me.xml
  26. 40 6
      WeiChat/src/main/res/layout/headview_cantacts_menus.xml
  27. BIN
      WeiChat/src/main/res/raw/test.jpg

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

@@ -70,10 +70,12 @@ b
         android:icon="@drawable/uuu"
         android:label="@string/app_name"
         android:theme="@style/AppTheme" >
-
-        <meta-data android:value="574504a167e58eec520017df" android:name="UMENG_APPKEY"/>
-        <meta-data android:value="baidu" android:name="UMENG_CHANNEL"/>
-
+        <meta-data
+            android:name="UMENG_APPKEY"
+            android:value="574504a167e58eec520017df" />
+        <meta-data
+            android:name="UMENG_CHANNEL"
+            android:value="baidu" />
 
         <!-- 启动页面 -->
         <activity
@@ -81,7 +83,6 @@ b
             android:theme="@style/SplashTheme" >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
-
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
@@ -395,6 +396,8 @@ b
         <activity android:name=".ui.erp.activity.BaseInfoActivity" />
         <activity android:name=".ui.erp.activity.ClientActivity" >
         </activity>
+        <activity android:name=".ui.erp.activity.SubscribeActivity" >
+        </activity>
     </application>
 
 </manifest>

BIN
WeiChat/src/main/assets/test.jpg


+ 1 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/MyApplication.java

@@ -46,6 +46,7 @@ public class MyApplication extends Application {
 		return INSTANCE;
 	}
 
+
 	@Override
 	public void onCreate() {
 		super.onCreate();

+ 0 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java

@@ -359,9 +359,6 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
                 } else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
                     mActivityManager.moveTaskToFront(getTaskId(), ActivityManager.MOVE_TASK_NO_USER_ACTION);
                 }
-
-
-                ToastUtil.showToast(MainActivity.this, "TOKEN 错误,建议重新登陆");
             } else if (action.equals(LoginHelper.ACTION_NEED_UPDATE)) {
                 // mFindRb.setChecked(true);
                 removeNeedUserFragment(true);

+ 222 - 121
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/SplashActivity.java

@@ -4,7 +4,7 @@ import android.annotation.SuppressLint;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
-import android.util.Log;
+import android.text.TextUtils;
 import android.view.View;
 import android.view.animation.Animation;
 import android.view.animation.AnimationUtils;
@@ -15,138 +15,239 @@ import com.android.volley.Response;
 import com.android.volley.VolleyError;
 import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.MyApplication;
+import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.ConfigBean;
+import com.xzjmyk.pm.activity.bean.LoginRegisterResult;
+import com.xzjmyk.pm.activity.bean.User;
+import com.xzjmyk.pm.activity.db.dao.UserDao;
 import com.xzjmyk.pm.activity.helper.LoginHelper;
+import com.xzjmyk.pm.activity.sp.UserSp;
 import com.xzjmyk.pm.activity.ui.account.LoginActivity;
 import com.xzjmyk.pm.activity.ui.account.RegisterActivity;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.volley.Result;
-import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
+import com.xzjmyk.pm.activity.util.DeviceInfoUtil;
+import com.xzjmyk.pm.activity.util.Md5Util;
+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 java.util.HashMap;
+
 /**
  * 启动页
- * 
+ *
  * @author Dean Tao
  * @version 1.0
  */
 public class SplashActivity extends BaseActivity {
-	private RelativeLayout mSelectLv;
-	private Button mSelectLoginBtn;
-	private Button mSelectRegBtn;
-
-	private long mStartTimeMs;// 记录进入该界面时间,保证至少在该界面停留3秒
-	private boolean mConfigReady = false;// 配置获取成功
-
-	@Override
-	protected void onCreate(Bundle savedInstanceState) {
-		super.onCreate(savedInstanceState);
-		setContentView(R.layout.activity_splash);
-
-		mStartTimeMs = System.currentTimeMillis();
-
-		mSelectLv = (RelativeLayout) findViewById(R.id.select_lv);
-		mSelectLoginBtn = (Button) findViewById(R.id.select_login_btn);
-		mSelectRegBtn = (Button) findViewById(R.id.select_register_btn);
-
-		mSelectLoginBtn.setOnClickListener(new View.OnClickListener() {
-			@Override
-			public void onClick(View v) {
-				startActivity(new Intent(mContext, LoginActivity.class));
-			}
-		});
-		mSelectRegBtn.setOnClickListener(new View.OnClickListener() {
-			@Override
-			public void onClick(View v) {
-				 startActivity(new Intent(mContext, RegisterActivity.class));
-			}
-		});
-		mSelectLv.setVisibility(View.INVISIBLE);
-
-		initConfig();// 初始化配置
-	}
-
-	/**
-	 * 配置参数初始化
-	 */
-	private void initConfig() {
-		if (!MyApplication.getInstance().isNetworkActive()) {// 没有网络的情况下
-			setConfig(new ConfigBean());
-			return;
-		}
-		StringJsonObjectRequest<ConfigBean> request = new StringJsonObjectRequest<ConfigBean>(AppConfig.CONFIG_URL, new Response.ErrorListener() {
-			@Override
-			public void onErrorResponse(VolleyError arg0) {
-				setConfig(new ConfigBean());// 读取网络配置失败,使用默认配置
-			}
-		}, new StringJsonObjectRequest.Listener<ConfigBean>() {
-			@Override
-			public void onResponse(ObjectResult<ConfigBean> result) {
-				ConfigBean configBean = null;
-				if (result == null || result.getResultCode() != Result.CODE_SUCCESS || result.getData() == null) {
-					configBean = new ConfigBean();// 读取网络配置失败,使用默认配置
-				} else {
-					configBean = result.getData();
-				}
-				setConfig(configBean);
-			}
-		}, ConfigBean.class, null);
-		addShortRequest(request);
-	}
-
-	private void setConfig(ConfigBean configBean) {
-		MyApplication.getInstance().setConfig(AppConfig.initConfig(this, configBean));// 初始化配置
-		mConfigReady = true;
-		ready();
-	}
-
-	private void ready() {
-		if (!mConfigReady) {
-			return;
-		}
-		long currentTimeMs = System.currentTimeMillis();
-		int useTime = (int) (currentTimeMs - mStartTimeMs);
-		int delayTime = useTime > 2000 ? 0 : 2000 - useTime;
-		new Handler().postDelayed(new Runnable() {
-			@Override
-			public void run() {
-				jump();
-			}
-		}, delayTime);
-	}
-
-	@SuppressLint("NewApi")
-	private void jump() {
-		if (isDestroyed()) {
-			return;
-		}
-		int userStatus = LoginHelper.prepareUser(mContext);
-		Log.i("Arison", "jump() called with: " + "userStatus:"+userStatus);
-		Intent intent = new Intent();
-		switch (userStatus) {
-		case LoginHelper.STATUS_USER_FULL://5
-		case LoginHelper.STATUS_USER_NO_UPDATE://3
-		case LoginHelper.STATUS_USER_TOKEN_OVERDUE://2
-			//状态,进入主mainactivity
-			intent.setClass(mContext, MainActivity.class);
-			break;
-		case LoginHelper.STATUS_USER_SIMPLE_TELPHONE:
-			intent.setClass(mContext, LoginActivity.class);
-			break;
-		case LoginHelper.STATUS_NO_USER://0
-		default:
-			stay();
-			return;// must return
-		}
-		startActivity(intent);
-		finish();
-	}
-
-	// 停留在此界面
-	private void stay() {
-		mSelectLv.setVisibility(View.VISIBLE);
-		Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha_in);
-		mSelectLv.startAnimation(anim);
-	}
+    private RelativeLayout mSelectLv;
+    private Button mSelectLoginBtn;
+    private Button mSelectRegBtn;
+
+    private long mStartTimeMs;// 记录进入该界面时间,保证至少在该界面停留3秒
+    private boolean mConfigReady = false;// 配置获取成功
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_splash);
+
+        mStartTimeMs = System.currentTimeMillis();
+
+        mSelectLv = (RelativeLayout) findViewById(R.id.select_lv);
+        mSelectLoginBtn = (Button) findViewById(R.id.select_login_btn);
+        mSelectRegBtn = (Button) findViewById(R.id.select_register_btn);
+
+        mSelectLoginBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                startActivity(new Intent(mContext, LoginActivity.class));
+            }
+        });
+        mSelectRegBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                startActivity(new Intent(mContext, RegisterActivity.class));
+            }
+        });
+        mSelectLv.setVisibility(View.INVISIBLE);
+
+        initConfig();// 初始化配置
+    }
+
+    /**
+     * 配置参数初始化
+     */
+    private void initConfig() {
+        if (!MyApplication.getInstance().isNetworkActive()) {// 没有网络的情况下
+            setConfig(new ConfigBean());
+            return;
+        }
+        StringJsonObjectRequest<ConfigBean> request = new StringJsonObjectRequest<ConfigBean>(AppConfig.CONFIG_URL, new Response.ErrorListener() {
+            @Override
+            public void onErrorResponse(VolleyError arg0) {
+                setConfig(new ConfigBean());// 读取网络配置失败,使用默认配置
+            }
+        }, new StringJsonObjectRequest.Listener<ConfigBean>() {
+            @Override
+            public void onResponse(ObjectResult<ConfigBean> result) {
+                ConfigBean configBean = null;
+                if (result == null || result.getResultCode() != Result.CODE_SUCCESS || result.getData() == null) {
+                    configBean = new ConfigBean();// 读取网络配置失败,使用默认配置
+                } else {
+                    configBean = result.getData();
+                }
+                setConfig(configBean);
+            }
+        }, ConfigBean.class, null);
+        addShortRequest(request);
+    }
+
+    private void setConfig(ConfigBean configBean) {
+        MyApplication.getInstance().setConfig(AppConfig.initConfig(this, configBean));// 初始化配置
+        mConfigReady = true;
+        ready();
+    }
+
+    private void ready() {
+        if (!mConfigReady) {
+            return;
+        }
+        long currentTimeMs = System.currentTimeMillis();
+        int useTime = (int) (currentTimeMs - mStartTimeMs);
+        int delayTime = useTime > 2000 ? 0 : 2000 - useTime;
+
+        new Handler().postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                jump2();
+            }
+        }, delayTime);
+    }
+
+    @SuppressLint("NewApi")
+    private void jump() {
+        if (isDestroyed()) {
+            return;
+        }
+        int userStatus = LoginHelper.prepareUser(mContext);
+        Intent intent = new Intent();
+        switch (userStatus) {
+            case LoginHelper.STATUS_USER_FULL://5
+            case LoginHelper.STATUS_USER_NO_UPDATE://3
+                intent.setClass(mContext, MainActivity.class);
+                break;
+            case LoginHelper.STATUS_USER_TOKEN_OVERDUE://2
+            case LoginHelper.STATUS_USER_SIMPLE_TELPHONE:
+                intent.setClass(mContext, LoginActivity.class);
+                break;
+            case LoginHelper.STATUS_NO_USER://0
+            default:
+                stay();
+                return;// must return
+        }
+        startActivity(intent);
+        finish();
+    }
+
+    private void jump2() {
+        boolean idIsEmpty = TextUtils.isEmpty(UserSp.getInstance(this).getUserId(""));
+        boolean telephoneIsEmpty = TextUtils.isEmpty(UserSp.getInstance(this).getTelephone(null));
+
+        if (!idIsEmpty && !telephoneIsEmpty) {// 用户标识都不为空,那么就能代表一个完整的用户
+            // 进入之前,加载本地已经存在的数据
+            String userId = UserSp.getInstance(this).getUserId("");
+            User user = UserDao.getInstance().getUserByUserId(userId);
+            if (!LoginHelper.isUserValidation(user)) {// 用户数据错误,那么就认为是一个游客
+                jump();
+            } else {
+                MyApplication.getInstance().mLoginUser = user;
+                MyApplication.getInstance().mAccessToken = UserSp.getInstance(this).getAccessToken(null);
+                MyApplication.getInstance().mExpiresIn = UserSp.getInstance(this).getExpiresIn(0);
+                login(user.getTelephone(), user.getPassword());
+            }
+        } else {
+            jump();
+        }
+
+    }
+
+    //登陆
+    private void login(final String phoneNumber, final String password) {
+        if (TextUtils.isEmpty(phoneNumber)) {
+            jump();
+            return;
+        }
+        if (TextUtils.isEmpty(password)) {
+            jump();
+            return;
+        }
+
+
+
+        // 加密之后的密码
+        final String requestTag = "login";
+        HashMap<String, String> params = new HashMap<String, String>();
+        params.put("telephone", Md5Util.toMD5(phoneNumber));// 账号登陆的时候需要MD5加密,服务器需求
+        params.put("password", password);
+        // 附加信息
+        params.put("model", DeviceInfoUtil.getModel());
+        params.put("osVersion", DeviceInfoUtil.getOsVersion());
+        params.put("serial", DeviceInfoUtil.getDeviceId(mContext));
+        // 地址信息
+        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));
+
+        final StringJsonObjectRequest<LoginRegisterResult> request = new StringJsonObjectRequest<LoginRegisterResult>(mConfig.USER_LOGIN,
+                new Response.ErrorListener() {
+                    @Override
+                    public void onErrorResponse(VolleyError arg0) {
+                        ToastUtil.showErrorNet(mContext);
+                    }
+                }, new StringJsonObjectRequest.Listener<LoginRegisterResult>() {
+
+            @Override
+            public void onResponse(ObjectResult<LoginRegisterResult> result) {
+                if (result == null) {
+                    ToastUtil.showErrorData(mContext);
+                    return;
+                }
+                boolean success = false;
+                if (result.getResultCode() == Result.CODE_SUCCESS) {
+                    success = LoginHelper.setLoginUser(mContext, phoneNumber, password, result);// 设置登陆用户信息
+                }
+                if (success) {// 登陆IM成功
+                    startActivity(new Intent(SplashActivity.this, MainActivity.class));
+                } else {// 登录失败
+                    String message = TextUtils.isEmpty(result.getResultMsg()) ? getString(R.string.login_failed) : result.getResultMsg();
+                    ToastUtil.showToast(mContext, message);
+                }
+            }
+        }, LoginRegisterResult.class, params);
+        request.setTag(requestTag);
+        addDefaultRequest(request);
+    }
+
+    private void login_manage(String phone, String password) {
+        if (TextUtils.isEmpty(phone)) {
+            return;
+        }
+        if (TextUtils.isEmpty(password)) {
+            return;
+        }
+        ViewUtil.LoginTask(phone, password, mContext);
+    }
+
+    // 停留在此界面
+    private void stay() {
+        mSelectLv.setVisibility(View.VISIBLE);
+        Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha_in);
+        mSelectLv.startAnimation(anim);
+    }
 }

+ 3 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/account/LoginActivity.java

@@ -121,17 +121,16 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
         final String password = mPasswordEdit.getText().toString().trim();
         PreferenceUtils.putString(this, PASS_WORDS, password);
         if (TextUtils.isEmpty(phoneNumber)) {
+            ToastMessage("账号不能为空");
             return;
         }
         if (TextUtils.isEmpty(password)) {
+            ToastMessage("密码不能为空");
             return;
         }
-
         // 加密之后的密码
         final String digestPwd = new String(Md5Util.toMD5(password));
-
         final String requestTag = "login";
-
         final ProgressDialog dialog = ProgressDialogUtil.init(mContext, null, getString(R.string.please_wait), true);
         dialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
             @Override
@@ -139,7 +138,6 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
                 cancelAll(requestTag);
             }
         });
-
         dialog.setProgressDrawable(mContext.getResources().getDrawable(R.drawable.progress_color));
         ProgressDialogUtil.show(dialog);
 
@@ -180,10 +178,10 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
                     /**@注释:持久化登录信息 */
                     Log.i("url", "login:" + JSON.toJSONString(result));
                     success = LoginHelper.setLoginUser(mContext, phoneNumber, digestPwd, result);// 设置登陆用户信息
+
                 }
                 if (success) {// 登陆IM成功
                     login_manage(phoneNumber, password);//登录管理平台
-                    //startActivity(new Intent(mContext, DataDownloadActivity.class));
                 } else {// 登录失败
                     String message = TextUtils.isEmpty(result.getResultMsg()) ? getString(R.string.login_failed) : result.getResultMsg();
                     ToastUtil.showToast(mContext, message);

+ 1 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/AddTaskActivity.java

@@ -70,6 +70,7 @@ import java.util.UUID;
 
 /**
  * @author LiuJie
+ * @updata gongpm 2016.5.25
  */
 public class AddTaskActivity extends BaseActivity implements OnClickListener {
 
@@ -78,7 +79,6 @@ public class AddTaskActivity extends BaseActivity implements OnClickListener {
     private EditText et_task_remark;
     @ViewInject(R.id.et_task_people)
     private TagGroup et_task_people;
-
     @ViewInject(R.id.cb_task_reply)
     private SwitchView cb_task_reply;
     @ViewInject(R.id.et_task_startime)
@@ -275,7 +275,6 @@ public class AddTaskActivity extends BaseActivity implements OnClickListener {
         picker.setOnDatePickedListener(new DatePicker.OnDatePickedListener() {
             @Override
             public void onDatePicked(String date) {
-                Log.i("gongpengming","点击日期"+date);
 //                Toast.makeText(AddTaskActivity.this, date, Toast.LENGTH_LONG).show();
                 et_task_startime.setText(date+":00:00");
                 dialog.dismiss();
@@ -284,7 +283,6 @@ public class AddTaskActivity extends BaseActivity implements OnClickListener {
         picker.setOnTimeListener(new DatePicker.OnDatePickedListener() {
             @Override
             public void onDatePicked(String date) {
-                Log.i("gongpengming","点击时间"+date);
 //                Toast.makeText(AddTaskActivity.this, date, Toast.LENGTH_LONG).show();
                 et_task_startime.setText(date+":00:00");
                 dialog.dismiss();

+ 7 - 23
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/SaleSelectActivity.java

@@ -16,7 +16,6 @@ import android.os.Handler;
 import android.os.Message;
 import android.text.Editable;
 import android.text.TextWatcher;
-import android.util.Log;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -50,15 +49,15 @@ import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
+import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.net.HttpClient;
 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.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.FlexJsonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
-import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.ui.erp.net.HttpClient;
-import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
-import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -193,7 +192,7 @@ public class SaleSelectActivity extends BaseActivity implements OnClickListener
         IntentFilter intentFilter = new IntentFilter();
         intentFilter.addAction("com.erp.sale.dataupdate");
         registerReceiver(sBroadcast, intentFilter);
-
+        mlistview.setFilterTouchEvents(false);
         mlistview.setMode(Mode.BOTH);
         mlistview.setOnRefreshListener(new OnRefreshListener2<ListView>() {
 
@@ -205,7 +204,6 @@ public class SaleSelectActivity extends BaseActivity implements OnClickListener
                 if (adapter != null) {
                     adapter.notifyDataSetChanged();
                 }
-//				rBar.setVisibility(View.VISIBLE);
                 mEmptyLayout.showLoading();
                 String where = CommonUtil.getSharedPreferences(
                         SaleSelectActivity.this, "where");
@@ -241,14 +239,15 @@ public class SaleSelectActivity extends BaseActivity implements OnClickListener
         });
 
         etSearch.addTextChangedListener(new TextWatcher() {
-
             @Override
             public void onTextChanged(CharSequence s, int start, int before,
                                       int count) {
                 if (!StringUtils.isEmpty(etSearch.getText().toString())) {
+                    mlistview.setMode(Mode.PULL_FROM_END);
                     adapter.getFilter().filter(etSearch.getText().toString());
                 } else {
                     adapter.getFilter().filter("");
+                    mlistview.setMode(Mode.BOTH);
                 }
             }
 
@@ -269,12 +268,8 @@ public class SaleSelectActivity extends BaseActivity implements OnClickListener
             @Override
             public void onItemClick(AdapterView<?> parent, View view,
                                     int position, long id) {
-                Log.i("gongpengming", "setOnItemClickListener");
                 String keyField = (String) rMap.get("keyField");
                 String pfField = (String) rMap.get("pfField");
-//				if (keyField == null || pfField == null) {// 没有明细记录
-//					ViewUtil.ToastMessage(SaleSelectActivity.this, "没有明细记录");
-//				} else {
                 //防错处理
                 if (StringUtils.isEmpty(pfField)) {
                     pfField = keyField;
@@ -293,24 +288,19 @@ public class SaleSelectActivity extends BaseActivity implements OnClickListener
                 }
                 Intent it_detail = null;
                 if ("SignMain".equals(from)) {
-
                     if ("Ask4Leave".equals(caller)) {
-
                         it_detail = new Intent(SaleSelectActivity.this,
                                 LeaveActivity.class);
                     }
                     if ("SpeAttendance".equals(caller)) {
-
                         it_detail = new Intent(SaleSelectActivity.this,
                                 ExtraLeaveActivity.class);
                     }
                     if ("FeePlease!CCSQ".equals(caller)) {
-
                         it_detail = new Intent(SaleSelectActivity.this,
                                 TravelActivity.class);
                     }
                     if ("Workovertime".equals(caller)) {
-
                         it_detail = new Intent(SaleSelectActivity.this,
                                 WorkExtraActivity.class);
                     }
@@ -323,16 +313,10 @@ public class SaleSelectActivity extends BaseActivity implements OnClickListener
                 it_detail.putExtra("caller", caller);
                 startActivity(it_detail);
             }
-//			}
         });
-
-//		bt_sure_commit.setOnClickListener(this);
-//		bt_clear_condition.setOnClickListener(this);
         mEmptyLayout.setShowEmptyButton(false);
         mEmptyLayout.setShowErrorButton(false);
         mEmptyLayout.setShowLoadingButton(false);
-//		reConditionBox.setOnCheckedChangeListener(new CheckedChangeEvent());
-
         final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
         fab.hide(true);
         new Handler().postDelayed(new Runnable() {

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

@@ -0,0 +1,15 @@
+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);
+    }
+}

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

@@ -57,6 +57,7 @@ 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.db.DBManager;
 import com.xzjmyk.pm.activity.ui.erp.entity.EmployeesEntity;
 import com.xzjmyk.pm.activity.ui.erp.entity.HrorgsEntity;
@@ -96,12 +97,12 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
     @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;
@@ -138,6 +139,9 @@ 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:
                 ((MainActivity) ct).startActivityForResult(new Intent(ct, CompanyContactsActivity.class), MainActivity.UPDATA_LIST);
                 break;
@@ -145,7 +149,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                 ct.startActivity(new Intent(ct, MyFriendActivity.class));
                 break;
             case R.id.my_friend_rl:
-                Intent intent= new Intent(ct, CommonFragmentActivity.class);
+                Intent intent = new Intent(ct, CommonFragmentActivity.class);
                 intent.putExtra("type", Constants.TYPE_CHAT_All);
                 ct.startActivity(intent);
                 break;
@@ -153,12 +157,13 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                 ToastUtil.showToast(getActivity(), "抱歉,该功能还未开发");
                 break;
             case R.id.my_friend_manage:
-                 intent= new Intent(ct, CommonFragmentActivity.class);
+                intent = new Intent(ct, CommonFragmentActivity.class);
                 intent.putExtra("type", Constants.TYPE_CHAT_MANAGE);
                 ct.startActivity(intent);
                 break;
         }
     }
+
     public LinksManFragment() {
         mSortFriends = new ArrayList<BaseSortModel<Friend>>();
         sortFrientSeach = new ArrayList<BaseSortModel<Friend>>();
@@ -171,7 +176,6 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         return R.layout.fragment_friend;
     }
 
-
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -179,6 +183,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         getActivity().registerReceiver(receiver, inputFilter);
         setHasOptionsMenu(true);
     }
+
     @Override
     protected void onCreateView(Bundle savedInstanceState, boolean createView) {
         if (createView) {
@@ -186,6 +191,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
             initView();
         }
     }
+
     private void getDataByDB(List<Friend> friend) {  //企业通讯录好友
         if (manager == null)
             manager = new DBManager(ct);
@@ -194,7 +200,6 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                 new String[]{master},
                 "whichsys=?");
         List<Friend> friends = new ArrayList<>();
-
         for (int i = 0; i < emList.size(); i++) {//企业通讯人员
             // friends.add(EnterChatAction(emList.get(i)));
             if (mLoginUserId.equals((emList.get(i).getEm_IMID() + ""))) {
@@ -214,7 +219,6 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                         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)));
                     }
                 }
@@ -287,22 +291,14 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
     private void initView() {
         mBind = getActivity().bindService(CoreService.getIntent(), mServiceConnection, Activity.BIND_AUTO_CREATE);
         headview = LayoutInflater.from(ct).inflate(R.layout.headview_cantacts_menus, null);
-
-
-
         mPullToRefreshListView = (PullToRefreshListView) findViewById(R.id.pull_refresh_list);
-        Log.i("wang", "headview:" + headview);
         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);
-
-//        ViewAlphaUtil.setViewAlpha(my_data_rl);
-//        ViewAlphaUtil.setViewAlpha(my_friend_rl);
-
+        chat_manage_rl = (RelativeLayout) headview.findViewById(R.id.my_friend_manage);
         local_video_rl.setOnClickListener(this);
         my_data_rl.setOnClickListener(this);
         my_friend_rl.setOnClickListener(this);
@@ -317,12 +313,10 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         search_edit.addTextChangedListener(new TextWatcher() {
             @Override
             public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
-
             }
 
             @Override
             public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
-
             }
 
             @Override
@@ -365,7 +359,6 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                 //linear_top_menu.setVisibility(View.VISIBLE);
             }
         });
-
         mAdapter = new FriendSortAdapter(getActivity(), mSortFriends);
         mPullToRefreshListView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
         mPullToRefreshListView.getRefreshableView().setAdapter(mAdapter);
@@ -378,9 +371,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                 loadData();
             }
         });
-
         mPullToRefreshListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-
             private Friend friend;   //l临时对象
 
             @Override
@@ -435,12 +426,16 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
     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);
@@ -513,14 +508,14 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
 
     private void isHideManageChatMenu() {
         //判断隐藏或者显示管理群
-        DBManager db=new DBManager(ct);
-        String master= CommonUtil.getSharedPreferences(ct, "erp_master");
-        String emCode=CommonUtil.getSharedPreferences(ct,"erp_username");
+        DBManager db = new DBManager(ct);
+        String master = CommonUtil.getSharedPreferences(ct, "erp_master");
+        String emCode = CommonUtil.getSharedPreferences(ct, "erp_username");
         //查找本地数据库,管理群存在,则不创建
-        List<HrorgsEntity> hlist=db.queryHrorgList(new String[]{master,emCode}, "whichsys=? and or_headmancode=?");
-        if (hlist.isEmpty()){
+        List<HrorgsEntity> hlist = db.queryHrorgList(new String[]{master, emCode}, "whichsys=? and or_headmancode=?");
+        if (hlist.isEmpty()) {
             chat_manage_rl.setVisibility(View.GONE);
-        }else{
+        } else {
             chat_manage_rl.setVisibility(View.VISIBLE);
         }
     }

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

@@ -272,7 +272,6 @@ public class GroupChatFragment extends EasyFragment {
 							if (datas != null && datas.size() > 0) {
 								for (int i=0;i<datas.size();i++) {
 									if (datas.get(i).getCategory() == 1) {
-
 									} else {
 										mMucRooms.add(datas.get(i));
 									}

+ 32 - 8
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/SettingActivity.java

@@ -6,6 +6,7 @@ import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.AsyncTask;
 import android.os.Bundle;
+import android.os.Environment;
 import android.text.TextUtils;
 import android.view.View;
 import android.widget.Button;
@@ -20,16 +21,16 @@ import com.baidu.autoupdatesdk.CPCheckUpdateCallback;
 import com.baidu.autoupdatesdk.UICheckUpdateCallback;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
-import com.xzjmyk.pm.activity.sp.UserSp;
-import com.xzjmyk.pm.activity.ui.erp.view.SwitchView;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.db.dao.VideoFileDao;
 import com.xzjmyk.pm.activity.helper.LoginHelper;
+import com.xzjmyk.pm.activity.sp.UserSp;
 import com.xzjmyk.pm.activity.ui.MainActivity;
 import com.xzjmyk.pm.activity.ui.base.ActionBackActivity;
 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.SwitchView;
 import com.xzjmyk.pm.activity.ui.tool.WebViewActivity;
 import com.xzjmyk.pm.activity.util.GetFileSizeUtil;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
@@ -50,10 +51,11 @@ public class SettingActivity extends ActionBackActivity implements View.OnClickL
     private SwitchView cb_task_reply;
 
     @ViewInject(R.id.rl_app_update)
-    private RelativeLayout  rl_app_update;
+    private RelativeLayout rl_app_update;
     @ViewInject(R.id.version_value)
-    private TextView  version_value;
+    private TextView version_value;
     private ProgressDialog dialog;
+    private RelativeLayout share_rl;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -68,9 +70,9 @@ public class SettingActivity extends ActionBackActivity implements View.OnClickL
     private void initView() {
         dialog = new ProgressDialog(this);
         dialog.setIndeterminate(true);
-
+        share_rl = (RelativeLayout) findViewById(R.id.share_rl);
         mExitBtn = (Button) findViewById(R.id.exit_btn);
-
+        share_rl.setVisibility(View.GONE);
         int isPush = PreferenceUtils.getInt(MyApplication.getInstance(), MainActivity.BAIDU_PUSH);
         if (isPush == -1) {//第一次进入没有配置
             cb_task_reply.setChecked(true);
@@ -79,7 +81,7 @@ public class SettingActivity extends ActionBackActivity implements View.OnClickL
         } else { //选择推送
             cb_task_reply.setChecked(true);
         }
-
+        share_rl.setOnClickListener(this);
         cb_task_reply.setOnCheckedChangeListener(new SwitchView.OnCheckedChangeListener() {
             @Override
             public void onCheckedChanged(View view, boolean isChecked) {
@@ -119,7 +121,7 @@ public class SettingActivity extends ActionBackActivity implements View.OnClickL
                     public void onClick(DialogInterface dialog, int which) {
                         UserSp.getInstance(mContext).clearUserInfo();
                         CommonUtil.clearSharedPreferences(mContext, "b2b_login");
-                        CommonUtil.clearSharedPreferences(mContext,"erp_login");
+                        CommonUtil.clearSharedPreferences(mContext, "erp_login");
                         LoginHelper.broadcastLogout(mContext);
                         SettingActivity.this.finish();
                     }
@@ -142,6 +144,9 @@ public class SettingActivity extends ActionBackActivity implements View.OnClickL
             case R.id.about_us_rl:// 关于我们
                 startActivity(new Intent(mContext, AboutActivity.class));
                 break;
+            case R.id.share_rl:
+                share();
+                break;
             case R.id.rl_app_update:
                 dialog.setMessage("正在检查更新,请稍等...");
                 dialog.show();
@@ -175,6 +180,25 @@ public class SettingActivity extends ActionBackActivity implements View.OnClickL
         }
     }
 
+    private void share() {
+//        shareMsg("SettingActivity","Test 分享系统本身功能标题","Test 分享系统本身功能内容","https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=4236942158,2307642402&fm=116&gp=0.jpg");
+        shareSingleImage();
+    }
+
+    //分享单张图片
+    public void shareSingleImage() {
+        String imagePath = Environment.getExternalStorageDirectory() + "/raw/test.jpg";
+        //由文件得到uri
+//        Uri imageUri =Uri.parse(imagePath);
+        String str = "android.resource://" + getApplicationContext().getPackageName() + "/" + R.raw.test;
+//        Uri imageUri=  Uri.parse("android.resource://" + getApplicationContext().getPackageName() + "/" + R.raw.test);
+//        Intent shareIntent = new Intent();
+//        shareIntent.setAction(Intent.ACTION_SEND);
+//        shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
+//        shareIntent.setType("image/*");
+//        startActivity(Intent.createChooser(shareIntent, "分享到"));
+    }
+
     private void clearCache() {
         String filePath = MyApplication.getInstance().mAppDir;
         //删除文件

+ 5 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/ChatActivity.java

@@ -428,6 +428,11 @@ public class ChatActivity extends ActionBackActivity
         startActivity(intent);
     }
 
+    @Override
+    public void onFriendAvatarLongClick(String friendUserId) {
+
+    }
+
     @Override
     public void onMessageClick(ChatMessage chatMessage) {//点击消息
 

+ 4 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MucChatActivity.java

@@ -480,14 +480,16 @@ public class MucChatActivity extends ActionBackActivity
         startActivity(intent);
     }
 
+    @Override
+    public void onFriendAvatarLongClick(String friendUserId) {
+        mChatBottomView.addEditView("@"+friendUserId.trim());
+    }
     @Override
     public void onMessageClick(ChatMessage chatMessage) {
     }
-
     @Override
     public void onMessageLongClick(ChatMessage chatMessage) {
     }
-
     @Override
     public void onEmptyTouch() {
         mChatBottomView.reset();

+ 21 - 12
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/RoomInfoActivity.java

@@ -12,6 +12,7 @@ import android.os.IBinder;
 import android.os.Message;
 import android.text.InputFilter;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
 import android.view.View;
@@ -124,6 +125,7 @@ public class RoomInfoActivity extends BaseActivity {
         // 绑定服务
         mXmppBind = bindService(CoreService.getIntent(), mXmppServiceConnection, BIND_AUTO_CREATE);
         initView();
+        Log.i("gongpengming","第一次进 loadMembers");
         loadMembers();
     }
 
@@ -161,6 +163,7 @@ public class RoomInfoActivity extends BaseActivity {
         mDataLoadView.setLoadingEvent(new DataLoadView.LoadingEvent() {
             @Override
             public void load() {
+                Log.i("gongpengming","第二次进 loadMembers");
                 loadMembers();
             }
         });
@@ -335,18 +338,22 @@ public class RoomInfoActivity extends BaseActivity {
             findViewById(R.id.banned_voice_rl).setVisibility(View.VISIBLE);
             findViewById(R.id.banned_delete_rl).setVisibility(View.GONE);
             findViewById(R.id.exit_room_rl).setVisibility(View.VISIBLE);
-            if (CommonUtil.getSharedPreferences(mContext, "erp_commpany").equals(compName[0])) {
-                btnExit.setText("删除商务群");
-                btnExit.setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View view) {
-                        deleteRoom(mRoom);
-                    }
-                });
-            } else {
-                btnExit.setText("用户未在当前账套上");
-                btnExit.setClickable(false);
-                btnExit.setVisibility(View.GONE);
+            btnExit.setText("删除商务群");
+            btnExit.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View view) {
+                    deleteRoom(mRoom);
+                }
+            });
+            if (mucRoom.getCategory() == 1) {
+                if (CommonUtil.getSharedPreferences(mContext, "erp_commpany").equals(compName[0])) {
+                    btnExit.setText("删除商务群");
+
+                } else {
+                    btnExit.setText("用户未在当前账套上");
+                    btnExit.setClickable(false);
+                    btnExit.setVisibility(View.GONE);
+                }
             }
             findViewById(R.id.room_name_rl).setOnClickListener(new View.OnClickListener() {
                 @Override
@@ -1020,6 +1027,7 @@ public class RoomInfoActivity extends BaseActivity {
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
         if (requestCode == 1 && resultCode == RESULT_OK) {
+            Log.i("gongpengming","第三次进 loadMembers");
             loadMembers();
         }
     }
@@ -1040,6 +1048,7 @@ public class RoomInfoActivity extends BaseActivity {
         com.xzjmyk.pm.activity.ui.erp.util.ViewUtil.httpSendRequest(
                 mContext, url, params, handler, headers, 1, null, null, "get");
     }
+
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {

+ 13 - 7
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/ChatContentView.java

@@ -269,6 +269,8 @@ public class ChatContentView extends PullDownListView implements OnMediaStateCha
 
         public void onFriendAvatarClick(String friendUserId);
 
+        void onFriendAvatarLongClick(String friendUserId);
+
         public void onMessageClick(ChatMessage chatMessage);
 
         public void onMessageLongClick(ChatMessage chatMessage);
@@ -604,7 +606,7 @@ public class ChatContentView extends PullDownListView implements OnMediaStateCha
                 });
             } else {
                 final String fromUserId = message.getFromUserId();
-
+                final String fromUserName = message.getFromUserName();
                 if (fromUserId.equals(Friend.ID_SYSTEM_MESSAGE)) {// 好友是系统账号,那么显示系统头像
                     contentViewHolder.chat_head_iv.setImageResource(R.drawable.im_notice);
                 } else {// 其他
@@ -617,6 +619,13 @@ public class ChatContentView extends PullDownListView implements OnMediaStateCha
                         mMessageEventListener.onFriendAvatarClick(fromUserId);
                     }
                 });
+                contentViewHolder.chat_head_iv.setOnLongClickListener(new OnLongClickListener() {
+                    @Override
+                    public boolean onLongClick(View view) {
+                        mMessageEventListener.onFriendAvatarLongClick(fromUserName);
+                        return true;
+                    }
+                });
             }
 
             // 显示昵称
@@ -634,9 +643,9 @@ public class ChatContentView extends PullDownListView implements OnMediaStateCha
 //
 //                        getUserByUserId(message.getFromUserId(), contentViewHolder);
 //                    } else {
-                        contentViewHolder.nick_name.setText(friend == null ? message.getFromUserName() :
-                                (friend.getRemarkName() != null ? friend.getRemarkName() :
-                                        friend.getNickName()));
+                    contentViewHolder.nick_name.setText(friend == null ? message.getFromUserName() :
+                            (friend.getRemarkName() != null ? friend.getRemarkName() :
+                                    friend.getNickName()));
 //                    }
                 }
             }
@@ -1082,9 +1091,6 @@ public class ChatContentView extends PullDownListView implements OnMediaStateCha
                         }
 
 
-
-
-
                     }
                 });
             }

+ 30 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/HeadImageView.java

@@ -0,0 +1,30 @@
+package com.xzjmyk.pm.activity.view;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+
+/**
+ * Created by gongpm on 2016/5/25.
+ */
+public class HeadImageView extends View {
+
+    public HeadImageView(Context context) {
+        this(context, null);
+    }
+
+    public HeadImageView(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public HeadImageView(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        init();
+    }
+
+    private void init() {
+
+
+    }
+
+}

+ 0 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/xmpp/CoreService.java

@@ -71,7 +71,6 @@ public class CoreService extends Service {
         int messageType = chatMessage.getType();
         boolean isNotification = PreferenceUtils.getBoolean(getApplicationContext(), Constants.IS_NOTIFICATION);//进行通知
         isNotification= CommonUtil.isBackground(getApplicationContext());
-        Log.i("Arison","isNotification:"+isNotification);
         if (!isNotification) {
             return;
         }
@@ -371,7 +370,6 @@ public class CoreService extends Service {
         }
         //		mConnectionManager.presenceOnline();
         /* 获取离线消息 */
-        Log.e("roamer", "获取离线消息去了");
         mConnectionManager.handOfflineMessage();
     }
 

+ 3 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/xmpp/XChatManager.java

@@ -226,9 +226,9 @@ public class XChatManager {
 	/**
 	 * 保存接收到的聊天信息(单聊)
 	 * 
-	 * @param packetId
-	 * @param fromUserId
-	 * @param messageBody
+	 * @param
+	 * @param
+	 * @param
 	 * @param isRead
 	 * @return
 	 */

BIN
WeiChat/src/main/res/drawable-hdpi/tingyue.png


BIN
WeiChat/src/main/res/drawable-xhdpi/bg_chat.jpg


+ 26 - 0
WeiChat/src/main/res/layout/activity_setting.xml

@@ -168,6 +168,32 @@
                     android:background="@drawable/set_list_next"
                     android:contentDescription="@string/app_name" />
             </RelativeLayout>
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:background="@color/item_line"/>
+            <RelativeLayout
+                android:id="@+id/share_rl"
+                style="@style/IMTbleLine">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_centerVertical="true"
+                    android:gravity="center"
+                    android:text=" 分    享"
+                    android:textColor="@color/black"
+                    android:textSize="14sp" />
+
+                <ImageView
+                    android:layout_width="@dimen/next_width"
+                    android:layout_height="@dimen/next_height"
+                    android:alpha="0.26"
+                    android:layout_alignParentRight="true"
+                    android:layout_centerVertical="true"
+                    android:background="@drawable/set_list_next"
+                    android:contentDescription="@string/app_name" />
+            </RelativeLayout>
             <View
                 android:layout_width="match_parent"
                 android:layout_height="@dimen/line"

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

@@ -0,0 +1,18 @@
+<?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>

+ 2 - 3
WeiChat/src/main/res/layout/chat.xml

@@ -3,7 +3,6 @@
     android:id="@+id/root_view"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
-    android:background="@drawable/bg_main"
     android:orientation="vertical">
 
     <RelativeLayout
@@ -27,7 +26,7 @@
             android:layout_height="fill_parent"
             android:layout_above="@+id/bottom_fl"
             android:layout_below="@+id/auth_state_tip"
-            android:background="@drawable/bg_main"
+            android:background="@drawable/bg_chat"
             android:cacheColorHint="#00000000"
             android:divider="#00000000"
             android:fadingEdge="none" />
@@ -51,8 +50,8 @@
                 android:id="@+id/botton_ll"
                 android:layout_width="match_parent"
                 android:layout_height="30dp"
-                android:orientation="horizontal"
                 android:background="@color/item_color1"
+                android:orientation="horizontal"
                 android:visibility="gone">
 
                 <ImageView

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

@@ -29,7 +29,6 @@
                 android:layout_centerVertical="true"
                 android:layout_marginLeft="10dp"
                 android:layout_marginRight="10dp"
-                android:layout_toLeftOf="@+id/arrow_img"
                 android:layout_toRightOf="@+id/avatar_img">
 
                 <TextView

+ 40 - 6
WeiChat/src/main/res/layout/headview_cantacts_menus.xml

@@ -66,16 +66,15 @@
             android:background="@drawable/set_list_next"
             android:contentDescription="@string/app_name"
             android:visibility="gone" />
+
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/line"
             android:layout_alignParentBottom="true"
-            android:background="@color/item_line"
-             />
+            android:background="@color/item_line" />
     </RelativeLayout>
 
 
-
     <RelativeLayout
         android:id="@+id/my_friends_rl"
         style="@style/IMTbleLine_UP"
@@ -135,6 +134,7 @@
             android:background="@drawable/set_list_next"
             android:contentDescription="@string/app_name"
             android:visibility="gone" />
+
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/line"
@@ -143,7 +143,6 @@
     </RelativeLayout>
 
 
-
     <RelativeLayout
         android:id="@+id/my_friend_rl"
         style="@style/IMTbleLine_UP">
@@ -176,16 +175,51 @@
             android:background="@drawable/set_list_next"
             android:contentDescription="@string/app_name"
             android:visibility="gone" />
+
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/line"
             android:layout_alignParentBottom="true"
             android:background="@color/item_line" />
     </RelativeLayout>
+    <RelativeLayout
+        android:id="@+id/my_tingyue_rl"
+        style="@style/IMTbleLine_UP">
 
+        <ImageView
+            android:id="@+id/tingyue_avatar_img"
+            android:layout_width="38dp"
+            android:layout_height="38dp"
+            android:layout_centerVertical="true"
+            android:contentDescription="@string/app_name"
+            android:src="@drawable/tingyue" />
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="12dp"
+            android:layout_toRightOf="@+id/tingyue_avatar_img"
+            android:drawablePadding="10dp"
+            android:gravity="center"
+            android:text="订阅号"
+            android:textColor="@color/text_main"
+            android:textSize="14sp" />
 
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:background="@drawable/set_list_next"
+            android:contentDescription="@string/app_name"
+            android:visibility="gone" />
 
-
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/line"
+            android:layout_alignParentBottom="true"
+            android:background="@color/item_line" />
+    </RelativeLayout>
 
     <RelativeLayout
         android:id="@+id/local_video_rl"
@@ -196,7 +230,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_centerVertical="true"
-            android:drawableLeft="@drawable/bess"
+            android:drawableLeft="@drawable/tingyue"
             android:drawablePadding="10dp"
             android:gravity="center"
             android:text="商务伙伴"

BIN
WeiChat/src/main/res/raw/test.jpg