package com.gettingmobile.goodnews; import com.gettingmobile.android.util.ApiLevel; import com.gettingmobile.goodnews.settings.FullSettingsActivity; import com.gettingmobile.goodnews.settings.RootSettingsActivity; import com.gettingmobile.goodnews.settings.SettingsActivity; import com.gettingmobile.goodnews.settings.SettingsIntentFactory; import com.gettingmobile.goodnews.sync.SyncServiceProxy; import com.gettingmobile.goodnews.util.ThemeUtil; import com.google.inject.AbstractModule; import com.google.inject.TypeLiteral; import com.google.inject.name.Names; public class InjectionModule extends AbstractModule { public static final String IS_TABLET = "isTablet"; private final Application app; public InjectionModule(Application app) { this.app = app; } @Override protected void configure() { bind(Application.class).toInstance(app); bind(SyncServiceProxy.class).toInstance(app.getSyncService()); bind(new TypeLiteral<Class<? extends FullSettingsActivity>>() {}).toInstance( ApiLevel.isAtLeast(ApiLevel.V_3_0) ? SettingsActivity.class : RootSettingsActivity.class); bindConstant().annotatedWith(Names.named(IS_TABLET)).to(ThemeUtil.isTablet(app)); bind(SettingsIntentFactory.class); } }