Browse Source

delete attacks by filter

julien.clauter 9 years ago
parent
commit
9fe3ac57d6

+ 13 - 0
src/de/tudarmstadt/informatik/hostage/persistence/HostageDBOpenHelper.java

@@ -1301,6 +1301,19 @@ public class HostageDBOpenHelper extends SQLiteOpenHelper {
 		db.close();
 	}
 
+    /**
+     * Deletes all attacks for the given filter object.
+     * @param filter
+     */
+    public synchronized void deleteAttacksByFilter(LogFilter filter){
+        String selectQuery = this.selectionQueryFromFilter(filter, "*");
+        String deleteQuery = selectQuery.replace("SELECT *","DELETE ");
+
+        SQLiteDatabase db = this.getReadableDatabase();
+        db.execSQL(deleteQuery);
+        db.close();
+    }
+
     public ArrayList<MessageRecord> getMessageRecords(AttackRecord attackRecord , SQLiteDatabase db){
         ArrayList<MessageRecord> mr = new ArrayList<MessageRecord>();
 

+ 9 - 0
src/de/tudarmstadt/informatik/hostage/ui/fragment/RecordOverviewFragment.java

@@ -1328,6 +1328,15 @@ public class RecordOverviewFragment extends UpNavigatibleFragment implements Che
         }
     }
 
+    /**
+     * Deletes the current displayed attacks.
+     */
+    public void deleteFilteredAttacks(){
+        LogFilter filter = this.filter;
+        dbh.deleteAttacksByFilter(filter);
+        this.actualiseListViewInBackground();
+    }
+
     /**
      * Will be called if the users clicks the negativ button on a ChechlistDialog.
      * @param  dialog  {@link ChecklistDialog ChecklistDialog }