Эх сурвалжийг харах

多文件发送闪退,视频多次保存

liuzhenxing1118 3 жил өмнө
parent
commit
20e81fa21f

+ 16 - 8
app/src/main/java/com/xplora/xpchat/activity/PagerActivity.java

@@ -380,13 +380,18 @@ public class PagerActivity extends BaseActivity implements Listener.PlayListener
                     if (result != 1)
                         continue;
 
-                    if (inPath.contains(".jpg")) {
-                        actionPhotoPath(inPath);
-                    } else if (inPath.contains(".mp4")) {
-                        actionVideoPath(inPath);
-                    } else {
-                        Log.d(TAG, "onAlbumCallback: not match");
-                    }
+                    new Handler().postDelayed(new Runnable() {
+                        @Override
+                        public void run() {
+                            if (inPath.contains(".jpg")) {
+                                actionPhotoPath(inPath);
+                            } else if (inPath.contains(".mp4")) {
+                                actionVideoPath(inPath);
+                            } else {
+                                Log.d(TAG, "onAlbumCallback: not match");
+                            }
+                        }
+                    }, 20L *i);
                 }
             }
         } catch (Exception e) {
@@ -880,7 +885,10 @@ public class PagerActivity extends BaseActivity implements Listener.PlayListener
             if (bean.type == Constant.MESSAGE_TYPE_PHOTO) {
                 result = FilePathUtils.saveImage(this, bean.filePath);
             } else if (bean.type == Constant.MESSAGE_TYPE_VIDEO) {
-                result = FilePathUtils.saveVideo(this, bean.videoPath);
+                String outVideoPath = FilePathUtils.copyFile(bean.videoPath, FilePathUtils.createFilePath(Constant.E_FILE_TYPE.VIDEO));
+                if (outVideoPath.length() > 0) {
+                    result = FilePathUtils.saveVideo(this, outVideoPath);
+                }
             }
             boolean finalResult = result;
             PagerActivity.this.runOnUiThread(()->{

+ 2 - 2
app/src/main/java/com/xplora/xpchat/adapter/ChatListAdapter.java

@@ -137,8 +137,8 @@ public class ChatListAdapter extends ArrayAdapter<MessageBean> {
 
     public void setData(List<MessageBean> items, boolean isNotify) {
         ArrayList<MessageBean> dataList = new ArrayList<>();
-        for (MessageBean bean: items) {
-            dataList.add(bean.copy());
+        for (int i = 0; i < items.size(); i++) {
+            dataList.add(items.get(i).copy());
         }
         mBaseObjects.clear();
         mBaseObjects.addAll(dataList);