From 90875c58050ad70e56e079515c322e8afe768534 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 8 Mar 2017 22:04:43 +0100 Subject: [PATCH] Show number of domains for IP address --- .../main/java/eu/faircode/netguard/AdapterAccess.java | 5 ++++- .../main/java/eu/faircode/netguard/DatabaseHelper.java | 9 +++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/faircode/netguard/AdapterAccess.java b/app/src/main/java/eu/faircode/netguard/AdapterAccess.java index d33423f9..b3c93a5c 100644 --- a/app/src/main/java/eu/faircode/netguard/AdapterAccess.java +++ b/app/src/main/java/eu/faircode/netguard/AdapterAccess.java @@ -53,6 +53,7 @@ public class AdapterAccess extends CursorAdapter { private int colTime; private int colAllowed; private int colBlock; + private int colCount; private int colSent; private int colReceived; private int colConnections; @@ -71,6 +72,7 @@ public class AdapterAccess extends CursorAdapter { colTime = cursor.getColumnIndex("time"); colAllowed = cursor.getColumnIndex("allowed"); colBlock = cursor.getColumnIndex("block"); + colCount = cursor.getColumnIndex("count"); colSent = cursor.getColumnIndex("sent"); colReceived = cursor.getColumnIndex("received"); colConnections = cursor.getColumnIndex("connections"); @@ -105,6 +107,7 @@ public class AdapterAccess extends CursorAdapter { long time = cursor.getLong(colTime); int allowed = cursor.getInt(colAllowed); int block = cursor.getInt(colBlock); + int count = cursor.getInt(colCount); long sent = cursor.isNull(colSent) ? -1 : cursor.getLong(colSent); long received = cursor.isNull(colReceived) ? -1 : cursor.getLong(colReceived); int connections = cursor.isNull(colConnections) ? -1 : cursor.getInt(colConnections); @@ -130,7 +133,7 @@ public class AdapterAccess extends CursorAdapter { } String dest = Util.getProtocolName(protocol, version, true) + - " " + daddr + (dport > 0 ? "/" + dport : ""); + " " + daddr + (dport > 0 ? "/" + dport : "") + (count > 1 ? " ?" + count : ""); SpannableString span = new SpannableString(dest); span.setSpan(new UnderlineSpan(), 0, dest.length(), 0); tvDest.setText(span); diff --git a/app/src/main/java/eu/faircode/netguard/DatabaseHelper.java b/app/src/main/java/eu/faircode/netguard/DatabaseHelper.java index 5554ee12..21df5983 100644 --- a/app/src/main/java/eu/faircode/netguard/DatabaseHelper.java +++ b/app/src/main/java/eu/faircode/netguard/DatabaseHelper.java @@ -679,10 +679,11 @@ public class DatabaseHelper extends SQLiteOpenHelper { SQLiteDatabase db = this.getReadableDatabase(); // There is a segmented index on uid // There is no index on time for write performance - String query = "SELECT ID AS _id, *"; - query += " FROM access"; - query += " WHERE uid = ?"; - query += " ORDER BY time DESC"; + String query = "SELECT a.ID AS _id, a.*"; + query += ", (SELECT COUNT(*) FROM dns d WHERE d.resource = (SELECT d1.resource FROM dns d1 WHERE d1.qname = a.daddr)) count"; + query += " FROM access a"; + query += " WHERE a.uid = ?"; + query += " ORDER BY a.time DESC"; query += " LIMIT 50"; return db.rawQuery(query, new String[]{Integer.toString(uid)}); } finally {