Use start/stop lifecycle callbacks rather than pause/resume.

Also fixed a couple of bugs.
This commit is contained in:
akwizgran
2016-10-12 16:55:00 +01:00
parent b3e5d1ff85
commit 50a70f7649
51 changed files with 563 additions and 538 deletions

View File

@@ -20,7 +20,6 @@ import org.briarproject.android.ActivityComponent;
import org.briarproject.android.blogs.BaseController.OnBlogPostAddedListener;
import org.briarproject.android.blogs.BlogPostAdapter.OnBlogPostClickListener;
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
import org.briarproject.android.controller.handler.UiResultHandler;
import org.briarproject.android.fragment.BaseFragment;
import org.briarproject.android.view.BriarRecyclerView;
import org.briarproject.api.blogs.Blog;
@@ -99,40 +98,56 @@ public class FeedFragment extends BaseFragment implements
public void onStart() {
super.onStart();
feedController.onStart();
feedController.loadPersonalBlog(
new UiResultHandler<Blog>(listener) {
@Override
public void onResultUi(Blog b) {
personalBlog = b;
}
});
feedController.loadBlogPosts(
new UiResultExceptionHandler<Collection<BlogPostItem>, DbException>(
listener) {
@Override
public void onResultUi(Collection<BlogPostItem> posts) {
if (posts.isEmpty()) {
list.showData();
} else {
adapter.addAll(posts);
}
}
@Override
public void onExceptionUi(DbException exception) {
// TODO
}
});
list.startPeriodicUpdate();
loadPersonalBlog();
loadBlogPosts(false);
}
@Override
public void onStop() {
super.onStop();
feedController.onStop();
adapter.clear();
list.showProgressBar();
list.stopPeriodicUpdate();
// TODO save list position in database/preferences?
}
private void loadPersonalBlog() {
feedController.loadPersonalBlog(
new UiResultExceptionHandler<Blog, DbException>(listener) {
@Override
public void onResultUi(Blog b) {
personalBlog = b;
}
@Override
public void onExceptionUi(DbException exception) {
// TODO: Decide how to handle errors in the UI
finish();
}
});
}
private void loadBlogPosts(final boolean clear) {
feedController.loadBlogPosts(
new UiResultExceptionHandler<Collection<BlogPostItem>, DbException>(
listener) {
@Override
public void onResultUi(Collection<BlogPostItem> posts) {
if (clear) adapter.setItems(posts);
else adapter.addAll(posts);
if (posts.isEmpty()) list.showData();
}
@Override
public void onExceptionUi(DbException e) {
// TODO: Decide how to handle errors in the UI
finish();
}
});
list.startPeriodicUpdate();
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.blogs_feed_actions, menu);
@@ -185,9 +200,11 @@ public class FeedFragment extends BaseFragment implements
showSnackBar(R.string.blogs_blog_post_received);
}
}
@Override
public void onExceptionUi(DbException exception) {
// TODO: Decide how to handle errors in the UI
finish();
}
}
);
@@ -234,6 +251,6 @@ public class FeedFragment extends BaseFragment implements
@Override
public void onBlogRemoved() {
finish();
loadBlogPosts(true);
}
}