Skip to content
Snippets Groups Projects
ActivityModule.java 4.75 KiB
Newer Older
package org.briarproject.android;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;

import org.briarproject.android.contact.ContactListFragment;
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;
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.controller.TransportStateListener;
Ernir Erlingsson's avatar
Ernir Erlingsson committed
import org.briarproject.android.forum.ContactSelectorFragment;
import org.briarproject.android.forum.ForumListFragment;
Ernir Erlingsson's avatar
Ernir Erlingsson committed
import org.briarproject.android.forum.ShareForumMessageFragment;
import org.briarproject.android.fragment.BaseFragment;
Ernir Erlingsson's avatar
Ernir Erlingsson committed
import org.briarproject.android.introduction.ContactChooserFragment;
import org.briarproject.android.introduction.IntroductionMessageFragment;
Ernir Erlingsson's avatar
Ernir Erlingsson committed
import org.briarproject.android.keyagreement.ChooseIdentityFragment;
import org.briarproject.android.keyagreement.ShowQrCodeFragment;

import javax.inject.Named;

import dagger.Module;
import dagger.Provides;

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
Ernir Erlingsson's avatar
Ernir Erlingsson committed
	protected SetupController provideSetupController(
			SetupControllerImpl setupControllerImpl) {
		return setupControllerImpl;
	@Provides
	protected ConfigController provideConfigController(
			ConfigControllerImpl configControllerImpl) {
		return configControllerImpl;
	}

	@ActivityScope
	@Provides
	protected SharedPreferences provideSharedPreferences(Activity activity) {
		return activity.getSharedPreferences("db", Context.MODE_PRIVATE);
	}

	@ActivityScope
	@Provides
	protected PasswordController providePasswordController(
			PasswordControllerImpl passwordControllerImpl) {
		return passwordControllerImpl;
	protected BriarController provideBriarController(
			BriarControllerImpl briarControllerImpl) {
		activity.addLifecycleController(briarControllerImpl);
		return briarControllerImpl;
	protected NavDrawerController provideNavDrawerController(
			NavDrawerControllerImpl navDrawerControllerImpl) {
		activity.addLifecycleController(navDrawerControllerImpl);
		if (activity instanceof TransportStateListener) {
			navDrawerControllerImpl.setTransportListener(
					(TransportStateListener) activity);
		return navDrawerControllerImpl;
	protected BriarServiceConnection provideBriarServiceConnection() {

	@Provides
	@Named("ForumListFragment")
	BaseFragment provideForumListFragment(ForumListFragment fragment) {
		fragment.setArguments(new Bundle());
		return fragment;
	}

	@Provides
	@Named("ContactListFragment")
	BaseFragment provideContactListFragment(ContactListFragment fragment) {
		fragment.setArguments(new Bundle());
		return fragment;
Ernir Erlingsson's avatar
Ernir Erlingsson committed
	@Provides
	@Named("ChooseIdentityFragment")
	BaseFragment provideChooseIdentityFragment(
			ChooseIdentityFragment fragment) {
Ernir Erlingsson's avatar
Ernir Erlingsson committed
		fragment.setArguments(new Bundle());
		return fragment;
	}

	@Provides
	@Named("ShowQrCodeFragment")
	BaseFragment provideShowQrCodeFragment(ShowQrCodeFragment fragment) {
Ernir Erlingsson's avatar
Ernir Erlingsson committed
		fragment.setArguments(new Bundle());
		return fragment;
	}

Ernir Erlingsson's avatar
Ernir Erlingsson committed
	@Provides
	@Named("ContactChooserFragment")
	BaseFragment provideContactChooserFragment(
			ContactChooserFragment fragment) {
Ernir Erlingsson's avatar
Ernir Erlingsson committed
		fragment.setArguments(new Bundle());
		return fragment;
	}

Ernir Erlingsson's avatar
Ernir Erlingsson committed
	@Provides
	@Named("ContactSelectorFragment")
	ContactSelectorFragment provideContactSelectorFragment(
			ContactSelectorFragment fragment) {
Ernir Erlingsson's avatar
Ernir Erlingsson committed
		fragment.setArguments(new Bundle());
		return fragment;
	}

	@Provides
	@Named("ShareForumMessageFragment")
	ShareForumMessageFragment provideShareForumMessageFragment(
			ShareForumMessageFragment fragment) {
Ernir Erlingsson's avatar
Ernir Erlingsson committed
		fragment.setArguments(new Bundle());
		return fragment;
	}

Ernir Erlingsson's avatar
Ernir Erlingsson committed
	@Provides
	@Named("IntroductionMessageFragment")
	IntroductionMessageFragment provideIntroductionMessageFragment(
			IntroductionMessageFragment fragment) {
Ernir Erlingsson's avatar
Ernir Erlingsson committed
		fragment.setArguments(new Bundle());
		return fragment;
	}