diff --git a/briar-android/src/net/sf/briar/android/invitation/AddContactActivity.java b/briar-android/src/net/sf/briar/android/invitation/AddContactActivity.java index c4fc69b0ab24568027abf755bab407033a1a6a6d..c197ac8f58b478170669e2bbaf068cfc0677a940 100644 --- a/briar-android/src/net/sf/briar/android/invitation/AddContactActivity.java +++ b/briar-android/src/net/sf/briar/android/invitation/AddContactActivity.java @@ -174,11 +174,9 @@ implements InvitationListener { } void reset(AddContactView view) { - // Note: localAuthorId is not reset + // Don't reset localAuthorId, networkName or useBluetooth task = null; taskHandle = -1; - networkName = null; - useBluetooth = false; localInvitationCode = -1; localConfirmationCode = remoteConfirmationCode = -1; connectionFailed = false; @@ -255,12 +253,14 @@ implements InvitationListener { } void remoteInvitationCodeEntered(int code) { - setView(new ConnectionView(this)); if(localAuthorId == null) throw new IllegalStateException(); if(localInvitationCode == -1) throw new IllegalStateException(); + setView(new ConnectionView(this)); task = invitationTaskFactory.createTask(localAuthorId, localInvitationCode, code); taskHandle = referenceManager.putReference(task, InvitationTask.class); + // FIXME: Why can't the activity clean up the reference? If the task + // has a reference to the activity (as a listener), it won't be GCed task.addListener(AddContactActivity.this); task.addListener(new ReferenceCleaner(referenceManager, taskHandle)); task.connect(); diff --git a/briar-android/src/net/sf/briar/android/invitation/ConnectionView.java b/briar-android/src/net/sf/briar/android/invitation/ConnectionView.java index 11b22c02a43d2bcbac0d1cea44b10012f11118e4..ba5e089d1163e3c87ea81d639416afe812359514 100644 --- a/briar-android/src/net/sf/briar/android/invitation/ConnectionView.java +++ b/briar-android/src/net/sf/briar/android/invitation/ConnectionView.java @@ -32,7 +32,6 @@ public class ConnectionView extends AddContactView { code.setText(String.format("%06d", localCode)); addView(code); - // FIXME: These spinners don't appear when trying again after a failure String networkName = container.getNetworkName(); if(networkName != null) { LinearLayout innerLayout = new LinearLayout(ctx); @@ -53,8 +52,7 @@ public class ConnectionView extends AddContactView { addView(innerLayout); } - boolean useBluetooth = container.getUseBluetooth(); - if(useBluetooth) { + if(container.getUseBluetooth()) { LinearLayout innerLayout = new LinearLayout(ctx); innerLayout.setOrientation(HORIZONTAL); innerLayout.setGravity(CENTER);