diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java index 8a5c6a695..7fc324989 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java @@ -31,7 +31,6 @@ import org.briarproject.briar.android.introduction.IntroductionActivity; import org.briarproject.briar.android.introduction.IntroductionMessageFragment; import org.briarproject.briar.android.keyagreement.ContactExchangeActivity; import org.briarproject.briar.android.keyagreement.ContactExchangeErrorFragment; -import org.briarproject.briar.android.keyagreement.IntroFragment; import org.briarproject.briar.android.keyagreement.KeyAgreementActivity; import org.briarproject.briar.android.keyagreement.KeyAgreementFragment; import org.briarproject.briar.android.login.AuthorNameFragment; @@ -49,7 +48,6 @@ import org.briarproject.briar.android.privategroup.conversation.GroupActivity; import org.briarproject.briar.android.privategroup.conversation.GroupConversationModule; import org.briarproject.briar.android.privategroup.creation.CreateGroupActivity; import org.briarproject.briar.android.privategroup.creation.CreateGroupFragment; -import org.briarproject.briar.android.privategroup.creation.CreateGroupMessageFragment; import org.briarproject.briar.android.privategroup.creation.CreateGroupModule; import org.briarproject.briar.android.privategroup.creation.GroupInviteActivity; import org.briarproject.briar.android.privategroup.creation.GroupInviteFragment; @@ -70,10 +68,8 @@ import org.briarproject.briar.android.sharing.ForumInvitationActivity; import org.briarproject.briar.android.sharing.ForumSharingStatusActivity; import org.briarproject.briar.android.sharing.ShareBlogActivity; import org.briarproject.briar.android.sharing.ShareBlogFragment; -import org.briarproject.briar.android.sharing.ShareBlogMessageFragment; import org.briarproject.briar.android.sharing.ShareForumActivity; import org.briarproject.briar.android.sharing.ShareForumFragment; -import org.briarproject.briar.android.sharing.ShareForumMessageFragment; import org.briarproject.briar.android.sharing.SharingModule; import org.briarproject.briar.android.splash.SplashScreenActivity; import org.briarproject.briar.android.test.TestDataActivity; @@ -183,8 +179,6 @@ public interface ActivityComponent { void inject(CreateGroupFragment fragment); - void inject(CreateGroupMessageFragment fragment); - void inject(GroupListFragment fragment); void inject(GroupInviteFragment fragment); @@ -195,20 +189,14 @@ public interface ActivityComponent { void inject(FeedFragment fragment); - void inject(IntroFragment fragment); - void inject(KeyAgreementFragment fragment); void inject(ContactChooserFragment fragment); void inject(ShareForumFragment fragment); - void inject(ShareForumMessageFragment fragment); - void inject(ShareBlogFragment fragment); - void inject(ShareBlogMessageFragment fragment); - void inject(IntroductionMessageFragment fragment); void inject(SettingsFragment fragment); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java index 111730a90..290c44a42 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java @@ -77,6 +77,17 @@ public abstract class BaseActivity extends AppCompatActivity @Override public void onCreate(@Nullable Bundle state) { + // create the ActivityComponent *before* calling super.onCreate() + // because it already attaches fragments which need access + // to the component for their own injection + AndroidComponent applicationComponent = + ((BriarApplication) getApplication()).getApplicationComponent(); + activityComponent = DaggerActivityComponent.builder() + .androidComponent(applicationComponent) + .activityModule(getActivityModule()) + .forumModule(getForumModule()) + .build(); + injectActivity(activityComponent); super.onCreate(state); // WARNING: When removing this or making it possible to turn it off, @@ -86,17 +97,6 @@ public abstract class BaseActivity extends AppCompatActivity // unlock screen is shown. if (PREVENT_SCREENSHOTS) getWindow().addFlags(FLAG_SECURE); - AndroidComponent applicationComponent = - ((BriarApplication) getApplication()).getApplicationComponent(); - - activityComponent = DaggerActivityComponent.builder() - .androidComponent(applicationComponent) - .activityModule(getActivityModule()) - .forumModule(getForumModule()) - .build(); - - injectActivity(activityComponent); - for (ActivityLifecycleController alc : lifecycleControllers) { alc.onActivityCreate(this); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BasePostFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BasePostFragment.java index fedded3e9..dcfc63334 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BasePostFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BasePostFragment.java @@ -24,6 +24,8 @@ import javax.annotation.Nullable; import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; import static android.view.View.INVISIBLE; import static android.view.View.VISIBLE; +import static java.util.Objects.requireNonNull; +import static java.util.logging.Logger.getLogger; import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID; import static org.briarproject.briar.android.util.UiUtils.MIN_DATE_RESOLUTION; @@ -35,7 +37,7 @@ abstract class BasePostFragment extends BaseFragment { static final String POST_ID = "briar.POST_ID"; private static final Logger LOG = - Logger.getLogger(BasePostFragment.class.getName()); + getLogger(BasePostFragment.class.getName()); private final Handler handler = new Handler(Looper.getMainLooper()); @@ -52,7 +54,7 @@ abstract class BasePostFragment extends BaseFragment { @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { // retrieve MessageId of blog post from arguments - byte[] p = getArguments().getByteArray(POST_ID); + byte[] p = requireNonNull(getArguments()).getByteArray(POST_ID); if (p == null) throw new IllegalStateException("No post ID in args"); postId = new MessageId(p); @@ -68,6 +70,7 @@ abstract class BasePostFragment extends BaseFragment { @Override public void onAuthorClick(BlogPostItem post) { + if (getContext() == null) return; Intent i = new Intent(getContext(), BlogActivity.class); i.putExtra(GROUP_ID, post.getGroupId().getBytes()); i.setFlags(FLAG_ACTIVITY_CLEAR_TOP); 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 265df1108..be9924584 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 @@ -43,6 +43,7 @@ import javax.inject.Inject; import static android.app.Activity.RESULT_OK; import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; import static android.widget.Toast.LENGTH_SHORT; +import static java.util.Objects.requireNonNull; import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID; import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_SHARE_BLOG; import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_WRITE_BLOG_POST; @@ -69,7 +70,6 @@ public class BlogFragment extends BaseFragment private boolean isMyBlog = false, canDeleteBlog = false; static BlogFragment newInstance(GroupId groupId) { - BlogFragment f = new BlogFragment(); Bundle bundle = new Bundle(); @@ -79,20 +79,27 @@ public class BlogFragment extends BaseFragment return f; } + @Override + public void injectFragment(ActivityComponent component) { + component.inject(this); + blogController.setBlogSharingListener(this); + sharingController.setSharingListener(this); + } + @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - Bundle args = getArguments(); + Bundle args = requireNonNull(getArguments()); byte[] b = args.getByteArray(GROUP_ID); if (b == null) throw new IllegalStateException("No group ID in args"); groupId = new GroupId(b); View v = inflater.inflate(R.layout.fragment_blog, container, false); - adapter = - new BlogPostAdapter(getActivity(), this, getFragmentManager()); + adapter = new BlogPostAdapter(requireNonNull(getActivity()), this, + getFragmentManager()); list = v.findViewById(R.id.postList); list.setLayoutManager(new LinearLayoutManager(getActivity())); list.setAdapter(adapter); @@ -102,13 +109,6 @@ public class BlogFragment extends BaseFragment return v; } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - blogController.setBlogSharingListener(this); - sharingController.setSharingListener(this); - } - @Override public void onStart() { super.onStart(); @@ -218,7 +218,10 @@ public class BlogFragment extends BaseFragment @Override public void onAuthorClick(BlogPostItem post) { - if (post.getGroupId().equals(groupId)) return; // We're already there + if (post.getGroupId().equals(groupId) || getContext() == null) { + // We're already there + return; + } Intent i = new Intent(getContext(), BlogActivity.class); i.putExtra(GROUP_ID, post.getGroupId().getBytes()); i.setFlags(FLAG_ACTIVITY_CLEAR_TOP); 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 6c44abbc4..8d2adca73 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 @@ -35,6 +35,7 @@ import javax.inject.Inject; import static android.app.Activity.RESULT_OK; import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; import static android.support.design.widget.Snackbar.LENGTH_LONG; +import static java.util.Objects.requireNonNull; import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID; import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_WRITE_BLOG_POST; @@ -64,13 +65,18 @@ public class FeedFragment extends BaseFragment implements return f; } + @Override + public void injectFragment(ActivityComponent component) { + component.inject(this); + feedController.setFeedListener(this); + } + @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - - getActivity().setTitle(R.string.blogs_button); + requireNonNull(getActivity()).setTitle(R.string.blogs_button); View v = inflater.inflate(R.layout.fragment_blog, container, false); @@ -88,12 +94,6 @@ public class FeedFragment extends BaseFragment implements return v; } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - feedController.setFeedListener(this); - } - @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedPostFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedPostFragment.java index 54d4c5221..ca7ae3fe0 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedPostFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedPostFragment.java @@ -17,6 +17,7 @@ import org.briarproject.briar.android.controller.handler.UiResultExceptionHandle import javax.annotation.Nullable; import javax.inject.Inject; +import static java.util.Objects.requireNonNull; import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID; @UiThread @@ -42,13 +43,17 @@ public class FeedPostFragment extends BasePostFragment { return f; } + @Override + public void injectFragment(ActivityComponent component) { + component.inject(this); + } + @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - - Bundle args = getArguments(); + Bundle args = requireNonNull(getArguments()); byte[] b = args.getByteArray(GROUP_ID); if (b == null) throw new IllegalStateException("No group ID in args"); blogId = new GroupId(b); @@ -61,11 +66,6 @@ public class FeedPostFragment extends BasePostFragment { return TAG; } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } - @Override public void onStart() { super.onStart(); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/ReblogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/ReblogFragment.java index b4ebb3b85..685b41877 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/ReblogFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/ReblogFragment.java @@ -31,6 +31,7 @@ import static android.view.View.FOCUS_DOWN; import static android.view.View.GONE; import static android.view.View.INVISIBLE; import static android.view.View.VISIBLE; +import static java.util.Objects.requireNonNull; import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID; import static org.briarproject.briar.android.blog.BasePostFragment.POST_ID; import static org.briarproject.briar.api.blog.BlogConstants.MAX_BLOG_POST_TEXT_LENGTH; @@ -42,8 +43,6 @@ public class ReblogFragment extends BaseFragment implements SendListener { public static final String TAG = ReblogFragment.class.getName(); private ViewHolder ui; - private GroupId blogId; - private MessageId postId; private BlogPostItem item; @Inject @@ -75,9 +74,11 @@ public class ReblogFragment extends BaseFragment implements SendListener { @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - Bundle args = getArguments(); - blogId = new GroupId(args.getByteArray(GROUP_ID)); - postId = new MessageId(args.getByteArray(POST_ID)); + Bundle args = requireNonNull(getArguments()); + GroupId blogId = + new GroupId(requireNonNull(args.getByteArray(GROUP_ID))); + MessageId postId = + new MessageId(requireNonNull(args.getByteArray(POST_ID))); View v = inflater.inflate(R.layout.fragment_reblog, container, false); ui = new ViewHolder(v); @@ -89,14 +90,6 @@ public class ReblogFragment extends BaseFragment implements SendListener { ui.input.setMaxTextLength(MAX_BLOG_POST_TEXT_LENGTH); showProgressBar(); - return v; - } - - @Override - public void onStart() { - super.onStart(); - - // TODO: Load blog post when fragment is created. #631 feedController.loadBlogPost(blogId, postId, new UiResultExceptionHandler( this) { @@ -111,6 +104,8 @@ public class ReblogFragment extends BaseFragment implements SendListener { handleDbException(exception); } }); + + return v; } private void bindViewHolder() { 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 bbf1a3fd2..507f18f64 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 @@ -51,6 +51,7 @@ import javax.inject.Inject; import static android.os.Build.VERSION.SDK_INT; import static android.support.v4.app.ActivityOptionsCompat.makeSceneTransitionAnimation; import static android.support.v4.view.ViewCompat.getTransitionName; +import static java.util.Objects.requireNonNull; import static java.util.logging.Level.WARNING; import static org.briarproject.bramble.util.LogUtils.logDuration; import static org.briarproject.bramble.util.LogUtils.logException; @@ -102,8 +103,7 @@ public class ContactListFragment extends BaseFragment implements EventListener { public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - - getActivity().setTitle(R.string.contact_list_button); + requireNonNull(getActivity()).setTitle(R.string.contact_list_button); View contentView = inflater.inflate(R.layout.list, container, false); 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 2aaf1cecc..00a96fec4 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 @@ -25,6 +25,7 @@ import java.util.Collection; import javax.annotation.Nullable; +import static java.util.Objects.requireNonNull; import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID; import static org.briarproject.briar.android.contactselection.ContactSelectorActivity.CONTACTS; import static org.briarproject.briar.android.contactselection.ContactSelectorActivity.getContactsFromIds; @@ -50,10 +51,10 @@ public abstract class BaseContactSelectorFragment { + viewModel.setContactAlias(aliasEditText.getText().toString()); + getDialog().dismiss(); + }); Button cancelButton = v.findViewById(R.id.cancelButton); cancelButton.setOnClickListener(v1 -> getDialog().cancel()); @@ -56,24 +69,4 @@ public class AliasDialogFragment extends AppCompatDialogFragment { return v; } - @Override - public void onActivityCreated(@Nullable Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - BriarActivity a = (BriarActivity) requireNonNull(getActivity()); - a.getActivityComponent().inject(this); - - viewModel = ViewModelProviders.of(getActivity(), viewModelFactory) - .get(ConversationViewModel.class); - - Contact contact = requireNonNull(viewModel.getContact().getValue()); - String alias = contact.getAlias(); - aliasEditText.setText(alias); - if (alias != null) aliasEditText.setSelection(alias.length()); - - setButton.setOnClickListener(v1 -> { - viewModel.setContactAlias(aliasEditText.getText().toString()); - getDialog().dismiss(); - }); - } - } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumListFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumListFragment.java index 8e6b1fa2a..389c50a11 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumListFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumListFragment.java @@ -44,6 +44,7 @@ import javax.annotation.Nullable; import javax.inject.Inject; import static android.support.design.widget.Snackbar.LENGTH_INDEFINITE; +import static java.util.Objects.requireNonNull; import static java.util.logging.Level.WARNING; import static org.briarproject.bramble.util.LogUtils.logDuration; import static org.briarproject.bramble.util.LogUtils.logException; @@ -80,13 +81,18 @@ public class ForumListFragment extends BaseEventFragment implements return fragment; } + @Override + public void injectFragment(ActivityComponent component) { + component.inject(this); + } + @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - getActivity().setTitle(R.string.forums_button); + requireNonNull(getActivity()).setTitle(R.string.forums_button); View contentView = inflater.inflate(R.layout.fragment_forum_list, container, @@ -102,7 +108,7 @@ public class ForumListFragment extends BaseEventFragment implements snackbar.getView().setBackgroundResource(R.color.briar_primary); snackbar.setAction(R.string.show, this); snackbar.setActionTextColor(ContextCompat - .getColor(getContext(), R.color.briar_button_text_positive)); + .getColor(getActivity(), R.color.briar_button_text_positive)); return contentView; } @@ -112,11 +118,6 @@ public class ForumListFragment extends BaseEventFragment implements return TAG; } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } - @Override public void onStart() { super.onStart(); 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 e52d5b6b9..5ddf206f3 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 @@ -10,11 +10,15 @@ import android.support.v4.app.FragmentActivity; import android.view.MenuItem; 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.android.DestroyableContext; import org.briarproject.briar.android.activity.ActivityComponent; import javax.annotation.Nullable; +@MethodsNotNullByDefault +@ParametersNotNullByDefault public abstract class BaseFragment extends Fragment implements DestroyableContext { @@ -22,12 +26,15 @@ public abstract class BaseFragment extends Fragment public abstract String getUniqueTag(); - public abstract void injectFragment(ActivityComponent component); - @Override public void onAttach(Context context) { super.onAttach(context); listener = (BaseFragmentListener) context; + injectFragment(listener.getActivityComponent()); + } + + public void injectFragment(ActivityComponent component) { + // fragments that need to inject, can override this method } @Override @@ -38,12 +45,6 @@ public abstract class BaseFragment extends Fragment setHasOptionsMenu(true); } - @Override - public void onActivityCreated(@Nullable Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - injectFragment(listener.getActivityComponent()); - } - @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/fragment/ErrorFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/fragment/ErrorFragment.java index 18faf950a..6506fcc71 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/fragment/ErrorFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/fragment/ErrorFragment.java @@ -10,7 +10,6 @@ import android.widget.TextView; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; -import org.briarproject.briar.android.activity.ActivityComponent; @MethodsNotNullByDefault @@ -57,9 +56,4 @@ public class ErrorFragment extends BaseFragment { return v; } - @Override - public void injectFragment(ActivityComponent component) { - // not necessary - } - } 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 a438daf3e..72cd85de3 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,7 +1,8 @@ package org.briarproject.briar.android.introduction; -import android.content.Context; import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.annotation.UiThread; import android.support.v7.widget.LinearLayoutManager; import android.view.LayoutInflater; import android.view.View; @@ -11,6 +12,8 @@ import org.briarproject.bramble.api.contact.Contact; import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.bramble.api.contact.ContactManager; import org.briarproject.bramble.api.db.DbException; +import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; +import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.bramble.api.plugin.ConnectionRegistry; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; @@ -28,10 +31,14 @@ import java.util.logging.Logger; import javax.inject.Inject; +import static java.util.Objects.requireNonNull; import static java.util.logging.Level.WARNING; import static org.briarproject.bramble.util.LogUtils.logException; import static org.briarproject.briar.android.conversation.ConversationActivity.CONTACT_ID; +@UiThread +@MethodsNotNullByDefault +@ParametersNotNullByDefault public class ContactChooserFragment extends BaseFragment { public static final String TAG = ContactChooserFragment.class.getName(); @@ -51,7 +58,6 @@ public class ContactChooserFragment extends BaseFragment { volatile ConnectionRegistry connectionRegistry; public static ContactChooserFragment newInstance(ContactId id) { - Bundle args = new Bundle(); ContactChooserFragment fragment = new ContactChooserFragment(); @@ -61,13 +67,13 @@ public class ContactChooserFragment extends BaseFragment { } @Override - public void onAttach(Context context) { - super.onAttach(context); + public void injectFragment(ActivityComponent component) { + component.inject(this); } @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { View contentView = inflater.inflate(R.layout.list, container, false); @@ -77,14 +83,16 @@ public class ContactChooserFragment extends BaseFragment { Contact c2 = item.getContact(); showMessageScreen(c1, c2); }; - adapter = new ContactListAdapter(getActivity(), onContactClickListener); + adapter = new ContactListAdapter(requireNonNull(getActivity()), + onContactClickListener); list = contentView.findViewById(R.id.list); list.setLayoutManager(new LinearLayoutManager(getActivity())); list.setAdapter(adapter); list.setEmptyText(R.string.no_contacts); - contactId = new ContactId(getArguments().getInt(CONTACT_ID)); + contactId = new ContactId( + requireNonNull(getArguments()).getInt(CONTACT_ID)); return contentView; } @@ -107,11 +115,6 @@ public class ContactChooserFragment extends BaseFragment { return TAG; } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } - private void loadContacts() { listener.runOnDbThread(() -> { try { 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 a1e6d2a6e..6312a9ef1 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 @@ -39,6 +39,7 @@ import static android.app.Activity.RESULT_OK; import static android.view.View.GONE; import static android.view.View.VISIBLE; import static android.widget.Toast.LENGTH_SHORT; +import static java.util.Objects.requireNonNull; import static java.util.logging.Level.WARNING; import static org.briarproject.bramble.util.LogUtils.logException; import static org.briarproject.briar.android.util.UiUtils.getContactDisplayName; @@ -77,17 +78,17 @@ public class IntroductionMessageFragment extends BaseFragment return fragment; } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } - @Override public void onAttach(Context context) { super.onAttach(context); introductionActivity = (IntroductionActivity) context; } + @Override + public void injectFragment(ActivityComponent component) { + component.inject(this); + } + @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @@ -99,6 +100,14 @@ public class IntroductionMessageFragment extends BaseFragment actionBar.setTitle(R.string.introduction_message_title); } + // get contact IDs from fragment arguments + Bundle args = requireNonNull(getArguments()); + int contactId1 = args.getInt(CONTACT_ID_1, -1); + int contactId2 = args.getInt(CONTACT_ID_2, -1); + if (contactId1 == -1 || contactId2 == -1) { + throw new AssertionError("Use newInstance() to instantiate"); + } + // inflate view View v = inflater.inflate(R.layout.introduction_message, container, false); @@ -109,22 +118,15 @@ public class IntroductionMessageFragment extends BaseFragment ui.message.setMaxTextLength(MAX_INTRODUCTION_TEXT_LENGTH); ui.message.setEnabled(false); + // get contacts and then show view + prepareToSetUpViews(contactId1, contactId2); + return v; } @Override public void onStart() { super.onStart(); - - // get contact IDs from fragment arguments - int contactId1 = getArguments().getInt(CONTACT_ID_1, -1); - int contactId2 = getArguments().getInt(CONTACT_ID_2, -1); - if (contactId1 == -1 || contactId2 == -1) { - throw new java.lang.InstantiationError( - "You need to use newInstance() to instantiate"); - } - // get contacts and then show view - prepareToSetUpViews(contactId1, contactId2); } @Override diff --git a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeErrorFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeErrorFragment.java index 447ec63a3..0cdf84d31 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeErrorFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/ContactExchangeErrorFragment.java @@ -44,6 +44,11 @@ public class ContactExchangeErrorFragment extends BaseFragment { return TAG; } + @Override + public void injectFragment(ActivityComponent component) { + component.inject(this); + } + @Nullable @Override public View onCreateView(LayoutInflater inflater, @@ -74,11 +79,6 @@ public class ContactExchangeErrorFragment extends BaseFragment { return v; } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } - private void triggerFeedback() { finish(); UiUtils.triggerFeedback(androidExecutor); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/IntroFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/IntroFragment.java index 4a94db190..6ee1f45c2 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/IntroFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/IntroFragment.java @@ -10,7 +10,6 @@ import android.widget.ScrollView; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; -import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.fragment.BaseFragment; import javax.annotation.Nullable; @@ -39,11 +38,6 @@ public class IntroFragment extends BaseFragment { return fragment; } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } - @Override public void onAttach(Context context) { super.onAttach(context); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementFragment.java index 19dcd203a..7a1f69519 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/keyagreement/KeyAgreementFragment.java @@ -53,6 +53,7 @@ import static android.view.View.VISIBLE; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static android.widget.LinearLayout.HORIZONTAL; import static android.widget.Toast.LENGTH_LONG; +import static java.util.Objects.requireNonNull; import static java.util.logging.Level.INFO; import static java.util.logging.Level.WARNING; import static org.briarproject.bramble.util.LogUtils.logException; @@ -136,7 +137,8 @@ public class KeyAgreementFragment extends BaseEventFragment @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - getActivity().setRequestedOrientation(SCREEN_ORIENTATION_NOSENSOR); + requireNonNull(getActivity()) + .setRequestedOrientation(SCREEN_ORIENTATION_NOSENSOR); cameraView.setPreviewConsumer(new QrCodeDecoder(this)); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/AuthorNameFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/login/AuthorNameFragment.java index 6e4c35d86..109a9e153 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/AuthorNameFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/AuthorNameFragment.java @@ -18,6 +18,7 @@ import javax.annotation.Nullable; import static android.view.inputmethod.EditorInfo.IME_ACTION_NEXT; import static android.view.inputmethod.EditorInfo.IME_ACTION_NONE; +import static java.util.Objects.requireNonNull; import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_AUTHOR_NAME_LENGTH; import static org.briarproject.briar.android.util.UiUtils.setError; @@ -35,11 +36,16 @@ public class AuthorNameFragment extends SetupFragment { return new AuthorNameFragment(); } + @Override + public void injectFragment(ActivityComponent component) { + component.inject(this); + } + @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - getActivity().setTitle(getString(R.string.setup_title)); + requireNonNull(getActivity()).setTitle(getString(R.string.setup_title)); View v = inflater.inflate(R.layout.fragment_setup_author_name, container, false); authorNameWrapper = v.findViewById(R.id.nickname_entry_wrapper); @@ -57,11 +63,6 @@ public class AuthorNameFragment extends SetupFragment { return TAG; } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } - @Override protected String getHelpText() { return getString(R.string.setup_name_explanation); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/DozeFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/login/DozeFragment.java index 624437c6d..2a180b3dc 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/DozeFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/DozeFragment.java @@ -19,6 +19,7 @@ import org.briarproject.briar.android.util.UiUtils; import static android.view.View.INVISIBLE; import static android.view.View.VISIBLE; +import static java.util.Objects.requireNonNull; import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_DOZE_WHITELISTING; import static org.briarproject.briar.android.util.UiUtils.showOnboardingDialog; @@ -39,11 +40,16 @@ public class DozeFragment extends SetupFragment return new DozeFragment(); } + @Override + public void injectFragment(ActivityComponent component) { + component.inject(this); + } + @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - getActivity().setTitle(getString(R.string.setup_doze_title)); + requireNonNull(getActivity()).setTitle(getString(R.string.setup_doze_title)); setHasOptionsMenu(false); View v = inflater.inflate(R.layout.fragment_setup_doze, container, false); @@ -65,11 +71,6 @@ public class DozeFragment extends SetupFragment return TAG; } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } - @Override protected String getHelpText() { return getString(R.string.setup_doze_explanation); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordFragment.java index 72f3d6fae..29950050f 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordFragment.java @@ -23,6 +23,7 @@ import static android.content.Context.INPUT_METHOD_SERVICE; import static android.view.View.INVISIBLE; import static android.view.View.VISIBLE; import static android.view.inputmethod.EditorInfo.IME_ACTION_DONE; +import static java.util.Objects.requireNonNull; import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.QUITE_WEAK; @MethodsNotNullByDefault @@ -43,11 +44,16 @@ public class PasswordFragment extends SetupFragment { return new PasswordFragment(); } + @Override + public void injectFragment(ActivityComponent component) { + component.inject(this); + } + @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - getActivity().setTitle(getString(R.string.setup_password_intro)); + requireNonNull(getActivity()).setTitle(getString(R.string.setup_password_intro)); View v = inflater.inflate(R.layout.fragment_setup_password, container, false); @@ -64,6 +70,11 @@ public class PasswordFragment extends SetupFragment { passwordConfirmation.addTextChangedListener(this); nextButton.setOnClickListener(this); + if (!setupController.needToShowDozeFragment()) { + nextButton.setText(R.string.create_account_button); + passwordConfirmation.setImeOptions(IME_ACTION_DONE); + } + return v; } @@ -72,17 +83,6 @@ public class PasswordFragment extends SetupFragment { return TAG; } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - - // the controller is not yet available in onCreateView() - if (!setupController.needToShowDozeFragment()) { - nextButton.setText(R.string.create_account_button); - passwordConfirmation.setImeOptions(IME_ACTION_DONE); - } - } - @Override protected String getHelpText() { return getString(R.string.setup_password_explanation); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/SetupFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/login/SetupFragment.java index 5524edd8c..ba5da40de 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/SetupFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/SetupFragment.java @@ -11,7 +11,8 @@ import android.view.View.OnClickListener; import android.widget.TextView; import android.widget.TextView.OnEditorActionListener; -import org.briarproject.bramble.api.nullsafety.NotNullByDefault; +import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; +import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; import org.briarproject.briar.android.fragment.BaseFragment; @@ -22,7 +23,8 @@ import static android.view.inputmethod.EditorInfo.IME_ACTION_NEXT; import static org.briarproject.briar.android.util.UiUtils.enterPressed; import static org.briarproject.briar.android.util.UiUtils.showOnboardingDialog; -@NotNullByDefault +@MethodsNotNullByDefault +@ParametersNotNullByDefault abstract class SetupFragment extends BaseFragment implements TextWatcher, OnEditorActionListener, OnClickListener { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/logout/SignOutFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/logout/SignOutFragment.java index a0bc31684..5a56ff198 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/logout/SignOutFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/logout/SignOutFragment.java @@ -5,19 +5,21 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; +import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; -import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.fragment.BaseFragment; -import javax.annotation.Nonnull; import javax.annotation.Nullable; +@MethodsNotNullByDefault +@ParametersNotNullByDefault public class SignOutFragment extends BaseFragment { public static final String TAG = SignOutFragment.class.getName(); @Override - public View onCreateView(@Nonnull LayoutInflater inflater, + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_sign_out, container, false); @@ -27,9 +29,4 @@ public class SignOutFragment extends BaseFragment { 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/privategroup/creation/CreateGroupFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupFragment.java index 29e7b0ad9..f36c749ef 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupFragment.java @@ -2,6 +2,7 @@ package org.briarproject.briar.android.privategroup.creation; import android.content.Context; import android.os.Bundle; +import android.support.annotation.Nullable; import android.support.design.widget.TextInputLayout; import android.text.Editable; import android.text.TextWatcher; @@ -12,6 +13,8 @@ import android.widget.Button; import android.widget.EditText; import android.widget.ProgressBar; +import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; +import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.bramble.util.StringUtils; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; @@ -23,6 +26,8 @@ import static android.view.inputmethod.EditorInfo.IME_ACTION_DONE; import static org.briarproject.briar.android.util.UiUtils.enterPressed; import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_NAME_LENGTH; +@MethodsNotNullByDefault +@ParametersNotNullByDefault public class CreateGroupFragment extends BaseFragment { public final static String TAG = CreateGroupFragment.class.getName(); @@ -40,8 +45,13 @@ public class CreateGroupFragment extends BaseFragment { } @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { + public void injectFragment(ActivityComponent component) { + component.inject(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_create_group, container, false); @@ -87,11 +97,6 @@ public class CreateGroupFragment extends BaseFragment { listener.showSoftKeyboard(nameEntry); } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } - @Override public String getUniqueTag() { return TAG; diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupMessageFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupMessageFragment.java index b4c3fc670..dec906b6f 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupMessageFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupMessageFragment.java @@ -2,10 +2,13 @@ package org.briarproject.briar.android.privategroup.creation; import android.support.annotation.StringRes; +import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; +import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; -import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.sharing.BaseMessageFragment; +@MethodsNotNullByDefault +@ParametersNotNullByDefault public class CreateGroupMessageFragment extends BaseMessageFragment { private final static String TAG = @@ -28,9 +31,4 @@ public class CreateGroupMessageFragment extends BaseMessageFragment { return TAG; } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } - } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/GroupInviteFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/GroupInviteFragment.java index 8840c9cf0..dc6da1aea 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/GroupInviteFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/GroupInviteFragment.java @@ -1,6 +1,7 @@ package org.briarproject.briar.android.privategroup.creation; import android.os.Bundle; +import android.support.annotation.Nullable; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; @@ -13,6 +14,7 @@ import org.briarproject.briar.android.contactselection.SelectableContactItem; import javax.inject.Inject; +import static java.util.Objects.requireNonNull; import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID; @MethodsNotNullByDefault @@ -33,14 +35,14 @@ public class GroupInviteFragment extends ContactSelectorFragment { } @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - getActivity().setTitle(R.string.groups_invite_members); + public void injectFragment(ActivityComponent component) { + component.inject(this); } @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requireNonNull(getActivity()).setTitle(R.string.groups_invite_members); } @Override 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 2015069be..e82306370 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 @@ -37,6 +37,7 @@ import javax.annotation.Nullable; import javax.inject.Inject; import static android.support.design.widget.Snackbar.LENGTH_INDEFINITE; +import static java.util.Objects.requireNonNull; @MethodsNotNullByDefault @ParametersNotNullByDefault @@ -57,17 +58,23 @@ public class GroupListFragment extends BaseFragment implements private GroupListAdapter adapter; private Snackbar snackbar; + @Override + public void injectFragment(ActivityComponent component) { + component.inject(this); + controller.setGroupListListener(this); + } + @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - getActivity().setTitle(R.string.groups_button); + requireNonNull(getActivity()).setTitle(R.string.groups_button); View v = inflater.inflate(R.layout.list, container, false); - adapter = new GroupListAdapter(getContext(), this); + adapter = new GroupListAdapter(getActivity(), this); list = v.findViewById(R.id.list); list.setEmptyImage(R.drawable.ic_empty_state_group_list); list.setEmptyText(R.string.groups_list_empty); @@ -79,17 +86,11 @@ public class GroupListFragment extends BaseFragment implements snackbar.getView().setBackgroundResource(R.color.briar_primary); snackbar.setAction(R.string.show, this); snackbar.setActionTextColor(ContextCompat - .getColor(getContext(), R.color.briar_button_text_positive)); + .getColor(getActivity(), R.color.briar_button_text_positive)); return v; } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - controller.setGroupListListener(this); - } - @Override public void onStart() { super.onStart(); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/sharing/BaseMessageFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/sharing/BaseMessageFragment.java index 1f6fad3ff..f9747ff5b 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/sharing/BaseMessageFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/sharing/BaseMessageFragment.java @@ -37,7 +37,7 @@ public abstract class BaseMessageFragment extends BaseFragment } @Override - public View onCreateView(@Nullable LayoutInflater inflater, + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareBlogMessageFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareBlogMessageFragment.java index a963664fa..0acd4d575 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareBlogMessageFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareBlogMessageFragment.java @@ -1,14 +1,18 @@ package org.briarproject.briar.android.sharing; import android.os.Bundle; +import android.support.annotation.Nullable; import android.support.annotation.StringRes; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; +import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; -import org.briarproject.briar.android.activity.ActivityComponent; +@MethodsNotNullByDefault +@ParametersNotNullByDefault public class ShareBlogMessageFragment extends BaseMessageFragment { public final static String TAG = ShareBlogMessageFragment.class.getName(); @@ -18,9 +22,9 @@ public class ShareBlogMessageFragment extends BaseMessageFragment { } @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - + public View onCreateView(LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { setTitle(R.string.blogs_sharing_share); return super.onCreateView(inflater, container, savedInstanceState); } @@ -37,11 +41,6 @@ public class ShareBlogMessageFragment extends BaseMessageFragment { return R.string.forum_share_message; } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } - @Override public String getUniqueTag() { return TAG; diff --git a/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareForumMessageFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareForumMessageFragment.java index 8a30df49e..1cb07447f 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareForumMessageFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareForumMessageFragment.java @@ -1,14 +1,18 @@ package org.briarproject.briar.android.sharing; import android.os.Bundle; +import android.support.annotation.Nullable; import android.support.annotation.StringRes; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; +import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; -import org.briarproject.briar.android.activity.ActivityComponent; +@MethodsNotNullByDefault +@ParametersNotNullByDefault public class ShareForumMessageFragment extends BaseMessageFragment { public final static String TAG = ShareForumMessageFragment.class.getName(); @@ -18,8 +22,9 @@ public class ShareForumMessageFragment extends BaseMessageFragment { } @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { + public View onCreateView(LayoutInflater inflater, + @Nullable ViewGroup container, + @Nullable Bundle savedInstanceState) { setTitle(R.string.forum_share_button); return super.onCreateView(inflater, container, savedInstanceState); @@ -37,11 +42,6 @@ public class ShareForumMessageFragment extends BaseMessageFragment { return R.string.forum_share_message; } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } - @Override public String getUniqueTag() { return TAG;