diff --git a/briar-android/src/main/java/org/briarproject/briar/android/account/AuthorNameFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/account/AuthorNameFragment.java index 1df351d55..fee24208d 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/account/AuthorNameFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/account/AuthorNameFragment.java @@ -17,7 +17,6 @@ import org.briarproject.briar.android.activity.ActivityComponent; import javax.annotation.Nullable; -import static java.util.Objects.requireNonNull; import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_AUTHOR_NAME_LENGTH; import static org.briarproject.bramble.util.StringUtils.toUtf8; import static org.briarproject.briar.android.util.UiUtils.setError; @@ -45,7 +44,7 @@ public class AuthorNameFragment extends SetupFragment { public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - requireNonNull(getActivity()).setTitle(getString(R.string.setup_title)); + requireActivity().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); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/account/DozeFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/account/DozeFragment.java index 454b8bd3a..611cc1e18 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/account/DozeFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/account/DozeFragment.java @@ -20,7 +20,6 @@ import androidx.annotation.Nullable; 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; @@ -50,10 +49,10 @@ public class DozeFragment extends SetupFragment public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - requireNonNull(getActivity()).setTitle(getString(R.string.setup_doze_title)); + requireActivity().setTitle(getString(R.string.setup_doze_title)); setHasOptionsMenu(false); View v = inflater.inflate(R.layout.fragment_setup_doze, container, - false); + false); dozeView = v.findViewById(R.id.dozeView); dozeView.setOnCheckedChangedListener(this); huaweiView = v.findViewById(R.id.huaweiView); @@ -78,7 +77,8 @@ public class DozeFragment extends SetupFragment } @Override - public void onActivityResult(int request, int result, Intent data) { + public void onActivityResult(int request, int result, + @Nullable Intent data) { super.onActivityResult(request, result, data); if (request == REQUEST_DOZE_WHITELISTING) { if (!dozeView.needsToBeShown() || secondAttempt) { @@ -92,11 +92,7 @@ public class DozeFragment extends SetupFragment @Override public void onCheckedChanged() { - if (dozeView.isChecked() && huaweiView.isChecked()) { - next.setEnabled(true); - } else { - next.setEnabled(false); - } + next.setEnabled(dozeView.isChecked() && huaweiView.isChecked()); } @SuppressLint("BatteryLife") diff --git a/briar-android/src/main/java/org/briarproject/briar/android/account/SetPasswordFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/account/SetPasswordFragment.java index 854971c4e..19958ad3f 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/account/SetPasswordFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/account/SetPasswordFragment.java @@ -24,7 +24,6 @@ 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; import static org.briarproject.briar.android.util.UiUtils.setError; @@ -55,7 +54,7 @@ public class SetPasswordFragment extends SetupFragment { public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - requireNonNull(getActivity()).setTitle(getString(R.string.setup_password_intro)); + requireActivity().setTitle(getString(R.string.setup_password_intro)); View v = inflater.inflate(R.layout.fragment_setup_password, container, false); 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 35d0ea653..01d40619e 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 @@ -25,7 +25,6 @@ import androidx.annotation.UiThread; 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; @@ -55,7 +54,7 @@ abstract class BasePostFragment extends BaseFragment { @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { // retrieve MessageId of blog post from arguments - byte[] p = requireNonNull(getArguments()).getByteArray(POST_ID); + byte[] p = requireArguments().getByteArray(POST_ID); if (p == null) throw new IllegalStateException("No post ID in args"); postId = new MessageId(p); 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 eb2540677..a9e3da6d3 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 @@ -46,7 +46,6 @@ 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 com.google.android.material.snackbar.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_SHARE_BLOG; import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_WRITE_BLOG_POST; @@ -97,14 +96,14 @@ public class BlogFragment extends BaseFragment public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - Bundle args = requireNonNull(getArguments()); + Bundle args = requireArguments(); 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(requireNonNull(getActivity()), this, + adapter = new BlogPostAdapter(requireActivity(), this, getFragmentManager()); list = v.findViewById(R.id.postList); layoutManager = new LinearLayoutManager(getActivity()); @@ -196,7 +195,8 @@ public class BlogFragment extends BaseFragment } @Override - public void onActivityResult(int request, int result, Intent data) { + public void onActivityResult(int request, int result, + @Nullable Intent data) { super.onActivityResult(request, result, data); if (request == REQUEST_WRITE_BLOG_POST && result == RESULT_OK) { 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 2d01394a3..cbb686e9d 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,7 +35,6 @@ import androidx.recyclerview.widget.LinearLayoutManager; import static android.app.Activity.RESULT_OK; import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; import static com.google.android.material.snackbar.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; @@ -79,7 +78,7 @@ public class FeedFragment extends BaseFragment implements public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - requireNonNull(getActivity()).setTitle(R.string.blogs_button); + requireActivity().setTitle(R.string.blogs_button); View v = inflater.inflate(R.layout.fragment_blog, container, false); @@ -103,7 +102,8 @@ public class FeedFragment extends BaseFragment implements } @Override - public void onActivityResult(int requestCode, int resultCode, Intent data) { + public void onActivityResult(int requestCode, int resultCode, + @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); // The BlogPostAddedEvent arrives when the controller is not listening 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 032445c0e..fb397898d 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 @@ -18,7 +18,6 @@ import javax.inject.Inject; import androidx.annotation.UiThread; -import static java.util.Objects.requireNonNull; import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID; @UiThread @@ -54,7 +53,7 @@ public class FeedPostFragment extends BasePostFragment { public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - Bundle args = requireNonNull(getArguments()); + Bundle args = requireArguments(); byte[] b = args.getByteArray(GROUP_ID); if (b == null) throw new IllegalStateException("No group ID in args"); blogId = new GroupId(b); 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 3fcdddaa0..058c09a2e 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 @@ -74,7 +74,7 @@ public class ReblogFragment extends BaseFragment implements SendListener { @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - Bundle args = requireNonNull(getArguments()); + Bundle args = requireArguments(); GroupId blogId = new GroupId(requireNonNull(args.getByteArray(GROUP_ID))); MessageId postId = 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 f76a05cac..46941ffe6 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 @@ -62,7 +62,6 @@ import static android.os.Build.VERSION.SDK_INT; import static androidx.core.app.ActivityOptionsCompat.makeSceneTransitionAnimation; import static androidx.core.view.ViewCompat.getTransitionName; import static com.google.android.material.snackbar.BaseTransientBottomBar.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; @@ -122,7 +121,7 @@ public class ContactListFragment extends BaseFragment implements EventListener, public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - requireNonNull(getActivity()).setTitle(R.string.contact_list_button); + requireActivity().setTitle(R.string.contact_list_button); View contentView = inflater.inflate(R.layout.fragment_contact_list, container, false); @@ -274,8 +273,8 @@ public class ContactListFragment extends BaseFragment implements EventListener, removeItem(((ContactRemovedEvent) e).getContactId()); } else if (e instanceof ConversationMessageReceivedEvent) { LOG.info("Conversation message received, updating item"); - ConversationMessageReceivedEvent p = - (ConversationMessageReceivedEvent) e; + ConversationMessageReceivedEvent p = + (ConversationMessageReceivedEvent) e; ConversationMessageHeader h = p.getMessageHeader(); updateItem(p.getContactId(), h); } else if (e instanceof PendingContactAddedEvent || @@ -317,7 +316,7 @@ public class ContactListFragment extends BaseFragment implements EventListener, @UiThread private void showSnackBar() { if (snackbar != null) return; - View v = requireNonNull(getView()); + View v = requireView(); int stringRes = R.string.pending_contact_requests_snackbar; snackbar = new BriarSnackbarBuilder() .setAction(R.string.show, view -> showPendingContactList()) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/LinkExchangeFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/LinkExchangeFragment.java index 2e4cad254..20566613b 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/LinkExchangeFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/LinkExchangeFragment.java @@ -33,7 +33,6 @@ import androidx.lifecycle.ViewModelProviders; import static android.content.Context.CLIPBOARD_SERVICE; import static android.widget.Toast.LENGTH_SHORT; -import static java.util.Objects.requireNonNull; import static org.briarproject.bramble.api.contact.HandshakeLinkConstants.LINK_REGEX; import static org.briarproject.briar.android.util.UiUtils.observeOnce; @@ -83,8 +82,8 @@ public class LinkExchangeFragment extends BaseFragment linkInput.setText(viewModel.getRemoteHandshakeLink()); } - clipboard = (ClipboardManager) requireNonNull( - getContext().getSystemService(CLIPBOARD_SERVICE)); + clipboard = (ClipboardManager) + requireContext().getSystemService(CLIPBOARD_SERVICE); Button pasteButton = v.findViewById(R.id.pasteButton); pasteButton.setOnClickListener(view -> { @@ -107,7 +106,7 @@ public class LinkExchangeFragment extends BaseFragment @Override public void onGlobalLayout() { - ScrollView scrollView = (ScrollView) requireNonNull(getView()); + ScrollView scrollView = (ScrollView) requireView(); View layout = scrollView.getChildAt(0); int scrollBy = layout.getHeight() - scrollView.getHeight(); if (scrollBy > 0) { @@ -121,7 +120,7 @@ public class LinkExchangeFragment extends BaseFragment } private void onHandshakeLinkLoaded(String link) { - View v = requireNonNull(getView()); + View v = requireView(); TextView linkView = v.findViewById(R.id.linkView); linkView.setText(link); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/NicknameFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/NicknameFragment.java index aec20a01d..db435c061 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/NicknameFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/NicknameFragment.java @@ -31,6 +31,7 @@ import javax.inject.Inject; import androidx.annotation.StringRes; import androidx.appcompat.app.AlertDialog.Builder; +import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelProviders; @@ -117,7 +118,8 @@ public class NicknameFragment extends BaseFragment { addButton.setVisibility(INVISIBLE); progressBar.setVisibility(VISIBLE); - viewModel.getAddContactResult().observe(this, result -> { + LifecycleOwner owner = getViewLifecycleOwner(); + viewModel.getAddContactResult().observe(owner, result -> { if (result == null) return; if (result.hasError()) handleException(name, requireNonNull(result.getException())); 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 704bf984c..3c6052c77 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 @@ -26,7 +26,6 @@ import javax.annotation.Nullable; import androidx.annotation.CallSuper; import androidx.recyclerview.widget.LinearLayoutManager; -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; @@ -55,7 +54,7 @@ public abstract class BaseContactSelectorFragment { + LifecycleOwner owner = getViewLifecycleOwner(); + viewModel.getPasswordValidated().observeEvent(owner, result -> { if (result != SUCCESS) onPasswordInvalid(result); }); 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 afc963b83..ba1dda030 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 @@ -15,7 +15,6 @@ import javax.inject.Inject; import androidx.annotation.Nullable; -import static java.util.Objects.requireNonNull; import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID; @MethodsNotNullByDefault @@ -43,7 +42,7 @@ public class GroupInviteFragment extends ContactSelectorFragment { @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - requireNonNull(getActivity()).setTitle(R.string.groups_invite_members); + requireActivity().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 fcc3027d6..98cb53f90 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 @@ -39,7 +39,6 @@ import androidx.annotation.UiThread; import androidx.recyclerview.widget.LinearLayoutManager; import static com.google.android.material.snackbar.Snackbar.LENGTH_INDEFINITE; -import static java.util.Objects.requireNonNull; @MethodsNotNullByDefault @ParametersNotNullByDefault @@ -72,7 +71,7 @@ public class GroupListFragment extends BaseFragment implements @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - requireNonNull(getActivity()).setTitle(R.string.groups_button); + requireActivity().setTitle(R.string.groups_button); View v = inflater.inflate(R.layout.list, container, false); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashFragment.java index beaf7f3c5..892daf0b8 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashFragment.java @@ -12,8 +12,6 @@ import org.briarproject.briar.R; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; -import static java.util.Objects.requireNonNull; - @MethodsNotNullByDefault @ParametersNotNullByDefault public class CrashFragment extends Fragment { @@ -35,7 +33,7 @@ public class CrashFragment extends Fragment { } private DevReportActivity getDevReportActivity() { - return (DevReportActivity) requireNonNull(getActivity()); + return (DevReportActivity) requireActivity(); } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/reporting/ReportFormFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/reporting/ReportFormFragment.java index 32edfede3..4dd3f9d2f 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/reporting/ReportFormFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/reporting/ReportFormFragment.java @@ -113,7 +113,7 @@ public class ReportFormFragment extends Fragment report = v.findViewById(R.id.report_content); progress = v.findViewById(R.id.progress_wheel); - Bundle args = requireNonNull(getArguments()); + Bundle args = requireArguments(); isFeedback = args.getBoolean(IS_FEEDBACK); reportFile = (File) requireNonNull(args.getSerializable(EXTRA_REPORT_FILE)); @@ -285,7 +285,7 @@ public class ReportFormFragment extends Fragment } private DevReportActivity getDevReportActivity() { - return (DevReportActivity) requireNonNull(getActivity()); + return (DevReportActivity) requireActivity(); } } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/widget/LinkDialogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/widget/LinkDialogFragment.java index 791a2601f..481c298a7 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/widget/LinkDialogFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/widget/LinkDialogFragment.java @@ -49,7 +49,7 @@ public class LinkDialogFragment extends DialogFragment { public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - Bundle args = requireNonNull(getArguments()); + Bundle args = requireArguments(); url = requireNonNull(args.getString("url")); setStyle(STYLE_NO_TITLE, R.style.BriarDialogTheme); @@ -70,7 +70,7 @@ public class LinkDialogFragment extends DialogFragment { Context ctx = requireContext(); Intent i = new Intent(ACTION_VIEW, Uri.parse(url)); PackageManager packageManager = ctx.getPackageManager(); - List activities = + List activities = packageManager.queryIntentActivities(i, MATCH_DEFAULT_ONLY); boolean choice = activities.size() > 1; Intent intent = choice ? Intent.createChooser(i,