package com.zedeff.twittererer;
import android.app.Application;
import android.support.annotation.VisibleForTesting;
import com.crashlytics.android.Crashlytics;
import com.zedeff.twittererer.services.TwitterService;
import com.twitter.sdk.android.Twitter;
import com.twitter.sdk.android.core.TwitterAuthConfig;
import net.danlew.android.joda.JodaTimeAndroid;
import javax.inject.Singleton;
import dagger.Component;
import io.fabric.sdk.android.Fabric;
import rx.Scheduler;
public class App extends Application {
// Note: Your consumer key and secret should be obfuscated in your source code before shipping.
@SuppressWarnings("SpellCheckingInspection")
public static final String TWITTER_KEY = "Hgt8d2nLhZdQUaIvsyxYuPhb5";
@SuppressWarnings("SpellCheckingInspection")
public static final String TWITTER_SECRET = "MeliZLYavlMiyhYTs97zyTCUOzznnog9cIrgfRHfc0TbN9PkP4";
private static BaseApplicationComponent applicationComponent;
public static BaseApplicationComponent component() {
return applicationComponent;
}
@Override
public void onCreate() {
super.onCreate();
JodaTimeAndroid.init(this);
TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
Fabric.with(this, new Crashlytics(), new Twitter(authConfig));
applicationComponent = DaggerApp_ApplicationComponent.builder()
.applicationModule(new ApplicationModule(this))
.build();
}
@VisibleForTesting
public static void overrideComponent(BaseApplicationComponent component) {
applicationComponent = component;
}
@Singleton
@Component(modules = {ApplicationModule.class})
public interface ApplicationComponent extends BaseApplicationComponent {
}
public interface BaseApplicationComponent {
Application application();
TwitterService twitterService();
Scheduler scheduler();
}
}