From db3c3eee44b18f064b99c1eca4a2a136f293a847 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Thu, 8 Dec 2016 17:31:48 -0200 Subject: [PATCH] Move OnBlogPostClickListener from activity to fragment --- .../briar/android/blog/BasePostFragment.java | 7 +++++++ .../briar/android/blog/BlogActivity.java | 11 ++--------- .../briar/android/blog/BlogFragment.java | 14 +++++++++----- .../briar/android/blog/BlogPostFragment.java | 16 ---------------- .../briar/android/blog/FeedPostFragment.java | 5 ----- .../briar/android/blog/ReblogFragment.java | 3 +-- .../src/main/res/layout/fragment_blog.xml | 1 + .../src/main/res/layout/fragment_blog_post.xml | 3 ++- 8 files changed, 22 insertions(+), 38 deletions(-) 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 a6be4cd3fd..5787e115ed 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 @@ -10,6 +10,7 @@ import android.widget.ProgressBar; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; +import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.briar.R; import org.briarproject.briar.android.fragment.BaseFragment; @@ -31,6 +32,7 @@ abstract class BasePostFragment extends BaseFragment { private static final Logger LOG = Logger.getLogger(BasePostFragment.class.getName()); + protected MessageId postId; private View view; private ProgressBar progressBar; private BlogPostViewHolder ui; @@ -43,6 +45,11 @@ abstract class BasePostFragment extends BaseFragment { public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + // retrieve MessageId of blog post from arguments + byte[] p = getArguments().getByteArray(POST_ID); + if (p == null) throw new IllegalStateException("No post ID in args"); + postId = new MessageId(p); + view = inflater.inflate(R.layout.fragment_blog_post, container, false); progressBar = (ProgressBar) view.findViewById(R.id.progressBar); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java index ef3f86651d..229e1702ff 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java @@ -11,7 +11,6 @@ import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BriarActivity; -import org.briarproject.briar.android.blog.BlogPostAdapter.OnBlogPostClickListener; import org.briarproject.briar.android.fragment.BaseFragment.BaseFragmentListener; import org.briarproject.briar.android.sharing.BlogSharingStatusActivity; @@ -19,8 +18,8 @@ import javax.inject.Inject; @MethodsNotNullByDefault @ParametersNotNullByDefault -public class BlogActivity extends BriarActivity implements - OnBlogPostClickListener, BaseFragmentListener { +public class BlogActivity extends BriarActivity + implements BaseFragmentListener { static final int REQUEST_WRITE_POST = 2; static final int REQUEST_SHARE = 3; @@ -66,10 +65,4 @@ public class BlogActivity extends BriarActivity implements component.inject(this); } - @Override - public void onBlogPostClick(BlogPostItem post) { - BlogPostFragment f = BlogPostFragment.newInstance(post.getId()); - showNextFragment(f); - } - } 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 d00b7e0aca..2dcbd3766c 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 @@ -5,7 +5,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.app.ActionBar; import android.support.v7.app.AlertDialog; @@ -45,7 +44,6 @@ import javax.inject.Inject; import static android.app.Activity.RESULT_OK; 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.android.activity.BriarActivity.GROUP_ID; import static org.briarproject.briar.android.blog.BlogActivity.REQUEST_SHARE; @@ -56,7 +54,8 @@ import static org.briarproject.briar.android.controller.SharingController.Sharin @MethodsNotNullByDefault @ParametersNotNullByDefault public class BlogFragment extends BaseFragment - implements BlogSharingListener, SharingListener { + implements BlogSharingListener, SharingListener, + OnBlogPostClickListener { private final static String TAG = BlogFragment.class.getName(); @@ -94,8 +93,7 @@ public class BlogFragment extends BaseFragment View v = inflater.inflate(R.layout.fragment_blog, container, false); - adapter = new BlogPostAdapter(getActivity(), - (OnBlogPostClickListener) getActivity()); + adapter = new BlogPostAdapter(getActivity(), this); list = (BriarRecyclerView) v.findViewById(R.id.postList); list.setLayoutManager(new LinearLayoutManager(getActivity())); list.setAdapter(adapter); @@ -214,6 +212,12 @@ public class BlogFragment extends BaseFragment ); } + @Override + public void onBlogPostClick(BlogPostItem post) { + BlogPostFragment f = BlogPostFragment.newInstance(post.getId()); + showNextFragment(f); + } + private void loadBlogPosts(final boolean reload) { blogController.loadBlogPosts( new UiResultExceptionHandler<Collection<BlogPostItem>, DbException>( diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostFragment.java index 8c9f4ae21c..2f219ea866 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostFragment.java @@ -23,8 +23,6 @@ public class BlogPostFragment extends BasePostFragment { private static final String TAG = BlogPostFragment.class.getName(); - private MessageId postId; - @Inject BlogController blogController; @@ -38,20 +36,6 @@ public class BlogPostFragment extends BasePostFragment { return f; } - @Nullable - @Override - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, - @Nullable Bundle savedInstanceState) { - - Bundle args = getArguments(); - byte[] p = args.getByteArray(POST_ID); - if (p == null) throw new IllegalStateException("No post ID in args"); - postId = new MessageId(p); - - return super.onCreateView(inflater, container, savedInstanceState); - } - @Override public String getUniqueTag() { return TAG; 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 799c170a9e..233c5b99ca 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 @@ -26,7 +26,6 @@ public class FeedPostFragment extends BasePostFragment { private static final String TAG = FeedPostFragment.class.getName(); - private MessageId postId; private GroupId blogId; @Inject @@ -54,10 +53,6 @@ public class FeedPostFragment extends BasePostFragment { if (b == null) throw new IllegalStateException("No group ID in args"); blogId = new GroupId(b); - byte[] p = args.getByteArray(POST_ID); - if (p == null) throw new IllegalStateException("No post ID in args"); - postId = new MessageId(p); - return super.onCreateView(inflater, container, savedInstanceState); } 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 d9093a79da..43064752fc 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,8 +74,7 @@ public class ReblogFragment extends BaseFragment implements TextInputListener { blogId = new GroupId(args.getByteArray(GROUP_ID)); postId = new MessageId(args.getByteArray(POST_ID)); - View v = inflater.inflate(R.layout.fragment_reblog, container, - false); + View v = inflater.inflate(R.layout.fragment_reblog, container, false); ui = new ViewHolder(v); ui.post.setTransitionName(postId); ui.input.setSendButtonEnabled(false); diff --git a/briar-android/src/main/res/layout/fragment_blog.xml b/briar-android/src/main/res/layout/fragment_blog.xml index df5e36a9e7..1a1c64c045 100644 --- a/briar-android/src/main/res/layout/fragment_blog.xml +++ b/briar-android/src/main/res/layout/fragment_blog.xml @@ -6,5 +6,6 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="@color/window_background" app:scrollToEnd="false" tools:context=".android.blog.BlogActivity"/> diff --git a/briar-android/src/main/res/layout/fragment_blog_post.xml b/briar-android/src/main/res/layout/fragment_blog_post.xml index 3fdce0b1c5..228e5dd695 100644 --- a/briar-android/src/main/res/layout/fragment_blog_post.xml +++ b/briar-android/src/main/res/layout/fragment_blog_post.xml @@ -2,7 +2,8 @@ <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + android:background="@color/window_background"> <FrameLayout android:layout_width="wrap_content" -- GitLab