Skip to content
Snippets Groups Projects
Forked from briar / briar
5060 commits behind the upstream repository.
  • Torsten Grote's avatar
    fd7278b4
    Combined Blog Feed · fd7278b4
    Torsten Grote authored
    This commit addes a combined blog feed that shows all posts of all
    subscribed blogs in the order the blog posts have been received.
    
    For now, this commit also hides other blog functionality like adding
    additional blogs and browsing individual blogs.
    
    Closes #417
    Verified
    fd7278b4
    History
    Combined Blog Feed
    Torsten Grote authored
    This commit addes a combined blog feed that shows all posts of all
    subscribed blogs in the order the blog posts have been received.
    
    For now, this commit also hides other blog functionality like adding
    additional blogs and browsing individual blogs.
    
    Closes #417
ActivityModule.java 4.00 KiB
package org.briarproject.android;

import android.app.Activity;
import android.content.Context;
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;
import org.briarproject.android.controller.ConfigControllerImpl;
import org.briarproject.android.controller.DbController;
import org.briarproject.android.controller.DbControllerImpl;
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.controller.TransportStateListener;
import org.briarproject.android.forum.ForumController;
import org.briarproject.android.forum.ForumControllerImpl;
import org.briarproject.android.forum.ForumTestControllerImpl;

import javax.inject.Named;

import dagger.Module;
import dagger.Provides;

import static org.briarproject.android.BriarService.BriarServiceConnection;

@Module
public class ActivityModule {

	private final BaseActivity activity;

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

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

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

	@ActivityScope
	@Provides
	protected SetupController provideSetupController(
			SetupControllerImpl setupControllerImpl) {
		return setupControllerImpl;
	}

	@ActivityScope
	@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;
	}

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

	@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
	@Provides
	BlogController provideBlogController(BlogControllerImpl blogController) {
		activity.addLifecycleController(blogController);
		return blogController;
	}

	@ActivityScope
	@Provides
	protected FeedController provideFeedController(
			FeedControllerImpl feedController) {
		return feedController;
	}

	@ActivityScope
	@Provides
	protected NavDrawerController provideNavDrawerController(
			NavDrawerControllerImpl navDrawerControllerImpl) {
		activity.addLifecycleController(navDrawerControllerImpl);
		if (activity instanceof TransportStateListener) {
			navDrawerControllerImpl.setTransportListener(
					(TransportStateListener) activity);
		}
		return navDrawerControllerImpl;
	}

	@ActivityScope
	@Provides
	protected BriarServiceConnection provideBriarServiceConnection() {
		return new BriarServiceConnection();
	}

}