Address review comments

This commit is contained in:
Torsten Grote
2016-10-28 15:15:36 -02:00
parent 7b627bb427
commit 2cc650d85f
39 changed files with 209 additions and 179 deletions

View File

@@ -123,7 +123,7 @@
</activity>
<activity
android:name=".android.privategroup.invitation.GroupInvitationsActivity"
android:name=".android.privategroup.invitation.GroupInvitationActivity"
android:label="@string/groups_invitations_title"
android:parentActivityName=".android.NavDrawerActivity">
<meta-data
@@ -133,7 +133,7 @@
</activity>
<activity
android:name=".android.sharing.ForumInvitationsActivity"
android:name=".android.sharing.ForumInvitationActivity"
android:label="@string/forum_invitations_title"
android:parentActivityName=".android.NavDrawerActivity">
<meta-data
@@ -143,7 +143,7 @@
</activity>
<activity
android:name=".android.sharing.BlogInvitationsActivity"
android:name=".android.sharing.BlogInvitationActivity"
android:label="@string/blogs_sharing_invitations_title"
android:parentActivityName=".android.contact.ConversationActivity">
<meta-data
@@ -175,7 +175,7 @@
</activity>
<activity
android:name=".android.sharing.ForumShareActivity"
android:name=".android.sharing.ShareForumActivity"
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.BlogShareActivity"
android:name=".android.sharing.ShareBlogActivity"
android:label="@string/activity_share_toolbar_header"
android:parentActivityName=".android.blogs.BlogActivity"
android:windowSoftInputMode="adjustResize|stateHidden">

View File

@@ -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.GroupInvitationsActivity;
import org.briarproject.android.sharing.BlogShareActivity;
import org.briarproject.android.privategroup.invitation.GroupInvitationActivity;
import org.briarproject.android.sharing.ShareBlogActivity;
import org.briarproject.android.sharing.BlogSharingStatusActivity;
import org.briarproject.android.sharing.ContactSelectorFragment;
import org.briarproject.android.sharing.BlogInvitationsActivity;
import org.briarproject.android.sharing.ForumInvitationsActivity;
import org.briarproject.android.sharing.ForumShareMessageFragment;
import org.briarproject.android.sharing.BlogInvitationActivity;
import org.briarproject.android.sharing.ForumInvitationActivity;
import org.briarproject.android.sharing.ShareForumActivity;
import org.briarproject.android.sharing.ShareForumMessageFragment;
import org.briarproject.android.sharing.ForumSharingStatusActivity;
import org.briarproject.android.sharing.BlogShareMessageFragment;
import org.briarproject.android.sharing.ForumShareActivity;
import org.briarproject.android.sharing.ShareBlogMessageFragment;
import org.thoughtcrime.securesms.components.emoji.EmojiProvider;
import org.thoughtcrime.securesms.components.emoji.RecentEmojiPageModel;
@@ -73,19 +73,19 @@ public interface ActivityComponent {
void inject(ConversationActivity activity);
void inject(ForumInvitationsActivity activity);
void inject(ForumInvitationActivity activity);
void inject(BlogInvitationsActivity activity);
void inject(BlogInvitationActivity activity);
void inject(CreateGroupActivity activity);
void inject(GroupActivity activity);
void inject(GroupInvitationsActivity activity);
void inject(GroupInvitationActivity activity);
void inject(CreateForumActivity activity);
void inject(ForumShareActivity activity);
void inject(ShareForumActivity activity);
void inject(BlogShareActivity activity);
void inject(ShareBlogActivity activity);
void inject(ForumSharingStatusActivity activity);
@@ -133,8 +133,8 @@ public interface ActivityComponent {
void inject(ShowQrCodeFragment fragment);
void inject(ContactChooserFragment fragment);
void inject(ContactSelectorFragment fragment);
void inject(ForumShareMessageFragment fragment);
void inject(BlogShareMessageFragment fragment);
void inject(ShareForumMessageFragment fragment);
void inject(ShareBlogMessageFragment fragment);
void inject(IntroductionMessageFragment fragment);
}

View File

@@ -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.GroupInvitationsController;
import org.briarproject.android.privategroup.invitation.GroupInvitationsControllerImpl;
import org.briarproject.android.privategroup.invitation.GroupInvitationController;
import org.briarproject.android.privategroup.invitation.GroupInvitationControllerImpl;
import org.briarproject.android.privategroup.list.GroupListController;
import org.briarproject.android.privategroup.list.GroupListControllerImpl;
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 org.briarproject.android.sharing.BlogInvitationController;
import org.briarproject.android.sharing.BlogInvitationControllerImpl;
import org.briarproject.android.sharing.ForumInvitationController;
import org.briarproject.android.sharing.ForumInvitationControllerImpl;
import dagger.Module;
import dagger.Provides;
@@ -125,9 +125,9 @@ public class ActivityModule {
@ActivityScope
@Provides
protected GroupInvitationsController provideInvitationsGroupController(
GroupInvitationsControllerImpl invitationsGroupController) {
return invitationsGroupController;
protected GroupInvitationController provideInvitationGroupController(
GroupInvitationControllerImpl groupInvitationController) {
return groupInvitationController;
}
@ActivityScope
@@ -140,18 +140,18 @@ public class ActivityModule {
@ActivityScope
@Provides
protected ForumInvitationsController provideInvitationsForumController(
ForumInvitationsControllerImpl invitationsForumController) {
activity.addLifecycleController(invitationsForumController);
return invitationsForumController;
protected ForumInvitationController provideInvitationForumController(
ForumInvitationControllerImpl forumInvitationController) {
activity.addLifecycleController(forumInvitationController);
return forumInvitationController;
}
@ActivityScope
@Provides
protected BlogInvitationsController provideInvitationsBlogController(
BlogInvitationsControllerImpl invitationsBlogController) {
activity.addLifecycleController(invitationsBlogController);
return invitationsBlogController;
protected BlogInvitationController provideInvitationBlogController(
BlogInvitationControllerImpl blogInvitationController) {
activity.addLifecycleController(blogInvitationController);
return blogInvitationController;
}
@ActivityScope

View File

@@ -23,7 +23,7 @@ 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.BlogShareActivity;
import org.briarproject.android.sharing.ShareBlogActivity;
import org.briarproject.android.sharing.BlogSharingStatusActivity;
import org.briarproject.android.view.BriarRecyclerView;
import org.briarproject.api.blogs.BlogPostHeader;
@@ -157,7 +157,7 @@ public class BlogFragment extends BaseFragment implements
options.toBundle());
return true;
case R.id.action_blog_share:
Intent i2 = new Intent(getActivity(), BlogShareActivity.class);
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, options.toBundle());

View File

@@ -6,7 +6,9 @@ import org.briarproject.api.identity.LocalAuthor;
import org.briarproject.api.sync.GroupId;
import org.jetbrains.annotations.NotNull;
// This class is NOT thread-safe
import javax.annotation.concurrent.NotThreadSafe;
@NotThreadSafe
public class ContactListItem {
private final Contact contact;
@@ -32,8 +34,7 @@ public class ContactListItem {
empty = empty && message == null;
if (message != null) {
if (message.getTime() > timestamp) timestamp = message.getTime();
if (message instanceof ConversationInItem &&
!((ConversationInItem) message).isRead())
if (!message.isRead())
unread++;
}
}

View File

@@ -497,9 +497,9 @@ public class ConversationActivity extends BriarActivity
private void markMessagesRead() {
Map<MessageId, GroupId> unread = new HashMap<>();
SparseArray<ConversationInItem> list = adapter.getIncomingMessages();
SparseArray<ConversationItem> list = adapter.getIncomingMessages();
for (int i = 0; i < list.size(); i++) {
ConversationInItem item = list.valueAt(i);
ConversationItem item = list.valueAt(i);
if (!item.isRead())
unread.put(item.getId(), item.getGroupId());
}

View File

@@ -27,19 +27,7 @@ class ConversationAdapter
@Override
public int getItemViewType(int position) {
ConversationItem item = items.get(position);
if (item instanceof ConversationRequestItem) {
return R.layout.list_item_conversation_request;
} else if (item instanceof ConversationNoticeOutItem) {
return R.layout.list_item_conversation_notice_out;
} else if (item instanceof ConversationNoticeInItem) {
return R.layout.list_item_conversation_notice_in;
} else if (item instanceof ConversationMessageOutItem) {
return R.layout.list_item_conversation_msg_out;
} else if (item instanceof ConversationMessageInItem) {
return R.layout.list_item_conversation_msg_in;
} else {
throw new IllegalArgumentException("Unknown ConversationItem");
}
return item.getLayout();
}
@Override
@@ -104,13 +92,13 @@ class ConversationAdapter
}
}
SparseArray<ConversationInItem> getIncomingMessages() {
SparseArray<ConversationInItem> messages = new SparseArray<>();
SparseArray<ConversationItem> getIncomingMessages() {
SparseArray<ConversationItem> messages = new SparseArray<>();
for (int i = 0; i < items.size(); i++) {
ConversationItem item = items.get(i);
if (item instanceof ConversationInItem) {
messages.put(i, (ConversationInItem) item);
if (item.isIncoming()) {
messages.put(i, item);
}
}
return messages;

View File

@@ -1,31 +0,0 @@
package org.briarproject.android.contact;
import org.briarproject.api.nullsafety.NotNullByDefault;
import org.briarproject.api.sync.GroupId;
import org.briarproject.api.sync.MessageId;
import org.jetbrains.annotations.Nullable;
import javax.annotation.concurrent.NotThreadSafe;
@NotThreadSafe
@NotNullByDefault
abstract class ConversationInItem extends ConversationItem {
private boolean read;
ConversationInItem(MessageId id, GroupId groupId, @Nullable String text,
long time, boolean read) {
super(id, groupId, text, time);
this.read = read;
}
public boolean isRead() {
return read;
}
public void setRead(boolean read) {
this.read = read;
}
}

View File

@@ -1,6 +1,7 @@
package org.briarproject.android.contact;
import android.content.Context;
import android.support.annotation.LayoutRes;
import android.support.annotation.StringRes;
import org.briarproject.R;
@@ -37,13 +38,15 @@ abstract class ConversationItem {
final private MessageId id;
final private GroupId groupId;
final private long time;
private boolean read;
ConversationItem(MessageId id, GroupId groupId,
@Nullable String body, long time) {
ConversationItem(MessageId id, GroupId groupId, @Nullable String body,
long time, boolean read) {
this.id = id;
this.groupId = groupId;
this.body = body;
this.time = time;
this.read = read;
}
MessageId getId() {
@@ -67,6 +70,15 @@ abstract class ConversationItem {
return time;
}
public boolean isRead() {
return read;
}
abstract public boolean isIncoming();
@LayoutRes
abstract public int getLayout();
static ConversationItem from(PrivateMessageHeader h) {
if (h.isLocal()) {
return new ConversationMessageOutItem(h);

View File

@@ -1,5 +1,8 @@
package org.briarproject.android.contact;
import android.support.annotation.LayoutRes;
import org.briarproject.R;
import org.briarproject.api.messaging.PrivateMessageHeader;
import org.briarproject.api.nullsafety.NotNullByDefault;
@@ -7,10 +10,21 @@ import javax.annotation.concurrent.NotThreadSafe;
@NotThreadSafe
@NotNullByDefault
class ConversationMessageInItem extends ConversationInItem {
class ConversationMessageInItem extends ConversationItem {
ConversationMessageInItem(PrivateMessageHeader h) {
super(h.getId(), h.getGroupId(), null, h.getTimestamp(), h.isRead());
}
@Override
public boolean isIncoming() {
return true;
}
@LayoutRes
@Override
public int getLayout() {
return R.layout.list_item_conversation_msg_in;
}
}

View File

@@ -1,5 +1,8 @@
package org.briarproject.android.contact;
import android.support.annotation.LayoutRes;
import org.briarproject.R;
import org.briarproject.api.messaging.PrivateMessageHeader;
import org.briarproject.api.nullsafety.NotNullByDefault;
@@ -14,4 +17,10 @@ class ConversationMessageOutItem extends ConversationOutItem {
h.isSeen());
}
@LayoutRes
@Override
public int getLayout() {
return R.layout.list_item_conversation_msg_out;
}
}

View File

@@ -1,5 +1,8 @@
package org.briarproject.android.contact;
import android.support.annotation.LayoutRes;
import org.briarproject.R;
import org.briarproject.api.nullsafety.NotNullByDefault;
import org.briarproject.api.sync.GroupId;
import org.briarproject.api.sync.MessageId;
@@ -9,7 +12,7 @@ import javax.annotation.concurrent.NotThreadSafe;
@NotThreadSafe
@NotNullByDefault
class ConversationNoticeInItem extends ConversationInItem {
class ConversationNoticeInItem extends ConversationItem {
@Nullable
private final String msgText;
@@ -26,4 +29,15 @@ class ConversationNoticeInItem extends ConversationInItem {
return msgText;
}
@Override
public boolean isIncoming() {
return true;
}
@LayoutRes
@Override
public int getLayout() {
return R.layout.list_item_conversation_notice_in;
}
}

View File

@@ -1,5 +1,8 @@
package org.briarproject.android.contact;
import android.support.annotation.LayoutRes;
import org.briarproject.R;
import org.briarproject.api.nullsafety.NotNullByDefault;
import org.briarproject.api.sync.GroupId;
import org.briarproject.api.sync.MessageId;
@@ -26,4 +29,10 @@ class ConversationNoticeOutItem extends ConversationOutItem {
return msgText;
}
@LayoutRes
@Override
public int getLayout() {
return R.layout.list_item_conversation_notice_out;
}
}

View File

@@ -15,7 +15,7 @@ abstract class ConversationOutItem extends ConversationItem {
ConversationOutItem(MessageId id, GroupId groupId, @Nullable String text,
long time, boolean sent, boolean seen) {
super(id, groupId, text, time);
super(id, groupId, text, time, true);
this.sent = sent;
this.seen = seen;
@@ -37,4 +37,9 @@ abstract class ConversationOutItem extends ConversationItem {
this.seen = seen;
}
@Override
public boolean isIncoming() {
return false;
}
}

View File

@@ -1,5 +1,8 @@
package org.briarproject.android.contact;
import android.support.annotation.LayoutRes;
import org.briarproject.R;
import org.briarproject.api.clients.SessionId;
import org.briarproject.api.nullsafety.NotNullByDefault;
import org.briarproject.api.sync.GroupId;
@@ -43,4 +46,10 @@ class ConversationRequestItem extends ConversationNoticeInItem {
this.answered = answered;
}
@LayoutRes
@Override
public int getLayout() {
return R.layout.list_item_conversation_request;
}
}

View File

@@ -18,7 +18,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.sharing.ForumShareActivity;
import org.briarproject.android.sharing.ShareForumActivity;
import org.briarproject.android.sharing.ForumSharingStatusActivity;
import org.briarproject.android.threaded.ThreadListActivity;
import org.briarproject.android.threaded.ThreadListController;
@@ -107,7 +107,7 @@ public class ForumActivity extends
showTextInput(null);
return true;
case R.id.action_forum_share:
Intent i2 = new Intent(this, ForumShareActivity.class);
Intent i2 = new Intent(this, ShareForumActivity.class);
i2.setFlags(FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_SINGLE_TOP);
i2.putExtra(GROUP_ID, groupId.getBytes());
ActivityCompat.startActivityForResult(this, i2,

View File

@@ -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.ForumInvitationsActivity;
import org.briarproject.android.sharing.ForumInvitationActivity;
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(), ForumInvitationsActivity.class);
Intent i = new Intent(getContext(), ForumInvitationActivity.class);
startActivity(i);
}
}

View File

@@ -4,19 +4,19 @@ import android.content.Context;
import org.briarproject.R;
import org.briarproject.android.ActivityComponent;
import org.briarproject.android.sharing.InvitationActivity;
import org.briarproject.android.sharing.InvitationAdapter;
import org.briarproject.android.sharing.InvitationsActivity;
import org.briarproject.api.privategroup.invitation.GroupInvitationItem;
import javax.inject.Inject;
import static org.briarproject.android.sharing.InvitationAdapter.InvitationClickListener;
public class GroupInvitationsActivity
extends InvitationsActivity<GroupInvitationItem> {
public class GroupInvitationActivity
extends InvitationActivity<GroupInvitationItem> {
@Inject
protected GroupInvitationsController controller;
protected GroupInvitationController controller;
@Override
public void injectActivity(ActivityComponent component) {
@@ -24,7 +24,7 @@ public class GroupInvitationsActivity
}
@Override
protected GroupInvitationsController getController() {
protected GroupInvitationController getController() {
return controller;
}

View File

@@ -0,0 +1,8 @@
package org.briarproject.android.privategroup.invitation;
import org.briarproject.android.sharing.InvitationController;
import org.briarproject.api.privategroup.invitation.GroupInvitationItem;
public interface GroupInvitationController
extends InvitationController<GroupInvitationItem> {
}

View File

@@ -1,7 +1,7 @@
package org.briarproject.android.privategroup.invitation;
import org.briarproject.android.controller.handler.ResultExceptionHandler;
import org.briarproject.android.sharing.InvitationsControllerImpl;
import org.briarproject.android.sharing.InvitationControllerImpl;
import org.briarproject.api.contact.Contact;
import org.briarproject.api.db.DatabaseExecutor;
import org.briarproject.api.db.DbException;
@@ -22,15 +22,15 @@ import javax.inject.Inject;
import static java.util.logging.Level.WARNING;
public class GroupInvitationsControllerImpl
extends InvitationsControllerImpl<GroupInvitationItem>
implements GroupInvitationsController {
public class GroupInvitationControllerImpl
extends InvitationControllerImpl<GroupInvitationItem>
implements GroupInvitationController {
private final PrivateGroupManager privateGroupManager;
private final GroupInvitationManager groupInvitationManager;
@Inject
GroupInvitationsControllerImpl(@DatabaseExecutor Executor dbExecutor,
GroupInvitationControllerImpl(@DatabaseExecutor Executor dbExecutor,
LifecycleManager lifecycleManager, EventBus eventBus,
PrivateGroupManager privateGroupManager,
GroupInvitationManager groupInvitationManager) {
@@ -50,7 +50,7 @@ public class GroupInvitationsControllerImpl
}
@Override
protected ClientId getClientId() {
protected ClientId getShareableClientId() {
return privateGroupManager.getClientId();
}
@@ -68,7 +68,7 @@ public class GroupInvitationsControllerImpl
@Override
public void run() {
try {
PrivateGroup g = (PrivateGroup) item.getShareable();
PrivateGroup g = item.getShareable();
Contact c = item.getCreator();
groupInvitationManager.respondToInvitation(g, c, accept);
} catch (DbException e) {

View File

@@ -1,8 +0,0 @@
package org.briarproject.android.privategroup.invitation;
import org.briarproject.android.sharing.InvitationsController;
import org.briarproject.api.privategroup.invitation.GroupInvitationItem;
public interface GroupInvitationsController
extends InvitationsController<GroupInvitationItem> {
}

View File

@@ -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.GroupInvitationsActivity;
import org.briarproject.android.privategroup.invitation.GroupInvitationActivity;
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(), GroupInvitationsActivity.class);
Intent i = new Intent(getContext(), GroupInvitationActivity.class);
ActivityOptionsCompat options =
makeCustomAnimation(getActivity(),
android.R.anim.slide_in_left,

View File

@@ -10,11 +10,11 @@ import javax.inject.Inject;
import static org.briarproject.android.sharing.InvitationAdapter.InvitationClickListener;
public class BlogInvitationsActivity
extends InvitationsActivity<SharingInvitationItem> {
public class BlogInvitationActivity
extends InvitationActivity<SharingInvitationItem> {
@Inject
BlogInvitationsController controller;
BlogInvitationController controller;
@Override
public void injectActivity(ActivityComponent component) {
@@ -22,7 +22,7 @@ public class BlogInvitationsActivity
}
@Override
protected InvitationsController<SharingInvitationItem> getController() {
protected InvitationController<SharingInvitationItem> getController() {
return controller;
}

View File

@@ -2,6 +2,6 @@ package org.briarproject.android.sharing;
import org.briarproject.api.sharing.SharingInvitationItem;
public interface BlogInvitationsController
extends InvitationsController<SharingInvitationItem> {
public interface BlogInvitationController
extends InvitationController<SharingInvitationItem> {
}

View File

@@ -21,15 +21,15 @@ import javax.inject.Inject;
import static java.util.logging.Level.WARNING;
public class BlogInvitationsControllerImpl
extends InvitationsControllerImpl<SharingInvitationItem>
implements BlogInvitationsController {
public class BlogInvitationControllerImpl
extends InvitationControllerImpl<SharingInvitationItem>
implements BlogInvitationController {
private final BlogManager blogManager;
private final BlogSharingManager blogSharingManager;
@Inject
BlogInvitationsControllerImpl(@DatabaseExecutor Executor dbExecutor,
BlogInvitationControllerImpl(@DatabaseExecutor Executor dbExecutor,
LifecycleManager lifecycleManager, EventBus eventBus,
BlogManager blogManager, BlogSharingManager blogSharingManager) {
super(dbExecutor, lifecycleManager, eventBus);
@@ -48,7 +48,7 @@ public class BlogInvitationsControllerImpl
}
@Override
protected ClientId getClientId() {
protected ClientId getShareableClientId() {
return blogManager.getClientId();
}

View File

@@ -10,11 +10,11 @@ import javax.inject.Inject;
import static org.briarproject.android.sharing.InvitationAdapter.InvitationClickListener;
public class ForumInvitationsActivity
extends InvitationsActivity<SharingInvitationItem> {
public class ForumInvitationActivity
extends InvitationActivity<SharingInvitationItem> {
@Inject
ForumInvitationsController controller;
ForumInvitationController controller;
@Override
public void injectActivity(ActivityComponent component) {
@@ -22,7 +22,7 @@ public class ForumInvitationsActivity
}
@Override
protected InvitationsController<SharingInvitationItem> getController() {
protected InvitationController<SharingInvitationItem> getController() {
return controller;
}

View File

@@ -2,6 +2,6 @@ package org.briarproject.android.sharing;
import org.briarproject.api.sharing.SharingInvitationItem;
public interface ForumInvitationsController
extends InvitationsController<SharingInvitationItem> {
public interface ForumInvitationController
extends InvitationController<SharingInvitationItem> {
}

View File

@@ -21,15 +21,15 @@ import javax.inject.Inject;
import static java.util.logging.Level.WARNING;
public class ForumInvitationsControllerImpl
extends InvitationsControllerImpl<SharingInvitationItem>
implements ForumInvitationsController {
public class ForumInvitationControllerImpl
extends InvitationControllerImpl<SharingInvitationItem>
implements ForumInvitationController {
private final ForumManager forumManager;
private final ForumSharingManager forumSharingManager;
@Inject
ForumInvitationsControllerImpl(@DatabaseExecutor Executor dbExecutor,
ForumInvitationControllerImpl(@DatabaseExecutor Executor dbExecutor,
LifecycleManager lifecycleManager, EventBus eventBus,
ForumManager forumManager,
ForumSharingManager forumSharingManager) {
@@ -49,7 +49,7 @@ public class ForumInvitationsControllerImpl
}
@Override
protected ClientId getClientId() {
protected ClientId getShareableClientId() {
return forumManager.getClientId();
}

View File

@@ -9,7 +9,7 @@ import android.widget.Toast;
import org.briarproject.R;
import org.briarproject.android.BriarActivity;
import org.briarproject.android.controller.handler.UiResultExceptionHandler;
import org.briarproject.android.sharing.InvitationsController.InvitationListener;
import org.briarproject.android.sharing.InvitationController.InvitationListener;
import org.briarproject.android.view.BriarRecyclerView;
import org.briarproject.api.db.DbException;
import org.briarproject.api.sharing.InvitationItem;
@@ -20,12 +20,12 @@ import java.util.logging.Logger;
import static android.widget.Toast.LENGTH_SHORT;
import static org.briarproject.android.sharing.InvitationAdapter.InvitationClickListener;
public abstract class InvitationsActivity<I extends InvitationItem>
public abstract class InvitationActivity<I extends InvitationItem>
extends BriarActivity
implements InvitationListener, InvitationClickListener<I> {
protected static final Logger LOG =
Logger.getLogger(InvitationsActivity.class.getName());
Logger.getLogger(InvitationActivity.class.getName());
private InvitationAdapter<I, ?> adapter;
private BriarRecyclerView list;
@@ -96,7 +96,7 @@ public abstract class InvitationsActivity<I extends InvitationItem>
});
}
abstract protected InvitationsController<I> getController();
abstract protected InvitationController<I> getController();
protected void respondToInvitation(final I item,
final boolean accept) {

View File

@@ -7,7 +7,7 @@ import org.briarproject.api.sharing.InvitationItem;
import java.util.Collection;
public interface InvitationsController<I extends InvitationItem>
public interface InvitationController<I extends InvitationItem>
extends ActivityLifecycleController {
void loadInvitations(boolean clear,

View File

@@ -25,17 +25,17 @@ import java.util.logging.Logger;
import static java.util.logging.Level.INFO;
import static java.util.logging.Level.WARNING;
public abstract class InvitationsControllerImpl<I extends InvitationItem>
public abstract class InvitationControllerImpl<I extends InvitationItem>
extends DbControllerImpl
implements InvitationsController<I>, EventListener {
implements InvitationController<I>, EventListener {
protected static final Logger LOG =
Logger.getLogger(InvitationsControllerImpl.class.getName());
Logger.getLogger(InvitationControllerImpl.class.getName());
private final EventBus eventBus;
protected InvitationListener listener;
public InvitationsControllerImpl(@DatabaseExecutor Executor dbExecutor,
public InvitationControllerImpl(@DatabaseExecutor Executor dbExecutor,
LifecycleManager lifecycleManager, EventBus eventBus) {
super(dbExecutor, lifecycleManager);
this.eventBus = eventBus;
@@ -70,21 +70,21 @@ public abstract class InvitationsControllerImpl<I extends InvitationItem>
} else if (e instanceof GroupAddedEvent) {
GroupAddedEvent g = (GroupAddedEvent) e;
ClientId cId = g.getGroup().getClientId();
if (cId.equals(getClientId())) {
if (cId.equals(getShareableClientId())) {
LOG.info("Group added, reloading");
listener.loadInvitations(false);
}
} else if (e instanceof GroupRemovedEvent) {
GroupRemovedEvent g = (GroupRemovedEvent) e;
ClientId cId = g.getGroup().getClientId();
if (cId.equals(getClientId())) {
if (cId.equals(getShareableClientId())) {
LOG.info("Group removed, reloading");
listener.loadInvitations(true);
listener.loadInvitations(false);
}
}
}
protected abstract ClientId getClientId();
protected abstract ClientId getShareableClientId();
@Override
public void loadInvitations(final boolean clear,

View File

@@ -12,7 +12,7 @@ import javax.inject.Inject;
import static org.briarproject.api.sync.SyncConstants.MAX_MESSAGE_BODY_LENGTH;
public class BlogShareActivity extends ShareActivity {
public class ShareBlogActivity extends ShareActivity {
// Fields that are accessed from background threads must be volatile
@Inject
@@ -20,7 +20,7 @@ public class BlogShareActivity extends ShareActivity {
@Override
BaseMessageFragment getMessageFragment() {
return BlogShareMessageFragment.newInstance();
return ShareBlogMessageFragment.newInstance();
}
@Override

View File

@@ -9,12 +9,12 @@ import android.view.ViewGroup;
import org.briarproject.R;
import org.briarproject.android.ActivityComponent;
public class BlogShareMessageFragment extends BaseMessageFragment {
public class ShareBlogMessageFragment extends BaseMessageFragment {
public final static String TAG = BlogShareMessageFragment.class.getName();
public final static String TAG = ShareBlogMessageFragment.class.getName();
public static BlogShareMessageFragment newInstance() {
return new BlogShareMessageFragment();
public static ShareBlogMessageFragment newInstance() {
return new ShareBlogMessageFragment();
}
@Override

View File

@@ -12,7 +12,7 @@ import javax.inject.Inject;
import static org.briarproject.api.sync.SyncConstants.MAX_MESSAGE_BODY_LENGTH;
public class ForumShareActivity extends ShareActivity {
public class ShareForumActivity extends ShareActivity {
// Fields that are accessed from background threads must be volatile
@Inject
@@ -20,7 +20,7 @@ public class ForumShareActivity extends ShareActivity {
@Override
BaseMessageFragment getMessageFragment() {
return ForumShareMessageFragment.newInstance();
return ShareForumMessageFragment.newInstance();
}
@Override

View File

@@ -9,12 +9,12 @@ import android.view.ViewGroup;
import org.briarproject.R;
import org.briarproject.android.ActivityComponent;
public class ForumShareMessageFragment extends BaseMessageFragment {
public class ShareForumMessageFragment extends BaseMessageFragment {
public final static String TAG = ForumShareMessageFragment.class.getName();
public final static String TAG = ShareForumMessageFragment.class.getName();
public static ForumShareMessageFragment newInstance() {
return new ForumShareMessageFragment();
public static ShareForumMessageFragment newInstance() {
return new ShareForumMessageFragment();
}
@Override

View File

@@ -3,12 +3,13 @@ package org.briarproject.api.event;
import org.briarproject.api.contact.ContactId;
import org.briarproject.api.forum.ForumInvitationRequest;
import org.briarproject.api.privategroup.PrivateGroup;
import org.briarproject.api.privategroup.invitation.GroupInvitationRequest;
public class GroupInvitationReceivedEvent extends
InvitationRequestReceivedEvent<PrivateGroup> {
public GroupInvitationReceivedEvent(PrivateGroup group, ContactId contactId,
ForumInvitationRequest request) {
GroupInvitationRequest request) {
super(group, contactId, request);
}

View File

@@ -2,18 +2,18 @@ package org.briarproject.api.privategroup.invitation;
import org.briarproject.api.contact.Contact;
import org.briarproject.api.nullsafety.NotNullByDefault;
import org.briarproject.api.privategroup.PrivateGroup;
import org.briarproject.api.sharing.InvitationItem;
import org.briarproject.api.sharing.Shareable;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class GroupInvitationItem extends InvitationItem {
public class GroupInvitationItem extends InvitationItem<PrivateGroup> {
private final Contact creator;
public GroupInvitationItem(Shareable shareable, boolean subscribed,
public GroupInvitationItem(PrivateGroup shareable, boolean subscribed,
Contact creator) {
super(shareable, subscribed);

View File

@@ -4,21 +4,20 @@ import org.briarproject.api.nullsafety.NotNullByDefault;
import org.briarproject.api.sync.GroupId;
import javax.annotation.concurrent.Immutable;
import javax.annotation.concurrent.ThreadSafe;
@Immutable
@NotNullByDefault
public abstract class InvitationItem {
public abstract class InvitationItem<S extends Shareable> {
private final Shareable shareable;
private final S shareable;
private final boolean subscribed;
public InvitationItem(Shareable shareable, boolean subscribed) {
public InvitationItem(S shareable, boolean subscribed) {
this.shareable = shareable;
this.subscribed = subscribed;
}
public Shareable getShareable() {
public S getShareable() {
return shareable;
}

View File

@@ -9,7 +9,7 @@ import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class SharingInvitationItem extends InvitationItem {
public class SharingInvitationItem extends InvitationItem<Shareable> {
private final Collection<Contact> newSharers;