diff --git a/briar-android/src/org/briarproject/android/BriarActivity.java b/briar-android/src/org/briarproject/android/BriarActivity.java index 583269766a0b8de9b64d43422d05f04926e86358..74e2b282ab4bcb1e888ef6e0d234dcaf072dc586 100644 --- a/briar-android/src/org/briarproject/android/BriarActivity.java +++ b/briar-android/src/org/briarproject/android/BriarActivity.java @@ -20,7 +20,7 @@ public class BriarActivity extends RoboFragmentActivity { // This build expires on 7 February 2014 private static final long EXPIRY_DATE = 1391731200 * 1000L; - private static final int PASSWORD_REQUEST_CODE = 1; + private static final int REQUEST_PASSWORD = 1; private static final Logger LOG = Logger.getLogger(BriarActivity.class.getName()); @@ -45,7 +45,7 @@ public class BriarActivity extends RoboFragmentActivity { if(LOG.isLoggable(INFO)) LOG.info("No password"); Intent i = new Intent(this, PasswordActivity.class); i.setFlags(FLAG_ACTIVITY_NO_ANIMATION); - startActivityForResult(i, PASSWORD_REQUEST_CODE); + startActivityForResult(i, REQUEST_PASSWORD); } else { startAndBindService(); } @@ -53,7 +53,8 @@ public class BriarActivity extends RoboFragmentActivity { @Override public void onActivityResult(int request, int result, Intent data) { - if(request == PASSWORD_REQUEST_CODE) { + super.onActivityResult(request, result, data); + if(request == REQUEST_PASSWORD) { if(result == RESULT_OK) startAndBindService(); else finish(); } diff --git a/briar-android/src/org/briarproject/android/HomeScreenActivity.java b/briar-android/src/org/briarproject/android/HomeScreenActivity.java index c299c986a787771b7ff6a15f6867ad01e9735d5c..6caeaf890a313353c5b1ff18506ef699a5c95286 100644 --- a/briar-android/src/org/briarproject/android/HomeScreenActivity.java +++ b/briar-android/src/org/briarproject/android/HomeScreenActivity.java @@ -53,9 +53,7 @@ public class HomeScreenActivity extends BriarActivity { @Override public void onCreate(Bundle state) { super.onCreate(state); - if(LOG.isLoggable(INFO)) LOG.info("Created"); - Intent i = getIntent(); - long handle = i.getLongExtra("briar.LOCAL_AUTHOR_HANDLE", -1); + long handle = getIntent().getLongExtra("briar.LOCAL_AUTHOR_HANDLE", -1); if(handle == -1) { // The activity has been launched before showButtons(); diff --git a/briar-android/src/org/briarproject/android/PasswordActivity.java b/briar-android/src/org/briarproject/android/PasswordActivity.java index 485cc19cd355341ab85c1af16c5fbe239302419f..393b981e9760c8e954941af80e1efefc3b0038bc 100644 --- a/briar-android/src/org/briarproject/android/PasswordActivity.java +++ b/briar-android/src/org/briarproject/android/PasswordActivity.java @@ -127,7 +127,7 @@ public class PasswordActivity extends RoboActivity { tryAgain(); } else { databaseConfig.setEncryptionKey(key); - returnOk(); + setResultAndFinish(); } } }); @@ -143,7 +143,7 @@ public class PasswordActivity extends RoboActivity { }); } - private void returnOk() { + private void setResultAndFinish() { runOnUiThread(new Runnable() { public void run() { setResult(RESULT_OK); diff --git a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java index 585f4281a406ce9b67273e65170bb0701584ad93..68b8629ba59b14eeb815bef6689435ee6da4d401 100644 --- a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java +++ b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java @@ -6,6 +6,7 @@ import static android.view.View.VISIBLE; import static android.widget.LinearLayout.VERTICAL; import static java.util.logging.Level.INFO; import static java.util.logging.Level.WARNING; +import static org.briarproject.android.contact.ReadPrivateMessageActivity.RESULT_PREV_NEXT; import static org.briarproject.android.util.CommonLayoutParams.MATCH_MATCH; import static org.briarproject.android.util.CommonLayoutParams.MATCH_WRAP_1; @@ -47,6 +48,7 @@ import android.widget.ListView; public class ConversationActivity extends RoboActivity implements EventListener, OnClickListener, OnItemClickListener { + private static final int REQUEST_READ_MESSAGE = 2; private static final Logger LOG = Logger.getLogger(ConversationActivity.class.getName()); @@ -180,12 +182,10 @@ implements EventListener, OnClickListener, OnItemClickListener { @Override public void onActivityResult(int request, int result, Intent data) { - if(result == ReadPrivateMessageActivity.RESULT_PREV) { - int position = request - 1; - if(position >= 0 && position < adapter.getCount()) - displayMessage(position); - } else if(result == ReadPrivateMessageActivity.RESULT_NEXT) { - int position = request + 1; + super.onActivityResult(request, result, data); + if(request == REQUEST_READ_MESSAGE && result == RESULT_PREV_NEXT) { + int position = data.getIntExtra("briar.POSITION", -1); + if(position == -1) throw new IllegalStateException(); if(position >= 0 && position < adapter.getCount()) displayMessage(position); } @@ -244,6 +244,7 @@ implements EventListener, OnClickListener, OnItemClickListener { i.putExtra("briar.MESSAGE_ID", header.getId().getBytes()); i.putExtra("briar.CONTENT_TYPE", header.getContentType()); i.putExtra("briar.TIMESTAMP", header.getTimestamp()); - startActivityForResult(i, position); + i.putExtra("briar.POSITION", position); + startActivityForResult(i, REQUEST_READ_MESSAGE); } } diff --git a/briar-android/src/org/briarproject/android/contact/ReadPrivateMessageActivity.java b/briar-android/src/org/briarproject/android/contact/ReadPrivateMessageActivity.java index 06c72712ac9bd69677663c678065b945bede152d..f26a6a6110c4708cfad5ba2bcae09d7c53a44083 100644 --- a/briar-android/src/org/briarproject/android/contact/ReadPrivateMessageActivity.java +++ b/briar-android/src/org/briarproject/android/contact/ReadPrivateMessageActivity.java @@ -48,8 +48,7 @@ public class ReadPrivateMessageActivity extends RoboActivity implements OnClickListener { static final int RESULT_REPLY = RESULT_FIRST_USER; - static final int RESULT_PREV = RESULT_FIRST_USER + 1; - static final int RESULT_NEXT = RESULT_FIRST_USER + 2; + static final int RESULT_PREV_NEXT = RESULT_FIRST_USER + 1; private static final Logger LOG = Logger.getLogger(ReadPrivateMessageActivity.class.getName()); @@ -60,6 +59,7 @@ implements OnClickListener { private ImageButton readButton = null, prevButton = null, nextButton = null; private ImageButton replyButton = null; private TextView content = null; + private int position = -1; // Fields that are accessed from background threads must be volatile @Inject private volatile DatabaseComponent db; @@ -92,6 +92,8 @@ implements OnClickListener { if(contentType == null) throw new IllegalStateException(); timestamp = i.getLongExtra("briar.TIMESTAMP", -1); if(timestamp == -1) throw new IllegalStateException(); + position = i.getIntExtra("briar.POSITION", -1); + if(position == -1) throw new IllegalStateException(); if(state == null) { read = false; @@ -262,10 +264,14 @@ implements OnClickListener { if(view == readButton) { setReadInDatabase(!read); } else if(view == prevButton) { - setResult(RESULT_PREV); + Intent i = new Intent(); + i.putExtra("briar.POSITION", position - 1); + setResult(RESULT_PREV_NEXT, i); finish(); } else if(view == nextButton) { - setResult(RESULT_NEXT); + Intent i = new Intent(); + i.putExtra("briar.POSITION", position + 1); + setResult(RESULT_PREV_NEXT, i); finish(); } else if(view == replyButton) { Intent i = new Intent(this, WritePrivateMessageActivity.class); diff --git a/briar-android/src/org/briarproject/android/groups/GroupActivity.java b/briar-android/src/org/briarproject/android/groups/GroupActivity.java index f5023b8be8410412c4a8264304ec9e3215539da6..35b230d6d201303671ac22a5cac320a43f2c94c9 100644 --- a/briar-android/src/org/briarproject/android/groups/GroupActivity.java +++ b/briar-android/src/org/briarproject/android/groups/GroupActivity.java @@ -6,8 +6,7 @@ import static android.view.View.VISIBLE; import static android.widget.LinearLayout.VERTICAL; import static java.util.logging.Level.INFO; import static java.util.logging.Level.WARNING; -import static org.briarproject.android.groups.ReadGroupPostActivity.RESULT_NEXT; -import static org.briarproject.android.groups.ReadGroupPostActivity.RESULT_PREV; +import static org.briarproject.android.groups.ReadGroupPostActivity.RESULT_PREV_NEXT; import static org.briarproject.android.util.CommonLayoutParams.MATCH_MATCH; import static org.briarproject.android.util.CommonLayoutParams.MATCH_WRAP_1; @@ -49,6 +48,7 @@ import android.widget.ListView; public class GroupActivity extends RoboActivity implements EventListener, OnClickListener, OnItemClickListener { + private static final int REQUEST_READ_POST = 2; private static final Logger LOG = Logger.getLogger(GroupActivity.class.getName()); @@ -170,12 +170,10 @@ OnClickListener, OnItemClickListener { @Override public void onActivityResult(int request, int result, Intent data) { - if(result == RESULT_PREV) { - int position = request - 1; - if(position >= 0 && position < adapter.getCount()) - displayMessage(position); - } else if(result == RESULT_NEXT) { - int position = request + 1; + super.onActivityResult(request, result, data); + if(request == REQUEST_READ_POST && result == RESULT_PREV_NEXT) { + int position = data.getIntExtra("briar.POSITION", -1); + if(position == -1) throw new IllegalStateException(); if(position >= 0 && position < adapter.getCount()) displayMessage(position); } @@ -227,13 +225,11 @@ OnClickListener, OnItemClickListener { i.putExtra("briar.GROUP_NAME", groupName); i.putExtra("briar.MESSAGE_ID", item.getId().getBytes()); Author author = item.getAuthor(); - if(author != null) { - i.putExtra("briar.AUTHOR_ID", author.getId().getBytes()); - i.putExtra("briar.AUTHOR_NAME", author.getName()); - } + if(author != null) i.putExtra("briar.AUTHOR_NAME", author.getName()); i.putExtra("briar.AUTHOR_STATUS", item.getAuthorStatus().name()); i.putExtra("briar.CONTENT_TYPE", item.getContentType()); i.putExtra("briar.TIMESTAMP", item.getTimestamp()); - startActivityForResult(i, position); + i.putExtra("briar.POSITION", position); + startActivityForResult(i, REQUEST_READ_POST); } } diff --git a/briar-android/src/org/briarproject/android/groups/ReadGroupPostActivity.java b/briar-android/src/org/briarproject/android/groups/ReadGroupPostActivity.java index d4591a8e3758456a189fb956148d71fb944e03ad..f0b8ce2129b786e4d5e4498a9dade08f14ac6eb2 100644 --- a/briar-android/src/org/briarproject/android/groups/ReadGroupPostActivity.java +++ b/briar-android/src/org/briarproject/android/groups/ReadGroupPostActivity.java @@ -47,8 +47,7 @@ public class ReadGroupPostActivity extends RoboActivity implements OnClickListener { static final int RESULT_REPLY = RESULT_FIRST_USER; - static final int RESULT_PREV = RESULT_FIRST_USER + 1; - static final int RESULT_NEXT = RESULT_FIRST_USER + 2; + static final int RESULT_PREV_NEXT = RESULT_FIRST_USER + 1; private static final Logger LOG = Logger.getLogger(ReadGroupPostActivity.class.getName()); @@ -58,6 +57,7 @@ implements OnClickListener { private ImageButton readButton = null, prevButton = null, nextButton = null; private ImageButton replyButton = null; private TextView content = null; + private int position = -1; // Fields that are accessed from background threads must be volatile @Inject private volatile DatabaseComponent db; @@ -84,6 +84,8 @@ implements OnClickListener { if(contentType == null) throw new IllegalStateException(); timestamp = i.getLongExtra("briar.TIMESTAMP", -1); if(timestamp == -1) throw new IllegalStateException(); + position = i.getIntExtra("briar.POSITION", -1); + if(position == -1) throw new IllegalStateException(); String authorName = i.getStringExtra("briar.AUTHOR_NAME"); String s = i.getStringExtra("briar.AUTHOR_STATUS"); if(s == null) throw new IllegalStateException(); @@ -258,10 +260,14 @@ implements OnClickListener { if(view == readButton) { setReadInDatabase(!read); } else if(view == prevButton) { - setResult(RESULT_PREV); + Intent i = new Intent(); + i.putExtra("briar.POSITION", position - 1); + setResult(RESULT_PREV_NEXT, i); finish(); } else if(view == nextButton) { - setResult(RESULT_NEXT); + Intent i = new Intent(); + i.putExtra("briar.POSITION", position + 1); + setResult(RESULT_PREV_NEXT, i); finish(); } else if(view == replyButton) { Intent i = new Intent(this, WriteGroupPostActivity.class); diff --git a/briar-android/src/org/briarproject/android/groups/WriteGroupPostActivity.java b/briar-android/src/org/briarproject/android/groups/WriteGroupPostActivity.java index 9c9e020bdf6157c06314cdd2f00bb4819fde1b16..839461373b16e211d3be5f3a3e9fbfc0584ce791 100644 --- a/briar-android/src/org/briarproject/android/groups/WriteGroupPostActivity.java +++ b/briar-android/src/org/briarproject/android/groups/WriteGroupPostActivity.java @@ -61,6 +61,7 @@ import android.widget.Toast; public class WriteGroupPostActivity extends RoboActivity implements OnItemSelectedListener, OnClickListener { + private static final int REQUEST_CREATE_IDENTITY = 2; private static final Logger LOG = Logger.getLogger(WriteGroupPostActivity.class.getName()); @@ -219,12 +220,13 @@ implements OnItemSelectedListener, OnClickListener { @Override protected void onActivityResult(int request, int result, Intent data) { - // This is the result of CreateIdentityActivity - if(result == RESULT_CANCELED) return; - byte[] b = data.getByteArrayExtra("briar.LOCAL_AUTHOR_ID"); - if(b == null) throw new IllegalStateException(); - localAuthorId = new AuthorId(b); - loadAuthorsAndGroup(); + super.onActivityResult(request, result, data); + if(request == REQUEST_CREATE_IDENTITY && result == RESULT_OK) { + byte[] b = data.getByteArrayExtra("briar.LOCAL_AUTHOR_ID"); + if(b == null) throw new IllegalStateException(); + localAuthorId = new AuthorId(b); + loadAuthorsAndGroup(); + } } public void onItemSelected(AdapterView<?> parent, View view, int position, @@ -237,7 +239,7 @@ implements OnItemSelectedListener, OnClickListener { localAuthor = null; localAuthorId = null; Intent i = new Intent(this, CreateIdentityActivity.class); - startActivityForResult(i, 0); + startActivityForResult(i, REQUEST_CREATE_IDENTITY); } else { localAuthor = item.getLocalAuthor(); localAuthorId = localAuthor.getId();