Browse Source

statistic bug fix

Julien Clauter 9 years ago
parent
commit
579c2b7d64

+ 11 - 7
src/de/tudarmstadt/informatik/hostage/persistence/HostageDBOpenHelper.java

@@ -469,7 +469,7 @@ public class HostageDBOpenHelper extends SQLiteOpenHelper {
             for (SyncDevice device : allDevices){
                 Long sync_id = deviceIDmap.get(device.getDeviceID());
                 long highestID = device.getHighest_attack_id();
-                if (sync_id != null) highestID = sync_id.longValue();
+                if (sync_id != null && highestID < sync_id) highestID = sync_id.longValue();
                 device.setHighest_attack_id(highestID);
             }
             this.updateSyncDevices(allDevices, db);
@@ -1848,9 +1848,11 @@ public class HostageDBOpenHelper extends SQLiteOpenHelper {
 
         String filterQuery = this.selectionQueryFromFilter(filter, AttackEntry.COLUMN_NAME_ATTACK_ID);
 
-        String attackPerESSID_Query = "SELECT " + NetworkEntry.COLUMN_NAME_SSID + " , " + "COUNT( " + AttackEntry.COLUMN_NAME_ATTACK_ID + "  ) " + " "
-                                    + " FROM " + AttackEntry.TABLE_NAME + " a " + " , " + NetworkEntry.TABLE_NAME
-                                    + " WHERE " + " a." + AttackEntry.COLUMN_NAME_ATTACK_ID + " IN " + " ( " + filterQuery + " ) "
+        filterQuery = filterQuery.split("GROUP BY")[0];
+
+        String attackPerESSID_Query = "SELECT " + NetworkEntry.COLUMN_NAME_SSID + " , " + "COUNT( " + " * " + "  ) " + " "
+                                    + " FROM "  +  AttackEntry.TABLE_NAME + " NATURAL JOIN " + NetworkEntry.TABLE_NAME //AttackEntry.TABLE_NAME + " a " + " , " + NetworkEntry.TABLE_NAME
+                                    + " WHERE " + AttackEntry.COLUMN_NAME_ATTACK_ID + " IN " + " ( " + filterQuery + " ) "
                                     + " GROUP BY " + NetworkEntry.TABLE_NAME+"."+NetworkEntry.COLUMN_NAME_SSID;
 
         SQLiteDatabase db = this.getReadableDatabase();
@@ -2093,10 +2095,12 @@ public class HostageDBOpenHelper extends SQLiteOpenHelper {
 
         String filterQuery = this.selectionQueryFromFilter(filter, AttackEntry.COLUMN_NAME_ATTACK_ID);
 
-        String attackPerBSSID_Query = "SELECT " + NetworkEntry.TABLE_NAME + "." + NetworkEntry.COLUMN_NAME_BSSID + " , " + "COUNT( " + AttackEntry.COLUMN_NAME_ATTACK_ID + "  ) " + " "
-                + " FROM " + AttackEntry.TABLE_NAME + " a " + " , " + NetworkEntry.TABLE_NAME
+        filterQuery = filterQuery.split("GROUP BY")[0];
+
+        String attackPerBSSID_Query = "SELECT " + AttackEntry.COLUMN_NAME_BSSID + " , " + "COUNT( " + "*" + "  ) " + " "
+                + " FROM " + AttackEntry.TABLE_NAME + " a "
                 + " WHERE " + " a." + AttackEntry.COLUMN_NAME_ATTACK_ID + " IN " + " ( " + filterQuery + " ) "
-                + " GROUP BY " + NetworkEntry.TABLE_NAME + "." + NetworkEntry.COLUMN_NAME_BSSID;
+                + " GROUP BY " + AttackEntry.COLUMN_NAME_BSSID;
 
         SQLiteDatabase db = this.getReadableDatabase();
         Cursor cursor = db.rawQuery(attackPerBSSID_Query, null);