diff --git a/app/src/main/java/com/emanuelef/remote_capture/CaptureService.java b/app/src/main/java/com/emanuelef/remote_capture/CaptureService.java
index 9094d06c..d100b7bc 100644
--- a/app/src/main/java/com/emanuelef/remote_capture/CaptureService.java
+++ b/app/src/main/java/com/emanuelef/remote_capture/CaptureService.java
@@ -87,8 +87,8 @@ public class CaptureService extends VpnService implements Runnable {
private NotificationCompat.Builder mNotificationBuilder;
/* The maximum connections to log into the ConnectionsRegister. Older connections are dropped.
- * Max Estimated max memory usage: less than 2 MB. */
- public static final int CONNECTIONS_LOG_SIZE = 4192;
+ * Max Estimated max memory usage: less than 4 MB. */
+ public static final int CONNECTIONS_LOG_SIZE = 8192;
/* The IP address of the virtual network interface */
public static final String VPN_IP_ADDRESS = "10.215.173.1";
diff --git a/app/src/main/java/com/emanuelef/remote_capture/fragments/ConnectionsFragment.java b/app/src/main/java/com/emanuelef/remote_capture/fragments/ConnectionsFragment.java
index 4a4bd99e..05c3c540 100644
--- a/app/src/main/java/com/emanuelef/remote_capture/fragments/ConnectionsFragment.java
+++ b/app/src/main/java/com/emanuelef/remote_capture/fragments/ConnectionsFragment.java
@@ -76,6 +76,7 @@ public class ConnectionsFragment extends Fragment implements ConnectionsListener
private View mFabDown;
private EmptyRecyclerView mRecyclerView;
private TextView mEmptyText;
+ private TextView mOldConnectionsText;
private boolean autoScroll;
private boolean listenerSet;
private MenuItem mMenuItemAppSel;
@@ -87,6 +88,7 @@ public class ConnectionsFragment extends Fragment implements ConnectionsListener
private boolean mOpenAppsWhenDone;
private BroadcastReceiver mReceiver;
private Uri mCsvFname;
+ private boolean hasUntrackedConnections;
@Override
public void onDestroy() {
@@ -136,6 +138,7 @@ public class ConnectionsFragment extends Fragment implements ConnectionsListener
mHandler = new Handler(Looper.getMainLooper());
mFabDown = view.findViewById(R.id.fabDown);
mRecyclerView = view.findViewById(R.id.connections_view);
+ mOldConnectionsText = view.findViewById(R.id.old_connections_notice);
LinearLayoutManager layoutMan = new LinearLayoutManager(getContext());
mRecyclerView.setLayoutManager(layoutMan);
@@ -179,6 +182,7 @@ public class ConnectionsFragment extends Fragment implements ConnectionsListener
autoScroll = true;
showFabDown(false);
+ mOldConnectionsText.setVisibility(View.GONE);
mFabDown.setOnClickListener(v -> scrollToBottom());
@@ -230,6 +234,8 @@ public class ConnectionsFragment extends Fragment implements ConnectionsListener
autoScroll = true;
showFabDown(false);
+ mOldConnectionsText.setVisibility(View.GONE);
+ hasUntrackedConnections = false;
mEmptyText.setText(R.string.no_connections);
}
@@ -270,6 +276,11 @@ public class ConnectionsFragment extends Fragment implements ConnectionsListener
}
} else
showFabDown(false);
+
+ if((first_visibile_pos == 0) && hasUntrackedConnections)
+ mOldConnectionsText.setVisibility(View.VISIBLE);
+ else
+ mOldConnectionsText.setVisibility(View.GONE);
}
private void showFabDown(boolean visible) {
@@ -284,6 +295,7 @@ public class ConnectionsFragment extends Fragment implements ConnectionsListener
mRecyclerView.scrollToPosition(last_pos);
showFabDown(false);
+ mOldConnectionsText.setVisibility(View.GONE);
}
@Override
@@ -344,6 +356,18 @@ public class ConnectionsFragment extends Fragment implements ConnectionsListener
if(autoScroll)
scrollToBottom();
+
+ ConnectionsRegister reg = CaptureService.getConnsRegister();
+
+ if((reg != null) && (reg.getUntrackedConnCount() > 0)) {
+ String info = String.format(getString(R.string.older_connections_notice), reg.getUntrackedConnCount());
+ mOldConnectionsText.setText(info);
+
+ if(!hasUntrackedConnections) {
+ hasUntrackedConnections = true;
+ recheckScroll();
+ }
+ }
});
}
diff --git a/app/src/main/res/layout/connections.xml b/app/src/main/res/layout/connections.xml
index b09717a7..b7e4a862 100644
--- a/app/src/main/res/layout/connections.xml
+++ b/app/src/main/res/layout/connections.xml
@@ -2,14 +2,41 @@
-
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+
+
+
+
+
+
+
-
-
-
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index dd1e453b..fa1c7353 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -111,5 +111,6 @@
IPProto,SrcIP,SrcPort,DstIp,DstPort,Uid,App,Proto,Status,Info,BytesSent,BytesRcvd,PktsSent,PktsRcvd,FirstSeen,LastSeen
Save to file
File successfully saved
+ %1$d older connections not shown