New method in IndexesForest: remove(Account account). Use this method for cancelling...
[pub/Android/ownCloud.git] / src / com / owncloud / android / files / services / IndexedForest.java
index e2e9cb8..1343a8c 100644 (file)
@@ -21,8 +21,11 @@ import android.accounts.Account;
 import android.util.Pair;
 
 import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.operations.UploadFileOperation;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Set;
@@ -211,6 +214,21 @@ public class IndexedForest<V> {
 
 
     /**
+     * Remove the elements that contains account as a part of its key
+     * @param account
+     */
+    public void remove(Account account){
+        Iterator<String> it = mMap.keySet().iterator();
+        while (it.hasNext()) {
+            String key = it.next();
+            Log_OC.d("IndexedForest", "Number of pending downloads= "  + mMap.size());
+            if (key.startsWith(account.name)) {
+                mMap.remove(key);
+            }
+        }
+    }
+
+    /**
      * Builds a key to index files
      *
      * @param account       Account where the file to download is stored