// Path: app/src/main/java/com/vsahin/moneycim/Di/Modules/ActivityBuilder.java
// @Module
// public abstract class ActivityBuilder {
// 
//     @ActivityScope
//     @ContributesAndroidInjector
//     abstract MainActivity mainActivity();
// 
//     @ActivityScope
//     @ContributesAndroidInjector
//     abstract OcrCaptureActivity ocrCaptureActivity();
// }
// 
// Path: app/src/main/java/com/vsahin/moneycim/Di/Modules/DataModule.java
// @Module
// public class DataModule {
// 
//     @Singleton
//     @Provides
//     AppDatabase provideAppDatabase(Application application){
//         return Room.databaseBuilder(application, AppDatabase.class, "app_database")
//                 .allowMainThreadQueries().addCallback(new RoomDatabase.Callback() {
//                     @Override
//                     public void onCreate(@NonNull SupportSQLiteDatabase db) {
//                         super.onCreate(db);
//                         String query = "INSERT INTO SPENDING_GROUP VALUES ('1', 'Gas'), ('2', 'Food'), ('3', 'Clothes')";
//                         db.execSQL(query);
//                     }
// 
//                     @Override
//                     public void onOpen(@NonNull SupportSQLiteDatabase db) {
//                         super.onOpen(db);
//                     }
//                 })
//                 .build();
//     }
// }
// 
// Path: app/src/main/java/com/vsahin/moneycim/Di/Modules/AppModule.java
// @Module
// public abstract class AppModule {
// 
//     @Binds
//     @Singleton
//     abstract Application application(MoneycimApp app);
// }
// 
// Path: app/src/main/java/com/vsahin/moneycim/Di/Modules/FragmentBuilder.java
// @Module
// public abstract class FragmentBuilder {
// 
//     @FragmentScope
//     @ContributesAndroidInjector
//     abstract SpendingListFragment spendingListFragment();
// 
//     @FragmentScope
//     @ContributesAndroidInjector
//     abstract AddAndEditSpendingFragment addAndEditSpendingFragment();
// 
//     @FragmentScope
//     @ContributesAndroidInjector
//     abstract TotalSpendingQuantityFragment totalSpendingQuantityFragment();
// }
// 
// Path: app/src/main/java/com/vsahin/moneycim/MoneycimApp.java
// public class MoneycimApp extends DaggerApplication {
//     @Override
//     protected AndroidInjector<? extends DaggerApplication> applicationInjector() {
//         return DaggerAppComponent.builder().create(this);
//     }
// }


import com.vsahin.moneycim.Di.Modules.ActivityBuilder;
import com.vsahin.moneycim.Di.Modules.DataModule;
import com.vsahin.moneycim.Di.Modules.AppModule;
import com.vsahin.moneycim.Di.Modules.FragmentBuilder;
import com.vsahin.moneycim.Di.Modules.ViewModelModule;
import com.vsahin.moneycim.MoneycimApp;
import javax.inject.Singleton;
import dagger.Component;
import dagger.android.AndroidInjector;
import dagger.android.support.AndroidSupportInjectionModule;

package com.vsahin.moneycim.Di;




/**
 * Created by Volkan Şahin on 18.08.2017.
 */

@Singleton
@Component(modules = {
        AndroidSupportInjectionModule.class,
        AppModule.class,
        ActivityBuilder.class,
        FragmentBuilder.class,
        DataModule.class,

// Path: app/src/main/java/com/vsahin/moneycim/Di/Modules/ActivityBuilder.java
// @Module
// public abstract class ActivityBuilder {
// 
//     @ActivityScope
//     @ContributesAndroidInjector
//     abstract MainActivity mainActivity();
// 
//     @ActivityScope
//     @ContributesAndroidInjector
//     abstract OcrCaptureActivity ocrCaptureActivity();
// }
// 
// Path: app/src/main/java/com/vsahin/moneycim/Di/Modules/DataModule.java
// @Module
// public class DataModule {
// 
//     @Singleton
//     @Provides
//     AppDatabase provideAppDatabase(Application application){
//         return Room.databaseBuilder(application, AppDatabase.class, "app_database")
//                 .allowMainThreadQueries().addCallback(new RoomDatabase.Callback() {
//                     @Override
//                     public void onCreate(@NonNull SupportSQLiteDatabase db) {
//                         super.onCreate(db);
//                         String query = "INSERT INTO SPENDING_GROUP VALUES ('1', 'Gas'), ('2', 'Food'), ('3', 'Clothes')";
//                         db.execSQL(query);
//                     }
// 
//                     @Override
//                     public void onOpen(@NonNull SupportSQLiteDatabase db) {
//                         super.onOpen(db);
//                     }
//                 })
//                 .build();
//     }
// }
// 
// Path: app/src/main/java/com/vsahin/moneycim/Di/Modules/AppModule.java
// @Module
// public abstract class AppModule {
// 
//     @Binds
//     @Singleton
//     abstract Application application(MoneycimApp app);
// }
// 
// Path: app/src/main/java/com/vsahin/moneycim/Di/Modules/FragmentBuilder.java
// @Module
// public abstract class FragmentBuilder {
// 
//     @FragmentScope
//     @ContributesAndroidInjector
//     abstract SpendingListFragment spendingListFragment();
// 
//     @FragmentScope
//     @ContributesAndroidInjector
//     abstract AddAndEditSpendingFragment addAndEditSpendingFragment();
// 
//     @FragmentScope
//     @ContributesAndroidInjector
//     abstract TotalSpendingQuantityFragment totalSpendingQuantityFragment();
// }
// 
// Path: app/src/main/java/com/vsahin/moneycim/MoneycimApp.java
// public class MoneycimApp extends DaggerApplication {
//     @Override
//     protected AndroidInjector<? extends DaggerApplication> applicationInjector() {
//         return DaggerAppComponent.builder().create(this);
//     }
// }


// Path: app/src/main/java/com/vsahin/moneycim/Di/AppComponent.java
import com.vsahin.moneycim.Di.Modules.ActivityBuilder;
import com.vsahin.moneycim.Di.Modules.DataModule;
import com.vsahin.moneycim.Di.Modules.AppModule;
import com.vsahin.moneycim.Di.Modules.FragmentBuilder;
import com.vsahin.moneycim.Di.Modules.ViewModelModule;
import com.vsahin.moneycim.MoneycimApp;
import javax.inject.Singleton;
import dagger.Component;
import dagger.android.AndroidInjector;
import dagger.android.support.AndroidSupportInjectionModule;

package com.vsahin.moneycim.Di;




/**
 * Created by Volkan Şahin on 18.08.2017.
 */

@Singleton
@Component(modules = {
        AndroidSupportInjectionModule.class,
        AppModule.class,
        ActivityBuilder.class,
        FragmentBuilder.class,
        DataModule.class,

        ViewModelModule.class
