package com.byoutline.kickmaterial.dagger; import android.content.SharedPreferences; import android.support.annotation.IdRes; import com.byoutline.kickmaterial.R; import com.byoutline.kickmaterial.managers.AccessTokenProvider; import com.byoutline.ottoeventcallback.PostFromAnyThreadBus; import com.byoutline.secretsauce.BaseApp; import com.byoutline.secretsauce.di.ContainerId; import com.byoutline.secretsauce.di.DefaultFontName; import com.byoutline.secretsauce.di.SessionId; import com.squareup.otto.Bus; import dagger.Module; import dagger.Provides; @Module public class AppModule { private final BaseApp app; private static final String MEDIUM_FONT_NAME = "Roboto_Medium.ttf"; public AppModule(BaseApp app) { this.app = app; } @Provides @AppScope Bus provideBus() { return new PostFromAnyThreadBus(); } @Provides protected SharedPreferences provideSharedPrefs() { return app.getSharedPrefs(); } @Provides @SessionId String providesSessionId(AccessTokenProvider accessTokenProvider) { // In this app we handle session cleanup by dropping components manually. return accessTokenProvider.get(); } @Provides @DefaultFontName String provideDefaultFontName() { return MEDIUM_FONT_NAME; } @Provides @ContainerId @IdRes int provideContainerId() { return R.id.container; } }