upload

chengzhenyu 8 jaren geleden
bovenliggende
commit
eb653853cf

+ 7 - 1
app/src/main/java/ai/pai/lensman/bean/PhotoBean.java

@@ -21,7 +21,7 @@ public class PhotoBean implements Serializable{
21 21
 
22 22
     public long captureTime;
23 23
 
24
-    public boolean isUploaded;
24
+    public int uploadStatus;
25 25
 
26 26
     public boolean isRawPhoto;
27 27
 
@@ -44,4 +44,10 @@ public class PhotoBean implements Serializable{
44 44
                 ", sessionSeq=" + sessionSeq +
45 45
                 '}';
46 46
     }
47
+
48
+    public interface UploadStatus {
49
+        int STATUS_NO_BEGIN = 0;
50
+        int STATUS_SUCCESS = 1;
51
+        int STATUS_ERROR = -1;
52
+    }
47 53
 }

+ 2 - 2
app/src/main/java/ai/pai/lensman/db/DBHelper.java

@@ -22,7 +22,7 @@ public class DBHelper extends SQLiteOpenHelper{
22 22
         String SESSION_DATE = "session_date";
23 23
         String SESSION_SEQ = "session_seq";
24 24
         String IS_RAW_PHOTO= "is_raw_photo";
25
-        String IS_UPLOADED = "is_uploaded";
25
+        String UPLOADED_STATUS = "upload_status";
26 26
 
27 27
     }
28 28
 
@@ -65,7 +65,7 @@ public class DBHelper extends SQLiteOpenHelper{
65 65
         sql.append(PHOTO_INFO_COLUMNS.IS_RAW_PHOTO).append(" INTEGER, ");
66 66
         sql.append(PHOTO_INFO_COLUMNS.SESSION_SEQ).append(" INTEGER, ");
67 67
         sql.append(PHOTO_INFO_COLUMNS.SESSION_DATE).append(" LONG, ");
68
-        sql.append(PHOTO_INFO_COLUMNS.IS_UPLOADED).append(" INTEGER, ");
68
+        sql.append(PHOTO_INFO_COLUMNS.UPLOADED_STATUS).append(" INTEGER, ");
69 69
         sql.append(PHOTO_INFO_COLUMNS.CAPTURE_TIME).append(" LONG ");
70 70
         sql.append(")");
71 71
         db.execSQL(sql.toString());

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

@@ -71,7 +71,7 @@ public class DBService {
71 71
         item.lensmanId = c.getString(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.LENSMAN_ID));
72 72
         item.sessionId = c.getString(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.SESSION_ID));
73 73
         item.isRawPhoto =(c.getInt(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.IS_RAW_PHOTO))>0);
74
-        item.isUploaded = (c.getInt(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.IS_UPLOADED))>0);
74
+        item.uploadStatus = c.getInt(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.UPLOADED_STATUS));
75 75
         item.captureTime = c.getLong(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.CAPTURE_TIME));
76 76
         item.photoId = c.getLong(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.PHOTO_ID));
77 77
         item.photoName = c.getString(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.PHOTO_NAME));
@@ -90,7 +90,7 @@ public class DBService {
90 90
         cv.put(DBHelper.PHOTO_INFO_COLUMNS.PHOTO_PATH, item.photoPath);
91 91
         cv.put(DBHelper.PHOTO_INFO_COLUMNS.SESSION_ID, item.sessionId);
92 92
         cv.put(DBHelper.PHOTO_INFO_COLUMNS.LENSMAN_ID,item.lensmanId);
93
-        cv.put(DBHelper.PHOTO_INFO_COLUMNS.IS_UPLOADED,item.isUploaded);
93
+        cv.put(DBHelper.PHOTO_INFO_COLUMNS.UPLOADED_STATUS,item.uploadStatus);
94 94
         cv.put(DBHelper.PHOTO_INFO_COLUMNS.SESSION_DATE,item.sessionDate);
95 95
         cv.put(DBHelper.PHOTO_INFO_COLUMNS.SESSION_SEQ,item.sessionSeq);
96 96
         return cv;
@@ -222,7 +222,7 @@ public class DBService {
222 222
                 db = dbHelper.getReadableDatabase();
223 223
                 db.beginTransaction();
224 224
                 c = db.rawQuery("select * from " + DBHelper.PHOTO_INFO_TABLE +  " where "
225
-                        + DBHelper.PHOTO_INFO_COLUMNS.IS_UPLOADED + " = '" + 0 + "'"+"  order by "
225
+                        + DBHelper.PHOTO_INFO_COLUMNS.UPLOADED_STATUS + " = '" + 0 + "'"+"  order by "
226 226
                         + DBHelper.PHOTO_INFO_COLUMNS.CAPTURE_TIME + " desc limit 1 ", null);
227 227
                 if (c.moveToNext()) {
228 228
                     photoBean = cursor2PhotoBean(c);

+ 3 - 1
app/src/main/java/ai/pai/lensman/service/UploadService.java

@@ -44,7 +44,7 @@ public class UploadService extends Service implements UploadTask.OnPhotoUploadLi
44 44
     @Override
45 45
     public void onPhotoUploadSucceed(PhotoBean bean) {
46 46
         if(bean.equals(currentPhoto)){
47
-            currentPhoto.isUploaded = true;
47
+            currentPhoto.uploadStatus =  PhotoBean.UploadStatus.STATUS_SUCCESS;
48 48
             DBService.getInstance().updatePhotoBean(currentPhoto);
49 49
             if(listener!=null){
50 50
                 listener.onPhotoUploaded(currentPhoto);
@@ -57,6 +57,8 @@ public class UploadService extends Service implements UploadTask.OnPhotoUploadLi
57 57
     @Override
58 58
     public void onPhotoUploadFail(PhotoBean bean) {
59 59
         if(bean.equals(currentPhoto)){
60
+            currentPhoto.uploadStatus =  PhotoBean.UploadStatus.STATUS_ERROR;
61
+            DBService.getInstance().updatePhotoBean(currentPhoto);
60 62
             currentPhoto = null;
61 63
         }
62 64
         startUpload();

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

@@ -101,7 +101,7 @@ public class SessionInteractor {
101 101
             public void run() {
102 102
                 fetchThumbnailTask();
103 103
             }
104
-        },1000,5000);
104
+        },1000,1000);
105 105
     }
106 106
 
107 107
     private void fetchThumbnailTask(){
@@ -123,7 +123,7 @@ public class SessionInteractor {
123 123
             }
124 124
             bean.captureTime = bean.photoId;
125 125
             bean.isRawPhoto = false;
126
-            bean.isUploaded = false;
126
+            bean.uploadStatus = PhotoBean.UploadStatus.STATUS_NO_BEGIN;
127 127
             bean.sessionId = sessionBean.sessionId;
128 128
             bean.lensmanId = sessionBean.lensmanId;
129 129
             bean.sessionSeq = sessionBean.sessionSeq;
@@ -154,7 +154,7 @@ public class SessionInteractor {
154 154
                                 bean.photoPath = file.getString("path");
155 155
                                 bean.captureTime = bean.photoId;
156 156
                                 bean.isRawPhoto = false;
157
-                                bean.isUploaded = false;
157
+                                bean.uploadStatus =  PhotoBean.UploadStatus.STATUS_NO_BEGIN;
158 158
                                 bean.sessionId = sessionBean.sessionId;
159 159
                                 bean.lensmanId = sessionBean.lensmanId;
160 160
                                 bean.sessionSeq = sessionBean.sessionSeq;

+ 20 - 20
app/src/main/java/ai/pai/lensman/upload/SessionRecyclerAdapter.java

@@ -73,26 +73,38 @@ public class SessionRecyclerAdapter extends RecyclerView.Adapter<SessionRecycler
73 73
             return;
74 74
         }
75 75
         final SessionBean item = sessionList.get(position);
76
+
77
+        int height = width;
78
+        ViewGroup.LayoutParams lp=holder.photo.getLayoutParams();
79
+        lp.width = width;
80
+        lp.height = height;
81
+        holder.photo.setLayoutParams(lp);
82
+        holder.sesseionSeq.setText(String.valueOf(item.sessionSeq));
76 83
         ArrayList<PhotoBean> photoList = item.sessionPhotos;
84
+
77 85
         if(photoList!=null && photoList.size()>0){
78 86
             String path =  Constants.APP_IMAGE_DIR + File.separator+item.sessionId+File.separator
79 87
                     +Constants.THUMBNAIL_DIR_NAME+File.separator+item.sessionPhotos.get(0).photoName;
80 88
             ImageLoaderUtils.displayLocalImage(path, holder.photo, options);
81 89
             int uploaded = 0;
90
+            int error = 0;
82 91
             for(PhotoBean bean : photoList){
83
-                if(bean.isUploaded){
92
+                if(bean.uploadStatus == PhotoBean.UploadStatus.STATUS_SUCCESS){
84 93
                     uploaded++;
85 94
                 }
95
+                if(bean.uploadStatus == PhotoBean.UploadStatus.STATUS_ERROR){
96
+                    error++;
97
+                }
98
+            }
99
+            if(error>0){
100
+                holder.uploadStatus.setText(R.string.upload_error);
101
+            }else if(uploaded<photoList.size()){
102
+                holder.uploadStatus.setText(R.string.upload_processing);
103
+            }else{
104
+                holder.uploadStatus.setText(R.string.upload_success);
86 105
             }
87
-            holder.uploadStatus.setText(getUploadStatusText(item.sessionPhotos));
88 106
             holder.uploadProgressBar.setProgress(100*uploaded/photoList.size());
89 107
         }
90
-        int height = width;
91
-        ViewGroup.LayoutParams lp=holder.photo.getLayoutParams();
92
-        lp.width = width;
93
-        lp.height = height;
94
-        holder.photo.setLayoutParams(lp);
95
-        holder.sesseionSeq.setText(String.valueOf(item.sessionSeq));
96 108
         holder.itemView.setOnClickListener(new View.OnClickListener(){
97 109
             @Override
98 110
             public void onClick(View v) {
@@ -111,18 +123,6 @@ public class SessionRecyclerAdapter extends RecyclerView.Adapter<SessionRecycler
111 123
         return sessionList.size();
112 124
     }
113 125
 
114
-    private String getUploadStatusText(ArrayList<PhotoBean> photoList){
115
-        int uploaded = 0;
116
-        for(PhotoBean bean : photoList){
117
-            if(bean.isUploaded){
118
-                uploaded++;
119
-            }
120
-        }
121
-        String uploadStr = uploaded+"/"+photoList.size();
122
-
123
-        return uploadStr;
124
-    }
125
-
126 126
 
127 127
     class MyViewHolder extends RecyclerView.ViewHolder{
128 128
 

+ 1 - 1
app/src/main/java/ai/pai/lensman/upload/UploadActivity.java

@@ -95,7 +95,7 @@ public class UploadActivity extends BaseActivity implements UploadContract.View
95 95
 
96 96
     @Override
97 97
     public void updateSessionUploadViewAt(int position) {
98
-
98
+        adapter.notifyItemChanged(position);
99 99
     }
100 100
 
101 101
     @Override

+ 1 - 1
app/src/main/java/ai/pai/lensman/upload/UploadPresenter.java

@@ -120,7 +120,7 @@ public class UploadPresenter implements UploadContract.Presenter,BaseInteractor.
120 120
         }else{
121 121
             for(PhotoBean photoBean : photoList){
122 122
                 if(photoBean.photoId == bean.photoId){
123
-                    photoBean.isUploaded = true;
123
+                    photoBean.uploadStatus = PhotoBean.UploadStatus.STATUS_SUCCESS;
124 124
                     break;
125 125
                 }
126 126
             }

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

@@ -14,6 +14,10 @@
14 14
     <string name="login_fail">登录失败</string>
15 15
     <string name="please_wait">请稍候</string>
16 16
 
17
+    <string name="upload_processing">上传中</string>
18
+    <string name="upload_error">上传失败</string>
19
+    <string name="upload_success">上传成功</string>
20
+
17 21
     <string name="network_disconnect">当前无网络连接</string>
18 22
 
19 23
     <string name="qr_scan_hint">将取景框对准二维码,\n即可自动扫码</string>