mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 10:49:06 +01:00
Address review comments
This commit is contained in:
@@ -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">
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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> {
|
||||
}
|
||||
@@ -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) {
|
||||
@@ -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> {
|
||||
}
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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> {
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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> {
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
@@ -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,
|
||||
@@ -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,
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user