From 0a9840997f8a69f0516dac8f82a2719b8d688792 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Wed, 21 Dec 2016 12:06:20 -0200 Subject: [PATCH] This adds a `handleDbException()` method to BaseActivity and a corresponding method for fragments that calls through to the activity. For now, the method just finishes the activity and NavDrawerActivity overrides it to do nothing, and all the error places marked with TODO that finish the activity call the method instead. That gives us zero functional improvement over the status quo, but it allows us to change the default behaviour easily, and then we can start thinking about which cases should have non-default behaviour. --- .../briar/android/activity/BaseActivity.java | 6 ++++++ .../briar/android/blog/BlogFragment.java | 15 +++++---------- .../briar/android/blog/BlogPostFragment.java | 3 +-- .../briar/android/blog/FeedFragment.java | 8 ++++---- .../briar/android/blog/FeedPostFragment.java | 2 +- .../briar/android/blog/ReblogFragment.java | 6 ++---- .../BaseContactSelectorFragment.java | 3 +-- .../briar/android/forum/ForumActivity.java | 3 +-- .../briar/android/fragment/BaseFragment.java | 9 +++++++++ .../android/navdrawer/NavDrawerActivity.java | 6 ++++++ .../conversation/GroupActivity.java | 9 +++------ .../creation/BaseGroupInviteActivity.java | 3 +-- .../creation/CreateGroupActivity.java | 3 +-- .../privategroup/list/GroupListFragment.java | 7 +++---- .../memberlist/GroupMemberListActivity.java | 3 +-- .../reveal/RevealContactsActivity.java | 8 +++----- .../android/sharing/InvitationActivity.java | 6 ++---- .../android/sharing/ShareBlogActivity.java | 2 +- .../android/sharing/ShareForumActivity.java | 2 +- .../android/threaded/ThreadListActivity.java | 17 ++++++----------- 20 files changed, 58 insertions(+), 63 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java index 699985ee6d..1953756c62 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java @@ -6,6 +6,7 @@ import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.inputmethod.InputMethodManager; +import org.briarproject.bramble.api.db.DbException; import org.briarproject.briar.android.AndroidComponent; import org.briarproject.briar.android.BriarApplication; import org.briarproject.briar.android.DestroyableContext; @@ -116,4 +117,9 @@ public abstract class BaseActivity extends AppCompatActivity Object o = getSystemService(INPUT_METHOD_SERVICE); ((InputMethodManager) o).hideSoftInputFromWindow(token, 0); } + + public void handleDbException(DbException e) { + supportFinishAfterTransition(); + } + } 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 2dcbd3766c..d3e8626d2d 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 @@ -205,8 +205,7 @@ public class BlogFragment extends BaseFragment @Override public void onExceptionUi(DbException exception) { - // TODO: Decide how to handle errors in the UI - finish(); + handleDbException(exception); } } ); @@ -234,8 +233,7 @@ public class BlogFragment extends BaseFragment @Override public void onExceptionUi(DbException exception) { - // TODO: Decide how to handle errors in the UI - finish(); + handleDbException(exception); } }); } @@ -254,8 +252,7 @@ public class BlogFragment extends BaseFragment @Override public void onExceptionUi(DbException exception) { - // TODO: Decide how to handle errors in the UI - finish(); + handleDbException(exception); } }); } @@ -277,8 +274,7 @@ public class BlogFragment extends BaseFragment @Override public void onExceptionUi(DbException exception) { - // TODO: Decide how to handle errors in the UI - finish(); + handleDbException(exception); } }); } @@ -373,8 +369,7 @@ public class BlogFragment extends BaseFragment @Override public void onExceptionUi(DbException exception) { - // TODO: Decide how to handle errors in the UI - finish(); + handleDbException(exception); } }); } 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 2655c7ff33..5c631f1772 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 @@ -55,8 +55,7 @@ public class BlogPostFragment extends BasePostFragment { @Override public void onExceptionUi(DbException exception) { - // TODO: Decide how to handle errors in the UI - finish(); + handleDbException(exception); } }); } 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 279e586685..7d2c89bd0d 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 @@ -129,7 +129,7 @@ public class FeedFragment extends BaseFragment implements @Override public void onExceptionUi(DbException exception) { - // TODO: Decide how to handle errors in the UI + handleDbException(exception); } }); } @@ -153,8 +153,8 @@ public class FeedFragment extends BaseFragment implements } @Override - public void onExceptionUi(DbException e) { - // TODO: Decide how to handle errors in the UI + public void onExceptionUi(DbException exception) { + handleDbException(exception); } }); list.startPeriodicUpdate(); @@ -211,7 +211,7 @@ public class FeedFragment extends BaseFragment implements @Override public void onExceptionUi(DbException exception) { - // TODO: Decide how to handle errors in the UI + handleDbException(exception); } } ); 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 233c5b99ca..54d4c52210 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 @@ -79,7 +79,7 @@ public class FeedPostFragment extends BasePostFragment { @Override public void onExceptionUi(DbException exception) { - // TODO: Decide how to handle errors in the UI + handleDbException(exception); } }); } 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 43064752fc..eda320d2f6 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 @@ -99,8 +99,7 @@ public class ReblogFragment extends BaseFragment implements TextInputListener { @Override public void onExceptionUi(DbException exception) { - // TODO - finish(); + handleDbException(exception); } }); } @@ -130,8 +129,7 @@ public class ReblogFragment extends BaseFragment implements TextInputListener { new UiExceptionHandler<DbException>(this) { @Override public void onExceptionUi(DbException exception) { - // TODO proper error handling - // do nothing, this fragment is gone already + handleDbException(exception); } }); finish(); 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 ec318ebe36..c7c10849d7 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 @@ -130,8 +130,7 @@ public abstract class BaseContactSelectorFragment<I extends SelectableContactIte @Override public void onExceptionUi(DbException exception) { - // TODO error handling - finish(); + handleDbException(exception); } }); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java index 5729e4c8b7..a5152fb9cc 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java @@ -192,8 +192,7 @@ public class ForumActivity extends @Override public void onExceptionUi(DbException exception) { - // TODO proper error handling - finish(); + handleDbException(exception); } }); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/fragment/BaseFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/fragment/BaseFragment.java index 46c7c01a91..7273a7f54f 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/fragment/BaseFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/fragment/BaseFragment.java @@ -8,6 +8,7 @@ import android.support.annotation.UiThread; import android.support.v4.app.Fragment; import android.view.MenuItem; +import org.briarproject.bramble.api.db.DbException; import org.briarproject.briar.android.DestroyableContext; import org.briarproject.briar.android.activity.ActivityComponent; @@ -71,6 +72,9 @@ public abstract class BaseFragment extends Fragment @UiThread void showNextFragment(BaseFragment f); + + @UiThread + void handleDbException(DbException e); } @CallSuper @@ -95,4 +99,9 @@ public abstract class BaseFragment extends Fragment listener.showNextFragment(f); } + @UiThread + protected void handleDbException(DbException e) { + listener.handleDbException(e); + } + } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java index 1a5398630e..f0ff34aedc 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java @@ -19,6 +19,7 @@ import android.widget.GridView; import android.widget.ImageView; import android.widget.TextView; +import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.plugin.BluetoothConstants; import org.briarproject.bramble.api.plugin.LanTcpConstants; import org.briarproject.bramble.api.plugin.TorConstants; @@ -246,6 +247,11 @@ public class NavDrawerActivity extends BriarActivity implements POP_BACK_STACK_INCLUSIVE); } + @Override + public void handleDbException(DbException e) { + // Do nothing for now + } + private void initializeTransports(final LayoutInflater inflater) { transports = new ArrayList<>(3); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java index 1f6dab8909..2542db31f7 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java @@ -117,8 +117,7 @@ public class GroupActivity extends @Override public void onExceptionUi(DbException exception) { - // TODO proper error handling - finish(); + handleDbException(exception); } }); } @@ -137,8 +136,7 @@ public class GroupActivity extends @Override public void onExceptionUi(DbException exception) { - // TODO proper error handling - finish(); + handleDbException(exception); } }); } @@ -276,8 +274,7 @@ public class GroupActivity extends // GroupRemovedEvent being fired @Override public void onExceptionUi(DbException exception) { - // TODO proper error handling - finish(); + handleDbException(exception); } }); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/BaseGroupInviteActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/BaseGroupInviteActivity.java index 30d64e95a1..315aed855b 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/BaseGroupInviteActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/BaseGroupInviteActivity.java @@ -43,9 +43,8 @@ public abstract class BaseGroupInviteActivity @Override public void onExceptionUi(DbException exception) { - // TODO proper error handling setResult(RESULT_CANCELED); - finish(); + handleDbException(exception); } }); return true; diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupActivity.java index 0f13bab833..5e7a64f564 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/creation/CreateGroupActivity.java @@ -58,8 +58,7 @@ public class CreateGroupActivity extends BaseGroupInviteActivity implements @Override public void onExceptionUi(DbException exception) { - // TODO proper error handling - finish(); + handleDbException(exception); } }); } 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 bea0ff2359..9fbed643c5 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 @@ -132,7 +132,7 @@ public class GroupListFragment extends BaseFragment implements // result handled by GroupRemovedEvent and onGroupRemoved() @Override public void onExceptionUi(DbException exception) { - // TODO handle error + handleDbException(exception); } }); } @@ -202,7 +202,7 @@ public class GroupListFragment extends BaseFragment implements @Override public void onExceptionUi(DbException exception) { - // TODO handle this error + handleDbException(exception); } }); } @@ -224,8 +224,7 @@ public class GroupListFragment extends BaseFragment implements @Override public void onExceptionUi(DbException exception) { - // TODO handle this error - finish(); + handleDbException(exception); } }); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/memberlist/GroupMemberListActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/memberlist/GroupMemberListActivity.java index 182a336d00..feadb3d516 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/memberlist/GroupMemberListActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/memberlist/GroupMemberListActivity.java @@ -67,8 +67,7 @@ public class GroupMemberListActivity extends BriarActivity { @Override public void onExceptionUi(DbException exception) { - // TODO proper error handling - finish(); + handleDbException(exception); } }); list.startPeriodicUpdate(); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/reveal/RevealContactsActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/reveal/RevealContactsActivity.java index 450b6e4ff1..778802f726 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/reveal/RevealContactsActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/reveal/RevealContactsActivity.java @@ -80,8 +80,7 @@ public class RevealContactsActivity extends ContactSelectorActivity @Override public void onExceptionUi(DbException exception) { - // TODO proper error handling - finish(); + handleDbException(exception); } }); } @@ -132,7 +131,7 @@ public class RevealContactsActivity extends ContactSelectorActivity new UiExceptionHandler<DbException>(this) { @Override public void onExceptionUi(DbException exception) { - // TODO proper error handling + handleDbException(exception); } }); } @@ -149,8 +148,7 @@ public class RevealContactsActivity extends ContactSelectorActivity new UiExceptionHandler<DbException>(this) { @Override public void onExceptionUi(DbException exception) { - // TODO proper error handling - finish(); + handleDbException(exception); } }); supportFinishAfterTransition(); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/sharing/InvitationActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/sharing/InvitationActivity.java index 1f755fe366..6f57eed9fe 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/sharing/InvitationActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/sharing/InvitationActivity.java @@ -97,8 +97,7 @@ public abstract class InvitationActivity<I extends InvitationItem> @Override public void onExceptionUi(DbException exception) { - // TODO proper error handling - finish(); + handleDbException(exception); } }); } @@ -111,8 +110,7 @@ public abstract class InvitationActivity<I extends InvitationItem> new UiExceptionHandler<DbException>(this) { @Override public void onExceptionUi(DbException exception) { - // TODO proper error handling - finish(); + handleDbException(exception); } }); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareBlogActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareBlogActivity.java index 1d6581e6b1..b9fbcbde54 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareBlogActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareBlogActivity.java @@ -56,10 +56,10 @@ public class ShareBlogActivity extends ShareActivity { new UiExceptionHandler<DbException>(this) { @Override public void onExceptionUi(DbException exception) { - // TODO proper error handling Toast.makeText(ShareBlogActivity.this, R.string.blogs_sharing_error, LENGTH_SHORT) .show(); + handleDbException(exception); } }); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareForumActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareForumActivity.java index dc16a239fb..b274991a1a 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareForumActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/sharing/ShareForumActivity.java @@ -56,10 +56,10 @@ public class ShareForumActivity extends ShareActivity { new UiExceptionHandler<DbException>(this) { @Override public void onExceptionUi(DbException exception) { - // TODO proper error handling Toast.makeText(ShareForumActivity.this, R.string.forum_share_error, LENGTH_SHORT) .show(); + handleDbException(exception); } }); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java index b1d937dda5..0f83203db9 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java @@ -114,8 +114,7 @@ public abstract class ThreadListActivity<G extends NamedGroup, A extends ThreadI @Override public void onExceptionUi(DbException exception) { - // TODO Proper error handling - finish(); + handleDbException(exception); } }); } @@ -147,8 +146,7 @@ public abstract class ThreadListActivity<G extends NamedGroup, A extends ThreadI @Override public void onExceptionUi(DbException exception) { - // TODO Proper error handling - finish(); + handleDbException(exception); } }); } @@ -165,9 +163,8 @@ public abstract class ThreadListActivity<G extends NamedGroup, A extends ThreadI } @Override - public void onExceptionUi(DbException e) { - // TODO Proper error handling - finish(); + public void onExceptionUi(DbException exception) { + handleDbException(exception); } }); } @@ -299,8 +296,7 @@ public abstract class ThreadListActivity<G extends NamedGroup, A extends ThreadI @Override public void onExceptionUi(DbException exception) { - // TODO add proper exception handling - finish(); + handleDbException(exception); } }; getController().createAndStoreMessage(text, replyItem, handler); @@ -323,8 +319,7 @@ public abstract class ThreadListActivity<G extends NamedGroup, A extends ThreadI @Override public void onExceptionUi(DbException exception) { - // TODO add proper exception handling - finish(); + handleDbException(exception); } }); } -- GitLab