diff --git a/briar-android/res/values/strings.xml b/briar-android/res/values/strings.xml index 5dfab8627c87b40d5093056d7531a8142dc5dffb..9856adbc659a624d2f4e3b34d2b08a1d672fa951 100644 --- a/briar-android/res/values/strings.xml +++ b/briar-android/res/values/strings.xml @@ -193,6 +193,7 @@ <string name="introduction_message_text">You can compose a message that will be sent to %1$s and %2$s along with your introduction:</string> <string name="introduction_message_hint">Type message (optional)</string> <string name="introduction_button">Make Introduction</string> + <string name="introduction_sent">Your introduction has been sent.</string> <string name="introduction_error">There was an error making the introduction.</string> <string name="introduction_response_error">Error when responding to introduction</string> <string name="introduction_warn_different_identities_title">Warning: Different Identities</string> diff --git a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java index 647cea18314fdbef2d7efe8c39729ab00fc8d129..c85e84d8c449cbdda01c18b7420e76676347603d 100644 --- a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java +++ b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java @@ -3,6 +3,7 @@ package org.briarproject.android.contact; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; +import android.support.design.widget.Snackbar; import android.support.v4.app.ActivityCompat; import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.content.ContextCompat; @@ -80,6 +81,7 @@ import javax.inject.Inject; import de.hdodenhof.circleimageview.CircleImageView; import im.delight.android.identicons.IdenticonDrawable; +import static android.support.v4.app.ActivityOptionsCompat.makeCustomAnimation; import static android.widget.Toast.LENGTH_SHORT; import static java.util.logging.Level.INFO; import static java.util.logging.Level.WARNING; @@ -92,11 +94,12 @@ public class ConversationActivity extends BriarActivity private static final Logger LOG = Logger.getLogger(ConversationActivity.class.getName()); + private static final int REQUEST_CODE_INTRODUCTION = 1; @Inject AndroidNotificationManager notificationManager; @Inject - protected ConnectionRegistry connectionRegistry; + ConnectionRegistry connectionRegistry; @Inject @CryptoExecutor protected Executor cryptoExecutor; @@ -183,6 +186,18 @@ public class ConversationActivity extends BriarActivity component.inject(this); } + @Override + protected void onActivityResult(int request, int result, Intent data) { + super.onActivityResult(request, result, data); + + if (request == REQUEST_CODE_INTRODUCTION && result == RESULT_OK) { + Snackbar snackbar = Snackbar.make(list, R.string.introduction_sent, + Snackbar.LENGTH_SHORT); + snackbar.getView().setBackgroundResource(R.color.briar_primary); + snackbar.show(); + } + } + @Override public void onResume() { super.onResume(); @@ -224,10 +239,11 @@ public class ConversationActivity extends BriarActivity Intent intent = new Intent(this, IntroductionActivity.class); intent.putExtra(IntroductionActivity.CONTACT_ID, contactId.getInt()); - ActivityOptionsCompat options = ActivityOptionsCompat - .makeCustomAnimation(this, android.R.anim.slide_in_left, + ActivityOptionsCompat options = + makeCustomAnimation(this, android.R.anim.slide_in_left, android.R.anim.slide_out_right); - ActivityCompat.startActivity(this, intent, options.toBundle()); + ActivityCompat.startActivityForResult(this, intent, + REQUEST_CODE_INTRODUCTION, options.toBundle()); return true; case R.id.action_social_remove_person: askToRemoveContact(); diff --git a/briar-android/src/org/briarproject/android/introduction/IntroductionActivity.java b/briar-android/src/org/briarproject/android/introduction/IntroductionActivity.java index b42516e56a21b62758e65cfd0c5f5e522a1fd447..f2227d826257c7a2feb11d744642846c75db6435 100644 --- a/briar-android/src/org/briarproject/android/introduction/IntroductionActivity.java +++ b/briar-android/src/org/briarproject/android/introduction/IntroductionActivity.java @@ -85,11 +85,11 @@ public class IntroductionActivity extends BriarActivity implements } } - public int getContactId() { + int getContactId() { return contactId; } - public void showMessageScreen(View view, Contact c1, Contact c2) { + void showMessageScreen(View view, Contact c1, Contact c2) { IntroductionMessageFragment messageFragment = IntroductionMessageFragment diff --git a/briar-android/src/org/briarproject/android/introduction/IntroductionMessageFragment.java b/briar-android/src/org/briarproject/android/introduction/IntroductionMessageFragment.java index 42e0b93d1e74c9819e35c8a85df69b3b2add7150..7b277fb738f33a967918cb8d351c6981fdaf29b8 100644 --- a/briar-android/src/org/briarproject/android/introduction/IntroductionMessageFragment.java +++ b/briar-android/src/org/briarproject/android/introduction/IntroductionMessageFragment.java @@ -29,6 +29,7 @@ import javax.inject.Inject; import de.hdodenhof.circleimageview.CircleImageView; import im.delight.android.identicons.IdenticonDrawable; +import static android.app.Activity.RESULT_OK; import static android.view.View.GONE; import static android.view.View.VISIBLE; import static android.widget.Toast.LENGTH_SHORT; @@ -170,7 +171,7 @@ public class IntroductionMessageFragment extends BaseFragment { }); } - public void onButtonClick(final Contact c1, final Contact c2) { + private void onButtonClick(final Contact c1, final Contact c2) { // disable button to prevent accidental double invitations ui.button.setEnabled(false); @@ -179,7 +180,8 @@ public class IntroductionMessageFragment extends BaseFragment { // don't wait for the introduction to be made before finishing activity introductionActivity.hideSoftKeyboard(ui.message); - introductionActivity.finish(); + introductionActivity.setResult(RESULT_OK); + introductionActivity.supportFinishAfterTransition(); } private void makeIntroduction(final Contact c1, final Contact c2,