@@ -19,6 +19,8 @@ public class PhotoBean implements Serializable{ |
||
19 | 19 |
|
20 | 20 |
public String sessionId; |
21 | 21 |
|
22 |
+ public long sessionCreateTime; //unit :second |
|
23 |
+ |
|
22 | 24 |
public String lensmanId; |
23 | 25 |
|
24 | 26 |
public long captureTime; |
@@ -11,6 +11,7 @@ public class SessionBean implements Serializable{ |
||
11 | 11 |
public long sessionDate; |
12 | 12 |
public String lensmanId; |
13 | 13 |
public String sessionId; |
14 |
+ public long createTime; |
|
14 | 15 |
public ArrayList<PhotoBean> sessionPhotos; |
15 | 16 |
|
16 | 17 |
@Override |
@@ -20,6 +21,7 @@ public class SessionBean implements Serializable{ |
||
20 | 21 |
", sessionDate=" + sessionDate + |
21 | 22 |
", lensmanId='" + lensmanId + '\'' + |
22 | 23 |
", sessionId='" + sessionId + '\'' + |
24 |
+ ", createTime=" + createTime + |
|
23 | 25 |
'}'; |
24 | 26 |
} |
25 | 27 |
} |
@@ -7,7 +7,7 @@ import android.database.sqlite.SQLiteOpenHelper; |
||
7 | 7 |
public class DBHelper extends SQLiteOpenHelper{ |
8 | 8 |
|
9 | 9 |
private static final String DB_NAME = "paiai"; |
10 |
- private static final int DB_VERSION = 2; |
|
10 |
+ private static final int DB_VERSION = 3; |
|
11 | 11 |
private static DBHelper instance; |
12 | 12 |
|
13 | 13 |
public static final String PHOTO_INFO_TABLE = "photo_info_table"; |
@@ -24,6 +24,7 @@ public class DBHelper extends SQLiteOpenHelper{ |
||
24 | 24 |
String IS_RAW_PHOTO= "is_raw_photo"; |
25 | 25 |
String UPLOADED_STATUS = "upload_status"; |
26 | 26 |
String GROUP_ID = "group_id"; |
27 |
+ String SESSION_CREATE_TIME = "session_create_time"; |
|
27 | 28 |
|
28 | 29 |
} |
29 | 30 |
|
@@ -48,6 +49,8 @@ public class DBHelper extends SQLiteOpenHelper{ |
||
48 | 49 |
switch (oldVersion){ |
49 | 50 |
case 1: |
50 | 51 |
upgradeToVersion2(db); |
52 |
+ case 2: |
|
53 |
+ upgradeToVersion3(db); |
|
51 | 54 |
break; |
52 | 55 |
default: |
53 | 56 |
dropAndRecreateTables(db); |
@@ -59,6 +62,10 @@ public class DBHelper extends SQLiteOpenHelper{ |
||
59 | 62 |
db.execSQL("Alter table "+ PHOTO_INFO_TABLE+" add column "+PHOTO_INFO_COLUMNS.GROUP_ID +" VARCHAR"); |
60 | 63 |
} |
61 | 64 |
|
65 |
+ private void upgradeToVersion3(SQLiteDatabase db){ |
|
66 |
+ db.execSQL("Alter table "+ PHOTO_INFO_TABLE+" add column "+PHOTO_INFO_COLUMNS.SESSION_CREATE_TIME +" LONG"); |
|
67 |
+ } |
|
68 |
+ |
|
62 | 69 |
private void dropAndRecreateTables(SQLiteDatabase db){ |
63 | 70 |
db.execSQL("DROP TABLE IF EXISTS " + PHOTO_INFO_TABLE); |
64 | 71 |
createTables(db); |
@@ -81,6 +88,7 @@ public class DBHelper extends SQLiteOpenHelper{ |
||
81 | 88 |
sql.append(PHOTO_INFO_COLUMNS.IS_RAW_PHOTO).append(" INTEGER, "); |
82 | 89 |
sql.append(PHOTO_INFO_COLUMNS.SESSION_SEQ).append(" INTEGER, "); |
83 | 90 |
sql.append(PHOTO_INFO_COLUMNS.SESSION_DATE).append(" LONG, "); |
91 |
+ sql.append(PHOTO_INFO_COLUMNS.SESSION_CREATE_TIME).append(" LONG, "); |
|
84 | 92 |
sql.append(PHOTO_INFO_COLUMNS.UPLOADED_STATUS).append(" INTEGER, "); |
85 | 93 |
sql.append(PHOTO_INFO_COLUMNS.CAPTURE_TIME).append(" LONG "); |
86 | 94 |
sql.append(")"); |
@@ -79,6 +79,7 @@ public class DBService { |
||
79 | 79 |
item.photoPath = c.getString(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.PHOTO_PATH)); |
80 | 80 |
item.sessionDate = c.getLong(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.SESSION_DATE)); |
81 | 81 |
item.sessionSeq = c.getInt(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.SESSION_SEQ)); |
82 |
+ item.sessionCreateTime = c.getLong(c.getColumnIndex(DBHelper.PHOTO_INFO_COLUMNS.SESSION_CREATE_TIME)); |
|
82 | 83 |
return item; |
83 | 84 |
} |
84 | 85 |
|
@@ -95,6 +96,7 @@ public class DBService { |
||
95 | 96 |
cv.put(DBHelper.PHOTO_INFO_COLUMNS.UPLOADED_STATUS,item.uploadStatus); |
96 | 97 |
cv.put(DBHelper.PHOTO_INFO_COLUMNS.SESSION_DATE,item.sessionDate); |
97 | 98 |
cv.put(DBHelper.PHOTO_INFO_COLUMNS.SESSION_SEQ,item.sessionSeq); |
99 |
+ cv.put(DBHelper.PHOTO_INFO_COLUMNS.SESSION_CREATE_TIME,item.sessionCreateTime); |
|
98 | 100 |
return cv; |
99 | 101 |
} |
100 | 102 |
|
@@ -168,6 +170,7 @@ public class DBService { |
||
168 | 170 |
sessionBean.sessionSeq = photoBean.sessionSeq; |
169 | 171 |
sessionBean.sessionId = photoBean.sessionId; |
170 | 172 |
sessionBean.lensmanId = photoBean.lensmanId; |
173 |
+ sessionBean.createTime = photoBean.sessionCreateTime; |
|
171 | 174 |
ArrayList<PhotoBean> photoList = new ArrayList<>(); |
172 | 175 |
sessionBean.sessionPhotos = photoList; |
173 | 176 |
sessionBeanArrayList.add(sessionBean); |
@@ -143,7 +143,8 @@ class MainPresenter implements MainContract.Presenter,SyncTimeInteractor.SyncTim |
||
143 | 143 |
sessionBean.lensmanId = lensmanId; |
144 | 144 |
sessionBean.sessionDate=getSessionDateInLongFormat(); |
145 | 145 |
sessionBean.sessionSeq = sessionSeq+1; |
146 |
- sessionBean.sessionId = lensmanId+ new Md5FileNameGenerator().generate(String.valueOf(System.currentTimeMillis())); |
|
146 |
+ sessionBean.createTime = System.currentTimeMillis()/1000; |
|
147 |
+ sessionBean.sessionId = lensmanId+ "_"+new Md5FileNameGenerator().generate(String.valueOf(sessionBean.createTime)); |
|
147 | 148 |
LogHelper.d("czy","createNewSession = "+sessionBean.sessionId); |
148 | 149 |
sessionList.add(sessionBean); |
149 | 150 |
return sessionBean; |
@@ -72,7 +72,7 @@ public class SessionInteractor { |
||
72 | 72 |
} |
73 | 73 |
HashMap<String,String> params = new HashMap<>(); |
74 | 74 |
params.put("lensman",sessionBean.lensmanId); |
75 |
- randomSessionId = sessionBean.sessionId+"_"+(new Random().nextInt(9999)+10000); |
|
75 |
+ randomSessionId = sessionBean.lensmanId+"_"+sessionBean.createTime+"_"+(new Random().nextInt(9999)+10000); |
|
76 | 76 |
params.put("session",randomSessionId); |
77 | 77 |
sessionStartTask = new HttpPostTask(params){ |
78 | 78 |
@Override |
@@ -95,6 +95,10 @@ public class SessionInteractor { |
||
95 | 95 |
LogHelper.d(TAG,"sessionStartTask onPostFail sessionId = "+randomSessionId); |
96 | 96 |
super.onPostFail(); |
97 | 97 |
listener.onSessionStartError(sessionBean.sessionId); |
98 |
+ //即使session创建不成功,也继续工作,照片存lost目录 |
|
99 |
+ isWorking = true; |
|
100 |
+ LogHelper.d(TAG,"即使session创建不成功,也继续工作,照片存lost目录 sessionStartTask onPostSuccess sessionId = "+randomSessionId + "and startCapture"); |
|
101 |
+ startCapture(); |
|
98 | 102 |
} |
99 | 103 |
|
100 | 104 |
@Override |
@@ -155,6 +159,7 @@ public class SessionInteractor { |
||
155 | 159 |
bean.lensmanId = sessionBean.lensmanId; |
156 | 160 |
bean.sessionSeq = sessionBean.sessionSeq; |
157 | 161 |
bean.sessionDate = sessionBean.sessionDate; |
162 |
+ bean.sessionCreateTime = sessionBean.createTime; |
|
158 | 163 |
new SavePhotoTask(bean).executeOnExecutor(ThreadExecutor.getInstance().getExecutor(),bean); |
159 | 164 |
return; |
160 | 165 |
} |
@@ -187,6 +192,7 @@ public class SessionInteractor { |
||
187 | 192 |
bean.lensmanId = sessionBean.lensmanId; |
188 | 193 |
bean.sessionSeq = sessionBean.sessionSeq; |
189 | 194 |
bean.sessionDate = sessionBean.sessionDate; |
195 |
+ bean.sessionCreateTime = sessionBean.createTime; |
|
190 | 196 |
if(bean.photoId>maxId){ |
191 | 197 |
maxId = bean.photoId; |
192 | 198 |
} |