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

View file

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

View file

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