private void handleServerFolderChange(Folder folder) throws AuthenticationFailedException { long accountId = folder.accountId; List<Message> m = new ArrayList<Message>(); List<String> remoteSIds = new ArrayList<String>(); List<String> localSids = Note.getAllSyncedNoteSidByFolderId(folder.id, accountId, application.getDBHelper()); try { Message[] messages = imapStoreClient.getMessages(folder.name); for (Message msg : messages) { remoteSIds.add(msg.getUid()); if (!localSids.contains(msg.getUid())) m.add(msg); } if (m.size() > 0) { fetMessages(m, folder); } } catch (AuthenticationFailedException e) { Log.e(TAG, "", e); throw new AuthenticationFailedException(e.getLocalizedMessage()); } catch (MessagingException e) { Log.e(TAG, "", e); throw new AuthenticationFailedException(e.getLocalizedMessage()); } handleRemoteDeletedNotes(accountId, folder.id, remoteSIds); }
@Override public void instance(INotesApplication application) { super.instance(application); imapStoreClient = new ImapStoreClient(); try { if (!application.getAccountManager().isLocalMode()) { imapStoreClient.init(application.getAccountManager().getAccount(), application); loginUser = application.getAccountManager().getEmail(); } } catch (AuthenticationFailedException e) { Log.e(TAG, "", e); throw new AuthenticationErrorException(e.getLocalizedMessage()); } }