/*
* Copyright 2016 Dmitry Monakhov.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* 19.01.16 18:01
*
*/
package monakhv.android.samlib.dagger.module;
import dagger.Module;
import dagger.Provides;
import monakhv.android.samlib.dagger.DatabaseScope;
import monakhv.android.samlib.data.DataExportImport;
import monakhv.android.samlib.data.SettingsHelper;
import monakhv.android.samlib.data.backup.AuthorStatePrefs;
import monakhv.android.samlib.service.SpecialAuthorService;
import monakhv.android.samlib.sql.DatabaseHelper;
import monakhv.android.samlib.tasks.AddAuthorRestore;
import monakhv.samlib.db.AuthorController;
import monakhv.samlib.http.HttpClientController;
import monakhv.samlib.service.GuiEventBus;
import monakhv.samlib.service.SamlibOperation;
import monakhv.samlib.service.AuthorUpdateService;
/**
* Database Module
* Created by monakhv on 18.01.16.
*/
@Module
public class DatabaseModule {
private final DatabaseHelper mDatabaseHelper;
public DatabaseModule(DatabaseHelper databaseHelper){
mDatabaseHelper=databaseHelper;
}
@Provides
@DatabaseScope
AuthorController providesAuthorController() {
return new AuthorController(mDatabaseHelper);
}
@Provides
@DatabaseScope
SamlibOperation providesSamlibOperation(AuthorController authorController, SettingsHelper settingsHelper, HttpClientController httpClientController, GuiEventBus bus){
return new SamlibOperation( authorController,settingsHelper,httpClientController,bus);
}
@Provides
@DatabaseScope
AuthorUpdateService providesSamlibUpdateService(AuthorController authorController, SettingsHelper settingsHelper, HttpClientController httpClientController, GuiEventBus bus){
return new AuthorUpdateService( authorController,settingsHelper,httpClientController,bus);
}
@Provides
@DatabaseScope
SpecialAuthorService providesSpecialSamlibService(AuthorController authorController, SettingsHelper settings, HttpClientController httpClientController, GuiEventBus guiEventBus, DataExportImport exportImport){
return new SpecialAuthorService( authorController, settings, httpClientController, guiEventBus, exportImport);
}
@Provides
@DatabaseScope
AddAuthorRestore providesAddAuthorRestore(SettingsHelper settings,HttpClientController httpClientController,AuthorController authorController){
return new AddAuthorRestore( settings, httpClientController,authorController);
}
@Provides
@DatabaseScope
AuthorStatePrefs providesAuthorStatePrefs(SettingsHelper settings,AuthorController authorController, AddAuthorRestore addAuthorRestore){
return new AuthorStatePrefs( settings, addAuthorRestore, authorController);
}
}