mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 18:59:06 +01:00
Code cleanup, use correct fragment class.
This commit is contained in:
@@ -8,6 +8,7 @@ import org.briarproject.android.controller.handler.ExceptionHandler;
|
||||
import org.briarproject.android.controller.handler.ResultExceptionHandler;
|
||||
import org.briarproject.api.blogs.BlogPostHeader;
|
||||
import org.briarproject.api.db.DbException;
|
||||
import org.briarproject.api.nullsafety.NotNullByDefault;
|
||||
import org.briarproject.api.sync.GroupId;
|
||||
import org.briarproject.api.sync.MessageId;
|
||||
|
||||
@@ -33,9 +34,10 @@ interface BaseController {
|
||||
void repeatPost(BlogPostItem item, @Nullable String comment,
|
||||
ExceptionHandler<DbException> handler);
|
||||
|
||||
void setOnBlogPostAddedListener(OnBlogPostAddedListener listener);
|
||||
void setBlogListener(BlogListener listener);
|
||||
|
||||
interface OnBlogPostAddedListener extends DestroyableContext {
|
||||
@NotNullByDefault
|
||||
interface BlogListener extends DestroyableContext {
|
||||
|
||||
@UiThread
|
||||
void onBlogPostAdded(BlogPostHeader header, boolean local);
|
||||
|
||||
@@ -46,7 +46,7 @@ abstract class BaseControllerImpl extends DbControllerImpl
|
||||
private final Map<MessageId, BlogPostHeader> headerCache =
|
||||
new ConcurrentHashMap<>();
|
||||
|
||||
private volatile OnBlogPostAddedListener listener;
|
||||
private volatile BlogListener listener;
|
||||
|
||||
BaseControllerImpl(@DatabaseExecutor Executor dbExecutor,
|
||||
LifecycleManager lifecycleManager, EventBus eventBus,
|
||||
@@ -73,7 +73,7 @@ abstract class BaseControllerImpl extends DbControllerImpl
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnBlogPostAddedListener(OnBlogPostAddedListener listener) {
|
||||
public void setBlogListener(BlogListener listener) {
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@ import android.widget.ProgressBar;
|
||||
import org.briarproject.R;
|
||||
import org.briarproject.android.fragment.BaseFragment;
|
||||
import org.briarproject.api.db.DbException;
|
||||
import org.briarproject.api.nullsafety.MethodsNotNullByDefault;
|
||||
import org.briarproject.api.nullsafety.ParametersNotNullByDefault;
|
||||
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@@ -19,6 +21,9 @@ import static android.view.View.INVISIBLE;
|
||||
import static android.view.View.VISIBLE;
|
||||
import static org.briarproject.android.util.AndroidUtils.MIN_RESOLUTION;
|
||||
|
||||
@UiThread
|
||||
@MethodsNotNullByDefault
|
||||
@ParametersNotNullByDefault
|
||||
abstract class BasePostFragment extends BaseFragment {
|
||||
|
||||
private static final Logger LOG =
|
||||
@@ -33,8 +38,8 @@ abstract class BasePostFragment extends BaseFragment {
|
||||
@CallSuper
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
public View onCreateView(LayoutInflater inflater,
|
||||
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
view = inflater.inflate(R.layout.fragment_blog_post, container,
|
||||
false);
|
||||
progressBar = (ProgressBar) view.findViewById(R.id.progressBar);
|
||||
|
||||
@@ -13,10 +13,12 @@ import android.view.ViewGroup;
|
||||
import android.widget.ProgressBar;
|
||||
|
||||
import org.briarproject.R;
|
||||
import org.briarproject.android.blogs.BaseController.OnBlogPostAddedListener;
|
||||
import org.briarproject.android.blogs.BaseController.BlogListener;
|
||||
import org.briarproject.android.fragment.BaseFragment;
|
||||
import org.briarproject.api.blogs.BlogPostHeader;
|
||||
import org.briarproject.api.db.DbException;
|
||||
import org.briarproject.api.nullsafety.MethodsNotNullByDefault;
|
||||
import org.briarproject.api.nullsafety.ParametersNotNullByDefault;
|
||||
import org.briarproject.api.sync.GroupId;
|
||||
import org.briarproject.api.sync.MessageId;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -28,8 +30,11 @@ import static android.view.View.INVISIBLE;
|
||||
import static android.view.View.VISIBLE;
|
||||
import static org.briarproject.android.blogs.BasePostPagerFragment.BlogPostPagerAdapter.INVALID_POSITION;
|
||||
|
||||
@UiThread
|
||||
@MethodsNotNullByDefault
|
||||
@ParametersNotNullByDefault
|
||||
abstract class BasePostPagerFragment extends BaseFragment
|
||||
implements OnBlogPostAddedListener {
|
||||
implements BlogListener {
|
||||
|
||||
static final String POST_ID = "briar.POST_ID";
|
||||
|
||||
@@ -40,8 +45,8 @@ abstract class BasePostPagerFragment extends BaseFragment
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle state) {
|
||||
public View onCreateView(LayoutInflater inflater,
|
||||
@Nullable ViewGroup container, @Nullable Bundle state) {
|
||||
|
||||
Bundle args;
|
||||
if (state == null) args = getArguments();
|
||||
@@ -65,6 +70,10 @@ abstract class BasePostPagerFragment extends BaseFragment
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
loadBlogPosts();
|
||||
}
|
||||
|
||||
protected void loadBlogPosts() {
|
||||
if (postId == null) {
|
||||
MessageId selected = getSelectedPost();
|
||||
if (selected != null) loadBlogPosts(selected);
|
||||
@@ -86,23 +95,23 @@ abstract class BasePostPagerFragment extends BaseFragment
|
||||
loadBlogPost(header);
|
||||
}
|
||||
|
||||
abstract void loadBlogPosts(final MessageId select);
|
||||
abstract Fragment createFragment(GroupId g, MessageId m);
|
||||
|
||||
abstract void loadBlogPosts(MessageId select);
|
||||
|
||||
abstract void loadBlogPost(BlogPostHeader header);
|
||||
|
||||
@UiThread
|
||||
protected void onBlogPostsLoaded(MessageId select,
|
||||
Collection<BlogPostItem> posts) {
|
||||
|
||||
postId = null;
|
||||
postPagerAdapter.setPosts(posts);
|
||||
selectPost(select);
|
||||
}
|
||||
|
||||
@UiThread
|
||||
protected void onBlogPostsLoadedException(DbException exception) {
|
||||
// TODO: Decide how to handle errors in the UI
|
||||
finish();
|
||||
protected void onBlogPostLoaded(BlogPostItem post) {
|
||||
MessageId selected = getSelectedPost();
|
||||
postPagerAdapter.addPost(post);
|
||||
if (selected != null) selectPost(selected);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -121,16 +130,11 @@ abstract class BasePostPagerFragment extends BaseFragment
|
||||
}
|
||||
}
|
||||
|
||||
protected void addPost(BlogPostItem post) {
|
||||
MessageId selected = getSelectedPost();
|
||||
postPagerAdapter.addPost(post);
|
||||
if (selected != null) selectPost(selected);
|
||||
}
|
||||
|
||||
@UiThread
|
||||
static class BlogPostPagerAdapter extends FragmentStatePagerAdapter {
|
||||
class BlogPostPagerAdapter extends FragmentStatePagerAdapter {
|
||||
|
||||
static final int INVALID_POSITION = -1;
|
||||
|
||||
private final List<BlogPostItem> posts = new ArrayList<>();
|
||||
|
||||
private BlogPostPagerAdapter(FragmentManager fm) {
|
||||
@@ -145,7 +149,7 @@ abstract class BasePostPagerFragment extends BaseFragment
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
BlogPostItem post = posts.get(position);
|
||||
return FeedPostFragment.newInstance(post.getGroupId(), post.getId());
|
||||
return createFragment(post.getGroupId(), post.getId());
|
||||
}
|
||||
|
||||
private BlogPostItem getPost(int position) {
|
||||
@@ -175,9 +179,4 @@ abstract class BasePostPagerFragment extends BaseFragment
|
||||
return INVALID_POSITION;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlogRemoved() {
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.annotation.UiThread;
|
||||
import android.support.design.widget.Snackbar;
|
||||
import android.support.v4.app.ActivityOptionsCompat;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
@@ -19,7 +20,7 @@ import android.widget.Toast;
|
||||
|
||||
import org.briarproject.R;
|
||||
import org.briarproject.android.ActivityComponent;
|
||||
import org.briarproject.android.blogs.BaseController.OnBlogPostAddedListener;
|
||||
import org.briarproject.android.blogs.BaseController.BlogListener;
|
||||
import org.briarproject.android.blogs.BlogPostAdapter.OnBlogPostClickListener;
|
||||
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
|
||||
import org.briarproject.android.fragment.BaseFragment;
|
||||
@@ -46,10 +47,11 @@ import static org.briarproject.android.BriarActivity.GROUP_ID;
|
||||
import static org.briarproject.android.blogs.BlogActivity.REQUEST_SHARE;
|
||||
import static org.briarproject.android.blogs.BlogActivity.REQUEST_WRITE_POST;
|
||||
|
||||
@UiThread
|
||||
@MethodsNotNullByDefault
|
||||
@ParametersNotNullByDefault
|
||||
public class BlogFragment extends BaseFragment implements
|
||||
OnBlogPostAddedListener {
|
||||
BlogListener {
|
||||
|
||||
private final static String TAG = BlogFragment.class.getName();
|
||||
|
||||
@@ -99,7 +101,7 @@ public class BlogFragment extends BaseFragment implements
|
||||
@Override
|
||||
public void injectFragment(ActivityComponent component) {
|
||||
component.inject(this);
|
||||
blogController.setOnBlogPostAddedListener(this);
|
||||
blogController.setBlogListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.briarproject.android.blogs;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.annotation.UiThread;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -9,12 +10,17 @@ import android.view.ViewGroup;
|
||||
import org.briarproject.android.ActivityComponent;
|
||||
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
|
||||
import org.briarproject.api.db.DbException;
|
||||
import org.briarproject.api.nullsafety.MethodsNotNullByDefault;
|
||||
import org.briarproject.api.nullsafety.ParametersNotNullByDefault;
|
||||
import org.briarproject.api.sync.MessageId;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import static org.briarproject.android.blogs.BasePostPagerFragment.POST_ID;
|
||||
|
||||
@UiThread
|
||||
@MethodsNotNullByDefault
|
||||
@ParametersNotNullByDefault
|
||||
public class BlogPostFragment extends BasePostFragment {
|
||||
|
||||
public final static String TAG = BlogPostFragment.class.getName();
|
||||
@@ -36,8 +42,9 @@ public class BlogPostFragment extends BasePostFragment {
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
public View onCreateView(LayoutInflater inflater,
|
||||
@Nullable ViewGroup container,
|
||||
@Nullable Bundle savedInstanceState) {
|
||||
|
||||
Bundle args = getArguments();
|
||||
byte[] p = args.getByteArray(POST_ID);
|
||||
|
||||
@@ -9,7 +9,9 @@ import org.briarproject.api.identity.Author.Status;
|
||||
import org.briarproject.api.sync.GroupId;
|
||||
import org.briarproject.api.sync.MessageId;
|
||||
|
||||
// This class is not thread-safe
|
||||
import javax.annotation.concurrent.NotThreadSafe;
|
||||
|
||||
@NotThreadSafe
|
||||
public class BlogPostItem implements Comparable<BlogPostItem> {
|
||||
|
||||
private final BlogPostHeader header;
|
||||
|
||||
@@ -1,20 +1,28 @@
|
||||
package org.briarproject.android.blogs;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.UiThread;
|
||||
import android.support.v4.app.Fragment;
|
||||
|
||||
import org.briarproject.android.ActivityComponent;
|
||||
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
|
||||
import org.briarproject.api.blogs.BlogPostHeader;
|
||||
import org.briarproject.api.db.DbException;
|
||||
import org.briarproject.api.nullsafety.MethodsNotNullByDefault;
|
||||
import org.briarproject.api.nullsafety.ParametersNotNullByDefault;
|
||||
import org.briarproject.api.sync.GroupId;
|
||||
import org.briarproject.api.sync.MessageId;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
@UiThread
|
||||
@MethodsNotNullByDefault
|
||||
@ParametersNotNullByDefault
|
||||
public class BlogPostPagerFragment extends BasePostPagerFragment {
|
||||
|
||||
public final static String TAG = BlogPostPagerFragment.class.getName();
|
||||
private static final String TAG = BlogPostPagerFragment.class.getName();
|
||||
|
||||
@Inject
|
||||
BlogController blogController;
|
||||
@@ -32,7 +40,7 @@ public class BlogPostPagerFragment extends BasePostPagerFragment {
|
||||
@Override
|
||||
public void injectFragment(ActivityComponent component) {
|
||||
component.inject(this);
|
||||
blogController.setOnBlogPostAddedListener(this);
|
||||
blogController.setBlogListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -40,6 +48,10 @@ public class BlogPostPagerFragment extends BasePostPagerFragment {
|
||||
return TAG;
|
||||
}
|
||||
|
||||
@Override
|
||||
Fragment createFragment(final GroupId g, final MessageId m) {
|
||||
return BlogPostFragment.newInstance(m);
|
||||
}
|
||||
|
||||
@Override
|
||||
void loadBlogPosts(final MessageId select) {
|
||||
@@ -53,7 +65,8 @@ public class BlogPostPagerFragment extends BasePostPagerFragment {
|
||||
|
||||
@Override
|
||||
public void onExceptionUi(DbException exception) {
|
||||
onBlogPostsLoadedException(exception);
|
||||
// TODO: Decide how to handle errors in the UI
|
||||
finish();
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -65,7 +78,7 @@ public class BlogPostPagerFragment extends BasePostPagerFragment {
|
||||
this) {
|
||||
@Override
|
||||
public void onResultUi(BlogPostItem post) {
|
||||
addPost(post);
|
||||
onBlogPostLoaded(post);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -75,4 +88,9 @@ public class BlogPostPagerFragment extends BasePostPagerFragment {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlogRemoved() {
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
package org.briarproject.android.blogs;
|
||||
|
||||
import android.support.annotation.UiThread;
|
||||
|
||||
import org.briarproject.android.controller.handler.ResultExceptionHandler;
|
||||
import org.briarproject.api.blogs.Blog;
|
||||
import org.briarproject.api.db.DbException;
|
||||
import org.briarproject.api.nullsafety.NotNullByDefault;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
@@ -13,4 +16,12 @@ public interface FeedController extends BaseController {
|
||||
|
||||
void loadPersonalBlog(ResultExceptionHandler<Blog, DbException> handler);
|
||||
|
||||
void setFeedListener(FeedListener listener);
|
||||
|
||||
@NotNullByDefault
|
||||
interface FeedListener extends BlogListener {
|
||||
|
||||
@UiThread
|
||||
void onBlogAdded();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import org.briarproject.api.db.NoSuchMessageException;
|
||||
import org.briarproject.api.event.BlogPostAddedEvent;
|
||||
import org.briarproject.api.event.Event;
|
||||
import org.briarproject.api.event.EventBus;
|
||||
import org.briarproject.api.event.GroupAddedEvent;
|
||||
import org.briarproject.api.event.GroupRemovedEvent;
|
||||
import org.briarproject.api.identity.Author;
|
||||
import org.briarproject.api.identity.IdentityManager;
|
||||
@@ -33,6 +34,8 @@ public class FeedControllerImpl extends BaseControllerImpl
|
||||
private static final Logger LOG =
|
||||
Logger.getLogger(FeedControllerImpl.class.getName());
|
||||
|
||||
private volatile FeedListener listener;
|
||||
|
||||
@Inject
|
||||
FeedControllerImpl(@DatabaseExecutor Executor dbExecutor,
|
||||
LifecycleManager lifecycleManager, EventBus eventBus,
|
||||
@@ -45,6 +48,7 @@ public class FeedControllerImpl extends BaseControllerImpl
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
if (listener == null) throw new IllegalStateException();
|
||||
notificationManager.blockAllBlogPostNotifications();
|
||||
notificationManager.clearAllBlogPostNotifications();
|
||||
}
|
||||
@@ -55,12 +59,24 @@ public class FeedControllerImpl extends BaseControllerImpl
|
||||
notificationManager.unblockAllBlogPostNotifications();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFeedListener(FeedListener listener) {
|
||||
super.setBlogListener(listener);
|
||||
this.listener = listener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void eventOccurred(Event e) {
|
||||
if (e instanceof BlogPostAddedEvent) {
|
||||
BlogPostAddedEvent b = (BlogPostAddedEvent) e;
|
||||
LOG.info("Blog post added");
|
||||
onBlogPostAdded(b.getHeader(), b.isLocal());
|
||||
} else if (e instanceof GroupAddedEvent) {
|
||||
GroupAddedEvent g = (GroupAddedEvent) e;
|
||||
if (g.getGroup().getClientId().equals(CLIENT_ID)) {
|
||||
LOG.info("Blog added");
|
||||
onBlogAdded();
|
||||
}
|
||||
} else if (e instanceof GroupRemovedEvent) {
|
||||
GroupRemovedEvent g = (GroupRemovedEvent) e;
|
||||
if (g.getGroup().getClientId().equals(CLIENT_ID)) {
|
||||
@@ -70,6 +86,15 @@ public class FeedControllerImpl extends BaseControllerImpl
|
||||
}
|
||||
}
|
||||
|
||||
private void onBlogAdded() {
|
||||
listener.runOnUiThreadUnlessDestroyed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
listener.onBlogAdded();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadBlogPosts(
|
||||
final ResultExceptionHandler<Collection<BlogPostItem>, DbException> handler) {
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.briarproject.android.blogs;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.annotation.UiThread;
|
||||
import android.support.design.widget.Snackbar;
|
||||
import android.support.v4.app.ActivityOptionsCompat;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
@@ -17,14 +18,16 @@ import android.view.ViewGroup;
|
||||
|
||||
import org.briarproject.R;
|
||||
import org.briarproject.android.ActivityComponent;
|
||||
import org.briarproject.android.blogs.BaseController.OnBlogPostAddedListener;
|
||||
import org.briarproject.android.blogs.BlogPostAdapter.OnBlogPostClickListener;
|
||||
import org.briarproject.android.blogs.FeedController.FeedListener;
|
||||
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
|
||||
import org.briarproject.android.fragment.BaseFragment;
|
||||
import org.briarproject.android.view.BriarRecyclerView;
|
||||
import org.briarproject.api.blogs.Blog;
|
||||
import org.briarproject.api.blogs.BlogPostHeader;
|
||||
import org.briarproject.api.db.DbException;
|
||||
import org.briarproject.api.nullsafety.MethodsNotNullByDefault;
|
||||
import org.briarproject.api.nullsafety.ParametersNotNullByDefault;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.logging.Logger;
|
||||
@@ -37,8 +40,11 @@ import static android.support.v4.app.ActivityOptionsCompat.makeCustomAnimation;
|
||||
import static org.briarproject.android.BriarActivity.GROUP_ID;
|
||||
import static org.briarproject.android.blogs.BlogActivity.REQUEST_WRITE_POST;
|
||||
|
||||
@UiThread
|
||||
@MethodsNotNullByDefault
|
||||
@ParametersNotNullByDefault
|
||||
public class FeedFragment extends BaseFragment implements
|
||||
OnBlogPostClickListener, OnBlogPostAddedListener {
|
||||
OnBlogPostClickListener, FeedListener {
|
||||
|
||||
public final static String TAG = FeedFragment.class.getName();
|
||||
private static final Logger LOG = Logger.getLogger(TAG);
|
||||
@@ -62,8 +68,9 @@ public class FeedFragment extends BaseFragment implements
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
public View onCreateView(LayoutInflater inflater,
|
||||
@Nullable ViewGroup container,
|
||||
@Nullable Bundle savedInstanceState) {
|
||||
|
||||
View v = inflater.inflate(R.layout.fragment_blog, container, false);
|
||||
|
||||
@@ -81,7 +88,7 @@ public class FeedFragment extends BaseFragment implements
|
||||
@Override
|
||||
public void injectFragment(ActivityComponent component) {
|
||||
component.inject(this);
|
||||
feedController.setOnBlogPostAddedListener(this);
|
||||
feedController.setFeedListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -253,6 +260,11 @@ public class FeedFragment extends BaseFragment implements
|
||||
s.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlogAdded() {
|
||||
loadBlogPosts(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlogRemoved() {
|
||||
loadBlogPosts(true);
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.briarproject.android.blogs;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.annotation.UiThread;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -9,6 +10,8 @@ import android.view.ViewGroup;
|
||||
import org.briarproject.android.ActivityComponent;
|
||||
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
|
||||
import org.briarproject.api.db.DbException;
|
||||
import org.briarproject.api.nullsafety.MethodsNotNullByDefault;
|
||||
import org.briarproject.api.nullsafety.ParametersNotNullByDefault;
|
||||
import org.briarproject.api.sync.GroupId;
|
||||
import org.briarproject.api.sync.MessageId;
|
||||
|
||||
@@ -17,6 +20,9 @@ import javax.inject.Inject;
|
||||
import static org.briarproject.android.BriarActivity.GROUP_ID;
|
||||
import static org.briarproject.android.blogs.BasePostPagerFragment.POST_ID;
|
||||
|
||||
@UiThread
|
||||
@MethodsNotNullByDefault
|
||||
@ParametersNotNullByDefault
|
||||
public class FeedPostFragment extends BasePostFragment {
|
||||
|
||||
public final static String TAG = FeedPostFragment.class.getName();
|
||||
@@ -40,8 +46,9 @@ public class FeedPostFragment extends BasePostFragment {
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
public View onCreateView(LayoutInflater inflater,
|
||||
@Nullable ViewGroup container,
|
||||
@Nullable Bundle savedInstanceState) {
|
||||
|
||||
Bundle args = getArguments();
|
||||
byte[] b = args.getByteArray(GROUP_ID);
|
||||
|
||||
@@ -1,20 +1,30 @@
|
||||
package org.briarproject.android.blogs;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.UiThread;
|
||||
import android.support.v4.app.Fragment;
|
||||
|
||||
import org.briarproject.android.ActivityComponent;
|
||||
import org.briarproject.android.blogs.FeedController.FeedListener;
|
||||
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
|
||||
import org.briarproject.api.blogs.BlogPostHeader;
|
||||
import org.briarproject.api.db.DbException;
|
||||
import org.briarproject.api.nullsafety.MethodsNotNullByDefault;
|
||||
import org.briarproject.api.nullsafety.ParametersNotNullByDefault;
|
||||
import org.briarproject.api.sync.GroupId;
|
||||
import org.briarproject.api.sync.MessageId;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class FeedPostPagerFragment extends BasePostPagerFragment {
|
||||
@UiThread
|
||||
@MethodsNotNullByDefault
|
||||
@ParametersNotNullByDefault
|
||||
public class FeedPostPagerFragment extends BasePostPagerFragment
|
||||
implements FeedListener {
|
||||
|
||||
public final static String TAG = FeedPostPagerFragment.class.getName();
|
||||
private static final String TAG = FeedPostPagerFragment.class.getName();
|
||||
|
||||
@Inject
|
||||
FeedController feedController;
|
||||
@@ -32,7 +42,7 @@ public class FeedPostPagerFragment extends BasePostPagerFragment {
|
||||
@Override
|
||||
public void injectFragment(ActivityComponent component) {
|
||||
component.inject(this);
|
||||
feedController.setOnBlogPostAddedListener(this);
|
||||
feedController.setFeedListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -52,6 +62,11 @@ public class FeedPostPagerFragment extends BasePostPagerFragment {
|
||||
feedController.onStop();
|
||||
}
|
||||
|
||||
@Override
|
||||
Fragment createFragment(GroupId g, MessageId m) {
|
||||
return FeedPostFragment.newInstance(g, m);
|
||||
}
|
||||
|
||||
@Override
|
||||
void loadBlogPosts(final MessageId select) {
|
||||
feedController.loadBlogPosts(
|
||||
@@ -64,7 +79,7 @@ public class FeedPostPagerFragment extends BasePostPagerFragment {
|
||||
|
||||
@Override
|
||||
public void onExceptionUi(DbException exception) {
|
||||
onBlogPostsLoadedException(exception);
|
||||
// TODO: Decide how to handle errors in the UI
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -76,14 +91,23 @@ public class FeedPostPagerFragment extends BasePostPagerFragment {
|
||||
this) {
|
||||
@Override
|
||||
public void onResultUi(BlogPostItem post) {
|
||||
addPost(post);
|
||||
onBlogPostLoaded(post);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExceptionUi(DbException exception) {
|
||||
// TODO: Decide how to handle errors in the UI
|
||||
finish();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlogAdded() {
|
||||
loadBlogPosts();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlogRemoved() {
|
||||
loadBlogPosts();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user