diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java
index 773208adce0dc2ef2e2e46f567936301b93d9b57..2507347306cf9c35f74c0a3e7f7c76fe7a15205b 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java
@@ -28,6 +28,7 @@ import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS;
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
 import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
 import static android.content.Intent.FLAG_ACTIVITY_SINGLE_TOP;
+import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_PASSWORD;
 
 @SuppressLint("Registered")
 public abstract class BriarActivity extends BaseActivity {
@@ -36,8 +37,6 @@ public abstract class BriarActivity extends BaseActivity {
 	public static final String GROUP_ID = "briar.GROUP_ID";
 	public static final String GROUP_NAME = "briar.GROUP_NAME";
 
-	public static final int REQUEST_PASSWORD = 1;
-
 	private static final Logger LOG =
 			Logger.getLogger(BriarActivity.class.getName());
 
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/RequestCodes.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/RequestCodes.java
new file mode 100644
index 0000000000000000000000000000000000000000..15f6211070af9e2eee9022789ebc185642d6e1ae
--- /dev/null
+++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/RequestCodes.java
@@ -0,0 +1,14 @@
+package org.briarproject.briar.android.activity;
+
+public interface RequestCodes {
+
+	int REQUEST_PASSWORD = 1;
+	int REQUEST_BLUETOOTH = 2;
+	int REQUEST_INTRODUCTION = 3;
+	int REQUEST_GROUP_INVITE = 4;
+	int REQUEST_SHARE_FORUM = 5;
+	int REQUEST_WRITE_BLOG_POST = 6;
+	int REQUEST_SHARE_BLOG = 7;
+	int REQUEST_RINGTONE = 8;
+
+}
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 bfd880303453754a0cb559882bb3fa2834360eb2..bfb689ef7013491aa1820ea4104a1a5135326bfb 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
@@ -22,9 +22,6 @@ import javax.inject.Inject;
 public class BlogActivity extends BriarActivity
 		implements BaseFragmentListener {
 
-	static final int REQUEST_WRITE_POST = 2;
-	static final int REQUEST_SHARE = 3;
-
 	@Inject
 	BlogController blogController;
 
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 2dcbd3766c25807309f83552d78d8434054401a9..aa2dfea2789bd2b544c11229d4ceef2648fed0c2 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
@@ -46,8 +46,8 @@ import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
 import static android.content.Intent.FLAG_ACTIVITY_SINGLE_TOP;
 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;
-import static org.briarproject.briar.android.blog.BlogActivity.REQUEST_WRITE_POST;
+import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_SHARE_BLOG;
+import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_WRITE_BLOG_POST;
 import static org.briarproject.briar.android.controller.SharingController.SharingListener;
 
 @UiThread
@@ -145,13 +145,13 @@ public class BlogFragment extends BaseFragment
 				Intent i = new Intent(getActivity(),
 						WriteBlogPostActivity.class);
 				i.putExtra(GROUP_ID, groupId.getBytes());
-				startActivityForResult(i, REQUEST_WRITE_POST);
+				startActivityForResult(i, REQUEST_WRITE_BLOG_POST);
 				return true;
 			case R.id.action_blog_share:
 				Intent i2 = new Intent(getActivity(), ShareBlogActivity.class);
 				i2.setFlags(FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP);
 				i2.putExtra(GROUP_ID, groupId.getBytes());
-				startActivityForResult(i2, REQUEST_SHARE);
+				startActivityForResult(i2, REQUEST_SHARE_BLOG);
 				return true;
 			case R.id.action_blog_sharing_status:
 				Intent i3 = new Intent(getActivity(),
@@ -172,10 +172,10 @@ public class BlogFragment extends BaseFragment
 	public void onActivityResult(int request, int result, Intent data) {
 		super.onActivityResult(request, result, data);
 
-		if (request == REQUEST_WRITE_POST && result == RESULT_OK) {
+		if (request == REQUEST_WRITE_BLOG_POST && result == RESULT_OK) {
 			displaySnackbar(R.string.blogs_blog_post_created, true);
 			loadBlogPosts(true);
-		} else if (request == REQUEST_SHARE && result == RESULT_OK) {
+		} else if (request == REQUEST_SHARE_BLOG && result == RESULT_OK) {
 			displaySnackbar(R.string.blogs_sharing_snackbar, false);
 		}
 	}
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 279e58668510b129f55b5d6b5638c8dcebead46c..1e33933199b688c319ecdb11f6a9f71ce39f7076 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
@@ -36,7 +36,7 @@ import javax.inject.Inject;
 import static android.app.Activity.RESULT_OK;
 import static android.support.design.widget.Snackbar.LENGTH_LONG;
 import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID;
-import static org.briarproject.briar.android.blog.BlogActivity.REQUEST_WRITE_POST;
+import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_WRITE_BLOG_POST;
 
 @UiThread
 @MethodsNotNullByDefault
@@ -96,7 +96,7 @@ public class FeedFragment extends BaseFragment implements
 		super.onActivityResult(requestCode, resultCode, data);
 
 		// The BlogPostAddedEvent arrives when the controller is not listening
-		if (requestCode == REQUEST_WRITE_POST && resultCode == RESULT_OK) {
+		if (requestCode == REQUEST_WRITE_BLOG_POST && resultCode == RESULT_OK) {
 			showSnackBar(R.string.blogs_blog_post_created);
 		}
 	}
@@ -174,7 +174,7 @@ public class FeedFragment extends BaseFragment implements
 				Intent i1 =
 						new Intent(getActivity(), WriteBlogPostActivity.class);
 				i1.putExtra(GROUP_ID, personalBlog.getId().getBytes());
-				startActivityForResult(i1, REQUEST_WRITE_POST);
+				startActivityForResult(i1, REQUEST_WRITE_BLOG_POST);
 				return true;
 			case R.id.action_rss_feeds_import:
 				Intent i2 =
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationActivity.java
index 2b7fdfc5333c1df5b8139efaa9dec5f611c3abfd..38041a6924e0a072f65363f5951f2c9d0d0e566e 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/ConversationActivity.java
@@ -103,6 +103,7 @@ import static android.support.v7.util.SortedList.INVALID_POSITION;
 import static android.widget.Toast.LENGTH_SHORT;
 import static java.util.logging.Level.INFO;
 import static java.util.logging.Level.WARNING;
+import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_INTRODUCTION;
 import static org.briarproject.briar.android.settings.SettingsFragment.SETTINGS_NAMESPACE;
 import static org.briarproject.briar.android.util.UiUtils.getAvatarTransitionName;
 import static org.briarproject.briar.android.util.UiUtils.getBulbTransitionName;
@@ -117,7 +118,6 @@ public class ConversationActivity extends BriarActivity
 
 	private static final Logger LOG =
 			Logger.getLogger(ConversationActivity.class.getName());
-	private static final int REQUEST_CODE_INTRODUCTION = 2;
 	private static final String SHOW_ONBOARDING_INTRODUCTION =
 			"showOnboardingIntroduction";
 
@@ -209,7 +209,7 @@ public class ConversationActivity extends BriarActivity
 	protected void onActivityResult(int request, int result, Intent data) {
 		super.onActivityResult(request, result, data);
 
-		if (request == REQUEST_CODE_INTRODUCTION && result == RESULT_OK) {
+		if (request == REQUEST_INTRODUCTION && result == RESULT_OK) {
 			Snackbar snackbar = Snackbar.make(list, R.string.introduction_sent,
 					Snackbar.LENGTH_SHORT);
 			snackbar.getView().setBackgroundResource(R.color.briar_primary);
@@ -259,7 +259,7 @@ public class ConversationActivity extends BriarActivity
 				if (contactId == null) return false;
 				Intent intent = new Intent(this, IntroductionActivity.class);
 				intent.putExtra(CONTACT_ID, contactId.getInt());
-				startActivityForResult(intent, REQUEST_CODE_INTRODUCTION);
+				startActivityForResult(intent, REQUEST_INTRODUCTION);
 				return true;
 			case R.id.action_social_remove_person:
 				askToRemoveContact();
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 5729e4c8b787c66b9685ba01eac73f477ba0a512..4833c5bf98624d214be2be9697694f7eb7b5728b 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
@@ -37,6 +37,7 @@ import javax.inject.Inject;
 import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
 import static android.content.Intent.FLAG_ACTIVITY_SINGLE_TOP;
 import static android.widget.Toast.LENGTH_SHORT;
+import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_SHARE_FORUM;
 import static org.briarproject.briar.api.forum.ForumConstants.MAX_FORUM_POST_BODY_LENGTH;
 
 @MethodsNotNullByDefault
@@ -45,8 +46,6 @@ public class ForumActivity extends
 		ThreadListActivity<Forum, ThreadItemAdapter<ForumItem>, ForumItem, ForumPostHeader>
 		implements ForumListener {
 
-	private static final int REQUEST_FORUM_SHARED = 3;
-
 	@Inject
 	ForumController forumController;
 
@@ -107,7 +106,7 @@ public class ForumActivity extends
 	protected void onActivityResult(int request, int result, Intent data) {
 		super.onActivityResult(request, result, data);
 
-		if (request == REQUEST_FORUM_SHARED && result == RESULT_OK) {
+		if (request == REQUEST_SHARE_FORUM && result == RESULT_OK) {
 			displaySnackbarShort(R.string.forum_shared_snackbar);
 		}
 	}
@@ -132,7 +131,7 @@ public class ForumActivity extends
 				Intent i2 = new Intent(this, ShareForumActivity.class);
 				i2.setFlags(FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP);
 				i2.putExtra(GROUP_ID, groupId.getBytes());
-				startActivityForResult(i2, REQUEST_FORUM_SHARED);
+				startActivityForResult(i2, REQUEST_SHARE_FORUM);
 				return true;
 			case R.id.action_forum_sharing_status:
 				Intent i3 = new Intent(this, ForumSharingStatusActivity.class);
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/invitation/AddContactActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/invitation/AddContactActivity.java
index fbb2c9d3b22c7f5d3d6d35d663bf687f7bc91307..1036382a31820d432e42385ffba3f4844fe97ca7 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/invitation/AddContactActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/invitation/AddContactActivity.java
@@ -25,6 +25,7 @@ import javax.inject.Inject;
 import static android.widget.Toast.LENGTH_LONG;
 import static java.util.logging.Level.INFO;
 import static java.util.logging.Level.WARNING;
+import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_BLUETOOTH;
 import static org.briarproject.briar.android.invitation.ConfirmationCodeView.ConfirmationState.CONNECTED;
 import static org.briarproject.briar.android.invitation.ConfirmationCodeView.ConfirmationState.DETAILS;
 import static org.briarproject.briar.android.invitation.ConfirmationCodeView.ConfirmationState.WAIT_FOR_CONTACT;
@@ -32,8 +33,6 @@ import static org.briarproject.briar.android.invitation.ConfirmationCodeView.Con
 public class AddContactActivity extends BriarActivity
 		implements InvitationListener {
 
-	static final int REQUEST_BLUETOOTH = 1;
-
 	private static final Logger LOG =
 			Logger.getLogger(AddContactActivity.class.getName());
 
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/invitation/ChooseIdentityView.java b/briar-android/src/main/java/org/briarproject/briar/android/invitation/ChooseIdentityView.java
index 3e6819da3dc86f7fedb84854b79e092ef5676979..d392a6ef2cca8ee7da7473c4e96cd4e1ec58c848 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/invitation/ChooseIdentityView.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/invitation/ChooseIdentityView.java
@@ -11,7 +11,7 @@ import org.briarproject.briar.R;
 
 import static android.bluetooth.BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE;
 import static android.bluetooth.BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION;
-import static org.briarproject.briar.android.invitation.AddContactActivity.REQUEST_BLUETOOTH;
+import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_BLUETOOTH;
 
 class ChooseIdentityView extends AddContactView implements OnClickListener {
 
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/invitation/ErrorView.java b/briar-android/src/main/java/org/briarproject/briar/android/invitation/ErrorView.java
index ab01e333c7c3ad8195aaceacd31a48d78a672396..0535a76020391401231a39873b99410abdcc508d 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/invitation/ErrorView.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/invitation/ErrorView.java
@@ -12,7 +12,7 @@ import org.briarproject.briar.R;
 
 import static android.bluetooth.BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE;
 import static android.bluetooth.BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION;
-import static org.briarproject.briar.android.invitation.AddContactActivity.REQUEST_BLUETOOTH;
+import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_BLUETOOTH;
 
 class ErrorView extends AddContactView implements OnClickListener {
 
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 1f6dab890927789d2bef1e9f1605fde3e9af7e08..87ce7e6c1a87ccd2353e844c9ed63ece783cb318 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
@@ -38,6 +38,7 @@ import javax.annotation.Nullable;
 import javax.inject.Inject;
 
 import static android.view.View.GONE;
+import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_GROUP_INVITE;
 import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_POST_BODY_LENGTH;
 
 @MethodsNotNullByDefault
@@ -46,8 +47,6 @@ public class GroupActivity extends
 		ThreadListActivity<PrivateGroup, GroupMessageAdapter, GroupMessageItem, GroupMessageHeader>
 		implements GroupListener, OnClickListener {
 
-	private final static int REQUEST_INVITE = 2;
-
 	@Inject
 	GroupController controller;
 
@@ -178,7 +177,7 @@ public class GroupActivity extends
 			case R.id.action_group_invite:
 				Intent i3 = new Intent(this, GroupInviteActivity.class);
 				i3.putExtra(GROUP_ID, groupId.getBytes());
-				startActivityForResult(i3, REQUEST_INVITE);
+				startActivityForResult(i3, REQUEST_GROUP_INVITE);
 				return true;
 			case R.id.action_group_leave:
 				showLeaveGroupDialog();
@@ -192,7 +191,7 @@ public class GroupActivity extends
 
 	@Override
 	protected void onActivityResult(int request, int result, Intent data) {
-		if (request == REQUEST_INVITE && result == RESULT_OK) {
+		if (request == REQUEST_GROUP_INVITE && result == RESULT_OK) {
 			displaySnackbarShort(R.string.groups_invitation_sent);
 		} else super.onActivityResult(request, result, data);
 	}
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
index a9b9f6690b67c0a197d9963826f234111183b3d6..1ac1a7568858baecac3aec653da985d170b3e09e 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
@@ -45,13 +45,13 @@ import static android.media.RingtoneManager.TYPE_NOTIFICATION;
 import static android.provider.Settings.System.DEFAULT_NOTIFICATION_URI;
 import static java.util.logging.Level.INFO;
 import static java.util.logging.Level.WARNING;
+import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_RINGTONE;
 
 @MethodsNotNullByDefault
 @ParametersNotNullByDefault
 public class SettingsFragment extends PreferenceFragmentCompat
 		implements EventListener, Preference.OnPreferenceChangeListener {
 
-	private static final int REQUEST_RINGTONE = 2;
 	public static final String SETTINGS_NAMESPACE = "android-ui";
 	public static final String PREF_NOTIFY_GROUP = "notifyGroupMessages";
 	public static final String PREF_NOTIFY_BLOG = "notifyBlogPosts";