Make animations more consistent

This commit is contained in:
Torsten Grote
2016-11-30 17:02:48 -02:00
parent d5c6fcc85b
commit 68b216d580
67 changed files with 383 additions and 618 deletions

View File

@@ -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();
}
});
}

View File

@@ -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());
}

View File

@@ -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

View File

@@ -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();

View File

@@ -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);

View File

@@ -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

View File

@@ -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);
}
}

View File

@@ -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);

View File

@@ -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);
}
}
};

View File

@@ -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();
}
});
}

View File

@@ -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));

View File

@@ -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);

View File

@@ -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();
}
});
}

View File

@@ -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();

View File

@@ -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);
}
}

View File

@@ -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
}
}

View File

@@ -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);
}
}

View File

@@ -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();
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -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();
}
});
}

View File

@@ -139,7 +139,7 @@ public class ChangePasswordActivity extends BaseActivity
R.string.password_changed,
Toast.LENGTH_LONG).show();
setResult(RESULT_OK);
finish();
supportFinishAfterTransition();
} else {
tryAgain();
}

View File

@@ -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();
}

View File

@@ -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);
}
}

View File

@@ -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);

View File

@@ -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;
}
});

View File

@@ -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();

View File

@@ -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

View File

@@ -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();
}

View File

@@ -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));
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}
});
}

View File

@@ -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));
}
}

View File

@@ -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();

View File

@@ -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));
}
}

View File

@@ -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));
}
}

View File

@@ -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);
}

View File

@@ -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();
}
}

View File

@@ -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);