tls-psk: clear all data on connection reset

This commit is contained in:
Vincent Breitmoser 2017-05-30 21:34:53 +02:00
parent f4d9d0a7c0
commit 13873e934f
3 changed files with 16 additions and 5 deletions

View file

@ -187,6 +187,10 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
wasConnected = true;
secretKeyAdapter.clearFinishedItems();
secretKeyAdapter.focusItem(null);
secretKeyAdapter.setAllDisabled(false);
receivedKeyAdapter.clear();
view.showConnectionEstablished(otherName);
view.addFakeBackStackItem(BACKSTACK_TAG_TRANSFER);
}
@ -199,7 +203,7 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
connectionResetAndStartListen();
} else {
view.showViewDisconnected();
secretKeyAdapter.disableAll();
secretKeyAdapter.setAllDisabled(true);
}
}

View file

@ -101,6 +101,13 @@ public class ReceivedSecretKeyList extends RecyclerView {
data.add(receivedKeyItem);
notifyItemInserted(data.size() -1);
}
public void clear() {
data.clear();
finishedItems.clear();
focusedMasterKeyId = null;
notifyDataSetChanged();
}
}
static class ReceivedKeyViewHolder extends ViewHolder {

View file

@ -60,7 +60,7 @@ public class TransferSecretKeyList extends RecyclerView {
private Long focusedMasterKeyId;
private List<SecretKeyItem> data;
private ArrayList<Long> finishedItems = new ArrayList<>();
private boolean disableAll;
private boolean allItemsDisabled;
public TransferKeyAdapter(Context context, LayoutInflater layoutInflater,
@ -79,7 +79,7 @@ public class TransferSecretKeyList extends RecyclerView {
public void onBindViewHolder(TransferKeyViewHolder holder, int position) {
SecretKeyItem item = data.get(position);
boolean isFinished = finishedItems.contains(item.masterKeyId);
holder.bind(context, item, onClickTransferKeyListener, focusedMasterKeyId, isFinished, disableAll);
holder.bind(context, item, onClickTransferKeyListener, focusedMasterKeyId, isFinished, allItemsDisabled);
}
@Override
@ -116,8 +116,8 @@ public class TransferSecretKeyList extends RecyclerView {
return new SecretKeyLoader(context, context.getContentResolver());
}
public void disableAll() {
disableAll = true;
public void setAllDisabled(boolean allItemsdisablde) {
allItemsDisabled = allItemsdisablde;
notifyItemRangeChanged(0, getItemCount());
}
}