/* * Copyright (C) 2020 Conny Duck * * This file is part of Pixelcat. * * Pixelcat is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Pixelcat is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package at.connyduck.pixelcat.dagger import android.app.Application import android.content.Context import android.content.SharedPreferences import androidx.preference.PreferenceManager import androidx.room.Room import at.connyduck.pixelcat.PixelcatApplication import at.connyduck.pixelcat.db.AccountManager import at.connyduck.pixelcat.db.AppDatabase import dagger.Module import dagger.Provides import javax.inject.Singleton @Module class AppModule { @Provides fun providesApp(app: PixelcatApplication): Application = app @Provides fun providesContext(app: Application): Context = app @Provides fun providesSharedPreferences(app: Application): SharedPreferences { return PreferenceManager.getDefaultSharedPreferences(app) } @Provides @Singleton fun providesDatabase(app: PixelcatApplication): AppDatabase { return Room .databaseBuilder(app, AppDatabase::class.java, "pixelcat.db") .build() } @Provides @Singleton fun providesAccountManager(db: AppDatabase): AccountManager { return AccountManager(db) } }