Introduce Exception handler for when no result needs to be returned

Also add NotNull annotation to classes that were touched
This commit is contained in:
Torsten Grote
2016-11-11 10:01:20 -02:00
parent ade7e50f65
commit 563d897651
26 changed files with 135 additions and 106 deletions

View File

@@ -4,6 +4,7 @@ import android.support.annotation.Nullable;
import android.support.annotation.UiThread;
import org.briarproject.android.DestroyableContext;
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;
@@ -30,7 +31,7 @@ interface BaseController {
ResultExceptionHandler<BlogPostItem, DbException> handler);
void repeatPost(BlogPostItem item, @Nullable String comment,
ResultExceptionHandler<Void, DbException> resultHandler);
ExceptionHandler<DbException> handler);
void setOnBlogPostAddedListener(OnBlogPostAddedListener listener);

View File

@@ -5,6 +5,7 @@ import android.support.annotation.Nullable;
import org.briarproject.android.api.AndroidNotificationManager;
import org.briarproject.android.controller.DbControllerImpl;
import org.briarproject.android.controller.handler.ExceptionHandler;
import org.briarproject.android.controller.handler.ResultExceptionHandler;
import org.briarproject.api.blogs.Blog;
import org.briarproject.api.blogs.BlogCommentHeader;
@@ -196,7 +197,7 @@ abstract class BaseControllerImpl extends DbControllerImpl
@Override
public void repeatPost(final BlogPostItem item,
final @Nullable String comment,
final ResultExceptionHandler<Void, DbException> handler) {
final ExceptionHandler<DbException> handler) {
runOnDbThread(new Runnable() {
@Override
public void run() {
@@ -205,7 +206,6 @@ abstract class BaseControllerImpl extends DbControllerImpl
Blog b = blogManager.getPersonalBlog(a);
BlogPostHeader h = item.getHeader();
blogManager.addLocalComment(a, b.getId(), comment, h);
handler.onResult(null);
} catch (DbException e) {
if (LOG.isLoggable(WARNING))
LOG.log(WARNING, e.toString(), e);

View File

@@ -23,12 +23,14 @@ 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.fragment.BaseFragment;
import org.briarproject.android.sharing.ShareBlogActivity;
import org.briarproject.android.sharing.BlogSharingStatusActivity;
import org.briarproject.android.sharing.ShareBlogActivity;
import org.briarproject.android.view.BriarRecyclerView;
import org.briarproject.api.blogs.BlogPostHeader;
import org.briarproject.api.db.DbException;
import org.briarproject.api.identity.Author;
import org.briarproject.api.nullsafety.MethodsNotNullByDefault;
import org.briarproject.api.nullsafety.ParametersNotNullByDefault;
import org.briarproject.api.sync.GroupId;
import java.util.Collection;
@@ -44,6 +46,8 @@ 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;
@MethodsNotNullByDefault
@ParametersNotNullByDefault
public class BlogFragment extends BaseFragment implements
OnBlogPostAddedListener {
@@ -71,8 +75,9 @@ public class BlogFragment 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) {
Bundle args = getArguments();
byte[] b = args.getByteArray(GROUP_ID);
if (b == null) throw new IllegalStateException("No group ID in args");

View File

@@ -1,6 +1,5 @@
package org.briarproject.android.blogs;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
@@ -11,11 +10,14 @@ import android.widget.ScrollView;
import org.briarproject.R;
import org.briarproject.android.ActivityComponent;
import org.briarproject.android.controller.handler.UiExceptionHandler;
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
import org.briarproject.android.fragment.BaseFragment;
import org.briarproject.android.view.TextInputView;
import org.briarproject.android.view.TextInputView.TextInputListener;
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;
@@ -28,11 +30,12 @@ import static android.view.View.VISIBLE;
import static org.briarproject.android.BriarActivity.GROUP_ID;
import static org.briarproject.android.blogs.BasePostPagerFragment.POST_ID;
@MethodsNotNullByDefault
@ParametersNotNullByDefault
public class ReblogFragment extends BaseFragment implements TextInputListener {
public static final String TAG = ReblogFragment.class.getName();
private BaseFragmentListener listener;
private ViewHolder ui;
private GroupId blogId;
private MessageId postId;
@@ -63,14 +66,9 @@ public class ReblogFragment extends BaseFragment implements TextInputListener {
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
listener = (BaseFragmentListener) context;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
Bundle args = getArguments();
blogId = new GroupId(args.getByteArray(GROUP_ID));
@@ -130,14 +128,10 @@ public class ReblogFragment extends BaseFragment implements TextInputListener {
public void onSendClick(String text) {
String comment = getComment();
feedController.repeatPost(item, comment,
new UiResultExceptionHandler<Void, DbException>(this) {
@Override
public void onResultUi(Void result) {
// do nothing, this fragment is gone already
}
new UiExceptionHandler<DbException>(this) {
@Override
public void onExceptionUi(DbException exception) {
// TODO proper error handling
// do nothing, this fragment is gone already
}
});

View File

@@ -0,0 +1,7 @@
package org.briarproject.android.controller.handler;
public interface ExceptionHandler<E extends Exception> {
void onException(E exception);
}

View File

@@ -1,8 +1,8 @@
package org.briarproject.android.controller.handler;
public interface ResultExceptionHandler<R, E extends Exception> {
public interface ResultExceptionHandler<R, E extends Exception>
extends ExceptionHandler<E> {
void onResult(R result);
void onException(E exception);
}

View File

@@ -0,0 +1,34 @@
package org.briarproject.android.controller.handler;
import android.support.annotation.UiThread;
import org.briarproject.android.DestroyableContext;
import org.briarproject.api.nullsafety.NotNullByDefault;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public abstract class UiExceptionHandler<E extends Exception>
implements ExceptionHandler<E> {
protected final DestroyableContext listener;
protected UiExceptionHandler(DestroyableContext listener) {
this.listener = listener;
}
@Override
public void onException(final E exception) {
listener.runOnUiThreadUnlessDestroyed(new Runnable() {
@Override
public void run() {
onExceptionUi(exception);
}
});
}
@UiThread
public abstract void onExceptionUi(E exception);
}

View File

@@ -3,14 +3,17 @@ package org.briarproject.android.controller.handler;
import android.support.annotation.UiThread;
import org.briarproject.android.DestroyableContext;
import org.briarproject.api.nullsafety.NotNullByDefault;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public abstract class UiResultExceptionHandler<R, E extends Exception>
implements ResultExceptionHandler<R, E> {
private final DestroyableContext listener;
extends UiExceptionHandler<E> implements ResultExceptionHandler<R, E> {
protected UiResultExceptionHandler(DestroyableContext listener) {
this.listener = listener;
super(listener);
}
@Override
@@ -23,19 +26,7 @@ public abstract class UiResultExceptionHandler<R, E extends Exception>
});
}
@Override
public void onException(final E exception) {
listener.runOnUiThreadUnlessDestroyed(new Runnable() {
@Override
public void run() {
onExceptionUi(exception);
}
});
}
@UiThread
public abstract void onResultUi(R result);
@UiThread
public abstract void onExceptionUi(E exception);
}

View File

@@ -17,6 +17,7 @@ import android.view.MenuItem;
import org.briarproject.R;
import org.briarproject.android.ActivityComponent;
import org.briarproject.android.controller.handler.UiExceptionHandler;
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
import org.briarproject.android.privategroup.conversation.GroupController.GroupListener;
import org.briarproject.android.privategroup.creation.GroupInviteActivity;
@@ -24,6 +25,8 @@ import org.briarproject.android.privategroup.memberlist.GroupMemberListActivity;
import org.briarproject.android.threaded.ThreadListActivity;
import org.briarproject.android.threaded.ThreadListController;
import org.briarproject.api.db.DbException;
import org.briarproject.api.nullsafety.MethodsNotNullByDefault;
import org.briarproject.api.nullsafety.ParametersNotNullByDefault;
import org.briarproject.api.privategroup.GroupMessageHeader;
import org.briarproject.api.privategroup.PrivateGroup;
@@ -33,6 +36,8 @@ import static android.support.v4.app.ActivityOptionsCompat.makeCustomAnimation;
import static android.view.View.GONE;
import static org.briarproject.api.privategroup.PrivateGroupConstants.MAX_GROUP_POST_BODY_LENGTH;
@MethodsNotNullByDefault
@ParametersNotNullByDefault
public class GroupActivity extends
ThreadListActivity<PrivateGroup, GroupMessageItem, GroupMessageHeader>
implements GroupListener, OnClickListener {
@@ -247,13 +252,9 @@ public class GroupActivity extends
@Override
public void onClick(DialogInterface dialog, int which) {
controller.deleteNamedGroup(
new UiResultExceptionHandler<Void, DbException>(this) {
@Override
public void onResultUi(Void v) {
// The activity is going to be destroyed by the
// GroupRemovedEvent being fired
}
new UiExceptionHandler<DbException>(this) {
// The activity is going to be destroyed by the
// GroupRemovedEvent being fired
@Override
public void onExceptionUi(DbException exception) {
// TODO proper error handling

View File

@@ -2,7 +2,6 @@ package org.briarproject.android.privategroup.creation;
import org.briarproject.R;
import org.briarproject.android.contactselection.ContactSelectorActivity;
import org.briarproject.android.contactselection.ContactSelectorController;
import org.briarproject.android.contactselection.SelectableContactItem;
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
import org.briarproject.android.sharing.BaseMessageFragment.MessageFragmentListener;

View File

@@ -1,6 +1,6 @@
package org.briarproject.android.privategroup.invitation;
import org.briarproject.android.controller.handler.ResultExceptionHandler;
import org.briarproject.android.controller.handler.ExceptionHandler;
import org.briarproject.android.sharing.InvitationControllerImpl;
import org.briarproject.api.contact.ContactId;
import org.briarproject.api.db.DatabaseExecutor;
@@ -10,8 +10,8 @@ import org.briarproject.api.event.EventBus;
import org.briarproject.api.event.GroupInvitationRequestReceivedEvent;
import org.briarproject.api.event.GroupInvitationResponseReceivedEvent;
import org.briarproject.api.lifecycle.LifecycleManager;
import org.briarproject.api.nullsafety.NotNullByDefault;
import org.briarproject.api.privategroup.PrivateGroup;
import org.briarproject.api.privategroup.PrivateGroupManager;
import org.briarproject.api.privategroup.invitation.GroupInvitationItem;
import org.briarproject.api.privategroup.invitation.GroupInvitationManager;
import org.briarproject.api.sync.ClientId;
@@ -24,20 +24,18 @@ import javax.inject.Inject;
import static java.util.logging.Level.WARNING;
import static org.briarproject.api.privategroup.PrivateGroupManager.CLIENT_ID;
@NotNullByDefault
public class GroupInvitationControllerImpl
extends InvitationControllerImpl<GroupInvitationItem>
implements GroupInvitationController {
private final PrivateGroupManager privateGroupManager;
private final GroupInvitationManager groupInvitationManager;
@Inject
GroupInvitationControllerImpl(@DatabaseExecutor Executor dbExecutor,
LifecycleManager lifecycleManager, EventBus eventBus,
PrivateGroupManager privateGroupManager,
GroupInvitationManager groupInvitationManager) {
super(dbExecutor, lifecycleManager, eventBus);
this.privateGroupManager = privateGroupManager;
this.groupInvitationManager = groupInvitationManager;
}
@@ -68,7 +66,7 @@ public class GroupInvitationControllerImpl
@Override
public void respondToInvitation(final GroupInvitationItem item,
final boolean accept,
final ResultExceptionHandler<Void, DbException> handler) {
final ExceptionHandler<DbException> handler) {
runOnDbThread(new Runnable() {
@Override
public void run() {

View File

@@ -4,6 +4,7 @@ import android.support.annotation.UiThread;
import org.briarproject.android.DestroyableContext;
import org.briarproject.android.controller.DbController;
import org.briarproject.android.controller.handler.ExceptionHandler;
import org.briarproject.android.controller.handler.ResultExceptionHandler;
import org.briarproject.api.db.DbException;
import org.briarproject.api.privategroup.GroupMessageHeader;
@@ -27,8 +28,7 @@ public interface GroupListController extends DbController {
void loadGroups(
ResultExceptionHandler<Collection<GroupItem>, DbException> result);
void removeGroup(GroupId g,
ResultExceptionHandler<Void, DbException> result);
void removeGroup(GroupId g, ExceptionHandler<DbException> result);
void loadAvailableGroups(
ResultExceptionHandler<Integer, DbException> result);

View File

@@ -4,6 +4,7 @@ import android.support.annotation.CallSuper;
import org.briarproject.android.api.AndroidNotificationManager;
import org.briarproject.android.controller.DbControllerImpl;
import org.briarproject.android.controller.handler.ExceptionHandler;
import org.briarproject.android.controller.handler.ResultExceptionHandler;
import org.briarproject.api.clients.MessageTracker.GroupCount;
import org.briarproject.api.db.DatabaseExecutor;
@@ -197,7 +198,7 @@ public class GroupListControllerImpl extends DbControllerImpl
@Override
public void removeGroup(final GroupId g,
final ResultExceptionHandler<Void, DbException> handler) {
final ExceptionHandler<DbException> handler) {
runOnDbThread(new Runnable() {
@Override
public void run() {
@@ -207,7 +208,6 @@ public class GroupListControllerImpl extends DbControllerImpl
long duration = System.currentTimeMillis() - now;
if (LOG.isLoggable(INFO))
LOG.info("Removing group took " + duration + " ms");
handler.onResult(null);
} catch (DbException e) {
if (LOG.isLoggable(WARNING))
LOG.log(WARNING, e.toString(), e);

View File

@@ -18,6 +18,7 @@ import android.view.ViewGroup;
import org.briarproject.R;
import org.briarproject.android.ActivityComponent;
import org.briarproject.android.controller.handler.UiExceptionHandler;
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
import org.briarproject.android.fragment.BaseFragment;
import org.briarproject.android.privategroup.creation.CreateGroupActivity;
@@ -26,6 +27,8 @@ import org.briarproject.android.privategroup.list.GroupListController.GroupListL
import org.briarproject.android.privategroup.list.GroupViewHolder.OnGroupRemoveClickListener;
import org.briarproject.android.view.BriarRecyclerView;
import org.briarproject.api.db.DbException;
import org.briarproject.api.nullsafety.MethodsNotNullByDefault;
import org.briarproject.api.nullsafety.ParametersNotNullByDefault;
import org.briarproject.api.privategroup.GroupMessageHeader;
import org.briarproject.api.sync.GroupId;
@@ -37,6 +40,8 @@ import javax.inject.Inject;
import static android.support.design.widget.Snackbar.LENGTH_INDEFINITE;
import static android.support.v4.app.ActivityOptionsCompat.makeCustomAnimation;
@MethodsNotNullByDefault
@ParametersNotNullByDefault
public class GroupListFragment extends BaseFragment implements
GroupListListener, OnGroupRemoveClickListener, OnClickListener {
@@ -56,8 +61,9 @@ public class GroupListFragment 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.list, container, false);
@@ -126,12 +132,8 @@ public class GroupListFragment extends BaseFragment implements
@Override
public void onGroupRemoveClick(GroupItem item) {
controller.removeGroup(item.getId(),
new UiResultExceptionHandler<Void, DbException>(this) {
@Override
public void onResultUi(Void result) {
// handled by GroupRemovedEvent and onGroupRemoved()
}
new UiExceptionHandler<DbException>(this) {
// result handled by GroupRemovedEvent and onGroupRemoved()
@Override
public void onExceptionUi(DbException exception) {
// TODO handle error

View File

@@ -1,6 +1,6 @@
package org.briarproject.android.sharing;
import org.briarproject.android.controller.handler.ResultExceptionHandler;
import org.briarproject.android.controller.handler.ExceptionHandler;
import org.briarproject.api.blogs.Blog;
import org.briarproject.api.blogs.BlogSharingManager;
import org.briarproject.api.contact.Contact;
@@ -10,6 +10,7 @@ import org.briarproject.api.event.BlogInvitationReceivedEvent;
import org.briarproject.api.event.Event;
import org.briarproject.api.event.EventBus;
import org.briarproject.api.lifecycle.LifecycleManager;
import org.briarproject.api.nullsafety.NotNullByDefault;
import org.briarproject.api.sharing.SharingInvitationItem;
import org.briarproject.api.sync.ClientId;
@@ -21,7 +22,7 @@ import javax.inject.Inject;
import static java.util.logging.Level.WARNING;
import static org.briarproject.api.blogs.BlogManager.CLIENT_ID;
@NotNullByDefault
public class BlogInvitationControllerImpl
extends InvitationControllerImpl<SharingInvitationItem>
implements BlogInvitationController {
@@ -59,7 +60,7 @@ public class BlogInvitationControllerImpl
@Override
public void respondToInvitation(final SharingInvitationItem item,
final boolean accept,
final ResultExceptionHandler<Void, DbException> handler) {
final ExceptionHandler<DbException> handler) {
runOnDbThread(new Runnable() {
@Override
public void run() {

View File

@@ -1,6 +1,6 @@
package org.briarproject.android.sharing;
import org.briarproject.android.controller.handler.ResultExceptionHandler;
import org.briarproject.android.controller.handler.ExceptionHandler;
import org.briarproject.api.contact.Contact;
import org.briarproject.api.db.DatabaseExecutor;
import org.briarproject.api.db.DbException;
@@ -10,6 +10,7 @@ import org.briarproject.api.event.ForumInvitationReceivedEvent;
import org.briarproject.api.forum.Forum;
import org.briarproject.api.forum.ForumSharingManager;
import org.briarproject.api.lifecycle.LifecycleManager;
import org.briarproject.api.nullsafety.NotNullByDefault;
import org.briarproject.api.sharing.SharingInvitationItem;
import org.briarproject.api.sync.ClientId;
@@ -21,6 +22,7 @@ import javax.inject.Inject;
import static java.util.logging.Level.WARNING;
import static org.briarproject.api.forum.ForumManager.CLIENT_ID;
@NotNullByDefault
public class ForumInvitationControllerImpl
extends InvitationControllerImpl<SharingInvitationItem>
implements ForumInvitationController {
@@ -58,7 +60,7 @@ public class ForumInvitationControllerImpl
@Override
public void respondToInvitation(final SharingInvitationItem item,
final boolean accept,
final ResultExceptionHandler<Void, DbException> handler) {
final ExceptionHandler<DbException> handler) {
runOnDbThread(new Runnable() {
@Override
public void run() {

View File

@@ -2,16 +2,20 @@ package org.briarproject.android.sharing;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.annotation.StringRes;
import android.support.v7.widget.LinearLayoutManager;
import android.widget.Toast;
import org.briarproject.R;
import org.briarproject.android.BriarActivity;
import org.briarproject.android.controller.handler.UiExceptionHandler;
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
import org.briarproject.android.sharing.InvitationController.InvitationListener;
import org.briarproject.android.view.BriarRecyclerView;
import org.briarproject.api.db.DbException;
import org.briarproject.api.nullsafety.MethodsNotNullByDefault;
import org.briarproject.api.nullsafety.ParametersNotNullByDefault;
import org.briarproject.api.sharing.InvitationItem;
import java.util.Collection;
@@ -20,6 +24,8 @@ import java.util.logging.Logger;
import static android.widget.Toast.LENGTH_SHORT;
import static org.briarproject.android.sharing.InvitationAdapter.InvitationClickListener;
@MethodsNotNullByDefault
@ParametersNotNullByDefault
public abstract class InvitationActivity<I extends InvitationItem>
extends BriarActivity
implements InvitationListener, InvitationClickListener<I> {
@@ -31,7 +37,7 @@ public abstract class InvitationActivity<I extends InvitationItem>
private BriarRecyclerView list;
@Override
public void onCreate(Bundle state) {
public void onCreate(@Nullable Bundle state) {
super.onCreate(state);
setContentView(R.layout.list);
@@ -101,12 +107,7 @@ public abstract class InvitationActivity<I extends InvitationItem>
protected void respondToInvitation(final I item,
final boolean accept) {
getController().respondToInvitation(item, accept,
new UiResultExceptionHandler<Void, DbException>(this) {
@Override
public void onResultUi(Void result) {
}
new UiExceptionHandler<DbException>(this) {
@Override
public void onExceptionUi(DbException exception) {
// TODO proper error handling

View File

@@ -1,12 +1,15 @@
package org.briarproject.android.sharing;
import org.briarproject.android.controller.ActivityLifecycleController;
import org.briarproject.android.controller.handler.ExceptionHandler;
import org.briarproject.android.controller.handler.ResultExceptionHandler;
import org.briarproject.api.db.DbException;
import org.briarproject.api.nullsafety.NotNullByDefault;
import org.briarproject.api.sharing.InvitationItem;
import java.util.Collection;
@NotNullByDefault
public interface InvitationController<I extends InvitationItem>
extends ActivityLifecycleController {
@@ -14,7 +17,7 @@ public interface InvitationController<I extends InvitationItem>
ResultExceptionHandler<Collection<I>, DbException> handler);
void respondToInvitation(I item, boolean accept,
ResultExceptionHandler<Void, DbException> handler);
ExceptionHandler<DbException> handler);
interface InvitationListener {

View File

@@ -5,7 +5,7 @@ import android.widget.Toast;
import org.briarproject.R;
import org.briarproject.android.ActivityComponent;
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
import org.briarproject.android.controller.handler.UiExceptionHandler;
import org.briarproject.api.contact.ContactId;
import org.briarproject.api.db.DbException;
import org.briarproject.api.nullsafety.MethodsNotNullByDefault;
@@ -56,12 +56,7 @@ public class ShareBlogActivity extends ShareActivity {
@Override
void share(Collection<ContactId> contacts, String msg) {
controller.share(groupId, contacts, msg,
new UiResultExceptionHandler<Void, DbException>(this) {
@Override
public void onResultUi(Void result) {
}
new UiExceptionHandler<DbException>(this) {
@Override
public void onExceptionUi(DbException exception) {
// TODO proper error handling

View File

@@ -2,7 +2,7 @@ package org.briarproject.android.sharing;
import org.briarproject.android.contactselection.ContactSelectorController;
import org.briarproject.android.contactselection.SelectableContactItem;
import org.briarproject.android.controller.handler.ResultExceptionHandler;
import org.briarproject.android.controller.handler.ExceptionHandler;
import org.briarproject.api.contact.ContactId;
import org.briarproject.api.db.DbException;
import org.briarproject.api.sync.GroupId;
@@ -13,6 +13,6 @@ public interface ShareBlogController
extends ContactSelectorController<SelectableContactItem> {
void share(GroupId g, Collection<ContactId> contacts, String msg,
ResultExceptionHandler<Void, DbException> handler);
ExceptionHandler<DbException> handler);
}

View File

@@ -2,7 +2,7 @@ package org.briarproject.android.sharing;
import org.briarproject.android.contactselection.ContactSelectorControllerImpl;
import org.briarproject.android.contactselection.SelectableContactItem;
import org.briarproject.android.controller.handler.ResultExceptionHandler;
import org.briarproject.android.controller.handler.ExceptionHandler;
import org.briarproject.api.blogs.BlogSharingManager;
import org.briarproject.api.contact.Contact;
import org.briarproject.api.contact.ContactId;
@@ -65,7 +65,7 @@ public class ShareBlogControllerImpl
@Override
public void share(final GroupId g, final Collection<ContactId> contacts,
final String msg,
final ResultExceptionHandler<Void, DbException> handler) {
final ExceptionHandler<DbException> handler) {
runOnDbThread(new Runnable() {
@Override
public void run() {

View File

@@ -5,7 +5,7 @@ import android.widget.Toast;
import org.briarproject.R;
import org.briarproject.android.ActivityComponent;
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
import org.briarproject.android.controller.handler.UiExceptionHandler;
import org.briarproject.api.contact.ContactId;
import org.briarproject.api.db.DbException;
import org.briarproject.api.nullsafety.MethodsNotNullByDefault;
@@ -57,12 +57,7 @@ public class ShareForumActivity extends ShareActivity {
@Override
void share(Collection<ContactId> contacts, String msg) {
controller.share(groupId, contacts, msg,
new UiResultExceptionHandler<Void, DbException>(this) {
@Override
public void onResultUi(Void result) {
}
new UiExceptionHandler<DbException>(this) {
@Override
public void onExceptionUi(DbException exception) {
// TODO proper error handling

View File

@@ -2,6 +2,7 @@ package org.briarproject.android.sharing;
import org.briarproject.android.contactselection.ContactSelectorController;
import org.briarproject.android.contactselection.SelectableContactItem;
import org.briarproject.android.controller.handler.ExceptionHandler;
import org.briarproject.android.controller.handler.ResultExceptionHandler;
import org.briarproject.api.contact.ContactId;
import org.briarproject.api.db.DbException;
@@ -13,6 +14,6 @@ public interface ShareForumController
extends ContactSelectorController<SelectableContactItem> {
void share(GroupId g, Collection<ContactId> contacts, String msg,
ResultExceptionHandler<Void, DbException> handler);
ExceptionHandler<DbException> handler);
}

View File

@@ -2,7 +2,7 @@ package org.briarproject.android.sharing;
import org.briarproject.android.contactselection.ContactSelectorControllerImpl;
import org.briarproject.android.contactselection.SelectableContactItem;
import org.briarproject.android.controller.handler.ResultExceptionHandler;
import org.briarproject.android.controller.handler.ExceptionHandler;
import org.briarproject.api.contact.Contact;
import org.briarproject.api.contact.ContactId;
import org.briarproject.api.contact.ContactManager;
@@ -65,7 +65,7 @@ public class ShareForumControllerImpl
@Override
public void share(final GroupId g, final Collection<ContactId> contacts,
final String msg,
final ResultExceptionHandler<Void, DbException> handler) {
final ExceptionHandler<DbException> handler) {
runOnDbThread(new Runnable() {
@Override
public void run() {

View File

@@ -5,6 +5,7 @@ import android.support.annotation.UiThread;
import org.briarproject.android.DestroyableContext;
import org.briarproject.android.controller.ActivityLifecycleController;
import org.briarproject.android.controller.handler.ExceptionHandler;
import org.briarproject.android.controller.handler.ResultExceptionHandler;
import org.briarproject.api.clients.NamedGroup;
import org.briarproject.api.clients.PostHeader;
@@ -31,7 +32,7 @@ public interface ThreadListController<G extends NamedGroup, I extends ThreadItem
void createAndStoreMessage(String body, @Nullable I parentItem,
ResultExceptionHandler<I, DbException> handler);
void deleteNamedGroup(ResultExceptionHandler<Void, DbException> handler);
void deleteNamedGroup(ExceptionHandler<DbException> handler);
interface ThreadListListener<H> extends DestroyableContext {
@UiThread

View File

@@ -5,11 +5,12 @@ import android.support.annotation.CallSuper;
import org.briarproject.android.api.AndroidNotificationManager;
import org.briarproject.android.controller.DbControllerImpl;
import org.briarproject.android.controller.handler.ExceptionHandler;
import org.briarproject.android.controller.handler.ResultExceptionHandler;
import org.briarproject.android.threaded.ThreadListController.ThreadListListener;
import org.briarproject.api.clients.ThreadedMessage;
import org.briarproject.api.clients.NamedGroup;
import org.briarproject.api.clients.PostHeader;
import org.briarproject.api.clients.ThreadedMessage;
import org.briarproject.api.crypto.CryptoExecutor;
import org.briarproject.api.db.DatabaseExecutor;
import org.briarproject.api.db.DbException;
@@ -265,8 +266,7 @@ public abstract class ThreadListControllerImpl<G extends NamedGroup, I extends T
protected abstract H addLocalMessage(M message) throws DbException;
@Override
public void deleteNamedGroup(
final ResultExceptionHandler<Void, DbException> handler) {
public void deleteNamedGroup(final ExceptionHandler<DbException> handler) {
runOnDbThread(new Runnable() {
@Override
public void run() {
@@ -277,8 +277,6 @@ public abstract class ThreadListControllerImpl<G extends NamedGroup, I extends T
long duration = System.currentTimeMillis() - now;
if (LOG.isLoggable(INFO))
LOG.info("Removing group took " + duration + " ms");
//noinspection ConstantConditions
handler.onResult(null);
} catch (DbException e) {
if (LOG.isLoggable(WARNING))
LOG.log(WARNING, e.toString(), e);