Ver código fonte

闪退问题

gongpm 9 anos atrás
pai
commit
09dcb53676

+ 99 - 113
WeiChat/src/main/java/com/xzjmyk/pm/activity/helper/UploadEngine.java

@@ -12,130 +12,116 @@ import com.xzjmyk.pm.activity.bean.UploadFileResult;
 import com.xzjmyk.pm.activity.bean.message.ChatMessage;
 import com.xzjmyk.pm.activity.bean.message.XmppMessage;
 import com.xzjmyk.pm.activity.db.dao.ChatMessageDao;
-import com.xzjmyk.pm.activity.util.FileSizeUtil;
 import com.xzjmyk.pm.activity.util.ImageUtil;
 import com.xzjmyk.pm.activity.volley.Result;
 
 import org.apache.http.Header;
 
-import java.io.File;
 import java.io.FileNotFoundException;
 
 /**
  * 专门用来上传的
- * 
- * 
  */
 public class UploadEngine {
-	public interface ImFileUploadResponse {
-		void onSuccess(String toUserId, ChatMessage message);
-
-		void onFailure(String toUserId, ChatMessage message);
-	}
-
-	public static final void uploadImFile(final String toUserId, final ChatMessage message, final ImFileUploadResponse response) {
-		Log.d("roamer", "开始上传...");
-		RequestParams params = new RequestParams();
-		final String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
-		params.put("userId", loginUserId);
-		
-		params.put("access_token", MyApplication.getInstance().mAccessToken);
+    public interface ImFileUploadResponse {
+        void onSuccess(String toUserId, ChatMessage message);
+
+        void onFailure(String toUserId, ChatMessage message);
+    }
+
+    public static final void uploadImFile(final String toUserId, final ChatMessage message, final ImFileUploadResponse response) {
+        RequestParams params = new RequestParams();
+        final String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
+        params.put("userId", loginUserId);
+        params.put("access_token", MyApplication.getInstance().mAccessToken);
 //		params.put("uploadFlag","3");
-		Log.d("roamer", "userId..."+loginUserId);
-		Log.d("roamer", "access_token..."+MyApplication.getInstance().mAccessToken);
-		try {
-			params.put("file1", ImageUtil.compressBitmapToFile(
-					message.getFilePath(),100,300,300));
-			Log.d("roamer", "开始上传...类型" + message.getType() + "...." + message.getFilePath()
-					+ "文件大小:" + FileSizeUtil.getFileOrFilesSize(message.getFilePath(), FileSizeUtil.SIZETYPE_MB) + "MB");
-            Log.i("Arison","UploadEngine:uploadImFile:49: 压缩文件大小:"
-							+ FileSizeUtil.getFileOrFilesSize(ImageUtil.compressBitmapToFile(
-							message.getFilePath(),100,300,300).getAbsolutePath(),FileSizeUtil.SIZETYPE_MB)
-			);
-		} catch (FileNotFoundException e) {
-			e.printStackTrace();
-		}
-		AsyncHttpClient client = new AsyncHttpClient();
-		
-		
-		client.post(MyApplication.getInstance().getConfig().UPLOAD_URL, params, new AsyncHttpResponseHandler() {
-			
-			@Override
-			public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
-				String url = null;
-				if (arg0 == 200) {
-					UploadFileResult result = null;
-					try {
-						result = JSON.parseObject(new String(arg2), UploadFileResult.class);
-					} catch (Exception e) {
-						e.printStackTrace();
-					}
-					if (result == null || result.getResultCode() != Result.CODE_SUCCESS || result.getData() == null
-							|| result.getSuccess() != result.getTotal()) {
-
-					} else {
-						UploadFileResult.Data data = result.getData();
-						if (message.getType() == XmppMessage.TYPE_IMAGE) {
-							if (data.getImages() != null && data.getImages().size() > 0) {
-								url = data.getImages().get(0).getOriginalUrl();
-							}
-						} else if (message.getType() == XmppMessage.TYPE_VOICE) {
-							if (data.getAudios() != null && data.getAudios().size() > 0) {
-								url = data.getAudios().get(0).getOriginalUrl();
-							}
-						} else if (message.getType() == XmppMessage.TYPE_VIDEO) {
-							if (data.getVideos() != null && data.getVideos().size() > 0) {
-								url = data.getVideos().get(0).getOriginalUrl();
-							}
-						} else if (message.getType() == XmppMessage.TYPE_FILE){
-							if (data.getFiles() != null && data.getFiles().size() > 0) {
-								url = data.getFiles().get(0).getOriginalUrl();
-							}else if (data.getVideos() != null && data.getVideos().size() > 0) {
-								url = data.getVideos().get(0).getOriginalUrl();
-							}else if (data.getAudios() != null && data.getAudios().size() > 0) {
-								url = data.getAudios().get(0).getOriginalUrl();
-							}else if (data.getImages() != null && data.getImages().size() > 0) {
-								url = data.getImages().get(0).getOriginalUrl();
-							}else if(data.getOthers()!=null&&data.getOthers().size()>0){
-								url=data.getOthers().get(0).getOriginalUrl();
-							}else {
-							}
-						}
-					}
-				}
-				
-				Log.d("roamer", "file url:"+url);
-
-				if (TextUtils.isEmpty(url)) {
-					if (response != null) {
-						response.onFailure(toUserId, message);
-						ChatMessageDao.getInstance().updateMessageUploadState(loginUserId, toUserId, message.get_id(), false, url);
-						Log.d("roamer", "url为空,让其响应为失败");
-					}
-				} else {
-					ChatMessageDao.getInstance().updateMessageUploadState(loginUserId, toUserId, message.get_id(), true, url);
-					if (response != null) {
-						Log.d("roamer", "上传文件成功了");
-						message.setContent(url);
-						message.setUpload(true);
-						response.onSuccess(toUserId, message);
-					}
-				}
-
-			}
-
-			@Override
-			public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
-				// 失败就不用更新数据库了,默认值就是false
-				// ChatMessageDao.getInstance().updateMessageSendState(loginUserId,
-				// toUserId, msg_id, false);
-				Log.d("roamer", "上传失败了...");
-				Log.d("roamer", arg3.toString());
-				if (response != null) {
-					response.onFailure(toUserId, message);
-				}
-			}
-		});
-	}
+        try {
+            if (XmppMessage.TYPE_IMAGE == message.getType())
+                params.put("file1", ImageUtil.compressBitmapToFile(message.getFilePath(), 100, 300, 300));
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        }
+        AsyncHttpClient client = new AsyncHttpClient();
+
+
+        client.post(MyApplication.getInstance().getConfig().UPLOAD_URL, params, new AsyncHttpResponseHandler() {
+
+            @Override
+            public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {
+                String url = null;
+                if (arg0 == 200) {
+                    UploadFileResult result = null;
+                    try {
+                        result = JSON.parseObject(new String(arg2), UploadFileResult.class);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                    if (result == null || result.getResultCode() != Result.CODE_SUCCESS || result.getData() == null
+                            || result.getSuccess() != result.getTotal()) {
+
+                    } else {
+                        UploadFileResult.Data data = result.getData();
+                        if (message.getType() == XmppMessage.TYPE_IMAGE) {
+                            if (data.getImages() != null && data.getImages().size() > 0) {
+                                url = data.getImages().get(0).getOriginalUrl();
+                            }
+                        } else if (message.getType() == XmppMessage.TYPE_VOICE) {
+                            if (data.getAudios() != null && data.getAudios().size() > 0) {
+                                url = data.getAudios().get(0).getOriginalUrl();
+                            }
+                        } else if (message.getType() == XmppMessage.TYPE_VIDEO) {
+                            if (data.getVideos() != null && data.getVideos().size() > 0) {
+                                url = data.getVideos().get(0).getOriginalUrl();
+                            }
+                        } else if (message.getType() == XmppMessage.TYPE_FILE) {
+                            if (data.getFiles() != null && data.getFiles().size() > 0) {
+                                url = data.getFiles().get(0).getOriginalUrl();
+                            } else if (data.getVideos() != null && data.getVideos().size() > 0) {
+                                url = data.getVideos().get(0).getOriginalUrl();
+                            } else if (data.getAudios() != null && data.getAudios().size() > 0) {
+                                url = data.getAudios().get(0).getOriginalUrl();
+                            } else if (data.getImages() != null && data.getImages().size() > 0) {
+                                url = data.getImages().get(0).getOriginalUrl();
+                            } else if (data.getOthers() != null && data.getOthers().size() > 0) {
+                                url = data.getOthers().get(0).getOriginalUrl();
+                            } else {
+                            }
+                        }
+                    }
+                }
+
+                Log.d("roamer", "file url:" + url);
+
+                if (TextUtils.isEmpty(url)) {
+                    if (response != null) {
+                        response.onFailure(toUserId, message);
+                        ChatMessageDao.getInstance().updateMessageUploadState(loginUserId, toUserId, message.get_id(), false, url);
+                        Log.d("roamer", "url为空,让其响应为失败");
+                    }
+                } else {
+                    ChatMessageDao.getInstance().updateMessageUploadState(loginUserId, toUserId, message.get_id(), true, url);
+                    if (response != null) {
+                        Log.d("roamer", "上传文件成功了");
+                        message.setContent(url);
+                        message.setUpload(true);
+                        response.onSuccess(toUserId, message);
+                    }
+                }
+
+            }
+
+            @Override
+            public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) {
+                // 失败就不用更新数据库了,默认值就是false
+                // ChatMessageDao.getInstance().updateMessageSendState(loginUserId,
+                // toUserId, msg_id, false);
+                Log.d("roamer", "上传失败了...");
+                Log.d("roamer", arg3.toString());
+                if (response != null) {
+                    response.onFailure(toUserId, message);
+                }
+            }
+        });
+    }
 
 }

+ 4 - 6
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBManager.java

@@ -59,7 +59,7 @@ public class DBManager {
     }
 
 
-    public void updateHrogrRemark(int or_id,int or_remark,String master){
+    public void updateHrogrRemark(int or_id, int or_remark, String master) {
         String sql = "update hrorgs"
                 + " set or_remark=?"
                 + " where or_id=? and whichsys=?;";
@@ -119,7 +119,7 @@ public class DBManager {
             sta.bindString(7, entity.getEM_MOBILE() == null ? "未填写" : entity.getEM_MOBILE());
             sta.bindString(8, String.valueOf(entity.getEM_UU()));
             sta.bindString(9, entity.getCOMPANY());
-            sta.bindString(10, entity.getWHICHSYS());
+            sta.bindString(10, entity.getWHICHSYS() == null ? "" : entity.getWHICHSYS());
             sta.bindLong(11, entity.getEm_defaultorid());
             sta.bindString(12, entity.getFLAG());
             sta.bindString(13, String.valueOf(entity.getEm_IMID()));
@@ -129,7 +129,6 @@ public class DBManager {
         db.endTransaction();
     }
 
-
     /**
      * @author Administrator
      * @功能:增加员工信息---批量
@@ -254,7 +253,6 @@ public class DBManager {
             hrorgItem.setOr_subof(Integer.valueOf(cursor.getString(cursor.getColumnIndex("or_subof"))));
             hlist.add(hrorgItem);
         }
-
         table = "employees";
         columns = null;
         selection = "em_defaultorid=? and WHICHSYS=?";
@@ -331,7 +329,7 @@ public class DBManager {
      * Hrorgs连接两个表的数据模型
      */
     public List<HrorgsEntity> queryHrorgList(String[] selectionArgs, String selection) {
-        List <HrorgsEntity> hrorgsEntities =new ArrayList<>();
+        List<HrorgsEntity> hrorgsEntities = new ArrayList<>();
         String table = "hrorgs";
         String[] columns = null;
         //String[] selectionArgs = new String[]{key};
@@ -340,7 +338,7 @@ public class DBManager {
         String orderBy = null;
         Cursor cursor = db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);
         while (cursor.moveToNext()) {
-            HrorgsEntity  hrorgsEntity = new HrorgsEntity();
+            HrorgsEntity hrorgsEntity = new HrorgsEntity();
             hrorgsEntity.setOr_subof(Integer.valueOf(cursor.getString(cursor.getColumnIndex("or_subof"))));
             hrorgsEntity.setOr_code(cursor.getString(cursor.getColumnIndex("or_code")));
             hrorgsEntity.setFlag(cursor.getString(cursor.getColumnIndex("or_flag")));

+ 7 - 6
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/RoomInfoActivity.java

@@ -381,12 +381,7 @@ public class RoomInfoActivity extends BaseActivity {
             findViewById(R.id.banned_delete_rl).setVisibility(View.GONE);
             findViewById(R.id.exit_room_rl).setVisibility(View.VISIBLE);
             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("删除商务群");
@@ -483,6 +478,12 @@ public class RoomInfoActivity extends BaseActivity {
                 }
             });
         }
+        btnExit.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                deleteRoom(mRoom);
+            }
+        });
         findViewById(R.id.exit_room_rl).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {//成员退出房间

+ 3 - 9
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/ImageUtil.java

@@ -28,10 +28,7 @@ public class ImageUtil {
      * 获取到照片数据后,读取它的旋转信息,如果不是0,
      * 说明这个照片已经被旋转过了,那么再使用android.graphics.Matrix将照片旋转回去即可。*/
 
-    /**
-     * @author Administrator
-     * @功能:兼容性三星等手机旋转问题+等比例缩放
-     */
+
     public static Bitmap roateBitmapAndScale(Bitmap bitmap, int degree, int newWidth ,int newHeight ) {
         if (degree == 0) {
             return bitmap;
@@ -156,7 +153,7 @@ public class ImageUtil {
 
     /**
      * 压缩已存在的图片对象,并返回压缩后的图片(压缩质量,压缩尺寸函数)
-     * @param bitmap :图片对象
+     * @param path :图片对象
      * @param quality:1-100;100表示不质量压缩
      * @param reqsW:压缩宽度
      * @param reqsH:压缩高度
@@ -168,7 +165,6 @@ public class ImageUtil {
             ByteArrayOutputStream baos = new ByteArrayOutputStream();//放入内存
             bitmap.compress(Bitmap.CompressFormat.PNG, quality, baos);//压缩质量
             byte[] bts = baos.toByteArray();
-           // Bitmap res = compressBitmapWithByte(bts, reqsW, reqsH);//压缩尺寸
             Bitmap res=bytes2Bimap(bts);
             baos.close();
             return res;
@@ -181,7 +177,7 @@ public class ImageUtil {
 
     /**
      * 压缩已存在的图片对象,并返回压缩后的图片文件(压缩质量,压缩尺寸函数)
-     * @param bitmap :图片对象
+     * @param  :图片对象
      * @param quality:1-100;100表示不质量压缩
      * @param reqsW:压缩宽度
      * @param reqsH:压缩高度
@@ -254,9 +250,7 @@ public class ImageUtil {
         options.inJustDecodeBounds = true;
         BitmapFactory.decodeFile(filePath, options);
         options.inSampleSize =   calculateInSampleSize(options, reqsW, reqsH);
-        Log.i("Arison", "ImageUtil:compressBitmapWithFilePath:254:calculateInSampleSize(options, reqsW, reqsH)=" + calculateInSampleSize(options, reqsW, reqsH));
         options.inJustDecodeBounds = false;
-        Log.i("Arison","ImageUtil:compressBitmapWithFilePath:257:压缩尺寸原图大小:"+FileSizeUtil.getFileOrFilesSize(filePath,FileSizeUtil.SIZETYPE_MB)+"MB");
         return BitmapFactory.decodeFile(filePath, options);
     }
 

+ 5 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/ChatContentView.java

@@ -836,7 +836,11 @@ public class ChatContentView extends PullDownListView implements OnMediaStateCha
                         Bitmap bitmap = ImageLoader.getInstance().getMemoryCache().get(filePath);
                         if (bitmap == null || bitmap.isRecycled()) {
                             bitmap = ThumbnailUtils.createVideoThumbnail(filePath, Thumbnails.MINI_KIND);
-                            ImageLoader.getInstance().getMemoryCache().put(filePath, bitmap);
+                            if (filePath == null || bitmap == null){
+
+                            }else{
+                                ImageLoader.getInstance().getMemoryCache().put(filePath, bitmap);
+                            }
                         }
                         if (bitmap != null && !bitmap.isRecycled()) {
                             videoViewHolder.chat_thumb.setImageBitmap(bitmap);
@@ -868,9 +872,7 @@ public class ChatContentView extends PullDownListView implements OnMediaStateCha
                     longView = cardViewHolder.relativeLayout;
                     break;
                 case XmppMessage.TYPE_FILE:
-                    Log.d("roamer", "....TYPE_FILE要显示了...." + message.getContent());
                     FileViewHolder fileViewHolder = (FileViewHolder) contentViewHolder;
-
                     if (!message.isMySend()) {
                         fileViewHolder.file_progress.setVisibility(GONE);
                         if (!message.isRead()) {