session页添加上传自动刷新

chengzhenyu 8 年之前
父節點
當前提交
8414beb4e7

+ 1 - 1
app/build.gradle

@@ -48,7 +48,7 @@ android {
48 48
             zipAlignEnabled false
49 49
             minifyEnabled false
50 50
             shrinkResources false
51
-            buildConfigField "boolean", "isTestMode", "false"
51
+            buildConfigField "boolean", "isTestMode", "true"
52 52
             signingConfig signingConfigs.releaseConfig
53 53
         }
54 54
     }

+ 7 - 0
app/src/main/java/ai/pai/lensman/main/MainPresenter.java

@@ -17,6 +17,7 @@ import java.util.ArrayList;
17 17
 import java.util.Date;
18 18
 
19 19
 import ai.pai.lensman.App;
20
+import ai.pai.lensman.BuildConfig;
20 21
 import ai.pai.lensman.R;
21 22
 import ai.pai.lensman.base.BaseInteractor;
22 23
 import ai.pai.lensman.bean.PhotoBean;
@@ -102,6 +103,12 @@ class MainPresenter implements MainContract.Presenter,BaseInteractor.InteractorL
102 103
         if(sessionIds==null|| sessionIds.size()<20){
103 104
             interactor.startJob();
104 105
         }
106
+        if(BuildConfig.isTestMode){
107
+            if(sessionIds==null || sessionIds.size()==0){
108
+                sessionIds = new ArrayList<>();
109
+                sessionIds.add(String.valueOf(System.currentTimeMillis()));
110
+            }
111
+        }
105 112
         if(sessionIds==null || sessionIds.size()<1){
106 113
             view.setNewSessionBtnEnabled(false);
107 114
             view.showSnackBar(R.string.prepare_in_processing);

+ 10 - 3
app/src/main/java/ai/pai/lensman/session/PhotoRecyclerAdapter.java

@@ -40,6 +40,13 @@ public class PhotoRecyclerAdapter extends RecyclerView.Adapter<PhotoRecyclerAdap
40 40
         options = ImageLoaderUtils.getOptions(R.drawable.default_img);
41 41
     }
42 42
 
43
+    public PhotoBean getPhotoAt(int position){
44
+        if(photoList==null|| photoList.size()<=position){
45
+            return null;
46
+        }
47
+        return photoList.get(position);
48
+    }
49
+
43 50
     public synchronized void addPhotoBean(PhotoBean item){
44 51
         if(photoList==null){
45 52
             photoList = new ArrayList<>();
@@ -95,13 +102,13 @@ public class PhotoRecyclerAdapter extends RecyclerView.Adapter<PhotoRecyclerAdap
95 102
         }else{
96 103
             holder.errorLayout.setVisibility(View.GONE);
97 104
         }
98
-        long timePassed = (System.currentTimeMillis()-item.captureTime)/1000;
105
+        long timeLeft = 30-(System.currentTimeMillis()-item.captureTime)/1000;
99 106
 
100
-        if(timePassed>30){
107
+        if(timeLeft<0){
101 108
             holder.autoUploadHintText.setVisibility(View.GONE);
102 109
         }else{
103 110
             holder.autoUploadHintText.setVisibility(View.VISIBLE);
104
-            holder.autoUploadHintText.setText(context.getString(R.string.auto_upload_after_seconds,timePassed));
111
+            holder.autoUploadHintText.setText(context.getString(R.string.auto_upload_after_seconds,timeLeft));
105 112
         }
106 113
 
107 114
     }

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

@@ -4,6 +4,7 @@ import android.app.Activity;
4 4
 import android.content.Intent;
5 5
 import android.graphics.Canvas;
6 6
 import android.os.Bundle;
7
+import android.provider.Settings;
7 8
 import android.support.v7.widget.LinearLayoutManager;
8 9
 import android.support.v7.widget.RecyclerView;
9 10
 import android.support.v7.widget.helper.ItemTouchHelper;
@@ -41,6 +42,8 @@ public class SessionActivity extends BaseActivity implements SessionContract.Vie
41 42
     private  SessionBean sessionBean;
42 43
     private SessionContract.Presenter presenter;
43 44
 
45
+    private boolean canDelete;
46
+
44 47
     private static final int JOIN_REQUEST_CODE = 3002;
45 48
 
46 49
     private ItemTouchHelper.Callback mCallback = new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN,
@@ -49,12 +52,17 @@ public class SessionActivity extends BaseActivity implements SessionContract.Vie
49 52
         @Override
50 53
         public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
51 54
             super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
52
-            if(actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
55
+            if(actionState == ItemTouchHelper.ACTION_STATE_SWIPE && canDelete) {
53 56
                 final float alpha = 1 - Math.abs(dX) / (float)viewHolder.itemView.getWidth();
54 57
                 viewHolder.itemView.setAlpha(alpha);
55 58
                 viewHolder.itemView.setTranslationX(dX);
56 59
                 viewHolder.itemView.setScaleX(alpha);
57 60
                 viewHolder.itemView.setScaleY(alpha);
61
+            }else{
62
+                viewHolder.itemView.setAlpha(1);
63
+                viewHolder.itemView.setTranslationX(0);
64
+                viewHolder.itemView.setScaleX(1);
65
+                viewHolder.itemView.setScaleY(1);
58 66
             }
59 67
         }
60 68
 
@@ -66,8 +74,17 @@ public class SessionActivity extends BaseActivity implements SessionContract.Vie
66 74
         @Override
67 75
         public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
68 76
             int position = viewHolder.getAdapterPosition();
69
-            presenter.swipeToDeletePhoto(position);
70
-            adapter.removePhotoAtIndex(position);
77
+            PhotoBean photoBean = adapter.getPhotoAt(position);
78
+            if(photoBean==null){
79
+                canDelete = false;
80
+            }
81
+            if(System.currentTimeMillis()-photoBean.captureTime<30_000){
82
+                canDelete = true;
83
+                presenter.swipeToDeletePhoto(position);
84
+                adapter.removePhotoAtIndex(position);
85
+            }else{
86
+                canDelete = false;
87
+            }
71 88
         }
72 89
     };
73 90
 

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

@@ -59,7 +59,7 @@ public class SessionPresenter implements SessionContract.Presenter, SessionInter
59 59
         refreshTimer.schedule(new TimerTask() {
60 60
             @Override
61 61
             public void run() {
62
-
62
+                sessionView.refreshUploadTimeHint();
63 63
             }
64 64
         },1000,1000);
65 65
         Preferences.getInstance().setCurrentSession(sessionBean.sessionId);