package io.kaif.mobile.util;
import javax.inject.Singleton;
import com.google.gson.Gson;
import com.squareup.leakcanary.LeakCanary;
import com.squareup.leakcanary.RefWatcher;
import android.app.Application;
import android.content.Context;
import android.content.SharedPreferences;
import android.net.ConnectivityManager;
import android.preference.PreferenceManager;
import dagger.Module;
import dagger.Provides;
@Module
public class UtilModule {
private final Application application;
public UtilModule(Application application) {
this.application = application;
}
@Provides
@Singleton
Context provideApplicationContext() {
return this.application;
}
@Provides
@Singleton
Gson provideGson() {
return new Gson();
}
@Provides
@Singleton
SharedPreferences provideSharedPreferences() {
return PreferenceManager.getDefaultSharedPreferences(application);
}
@Provides
@Singleton
ConnectivityManager provideConnectivityManager() {
return (ConnectivityManager) application.getSystemService(Context.CONNECTIVITY_SERVICE);
}
@Provides
@Singleton
RefWatcher provideRefWatcher() {
return LeakCanary.install(application);
}
}