@@ -218,99 +218,99 @@ protected void onProgressUpdate(Boolean... values) {
218218 isFailed = values [0 ];
219219 }
220220
221- private void sendQueuedMessages (Context context , AccountDao accountDao , MessageDaoSource messageDaoSource ,
222- ImapLabelsDaoSource imapLabelsDaoSource , File attachmentsCacheDirectory )
221+ private void sendQueuedMessages (Context context , AccountDao accountDao , MessageDaoSource msgDaoSource ,
222+ ImapLabelsDaoSource imapLabelsDaoSource , File attsCacheDir )
223223 throws InterruptedException {
224- List <GeneralMessageDetails > generalMessageDetailsList ;
224+ List <GeneralMessageDetails > genMsgDetailsList ;
225225 int uidOfLastMessage = 0 ;
226- while (!CollectionUtils .isEmpty (generalMessageDetailsList = messageDaoSource
227- . getOutboxMessages ( context , accountDao .getEmail (), MessageState .QUEUED ))) {
228- Iterator <GeneralMessageDetails > iterator = generalMessageDetailsList .iterator ();
229- GeneralMessageDetails generalMessageDetails = null ;
226+ while (!CollectionUtils .isEmpty (genMsgDetailsList = msgDaoSource . getOutboxMessages ( context ,
227+ accountDao .getEmail (), MessageState .QUEUED ))) {
228+ Iterator <GeneralMessageDetails > iterator = genMsgDetailsList .iterator ();
229+ GeneralMessageDetails genMsgDetails = null ;
230230
231231 while (iterator .hasNext ()) {
232232 GeneralMessageDetails generalMessageDetailsTemp = iterator .next ();
233233 if (generalMessageDetailsTemp .getUid () > uidOfLastMessage ) {
234- generalMessageDetails = generalMessageDetailsTemp ;
234+ genMsgDetails = generalMessageDetailsTemp ;
235235 break ;
236236 }
237237 }
238238
239- if (generalMessageDetails == null ) {
240- generalMessageDetails = generalMessageDetailsList .get (0 );
239+ if (genMsgDetails == null ) {
240+ genMsgDetails = genMsgDetailsList .get (0 );
241241 }
242242
243- uidOfLastMessage = generalMessageDetails .getUid ();
243+ uidOfLastMessage = genMsgDetails .getUid ();
244244
245245 try {
246- messageDaoSource .updateMessageState (context ,
247- generalMessageDetails .getEmail (), generalMessageDetails .getLabel (),
248- generalMessageDetails .getUid (), MessageState .SENDING );
246+ msgDaoSource .updateMessageState (context , genMsgDetails .getEmail (), genMsgDetails .getLabel (),
247+ genMsgDetails .getUid (), MessageState .SENDING );
249248 Thread .sleep (2000 );
250249
251250 AttachmentDaoSource attachmentDaoSource = new AttachmentDaoSource ();
252- List <AttachmentInfo > attachmentInfoList =
251+ List <AttachmentInfo > attInfoList =
253252 attachmentDaoSource .getAttachmentInfoList (context , accountDao .getEmail (),
254- JavaEmailConstants .FOLDER_OUTBOX , generalMessageDetails .getUid ());
253+ JavaEmailConstants .FOLDER_OUTBOX , genMsgDetails .getUid ());
255254
256- boolean isMessageSent = sendMessage (context , accountDao , messageDaoSource ,
257- generalMessageDetails , attachmentInfoList );
255+ boolean isMessageSent = sendMessage (context , accountDao , msgDaoSource , genMsgDetails , attInfoList );
258256
259257 if (!isMessageSent ) {
260258 continue ;
261259 }
262260
263- generalMessageDetails = messageDaoSource .getMessage (context , accountDao .getEmail (),
264- JavaEmailConstants .FOLDER_OUTBOX , generalMessageDetails .getUid ());
261+ genMsgDetails = msgDaoSource .getMessage (context , accountDao .getEmail (),
262+ JavaEmailConstants .FOLDER_OUTBOX , genMsgDetails .getUid ());
265263
266- if (generalMessageDetails .getMessageState () == MessageState .SENT ) {
267- messageDaoSource .deleteMessageFromFolder (context , accountDao .getEmail (),
268- JavaEmailConstants .FOLDER_OUTBOX , generalMessageDetails .getUid ());
264+ if (genMsgDetails .getMessageState () == MessageState .SENT ) {
265+ msgDaoSource .deleteMessageFromFolder (context , accountDao .getEmail (),
266+ JavaEmailConstants .FOLDER_OUTBOX , genMsgDetails .getUid ());
269267
270- if (!CollectionUtils .isEmpty (attachmentInfoList )) {
271- deleteMessageAttachments (context , accountDao , attachmentsCacheDirectory ,
272- generalMessageDetails , attachmentDaoSource );
268+ if (!CollectionUtils .isEmpty (attInfoList )) {
269+ deleteMessageAttachments (context , accountDao , attsCacheDir ,
270+ genMsgDetails , attachmentDaoSource );
273271 }
274272
275273 imapLabelsDaoSource .updateLabelMessageCount (context , accountDao .getEmail (),
276- JavaEmailConstants .FOLDER_OUTBOX , messageDaoSource .getOutboxMessages (context ,
277- generalMessageDetails .getEmail ()).size ());
274+ JavaEmailConstants .FOLDER_OUTBOX , msgDaoSource .getOutboxMessages (context ,
275+ genMsgDetails .getEmail ()).size ());
278276 }
279277 } catch (Exception e ) {
280278 e .printStackTrace ();
281279 ExceptionUtil .handleError (e );
282280
283281 if (!GeneralUtil .isInternetConnectionAvailable (context )) {
284- messageDaoSource .updateMessageState (context , generalMessageDetails .getEmail (),
285- generalMessageDetails .getLabel (), generalMessageDetails .getUid (), MessageState .QUEUED );
282+ if (genMsgDetails .getMessageState () != MessageState .SENT ) {
283+ msgDaoSource .updateMessageState (context , genMsgDetails .getEmail (),
284+ genMsgDetails .getLabel (), genMsgDetails .getUid (), MessageState .QUEUED );
285+ }
286286
287287 publishProgress (true );
288288
289289 break ;
290290 } else {
291- MessageState newMessageState = MessageState .ERROR_SENDING_FAILED ;
291+ MessageState newMsgState = MessageState .ERROR_SENDING_FAILED ;
292292
293293 if (e instanceof MailConnectException ) {
294- newMessageState = MessageState .QUEUED ;
294+ newMsgState = MessageState .QUEUED ;
295295 }
296296
297297 if (e instanceof MessagingException ) {
298298 if (e .getCause () != null ) {
299299 if (e .getCause () instanceof SSLException
300300 || e .getCause () instanceof SocketException ) {
301- newMessageState = MessageState .QUEUED ;
301+ newMsgState = MessageState .QUEUED ;
302302 }
303303 }
304304 }
305305
306306 if (e .getCause () != null ) {
307307 if (e .getCause () instanceof FileNotFoundException ) {
308- newMessageState = MessageState .ERROR_CACHE_PROBLEM ;
308+ newMsgState = MessageState .ERROR_CACHE_PROBLEM ;
309309 }
310310 }
311311
312- messageDaoSource .updateMessageState (context , generalMessageDetails .getEmail (),
313- generalMessageDetails .getLabel (), generalMessageDetails .getUid (), newMessageState );
312+ msgDaoSource .updateMessageState (context , genMsgDetails .getEmail (),
313+ genMsgDetails .getLabel (), genMsgDetails .getUid (), newMsgState );
314314 }
315315
316316 Thread .sleep (5000 );
@@ -350,6 +350,15 @@ private void saveCopyOfAlreadySentMessages(Context context, AccountDao accountDa
350350 }
351351 } catch (Exception e ) {
352352 e .printStackTrace ();
353+ ExceptionUtil .handleError (e );
354+
355+ if (!GeneralUtil .isInternetConnectionAvailable (context )) {
356+ messageDaoSource .updateMessageState (context ,
357+ generalMessageDetails .getEmail (), generalMessageDetails .getLabel (),
358+ generalMessageDetails .getUid (), MessageState .SENT_WITHOUT_LOCAL_COPY );
359+ publishProgress (true );
360+ break ;
361+ }
353362
354363 if (e .getCause () != null ) {
355364 if (e .getCause () instanceof FileNotFoundException ) {
@@ -364,11 +373,6 @@ private void saveCopyOfAlreadySentMessages(Context context, AccountDao accountDa
364373 messageDaoSource .deleteMessageFromFolder (context , accountDao .getEmail (),
365374 JavaEmailConstants .FOLDER_OUTBOX , generalMessageDetails .getUid ());
366375 }
367-
368- if (!GeneralUtil .isInternetConnectionAvailable (context )) {
369- publishProgress (true );
370- break ;
371- }
372376 }
373377 }
374378 }
0 commit comments