session页添加上传自动刷新

chengzhenyu vor 8 Jahren
Ursprung
Commit
d6e1294bae

+ 30 - 0
app/src/main/java/ai/pai/lensman/db/DBService.java

@@ -250,4 +250,34 @@ public class DBService {
250 250
         return photoBean;
251 251
     }
252 252
 
253
+    public boolean isPhotoUploaded(long photoId){
254
+        SQLiteDatabase db = null;
255
+        Cursor c = null;
256
+        PhotoBean photoBean = null;
257
+
258
+        synchronized (DB_LOCK) {
259
+            try {
260
+                db = dbHelper.getReadableDatabase();
261
+                db.beginTransaction();
262
+                c = db.rawQuery("select * from " + DBHelper.PHOTO_INFO_TABLE + " where "
263
+                        + DBHelper.PHOTO_INFO_COLUMNS.PHOTO_ID + " = '" + photoId + "'", null);
264
+                if (c.moveToNext()) {
265
+                    photoBean = cursor2PhotoBean(c);
266
+                }
267
+                db.setTransactionSuccessful();
268
+            } catch (Exception e) {
269
+                LogHelper.d(TAG, "dbservice getGroupInfoByGroupId error happen " + e);
270
+            } finally {
271
+                try {
272
+                    db.endTransaction();
273
+                } catch (Exception e) {
274
+                    e.printStackTrace();
275
+                }
276
+                closeCursorAndDB(c, db);
277
+            }
278
+        }
279
+
280
+        return (photoBean!=null && photoBean.uploadStatus==PhotoBean.UploadStatus.STATUS_SUCCESS);
281
+    }
282
+
253 283
 }

+ 2 - 1
app/src/main/java/ai/pai/lensman/session/PhotoRecyclerAdapter.java

@@ -19,6 +19,7 @@ import java.util.ArrayList;
19 19
 import ai.pai.lensman.App;
20 20
 import ai.pai.lensman.R;
21 21
 import ai.pai.lensman.bean.PhotoBean;
22
+import ai.pai.lensman.db.DBService;
22 23
 import ai.pai.lensman.service.UploadService;
23 24
 import ai.pai.lensman.utils.Constants;
24 25
 import ai.pai.lensman.utils.ImageLoaderUtils;
@@ -104,7 +105,7 @@ public class PhotoRecyclerAdapter extends RecyclerView.Adapter<PhotoRecyclerAdap
104 105
         }
105 106
         long timeLeft = 30-(System.currentTimeMillis()-item.captureTime)/1000;
106 107
 
107
-        if(timeLeft<0){
108
+        if(timeLeft<0|| DBService.getInstance().isPhotoUploaded(item.photoId)){
108 109
             item.canDelete = false;
109 110
             holder.autoUploadHintText.setVisibility(View.GONE);
110 111
         }else{

+ 3 - 20
app/src/main/java/ai/pai/lensman/session/SessionActivity.java

@@ -40,31 +40,13 @@ public class SessionActivity extends BaseActivity implements SessionContract.Vie
40 40
     private PhotoRecyclerAdapter adapter;
41 41
     private  SessionBean sessionBean;
42 42
     private SessionContract.Presenter presenter;
43
-    private int swipingPosition = -1;
44 43
     private static final int JOIN_REQUEST_CODE = 3002;
45 44
 
46
-    private ItemTouchHelper.Callback mCallback = new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN,
47
-            ItemTouchHelper.LEFT|ItemTouchHelper.RIGHT) {
45
+    private ItemTouchHelper.Callback mCallback = new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.RIGHT|ItemTouchHelper.LEFT) {
48 46
 
49 47
         @Override
50 48
         public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
51 49
             super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
52
-            int position = viewHolder.getAdapterPosition();
53
-            PhotoBean photoBean = adapter.getPhotoAt(position);
54
-            if(photoBean==null||swipingPosition!=position){
55
-                viewHolder.itemView.setAlpha(1);
56
-                viewHolder.itemView.setTranslationX(0);
57
-                viewHolder.itemView.setScaleX(1);
58
-                viewHolder.itemView.setScaleY(1);
59
-                return;
60
-            }
61
-            if(actionState == ItemTouchHelper.ACTION_STATE_SWIPE &&photoBean.canDelete && swipingPosition==position) {
62
-                    final float alpha = 1 - Math.abs(dX) / (float) viewHolder.itemView.getWidth();
63
-                    viewHolder.itemView.setAlpha(alpha);
64
-                    viewHolder.itemView.setTranslationX(dX);
65
-                    viewHolder.itemView.setScaleX(alpha);
66
-                    viewHolder.itemView.setScaleY(alpha);
67
-            }
68 50
         }
69 51
 
70 52
         @Override
@@ -80,9 +62,10 @@ public class SessionActivity extends BaseActivity implements SessionContract.Vie
80 62
                 return;
81 63
             }
82 64
             if(photoBean.canDelete){
83
-                swipingPosition = position;
84 65
                 presenter.swipeToDeletePhoto(position);
85 66
                 adapter.removePhotoAtIndex(position);
67
+            }else{
68
+                showToast(getString(R.string.can_not_delete));
86 69
             }
87 70
         }
88 71
     };

+ 2 - 0
app/src/main/res/values/strings.xml

@@ -161,4 +161,6 @@
161 161
     <string name="box_status_error">盒子状态错误,请检查</string>
162 162
 
163 163
     <string name="auto_upload_after_seconds">距自动上传还有%d秒</string>
164
+
165
+    <string name="can_not_delete">该照片已在上传队列,无法删除</string>
164 166
 </resources>