diff --git a/app/build.gradle b/app/build.gradle index 030bd12..5924a4c 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,8 +7,8 @@ android { minSdkVersion 19 targetSdkVersion 28 multiDexEnabled true - versionCode 152200304 - versionName "1.5.2" + versionCode 153200308 + versionName "1.5.3" externalNativeBuild { cmake { cppFlags "-std=c++11 -pthread -frtti -fexceptions" diff --git a/app/src/main/java/it/pgp/xfiles/service/BaseBackgroundTask.java b/app/src/main/java/it/pgp/xfiles/service/BaseBackgroundTask.java index 923f9c5..e36cf65 100755 --- a/app/src/main/java/it/pgp/xfiles/service/BaseBackgroundTask.java +++ b/app/src/main/java/it/pgp/xfiles/service/BaseBackgroundTask.java @@ -8,8 +8,8 @@ import android.view.WindowManager; import java.io.Serializable; -import java.util.ArrayDeque; import java.util.Deque; +import java.util.concurrent.ConcurrentLinkedDeque; import it.pgp.xfiles.enums.FileOpsErrorCodes; import it.pgp.xfiles.enums.ForegroundServiceType; @@ -32,7 +32,7 @@ public abstract class BaseBackgroundTask extends AsyncTask nextAutoTasks = new ArrayDeque<>(); + public static final Deque nextAutoTasks = new ConcurrentLinkedDeque<>(); public BaseBackgroundTask(Serializable params) { this.params = params; @@ -115,8 +115,14 @@ protected void onPostExecute(Object o) { ProgressIndicator.release(); if(!nextAutoTasks.isEmpty()) { - Log.d(getClass().getName(),"Starting next auto task..."); - new Thread(nextAutoTasks.pop()).start(); + if(result == null || result == FileOpsErrorCodes.OK) { + Log.d(getClass().getName(),"Starting next auto task..."); + new Thread(nextAutoTasks.pop()).start(); + } + else { + Log.d(getClass().getName(),"Current task failed, clearing next auto tasks..."); + nextAutoTasks.clear(); + } } }