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); } }