From db2d965006d3ec9a208fa1a5ca86b0c150f49be3 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Wed, 6 Jul 2016 13:56:22 -0300 Subject: [PATCH] Show Snackbar after introduction request has been sent Closes #360 --- briar-android/res/values/strings.xml | 1 + .../android/contact/ConversationActivity.java | 24 +++++++++++++++---- .../introduction/IntroductionActivity.java | 4 ++-- .../IntroductionMessageFragment.java | 6 +++-- 4 files changed, 27 insertions(+), 8 deletions(-) diff --git a/briar-android/res/values/strings.xml b/briar-android/res/values/strings.xml index 1618f97e34..ade709eef6 100644 --- a/briar-android/res/values/strings.xml +++ b/briar-android/res/values/strings.xml @@ -190,6 +190,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 46a40ba0f7..e9c571fd3f 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; @@ -182,6 +185,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(); @@ -223,10 +238,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 b42516e56a..f2227d8262 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 42e0b93d1e..7b277fb738 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, -- GitLab