diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java index c590eaddb451455da6cad755e63880c087bb7356..c2e4f113c1e26112fcbb5a149e9bdc0c6f3236a0 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java @@ -3,10 +3,16 @@ package org.briarproject.briar.android.activity; import android.annotation.SuppressLint; import android.content.Intent; import android.os.Build; +import android.transition.Slide; +import android.transition.Transition; +import android.view.Gravity; +import android.view.Window; +import org.briarproject.briar.R; import org.briarproject.briar.android.controller.BriarController; import org.briarproject.briar.android.controller.DbController; import org.briarproject.briar.android.controller.handler.UiResultHandler; +import org.briarproject.briar.android.fragment.BaseFragment; import org.briarproject.briar.android.login.PasswordActivity; import org.briarproject.briar.android.panic.ExitActivity; @@ -44,7 +50,7 @@ public abstract class BriarActivity extends BaseActivity { super.onActivityResult(request, result, data); if (request == REQUEST_PASSWORD) { if (result == RESULT_OK) briarController.startAndBindService(); - else finish(); + else supportFinishAfterTransition(); } } @@ -53,11 +59,41 @@ public abstract class BriarActivity extends BaseActivity { super.onStart(); if (!briarController.hasEncryptionKey() && !isFinishing()) { Intent i = new Intent(this, PasswordActivity.class); - i.setFlags(FLAG_ACTIVITY_NO_ANIMATION | FLAG_ACTIVITY_SINGLE_TOP); + i.setFlags(FLAG_ACTIVITY_SINGLE_TOP); startActivityForResult(i, REQUEST_PASSWORD); } } + protected void showInitialFragment(BaseFragment f) { + getSupportFragmentManager().beginTransaction() + .replace(R.id.fragmentContainer, f, f.getUniqueTag()) + .commit(); + } + + public void showNextFragment(BaseFragment f) { + getSupportFragmentManager().beginTransaction() + .setCustomAnimations(R.anim.step_next_in, + R.anim.step_previous_out, R.anim.step_previous_in, + R.anim.step_next_out) + .replace(R.id.fragmentContainer, f, f.getUniqueTag()) + .addToBackStack(f.getUniqueTag()) + .commit(); + } + + public void setSceneTransitionAnimation() { + if (Build.VERSION.SDK_INT < 21) return; + Transition slide = new Slide(Gravity.RIGHT); + slide.excludeTarget(android.R.id.statusBarBackground, true); + slide.excludeTarget(android.R.id.navigationBarBackground, true); + Window window = getWindow(); + window.requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); + window.setExitTransition(slide); + window.setEnterTransition(slide); + window.setTransitionBackgroundFadeDuration(getResources() + .getInteger(android.R.integer.config_longAnimTime)); + window.setBackgroundDrawableResource(android.R.color.transparent); + } + protected void signOut(final boolean removeFromRecentApps) { briarController.signOut(new UiResultHandler<Void>(this) { @Override @@ -83,7 +119,7 @@ public abstract class BriarActivity extends BaseActivity { private void finishAndExit() { if (Build.VERSION.SDK_INT >= 21) finishAndRemoveTask(); - else finish(); + else supportFinishAfterTransition(); LOG.info("Exiting"); System.exit(0); } @@ -98,7 +134,7 @@ public abstract class BriarActivity extends BaseActivity { runOnUiThreadUnlessDestroyed(new Runnable() { @Override public void run() { - finish(); + supportFinishAfterTransition(); } }); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarFragmentActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarFragmentActivity.java index 5b18421dfd24c9cac0c8a68e62e7c3c58102a486..fa211156d803e1c04f20ede98c05c22e0a1a24e9 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarFragmentActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarFragmentActivity.java @@ -1,8 +1,6 @@ package org.briarproject.briar.android.activity; -import android.support.annotation.AnimRes; import android.support.v4.app.FragmentTransaction; -import android.support.v7.app.AlertDialog; import org.briarproject.briar.R; import org.briarproject.briar.android.contact.ContactListFragment; @@ -49,31 +47,15 @@ public abstract class BriarFragmentActivity extends BriarActivity { else startFragment(fragment, true); } - protected void showMessageDialog(int titleStringId, int msgStringId) { - // TODO replace with custom dialog fragment ? - AlertDialog.Builder builder = new AlertDialog.Builder(this, - R.style.BriarDialogTheme); - builder.setTitle(titleStringId); - builder.setMessage(msgStringId); - builder.setPositiveButton(R.string.ok, null); - AlertDialog dialog = builder.create(); - dialog.show(); - } - - public void startFragment(BaseFragment fragment, - boolean isAddedToBackStack) { - startFragment(fragment, 0, 0, isAddedToBackStack); - } - - private void startFragment(BaseFragment fragment, - @AnimRes int inAnimation, @AnimRes int outAnimation, + protected void startFragment(BaseFragment fragment, boolean isAddedToBackStack) { FragmentTransaction trans = - getSupportFragmentManager().beginTransaction(); - if (inAnimation != 0 && outAnimation != 0) { - trans.setCustomAnimations(inAnimation, 0, 0, outAnimation); - } - trans.replace(R.id.content_fragment, fragment, fragment.getUniqueTag()); + getSupportFragmentManager().beginTransaction() + .setCustomAnimations(R.anim.dialog_in, + R.anim.dialog_out, R.anim.dialog_in, + R.anim.dialog_out) + .replace(R.id.fragmentContainer, fragment, + fragment.getUniqueTag()); if (isAddedToBackStack) { trans.addToBackStack(fragment.getUniqueTag()); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java index ab6c7cc0c6e29137e119f3ba30f13582a91d3d6e..d6234db3c62263b582804868e3fec75dfc562190 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java @@ -57,10 +57,7 @@ public class BlogActivity extends BriarActivity implements } if (state == null) { - BlogFragment f = BlogFragment.newInstance(groupId); - getSupportFragmentManager().beginTransaction() - .replace(R.id.fragmentContainer, f, f.getUniqueTag()) - .commit(); + showInitialFragment(BlogFragment.newInstance(groupId)); } } @@ -72,10 +69,7 @@ public class BlogActivity extends BriarActivity implements @Override public void onBlogPostClick(BlogPostItem post) { BlogPostFragment f = BlogPostFragment.newInstance(post.getId()); - getSupportFragmentManager().beginTransaction() - .replace(R.id.fragmentContainer, f, f.getUniqueTag()) - .addToBackStack(f.getUniqueTag()) - .commit(); + showNextFragment(f); } @Override diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java index 587a46ba0c26819640b06127081a678bef921739..d00b7e0aca914421963806b47dc848bfe9a660a7 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java @@ -142,30 +142,25 @@ public class BlogFragment extends BaseFragment @Override public boolean onOptionsItemSelected(final MenuItem item) { - ActivityOptionsCompat options = - makeCustomAnimation(getActivity(), - android.R.anim.slide_in_left, - android.R.anim.slide_out_right); switch (item.getItemId()) { case R.id.action_write_blog_post: Intent i = new Intent(getActivity(), WriteBlogPostActivity.class); i.putExtra(GROUP_ID, groupId.getBytes()); - startActivityForResult(i, REQUEST_WRITE_POST, - options.toBundle()); + startActivityForResult(i, REQUEST_WRITE_POST); return true; case R.id.action_blog_share: Intent i2 = new Intent(getActivity(), ShareBlogActivity.class); i2.setFlags(FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP); i2.putExtra(GROUP_ID, groupId.getBytes()); - startActivityForResult(i2, REQUEST_SHARE, options.toBundle()); + startActivityForResult(i2, REQUEST_SHARE); return true; case R.id.action_blog_sharing_status: Intent i3 = new Intent(getActivity(), BlogSharingStatusActivity.class); i3.setFlags(FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP); i3.putExtra(GROUP_ID, groupId.getBytes()); - startActivity(i3, options.toBundle()); + startActivity(i3); return true; case R.id.action_blog_delete: showDeleteDialog(); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java index 5187537d9ee5ff932a23f0a3a846153e05539dba..ba1d11e6832e2f319f4f7880260775ae0c9e83ed 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java @@ -137,15 +137,14 @@ class BlogPostViewHolder extends RecyclerView.ViewHolder { i.putExtra(GROUP_ID, item.getGroupId().getBytes()); i.putExtra(POST_ID, item.getId().getBytes()); - // work-around for android bug #224270 if (Build.VERSION.SDK_INT >= 23) { ActivityOptionsCompat options = makeSceneTransitionAnimation((Activity) ctx, layout, getTransitionName(item.getId())); - ActivityCompat - .startActivity((Activity) ctx, i, - options.toBundle()); + ActivityCompat.startActivity((Activity) ctx, i, + options.toBundle()); } else { + // work-around for android bug #224270 ctx.startActivity(i); } } @@ -167,6 +166,7 @@ class BlogPostViewHolder extends RecyclerView.ViewHolder { reblogger.setDate(item.getTimestamp()); reblogger.setBlogLink(item.getGroupId()); reblogger.setVisibility(VISIBLE); + reblogger.setPersona(AuthorView.REBLOGGER); author.setPersona(AuthorView.COMMENTER); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java index 0eee3cd8bc3af801d7bba5b1ef2f2d32197bfc4c..42eadebbde7a7fdc51e15c222cbb8c89b75d5a71 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java @@ -4,7 +4,6 @@ import android.content.Intent; import android.os.Bundle; import android.support.annotation.UiThread; import android.support.design.widget.Snackbar; -import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.content.ContextCompat; import android.support.v7.widget.LinearLayoutManager; import android.view.LayoutInflater; @@ -36,7 +35,6 @@ import javax.inject.Inject; import static android.app.Activity.RESULT_OK; import static android.support.design.widget.Snackbar.LENGTH_LONG; -import static android.support.v4.app.ActivityOptionsCompat.makeCustomAnimation; import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID; import static org.briarproject.briar.android.blog.BlogActivity.REQUEST_WRITE_POST; @@ -169,28 +167,24 @@ public class FeedFragment extends BaseFragment implements @Override public boolean onOptionsItemSelected(final MenuItem item) { if (personalBlog == null) return false; - ActivityOptionsCompat options = - makeCustomAnimation(getActivity(), android.R.anim.slide_in_left, - android.R.anim.slide_out_right); switch (item.getItemId()) { case R.id.action_write_blog_post: Intent i1 = new Intent(getActivity(), WriteBlogPostActivity.class); i1.putExtra(GROUP_ID, personalBlog.getId().getBytes()); - startActivityForResult(i1, REQUEST_WRITE_POST, - options.toBundle()); + startActivityForResult(i1, REQUEST_WRITE_POST); return true; case R.id.action_rss_feeds_import: Intent i2 = new Intent(getActivity(), RssFeedImportActivity.class); i2.putExtra(GROUP_ID, personalBlog.getId().getBytes()); - startActivity(i2, options.toBundle()); + startActivity(i2); return true; case R.id.action_rss_feeds_manage: Intent i3 = new Intent(getActivity(), RssFeedManageActivity.class); i3.putExtra(GROUP_ID, personalBlog.getId().getBytes()); - startActivity(i3, options.toBundle()); + startActivity(i3); return true; default: return super.onOptionsItemSelected(item); @@ -225,10 +219,7 @@ public class FeedFragment extends BaseFragment implements public void onBlogPostClick(BlogPostItem post) { FeedPostFragment f = FeedPostFragment.newInstance(post.getGroupId(), post.getId()); - getActivity().getSupportFragmentManager().beginTransaction() - .replace(R.id.content_fragment, f, f.getUniqueTag()) - .addToBackStack(f.getUniqueTag()) - .commit(); + showNextFragment(f); } @Override diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/ReblogActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/ReblogActivity.java index 94194d682d28e49e56b304a73b67ea65f71fc45f..27e8f19ad6e252728dec6cd2d56c37363653660f 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/ReblogActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/ReblogActivity.java @@ -1,11 +1,7 @@ package org.briarproject.briar.android.blog; -import android.annotation.TargetApi; import android.content.Intent; -import android.os.Build; import android.os.Bundle; -import android.transition.Fade; -import android.transition.Transition; import android.view.MenuItem; import org.briarproject.bramble.api.sync.GroupId; @@ -23,10 +19,7 @@ public class ReblogActivity extends BriarActivity implements @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - - if (Build.VERSION.SDK_INT >= 21) { - setTransition(); - } + setSceneTransitionAnimation(); Intent intent = getIntent(); byte[] groupId = intent.getByteArrayExtra(GROUP_ID); @@ -41,10 +34,7 @@ public class ReblogActivity extends BriarActivity implements if (savedInstanceState == null) { ReblogFragment f = ReblogFragment .newInstance(new GroupId(groupId), new MessageId(postId)); - getSupportFragmentManager() - .beginTransaction() - .add(R.id.fragmentContainer, f) - .commit(); + showInitialFragment(f); } } @@ -69,13 +59,4 @@ public class ReblogActivity extends BriarActivity implements } - @TargetApi(21) - private void setTransition() { - Transition fade = new Fade(); - fade.excludeTarget(android.R.id.statusBarBackground, true); - fade.excludeTarget(R.id.action_bar_container, true); - fade.excludeTarget(android.R.id.navigationBarBackground, true); - getWindow().setExitTransition(fade); - getWindow().setEnterTransition(fade); - } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedManageActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedManageActivity.java index 5229018572f34153c668551fbf868eac0262fda5..10e37d6f27d204d2756fd7438a854f7c4e033f7a 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedManageActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedManageActivity.java @@ -3,8 +3,6 @@ package org.briarproject.briar.android.blog; 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.v7.widget.LinearLayoutManager; import android.view.Menu; import android.view.MenuInflater; @@ -26,7 +24,6 @@ import java.util.logging.Logger; import javax.inject.Inject; import static android.support.design.widget.Snackbar.LENGTH_LONG; -import static android.support.v4.app.ActivityOptionsCompat.makeCustomAnimation; import static java.util.logging.Level.WARNING; public class RssFeedManageActivity extends BriarActivity @@ -89,13 +86,9 @@ public class RssFeedManageActivity extends BriarActivity onBackPressed(); return true; case R.id.action_rss_feeds_import: - Intent i = - new Intent(this, RssFeedImportActivity.class); + Intent i = new Intent(this, RssFeedImportActivity.class); i.putExtra(GROUP_ID, groupId.getBytes()); - ActivityOptionsCompat options = - makeCustomAnimation(this, android.R.anim.slide_in_left, - android.R.anim.slide_out_right); - ActivityCompat.startActivity(this, i, options.toBundle()); + startActivity(i); return true; default: return super.onOptionsItemSelected(item); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListFragment.java index af242e9454da5a6318ba8660385d16d62f02f43c..a8e7dd1f08503b2a51334304da31046a42508a87 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListFragment.java @@ -120,7 +120,6 @@ public class ContactListFragment extends BaseFragment implements EventListener { ContactId contactId = item.getContact().getId(); i.putExtra(CONTACT_ID, contactId.getInt()); - // work-around for android bug #224270 if (Build.VERSION.SDK_INT >= 23) { ContactListItemViewHolder holder = (ContactListItemViewHolder) list @@ -140,7 +139,8 @@ public class ContactListFragment extends BaseFragment implements EventListener { ActivityCompat.startActivity(getActivity(), i, options.toBundle()); } else { - getActivity().startActivity(i); + // work-around for android bug #224270 + startActivity(i); } } }; diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationActivity.java index 7d832eff825ae4f7555c669fbbbe1db90741de9c..11780653a2ca71a44b65162531b6b710351c7208 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationActivity.java @@ -5,10 +5,7 @@ import android.content.Intent; import android.os.Bundle; import android.support.annotation.UiThread; import android.support.design.widget.Snackbar; -import android.support.v4.app.ActivityCompat; -import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.content.ContextCompat; -import android.support.v4.view.ViewCompat; import android.support.v7.app.ActionBar; import android.support.v7.app.AlertDialog; import android.support.v7.widget.ActionMenuView; @@ -55,7 +52,6 @@ import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BriarActivity; import org.briarproject.briar.android.contact.ConversationAdapter.ConversationListener; import org.briarproject.briar.android.introduction.IntroductionActivity; -import org.briarproject.briar.android.util.UiUtils; import org.briarproject.briar.android.view.BriarRecyclerView; import org.briarproject.briar.android.view.TextInputView; import org.briarproject.briar.android.view.TextInputView.TextInputListener; @@ -100,12 +96,14 @@ import im.delight.android.identicons.IdenticonDrawable; import uk.co.samuelwall.materialtaptargetprompt.MaterialTapTargetPrompt; import uk.co.samuelwall.materialtaptargetprompt.MaterialTapTargetPrompt.OnHidePromptListener; -import static android.support.v4.app.ActivityOptionsCompat.makeCustomAnimation; +import static android.support.v4.view.ViewCompat.setTransitionName; import static android.support.v7.util.SortedList.INVALID_POSITION; import static android.widget.Toast.LENGTH_SHORT; import static java.util.logging.Level.INFO; import static java.util.logging.Level.WARNING; import static org.briarproject.briar.android.settings.SettingsFragment.SETTINGS_NAMESPACE; +import static org.briarproject.briar.android.util.UiUtils.getAvatarTransitionName; +import static org.briarproject.briar.android.util.UiUtils.getBulbTransitionName; import static org.briarproject.briar.api.messaging.MessagingConstants.MAX_PRIVATE_MESSAGE_BODY_LENGTH; @MethodsNotNullByDefault @@ -117,7 +115,7 @@ public class ConversationActivity extends BriarActivity private static final Logger LOG = Logger.getLogger(ConversationActivity.class.getName()); - private static final int REQUEST_CODE_INTRODUCTION = 1; + private static final int REQUEST_CODE_INTRODUCTION = 2; private static final String SHOW_ONBOARDING_INTRODUCTION = "showOnboardingIntroduction"; @@ -168,6 +166,7 @@ public class ConversationActivity extends BriarActivity @Override public void onCreate(@Nullable Bundle state) { super.onCreate(state); + setSceneTransitionAnimation(); Intent i = getIntent(); int id = i.getIntExtra(CONTACT_ID, -1); @@ -194,10 +193,8 @@ public class ConversationActivity extends BriarActivity ab.setDisplayShowTitleEnabled(false); } - ViewCompat.setTransitionName(toolbarAvatar, - UiUtils.getAvatarTransitionName(contactId)); - ViewCompat.setTransitionName(toolbarStatus, - UiUtils.getBulbTransitionName(contactId)); + setTransitionName(toolbarAvatar, getAvatarTransitionName(contactId)); + setTransitionName(toolbarStatus, getBulbTransitionName(contactId)); adapter = new ConversationAdapter(this, this); list = (BriarRecyclerView) findViewById(R.id.conversationView); @@ -267,13 +264,8 @@ public class ConversationActivity extends BriarActivity case R.id.action_introduction: if (contactId == null) return false; Intent intent = new Intent(this, IntroductionActivity.class); - intent.putExtra(IntroductionActivity.CONTACT_ID, - contactId.getInt()); - ActivityOptionsCompat options = - makeCustomAnimation(this, android.R.anim.slide_in_left, - android.R.anim.slide_out_right); - ActivityCompat.startActivityForResult(this, intent, - REQUEST_CODE_INTRODUCTION, options.toBundle()); + intent.putExtra(CONTACT_ID, contactId.getInt()); + startActivityForResult(intent, REQUEST_CODE_INTRODUCTION); return true; case R.id.action_social_remove_person: askToRemoveContact(); @@ -283,13 +275,6 @@ public class ConversationActivity extends BriarActivity } } - @Override - public void onBackPressed() { - // FIXME disabled exit transition, because it doesn't work for some reason #318 - //supportFinishAfterTransition(); - finish(); - } - private void loadContactDetails() { runOnDbThread(new Runnable() { @Override @@ -714,7 +699,7 @@ public class ConversationActivity extends BriarActivity String deleted = getString(R.string.contact_deleted_toast); Toast.makeText(ConversationActivity.this, deleted, LENGTH_SHORT) .show(); - finish(); + supportFinishAfterTransition(); } }); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contactselection/BaseContactSelectorFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/contactselection/BaseContactSelectorFragment.java index 1c9294fe297e3b0176fc499809ad78edd8547d15..ec318ebe36c16d005d9332e302db9ab05281b0ad 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contactselection/BaseContactSelectorFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contactselection/BaseContactSelectorFragment.java @@ -1,11 +1,9 @@ package org.briarproject.briar.android.contactselection; import android.content.Context; -import android.os.Build; import android.os.Bundle; import android.support.annotation.CallSuper; import android.support.v7.widget.LinearLayoutManager; -import android.transition.Fade; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -69,10 +67,6 @@ public abstract class BaseContactSelectorFragment<I extends SelectableContactIte View contentView = inflater.inflate(R.layout.list, container, false); - if (Build.VERSION.SDK_INT >= 21) { - setExitTransition(new Fade()); - } - list = (BriarRecyclerView) contentView.findViewById(R.id.list); list.setLayoutManager(new LinearLayoutManager(getActivity())); list.setEmptyText(getString(R.string.no_contacts_selector)); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contactselection/ContactSelectorActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/contactselection/ContactSelectorActivity.java index 2eaaecbafe773d103ad53cb5644cbb36285b0600..809e8f66f8a95d2ba1bc8766b76309a49d75af43 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contactselection/ContactSelectorActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contactselection/ContactSelectorActivity.java @@ -1,11 +1,9 @@ package org.briarproject.briar.android.contactselection; -import android.os.Build; import android.os.Bundle; import android.support.annotation.CallSuper; import android.support.annotation.LayoutRes; import android.support.annotation.UiThread; -import android.transition.Fade; import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; @@ -39,10 +37,6 @@ public abstract class ContactSelectorActivity setContentView(getLayout()); - if (Build.VERSION.SDK_INT >= 21) { - getWindow().setExitTransition(new Fade()); - } - if (bundle != null) { // restore group ID if it was saved byte[] groupBytes = bundle.getByteArray(GROUP_ID); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/forum/CreateForumActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/forum/CreateForumActivity.java index 86822c7a2a53fe6eb5fc1e26dd0c67af134f278b..396746b2121ce0cdbceb9f16c7038f3ca47b7384 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/forum/CreateForumActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/forum/CreateForumActivity.java @@ -158,7 +158,7 @@ public class CreateForumActivity extends BriarActivity startActivity(i); Toast.makeText(CreateForumActivity.this, R.string.forum_created_toast, LENGTH_LONG).show(); - finish(); + supportFinishAfterTransition(); } }); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java index bf079bbf0868732ba078a04170c69edf5edbadd3..95c80e49c6eeb8fba0b794237587e25d569a6913 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java @@ -6,8 +6,6 @@ import android.content.Intent; import android.os.Bundle; import android.support.annotation.LayoutRes; import android.support.annotation.StringRes; -import android.support.v4.app.ActivityCompat; -import android.support.v4.app.ActivityOptionsCompat; import android.support.v7.app.AlertDialog; import android.support.v7.widget.LinearLayoutManager; import android.view.Menu; @@ -37,7 +35,6 @@ import javax.inject.Inject; import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; import static android.content.Intent.FLAG_ACTIVITY_SINGLE_TOP; -import static android.support.v4.app.ActivityOptionsCompat.makeCustomAnimation; import static android.widget.Toast.LENGTH_SHORT; import static org.briarproject.briar.api.forum.ForumConstants.MAX_FORUM_POST_BODY_LENGTH; @@ -124,8 +121,6 @@ public class ForumActivity extends @Override public boolean onOptionsItemSelected(final MenuItem item) { - ActivityOptionsCompat options = makeCustomAnimation(this, - android.R.anim.slide_in_left, android.R.anim.slide_out_right); // Handle presses on the action bar items switch (item.getItemId()) { case R.id.action_forum_compose_post: @@ -135,14 +130,13 @@ public class ForumActivity extends Intent i2 = new Intent(this, ShareForumActivity.class); i2.setFlags(FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP); i2.putExtra(GROUP_ID, groupId.getBytes()); - ActivityCompat.startActivityForResult(this, i2, - REQUEST_FORUM_SHARED, options.toBundle()); + startActivityForResult(i2, REQUEST_FORUM_SHARED); return true; case R.id.action_forum_sharing_status: Intent i3 = new Intent(this, ForumSharingStatusActivity.class); i3.setFlags(FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP); i3.putExtra(GROUP_ID, groupId.getBytes()); - ActivityCompat.startActivity(this, i3, options.toBundle()); + startActivity(i3); return true; case R.id.action_forum_delete: showUnsubscribeDialog(); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/fragment/BaseFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/fragment/BaseFragment.java index 8a5923119aa73a8696e1c8cbb03bff0a8db40f8b..4a3821aa1151d6245f873330ac91333633beab1a 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/fragment/BaseFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/fragment/BaseFragment.java @@ -71,6 +71,9 @@ public abstract class BaseFragment extends Fragment @UiThread ActivityComponent getActivityComponent(); + @UiThread + void showNextFragment(BaseFragment f); + @UiThread void onFragmentCreated(String tag); } @@ -92,4 +95,9 @@ public abstract class BaseFragment extends Fragment }); } } + + protected void showNextFragment(BaseFragment f) { + listener.showNextFragment(f); + } + } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/fragment/SignOutFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/fragment/SignOutFragment.java new file mode 100644 index 0000000000000000000000000000000000000000..7999679ae1fd8bcb71bb3427e573246b6e6061e6 --- /dev/null +++ b/briar-android/src/main/java/org/briarproject/briar/android/fragment/SignOutFragment.java @@ -0,0 +1,33 @@ +package org.briarproject.briar.android.fragment; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import org.briarproject.briar.R; +import org.briarproject.briar.android.activity.ActivityComponent; + +public class SignOutFragment extends BaseFragment { + + private static final String TAG = SignOutFragment.class.getName(); + + @Override + public View onCreateView(LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { + return inflater.inflate(R.layout.fragment_sign_out, container, false); + } + + @Override + public String getUniqueTag() { + return TAG; + } + + @Override + public void injectFragment(ActivityComponent component) { + // no need to inject + } + +} diff --git a/briar-android/src/main/java/org/briarproject/briar/android/introduction/ContactChooserFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/introduction/ContactChooserFragment.java index 79f78b7cb92e866d3df61e015e0f4e22fe3eb966..7bfa80f969a747cd8ba2f378489bf68c06367833 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/introduction/ContactChooserFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/introduction/ContactChooserFragment.java @@ -1,10 +1,8 @@ package org.briarproject.briar.android.introduction; import android.content.Context; -import android.os.Build; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; -import android.transition.Fade; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -31,13 +29,13 @@ import java.util.logging.Logger; import javax.inject.Inject; import static java.util.logging.Level.WARNING; +import static org.briarproject.briar.android.contact.ConversationActivity.CONTACT_ID; public class ContactChooserFragment extends BaseFragment { public static final String TAG = ContactChooserFragment.class.getName(); private static final Logger LOG = Logger.getLogger(TAG); - private IntroductionActivity introductionActivity; private BriarRecyclerView list; private ContactListAdapter adapter; private ContactId contactId; @@ -51,11 +49,12 @@ public class ContactChooserFragment extends BaseFragment { @Inject volatile ConnectionRegistry connectionRegistry; - public static ContactChooserFragment newInstance() { + public static ContactChooserFragment newInstance(ContactId id) { Bundle args = new Bundle(); ContactChooserFragment fragment = new ContactChooserFragment(); + args.putInt(CONTACT_ID, id.getInt()); fragment.setArguments(args); return fragment; } @@ -63,7 +62,6 @@ public class ContactChooserFragment extends BaseFragment { @Override public void onAttach(Context context) { super.onAttach(context); - introductionActivity = (IntroductionActivity) context; } @Override @@ -72,17 +70,13 @@ public class ContactChooserFragment extends BaseFragment { View contentView = inflater.inflate(R.layout.list, container, false); - if (Build.VERSION.SDK_INT >= 21) { - setExitTransition(new Fade()); - } - OnContactClickListener<ContactListItem> onContactClickListener = new OnContactClickListener<ContactListItem>() { @Override public void onItemClick(View view, ContactListItem item) { if (c1 == null) throw new IllegalStateException(); Contact c2 = item.getContact(); - introductionActivity.showMessageScreen(view, c1, c2); + showMessageScreen(c1, c2); } }; adapter = new ContactListAdapter(getActivity(), onContactClickListener); @@ -92,7 +86,7 @@ public class ContactChooserFragment extends BaseFragment { list.setAdapter(adapter); list.setEmptyText(getString(R.string.no_contacts)); - contactId = introductionActivity.getContactId(); + contactId = new ContactId(getArguments().getInt(CONTACT_ID)); return contentView; } @@ -121,7 +115,7 @@ public class ContactChooserFragment extends BaseFragment { } private void loadContacts() { - introductionActivity.runOnDbThread(new Runnable() { + listener.runOnDbThread(new Runnable() { @Override public void run() { try { @@ -149,7 +143,7 @@ public class ContactChooserFragment extends BaseFragment { } private void displayContacts(final List<ContactListItem> contacts) { - introductionActivity.runOnUiThreadUnlessDestroyed(new Runnable() { + runOnUiThreadUnlessDestroyed(new Runnable() { @Override public void run() { if (contacts.isEmpty()) list.showData(); @@ -158,4 +152,11 @@ public class ContactChooserFragment extends BaseFragment { }); } + private void showMessageScreen(Contact c1, Contact c2) { + IntroductionMessageFragment messageFragment = + IntroductionMessageFragment + .newInstance(c1.getId().getInt(), c2.getId().getInt()); + showNextFragment(messageFragment); + } + } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/introduction/IntroductionActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/introduction/IntroductionActivity.java index 2b66f8e2ec47f1d36d8804573e3076ffe580b5e2..05c07d4b1819e7a1f25c65a7c54fa80a8fa8b7f9 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/introduction/IntroductionActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/introduction/IntroductionActivity.java @@ -1,28 +1,19 @@ package org.briarproject.briar.android.introduction; import android.content.Intent; -import android.os.Build; import android.os.Bundle; -import android.support.v4.app.FragmentManager; -import android.transition.ChangeBounds; -import android.transition.Fade; -import android.view.MenuItem; -import android.view.View; -import org.briarproject.bramble.api.contact.Contact; import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BriarActivity; import org.briarproject.briar.android.fragment.BaseFragment.BaseFragmentListener; +import static org.briarproject.briar.android.contact.ConversationActivity.CONTACT_ID; + public class IntroductionActivity extends BriarActivity implements BaseFragmentListener { - public static final String CONTACT_ID = "briar.CONTACT_ID"; - - private ContactId contactId; - @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -30,16 +21,12 @@ public class IntroductionActivity extends BriarActivity Intent intent = getIntent(); int id = intent.getIntExtra(CONTACT_ID, -1); if (id == -1) throw new IllegalStateException("No ContactId"); - contactId = new ContactId(id); + ContactId contactId = new ContactId(id); setContentView(R.layout.activity_fragment_container); if (savedInstanceState == null) { - getSupportFragmentManager() - .beginTransaction() - .add(R.id.fragmentContainer, - ContactChooserFragment.newInstance()) - .commit(); + showInitialFragment(ContactChooserFragment.newInstance(contactId)); } } @@ -53,55 +40,4 @@ public class IntroductionActivity extends BriarActivity } - @Override - public boolean onOptionsItemSelected(final MenuItem item) { - // Handle presses on the action bar items - switch (item.getItemId()) { - case android.R.id.home: - onBackPressed(); - return true; - default: - return super.onOptionsItemSelected(item); - } - } - - @Override - public void onBackPressed() { - FragmentManager fm = getSupportFragmentManager(); - if (fm.getBackStackEntryCount() == 1) { - fm.popBackStack(); - } else { - super.onBackPressed(); - } - } - - ContactId getContactId() { - return contactId; - } - - void showMessageScreen(View view, Contact c1, Contact c2) { - - IntroductionMessageFragment messageFragment = - IntroductionMessageFragment - .newInstance(c1.getId().getInt(), c2.getId().getInt()); - - if (Build.VERSION.SDK_INT >= 21) { - messageFragment.setSharedElementEnterTransition(new ChangeBounds()); - messageFragment.setEnterTransition(new Fade()); - messageFragment.setSharedElementReturnTransition( - new ChangeBounds()); - } - - getSupportFragmentManager() - .beginTransaction() - .setCustomAnimations(android.R.anim.fade_in, - android.R.anim.fade_out, - android.R.anim.slide_in_left, - android.R.anim.slide_out_right) - .addSharedElement(view, "avatar") - .replace(R.id.fragmentContainer, messageFragment, - ContactChooserFragment.TAG) - .addToBackStack(null) - .commit(); - } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/introduction/IntroductionMessageFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/introduction/IntroductionMessageFragment.java index c50db5a1573a48a8edd5a547a8caf089db511ca6..e5a624cb0a951907c9098257a30785361328427a 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/introduction/IntroductionMessageFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/introduction/IntroductionMessageFragment.java @@ -4,6 +4,7 @@ import android.content.Context; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.view.LayoutInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ProgressBar; @@ -92,8 +93,6 @@ public class IntroductionMessageFragment extends BaseFragment // inflate view View v = inflater.inflate(R.layout.introduction_message, container, false); - - // show progress bar until contacts have been loaded ui = new ViewHolder(v); ui.text.setVisibility(GONE); ui.message.setSendButtonEnabled(false); @@ -174,6 +173,18 @@ public class IntroductionMessageFragment extends BaseFragment }); } + @Override + public boolean onOptionsItemSelected(final MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + introductionActivity.hideSoftKeyboard(ui.message); + introductionActivity.onBackPressed(); + return true; + default: + return super.onOptionsItemSelected(item); + } + } + @Override public void onSendClick(String text) { // disable button to prevent accidental double invitations diff --git a/briar-android/src/main/java/org/briarproject/briar/android/invitation/AddContactActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/invitation/AddContactActivity.java index b3e42e085f26f5a46b83d52c3bb48e3ae84f294a..fbb2c9d3b22c7f5d3d6d35d663bf687f7bc91307 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/invitation/AddContactActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/invitation/AddContactActivity.java @@ -151,7 +151,7 @@ public class AddContactActivity extends BriarActivity String format = getString(R.string.contact_added_toast); String text = String.format(format, contactName); Toast.makeText(this, text, LENGTH_LONG).show(); - finish(); + supportFinishAfterTransition(); } @Override diff --git a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementActivity.java index 7d786bf2caf8d11143cab9502c46bdb5bad00069..9637668a07bbc2153ba3a311358afd4922bc08b6 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementActivity.java @@ -21,6 +21,7 @@ import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BriarFragmentActivity; +import org.briarproject.briar.android.fragment.BaseFragment; import org.briarproject.briar.android.fragment.BaseFragment.BaseFragmentListener; import org.briarproject.briar.android.keyagreement.IntroFragment.IntroScreenSeenListener; @@ -41,9 +42,6 @@ public class KeyAgreementActivity extends BriarFragmentActivity implements private static final Logger LOG = Logger.getLogger(KeyAgreementActivity.class.getName()); - private static final int STEP_INTRO = 1; - private static final int STEP_QR = 2; - @Inject EventBus eventBus; @@ -70,18 +68,8 @@ public class KeyAgreementActivity extends BriarFragmentActivity implements getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setTitle(R.string.add_contact_title); - if (state == null) showStep(STEP_INTRO); - } - - private void showStep(int step) { - switch (step) { - case STEP_QR: - startFragment(ShowQrCodeFragment.newInstance(), true); - break; - case STEP_INTRO: - default: - startFragment(IntroFragment.newInstance(), true); - break; + if (state == null) { + showInitialFragment(IntroFragment.newInstance()); } } @@ -108,18 +96,15 @@ public class KeyAgreementActivity extends BriarFragmentActivity implements } } - @Override - public void onBackPressed() { - if (getSupportFragmentManager().getBackStackEntryCount() == 1) { - supportFinishAfterTransition(); - } else { - super.onBackPressed(); - } - } - @Override public void showNextScreen() { - showStep(STEP_QR); + // FIXME with #288 +// showNextFragment(ShowQrCodeFragment.newInstance()); + BaseFragment f = ShowQrCodeFragment.newInstance(); + getSupportFragmentManager().beginTransaction() + .replace(R.id.fragmentContainer, f, f.getUniqueTag()) + .addToBackStack(f.getUniqueTag()) + .commit(); } @Override @@ -173,7 +158,7 @@ public class KeyAgreementActivity extends BriarFragmentActivity implements String text = String.format(format, contactName); Toast.makeText(KeyAgreementActivity.this, text, LENGTH_LONG) .show(); - finish(); + supportFinishAfterTransition(); } }); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/ChangePasswordActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/login/ChangePasswordActivity.java index 6b6c717feb0f4886109df015da8d5fb32710feb3..6bd309d5c48b3e8563466dfa5045e7182460f2ec 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/ChangePasswordActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/ChangePasswordActivity.java @@ -139,7 +139,7 @@ public class ChangePasswordActivity extends BaseActivity R.string.password_changed, Toast.LENGTH_LONG).show(); setResult(RESULT_OK); - finish(); + supportFinishAfterTransition(); } else { tryAgain(); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java index 3606f077f1428d0199c7f434417d4b65a7d31f32..a67ac56dee3549f1f18cadb02dfe24956c3cd892 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordActivity.java @@ -42,6 +42,7 @@ public class PasswordActivity extends BaseActivity { @Override public void onCreate(Bundle state) { super.onCreate(state); + overridePendingTransition(R.anim.dialog_in, R.anim.dialog_out); if (!passwordController.accountExists()) { deleteAccount(); @@ -97,7 +98,7 @@ public class PasswordActivity extends BaseActivity { passwordController.deleteAccount(this); setResult(RESULT_CANCELED); startActivity(new Intent(this, SetupActivity.class)); - finish(); + supportFinishAfterTransition(); } public void onSignInClick(View v) { @@ -132,7 +133,9 @@ public class PasswordActivity extends BaseActivity { public void onResultUi(@NonNull Boolean result) { if (result) { setResult(RESULT_OK); - finish(); + supportFinishAfterTransition(); + overridePendingTransition(R.anim.screen_new_in, + R.anim.screen_old_out); } else { tryAgain(); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/SetupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/login/SetupActivity.java index be3627dc8f01a89c80b0c92d85cdcb9946e2533f..1c2ad3c17b17391d2f299a45be541388e52a5fa3 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/SetupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/SetupActivity.java @@ -50,6 +50,7 @@ public class SetupActivity extends BaseActivity implements OnClickListener, @Override public void onCreate(Bundle state) { super.onCreate(state); + overridePendingTransition(R.anim.dialog_in, R.anim.dialog_out); setContentView(R.layout.activity_setup); nicknameEntryWrapper = @@ -149,6 +150,7 @@ public class SetupActivity extends BaseActivity implements OnClickListener, Intent i = new Intent(this, NavDrawerActivity.class); i.setFlags(FLAG_ACTIVITY_NEW_TASK); startActivity(i); - finish(); + supportFinishAfterTransition(); + overridePendingTransition(R.anim.screen_new_in, R.anim.screen_old_out); } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java index e2edf7c98dc9fcfa8af242bc0117352848565a14..25a02e6e5a595d4f27dade947b7c2d49198ab47c 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java @@ -1,13 +1,11 @@ package org.briarproject.briar.android.navdrawer; -import android.content.Context; import android.content.Intent; -import android.content.SharedPreferences; import android.content.res.Configuration; -import android.content.res.Resources; import android.os.Bundle; import android.support.design.widget.NavigationView; import android.support.design.widget.NavigationView.OnNavigationItemSelectedListener; +import android.support.v4.content.ContextCompat; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarDrawerToggle; @@ -32,6 +30,7 @@ import org.briarproject.briar.android.blog.FeedFragment; import org.briarproject.briar.android.contact.ContactListFragment; import org.briarproject.briar.android.forum.ForumListFragment; import org.briarproject.briar.android.fragment.BaseFragment.BaseFragmentListener; +import org.briarproject.briar.android.fragment.SignOutFragment; import org.briarproject.briar.android.privategroup.list.GroupListFragment; import org.briarproject.briar.android.settings.SettingsActivity; @@ -56,16 +55,13 @@ public class NavDrawerActivity extends BriarFragmentActivity implements private static final Logger LOG = Logger.getLogger(NavDrawerActivity.class.getName()); - private final static String PREF_SEEN_WELCOME_MESSAGE = "welcome_message"; - private ActionBarDrawerToggle drawerToggle; @Inject NavDrawerController controller; private DrawerLayout drawerLayout; - private TextView progressTitle; - private ViewGroup progressViewGroup; + private NavigationView navigation; private List<Transport> transports; private BaseAdapter transportsAdapter; @@ -101,11 +97,8 @@ public class NavDrawerActivity extends BriarFragmentActivity implements Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); - NavigationView navigation = - (NavigationView) findViewById(R.id.navigation); + navigation = (NavigationView) findViewById(R.id.navigation); GridView transportsView = (GridView) findViewById(R.id.transportsView); - progressTitle = (TextView) findViewById(R.id.title_progress_bar); - progressViewGroup = (ViewGroup) findViewById(R.id.container_progress); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); @@ -120,8 +113,6 @@ public class NavDrawerActivity extends BriarFragmentActivity implements initializeTransports(getLayoutInflater()); transportsView.setAdapter(transportsAdapter); - welcomeMessageCheck(); - if (state == null) { navigation.setCheckedItem(R.id.nav_btn_contacts); startFragment(ContactListFragment.newInstance()); @@ -131,15 +122,6 @@ public class NavDrawerActivity extends BriarFragmentActivity implements } } - private void welcomeMessageCheck() { - SharedPreferences prefs = getPreferences(Context.MODE_PRIVATE); - if (!prefs.getBoolean(PREF_SEEN_WELCOME_MESSAGE, false)) { - showMessageDialog(R.string.dialog_title_welcome, - R.string.dialog_welcome_message); - prefs.edit().putBoolean(PREF_SEEN_WELCOME_MESSAGE, true).apply(); - } - } - @Override public void onStart() { super.onStart(); @@ -155,7 +137,7 @@ public class NavDrawerActivity extends BriarFragmentActivity implements } private void loadFragment(int fragmentId) { - // TODO re-use fragments from the manager when possible + // TODO re-use fragments from the manager when possible (#606) switch (fragmentId) { case R.id.nav_btn_contacts: startFragment(ContactListFragment.newInstance()); @@ -202,7 +184,7 @@ public class NavDrawerActivity extends BriarFragmentActivity implements clearBackStack(); loadFragment(item.getItemId()); //Don't display the Settings Item as checked - if(item.getItemId() == R.id.nav_btn_settings){ + if (item.getItemId() == R.id.nav_btn_settings){ return false; } return true; @@ -216,8 +198,7 @@ public class NavDrawerActivity extends BriarFragmentActivity implements return; } // Check the Contacts item because we always return to Contacts here - NavigationView navigation = (NavigationView) findViewById(R.id.navigation); - navigation.getMenu().findItem(R.id.nav_btn_contacts).setChecked(true); + navigation.setCheckedItem(R.id.nav_btn_contacts); super.onBackPressed(); } @@ -235,10 +216,8 @@ public class NavDrawerActivity extends BriarFragmentActivity implements @Override protected void signOut() { - // Disable navigation drawer slide to open drawerLayout.setDrawerLockMode(LOCK_MODE_LOCKED_CLOSED); - progressTitle.setText(R.string.progress_title_logout); - progressViewGroup.setVisibility(View.VISIBLE); + startFragment(new SignOutFragment()); super.signOut(); } @@ -285,21 +264,25 @@ public class NavDrawerActivity extends BriarFragmentActivity implements @Override public View getView(int position, View convertView, ViewGroup parent) { - ViewGroup view = (ViewGroup) inflater.inflate( - R.layout.list_item_transport, parent, false); + View view; + if (convertView != null) view = convertView; + else view = + inflater.inflate(R.layout.list_item_transport, parent, + false); Transport t = getItem(position); - Resources r = getResources(); - int c; if (t.enabled) { - c = r.getColor(R.color.briar_green_light); + c = ContextCompat.getColor(NavDrawerActivity.this, + R.color.briar_green_light); } else { - c = r.getColor(android.R.color.tertiary_text_light); + c = ContextCompat.getColor(NavDrawerActivity.this, + android.R.color.tertiary_text_light); } ImageView icon = (ImageView) view.findViewById(R.id.imageView); - icon.setImageDrawable(r.getDrawable(t.iconId)); + icon.setImageDrawable(ContextCompat + .getDrawable(NavDrawerActivity.this, t.iconId)); icon.setColorFilter(c); TextView text = (TextView) view.findViewById(R.id.textView); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicPreferencesFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicPreferencesFragment.java index 9251b85b3052c7552c43f23a79c04be3e4b7335f..b08e48d17469e5d8fe73bdd578e4a912d00f6993 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicPreferencesFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicPreferencesFragment.java @@ -126,7 +126,7 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse( "market://details?id=info.guardianproject.ripple")); - getActivity().startActivity(intent); + startActivity(intent); return true; } }); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java index e0502432ff3dd3fe027e40a90139d868140eaa22..fb4d4dfedee707a9214e62182d47df1b0618f1e5 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java @@ -6,8 +6,6 @@ import android.content.Intent; import android.os.Bundle; import android.support.annotation.LayoutRes; import android.support.annotation.StringRes; -import android.support.v4.app.ActivityCompat; -import android.support.v4.app.ActivityOptionsCompat; import android.support.v7.app.ActionBar; import android.support.v7.app.AlertDialog; import android.support.v7.widget.LinearLayoutManager; @@ -37,7 +35,6 @@ import org.briarproject.briar.api.privategroup.Visibility; import javax.annotation.Nullable; import javax.inject.Inject; -import static android.support.v4.app.ActivityOptionsCompat.makeCustomAnimation; import static android.view.View.GONE; import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_POST_BODY_LENGTH; @@ -152,9 +149,6 @@ public class GroupActivity extends @Override public boolean onOptionsItemSelected(final MenuItem item) { - ActivityOptionsCompat options = - makeCustomAnimation(this, android.R.anim.slide_in_left, - android.R.anim.slide_out_right); switch (item.getItemId()) { case R.id.action_group_compose_message: showTextInput(null); @@ -162,18 +156,17 @@ public class GroupActivity extends case R.id.action_group_member_list: Intent i1 = new Intent(this, GroupMemberListActivity.class); i1.putExtra(GROUP_ID, groupId.getBytes()); - ActivityCompat.startActivity(this, i1, options.toBundle()); + startActivity(i1); return true; case R.id.action_group_reveal: Intent i2 = new Intent(this, RevealContactsActivity.class); i2.putExtra(GROUP_ID, groupId.getBytes()); - ActivityCompat.startActivity(this, i2, options.toBundle()); + startActivity(i2); return true; case R.id.action_group_invite: Intent i3 = new Intent(this, GroupInviteActivity.class); i3.putExtra(GROUP_ID, groupId.getBytes()); - ActivityCompat.startActivityForResult(this, i3, REQUEST_INVITE, - options.toBundle()); + startActivityForResult(i3, REQUEST_INVITE); return true; case R.id.action_group_leave: showLeaveGroupDialog(); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/BaseGroupInviteActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/BaseGroupInviteActivity.java index d115020db9b9f199af35bd223c662aa3c289f004..30d64e95a17aa983973a8fe5924959d20072a45a 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/BaseGroupInviteActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/BaseGroupInviteActivity.java @@ -4,7 +4,6 @@ import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; -import org.briarproject.briar.R; import org.briarproject.briar.android.contactselection.ContactSelectorActivity; import org.briarproject.briar.android.controller.handler.UiResultExceptionHandler; import org.briarproject.briar.android.sharing.BaseMessageFragment.MessageFragmentListener; @@ -27,15 +26,7 @@ public abstract class BaseGroupInviteActivity public void contactsSelected(Collection<ContactId> contacts) { super.contactsSelected(contacts); - CreateGroupMessageFragment fragment = new CreateGroupMessageFragment(); - getSupportFragmentManager().beginTransaction() - .setCustomAnimations(android.R.anim.fade_in, - android.R.anim.fade_out, - android.R.anim.slide_in_left, - android.R.anim.slide_out_right) - .replace(R.id.fragmentContainer, fragment) - .addToBackStack(fragment.getUniqueTag()) - .commit(); + showNextFragment(new CreateGroupMessageFragment()); } @Override diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupActivity.java index df6c245395ef9c48e76eb7d4c88632f497195ceb..e65875892d8d3a582039c1e61443a54e26f9fd27 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupActivity.java @@ -2,8 +2,7 @@ package org.briarproject.briar.android.privategroup.creation; import android.content.Intent; import android.os.Bundle; -import android.support.v4.app.ActivityCompat; -import android.support.v4.app.ActivityOptionsCompat; +import android.support.annotation.Nullable; import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; @@ -15,10 +14,6 @@ import org.briarproject.briar.android.controller.handler.UiResultExceptionHandle import org.briarproject.briar.android.privategroup.conversation.GroupActivity; import org.briarproject.briar.android.sharing.BaseMessageFragment.MessageFragmentListener; -import javax.annotation.Nullable; - -import static android.support.v4.app.ActivityOptionsCompat.makeCustomAnimation; - @MethodsNotNullByDefault @ParametersNotNullByDefault public class CreateGroupActivity extends BaseGroupInviteActivity implements @@ -34,10 +29,7 @@ public class CreateGroupActivity extends BaseGroupInviteActivity implements super.onCreate(bundle); if (bundle == null) { - CreateGroupFragment fragment = new CreateGroupFragment(); - getSupportFragmentManager().beginTransaction() - .add(R.id.fragmentContainer, fragment) - .commit(); + showInitialFragment(new CreateGroupFragment()); } } @@ -72,25 +64,13 @@ public class CreateGroupActivity extends BaseGroupInviteActivity implements private void switchToContactSelectorFragment(GroupId g) { setTitle(R.string.groups_invite_members); - GroupInviteFragment fragment = - GroupInviteFragment.newInstance(g); - getSupportFragmentManager().beginTransaction() - .setCustomAnimations(android.R.anim.fade_in, - android.R.anim.fade_out, - android.R.anim.slide_in_left, - android.R.anim.slide_out_right) - .replace(R.id.fragmentContainer, fragment) - .addToBackStack(fragment.getUniqueTag()) - .commit(); + showNextFragment(GroupInviteFragment.newInstance(g)); } private void openNewGroup() { Intent i = new Intent(this, GroupActivity.class); i.putExtra(GROUP_ID, groupId.getBytes()); - ActivityOptionsCompat options = - makeCustomAnimation(this, android.R.anim.fade_in, - android.R.anim.fade_out); - ActivityCompat.startActivity(this, i, options.toBundle()); + startActivity(i); // finish this activity, so we can't come back to it finish(); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/GroupInviteActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/GroupInviteActivity.java index 794a12069f792877e545099606295601df1e922e..9f6a092f51cdab6013b0ea407e13061498a76e8e 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/GroupInviteActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/GroupInviteActivity.java @@ -4,7 +4,6 @@ import android.content.Intent; import android.os.Bundle; import org.briarproject.bramble.api.sync.GroupId; -import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.sharing.BaseMessageFragment.MessageFragmentListener; @@ -26,11 +25,7 @@ public class GroupInviteActivity extends BaseGroupInviteActivity groupId = new GroupId(g); if (bundle == null) { - GroupInviteFragment fragment = - GroupInviteFragment.newInstance(groupId); - getSupportFragmentManager().beginTransaction() - .replace(R.id.fragmentContainer, fragment) - .commit(); + showInitialFragment(GroupInviteFragment.newInstance(groupId)); } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupListFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupListFragment.java index 2c7e29b5a3bb893148592888f8b77553787b1213..ccb0c5acf20c57b817fc68108dc7581c4247d7ce 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupListFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupListFragment.java @@ -4,7 +4,6 @@ import android.content.Intent; import android.os.Bundle; import android.support.annotation.UiThread; import android.support.design.widget.Snackbar; -import android.support.v4.app.ActivityOptionsCompat; import android.support.v4.content.ContextCompat; import android.support.v7.widget.LinearLayoutManager; import android.view.LayoutInflater; @@ -38,7 +37,6 @@ import javax.annotation.Nullable; import javax.inject.Inject; import static android.support.design.widget.Snackbar.LENGTH_INDEFINITE; -import static android.support.v4.app.ActivityOptionsCompat.makeCustomAnimation; @MethodsNotNullByDefault @ParametersNotNullByDefault @@ -117,11 +115,7 @@ public class GroupListFragment extends BaseFragment implements switch (item.getItemId()) { case R.id.action_add_group: Intent i = new Intent(getContext(), CreateGroupActivity.class); - ActivityOptionsCompat options = - makeCustomAnimation(getActivity(), - android.R.anim.slide_in_left, - android.R.anim.slide_out_right); - startActivity(i, options.toBundle()); + startActivity(i); return true; default: return super.onOptionsItemSelected(item); @@ -240,11 +234,7 @@ public class GroupListFragment extends BaseFragment implements @Override public void onClick(View v) { Intent i = new Intent(getContext(), GroupInvitationActivity.class); - ActivityOptionsCompat options = - makeCustomAnimation(getActivity(), - android.R.anim.slide_in_left, - android.R.anim.slide_out_right); - startActivity(i, options.toBundle()); + startActivity(i); } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupViewHolder.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupViewHolder.java index af676fc019784c05bf5796d828e62198cb47ddf8..c137ad072d2b463ce10e453b0e78fcb0b3d5c495 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupViewHolder.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/list/GroupViewHolder.java @@ -2,7 +2,6 @@ package org.briarproject.briar.android.privategroup.list; import android.content.Context; import android.content.Intent; -import android.support.v4.app.ActivityOptionsCompat; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.View.OnClickListener; @@ -19,7 +18,6 @@ import org.briarproject.briar.android.util.UiUtils; import org.briarproject.briar.android.view.TextAvatarView; import static android.support.v4.content.ContextCompat.getColor; -import static android.support.v4.content.ContextCompat.startActivities; import static android.view.View.GONE; import static android.view.View.VISIBLE; import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID; @@ -126,11 +124,7 @@ class GroupViewHolder extends RecyclerView.ViewHolder { GroupId id = group.getId(); i.putExtra(GROUP_ID, id.getBytes()); i.putExtra(GROUP_NAME, group.getName()); - ActivityOptionsCompat options = ActivityOptionsCompat - .makeCustomAnimation(ctx, android.R.anim.fade_in, - android.R.anim.fade_out); - Intent[] intents = {i}; - startActivities(ctx, intents, options.toBundle()); + ctx.startActivity(i); } }); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/reveal/RevealContactsActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/reveal/RevealContactsActivity.java index db6236a1d906f8d5409481dc63584e151ec02251..450b6e4ff1b1804bffdf46e5e66261ec67e57f44 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/reveal/RevealContactsActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/reveal/RevealContactsActivity.java @@ -58,11 +58,7 @@ public class RevealContactsActivity extends ContactSelectorActivity button.setEnabled(false); if (bundle == null) { - RevealContactsFragment fragment = - RevealContactsFragment.newInstance(groupId); - getSupportFragmentManager().beginTransaction() - .replace(R.id.fragmentContainer, fragment) - .commit(); + showInitialFragment(RevealContactsFragment.newInstance(groupId)); } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareActivity.java index 6db3a0694d6381537f80b166c8213f3af261ac05..2d0c4f0af83af120b37d3575ca5e993821bd3cb1 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareActivity.java @@ -10,7 +10,6 @@ import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.briar.R; import org.briarproject.briar.android.contactselection.ContactSelectorActivity; -import org.briarproject.briar.android.contactselection.ContactSelectorFragment; import org.briarproject.briar.android.sharing.BaseMessageFragment.MessageFragmentListener; import java.util.Collection; @@ -36,17 +35,7 @@ public abstract class ShareActivity extends ContactSelectorActivity @Override public void contactsSelected(Collection<ContactId> contacts) { super.contactsSelected(contacts); - - BaseMessageFragment messageFragment = getMessageFragment(); - getSupportFragmentManager().beginTransaction() - .setCustomAnimations(android.R.anim.fade_in, - android.R.anim.fade_out, - android.R.anim.slide_in_left, - android.R.anim.slide_out_right) - .replace(R.id.fragmentContainer, messageFragment, - ContactSelectorFragment.TAG) - .addToBackStack(null) - .commit(); + showNextFragment(getMessageFragment()); } abstract BaseMessageFragment getMessageFragment(); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareBlogActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareBlogActivity.java index f395eda7bea08a1ef8286edf25f488d2c91d251c..1d6581e6b1581f70ceef2365d2dd391e14341463 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareBlogActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareBlogActivity.java @@ -41,10 +41,7 @@ public class ShareBlogActivity extends ShareActivity { super.onCreate(bundle); if (bundle == null) { - ShareBlogFragment fragment = ShareBlogFragment.newInstance(groupId); - getSupportFragmentManager().beginTransaction() - .add(R.id.fragmentContainer, fragment) - .commit(); + showInitialFragment(ShareBlogFragment.newInstance(groupId)); } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareForumActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareForumActivity.java index f32a49cc8b54fa4ca152013fee710977825d8290..dc16a239fbf75bdee5589c35e975c20d61518ec1 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareForumActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareForumActivity.java @@ -41,11 +41,7 @@ public class ShareForumActivity extends ShareActivity { super.onCreate(bundle); if (bundle == null) { - ShareForumFragment fragment = - ShareForumFragment.newInstance(groupId); - getSupportFragmentManager().beginTransaction() - .add(R.id.fragmentContainer, fragment) - .commit(); + showInitialFragment(ShareForumFragment.newInstance(groupId)); } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/splash/SplashScreenActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/splash/SplashScreenActivity.java index 6b40803d0c5a033a2fc910c454f9c46f382b9584..7bae16458f729e36ce69904ec60d9a2e502c8519 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/splash/SplashScreenActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/splash/SplashScreenActivity.java @@ -1,12 +1,14 @@ package org.briarproject.briar.android.splash; import android.content.Intent; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.StrictMode; import android.os.StrictMode.ThreadPolicy; import android.os.StrictMode.VmPolicy; import android.support.v7.preference.PreferenceManager; +import android.transition.Fade; import org.briarproject.bramble.api.system.AndroidExecutor; import org.briarproject.briar.R; @@ -45,6 +47,10 @@ public class SplashScreenActivity extends BaseActivity { public void onCreate(Bundle state) { super.onCreate(state); + if (Build.VERSION.SDK_INT >= 21) { + getWindow().setExitTransition(new Fade()); + } + setPreferencesDefaults(); setContentView(R.layout.splash); @@ -53,7 +59,7 @@ public class SplashScreenActivity extends BaseActivity { @Override public void run() { startNextActivity(); - finish(); + supportFinishAfterTransition(); } }, 500); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java b/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java index 3e65fc642146c37e70dd1b961e494b87cc08a7a3..24c25b4919e810b9e9001e58382c56c81749aa70 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java @@ -1,6 +1,7 @@ package org.briarproject.briar.android.util; import android.content.Context; +import android.support.annotation.Nullable; import android.support.design.widget.TextInputLayout; import android.support.v4.app.FragmentManager; import android.support.v4.content.ContextCompat; @@ -36,7 +37,7 @@ public class UiUtils { public static final int TEASER_LENGTH = 320; public static final float GREY_OUT = 0.5f; - public static void setError(TextInputLayout til, String error, + public static void setError(TextInputLayout til, @Nullable String error, boolean set) { if (set) { if (til.getError() == null) til.setError(error); @@ -116,4 +117,5 @@ public class UiUtils { public static String getBulbTransitionName(ContactId c) { return "bulb" + c.getInt(); } + } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/view/AuthorView.java b/briar-android/src/main/java/org/briarproject/briar/android/view/AuthorView.java index 4c3ee59442cfcc305bcabbe13d0594fac21be7a3..82442185e6b1ddb1ff08a6a5f9f2da19dc30078c 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/view/AuthorView.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/view/AuthorView.java @@ -6,8 +6,6 @@ import android.content.res.TypedArray; import android.graphics.Typeface; import android.support.annotation.DimenRes; import android.support.annotation.UiThread; -import android.support.v4.app.ActivityOptionsCompat; -import android.support.v4.content.ContextCompat; import android.util.AttributeSet; import android.util.TypedValue; import android.view.LayoutInflater; @@ -31,7 +29,6 @@ import im.delight.android.identicons.IdenticonDrawable; import static android.content.Context.LAYOUT_INFLATER_SERVICE; import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; import static android.graphics.Typeface.BOLD; -import static android.support.v4.app.ActivityOptionsCompat.makeCustomAnimation; import static android.util.TypedValue.COMPLEX_UNIT_PX; import static org.briarproject.bramble.api.identity.Author.Status.OURSELVES; import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID; @@ -116,13 +113,7 @@ public class AuthorView extends RelativeLayout { Intent i = new Intent(getContext(), BlogActivity.class); i.putExtra(GROUP_ID, groupId.getBytes()); i.setFlags(FLAG_ACTIVITY_CLEAR_TOP); - ActivityOptionsCompat options = - makeCustomAnimation(getContext(), - android.R.anim.slide_in_left, - android.R.anim.slide_out_right); - Intent[] intents = {i}; - ContextCompat.startActivities(getContext(), intents, - options.toBundle()); + getContext().startActivity(i); } }); } @@ -135,9 +126,19 @@ public class AuthorView extends RelativeLayout { public void setPersona(int persona) { switch (persona) { + case NORMAL: + avatarIcon.setVisibility(VISIBLE); + date.setVisibility(VISIBLE); + setAvatarSize(R.dimen.blogs_avatar_normal_size); + setTextSize(authorName, R.dimen.text_size_small); + setCenterVertical(authorName, false); + setCenterVertical(trustIndicator, false); + break; case REBLOGGER: avatarIcon.setVisibility(VISIBLE); date.setVisibility(VISIBLE); + setAvatarSize(R.dimen.blogs_avatar_normal_size); + setTextSize(authorName, R.dimen.text_size_small); setCenterVertical(authorName, false); setCenterVertical(trustIndicator, false); break; @@ -162,8 +163,7 @@ public class AuthorView extends RelativeLayout { private void setAvatarSize(@DimenRes int res) { LayoutParams params = (LayoutParams) avatar.getLayoutParams(); - int size = getResources().getDimensionPixelSize( - res); + int size = getResources().getDimensionPixelSize(res); params.height = size; params.width = size; avatar.setLayoutParams(params); diff --git a/briar-android/src/main/res/anim/dialog_in.xml b/briar-android/src/main/res/anim/dialog_in.xml new file mode 100644 index 0000000000000000000000000000000000000000..4d3bef4a381f2bc23b53a600fc47608e9a65a8a7 --- /dev/null +++ b/briar-android/src/main/res/anim/dialog_in.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<alpha + xmlns:android="http://schemas.android.com/apk/res/android" + android:duration="@android:integer/config_longAnimTime" + android:fromAlpha="0.0" + android:interpolator="@android:interpolator/decelerate_quad" + android:toAlpha="1.0"/> diff --git a/briar-android/src/main/res/anim/dialog_out.xml b/briar-android/src/main/res/anim/dialog_out.xml new file mode 100644 index 0000000000000000000000000000000000000000..84bad946f7b5b9c4c2f59ff106f1b079af96b4be --- /dev/null +++ b/briar-android/src/main/res/anim/dialog_out.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<alpha + xmlns:android="http://schemas.android.com/apk/res/android" + android:duration="@android:integer/config_mediumAnimTime" + android:fromAlpha="1.0" + android:interpolator="@android:interpolator/accelerate_quad" + android:toAlpha="0.0"/> diff --git a/briar-android/src/main/res/anim/screen_new_in.xml b/briar-android/src/main/res/anim/screen_new_in.xml new file mode 100644 index 0000000000000000000000000000000000000000..6bdf53b16d438e3b8312164f3ee48ac4b43fd545 --- /dev/null +++ b/briar-android/src/main/res/anim/screen_new_in.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<set + xmlns:android="http://schemas.android.com/apk/res/android"> + + <!-- slide in from right --> + <translate + android:duration="@android:integer/config_mediumAnimTime" + android:fromXDelta="100%p" + android:interpolator="@android:interpolator/decelerate_quad" + android:toXDelta="0"/> + +</set> diff --git a/briar-android/src/main/res/anim/screen_new_out.xml b/briar-android/src/main/res/anim/screen_new_out.xml new file mode 100644 index 0000000000000000000000000000000000000000..5411fa11baa7c16b1651f5f3354f38ffff187302 --- /dev/null +++ b/briar-android/src/main/res/anim/screen_new_out.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<set + xmlns:android="http://schemas.android.com/apk/res/android"> + + <!-- slide out to right --> + <translate + android:duration="@android:integer/config_mediumAnimTime" + android:fromXDelta="0" + android:interpolator="@android:interpolator/accelerate_quad" + android:toXDelta="100%p"/> + +</set> diff --git a/briar-android/src/main/res/anim/screen_old_in.xml b/briar-android/src/main/res/anim/screen_old_in.xml new file mode 100644 index 0000000000000000000000000000000000000000..2360d85b58d6b8f1372873804879fc1dfc65376c --- /dev/null +++ b/briar-android/src/main/res/anim/screen_old_in.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<alpha + xmlns:android="http://schemas.android.com/apk/res/android" + android:duration="@android:integer/config_mediumAnimTime" + android:fromAlpha="0.0" + android:interpolator="@android:interpolator/decelerate_quad" + android:toAlpha="1.0"/> diff --git a/briar-android/src/main/res/anim/screen_old_out.xml b/briar-android/src/main/res/anim/screen_old_out.xml new file mode 100644 index 0000000000000000000000000000000000000000..84bad946f7b5b9c4c2f59ff106f1b079af96b4be --- /dev/null +++ b/briar-android/src/main/res/anim/screen_old_out.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<alpha + xmlns:android="http://schemas.android.com/apk/res/android" + android:duration="@android:integer/config_mediumAnimTime" + android:fromAlpha="1.0" + android:interpolator="@android:interpolator/accelerate_quad" + android:toAlpha="0.0"/> diff --git a/briar-android/src/main/res/anim/step_next_in.xml b/briar-android/src/main/res/anim/step_next_in.xml new file mode 100644 index 0000000000000000000000000000000000000000..6bdf53b16d438e3b8312164f3ee48ac4b43fd545 --- /dev/null +++ b/briar-android/src/main/res/anim/step_next_in.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<set + xmlns:android="http://schemas.android.com/apk/res/android"> + + <!-- slide in from right --> + <translate + android:duration="@android:integer/config_mediumAnimTime" + android:fromXDelta="100%p" + android:interpolator="@android:interpolator/decelerate_quad" + android:toXDelta="0"/> + +</set> diff --git a/briar-android/src/main/res/anim/step_next_out.xml b/briar-android/src/main/res/anim/step_next_out.xml new file mode 100644 index 0000000000000000000000000000000000000000..5411fa11baa7c16b1651f5f3354f38ffff187302 --- /dev/null +++ b/briar-android/src/main/res/anim/step_next_out.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<set + xmlns:android="http://schemas.android.com/apk/res/android"> + + <!-- slide out to right --> + <translate + android:duration="@android:integer/config_mediumAnimTime" + android:fromXDelta="0" + android:interpolator="@android:interpolator/accelerate_quad" + android:toXDelta="100%p"/> + +</set> diff --git a/briar-android/src/main/res/anim/step_previous_in.xml b/briar-android/src/main/res/anim/step_previous_in.xml new file mode 100644 index 0000000000000000000000000000000000000000..2360d85b58d6b8f1372873804879fc1dfc65376c --- /dev/null +++ b/briar-android/src/main/res/anim/step_previous_in.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<alpha + xmlns:android="http://schemas.android.com/apk/res/android" + android:duration="@android:integer/config_mediumAnimTime" + android:fromAlpha="0.0" + android:interpolator="@android:interpolator/decelerate_quad" + android:toAlpha="1.0"/> diff --git a/briar-android/src/main/res/anim/step_previous_out.xml b/briar-android/src/main/res/anim/step_previous_out.xml new file mode 100644 index 0000000000000000000000000000000000000000..84bad946f7b5b9c4c2f59ff106f1b079af96b4be --- /dev/null +++ b/briar-android/src/main/res/anim/step_previous_out.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<alpha + xmlns:android="http://schemas.android.com/apk/res/android" + android:duration="@android:integer/config_mediumAnimTime" + android:fromAlpha="1.0" + android:interpolator="@android:interpolator/accelerate_quad" + android:toAlpha="0.0"/> diff --git a/briar-android/src/main/res/layout/activity_nav_drawer.xml b/briar-android/src/main/res/layout/activity_nav_drawer.xml index ad4465680b5ecd838f41680fb1b5228eeb8cffae..2c2ea040232b2ff387a9442ad5c7ddbee748f198 100644 --- a/briar-android/src/main/res/layout/activity_nav_drawer.xml +++ b/briar-android/src/main/res/layout/activity_nav_drawer.xml @@ -6,8 +6,30 @@ android:layout_height="match_parent"> <!-- The first child(root) is the content view --> - <include - layout="@layout/activity_with_loading"/> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + <android.support.design.widget.AppBarLayout + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <android.support.v7.widget.Toolbar + android:id="@+id/toolbar" + style="@style/BriarToolbar" + android:layout_width="match_parent" + android:layout_height="wrap_content"/> + + </android.support.design.widget.AppBarLayout> + + <FrameLayout + android:id="@+id/fragmentContainer" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/window_background"/> + + </LinearLayout> <!-- The second child is the menu --> <include @@ -16,4 +38,4 @@ android:layout_height="match_parent" android:layout_gravity="start"/> -</android.support.v4.widget.DrawerLayout> \ No newline at end of file +</android.support.v4.widget.DrawerLayout> diff --git a/briar-android/src/main/res/layout/activity_plain.xml b/briar-android/src/main/res/layout/activity_plain.xml index 4c7bae06e0f2cacb73058abdf19736253f5330c4..887c14a610cf4a6e18984e749344ad9ef720c84b 100644 --- a/briar-android/src/main/res/layout/activity_plain.xml +++ b/briar-android/src/main/res/layout/activity_plain.xml @@ -18,7 +18,7 @@ </android.support.design.widget.AppBarLayout> <FrameLayout - android:id="@+id/content_fragment" + android:id="@+id/fragmentContainer" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/window_background"/> diff --git a/briar-android/src/main/res/layout/activity_with_loading.xml b/briar-android/src/main/res/layout/activity_with_loading.xml deleted file mode 100644 index 2c797c36c493d807f50f91c0b12a3058822cd693..0000000000000000000000000000000000000000 --- a/briar-android/src/main/res/layout/activity_with_loading.xml +++ /dev/null @@ -1,61 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical"> - - <android.support.design.widget.AppBarLayout - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <android.support.v7.widget.Toolbar - android:id="@+id/toolbar" - style="@style/BriarToolbar" - android:layout_width="match_parent" - android:layout_height="wrap_content"/> - - </android.support.design.widget.AppBarLayout> - - <FrameLayout - android:layout_width="match_parent" - android:layout_height="match_parent"> - - <FrameLayout - android:id="@+id/content_fragment" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="@color/window_background"/> - - <RelativeLayout - android:id="@+id/container_progress" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="@color/window_background" - android:layout_gravity="center" - android:visibility="invisible" - tools:visibility="visible"> - - <ProgressBar - android:id="@+id/progress_bar" - style="?android:attr/progressBarStyleLarge" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_centerInParent="true"/> - - <TextView - android:id="@+id/title_progress_bar" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_below="@id/progress_bar" - android:gravity="center" - android:paddingTop="@dimen/margin_large" - tools:text="progress bar title" - /> - - </RelativeLayout> - - </FrameLayout> - -</LinearLayout> \ No newline at end of file diff --git a/briar-android/src/main/res/layout/fragment_blog_post_pager.xml b/briar-android/src/main/res/layout/fragment_blog_post_pager.xml deleted file mode 100644 index 626dcaf26e21df50e8349d692406ef4f0c4c3a4c..0000000000000000000000000000000000000000 --- a/briar-android/src/main/res/layout/fragment_blog_post_pager.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<FrameLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent"> - - <android.support.v4.view.ViewPager - android:id="@+id/pager" - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent"/> - - <ProgressBar - android:id="@+id/progressBar" - style="?android:attr/progressBarStyleLarge" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center"/> - -</FrameLayout> \ No newline at end of file diff --git a/briar-android/src/main/res/layout/fragment_reblog.xml b/briar-android/src/main/res/layout/fragment_reblog.xml index c0305e25035e8f9783bd58802e990cb74f8388b3..1d5f553e205f9f41235453bccd4ce017d6301946 100644 --- a/briar-android/src/main/res/layout/fragment_reblog.xml +++ b/briar-android/src/main/res/layout/fragment_reblog.xml @@ -4,6 +4,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="@color/window_background" android:orientation="vertical"> <ScrollView @@ -41,7 +42,7 @@ android:layout_height="wrap_content" android:gravity="bottom" app:buttonText="@string/blogs_reblog_button" - app:maxLines="5" - app:hint="@string/blogs_reblog_comment_hint"/> + app:hint="@string/blogs_reblog_comment_hint" + app:maxLines="5"/> </LinearLayout> diff --git a/briar-android/src/main/res/layout/fragment_sign_out.xml b/briar-android/src/main/res/layout/fragment_sign_out.xml new file mode 100644 index 0000000000000000000000000000000000000000..aafc7be5412bfdc5b81b940ad326d83b0ed93beb --- /dev/null +++ b/briar-android/src/main/res/layout/fragment_sign_out.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <ProgressBar + android:id="@+id/progressBar" + style="?android:attr/progressBarStyleLarge" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerInParent="true"/> + + <TextView + android:id="@+id/title_progress_bar" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@+id/progressBar" + android:layout_centerHorizontal="true" + android:paddingTop="@dimen/margin_large" + android:text="@string/progress_title_logout"/> + +</RelativeLayout> \ No newline at end of file diff --git a/briar-android/src/main/res/layout/introduction_message.xml b/briar-android/src/main/res/layout/introduction_message.xml index 61531fd2278c3eacc4a844de7bb647d4f078ebf2..3ca9cfa519617610883ac6c200ad2e2425464ca3 100644 --- a/briar-android/src/main/res/layout/introduction_message.xml +++ b/briar-android/src/main/res/layout/introduction_message.xml @@ -77,7 +77,6 @@ android:layout_marginLeft="@dimen/listitem_horizontal_margin" android:layout_marginRight="@dimen/listitem_horizontal_margin" android:layout_marginStart="@dimen/listitem_horizontal_margin" - android:transitionName="avatar" tools:src="@drawable/ic_launcher"/> <org.thoughtcrime.securesms.components.emoji.EmojiTextView diff --git a/briar-android/src/main/res/layout/list_item_blog.xml b/briar-android/src/main/res/layout/list_item_blog.xml deleted file mode 100644 index 214056cf4da0c5b4da8c422b374f05ebd6a39104..0000000000000000000000000000000000000000 --- a/briar-android/src/main/res/layout/list_item_blog.xml +++ /dev/null @@ -1,79 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<RelativeLayout - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginLeft="@dimen/listitem_horizontal_margin" - android:layout_marginStart="@dimen/listitem_horizontal_margin" - android:background="?attr/selectableItemBackground"> - - <org.briarproject.briar.android.view.TextAvatarView - android:id="@+id/avatarView" - android:layout_width="@dimen/listitem_picture_frame_size" - android:layout_height="@dimen/listitem_picture_frame_size" - android:layout_alignParentLeft="true" - android:layout_alignParentStart="true" - android:layout_marginEnd="@dimen/listitem_horizontal_margin" - android:layout_marginRight="@dimen/listitem_horizontal_margin" - android:layout_marginTop="@dimen/margin_medium"/> - - <org.thoughtcrime.securesms.components.emoji.EmojiTextView - android:id="@+id/nameView" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_alignParentTop="true" - android:layout_marginTop="@dimen/listitem_horizontal_margin" - android:layout_toEndOf="@+id/avatarView" - android:layout_toRightOf="@+id/avatarView" - android:maxLines="2" - android:textColor="@color/briar_text_primary" - android:textSize="@dimen/text_size_medium" - tools:text="This is a name of a blog"/> - - <TextView - android:id="@+id/postCountView" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_below="@+id/nameView" - android:layout_marginBottom="@dimen/margin_small" - android:layout_toEndOf="@+id/avatarView" - android:layout_toRightOf="@+id/avatarView" - android:paddingTop="@dimen/margin_small" - android:textColor="@color/briar_text_secondary" - android:textSize="@dimen/text_size_small" - tools:text="1337 posts"/> - - <TextView - android:id="@+id/dateView" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_alignParentEnd="true" - android:layout_alignParentRight="true" - android:layout_below="@+id/nameView" - android:layout_marginEnd="@dimen/listitem_horizontal_margin" - android:layout_marginRight="@dimen/listitem_horizontal_margin" - android:paddingTop="@dimen/margin_small" - android:textColor="@color/briar_text_secondary" - android:textSize="@dimen/text_size_small" - tools:text="Dec 24"/> - - <TextView - android:id="@+id/statusView" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_below="@+id/postCountView" - android:layout_toEndOf="@+id/avatarView" - android:layout_toRightOf="@+id/avatarView" - android:textColor="@color/briar_text_tertiary" - tools:text="@string/blogs_blog_is_empty"/> - - <View - style="@style/Divider.ForumList" - android:layout_alignParentLeft="true" - android:layout_alignParentStart="true" - android:layout_below="@+id/statusView" - android:layout_marginTop="@dimen/listitem_horizontal_margin"/> - -</RelativeLayout> - diff --git a/briar-android/src/main/res/layout/list_item_revealable_contact.xml b/briar-android/src/main/res/layout/list_item_revealable_contact.xml index c9606b5ecbb4ad0775d6be7f3f7d7aaf0e4e91e9..040410f7029a2001754ea87940b1241590ff1fd3 100644 --- a/briar-android/src/main/res/layout/list_item_revealable_contact.xml +++ b/briar-android/src/main/res/layout/list_item_revealable_contact.xml @@ -25,7 +25,6 @@ android:layout_alignParentStart="true" android:layout_marginEnd="@dimen/listitem_horizontal_margin" android:layout_marginRight="@dimen/listitem_horizontal_margin" - android:transitionName="avatar" tools:src="@drawable/ic_launcher"/> <org.thoughtcrime.securesms.components.emoji.EmojiTextView diff --git a/briar-android/src/main/res/layout/list_item_selectable_contact.xml b/briar-android/src/main/res/layout/list_item_selectable_contact.xml index e04315adedbf762654830ebeac8c58b0c3d5b1c0..09fd1aaa804472e28d35a1407472dac5fe132bd5 100644 --- a/briar-android/src/main/res/layout/list_item_selectable_contact.xml +++ b/briar-android/src/main/res/layout/list_item_selectable_contact.xml @@ -20,7 +20,6 @@ android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_centerVertical="true" - android:transitionName="avatar" tools:src="@drawable/ic_launcher"/> <LinearLayout diff --git a/briar-android/src/main/res/values-de/strings.xml b/briar-android/src/main/res/values-de/strings.xml index 343c5f53c7d13baab395f1c9b085f4f672370485..984e706143a139d1a6e500055c6ad5529fab1bb2 100644 --- a/briar-android/src/main/res/values-de/strings.xml +++ b/briar-android/src/main/res/values-de/strings.xml @@ -10,7 +10,6 @@ <string name="password_too_weak">Passwort zu schwach</string> <string name="passwords_do_not_match">Passwörter stimmen nicht überein</string> <string name="create_account_button">Konto anlegen</string> - <string name="progress_title_please_wait">Bitte warten ...</string> <!--Login--> <string name="enter_password">Passwort eingeben:</string> <string name="try_again">Passwort falsch, bitte erneut versuchen</string> @@ -24,8 +23,6 @@ <string name="startup_failed_db_error">Deine Briar-Datenbank ist korrupt. Briar-Konto, Daten und alle Verbindungen zu Kontakten können nicht mehr wiederhergestellt werden. Deinstalliere Briar und erstelle nach Installation der aktuellen Briar-Version ein neues Konto.</string> <string name="startup_failed_service_error">Briar konnte ein benötigtes Plugin nicht starten. Normalerweise kann das Problem durch eine Neuinstallation von Briar gelöst werden. Eine Neuinstallation führt jedoch zum Verlust des Kontos und aller dazugehörigen Daten, da Briar deine Daten nicht auf zentralen Servern speichert</string> <string name="expiry_warning">Diese Version von Briar ist nicht mehr aktuell.\nBitte installiere eine neuere Version.</string> - <string name="dialog_title_welcome">Willkommen bei Briar</string> - <string name="dialog_welcome_message">Füge einen Kontakt hinzu, um mit verschlüsselter Kommunikation zu beginnen oder wähle das Icon in der oberen linken Ecke für mehr Optionen.</string> <!--Navigation Drawer--> <string name="nav_drawer_open_description">Navigationsleiste öffnen</string> <string name="nav_drawer_close_description">Navigationsleiste schliessen</string> @@ -87,7 +84,6 @@ <string name="searching_format">Suche nach Kontakt mit Einladungs-Code %06d\u2026</string> <string name="connection_failed">Verbindung fehlgeschlagen</string> <string name="could_not_find_contact">Briar kann Deinen Kontakt nicht innerhalb der Reichweite finden</string> - <string name="could_not_open_camera">Es konnte nicht auf die Kamera zugegriffen werden. Bitte versuche es erneut.</string> <string name="try_again_button">Noch einmal versuchen</string> <string name="connected_to_contact">Mit Kontakt verbunden</string> <string name="calculating_confirmation_code">Bestätigungscode wird berechnet\u2026</string> @@ -116,7 +112,6 @@ <string name="introduction_sent">Deine Kontaktempfehlung wurde verschickt</string> <string name="introduction_error">Es gab einen Fehler beim Versuch, die Kontaktempfehlung zu verschicken</string> <string name="introduction_response_error">Fehler bei Antwort auf Kontaktempfehlung</string> - <string name="dialog_button_introduce">Als Kontakt empfehlen</string> <string name="introduction_request_sent">Du wolltest %1$s an %2$s als Kontakt empfehlen</string> <string name="introduction_request_received">%1$s schlägt vor, dich als Kontakt an %2$s zu empfehlen. Möchtest Du %2$s zu deiner Kontaktliste hinzufügen?</string> <string name="introduction_request_exists_received">%1$s schlägt vor, dich als Kontakt an %2$s zu empfehlen. %2$s ist allerdings bereits in deiner Kontaktliste. Da %1$s das vielleicht nicht weiss, kannst du trotzdem antworten:</string> @@ -140,7 +135,6 @@ <string name="groups_group_is_empty">Diese Gruppe ist leer.</string> <string name="groups_remove">Entfernen</string> <string name="groups_create_group_title">Private Gruppe erstellen</string> - <string name="groups_no_messages">Diese Gruppe hat keine Teilnehmer.\n\nErstelle die erste Nachricht über das Stift-Symbol am oberen Rand.</string> <string name="groups_create_group_button">Gruppe erstellen</string> <string name="groups_create_group_invitation_button">Einladung schicken</string> <string name="groups_create_group_hint">Gebe Deiner privaten Gruppe einen Namen</string> @@ -240,7 +234,6 @@ <string name="blogs_sharing_invitation_received">%1$s hat das persönliche Blog von %2$s mit dir geteilt.</string> <string name="blogs_sharing_invitation_sent">Du hast das persönliche Blog von %1$s mit %2$s geteilt.</string> <string name="blogs_sharing_invitations_title">Blogeinladungen</string> - <string name="blogs_sharing_exists">Du hast dieses Blog bereits abonniert. Ein neues Abo anzunehmen kann dazu führen, dass neue Einträge schneller verfügbar werden.</string> <string name="blogs_sharing_joined_toast">Blog abonniert</string> <string name="blogs_sharing_declined_toast">Blogeinladung abgelehnt</string> <!--RSS Feeds--> diff --git a/briar-android/src/main/res/values-es/strings.xml b/briar-android/src/main/res/values-es/strings.xml index 6eb9c8e5fd93a6911e2798eba6c336baf2dc9e3d..26ff73a9895b667445719a386171cfba5f56df94 100644 --- a/briar-android/src/main/res/values-es/strings.xml +++ b/briar-android/src/main/res/values-es/strings.xml @@ -10,7 +10,6 @@ <string name="password_too_weak">La contraseña es demasiado débil</string> <string name="passwords_do_not_match">Las contraseñas no coinciden</string> <string name="create_account_button">Registrar una nueva cuenta</string> - <string name="progress_title_please_wait">Espera, por favor</string> <!--Login--> <string name="enter_password">Introduce tu contraseña:</string> <string name="try_again">Contraseña incorrecta, inténtalo de nuevo</string> @@ -24,8 +23,6 @@ <string name="startup_failed_db_error">Por alguna razón, la base de datos de Briar ha sufrido daños irreparables. Tu cuenta, tus datos y todos tus contactos se han perdido. Desafortunadamente, tendrás que reinstalar Briar y registrar una nueva cuenta.</string> <string name="startup_failed_service_error">Briar no pudo iniciar un complemento necesario. Reinstalar Briar suele solucionar el problema. Sin embargo, ten en cuenta que perderás tu cuenta y todos los datos asociados ya que Briar no almacena esta información en ningún servidor centrar.</string> <string name="expiry_warning">Esta versión ha caducado.\nInstala una más reciente, por favor.</string> - <string name="dialog_title_welcome">Bienvenido a Briar</string> - <string name="dialog_welcome_message">Añade un contacto para empezar a comunicarte de forma segura o pulsa el icono de la esquina superior izquierda de la pantalla para otras opciones.</string> <!--Navigation Drawer--> <string name="nav_drawer_open_description">Abrir el panel de navegación</string> <string name="nav_drawer_close_description">Cierra el panel de navegación</string> @@ -94,7 +91,6 @@ <string name="searching_format">Buscando el contacto con el código de invitación %06d\u2026</string> <string name="connection_failed">La conexión falló</string> <string name="could_not_find_contact">Briar no pudo encontrar a tu contacto cerca</string> - <string name="could_not_open_camera">No se pudo acceder a la cámara. ¡Prueba de nuevo, por favor!</string> <string name="try_again_button">Prueba de nuevo</string> <string name="connected_to_contact">Conectado con el contacto</string> <string name="calculating_confirmation_code">Calculando código de confirmación\u2026</string> @@ -124,7 +120,6 @@ <string name="introduction_sent">Tu presentación se ha mandado.</string> <string name="introduction_error">Ocurrió un error realizando la presentación.</string> <string name="introduction_response_error">Error al responder a la presentación</string> - <string name="dialog_button_introduce">Presentar</string> <string name="introduction_request_sent">Has pedido presentar a %1$s a %2$s.</string> <string name="introduction_request_received">%1$s ha pedido presentarte a %2$s. ¿Quieres añadir a %2$s a tu lista de contactos?</string> <string name="introduction_request_exists_received">%1$s ha pedido presentarte a %2$s, pero %2$s ya está en tu lista de contactos. %1$s puede no saberlo, asà que puedes responderle de todas maneras:</string> @@ -149,7 +144,6 @@ <string name="groups_group_is_dissolved">Este grupo ha sido disuelto</string> <string name="groups_remove">Eliminar</string> <string name="groups_create_group_title">Crear grupo privado</string> - <string name="groups_no_messages">Este grupo está vacÃo.\n\nPuedes usar el icono del lápiz arriba para escribir el primer mensaje.</string> <string name="groups_create_group_button">Crear grupo</string> <string name="groups_create_group_invitation_button">Enviar invitación</string> <string name="groups_create_group_hint">Dar nombre al grupo privado</string> @@ -277,7 +271,6 @@ <string name="blogs_sharing_invitation_received">%1$s ha compartido el blog personal de %2$s contigo.</string> <string name="blogs_sharing_invitation_sent">Has compartido el blog personal de %1$s con %2$s.</string> <string name="blogs_sharing_invitations_title">Invitaciones a blogs</string> - <string name="blogs_sharing_exists">Ya estás suscrito a este blog. Aceptar la invitación de nuevo conllevará una mejora de la velocidad en la recepción de los artÃculos.</string> <string name="blogs_sharing_joined_toast">Suscrito al blog</string> <string name="blogs_sharing_declined_toast">Rechazada invitación al blog</string> <!--RSS Feeds--> diff --git a/briar-android/src/main/res/values-fr/strings.xml b/briar-android/src/main/res/values-fr/strings.xml index 9b29a4b0e23fbb0e8210ab2a1d0ba104c96170f8..7682fd664909b5d9e0fe6269df145a5a54316117 100644 --- a/briar-android/src/main/res/values-fr/strings.xml +++ b/briar-android/src/main/res/values-fr/strings.xml @@ -10,7 +10,6 @@ <string name="password_too_weak">Le mot de passe est trop faible</string> <string name="passwords_do_not_match">Les mots de passes ne correspondent pas</string> <string name="create_account_button">Créer un compte</string> - <string name="progress_title_please_wait">Veuillez patienter ...</string> <!--Login--> <string name="enter_password">Tapez votre mot de passe :</string> <string name="try_again">Mot de passe incorrecte, essayer à nouveau</string> @@ -24,8 +23,6 @@ <string name="startup_failed_db_error">Pour une raison indéterminée, votre base de donnée Briar est corrompue et irrécupérable. Vos comptes, données et contacts sont perdus. Vous devez malheureusement réinstaller Briar et configurer un nouveau compte.</string> <string name="startup_failed_service_error">Briar n\'a pas pu démarrer un module nécessaire. Réinstaller Briar résout généralement ce problème. Veuillez noter que vous perdrez votre compte et toutes les données associées puisque Briar n\'utilise pas de serveurs centralisés pour enregistrer les données.</string> <string name="expiry_warning">Ce logiciel est arrivé à expiration.\n Veuillez installer une version plus récente.</string> - <string name="dialog_title_welcome">Bienvenue sur Briar</string> - <string name="dialog_welcome_message">Ajouter un contact pour communiquer de manière sécurisée ou toucher l\'icône en haut à gauche pour plus d\'options.</string> <!--Navigation Drawer--> <string name="nav_drawer_open_description">Ouvrir le panneau de navigation</string> <string name="nav_drawer_close_description">Fermer le panneau de navigation</string> @@ -95,7 +92,6 @@ <string name="searching_format">Recherche de contacts avec le code d\'invitation %06d\u2026</string> <string name="connection_failed">Échec de connexion</string> <string name="could_not_find_contact">Briar n\'a pas trouvé de contacts à proximité</string> - <string name="could_not_open_camera">Appareil photo inaccessible. Essayez à nouveau !</string> <string name="try_again_button">Essayer à nouveau</string> <string name="connected_to_contact">Connecté au contact</string> <string name="calculating_confirmation_code">Calcul du code de confirmation\u2026</string> @@ -125,7 +121,6 @@ <string name="introduction_sent">Votre admission a été envoyée.</string> <string name="introduction_error">Une erreur s\'est produite lors de l\'admission.</string> <string name="introduction_response_error">Erreur lors de la réponse à l\'admission</string> - <string name="dialog_button_introduce">Introduire</string> <string name="introduction_request_sent">Vous avez demandé à %2$s d\'admettre %1$s.</string> <string name="introduction_request_received">%1$s vous a demandé l\'admission de %2$s. Souhaitez-vous ajouter %2$s à votre liste de contacts ?</string> <string name="introduction_request_exists_received">%1$s vous a demandé l\'admission de %2$s mais %2$s est déjà dans votre liste de contacts. Puisque %1$s ne le sait pas, vous pouvez tout de même répondre : </string> @@ -150,7 +145,6 @@ <string name="groups_group_is_dissolved">Ce groupe a été supprimé</string> <string name="groups_remove">Supprimer</string> <string name="groups_create_group_title">Créer un groupe privé</string> - <string name="groups_no_messages">Ce groupe est vide. \n\nUtilisez l\'icône crayon, en haut, pour composer le premier message.</string> <string name="groups_create_group_button">Créer un groupe</string> <string name="groups_create_group_invitation_button">Envoyer invitation</string> <string name="groups_create_group_hint">Ajouter un nom au groupe privé</string> @@ -278,7 +272,6 @@ <string name="blogs_sharing_invitation_received">%1$s a partagé le blog personnel de %2$s avec vous.</string> <string name="blogs_sharing_invitation_sent">Vous avez partagé le blog personnel de %1$s avec %2$s.</string> <string name="blogs_sharing_invitations_title">Invitations au blog</string> - <string name="blogs_sharing_exists">Vous êtes déjà inscrit à ce blog. Accepter à nouveau peut conduire à une de post de blog.</string> <string name="blogs_sharing_joined_toast">Abonné au Blog</string> <string name="blogs_sharing_declined_toast">Invitation au blog refusée</string> <!--RSS Feeds--> diff --git a/briar-android/src/main/res/values-it/strings.xml b/briar-android/src/main/res/values-it/strings.xml index b06253170bd4d4dffd8d242a4aac691e835fadde..832c0f850c5590c9d3a4795bf8578b4834b08871 100644 --- a/briar-android/src/main/res/values-it/strings.xml +++ b/briar-android/src/main/res/values-it/strings.xml @@ -10,7 +10,6 @@ <string name="password_too_weak">La password è troppo debole</string> <string name="passwords_do_not_match">La password non corrisponde</string> <string name="create_account_button">Creare Account</string> - <string name="progress_title_please_wait">Attendi per favore...</string> <!--Login--> <string name="enter_password">Inserisci la tua password:</string> <string name="try_again">Password sbagliata, riprova</string> @@ -23,8 +22,6 @@ <string name="startup_failed_activity_title">Fallimento Avvio Briar</string> <string name="startup_failed_db_error">Per alcune reagioni, il tuo database Briar si è corrotto in modo irreparabile. Il tuo account, i tuoi dati e tutte le connessioni ai tuoi contatti sono andati persi. Sfortunatamente, devi reinstallare Briar per creare un nuovo account.</string> <string name="expiry_warning">Questo software è scaduto.\nSi prega di installare una nuova versione.</string> - <string name="dialog_title_welcome">Benvenuti su Briar</string> - <string name="dialog_welcome_message">Aggiungi un contatto per iniziare a comunicare in modo sicuro oppure premi l\'icona in alto a sinistra dello schermo per vedere le altre opzioni.</string> <!--Navigation Drawer--> <string name="contact_list_button">Contatti</string> <string name="groups_button">Gruppi privati</string> @@ -81,7 +78,6 @@ <string name="searching_format">Sto cercando i contatti con codice di invito %06d\u2026</string> <string name="connection_failed">Connessione fallita</string> <string name="could_not_find_contact">Briar non è stato in grado di trovare il vostro contatto vicino</string> - <string name="could_not_open_camera">Impossibile accedere alla tua fotocamera. Si prega di ritentare!</string> <string name="try_again_button">Riprova</string> <string name="connected_to_contact">Connesso al contatto</string> <string name="calculating_confirmation_code">Calcolazione codice di conferma\u2026</string> @@ -103,7 +99,6 @@ <string name="introduction_button">Crea l\'introduzione</string> <string name="introduction_sent">La tua introduzione è stata inviata.</string> <string name="introduction_error">C\'è stato un errore nella creazione dell\'introduzione</string> - <string name="dialog_button_introduce">Introduci</string> <string name="introduction_request_sent">Hai richiesto di introdurre %1$s a %2$s.</string> <string name="introduction_request_answered_received">%1$s ha richiesto di introdurti a %2$s.</string> <string name="introduction_response_accepted_sent">Hai accettato l\'introduzione a %1$s.</string> diff --git a/briar-android/src/main/res/values-pt-rBR/strings.xml b/briar-android/src/main/res/values-pt-rBR/strings.xml index 6c90202bf36db2ebd34f922c48a29c958cec1754..5971391bc12b8f1363449ebd15351863cd90892b 100644 --- a/briar-android/src/main/res/values-pt-rBR/strings.xml +++ b/briar-android/src/main/res/values-pt-rBR/strings.xml @@ -10,7 +10,6 @@ <string name="password_too_weak">A senha está muito fraca</string> <string name="passwords_do_not_match">As senhas não conferem</string> <string name="create_account_button">Criar conta</string> - <string name="progress_title_please_wait">Por favor, aguarde</string> <!--Login--> <string name="enter_password">Insira sua senha:</string> <string name="try_again">Senha Incorreta, tente novamente</string> @@ -24,8 +23,6 @@ <string name="startup_failed_db_error">Por alguma razão, seus dados do Briar estão corrompidos e não podem ser reparados. Sua conta, seus dados e todas suas conexões com contatos estão perdidas. Infelizmente você terá que resintalar o Briar e criar uma nova conta.</string> <string name="startup_failed_service_error">O Briar não pode iniciar devido a um plugin. Reinstalar o Briar geralmente resolve esse problema. Porém, note que ao fazer isso você perderá sua conta e todos os dados associados a ela, já que o Briar não usa um servidor central para armazenar seus dados.</string> <string name="expiry_warning">Esse programa expirou.\nPor favor instale uma versão mais recente.</string> - <string name="dialog_title_welcome">Bem-vindo ao Briar</string> - <string name="dialog_welcome_message">Adicione um contato para começar uma comunicação segura ou pressione o Ãcone na parte superior direita da tela para mais opções.</string> <!--Navigation Drawer--> <string name="nav_drawer_open_description">Abrir aba de navegação</string> <string name="nav_drawer_close_description">Fechar aba de navegação</string> @@ -95,7 +92,6 @@ <string name="searching_format">Procurando por contato com código de convite %06d\u2026</string> <string name="connection_failed">Conexão incompleta</string> <string name="could_not_find_contact">Briar não conseguiu achar nenhum contato por perto</string> - <string name="could_not_open_camera">Não foi possÃvel acessar sua câmera. Por favor tente novamente!</string> <string name="try_again_button">Tente novamente</string> <string name="connected_to_contact">Conectado ao contato</string> <string name="calculating_confirmation_code">Calculando código de confirmação\u2026</string> @@ -125,7 +121,6 @@ <string name="introduction_sent">Sua Introdução foi enviada.</string> <string name="introduction_error">Houve um erro ao fazer a apresentação</string> <string name="introduction_response_error">Erro ao responder à apresentação</string> - <string name="dialog_button_introduce">Apresentar</string> <string name="introduction_request_sent">Você recebeu um pedido para apresentar %1$s a %2$s.</string> <string name="introduction_request_received">%1$s pediu para apresentar você a %2$s. Você quer adicionar %2$s a sua lista de contatos?</string> <string name="introduction_request_exists_received">%1$s pediu para apresentar você a %2$s, mas %2$s já está na sua lista de contatos. Já que %1$s não sabe disso, você ainda pode responder:</string> @@ -150,7 +145,6 @@ <string name="groups_group_is_dissolved">Esse grupo foi dissolvido</string> <string name="groups_remove">Remover</string> <string name="groups_create_group_title">Criar Grupo Privado</string> - <string name="groups_no_messages">Esse grupo está vazio.\n\nVocê pode usar o Ãcone da caneta no topo para escrever a primeira mensagem.</string> <string name="groups_create_group_button">Criar Grupo</string> <string name="groups_create_group_invitation_button">Enviar Convite</string> <string name="groups_create_group_hint">Adicionar um nome para seu grupo privado</string> @@ -278,7 +272,6 @@ <string name="blogs_sharing_invitation_received">%1$s compartilhou o blog %2$s com você.</string> <string name="blogs_sharing_invitation_sent">Você compartilhou o blog de %1$s com %2$s.</string> <string name="blogs_sharing_invitations_title">Convites para Fóruns</string> - <string name="blogs_sharing_exists">Você já está inscrito neste blog. Aceitando novamente pode tornar mais rápida a entrega dos posts.</string> <string name="blogs_sharing_joined_toast">Inscrito neste Blog</string> <string name="blogs_sharing_declined_toast">Convite do Blog recusado</string> <!--RSS Feeds--> diff --git a/briar-android/src/main/res/values-sq/strings.xml b/briar-android/src/main/res/values-sq/strings.xml index 38c463fbbd7be1f398b09066a7f8d11ee0a1f321..60266f10d173ad21d5f17e6c7d3dbe125fed1591 100644 --- a/briar-android/src/main/res/values-sq/strings.xml +++ b/briar-android/src/main/res/values-sq/strings.xml @@ -10,7 +10,6 @@ <string name="password_too_weak">Fjalëkalimi është shumë i dobët</string> <string name="passwords_do_not_match">Fjalëkalimet nuk përputhen</string> <string name="create_account_button">Krijoje Llogarinë</string> - <string name="progress_title_please_wait">Ju lutemi, prisni…</string> <!--Login--> <string name="enter_password">Jepni fjalëkalimin tuaj:</string> <string name="try_again">Fjalëkalim i gabuar, riprovoni</string> @@ -24,8 +23,6 @@ <string name="startup_failed_db_error">Për ndonjë arsye, baza e të dhënave e Briar-it tuaj është aq e dëmtuar, sa s’mund të ndreqet. Llogaria juaj, të dhënat tuaja dhe krejt lidhjet tuaja me kontaktet kanë humbur. Mjerisht lypset të ri-instaloni Briar-in dhe të rregulloni një llogari të re.</string> <string name="startup_failed_service_error">Briar-i s’arriti të nisë një shtojcë të domosdoshme. Ri-instalimi i Briar-it zakonisht e zgjidh këtë problem. Por, ju lutemi, kini parasysh se me të do të humbni llogarinë tuaj dhe krejt të dhënat e lidhura me të, ngaqë Briar nuk përdor shërbyes qendrorë për të depozituar në ta të dhënat tuaja.</string> <string name="expiry_warning">Ky software ka skaduar.\nJu lutemi, instaloni një version më të ri.</string> - <string name="dialog_title_welcome">Mirë se vini në Briar</string> - <string name="dialog_welcome_message">Shtoni një kontakt që të filloni të komunikoni në mënyrë të sigurt, ose shtypni ikonën në cepin e sipërm majtas të ekranit për më tepër mundësi.</string> <!--Navigation Drawer--> <string name="nav_drawer_open_description">Hap sirtarin e lëvizjeve</string> <string name="nav_drawer_close_description">Mbylle sirtarin e lëvizjeve</string> @@ -95,7 +92,6 @@ <string name="searching_format">Po kërkohet për kontakt me kod ftese %06d\u2026</string> <string name="connection_failed">Lidhja dështoi</string> <string name="could_not_find_contact">Briar-i s’e gjeti dot kontaktin tuaj këtej pari</string> - <string name="could_not_open_camera">S’u hy dot te kamera juaj. Ju lutemi, riprovoni!</string> <string name="try_again_button">Riprovoni</string> <string name="connected_to_contact">U lidh me kontaktin</string> <string name="calculating_confirmation_code">Po përllogaritet kodi i ripohimit\u2026</string> @@ -125,7 +121,6 @@ <string name="introduction_sent">Prezantimi juaj u dërgua.</string> <string name="introduction_error">Pati një gabim me bërjen e prezantimit.</string> <string name="introduction_response_error">Gabim në përgjigjen ndaj prezantimit</string> - <string name="dialog_button_introduce">Prezantoje</string> <string name="introduction_request_sent">Keni kërkuar të prezantoni %1$s te %2$s.</string> <string name="introduction_request_received">%1$s ka kërkuar t’ju prezantojë te %2$s. Doni të shtohet %2$s te lista juaj e kontakteve?</string> <string name="introduction_request_exists_received">%1$s ka kërkuar t’ju prezantojë te %2$s, por %2$s gjendet tashmë te lista juaj e kontakteve. Meqë %1$s mund të mos ta dijë këtë gjë, mundeni prapëseprapë t’i përgjigjeni:</string> @@ -150,7 +145,6 @@ <string name="groups_group_is_dissolved">Ky grup është shkrirë</string> <string name="groups_remove">Hiqe</string> <string name="groups_create_group_title">Krijoni Grup Privat</string> - <string name="groups_no_messages">Ky grup është i zbrazët.\n\nMund të përdorni ikonën penë në krye që të hartoni mesazhin e parë.</string> <string name="groups_create_group_button">Krijoje Grupin</string> <string name="groups_create_group_invitation_button">Dërgoje Ftesën</string> <string name="groups_create_group_hint">Shtoni një emër për grupin tuaj privat</string> @@ -278,7 +272,6 @@ <string name="blogs_sharing_invitation_received">%1$s ka ndarë me ju blogun personal të %2$s.</string> <string name="blogs_sharing_invitation_sent">Keni ndarë me %2$s blogun personal të %1$s.</string> <string name="blogs_sharing_invitations_title">Ftesa Blogu</string> - <string name="blogs_sharing_exists">Jeni i pajtuar te ky blog një herë. Pranimi sërish mund të shpjerë te shpërndarje më e shpejtë postimesh blogu.</string> <string name="blogs_sharing_joined_toast">U pajtuat te Blogu</string> <string name="blogs_sharing_declined_toast">Ftesa e Blogut u Hodh Poshtë</string> <!--RSS Feeds--> diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index 4fde00b0fd09efc994ee121bba04085eff748dc9..f9fad4a278ff9781cd4b1398f6f299299a81f23f 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -12,7 +12,6 @@ <string name="password_too_weak">Password is too weak</string> <string name="passwords_do_not_match">Passwords do not match</string> <string name="create_account_button">Create Account</string> - <string name="progress_title_please_wait">Please wait..</string> <!-- Login --> <string name="enter_password">Enter your password:</string> @@ -27,8 +26,6 @@ <string name="startup_failed_db_error">For some reason, your Briar database is corrupted beyond repair. Your account, your data and all your contact connections are lost. Unfortunately, you need to reinstall Briar und set up a new account.</string> <string name="startup_failed_service_error">Briar was unable to start a required plugin. Reinstalling Briar usually solves this problem. However, please note that you will then lose your account and all data associated with it since Briar is not using central servers to store your data on.</string> <string name="expiry_warning">This software has expired.\nPlease install a newer version.</string> - <string name="dialog_title_welcome">Welcome to Briar</string> - <string name="dialog_welcome_message">Add a contact to start communicating securely or press the icon in the upper left corner of the screen for more options.</string> <!-- Navigation Drawer --> <string name="nav_drawer_open_description">Open the navigation drawer</string> @@ -105,7 +102,6 @@ <string name="searching_format">Searching for contact with invitation code %06d\u2026</string> <string name="connection_failed">Connection failed</string> <string name="could_not_find_contact">Briar could not find your contact nearby</string> - <string name="could_not_open_camera">Could not access your camera. Please try again!</string> <string name="try_again_button">Try Again</string> <string name="connected_to_contact">Connected to contact</string> <string name="calculating_confirmation_code">Calculating confirmation code\u2026</string> @@ -136,7 +132,6 @@ <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="dialog_button_introduce">Introduce</string> <string name="introduction_request_sent">You have asked to introduce %1$s to %2$s.</string> <string name="introduction_request_received">%1$s has asked to introduce you to %2$s. Do you want to add %2$s to your contact list?</string> <string name="introduction_request_exists_received">%1$s has asked to introduce you to %2$s, but %2$s is already in your contact list. Since %1$s might not know that, you can still respond:</string> @@ -162,7 +157,6 @@ <string name="groups_group_is_dissolved">This group has been dissolved</string> <string name="groups_remove">Remove</string> <string name="groups_create_group_title">Create Private Group</string> - <string name="groups_no_messages">This group is empty.\n\nYou can use the pen icon at the top to compose the first message.</string> <string name="groups_create_group_button">Create Group</string> <string name="groups_create_group_invitation_button">Send Invitation</string> <string name="groups_create_group_hint">Add a name for your private group</string> @@ -296,7 +290,6 @@ <string name="blogs_sharing_invitation_received">%1$s has shared the personal blog of %2$s with you.</string> <string name="blogs_sharing_invitation_sent">You have shared the personal blog of %1$s with %2$s.</string> <string name="blogs_sharing_invitations_title">Blog Invitations</string> - <string name="blogs_sharing_exists">You are subscribed to this blog already. Accepting again can lead to faster blog post delivery.</string> <string name="blogs_sharing_joined_toast">Subscribed to Blog</string> <string name="blogs_sharing_declined_toast">Blog Invitation Declined</string> diff --git a/briar-android/src/main/res/values/themes.xml b/briar-android/src/main/res/values/themes.xml index 71bd3c9d5ecaf84844a3bca0f30209414085474b..6f6c98aa8b3ea27aaba3d1d8e76dc8613b359667 100644 --- a/briar-android/src/main/res/values/themes.xml +++ b/briar-android/src/main/res/values/themes.xml @@ -13,6 +13,7 @@ <item name="android:textColorTertiary">@color/briar_text_tertiary</item> <item name="android:textColorTertiaryInverse">@color/briar_text_tertiary_inverse</item> <item name="android:textColorLink">@color/briar_text_link</item> + <item name="android:windowAnimationStyle">@style/ActivityAnimation</item> </style> <style name="BriarThemeNoActionBar" parent="Theme.AppCompat.Light.NoActionBar"> @@ -28,6 +29,14 @@ <item name="android:textColorTertiary">@color/briar_text_tertiary</item> <item name="android:textColorTertiaryInverse">@color/briar_text_tertiary_inverse</item> <item name="android:textColorLink">@color/briar_text_link</item> + <item name="android:windowAnimationStyle">@style/ActivityAnimation</item> + </style> + + <style name="ActivityAnimation" parent="@android:style/Animation.Activity"> + <item name="android:activityOpenEnterAnimation">@anim/screen_new_in</item> + <item name="android:activityOpenExitAnimation">@anim/screen_old_out</item> + <item name="android:activityCloseEnterAnimation">@anim/screen_old_in</item> + <item name="android:activityCloseExitAnimation">@anim/screen_new_out</item> </style> <style name="BriarThemeNoActionBar.Default"/> @@ -54,8 +63,8 @@ </style> <style name="DialogAnimation" parent="@android:style/Animation.Dialog"> - <item name="android:windowEnterAnimation">@android:anim/fade_in</item> - <item name="android:windowExitAnimation">@android:anim/fade_out</item> + <item name="android:windowEnterAnimation">@anim/dialog_in</item> + <item name="android:windowExitAnimation">@anim/dialog_out</item> </style> <style name="OnboardingDialogTheme" parent="BriarDialogTheme">