diff --git a/briar-android/AndroidManifest.xml b/briar-android/AndroidManifest.xml
index 19b30172ceb158bc44e769e04a9b5bd9f5e474ae..668b89f24c7d53ba5952a10a365e2a1fa07e58b2 100644
--- a/briar-android/AndroidManifest.xml
+++ b/briar-android/AndroidManifest.xml
@@ -123,7 +123,7 @@
 		</activity>
 
 		<activity
-			android:name=".android.privategroup.invitation.InvitationsGroupActivity"
+			android:name=".android.privategroup.invitation.GroupInvitationsActivity"
 			android:label="@string/groups_invitations_title"
 			android:parentActivityName=".android.NavDrawerActivity">
 			<meta-data
@@ -133,7 +133,7 @@
 		</activity>
 
 		<activity
-			android:name=".android.sharing.InvitationsForumActivity"
+			android:name=".android.sharing.ForumInvitationsActivity"
 			android:label="@string/forum_invitations_title"
 			android:parentActivityName=".android.NavDrawerActivity">
 			<meta-data
@@ -143,7 +143,7 @@
 		</activity>
 
 		<activity
-			android:name=".android.sharing.InvitationsBlogActivity"
+			android:name=".android.sharing.BlogInvitationsActivity"
 			android:label="@string/blogs_sharing_invitations_title"
 			android:parentActivityName=".android.contact.ConversationActivity">
 			<meta-data
@@ -175,7 +175,7 @@
 		</activity>
 
 		<activity
-			android:name=".android.sharing.ShareForumActivity"
+			android:name=".android.sharing.ForumShareActivity"
 			android:label="@string/activity_share_toolbar_header"
 			android:parentActivityName=".android.forum.ForumActivity"
 			android:windowSoftInputMode="adjustResize|stateHidden">
@@ -186,7 +186,7 @@
 		</activity>
 
 		<activity
-			android:name=".android.sharing.ShareBlogActivity"
+			android:name=".android.sharing.BlogShareActivity"
 			android:label="@string/activity_share_toolbar_header"
 			android:parentActivityName=".android.blogs.BlogActivity"
 			android:windowSoftInputMode="adjustResize|stateHidden">
@@ -197,7 +197,7 @@
 		</activity>
 
 		<activity
-			android:name=".android.sharing.SharingStatusForumActivity"
+			android:name=".android.sharing.ForumSharingStatusActivity"
 			android:label="@string/sharing_status"
 			android:parentActivityName=".android.forum.ForumActivity">
 			<meta-data
@@ -207,7 +207,7 @@
 		</activity>
 
 		<activity
-			android:name=".android.sharing.SharingStatusBlogActivity"
+			android:name=".android.sharing.BlogSharingStatusActivity"
 			android:label="@string/sharing_status"
 			android:parentActivityName=".android.blogs.BlogActivity">
 			<meta-data
diff --git a/briar-android/res/values/strings.xml b/briar-android/res/values/strings.xml
index c82dab5efc4d7ba57a0989d922fe034c24800248..878b281e48a5de9ec154e3b7b0ca69a2bf8467fe 100644
--- a/briar-android/res/values/strings.xml
+++ b/briar-android/res/values/strings.xml
@@ -171,8 +171,8 @@
 	<string name="groups_invitations_title">Group Invitations</string>
 	<string name="groups_invitations_invitation_sent">You have invited %1$s to your group "%2$s".</string>
 	<string name="groups_invitations_invitation_received">%1$s has invited you to join the group "%2$s".</string>
-	<string name="groups_invitations_joined">Joined Group</string>
-	<string name="groups_invitations_declined">Group Invitation Declined</string>
+	<string name="groups_invitations_joined">Joined group</string>
+	<string name="groups_invitations_declined">Group invitation declined</string>
 	<plurals name="groups_invitations_open">
 		<item quantity="one">%d open group invitation</item>
 		<item quantity="other">%d open group invitations</item>
diff --git a/briar-android/src/org/briarproject/android/ActivityComponent.java b/briar-android/src/org/briarproject/android/ActivityComponent.java
index 61889b113e2acf81fc90bee798213384ce069326..ef81325fcad3e5a8018a8cce27193e9011d38495 100644
--- a/briar-android/src/org/briarproject/android/ActivityComponent.java
+++ b/briar-android/src/org/briarproject/android/ActivityComponent.java
@@ -33,16 +33,16 @@ import org.briarproject.android.privategroup.creation.CreateGroupFragment;
 import org.briarproject.android.privategroup.conversation.GroupActivity;
 import org.briarproject.android.privategroup.creation.CreateGroupMessageFragment;
 import org.briarproject.android.privategroup.list.GroupListFragment;
-import org.briarproject.android.privategroup.invitation.InvitationsGroupActivity;
+import org.briarproject.android.privategroup.invitation.GroupInvitationsActivity;
+import org.briarproject.android.sharing.BlogShareActivity;
+import org.briarproject.android.sharing.BlogSharingStatusActivity;
 import org.briarproject.android.sharing.ContactSelectorFragment;
-import org.briarproject.android.sharing.InvitationsBlogActivity;
-import org.briarproject.android.sharing.InvitationsForumActivity;
-import org.briarproject.android.sharing.ShareBlogActivity;
-import org.briarproject.android.sharing.ShareBlogMessageFragment;
-import org.briarproject.android.sharing.ShareForumActivity;
-import org.briarproject.android.sharing.ShareForumMessageFragment;
-import org.briarproject.android.sharing.SharingStatusBlogActivity;
-import org.briarproject.android.sharing.SharingStatusForumActivity;
+import org.briarproject.android.sharing.BlogInvitationsActivity;
+import org.briarproject.android.sharing.ForumInvitationsActivity;
+import org.briarproject.android.sharing.ForumShareMessageFragment;
+import org.briarproject.android.sharing.ForumSharingStatusActivity;
+import org.briarproject.android.sharing.BlogShareMessageFragment;
+import org.briarproject.android.sharing.ForumShareActivity;
 import org.thoughtcrime.securesms.components.emoji.EmojiProvider;
 import org.thoughtcrime.securesms.components.emoji.RecentEmojiPageModel;
 
@@ -73,23 +73,23 @@ public interface ActivityComponent {
 
 	void inject(ConversationActivity activity);
 
-	void inject(InvitationsForumActivity activity);
+	void inject(ForumInvitationsActivity activity);
 
-	void inject(InvitationsBlogActivity activity);
+	void inject(BlogInvitationsActivity activity);
 
 	void inject(CreateGroupActivity activity);
 	void inject(GroupActivity activity);
-	void inject(InvitationsGroupActivity activity);
+	void inject(GroupInvitationsActivity activity);
 
 	void inject(CreateForumActivity activity);
 
-	void inject(ShareForumActivity activity);
+	void inject(ForumShareActivity activity);
 
-	void inject(ShareBlogActivity activity);
+	void inject(BlogShareActivity activity);
 
-	void inject(SharingStatusForumActivity activity);
+	void inject(ForumSharingStatusActivity activity);
 
-	void inject(SharingStatusBlogActivity activity);
+	void inject(BlogSharingStatusActivity activity);
 
 	void inject(ForumActivity activity);
 
@@ -133,8 +133,8 @@ public interface ActivityComponent {
 	void inject(ShowQrCodeFragment fragment);
 	void inject(ContactChooserFragment fragment);
 	void inject(ContactSelectorFragment fragment);
-	void inject(ShareForumMessageFragment fragment);
-	void inject(ShareBlogMessageFragment fragment);
+	void inject(ForumShareMessageFragment fragment);
+	void inject(BlogShareMessageFragment fragment);
 	void inject(IntroductionMessageFragment fragment);
 
 }
diff --git a/briar-android/src/org/briarproject/android/ActivityModule.java b/briar-android/src/org/briarproject/android/ActivityModule.java
index 39d460151a71f0e9014128da6503aec8d29b09c3..da179e4b60026bb2dccc60d5b4905bf8c3cf9b90 100644
--- a/briar-android/src/org/briarproject/android/ActivityModule.java
+++ b/briar-android/src/org/briarproject/android/ActivityModule.java
@@ -25,14 +25,14 @@ import org.briarproject.android.privategroup.conversation.GroupController;
 import org.briarproject.android.privategroup.conversation.GroupControllerImpl;
 import org.briarproject.android.privategroup.creation.CreateGroupController;
 import org.briarproject.android.privategroup.creation.CreateGroupControllerImpl;
-import org.briarproject.android.privategroup.invitation.InvitationsGroupController;
-import org.briarproject.android.privategroup.invitation.InvitationsGroupControllerImpl;
+import org.briarproject.android.privategroup.invitation.GroupInvitationsController;
+import org.briarproject.android.privategroup.invitation.GroupInvitationsControllerImpl;
 import org.briarproject.android.privategroup.list.GroupListController;
 import org.briarproject.android.privategroup.list.GroupListControllerImpl;
-import org.briarproject.android.sharing.InvitationsBlogController;
-import org.briarproject.android.sharing.InvitationsBlogControllerImpl;
-import org.briarproject.android.sharing.InvitationsForumController;
-import org.briarproject.android.sharing.InvitationsForumControllerImpl;
+import org.briarproject.android.sharing.BlogInvitationsController;
+import org.briarproject.android.sharing.BlogInvitationsControllerImpl;
+import org.briarproject.android.sharing.ForumInvitationsController;
+import org.briarproject.android.sharing.ForumInvitationsControllerImpl;
 
 import dagger.Module;
 import dagger.Provides;
@@ -125,8 +125,8 @@ public class ActivityModule {
 
 	@ActivityScope
 	@Provides
-	protected InvitationsGroupController provideInvitationsGroupController(
-			InvitationsGroupControllerImpl invitationsGroupController) {
+	protected GroupInvitationsController provideInvitationsGroupController(
+			GroupInvitationsControllerImpl invitationsGroupController) {
 		return invitationsGroupController;
 	}
 
@@ -140,16 +140,16 @@ public class ActivityModule {
 
 	@ActivityScope
 	@Provides
-	protected InvitationsForumController provideInvitationsForumController(
-			InvitationsForumControllerImpl invitationsForumController) {
+	protected ForumInvitationsController provideInvitationsForumController(
+			ForumInvitationsControllerImpl invitationsForumController) {
 		activity.addLifecycleController(invitationsForumController);
 		return invitationsForumController;
 	}
 
 	@ActivityScope
 	@Provides
-	protected InvitationsBlogController provideInvitationsBlogController(
-			InvitationsBlogControllerImpl invitationsBlogController) {
+	protected BlogInvitationsController provideInvitationsBlogController(
+			BlogInvitationsControllerImpl invitationsBlogController) {
 		activity.addLifecycleController(invitationsBlogController);
 		return invitationsBlogController;
 	}
diff --git a/briar-android/src/org/briarproject/android/blogs/BlogFragment.java b/briar-android/src/org/briarproject/android/blogs/BlogFragment.java
index 8809864d55e7103f684d1262bfcf017752b4a342..9627bf22a1357daf25065055541517564bf55223 100644
--- a/briar-android/src/org/briarproject/android/blogs/BlogFragment.java
+++ b/briar-android/src/org/briarproject/android/blogs/BlogFragment.java
@@ -23,8 +23,8 @@ 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.SharingStatusBlogActivity;
+import org.briarproject.android.sharing.BlogShareActivity;
+import org.briarproject.android.sharing.BlogSharingStatusActivity;
 import org.briarproject.android.view.BriarRecyclerView;
 import org.briarproject.api.blogs.BlogPostHeader;
 import org.briarproject.api.db.DbException;
@@ -157,14 +157,14 @@ public class BlogFragment extends BaseFragment implements
 						options.toBundle());
 				return true;
 			case R.id.action_blog_share:
-				Intent i2 = new Intent(getActivity(), ShareBlogActivity.class);
+				Intent i2 = new Intent(getActivity(), BlogShareActivity.class);
 				i2.setFlags(FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP);
 				i2.putExtra(GROUP_ID, groupId.getBytes());
 				startActivityForResult(i2, REQUEST_SHARE, options.toBundle());
 				return true;
 			case R.id.action_blog_sharing_status:
 				Intent i3 = new Intent(getActivity(),
-						SharingStatusBlogActivity.class);
+						BlogSharingStatusActivity.class);
 				i3.setFlags(FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP);
 				i3.putExtra(GROUP_ID, groupId.getBytes());
 				startActivity(i3, options.toBundle());
diff --git a/briar-android/src/org/briarproject/android/contact/ContactListFragment.java b/briar-android/src/org/briarproject/android/contact/ContactListFragment.java
index a5c7aef1df37550e929e0623da96b23029ab1448..9f5d23971e307f06a08e63055ab8c34aa957e530 100644
--- a/briar-android/src/org/briarproject/android/contact/ContactListFragment.java
+++ b/briar-android/src/org/briarproject/android/contact/ContactListFragment.java
@@ -22,6 +22,7 @@ import org.briarproject.android.api.AndroidNotificationManager;
 import org.briarproject.android.fragment.BaseFragment;
 import org.briarproject.android.keyagreement.KeyAgreementActivity;
 import org.briarproject.android.view.BriarRecyclerView;
+import org.briarproject.api.clients.BaseMessageHeader;
 import org.briarproject.api.clients.MessageTracker.GroupCount;
 import org.briarproject.api.contact.Contact;
 import org.briarproject.api.contact.ContactId;
@@ -270,39 +271,35 @@ public class ContactListFragment extends BaseFragment implements EventListener {
 			LOG.info("Private message received, updating item");
 			PrivateMessageReceivedEvent p = (PrivateMessageReceivedEvent) e;
 			PrivateMessageHeader h = p.getMessageHeader();
-			updateItem(p.getContactId(), ConversationItem.from(h));
+			updateItem(p.getContactId(), h);
 		} else if (e instanceof IntroductionRequestReceivedEvent) {
 			LOG.info("Introduction request received, updating item");
 			IntroductionRequestReceivedEvent m =
 					(IntroductionRequestReceivedEvent) e;
 			IntroductionRequest ir = m.getIntroductionRequest();
-			updateItem(m.getContactId(),
-					ConversationItem.from(getContext(), "", ir));
+			updateItem(m.getContactId(), ir);
 		} else if (e instanceof IntroductionResponseReceivedEvent) {
 			LOG.info("Introduction response received, updating item");
 			IntroductionResponseReceivedEvent m =
 					(IntroductionResponseReceivedEvent) e;
 			IntroductionResponse ir = m.getIntroductionResponse();
-			updateItem(m.getContactId(),
-					ConversationItem.from(getContext(), "", ir));
+			updateItem(m.getContactId(), ir);
 		} else if (e instanceof InvitationRequestReceivedEvent) {
 			LOG.info("Invitation Request received, update item");
 			InvitationRequestReceivedEvent m =
 					(InvitationRequestReceivedEvent) e;
 			InvitationRequest ir = m.getRequest();
-			updateItem(m.getContactId(),
-					ConversationItem.from(getContext(), "", ir));
+			updateItem(m.getContactId(), ir);
 		} else if (e instanceof InvitationResponseReceivedEvent) {
 			LOG.info("Invitation response received, updating item");
 			InvitationResponseReceivedEvent m =
 					(InvitationResponseReceivedEvent) e;
 			InvitationResponse ir = m.getResponse();
-			updateItem(m.getContactId(),
-					ConversationItem.from(getContext(), "", ir));
+			updateItem(m.getContactId(), ir);
 		}
 	}
 
-	private void updateItem(final ContactId c, final ConversationItem m) {
+	private void updateItem(final ContactId c, final BaseMessageHeader h) {
 		listener.runOnUiThreadUnlessDestroyed(new Runnable() {
 			@Override
 			public void run() {
@@ -310,7 +307,8 @@ public class ContactListFragment extends BaseFragment implements EventListener {
 				int position = adapter.findItemPosition(c);
 				ContactListItem item = adapter.getItemAt(position);
 				if (item != null) {
-					item.addMessage(m);
+					ConversationItem i = ConversationItem.from(getContext(), h);
+					item.addMessage(i);
 					adapter.updateItemAt(position, item);
 				}
 			}
diff --git a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
index ea618642f3361339c2d69a12310ac48dcfa74650..311bcd1c85bb03ac4e132a0c19776a5f6bc92623 100644
--- a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
+++ b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java
@@ -76,6 +76,7 @@ import org.briarproject.api.sharing.InvitationResponse;
 import org.briarproject.api.sync.GroupId;
 import org.briarproject.api.sync.MessageId;
 import org.briarproject.util.StringUtils;
+import org.jetbrains.annotations.NotNull;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -418,15 +419,13 @@ public class ConversationActivity extends BriarActivity
 		for (IntroductionMessage m : introductions) {
 			ConversationItem item;
 			if (m instanceof IntroductionRequest) {
+				IntroductionRequest i = (IntroductionRequest) m;
 				item = ConversationItem
-						.from(ConversationActivity.this,
-								contactName,
-								(IntroductionRequest) m);
+						.from(ConversationActivity.this, contactName, i);
 			} else {
+				IntroductionResponse i = (IntroductionResponse) m;
 				item = ConversationItem
-						.from(ConversationActivity.this,
-								contactName,
-								(IntroductionResponse) m);
+						.from(ConversationActivity.this, contactName, i);
 			}
 			items.add(item);
 		}
@@ -435,13 +434,11 @@ public class ConversationActivity extends BriarActivity
 			if (i instanceof InvitationRequest) {
 				InvitationRequest r = (InvitationRequest) i;
 				item = ConversationItem
-						.from(ConversationActivity.this,
-								contactName, r);
+						.from(ConversationActivity.this, contactName, r);
 			} else {
 				InvitationResponse r = (InvitationResponse) i;
 				item = ConversationItem
-						.from(ConversationActivity.this,
-								contactName, r);
+						.from(ConversationActivity.this, contactName, r);
 			}
 			items.add(item);
 		}
@@ -581,7 +578,7 @@ public class ConversationActivity extends BriarActivity
 				LOG.info("Introduction request received, adding...");
 				IntroductionRequest ir = event.getIntroductionRequest();
 				ConversationItem item =
-						ConversationRequestItem.from(this, contactName, ir);
+						ConversationItem.from(this, contactName, ir);
 				addConversationItem(item);
 			}
 		} else if (e instanceof IntroductionResponseReceivedEvent) {
@@ -836,7 +833,7 @@ public class ConversationActivity extends BriarActivity
 
 	@UiThread
 	@Override
-	public void respondToRequest(final ConversationRequestItem item,
+	public void respondToRequest(@NotNull final ConversationRequestItem item,
 			final boolean accept) {
 		int position = adapter.findItemPosition(item);
 		if (position != INVALID_POSITION) {
@@ -866,6 +863,7 @@ public class ConversationActivity extends BriarActivity
 							throw new IllegalArgumentException(
 									"Unknown Request Type");
 					}
+					loadMessages();
 				} catch (DbException | FormatException e) {
 					introductionResponseError();
 					if (LOG.isLoggable(WARNING))
@@ -884,28 +882,24 @@ public class ConversationActivity extends BriarActivity
 		} else {
 			introductionManager.declineIntroduction(contactId, sessionId, time);
 		}
-		loadMessages();
 	}
 
 	@DatabaseExecutor
 	private void respondToForumRequest(SessionId id, boolean accept)
 			throws DbException {
 		forumSharingManager.respondToInvitation(id, accept);
-		loadMessages();
 	}
 
 	@DatabaseExecutor
 	private void respondToBlogRequest(SessionId id, boolean accept)
 			throws DbException {
 		blogSharingManager.respondToInvitation(id, accept);
-		loadMessages();
 	}
 
 	@DatabaseExecutor
 	private void respondToGroupRequest(SessionId id, boolean accept)
 			throws DbException {
 		groupInvitationManager.respondToInvitation(id, accept);
-		loadMessages();
 	}
 
 	private void introductionResponseError() {
diff --git a/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java b/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java
index 85711eb6b2f682f5c80bcd624b6f4c799a2ebe3d..e368fa029b10dc0dfd2868b09ec760b92e89e74b 100644
--- a/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java
+++ b/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java
@@ -3,6 +3,7 @@ package org.briarproject.android.contact;
 import android.content.Context;
 import android.support.annotation.LayoutRes;
 import android.support.annotation.Nullable;
+import android.support.annotation.UiThread;
 import android.util.SparseArray;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -10,6 +11,7 @@ import android.view.ViewGroup;
 
 import org.briarproject.R;
 import org.briarproject.android.util.BriarAdapter;
+import org.briarproject.api.nullsafety.NotNullByDefault;
 
 class ConversationAdapter
 		extends BriarAdapter<ConversationItem, ConversationItemViewHolder> {
@@ -140,6 +142,8 @@ class ConversationAdapter
 		return messages;
 	}
 
+	@UiThread
+	@NotNullByDefault
 	interface RequestListener {
 		void respondToRequest(ConversationRequestItem item, boolean accept);
 	}
diff --git a/briar-android/src/org/briarproject/android/contact/ConversationItem.java b/briar-android/src/org/briarproject/android/contact/ConversationItem.java
index e687935f2dd58e0a0b5f7a7d82d4afc955fe2992..7d5416e5cd69b6981b46a429a1f6c643f40a2446 100644
--- a/briar-android/src/org/briarproject/android/contact/ConversationItem.java
+++ b/briar-android/src/org/briarproject/android/contact/ConversationItem.java
@@ -7,6 +7,7 @@ import org.briarproject.R;
 import org.briarproject.android.contact.ConversationRequestItem.RequestType;
 import org.briarproject.api.blogs.BlogInvitationRequest;
 import org.briarproject.api.blogs.BlogInvitationResponse;
+import org.briarproject.api.clients.BaseMessageHeader;
 import org.briarproject.api.forum.ForumInvitationRequest;
 import org.briarproject.api.forum.ForumInvitationResponse;
 import org.briarproject.api.introduction.IntroductionRequest;
@@ -32,9 +33,9 @@ import static org.briarproject.android.contact.ConversationRequestItem.RequestTy
 @NotNullByDefault
 abstract class ConversationItem {
 
+	protected @Nullable String text;
 	final private MessageId id;
 	final private GroupId groupId;
-	protected @Nullable String text;
 	final private long time;
 
 	ConversationItem(MessageId id, GroupId groupId,
@@ -257,6 +258,27 @@ abstract class ConversationItem {
 		}
 	}
 
+	/**
+	 * This method should not be used to display the resulting ConversationItem
+	 * in the UI, but only to update list information based on the
+	 * BaseMessageHeader.
+	 **/
+	static ConversationItem from(Context ctx, BaseMessageHeader h) {
+		if (h instanceof PrivateMessageHeader) {
+			return from((PrivateMessageHeader) h);
+		} else if(h instanceof IntroductionRequest) {
+			return from(ctx, "", (IntroductionRequest) h);
+		} else if(h instanceof IntroductionResponse) {
+			return from(ctx, "", (IntroductionResponse) h);
+		} else if(h instanceof InvitationRequest) {
+			return from(ctx, "", (InvitationRequest) h);
+		} else if(h instanceof InvitationResponse) {
+			return from(ctx, "", (InvitationResponse) h);
+		} else {
+			throw new IllegalArgumentException("Unknown message header");
+		}
+	}
+
 	interface PartialItem {
 
 		@Nullable
diff --git a/briar-android/src/org/briarproject/android/forum/ForumActivity.java b/briar-android/src/org/briarproject/android/forum/ForumActivity.java
index 12487efc946fa28c551df033daf29f9a76920687..70ac435ef9bcf10a7f0c648b9245cc47a8ee5ecd 100644
--- a/briar-android/src/org/briarproject/android/forum/ForumActivity.java
+++ b/briar-android/src/org/briarproject/android/forum/ForumActivity.java
@@ -18,8 +18,8 @@ import android.widget.Toast;
 import org.briarproject.R;
 import org.briarproject.android.ActivityComponent;
 import org.briarproject.android.controller.handler.UiResultExceptionHandler;
-import org.briarproject.android.sharing.ShareForumActivity;
-import org.briarproject.android.sharing.SharingStatusForumActivity;
+import org.briarproject.android.sharing.ForumShareActivity;
+import org.briarproject.android.sharing.ForumSharingStatusActivity;
 import org.briarproject.android.threaded.ThreadListActivity;
 import org.briarproject.android.threaded.ThreadListController;
 import org.briarproject.api.db.DbException;
@@ -107,14 +107,14 @@ public class ForumActivity extends
 				showTextInput(null);
 				return true;
 			case R.id.action_forum_share:
-				Intent i2 = new Intent(this, ShareForumActivity.class);
+				Intent i2 = new Intent(this, ForumShareActivity.class);
 				i2.setFlags(FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP);
 				i2.putExtra(GROUP_ID, groupId.getBytes());
 				ActivityCompat.startActivityForResult(this, i2,
 						REQUEST_FORUM_SHARED, options.toBundle());
 				return true;
 			case R.id.action_forum_sharing_status:
-				Intent i3 = new Intent(this, SharingStatusForumActivity.class);
+				Intent i3 = new Intent(this, ForumSharingStatusActivity.class);
 				i3.setFlags(FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP);
 				i3.putExtra(GROUP_ID, groupId.getBytes());
 				ActivityCompat.startActivity(this, i3, options.toBundle());
diff --git a/briar-android/src/org/briarproject/android/forum/ForumListFragment.java b/briar-android/src/org/briarproject/android/forum/ForumListFragment.java
index 779fac49bbaaa86dbcf7a3d3d062c10308d193ff..5fb34c4c2b794695f0e4fb2f5748f505f4f00a66 100644
--- a/briar-android/src/org/briarproject/android/forum/ForumListFragment.java
+++ b/briar-android/src/org/briarproject/android/forum/ForumListFragment.java
@@ -18,7 +18,7 @@ import org.briarproject.R;
 import org.briarproject.android.ActivityComponent;
 import org.briarproject.android.api.AndroidNotificationManager;
 import org.briarproject.android.fragment.BaseEventFragment;
-import org.briarproject.android.sharing.InvitationsForumActivity;
+import org.briarproject.android.sharing.ForumInvitationsActivity;
 import org.briarproject.android.view.BriarRecyclerView;
 import org.briarproject.api.clients.MessageTracker.GroupCount;
 import org.briarproject.api.db.DbException;
@@ -286,7 +286,7 @@ public class ForumListFragment extends BaseEventFragment implements
 	@Override
 	public void onClick(View view) {
 		// snackbar click
-		Intent i = new Intent(getContext(), InvitationsForumActivity.class);
+		Intent i = new Intent(getContext(), ForumInvitationsActivity.class);
 		startActivity(i);
 	}
 }
diff --git a/briar-android/src/org/briarproject/android/privategroup/invitation/InvitationGroupAdapter.java b/briar-android/src/org/briarproject/android/privategroup/invitation/GroupInvitationAdapter.java
similarity index 91%
rename from briar-android/src/org/briarproject/android/privategroup/invitation/InvitationGroupAdapter.java
rename to briar-android/src/org/briarproject/android/privategroup/invitation/GroupInvitationAdapter.java
index 7a53d48bd67a1a6206a8e4b4033dcdeb258b330f..9c818b68070b26af9db47e26e71e88b8e02dd030 100644
--- a/briar-android/src/org/briarproject/android/privategroup/invitation/InvitationGroupAdapter.java
+++ b/briar-android/src/org/briarproject/android/privategroup/invitation/GroupInvitationAdapter.java
@@ -6,10 +6,10 @@ import android.view.ViewGroup;
 import org.briarproject.android.sharing.InvitationAdapter;
 import org.briarproject.api.privategroup.invitation.GroupInvitationItem;
 
-class InvitationGroupAdapter extends
+class GroupInvitationAdapter extends
 		InvitationAdapter<GroupInvitationItem, GroupInvitationViewHolder> {
 
-	InvitationGroupAdapter(Context ctx,
+	GroupInvitationAdapter(Context ctx,
 			InvitationClickListener<GroupInvitationItem> listener) {
 		super(ctx, GroupInvitationItem.class, listener);
 	}
diff --git a/briar-android/src/org/briarproject/android/privategroup/invitation/InvitationsGroupActivity.java b/briar-android/src/org/briarproject/android/privategroup/invitation/GroupInvitationsActivity.java
similarity index 79%
rename from briar-android/src/org/briarproject/android/privategroup/invitation/InvitationsGroupActivity.java
rename to briar-android/src/org/briarproject/android/privategroup/invitation/GroupInvitationsActivity.java
index 2815e6fb391b509a3d85cccab7b92a80762e52ce..97b8f5d3d9495254ea875b26acd01859870c5069 100644
--- a/briar-android/src/org/briarproject/android/privategroup/invitation/InvitationsGroupActivity.java
+++ b/briar-android/src/org/briarproject/android/privategroup/invitation/GroupInvitationsActivity.java
@@ -12,11 +12,11 @@ import javax.inject.Inject;
 
 import static org.briarproject.android.sharing.InvitationAdapter.InvitationClickListener;
 
-public class InvitationsGroupActivity
+public class GroupInvitationsActivity
 		extends InvitationsActivity<GroupInvitationItem> {
 
 	@Inject
-	protected InvitationsGroupController controller;
+	protected GroupInvitationsController controller;
 
 	@Override
 	public void injectActivity(ActivityComponent component) {
@@ -24,14 +24,14 @@ public class InvitationsGroupActivity
 	}
 
 	@Override
-	protected InvitationsGroupController getController() {
+	protected GroupInvitationsController getController() {
 		return controller;
 	}
 
 	@Override
 	protected InvitationAdapter<GroupInvitationItem, ?> getAdapter(Context ctx,
-			InvitationClickListener listener) {
-		return new InvitationGroupAdapter(ctx, listener);
+			InvitationClickListener<GroupInvitationItem> listener) {
+		return new GroupInvitationAdapter(ctx, listener);
 	}
 
 	@Override
diff --git a/briar-android/src/org/briarproject/android/privategroup/invitation/InvitationsGroupController.java b/briar-android/src/org/briarproject/android/privategroup/invitation/GroupInvitationsController.java
similarity index 85%
rename from briar-android/src/org/briarproject/android/privategroup/invitation/InvitationsGroupController.java
rename to briar-android/src/org/briarproject/android/privategroup/invitation/GroupInvitationsController.java
index f158064ba56b2c612c88af7eb782c076de277c23..c50c805a19babc0be5e5072d8e0b86bd5e03fd53 100644
--- a/briar-android/src/org/briarproject/android/privategroup/invitation/InvitationsGroupController.java
+++ b/briar-android/src/org/briarproject/android/privategroup/invitation/GroupInvitationsController.java
@@ -3,6 +3,6 @@ package org.briarproject.android.privategroup.invitation;
 import org.briarproject.android.sharing.InvitationsController;
 import org.briarproject.api.privategroup.invitation.GroupInvitationItem;
 
-public interface InvitationsGroupController
+public interface GroupInvitationsController
 		extends InvitationsController<GroupInvitationItem> {
 }
diff --git a/briar-android/src/org/briarproject/android/privategroup/invitation/InvitationsGroupControllerImpl.java b/briar-android/src/org/briarproject/android/privategroup/invitation/GroupInvitationsControllerImpl.java
similarity index 94%
rename from briar-android/src/org/briarproject/android/privategroup/invitation/InvitationsGroupControllerImpl.java
rename to briar-android/src/org/briarproject/android/privategroup/invitation/GroupInvitationsControllerImpl.java
index 0bde16e851464ac74970f8f2cfcdd944e05c730c..4a78d4401ccabe8fe47b70b10b8153ee2947f06a 100644
--- a/briar-android/src/org/briarproject/android/privategroup/invitation/InvitationsGroupControllerImpl.java
+++ b/briar-android/src/org/briarproject/android/privategroup/invitation/GroupInvitationsControllerImpl.java
@@ -22,15 +22,15 @@ import javax.inject.Inject;
 
 import static java.util.logging.Level.WARNING;
 
-public class InvitationsGroupControllerImpl
+public class GroupInvitationsControllerImpl
 		extends InvitationsControllerImpl<GroupInvitationItem>
-		implements InvitationsGroupController {
+		implements GroupInvitationsController {
 
 	private final PrivateGroupManager privateGroupManager;
 	private final GroupInvitationManager groupInvitationManager;
 
 	@Inject
-	InvitationsGroupControllerImpl(@DatabaseExecutor Executor dbExecutor,
+	GroupInvitationsControllerImpl(@DatabaseExecutor Executor dbExecutor,
 			LifecycleManager lifecycleManager, EventBus eventBus,
 			PrivateGroupManager privateGroupManager,
 			GroupInvitationManager groupInvitationManager) {
diff --git a/briar-android/src/org/briarproject/android/privategroup/list/GroupListFragment.java b/briar-android/src/org/briarproject/android/privategroup/list/GroupListFragment.java
index 597e8b120536128eee53d44fe65c0c65c197d045..b97d51bf57046191fc750a98ddf6912d150c1338 100644
--- a/briar-android/src/org/briarproject/android/privategroup/list/GroupListFragment.java
+++ b/briar-android/src/org/briarproject/android/privategroup/list/GroupListFragment.java
@@ -21,7 +21,7 @@ import org.briarproject.android.ActivityComponent;
 import org.briarproject.android.controller.handler.UiResultExceptionHandler;
 import org.briarproject.android.fragment.BaseFragment;
 import org.briarproject.android.privategroup.creation.CreateGroupActivity;
-import org.briarproject.android.privategroup.invitation.InvitationsGroupActivity;
+import org.briarproject.android.privategroup.invitation.GroupInvitationsActivity;
 import org.briarproject.android.privategroup.list.GroupListController.GroupListListener;
 import org.briarproject.android.privategroup.list.GroupViewHolder.OnGroupRemoveClickListener;
 import org.briarproject.android.view.BriarRecyclerView;
@@ -221,7 +221,7 @@ public class GroupListFragment extends BaseFragment implements
 	 */
 	@Override
 	public void onClick(View v) {
-		Intent i = new Intent(getContext(), InvitationsGroupActivity.class);
+		Intent i = new Intent(getContext(), GroupInvitationsActivity.class);
 		ActivityOptionsCompat options =
 				makeCustomAnimation(getActivity(),
 						android.R.anim.slide_in_left,
diff --git a/briar-android/src/org/briarproject/android/sharing/InvitationsBlogActivity.java b/briar-android/src/org/briarproject/android/sharing/BlogInvitationsActivity.java
similarity index 85%
rename from briar-android/src/org/briarproject/android/sharing/InvitationsBlogActivity.java
rename to briar-android/src/org/briarproject/android/sharing/BlogInvitationsActivity.java
index da7d014e0811ad1d2687a0f9070c64f6b42e71ca..542c0be7a946dfad08ca7c83fe83bd07049c4a48 100644
--- a/briar-android/src/org/briarproject/android/sharing/InvitationsBlogActivity.java
+++ b/briar-android/src/org/briarproject/android/sharing/BlogInvitationsActivity.java
@@ -10,11 +10,11 @@ import javax.inject.Inject;
 
 import static org.briarproject.android.sharing.InvitationAdapter.InvitationClickListener;
 
-public class InvitationsBlogActivity
+public class BlogInvitationsActivity
 		extends InvitationsActivity<SharingInvitationItem> {
 
 	@Inject
-	InvitationsBlogController controller;
+	BlogInvitationsController controller;
 
 	@Override
 	public void injectActivity(ActivityComponent component) {
@@ -28,7 +28,8 @@ public class InvitationsBlogActivity
 
 	@Override
 	protected InvitationAdapter<SharingInvitationItem, ?> getAdapter(
-			Context ctx, InvitationClickListener listener) {
+			Context ctx,
+			InvitationClickListener<SharingInvitationItem> listener) {
 		return new SharingInvitationAdapter(ctx, listener);
 	}
 
diff --git a/briar-android/src/org/briarproject/android/sharing/InvitationsBlogController.java b/briar-android/src/org/briarproject/android/sharing/BlogInvitationsController.java
similarity index 79%
rename from briar-android/src/org/briarproject/android/sharing/InvitationsBlogController.java
rename to briar-android/src/org/briarproject/android/sharing/BlogInvitationsController.java
index 4efcff5cf39b305d146e1400973fdeecd345d16b..057069c85be16210cb90b39b77a81bd8281e4396 100644
--- a/briar-android/src/org/briarproject/android/sharing/InvitationsBlogController.java
+++ b/briar-android/src/org/briarproject/android/sharing/BlogInvitationsController.java
@@ -2,6 +2,6 @@ package org.briarproject.android.sharing;
 
 import org.briarproject.api.sharing.SharingInvitationItem;
 
-public interface InvitationsBlogController
+public interface BlogInvitationsController
 		extends InvitationsController<SharingInvitationItem> {
 }
diff --git a/briar-android/src/org/briarproject/android/sharing/InvitationsBlogControllerImpl.java b/briar-android/src/org/briarproject/android/sharing/BlogInvitationsControllerImpl.java
similarity index 94%
rename from briar-android/src/org/briarproject/android/sharing/InvitationsBlogControllerImpl.java
rename to briar-android/src/org/briarproject/android/sharing/BlogInvitationsControllerImpl.java
index 024109f7edffdf7891d0f52caa913dfc06ec9d21..56e2a6ca1d0c35f0aa1d565e8d415153001984b3 100644
--- a/briar-android/src/org/briarproject/android/sharing/InvitationsBlogControllerImpl.java
+++ b/briar-android/src/org/briarproject/android/sharing/BlogInvitationsControllerImpl.java
@@ -21,15 +21,15 @@ import javax.inject.Inject;
 
 import static java.util.logging.Level.WARNING;
 
-public class InvitationsBlogControllerImpl
+public class BlogInvitationsControllerImpl
 		extends InvitationsControllerImpl<SharingInvitationItem>
-		implements InvitationsBlogController {
+		implements BlogInvitationsController {
 
 	private final BlogManager blogManager;
 	private final BlogSharingManager blogSharingManager;
 
 	@Inject
-	InvitationsBlogControllerImpl(@DatabaseExecutor Executor dbExecutor,
+	BlogInvitationsControllerImpl(@DatabaseExecutor Executor dbExecutor,
 			LifecycleManager lifecycleManager, EventBus eventBus,
 			BlogManager blogManager, BlogSharingManager blogSharingManager) {
 		super(dbExecutor, lifecycleManager, eventBus);
diff --git a/briar-android/src/org/briarproject/android/sharing/ShareBlogActivity.java b/briar-android/src/org/briarproject/android/sharing/BlogShareActivity.java
similarity index 92%
rename from briar-android/src/org/briarproject/android/sharing/ShareBlogActivity.java
rename to briar-android/src/org/briarproject/android/sharing/BlogShareActivity.java
index 7d5cdeef3e63ae5e211dc9dabbe283bafd0f654f..d885c24b578c5e889ea286e5eed8b23624fe09e2 100644
--- a/briar-android/src/org/briarproject/android/sharing/ShareBlogActivity.java
+++ b/briar-android/src/org/briarproject/android/sharing/BlogShareActivity.java
@@ -12,7 +12,7 @@ import javax.inject.Inject;
 
 import static org.briarproject.api.sync.SyncConstants.MAX_MESSAGE_BODY_LENGTH;
 
-public class ShareBlogActivity extends ShareActivity {
+public class BlogShareActivity extends ShareActivity {
 
 	// Fields that are accessed from background threads must be volatile
 	@Inject
@@ -20,7 +20,7 @@ public class ShareBlogActivity extends ShareActivity {
 
 	@Override
 	BaseMessageFragment getMessageFragment() {
-		return ShareBlogMessageFragment.newInstance();
+		return BlogShareMessageFragment.newInstance();
 	}
 
 	@Override
diff --git a/briar-android/src/org/briarproject/android/sharing/ShareBlogMessageFragment.java b/briar-android/src/org/briarproject/android/sharing/BlogShareMessageFragment.java
similarity index 80%
rename from briar-android/src/org/briarproject/android/sharing/ShareBlogMessageFragment.java
rename to briar-android/src/org/briarproject/android/sharing/BlogShareMessageFragment.java
index ccee4d8fecb028dcbf9e2ec970fd2115f7e5c2af..507ea17a2c3eeb766859a50f5631e369e6b6cb7b 100644
--- a/briar-android/src/org/briarproject/android/sharing/ShareBlogMessageFragment.java
+++ b/briar-android/src/org/briarproject/android/sharing/BlogShareMessageFragment.java
@@ -9,12 +9,12 @@ import android.view.ViewGroup;
 import org.briarproject.R;
 import org.briarproject.android.ActivityComponent;
 
-public class ShareBlogMessageFragment extends BaseMessageFragment {
+public class BlogShareMessageFragment extends BaseMessageFragment {
 
-	public final static String TAG = ShareBlogMessageFragment.class.getName();
+	public final static String TAG = BlogShareMessageFragment.class.getName();
 
-	public static ShareBlogMessageFragment newInstance() {
-		return new ShareBlogMessageFragment();
+	public static BlogShareMessageFragment newInstance() {
+		return new BlogShareMessageFragment();
 	}
 
 	@Override
diff --git a/briar-android/src/org/briarproject/android/sharing/SharingStatusBlogActivity.java b/briar-android/src/org/briarproject/android/sharing/BlogSharingStatusActivity.java
similarity index 93%
rename from briar-android/src/org/briarproject/android/sharing/SharingStatusBlogActivity.java
rename to briar-android/src/org/briarproject/android/sharing/BlogSharingStatusActivity.java
index 5c7be6deea8fe71ce783d8315b5e6fe406b200a4..fed2c2a5af49d217e6c9b1b8dfe9733a3b38b2d9 100644
--- a/briar-android/src/org/briarproject/android/sharing/SharingStatusBlogActivity.java
+++ b/briar-android/src/org/briarproject/android/sharing/BlogSharingStatusActivity.java
@@ -9,7 +9,7 @@ import java.util.Collection;
 
 import javax.inject.Inject;
 
-public class SharingStatusBlogActivity extends SharingStatusActivity {
+public class BlogSharingStatusActivity extends SharingStatusActivity {
 
 	// Fields that are accessed from background threads must be volatile
 	@Inject
diff --git a/briar-android/src/org/briarproject/android/sharing/InvitationsForumActivity.java b/briar-android/src/org/briarproject/android/sharing/ForumInvitationsActivity.java
similarity index 85%
rename from briar-android/src/org/briarproject/android/sharing/InvitationsForumActivity.java
rename to briar-android/src/org/briarproject/android/sharing/ForumInvitationsActivity.java
index 1c32ee1125e43d2fcb18001a1c755aedb74a8303..fdba34c445e8fbba3bc12ccedf704b1a07e0d786 100644
--- a/briar-android/src/org/briarproject/android/sharing/InvitationsForumActivity.java
+++ b/briar-android/src/org/briarproject/android/sharing/ForumInvitationsActivity.java
@@ -10,11 +10,11 @@ import javax.inject.Inject;
 
 import static org.briarproject.android.sharing.InvitationAdapter.InvitationClickListener;
 
-public class InvitationsForumActivity
+public class ForumInvitationsActivity
 		extends InvitationsActivity<SharingInvitationItem> {
 
 	@Inject
-	InvitationsForumController controller;
+	ForumInvitationsController controller;
 
 	@Override
 	public void injectActivity(ActivityComponent component) {
@@ -28,7 +28,8 @@ public class InvitationsForumActivity
 
 	@Override
 	protected InvitationAdapter<SharingInvitationItem, ?> getAdapter(
-			Context ctx, InvitationClickListener listener) {
+			Context ctx,
+			InvitationClickListener<SharingInvitationItem> listener) {
 		return new SharingInvitationAdapter(ctx, listener);
 	}
 
diff --git a/briar-android/src/org/briarproject/android/sharing/InvitationsForumController.java b/briar-android/src/org/briarproject/android/sharing/ForumInvitationsController.java
similarity index 78%
rename from briar-android/src/org/briarproject/android/sharing/InvitationsForumController.java
rename to briar-android/src/org/briarproject/android/sharing/ForumInvitationsController.java
index e58c4a41c75bb38d3aa2b40013a1f65733499c53..93470bb0d291978a286465ebcb83f0bf9b0be9d0 100644
--- a/briar-android/src/org/briarproject/android/sharing/InvitationsForumController.java
+++ b/briar-android/src/org/briarproject/android/sharing/ForumInvitationsController.java
@@ -2,6 +2,6 @@ package org.briarproject.android.sharing;
 
 import org.briarproject.api.sharing.SharingInvitationItem;
 
-public interface InvitationsForumController
+public interface ForumInvitationsController
 		extends InvitationsController<SharingInvitationItem> {
 }
diff --git a/briar-android/src/org/briarproject/android/sharing/InvitationsForumControllerImpl.java b/briar-android/src/org/briarproject/android/sharing/ForumInvitationsControllerImpl.java
similarity index 94%
rename from briar-android/src/org/briarproject/android/sharing/InvitationsForumControllerImpl.java
rename to briar-android/src/org/briarproject/android/sharing/ForumInvitationsControllerImpl.java
index 25f672460a4752760ab3a97a47c60464aadfced8..9bc371259f8944f396167d94e99a7867aa0db1bc 100644
--- a/briar-android/src/org/briarproject/android/sharing/InvitationsForumControllerImpl.java
+++ b/briar-android/src/org/briarproject/android/sharing/ForumInvitationsControllerImpl.java
@@ -21,15 +21,15 @@ import javax.inject.Inject;
 
 import static java.util.logging.Level.WARNING;
 
-public class InvitationsForumControllerImpl
+public class ForumInvitationsControllerImpl
 		extends InvitationsControllerImpl<SharingInvitationItem>
-		implements InvitationsForumController {
+		implements ForumInvitationsController {
 
 	private final ForumManager forumManager;
 	private final ForumSharingManager forumSharingManager;
 
 	@Inject
-	InvitationsForumControllerImpl(@DatabaseExecutor Executor dbExecutor,
+	ForumInvitationsControllerImpl(@DatabaseExecutor Executor dbExecutor,
 			LifecycleManager lifecycleManager, EventBus eventBus,
 			ForumManager forumManager,
 			ForumSharingManager forumSharingManager) {
diff --git a/briar-android/src/org/briarproject/android/sharing/ShareForumActivity.java b/briar-android/src/org/briarproject/android/sharing/ForumShareActivity.java
similarity index 92%
rename from briar-android/src/org/briarproject/android/sharing/ShareForumActivity.java
rename to briar-android/src/org/briarproject/android/sharing/ForumShareActivity.java
index 492e3615b23b4903a61d433d04779170e7e557f4..598d3b3dcc1b379c731c4eb5549abe9f2e821119 100644
--- a/briar-android/src/org/briarproject/android/sharing/ShareForumActivity.java
+++ b/briar-android/src/org/briarproject/android/sharing/ForumShareActivity.java
@@ -12,7 +12,7 @@ import javax.inject.Inject;
 
 import static org.briarproject.api.sync.SyncConstants.MAX_MESSAGE_BODY_LENGTH;
 
-public class ShareForumActivity extends ShareActivity {
+public class ForumShareActivity extends ShareActivity {
 
 	// Fields that are accessed from background threads must be volatile
 	@Inject
@@ -20,7 +20,7 @@ public class ShareForumActivity extends ShareActivity {
 
 	@Override
 	BaseMessageFragment getMessageFragment() {
-		return ShareForumMessageFragment.newInstance();
+		return ForumShareMessageFragment.newInstance();
 	}
 
 	@Override
diff --git a/briar-android/src/org/briarproject/android/sharing/ShareForumMessageFragment.java b/briar-android/src/org/briarproject/android/sharing/ForumShareMessageFragment.java
similarity index 79%
rename from briar-android/src/org/briarproject/android/sharing/ShareForumMessageFragment.java
rename to briar-android/src/org/briarproject/android/sharing/ForumShareMessageFragment.java
index a3faeb630de35101d606b194260be9aa3971c100..56f6b6d9ad5fd3a9616e665a39b0ec5a42529a94 100644
--- a/briar-android/src/org/briarproject/android/sharing/ShareForumMessageFragment.java
+++ b/briar-android/src/org/briarproject/android/sharing/ForumShareMessageFragment.java
@@ -9,12 +9,12 @@ import android.view.ViewGroup;
 import org.briarproject.R;
 import org.briarproject.android.ActivityComponent;
 
-public class ShareForumMessageFragment extends BaseMessageFragment {
+public class ForumShareMessageFragment extends BaseMessageFragment {
 
-	public final static String TAG = ShareForumMessageFragment.class.getName();
+	public final static String TAG = ForumShareMessageFragment.class.getName();
 
-	public static ShareForumMessageFragment newInstance() {
-		return new ShareForumMessageFragment();
+	public static ForumShareMessageFragment newInstance() {
+		return new ForumShareMessageFragment();
 	}
 
 	@Override
diff --git a/briar-android/src/org/briarproject/android/sharing/SharingStatusForumActivity.java b/briar-android/src/org/briarproject/android/sharing/ForumSharingStatusActivity.java
similarity index 93%
rename from briar-android/src/org/briarproject/android/sharing/SharingStatusForumActivity.java
rename to briar-android/src/org/briarproject/android/sharing/ForumSharingStatusActivity.java
index ef3b333a0a41b62a071069613106902ef2e647a4..be51ab2cf4648090fc4c0d23bdfc0fbc642578fb 100644
--- a/briar-android/src/org/briarproject/android/sharing/SharingStatusForumActivity.java
+++ b/briar-android/src/org/briarproject/android/sharing/ForumSharingStatusActivity.java
@@ -9,7 +9,7 @@ import java.util.Collection;
 
 import javax.inject.Inject;
 
-public class SharingStatusForumActivity extends SharingStatusActivity {
+public class ForumSharingStatusActivity extends SharingStatusActivity {
 
 	// Fields that are accessed from background threads must be volatile
 	@Inject
diff --git a/briar-android/src/org/briarproject/android/sharing/InvitationsActivity.java b/briar-android/src/org/briarproject/android/sharing/InvitationsActivity.java
index a8313f56d5aaf8789535be176fe8b335c99963ce..59c134236fe82b3be5bfc504c9483321ba2897cb 100644
--- a/briar-android/src/org/briarproject/android/sharing/InvitationsActivity.java
+++ b/briar-android/src/org/briarproject/android/sharing/InvitationsActivity.java
@@ -45,7 +45,7 @@ public abstract class InvitationsActivity<I extends InvitationItem>
 	}
 
 	abstract protected InvitationAdapter<I, ?> getAdapter(Context ctx,
-			InvitationClickListener listener);
+			InvitationClickListener<I> listener);
 
 	@Override
 	public void onStart() {