Fix wrong connection ID returned on rollover

ON rollover, an invalid connection ID was returned, causing the
connection details of another connection to be shown.
This commit is contained in:
emanuele-f 2022-03-29 14:31:25 +02:00
parent 4f969c9e13
commit 7c6798d52e
3 changed files with 10 additions and 11 deletions

View File

@ -297,17 +297,16 @@ public class ConnectionsRegister {
}
public synchronized int getConnPositionById(int incr_id) {
int first = firstPos();
if(mCurItems <= 0)
return -1;
for(int i = 0; i < mCurItems; i++) {
int pos = (first + i) % mSize;
ConnectionDescriptor item = mItemsRing[pos];
ConnectionDescriptor first = mItemsRing[firstPos()];
ConnectionDescriptor last = mItemsRing[lastPos()];
if((item != null) && (item.incr_id == incr_id))
return pos;
}
if((incr_id < first.incr_id) || (incr_id > last.incr_id))
return -1;
return -1;
return(incr_id - first.incr_id);
}
public synchronized @Nullable ConnectionDescriptor getConnById(int incr_id) {

View File

@ -45,7 +45,7 @@ import java.util.ArrayList;
public class ConnectionDetailsActivity extends BaseActivity implements ConnectionsListener {
private static final String TAG = "ConnectionDetails";
public static final String CONN_EXTRA_KEY = "conn_id";
public static final String CONN_ID_KEY = "conn_id";
private static final int MAX_CHUNKS_TO_CHECK = 10;
private ConnectionDescriptor mConn;
private ViewPager2 mPager;
@ -75,7 +75,7 @@ public class ConnectionDetailsActivity extends BaseActivity implements Connectio
displayBackAction();
setContentView(R.layout.activity_connection_details);
int incr_id = getIntent().getIntExtra(CONN_EXTRA_KEY, -1);
int incr_id = getIntent().getIntExtra(CONN_ID_KEY, -1);
if(incr_id != -1) {
ConnectionsRegister reg = CaptureService.getConnsRegister();
if(reg != null)

View File

@ -205,7 +205,7 @@ public class ConnectionsFragment extends Fragment implements ConnectionsListener
if(item != null) {
Intent intent = new Intent(requireContext(), ConnectionDetailsActivity.class);
intent.putExtra(ConnectionDetailsActivity.CONN_EXTRA_KEY, item.incr_id);
intent.putExtra(ConnectionDetailsActivity.CONN_ID_KEY, item.incr_id);
startActivity(intent);
}
});