Merge branch '752-refactor-android-dagger-module' into 'master'

Activity module refactor

Broke the Activity module into numerous modules to be able to make numerous controller's package visible

Closes #752

See merge request !417
This commit is contained in:
akwizgran
2016-11-18 13:13:12 +00:00
27 changed files with 244 additions and 135 deletions

View File

@@ -4,6 +4,7 @@ import android.app.Activity;
import org.briarproject.android.blogs.BlogActivity;
import org.briarproject.android.blogs.BlogFragment;
import org.briarproject.android.blogs.BlogModule;
import org.briarproject.android.blogs.BlogPostFragment;
import org.briarproject.android.blogs.BlogPostPagerFragment;
import org.briarproject.android.blogs.FeedFragment;
@@ -15,10 +16,12 @@ import org.briarproject.android.blogs.RssFeedImportActivity;
import org.briarproject.android.blogs.RssFeedManageActivity;
import org.briarproject.android.blogs.WriteBlogPostActivity;
import org.briarproject.android.contact.ContactListFragment;
import org.briarproject.android.contact.ContactModule;
import org.briarproject.android.contact.ConversationActivity;
import org.briarproject.android.forum.CreateForumActivity;
import org.briarproject.android.forum.ForumActivity;
import org.briarproject.android.forum.ForumListFragment;
import org.briarproject.android.forum.ForumModule;
import org.briarproject.android.introduction.ContactChooserFragment;
import org.briarproject.android.introduction.IntroductionActivity;
import org.briarproject.android.introduction.IntroductionMessageFragment;
@@ -29,14 +32,20 @@ import org.briarproject.android.keyagreement.ShowQrCodeFragment;
import org.briarproject.android.panic.PanicPreferencesActivity;
import org.briarproject.android.panic.PanicResponderActivity;
import org.briarproject.android.privategroup.conversation.GroupActivity;
import org.briarproject.android.privategroup.conversation.GroupConversationModule;
import org.briarproject.android.privategroup.creation.CreateGroupActivity;
import org.briarproject.android.privategroup.creation.CreateGroupFragment;
import org.briarproject.android.privategroup.creation.CreateGroupMessageFragment;
import org.briarproject.android.privategroup.creation.GroupCreateModule;
import org.briarproject.android.privategroup.creation.GroupInviteActivity;
import org.briarproject.android.privategroup.creation.GroupInviteFragment;
import org.briarproject.android.privategroup.invitation.GroupInvitationActivity;
import org.briarproject.android.privategroup.invitation.GroupInvitationModule;
import org.briarproject.android.privategroup.list.GroupListFragment;
import org.briarproject.android.privategroup.list.GroupListModule;
import org.briarproject.android.privategroup.memberlist.GroupMemberListActivity;
import org.briarproject.android.privategroup.memberlist.GroupMemberModule;
import org.briarproject.android.privategroup.reveal.GroupRevealModule;
import org.briarproject.android.privategroup.reveal.RevealContactsActivity;
import org.briarproject.android.privategroup.reveal.RevealContactsFragment;
import org.briarproject.android.sharing.BlogInvitationActivity;
@@ -49,13 +58,19 @@ import org.briarproject.android.sharing.ShareBlogMessageFragment;
import org.briarproject.android.sharing.ShareForumActivity;
import org.briarproject.android.sharing.ShareForumFragment;
import org.briarproject.android.sharing.ShareForumMessageFragment;
import org.briarproject.android.sharing.SharingModule;
import org.thoughtcrime.securesms.components.emoji.EmojiProvider;
import org.thoughtcrime.securesms.components.emoji.RecentEmojiPageModel;
import dagger.Component;
@ActivityScope
@Component(modules = ActivityModule.class,
@Component(
modules = {ActivityModule.class, ForumModule.class, SharingModule.class,
BlogModule.class, ContactModule.class, GroupListModule.class,
GroupCreateModule.class, GroupInvitationModule.class,
GroupConversationModule.class, GroupMemberModule.class,
GroupRevealModule.class},
dependencies = AndroidComponent.class)
public interface ActivityComponent {

View File

@@ -3,10 +3,6 @@ package org.briarproject.android;
import android.app.Activity;
import android.content.SharedPreferences;
import org.briarproject.android.blogs.BlogController;
import org.briarproject.android.blogs.BlogControllerImpl;
import org.briarproject.android.blogs.FeedController;
import org.briarproject.android.blogs.FeedControllerImpl;
import org.briarproject.android.controller.BriarController;
import org.briarproject.android.controller.BriarControllerImpl;
import org.briarproject.android.controller.ConfigController;
@@ -19,28 +15,6 @@ import org.briarproject.android.controller.PasswordController;
import org.briarproject.android.controller.PasswordControllerImpl;
import org.briarproject.android.controller.SetupController;
import org.briarproject.android.controller.SetupControllerImpl;
import org.briarproject.android.forum.ForumController;
import org.briarproject.android.forum.ForumControllerImpl;
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.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.privategroup.memberlist.GroupMemberListController;
import org.briarproject.android.privategroup.memberlist.GroupMemberListControllerImpl;
import org.briarproject.android.privategroup.reveal.RevealContactsController;
import org.briarproject.android.privategroup.reveal.RevealContactsControllerImpl;
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 org.briarproject.android.sharing.ShareBlogController;
import org.briarproject.android.sharing.ShareBlogControllerImpl;
import org.briarproject.android.sharing.ShareForumController;
import org.briarproject.android.sharing.ShareForumControllerImpl;
import dagger.Module;
import dagger.Provides;
@@ -110,100 +84,6 @@ public class ActivityModule {
return dbController;
}
@ActivityScope
@Provides
GroupListController provideGroupListController(
GroupListControllerImpl groupListController) {
return groupListController;
}
@ActivityScope
@Provides
protected CreateGroupController provideCreateGroupController(
CreateGroupControllerImpl createGroupController) {
return createGroupController;
}
@ActivityScope
@Provides
protected GroupController provideGroupController(
GroupControllerImpl groupController) {
activity.addLifecycleController(groupController);
return groupController;
}
@ActivityScope
@Provides
protected GroupInvitationController provideInvitationGroupController(
GroupInvitationControllerImpl groupInvitationController) {
return groupInvitationController;
}
@ActivityScope
@Provides
protected GroupMemberListController provideGroupMemberListController(
GroupMemberListControllerImpl groupMemberListController) {
return groupMemberListController;
}
@ActivityScope
@Provides
protected RevealContactsController provideRevealContactsController(
RevealContactsControllerImpl revealContactsController) {
return revealContactsController;
}
@ActivityScope
@Provides
protected ForumController provideForumController(
ForumControllerImpl forumController) {
activity.addLifecycleController(forumController);
return forumController;
}
@ActivityScope
@Provides
ShareForumController provideShareForumController(
ShareForumControllerImpl shareForumController) {
return shareForumController;
}
@ActivityScope
@Provides
protected ForumInvitationController provideInvitationForumController(
ForumInvitationControllerImpl forumInvitationController) {
activity.addLifecycleController(forumInvitationController);
return forumInvitationController;
}
@ActivityScope
@Provides
protected BlogInvitationController provideInvitationBlogController(
BlogInvitationControllerImpl blogInvitationController) {
activity.addLifecycleController(blogInvitationController);
return blogInvitationController;
}
@ActivityScope
@Provides
BlogController provideBlogController(BlogControllerImpl blogController) {
activity.addLifecycleController(blogController);
return blogController;
}
@ActivityScope
@Provides
ShareBlogController provideShareBlogController(
ShareBlogControllerImpl shareBlogController) {
return shareBlogController;
}
@ActivityScope
@Provides
FeedController provideFeedController(FeedControllerImpl feedController) {
return feedController;
}
@ActivityScope
@Provides
NavDrawerController provideNavDrawerController(

View File

@@ -8,6 +8,7 @@ import android.view.View;
import android.view.inputmethod.InputMethodManager;
import org.briarproject.android.controller.ActivityLifecycleController;
import org.briarproject.android.forum.ForumModule;
import java.util.ArrayList;
import java.util.List;
@@ -43,6 +44,7 @@ public abstract class BaseActivity extends AppCompatActivity
activityComponent = DaggerActivityComponent.builder()
.androidComponent(applicationComponent)
.activityModule(getActivityModule())
.forumModule(getForumModule())
.build();
injectActivity(activityComponent);
@@ -61,6 +63,10 @@ public abstract class BaseActivity extends AppCompatActivity
return new ActivityModule(this);
}
protected ForumModule getForumModule() {
return new ForumModule();
}
@Override
protected void onStart() {
super.onStart();

View File

@@ -29,7 +29,7 @@ import javax.inject.Inject;
import static java.util.logging.Level.INFO;
import static java.util.logging.Level.WARNING;
public class BlogControllerImpl extends BaseControllerImpl
class BlogControllerImpl extends BaseControllerImpl
implements ActivityLifecycleController, BlogController, EventListener {
private static final Logger LOG =

View File

@@ -0,0 +1,25 @@
package org.briarproject.android.blogs;
import org.briarproject.android.ActivityScope;
import org.briarproject.android.BaseActivity;
import dagger.Module;
import dagger.Provides;
@Module
public class BlogModule {
@ActivityScope
@Provides
BlogController provideBlogController(BaseActivity activity,
BlogControllerImpl blogController) {
activity.addLifecycleController(blogController);
return blogController;
}
@ActivityScope
@Provides
FeedController provideFeedController(FeedControllerImpl feedController) {
return feedController;
}
}

View File

@@ -27,7 +27,7 @@ import static java.util.logging.Level.INFO;
import static java.util.logging.Level.WARNING;
import static org.briarproject.api.blogs.BlogManager.CLIENT_ID;
public class FeedControllerImpl extends BaseControllerImpl
class FeedControllerImpl extends BaseControllerImpl
implements FeedController {
private static final Logger LOG =

View File

@@ -0,0 +1,7 @@
package org.briarproject.android.contact;
import dagger.Module;
@Module
public class ContactModule {
}

View File

@@ -32,7 +32,7 @@ import javax.inject.Inject;
import static java.lang.Math.max;
import static java.util.logging.Level.WARNING;
public class ForumControllerImpl
class ForumControllerImpl
extends ThreadListControllerImpl<Forum, ForumItem, ForumPostHeader, ForumPost, ThreadListListener<ForumPostHeader>>
implements ForumController {

View File

@@ -0,0 +1,20 @@
package org.briarproject.android.forum;
import org.briarproject.android.ActivityScope;
import org.briarproject.android.BaseActivity;
import dagger.Module;
import dagger.Provides;
@Module
public class ForumModule {
@ActivityScope
@Provides
ForumController provideForumController(BaseActivity activity,
ForumControllerImpl forumController) {
activity.addLifecycleController(forumController);
return forumController;
}
}

View File

@@ -36,7 +36,7 @@ import javax.inject.Inject;
import static java.lang.Math.max;
import static java.util.logging.Level.WARNING;
public class GroupControllerImpl extends
class GroupControllerImpl extends
ThreadListControllerImpl<PrivateGroup, GroupMessageItem, GroupMessageHeader, GroupMessage, GroupListener>
implements GroupController {

View File

@@ -0,0 +1,19 @@
package org.briarproject.android.privategroup.conversation;
import org.briarproject.android.ActivityScope;
import org.briarproject.android.BaseActivity;
import dagger.Module;
import dagger.Provides;
@Module
public class GroupConversationModule {
@ActivityScope
@Provides
GroupController provideGroupController(BaseActivity activity,
GroupControllerImpl groupController) {
activity.addLifecycleController(groupController);
return groupController;
}
}

View File

@@ -36,7 +36,7 @@ import static java.util.logging.Level.WARNING;
@Immutable
@NotNullByDefault
public class CreateGroupControllerImpl extends ContactSelectorControllerImpl
class CreateGroupControllerImpl extends ContactSelectorControllerImpl
implements CreateGroupController {
private static final Logger LOG =

View File

@@ -0,0 +1,18 @@
package org.briarproject.android.privategroup.creation;
import org.briarproject.android.ActivityScope;
import dagger.Module;
import dagger.Provides;
@Module
public class GroupCreateModule {
@ActivityScope
@Provides
protected CreateGroupController provideCreateGroupController(
CreateGroupControllerImpl createGroupController) {
return createGroupController;
}
}

View File

@@ -25,7 +25,7 @@ import static java.util.logging.Level.WARNING;
import static org.briarproject.api.privategroup.PrivateGroupManager.CLIENT_ID;
@NotNullByDefault
public class GroupInvitationControllerImpl
class GroupInvitationControllerImpl
extends InvitationControllerImpl<GroupInvitationItem>
implements GroupInvitationController {

View File

@@ -0,0 +1,17 @@
package org.briarproject.android.privategroup.invitation;
import org.briarproject.android.ActivityScope;
import dagger.Module;
import dagger.Provides;
@Module
public class GroupInvitationModule {
@ActivityScope
@Provides
GroupInvitationController provideInvitationGroupController(
GroupInvitationControllerImpl groupInvitationController) {
return groupInvitationController;
}
}

View File

@@ -38,7 +38,7 @@ import static java.util.logging.Level.INFO;
import static java.util.logging.Level.WARNING;
import static org.briarproject.api.privategroup.PrivateGroupManager.CLIENT_ID;
public class GroupListControllerImpl extends DbControllerImpl
class GroupListControllerImpl extends DbControllerImpl
implements GroupListController, EventListener {
private static final Logger LOG =

View File

@@ -0,0 +1,17 @@
package org.briarproject.android.privategroup.list;
import org.briarproject.android.ActivityScope;
import dagger.Module;
import dagger.Provides;
@Module
public class GroupListModule {
@ActivityScope
@Provides
GroupListController provideGroupListController(
GroupListControllerImpl groupListController) {
return groupListController;
}
}

View File

@@ -18,7 +18,7 @@ import javax.inject.Inject;
import static java.util.logging.Level.WARNING;
public class GroupMemberListControllerImpl extends DbControllerImpl
class GroupMemberListControllerImpl extends DbControllerImpl
implements GroupMemberListController {
private static final Logger LOG =

View File

@@ -0,0 +1,17 @@
package org.briarproject.android.privategroup.memberlist;
import org.briarproject.android.ActivityScope;
import dagger.Module;
import dagger.Provides;
@Module
public class GroupMemberModule {
@ActivityScope
@Provides
GroupMemberListController provideGroupMemberListController(
GroupMemberListControllerImpl groupMemberListController) {
return groupMemberListController;
}
}

View File

@@ -0,0 +1,17 @@
package org.briarproject.android.privategroup.reveal;
import org.briarproject.android.ActivityScope;
import dagger.Module;
import dagger.Provides;
@Module
public class GroupRevealModule {
@ActivityScope
@Provides
RevealContactsController provideRevealContactsController(
RevealContactsControllerImpl revealContactsController) {
return revealContactsController;
}
}

View File

@@ -33,7 +33,7 @@ import static org.briarproject.api.privategroup.Visibility.INVISIBLE;
@Immutable
@NotNullByDefault
public class RevealContactsControllerImpl extends DbControllerImpl
class RevealContactsControllerImpl extends DbControllerImpl
implements RevealContactsController {
private static final Logger LOG =

View File

@@ -23,7 +23,7 @@ import static java.util.logging.Level.WARNING;
import static org.briarproject.api.blogs.BlogManager.CLIENT_ID;
@NotNullByDefault
public class BlogInvitationControllerImpl
class BlogInvitationControllerImpl
extends InvitationControllerImpl<SharingInvitationItem>
implements BlogInvitationController {

View File

@@ -23,7 +23,7 @@ import static java.util.logging.Level.WARNING;
import static org.briarproject.api.forum.ForumManager.CLIENT_ID;
@NotNullByDefault
public class ForumInvitationControllerImpl
class ForumInvitationControllerImpl
extends InvitationControllerImpl<SharingInvitationItem>
implements ForumInvitationController {

View File

@@ -25,7 +25,7 @@ import static java.util.logging.Level.WARNING;
@Immutable
@NotNullByDefault
public class ShareBlogControllerImpl extends ContactSelectorControllerImpl
class ShareBlogControllerImpl extends ContactSelectorControllerImpl
implements ShareBlogController {
private final static Logger LOG =

View File

@@ -25,7 +25,7 @@ import static java.util.logging.Level.WARNING;
@Immutable
@NotNullByDefault
public class ShareForumControllerImpl extends ContactSelectorControllerImpl
class ShareForumControllerImpl extends ContactSelectorControllerImpl
implements ShareForumController {
private final static Logger LOG =

View File

@@ -0,0 +1,44 @@
package org.briarproject.android.sharing;
import org.briarproject.android.ActivityScope;
import org.briarproject.android.BaseActivity;
import dagger.Module;
import dagger.Provides;
@Module
public class SharingModule {
@ActivityScope
@Provides
ShareForumController provideShareForumController(
ShareForumControllerImpl shareForumController) {
return shareForumController;
}
@ActivityScope
@Provides
BlogInvitationController provideInvitationBlogController(
BaseActivity activity,
BlogInvitationControllerImpl blogInvitationController) {
activity.addLifecycleController(blogInvitationController);
return blogInvitationController;
}
@ActivityScope
@Provides
ForumInvitationController provideInvitationForumController(
BaseActivity activity,
ForumInvitationControllerImpl forumInvitationController) {
activity.addLifecycleController(forumInvitationController);
return forumInvitationController;
}
@ActivityScope
@Provides
ShareBlogController provideShareBlogController(
ShareBlogControllerImpl shareBlogController) {
return shareBlogController;
}
}

View File

@@ -1,6 +1,7 @@
package org.briarproject.android.forum;
import org.briarproject.android.ActivityModule;
import org.briarproject.android.BaseActivity;
import org.briarproject.android.controller.BriarController;
import org.briarproject.android.controller.BriarControllerImpl;
import org.briarproject.android.threaded.ThreadItemAdapter;
@@ -32,8 +33,14 @@ public class TestForumActivity extends ForumActivity {
return c;
}
};
}
@Override
protected ForumModule getForumModule() {
return new ForumModule() {
@Override
protected ForumController provideForumController(
ForumController provideForumController(BaseActivity activity,
ForumControllerImpl forumController) {
return Mockito.mock(ForumController.class);
}