|
|
@ -682,24 +682,10 @@ public class ServiceSynchronize extends LifecycleService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
List<EntityFolder> folders = db.folder().getFolders(account.id);
|
|
|
|
|
|
|
|
Collections.sort(folders, new Comparator<EntityFolder>() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public int compare(EntityFolder f1, EntityFolder f2) {
|
|
|
|
|
|
|
|
int s1 = EntityFolder.FOLDER_SORT_ORDER.indexOf(f1.type);
|
|
|
|
|
|
|
|
int s2 = EntityFolder.FOLDER_SORT_ORDER.indexOf(f2.type);
|
|
|
|
|
|
|
|
int s = Integer.compare(s1, s2);
|
|
|
|
|
|
|
|
if (s != 0)
|
|
|
|
|
|
|
|
return s;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return f1.name.compareTo(f2.name);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Initiate connection
|
|
|
|
// Initiate connection
|
|
|
|
EntityLog.log(this, account.name + " connecting");
|
|
|
|
EntityLog.log(this, account.name + " connecting");
|
|
|
|
for (EntityFolder folder : folders)
|
|
|
|
db.folder().setFolderStates(account.id, null);
|
|
|
|
db.folder().setFolderState(folder.id, null);
|
|
|
|
|
|
|
|
db.account().setAccountState(account.id, "connecting");
|
|
|
|
db.account().setAccountState(account.id, "connecting");
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
@ -747,6 +733,21 @@ public class ServiceSynchronize extends LifecycleService {
|
|
|
|
|
|
|
|
|
|
|
|
// Open synchronizing folders
|
|
|
|
// Open synchronizing folders
|
|
|
|
final ExecutorService executor = Executors.newSingleThreadExecutor(Helper.backgroundThreadFactory);
|
|
|
|
final ExecutorService executor = Executors.newSingleThreadExecutor(Helper.backgroundThreadFactory);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<EntityFolder> folders = db.folder().getFolders(account.id);
|
|
|
|
|
|
|
|
Collections.sort(folders, new Comparator<EntityFolder>() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public int compare(EntityFolder f1, EntityFolder f2) {
|
|
|
|
|
|
|
|
int s1 = EntityFolder.FOLDER_SORT_ORDER.indexOf(f1.type);
|
|
|
|
|
|
|
|
int s2 = EntityFolder.FOLDER_SORT_ORDER.indexOf(f2.type);
|
|
|
|
|
|
|
|
int s = Integer.compare(s1, s2);
|
|
|
|
|
|
|
|
if (s != 0)
|
|
|
|
|
|
|
|
return s;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return f1.name.compareTo(f2.name);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
for (final EntityFolder folder : folders) {
|
|
|
|
for (final EntityFolder folder : folders) {
|
|
|
|
if (folder.synchronize && !folder.poll && capIdle) {
|
|
|
|
if (folder.synchronize && !folder.poll && capIdle) {
|
|
|
|
Log.i(account.name + " sync folder " + folder.name);
|
|
|
|
Log.i(account.name + " sync folder " + folder.name);
|
|
|
@ -957,6 +958,7 @@ public class ServiceSynchronize extends LifecycleService {
|
|
|
|
} else
|
|
|
|
} else
|
|
|
|
mapFolders.put(folder, null);
|
|
|
|
mapFolders.put(folder, null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Log.i(folder.name + " observing");
|
|
|
|
handler.post(new Runnable() {
|
|
|
|
handler.post(new Runnable() {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
public void run() {
|
|
|
|