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.blogs.BlogsFragment;
import org.briarproject.android.blogs.MyBlogsFragment;
import org.briarproject.android.contact.ContactListFragment;

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;
import org.briarproject.android.forum.ForumController;
import org.briarproject.android.forum.ForumControllerImpl;

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;

Ernir Erlingsson
committed
import org.briarproject.android.controller.TransportStateListener;
import org.briarproject.android.forum.ContactSelectorFragment;
import org.briarproject.android.forum.ForumListFragment;
import org.briarproject.android.forum.ForumTestControllerImpl;
import org.briarproject.android.forum.ShareForumMessageFragment;
import org.briarproject.android.fragment.BaseFragment;
import org.briarproject.android.introduction.ContactChooserFragment;
import org.briarproject.android.introduction.IntroductionMessageFragment;
import org.briarproject.android.keyagreement.ChooseIdentityFragment;
import org.briarproject.android.keyagreement.ShowQrCodeFragment;
import javax.inject.Named;
import dagger.Module;
import dagger.Provides;
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
SetupControllerImpl setupControllerImpl) {
return setupControllerImpl;
protected ConfigController provideConfigController(
ConfigControllerImpl configControllerImpl) {
return configControllerImpl;
protected SharedPreferences provideSharedPreferences(Activity activity) {
return activity.getSharedPreferences("db", Context.MODE_PRIVATE);
}
protected PasswordController providePasswordController(
PasswordControllerImpl passwordControllerImpl) {
return passwordControllerImpl;

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

Ernir Erlingsson
committed
}
@ActivityScope
@Provides
protected DbController provideDBController(
DbControllerImpl dbController) {
return dbController;
}
@ActivityScope
@Provides
protected ForumController provideForumController(
ForumControllerImpl forumController) {
activity.addLifecycleController(forumController);
return forumController;
}
@Named("ForumTestController")
@ActivityScope
@Provides
protected ForumController provideForumTestController(
ForumTestControllerImpl forumController) {
return forumController;
}
@ActivityScope

Ernir Erlingsson
committed
@Provides
protected NavDrawerController provideNavDrawerController(
NavDrawerControllerImpl navDrawerControllerImpl) {
activity.addLifecycleController(navDrawerControllerImpl);

Ernir Erlingsson
committed
if (activity instanceof TransportStateListener) {
navDrawerControllerImpl.setTransportListener(
(TransportStateListener) activity);

Ernir Erlingsson
committed
}
return navDrawerControllerImpl;

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

Ernir Erlingsson
committed
return new BriarServiceConnection();
@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;
@Provides
@Named("BlogsFragment")
BaseFragment provideBlogsFragment(BlogsFragment fragment) {
fragment.setArguments(new Bundle());
return fragment;
}
@Provides
@Named("MyBlogsFragment")
BaseFragment provideMyBlogsFragment(MyBlogsFragment fragment) {
fragment.setArguments(new Bundle());
return fragment;
}
BaseFragment provideChooseIdentityFragment(
ChooseIdentityFragment fragment) {
fragment.setArguments(new Bundle());
return fragment;
}
@Provides
@Named("ShowQrCodeFragment")
BaseFragment provideShowQrCodeFragment(ShowQrCodeFragment fragment) {
fragment.setArguments(new Bundle());
return fragment;
}
BaseFragment provideContactChooserFragment(
ContactChooserFragment fragment) {
fragment.setArguments(new Bundle());
return fragment;
}
ContactSelectorFragment provideContactSelectorFragment(
ContactSelectorFragment fragment) {
fragment.setArguments(new Bundle());
return fragment;
}
@Provides
@Named("ShareForumMessageFragment")
ShareForumMessageFragment provideShareForumMessageFragment(
ShareForumMessageFragment fragment) {
fragment.setArguments(new Bundle());
return fragment;
}
IntroductionMessageFragment provideIntroductionMessageFragment(
IntroductionMessageFragment fragment) {
fragment.setArguments(new Bundle());
return fragment;
}