Newer
Older
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;

Ernir Erlingsson
committed
import org.briarproject.android.controller.BriarController;
import org.briarproject.android.controller.BriarControllerImpl;
import org.briarproject.android.controller.ConfigController;
import org.briarproject.android.controller.ConfigControllerImpl;
import org.briarproject.android.controller.DbController;
import org.briarproject.android.controller.DbControllerImpl;

Ernir Erlingsson
committed
import org.briarproject.android.controller.NavDrawerController;
import org.briarproject.android.controller.NavDrawerControllerImpl;
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.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;
import static android.content.Context.MODE_PRIVATE;
import static org.briarproject.android.BriarService.BriarServiceConnection;

Ernir Erlingsson
committed
@Module
public class ActivityModule {
private final BaseActivity activity;
public ActivityModule(BaseActivity activity) {
this.activity = activity;
}

Ernir Erlingsson
committed
@ActivityScope
@Provides
BaseActivity provideBaseActivity() {

Ernir Erlingsson
committed
return activity;
}
Activity provideActivity() {
return activity;
}
@ActivityScope
@Provides
SetupController provideSetupController(
SetupControllerImpl setupController) {
return setupController;
ConfigController provideConfigController(
ConfigControllerImpl configController) {
return configController;
SharedPreferences provideSharedPreferences(Activity activity) {
return activity.getSharedPreferences("db", MODE_PRIVATE);
PasswordController providePasswordController(
PasswordControllerImpl passwordController) {
return passwordController;

Ernir Erlingsson
committed
}
@ActivityScope
@Provides
protected BriarController provideBriarController(
BriarControllerImpl briarController) {
activity.addLifecycleController(briarController);
return briarController;

Ernir Erlingsson
committed
}
@ActivityScope
@Provides
DbController provideDBController(DbControllerImpl dbController) {
return dbController;
}
GroupListController provideGroupListController(
GroupListControllerImpl groupListController) {
return groupListController;
}
@ActivityScope
@Provides
protected CreateGroupController provideCreateGroupController(
CreateGroupControllerImpl createGroupController) {
return createGroupController;
@ActivityScope
@Provides
protected GroupController provideGroupController(
GroupControllerImpl groupController) {
return groupController;
}
protected GroupInvitationController provideInvitationGroupController(
GroupInvitationControllerImpl groupInvitationController) {
return groupInvitationController;
@ActivityScope
@Provides
protected ForumController provideForumController(
ForumControllerImpl forumController) {
activity.addLifecycleController(forumController);
return forumController;
}
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;
}
FeedController provideFeedController(FeedControllerImpl feedController) {

Ernir Erlingsson
committed
@Provides
NavDrawerController provideNavDrawerController(
NavDrawerControllerImpl navDrawerController) {
activity.addLifecycleController(navDrawerController);
return navDrawerController;

Ernir Erlingsson
committed
}
@ActivityScope
@Provides
BriarServiceConnection provideBriarServiceConnection() {

Ernir Erlingsson
committed
return new BriarServiceConnection();