// Path: app/src/main/java/com/sampleapp/utils/UtilsModule.java
// @Module
// public class UtilsModule {
// 
//     private Context mContext;
// 
//     public UtilsModule(Context context) {
//         this.mContext = context;
//     }
// 
//     // get AppUtils instance
//     @Provides
//     @Singleton
//     public AppUtils getAppUtils() {
//         return new AppUtils(mContext);
//     }
// 
//     // get DateTimeUtils instance
//     @Provides
//     @Singleton
//     public DateTimeUtils getDateTimeUtils() {
//         return new DateTimeUtils();
//     }
// 
//     // get ProgressBarHandler instance
//     @Provides
//     @Singleton
//     public ProgressBarHandler getProgressBar() {
//         return new ProgressBarHandler(mContext);
//     }
// 
//     //get dialog utils
//     @Provides
//     @Singleton
//     public DialogsUtil getDialogUtils() {
//         return new DialogsUtil(mContext);
//     }
// 
//     //get new thread
//     @Provides
//     @Singleton
//     @Named(ValueConstants.NEW_THREAD)
//     public Scheduler getNewThread() {
//         return Schedulers.io();
//     }
// 
//     //get main thread
//     @Provides
//     @Singleton
//     @Named(ValueConstants.MAIN_THREAD)
//     public Scheduler getMainThread() {
//         return AndroidSchedulers.mainThread();
//     }
// 
//     //get Preference Manager
//     @Provides
//     @Singleton
//     public PreferenceManager getPreferences() {
//         return new PreferenceManager(mContext);
//     }
// 
//     //get Fragment utils
//     @Provides
//     @Singleton
//     public FragmentUtils getFragUtils() {
//         return new FragmentUtils();
//     }
// 
//     //get location helper methods
//     @Provides
//     @Singleton
//     public LocationHelper getLocationUtils() {
//         return new LocationHelper(mContext);
//     }
// 
//     //get location tracker
//     @Provides
//     @Singleton
//     public LocationTracker getLocationTrackerOF() {
//         return new LocationTracker(mContext);
//     }
// 
//     //get image utils
//     @Provides
//     @Singleton
//     public ImageUtility getImageUtils() {
//         return new ImageUtility(mContext);
//     }
// 
// }


import android.app.Application;
import com.crashlytics.android.Crashlytics;
import com.sampleapp.BuildConfig;
import com.sampleapp.utils.UtilsModule;
import io.fabric.sdk.android.Fabric;
import timber.log.Timber;
package com.sampleapp.base;





/**
 * Created by saveen_dhiman on 05-November-16.
 * Initialization of required libraries
 */
public class SampleApplication extends Application {

    private AppComponent mAppComponent;

    @Override
    public void onCreate() {
        super.onCreate();
        Fabric.with(this, new Crashlytics());

        //create component
        mAppComponent = DaggerAppComponent.builder()
// Path: app/src/main/java/com/sampleapp/utils/UtilsModule.java
// @Module
// public class UtilsModule {
// 
//     private Context mContext;
// 
//     public UtilsModule(Context context) {
//         this.mContext = context;
//     }
// 
//     // get AppUtils instance
//     @Provides
//     @Singleton
//     public AppUtils getAppUtils() {
//         return new AppUtils(mContext);
//     }
// 
//     // get DateTimeUtils instance
//     @Provides
//     @Singleton
//     public DateTimeUtils getDateTimeUtils() {
//         return new DateTimeUtils();
//     }
// 
//     // get ProgressBarHandler instance
//     @Provides
//     @Singleton
//     public ProgressBarHandler getProgressBar() {
//         return new ProgressBarHandler(mContext);
//     }
// 
//     //get dialog utils
//     @Provides
//     @Singleton
//     public DialogsUtil getDialogUtils() {
//         return new DialogsUtil(mContext);
//     }
// 
//     //get new thread
//     @Provides
//     @Singleton
//     @Named(ValueConstants.NEW_THREAD)
//     public Scheduler getNewThread() {
//         return Schedulers.io();
//     }
// 
//     //get main thread
//     @Provides
//     @Singleton
//     @Named(ValueConstants.MAIN_THREAD)
//     public Scheduler getMainThread() {
//         return AndroidSchedulers.mainThread();
//     }
// 
//     //get Preference Manager
//     @Provides
//     @Singleton
//     public PreferenceManager getPreferences() {
//         return new PreferenceManager(mContext);
//     }
// 
//     //get Fragment utils
//     @Provides
//     @Singleton
//     public FragmentUtils getFragUtils() {
//         return new FragmentUtils();
//     }
// 
//     //get location helper methods
//     @Provides
//     @Singleton
//     public LocationHelper getLocationUtils() {
//         return new LocationHelper(mContext);
//     }
// 
//     //get location tracker
//     @Provides
//     @Singleton
//     public LocationTracker getLocationTrackerOF() {
//         return new LocationTracker(mContext);
//     }
// 
//     //get image utils
//     @Provides
//     @Singleton
//     public ImageUtility getImageUtils() {
//         return new ImageUtility(mContext);
//     }
// 
// }


// Path: app/src/main/java/com/sampleapp/base/SampleApplication.java
import android.app.Application;
import com.crashlytics.android.Crashlytics;
import com.sampleapp.BuildConfig;
import com.sampleapp.utils.UtilsModule;
import io.fabric.sdk.android.Fabric;
import timber.log.Timber;

package com.sampleapp.base;





/**
 * Created by saveen_dhiman on 05-November-16.
 * Initialization of required libraries
 */
public class SampleApplication extends Application {

    private AppComponent mAppComponent;

    @Override
    public void onCreate() {
        super.onCreate();
        Fabric.with(this, new Crashlytics());

        //create component
        mAppComponent = DaggerAppComponent.builder()
                .utilsModule(new UtilsModule(this)).build();