@@ -226,14 +226,15 @@ public class DBService {
|
||
| 226 | 226 |
+ DBHelper.PHOTO_INFO_COLUMNS.CAPTURE_TIME + " desc limit 1 ", null); |
| 227 | 227 |
if (c.moveToNext()) {
|
| 228 | 228 |
photoBean = cursor2PhotoBean(c); |
| 229 |
- }else {
|
|
| 230 |
- c = db.rawQuery("select * from " + DBHelper.PHOTO_INFO_TABLE + " where "
|
|
| 231 |
- + DBHelper.PHOTO_INFO_COLUMNS.UPLOADED_STATUS + " = '" + -1 + "'"+" order by " |
|
| 232 |
- + DBHelper.PHOTO_INFO_COLUMNS.CAPTURE_TIME + " desc limit 1 ", null); |
|
| 233 |
- if (c.moveToNext()) {
|
|
| 234 |
- photoBean = cursor2PhotoBean(c); |
|
| 235 |
- } |
|
| 236 | 229 |
} |
| 230 |
+// else {
|
|
| 231 |
+// c = db.rawQuery("select * from " + DBHelper.PHOTO_INFO_TABLE + " where "
|
|
| 232 |
+// + DBHelper.PHOTO_INFO_COLUMNS.UPLOADED_STATUS + " = '" + -1 + "'"+" order by " |
|
| 233 |
+// + DBHelper.PHOTO_INFO_COLUMNS.CAPTURE_TIME + " desc limit 1 ", null); |
|
| 234 |
+// if (c.moveToNext()) {
|
|
| 235 |
+// photoBean = cursor2PhotoBean(c); |
|
| 236 |
+// } |
|
| 237 |
+// } |
|
| 237 | 238 |
db.setTransactionSuccessful(); |
| 238 | 239 |
} catch (Exception e) {
|
| 239 | 240 |
LogHelper.d(TAG, "dbservice getNextUploadPhotoBean error happen " + e); |
@@ -25,33 +25,35 @@ public class UploadTask extends AsyncTask<Void, Integer, Boolean> {
|
||
| 25 | 25 |
|
| 26 | 26 |
@Override |
| 27 | 27 |
protected Boolean doInBackground(Void... params) {
|
| 28 |
- try {
|
|
| 29 |
- String dirPath = ai.pai.lensman.utils.Constants.APP_IMAGE_DIR + File.separator + bean.sessionId |
|
| 30 |
- + File.separator + ai.pai.lensman.utils.Constants.THUMBNAIL_DIR_NAME; |
|
| 31 |
- File dir = new File(dirPath); |
|
| 32 |
- dir.mkdirs(); |
|
| 33 |
- File photo = new File(dir, bean.photoName); |
|
| 34 |
- LogHelper.d(TAG, "上传照片 " + bean); |
|
| 35 |
- if (photo.exists() && photo.isFile()) {
|
|
| 36 |
- PhotoUploadUtils photoUploadUtils = new PhotoUploadUtils(UrlContainer.PHOTO_UPLOAD_URL + "?timestamp=" + System.currentTimeMillis()); |
|
| 37 |
- photoUploadUtils.addFileParameter("photo", photo);
|
|
| 38 |
- photoUploadUtils.addTextParameter("user_id", bean.lensmanId);
|
|
| 39 |
- photoUploadUtils.addTextParameter("session_id", bean.sessionId);
|
|
| 40 |
- photoUploadUtils.addTextParameter("photo_id", String.valueOf(bean.photoId));
|
|
| 41 |
- photoUploadUtils.addTextParameter("nickname",Preferences.getInstance().getUserName());
|
|
| 28 |
+ for(int k = 0 ; k< 5;k++){
|
|
| 29 |
+ try {
|
|
| 30 |
+ String dirPath = ai.pai.lensman.utils.Constants.APP_IMAGE_DIR + File.separator + bean.sessionId |
|
| 31 |
+ + File.separator + ai.pai.lensman.utils.Constants.THUMBNAIL_DIR_NAME; |
|
| 32 |
+ File dir = new File(dirPath); |
|
| 33 |
+ dir.mkdirs(); |
|
| 34 |
+ File photo = new File(dir, bean.photoName); |
|
| 35 |
+ LogHelper.d(TAG, "上传照片 第"+k+"次尝试"+ bean); |
|
| 36 |
+ if (photo.exists() && photo.isFile()) {
|
|
| 37 |
+ PhotoUploadUtils photoUploadUtils = new PhotoUploadUtils(UrlContainer.PHOTO_UPLOAD_URL + "?timestamp=" + System.currentTimeMillis()); |
|
| 38 |
+ photoUploadUtils.addFileParameter("photo", photo);
|
|
| 39 |
+ photoUploadUtils.addTextParameter("user_id", bean.lensmanId);
|
|
| 40 |
+ photoUploadUtils.addTextParameter("session_id", bean.sessionId);
|
|
| 41 |
+ photoUploadUtils.addTextParameter("photo_id", String.valueOf(bean.photoId));
|
|
| 42 |
+ photoUploadUtils.addTextParameter("nickname",Preferences.getInstance().getUserName());
|
|
| 42 | 43 |
|
| 43 |
- String result = new String(photoUploadUtils.send(), "UTF-8"); |
|
| 44 |
- JSONObject resultObj = new JSONObject(result); |
|
| 45 |
- if (resultObj.getInt("status") == 200) {
|
|
| 46 |
- LogHelper.d(TAG, "上传 UploadTask upload result ok "); |
|
| 47 |
- return true; |
|
| 44 |
+ String result = new String(photoUploadUtils.send(), "UTF-8"); |
|
| 45 |
+ JSONObject resultObj = new JSONObject(result); |
|
| 46 |
+ if (resultObj.getInt("status") == 200) {
|
|
| 47 |
+ LogHelper.d(TAG, "上传 UploadTask upload result ok "); |
|
| 48 |
+ return true; |
|
| 49 |
+ } |
|
| 50 |
+ } else {
|
|
| 51 |
+ return false; |
|
| 48 | 52 |
} |
| 49 |
- } else {
|
|
| 50 |
- return false; |
|
| 51 |
- } |
|
| 52 | 53 |
|
| 53 |
- } catch (Exception e) {
|
|
| 54 |
- LogHelper.d(TAG, "上传发生异常 UploadTask :" + bean + " error:" + e); |
|
| 54 |
+ } catch (Exception e) {
|
|
| 55 |
+ LogHelper.d(TAG, "上传发生异常 UploadTask :" + bean + " error:" + e); |
|
| 56 |
+ } |
|
| 55 | 57 |
} |
| 56 | 58 |
return false; |
| 57 | 59 |
} |
@@ -98,14 +98,18 @@ public class SessionRecyclerAdapter extends RecyclerView.Adapter<SessionRecycler |
||
| 98 | 98 |
error++; |
| 99 | 99 |
} |
| 100 | 100 |
} |
| 101 |
+ holder.uploadProgressBar.setProgressDrawable(context.getResources().getDrawable(R.drawable.progress_upload_bg)); |
|
| 101 | 102 |
if(error>0){
|
| 102 | 103 |
holder.uploadStatus.setText(R.string.upload_error); |
| 104 |
+ holder.uploadProgressBar.setProgressDrawable(context.getResources().getDrawable(R.drawable.progress_upload_fail_bg)); |
|
| 103 | 105 |
}else if(uploaded<photoList.size()){
|
| 104 | 106 |
holder.uploadStatus.setText(R.string.upload_processing); |
| 105 | 107 |
}else{
|
| 106 | 108 |
holder.uploadStatus.setText(R.string.upload_success); |
| 107 | 109 |
} |
| 108 |
- holder.uploadProgressBar.setProgress(100*uploaded/photoList.size()); |
|
| 110 |
+ holder.uploadProgressBar.setMax(photoList.size()); |
|
| 111 |
+ holder.uploadProgressBar.setProgress(uploaded); |
|
| 112 |
+ |
|
| 109 | 113 |
} |
| 110 | 114 |
holder.itemView.setOnClickListener(new View.OnClickListener(){
|
| 111 | 115 |
@Override |
@@ -111,10 +111,10 @@ public class UploadPresenter implements UploadContract.Presenter,BaseInteractor. |
||
| 111 | 111 |
@Override |
| 112 | 112 |
public synchronized void onPhotoUploaded(PhotoBean bean) {
|
| 113 | 113 |
int position = sessionList.size()-bean.sessionSeq; |
| 114 |
- LogHelper.d("czy","onPhotoUploaded and notify UI change at "+position);
|
|
| 115 | 114 |
if(position < 0 || position>=sessionList.size()){
|
| 116 | 115 |
return; |
| 117 | 116 |
} |
| 117 |
+ LogHelper.d("czy","onPhotoUploaded and notify UI change at "+position);
|
|
| 118 | 118 |
SessionBean sessionBean = sessionList.get(position); |
| 119 | 119 |
ArrayList<PhotoBean> photoList = sessionBean.sessionPhotos; |
| 120 | 120 |
if(photoList==null || photoList.size()==0){
|
@@ -136,10 +136,10 @@ public class UploadPresenter implements UploadContract.Presenter,BaseInteractor. |
||
| 136 | 136 |
@Override |
| 137 | 137 |
public synchronized void onPhotoUploadError(PhotoBean bean) {
|
| 138 | 138 |
int position = sessionList.size()-bean.sessionSeq; |
| 139 |
- LogHelper.d("czy","onPhotoUploadError and notify UI change at "+position);
|
|
| 140 | 139 |
if(position < 0 || position>=sessionList.size()){
|
| 141 | 140 |
return; |
| 142 | 141 |
} |
| 142 |
+ LogHelper.d("czy","onPhotoUploadError and notify UI change at "+position);
|
|
| 143 | 143 |
SessionBean sessionBean = sessionList.get(position); |
| 144 | 144 |
ArrayList<PhotoBean> photoList = sessionBean.sessionPhotos; |
| 145 | 145 |
if(photoList==null || photoList.size()==0){
|
@@ -0,0 +1,26 @@ |
||
| 1 |
+<?xml version="1.0" encoding="utf-8"?> |
|
| 2 |
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> |
|
| 3 |
+ <item android:id="@android:id/background"> |
|
| 4 |
+ <shape> |
|
| 5 |
+ <corners android:radius="1px" /> |
|
| 6 |
+ <solid android:color="@color/dark_grey" /> |
|
| 7 |
+ </shape> |
|
| 8 |
+ </item> |
|
| 9 |
+ <item android:id="@android:id/secondaryProgress"> |
|
| 10 |
+ <clip> |
|
| 11 |
+ <shape> |
|
| 12 |
+ <corners android:radius="1px" /> |
|
| 13 |
+ <solid android:color="@color/light_blue" /> |
|
| 14 |
+ </shape> |
|
| 15 |
+ </clip> |
|
| 16 |
+ </item> |
|
| 17 |
+ <item android:id="@android:id/progress"> |
|
| 18 |
+ <clip> |
|
| 19 |
+ <shape> |
|
| 20 |
+ <corners android:radius="1px" /> |
|
| 21 |
+ <solid android:color="@color/light_blue" /> |
|
| 22 |
+ </shape> |
|
| 23 |
+ </clip> |
|
| 24 |
+ </item> |
|
| 25 |
+ |
|
| 26 |
+</layer-list> |
@@ -0,0 +1,26 @@ |
||
| 1 |
+<?xml version="1.0" encoding="utf-8"?> |
|
| 2 |
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> |
|
| 3 |
+ <item android:id="@android:id/background"> |
|
| 4 |
+ <shape> |
|
| 5 |
+ <corners android:radius="1px" /> |
|
| 6 |
+ <solid android:color="@color/dark_grey" /> |
|
| 7 |
+ </shape> |
|
| 8 |
+ </item> |
|
| 9 |
+ <item android:id="@android:id/secondaryProgress"> |
|
| 10 |
+ <clip> |
|
| 11 |
+ <shape> |
|
| 12 |
+ <corners android:radius="1px" /> |
|
| 13 |
+ <solid android:color="@color/red" /> |
|
| 14 |
+ </shape> |
|
| 15 |
+ </clip> |
|
| 16 |
+ </item> |
|
| 17 |
+ <item android:id="@android:id/progress"> |
|
| 18 |
+ <clip> |
|
| 19 |
+ <shape> |
|
| 20 |
+ <corners android:radius="1px" /> |
|
| 21 |
+ <solid android:color="@color/red" /> |
|
| 22 |
+ </shape> |
|
| 23 |
+ </clip> |
|
| 24 |
+ </item> |
|
| 25 |
+ |
|
| 26 |
+</layer-list> |
@@ -47,6 +47,7 @@ |
||
| 47 | 47 |
android:id="@+id/recycler_view_sessions" |
| 48 | 48 |
android:layout_width="match_parent" |
| 49 | 49 |
android:layout_height="match_parent" |
| 50 |
+ android:layout_marginBottom="50dp" |
|
| 50 | 51 |
android:layout_below="@id/title_layout"/> |
| 51 | 52 |
|
| 52 | 53 |
|
@@ -39,9 +39,8 @@ |
||
| 39 | 39 |
android:id="@+id/pb_session_upload" |
| 40 | 40 |
android:layout_width="match_parent" |
| 41 | 41 |
android:layout_height="4dp" |
| 42 |
- android:progressDrawable="@drawable/progress_drawable" |
|
| 42 |
+ android:progressDrawable="@drawable/progress_upload_bg" |
|
| 43 | 43 |
style="?android:attr/progressBarStyleHorizontal" |
| 44 |
- android:background="@drawable/progress_bg" |
|
| 45 | 44 |
android:layout_marginLeft="10dp" |
| 46 | 45 |
android:layout_marginRight="10dp" |
| 47 | 46 |
android:layout_marginBottom="8dp" |
@@ -4,10 +4,12 @@ |
||
| 4 | 4 |
<color name="colorPrimaryDark">#2E78E5</color> |
| 5 | 5 |
<color name="colorAccent">#0BBE06</color> |
| 6 | 6 |
|
| 7 |
+ <color name="light_blue">#1E90FF</color> |
|
| 7 | 8 |
<color name="white">#ffffffff</color> |
| 8 | 9 |
<color name="transparent">#00000000</color> |
| 9 | 10 |
<color name="black">#000000</color> |
| 10 | 11 |
<color name="grey">#999999</color> |
| 12 |
+ <color name="red">#FF0000</color> |
|
| 11 | 13 |
<color name="text_white">#FFFFFF</color> |
| 12 | 14 |
<color name="background_white">#FFFFFF</color> |
| 13 | 15 |
<color name="background_light_grey_color">#F0F0F0</color> |