Skip to content
Snippets Groups Projects
ActivityModule.java 5.46 KiB
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;
Torsten Grote's avatar
Torsten Grote committed
import org.briarproject.android.blogs.FeedController;
import org.briarproject.android.blogs.FeedControllerImpl;
import org.briarproject.android.controller.BriarController;
import org.briarproject.android.controller.BriarControllerImpl;
Ernir Erlingsson's avatar
Ernir Erlingsson committed
import org.briarproject.android.controller.ConfigController;
import org.briarproject.android.controller.ConfigControllerImpl;
akwizgran's avatar
akwizgran committed
import org.briarproject.android.controller.DbController;
import org.briarproject.android.controller.DbControllerImpl;
import org.briarproject.android.controller.NavDrawerController;
import org.briarproject.android.controller.NavDrawerControllerImpl;
Ernir Erlingsson's avatar
Ernir Erlingsson committed
import org.briarproject.android.controller.PasswordController;
import org.briarproject.android.controller.PasswordControllerImpl;
Ernir Erlingsson's avatar
Ernir Erlingsson committed
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;
Torsten Grote's avatar
Torsten Grote committed
import org.briarproject.android.privategroup.invitation.GroupInvitationController;
import org.briarproject.android.privategroup.invitation.GroupInvitationControllerImpl;
Torsten Grote's avatar
Torsten Grote committed
import org.briarproject.android.privategroup.list.GroupListController;
import org.briarproject.android.privategroup.list.GroupListControllerImpl;
Torsten Grote's avatar
Torsten Grote committed
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;
Ernir Erlingsson's avatar
Ernir Erlingsson committed
import static org.briarproject.android.BriarService.BriarServiceConnection;
@Module
public class ActivityModule {

	private final BaseActivity activity;

	public ActivityModule(BaseActivity activity) {
		this.activity = activity;
	}

	BaseActivity provideBaseActivity() {
	@ActivityScope
	@Provides
	Activity provideActivity() {
		return activity;
	}

	@ActivityScope
	@Provides
	SetupController provideSetupController(
			SetupControllerImpl setupController) {
		return setupController;
	@Provides
	ConfigController provideConfigController(
			ConfigControllerImpl configController) {
		return configController;
	}

	@ActivityScope
	@Provides
	SharedPreferences provideSharedPreferences(Activity activity) {
		return activity.getSharedPreferences("db", MODE_PRIVATE);
	@ActivityScope
	@Provides
	PasswordController providePasswordController(
			PasswordControllerImpl passwordController) {
		return passwordController;
	protected BriarController provideBriarController(
			BriarControllerImpl briarController) {
		activity.addLifecycleController(briarController);
		return briarController;
	DbController provideDBController(DbControllerImpl dbController) {
Torsten Grote's avatar
Torsten Grote committed
	@ActivityScope
	@Provides
	GroupListController provideGroupListController(
Torsten Grote's avatar
Torsten Grote committed
			GroupListControllerImpl groupListController) {
		return groupListController;
	}

	@ActivityScope
	@Provides
	protected CreateGroupController provideCreateGroupController(
			CreateGroupControllerImpl createGroupController) {
		return createGroupController;
	@ActivityScope
	@Provides
	protected GroupController provideGroupController(
			GroupControllerImpl groupController) {
		return groupController;
	}

	@ActivityScope
	@Provides
Torsten Grote's avatar
Torsten Grote committed
	protected GroupInvitationController provideInvitationGroupController(
			GroupInvitationControllerImpl groupInvitationController) {
		return groupInvitationController;
	@Provides
	protected ForumController provideForumController(
			ForumControllerImpl forumController) {
		activity.addLifecycleController(forumController);
		return forumController;
	}

	@ActivityScope
	@Provides
Torsten Grote's avatar
Torsten Grote committed
	protected ForumInvitationController provideInvitationForumController(
			ForumInvitationControllerImpl forumInvitationController) {
		activity.addLifecycleController(forumInvitationController);
		return forumInvitationController;
	}

	@ActivityScope
	@Provides
Torsten Grote's avatar
Torsten Grote committed
	protected BlogInvitationController provideInvitationBlogController(
			BlogInvitationControllerImpl blogInvitationController) {
		activity.addLifecycleController(blogInvitationController);
		return blogInvitationController;
	@ActivityScope
	@Provides
	BlogController provideBlogController(BlogControllerImpl blogController) {
		activity.addLifecycleController(blogController);
		return blogController;
	}

Torsten Grote's avatar
Torsten Grote committed
	@ActivityScope
	@Provides
	FeedController provideFeedController(FeedControllerImpl feedController) {
Torsten Grote's avatar
Torsten Grote committed
		return feedController;
	}

	NavDrawerController provideNavDrawerController(
			NavDrawerControllerImpl navDrawerController) {
		activity.addLifecycleController(navDrawerController);
		return navDrawerController;
	BriarServiceConnection provideBriarServiceConnection() {