Fix glitch in connection payload

Plaintext payload was initally displayed as hexdump and soon
after displayed as printable text, causing a visual glitch
This commit is contained in:
emanuele-f 2023-02-09 11:02:48 +01:00
parent 5f94fb47a6
commit 3db105a57c
2 changed files with 7 additions and 2 deletions

View File

@ -66,11 +66,12 @@ public class PayloadAdapter extends RecyclerView.Adapter<PayloadAdapter.PayloadV
private final HTTPReassembly mHttpRes;
private boolean mShowAsPrintable;
public PayloadAdapter(Context context, ConnectionDescriptor conn, ChunkType mode) {
public PayloadAdapter(Context context, ConnectionDescriptor conn, ChunkType mode, boolean showAsPrintable) {
mLayoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mConn = conn;
mContext = context;
mMode = mode;
mShowAsPrintable = showAsPrintable;
// Note: in minimal mode, only the first chunk is captured, so don't reassemble them
boolean reassemble = (CaptureService.getCurPayloadMode() == Prefs.PayloadMode.FULL);

View File

@ -117,8 +117,12 @@ public class ConnectionPayload extends Fragment implements ConnectionDetailsActi
if(mConn.isPayloadTruncated())
mTruncatedWarning.setVisibility(View.VISIBLE);
mAdapter = new PayloadAdapter(requireContext(), mConn, mode);
mCurChunks = mConn.getNumPayloadChunks();
if(mCurChunks > 0)
mShowAsPrintable = guessDisplayAsPrintable();
else
mShowAsPrintable = false;
mAdapter = new PayloadAdapter(requireContext(), mConn, mode, mShowAsPrintable);
mJustCreated = true;
// only set adapter after acknowledged (see setMenuVisibility below)