Feat(Tool): Add tool store

Add tool store, support install tool online.
This commit is contained in:
2024-08-08 17:56:45 +08:00
parent c1879dfdc8
commit c9c0debb2b
35 changed files with 1078 additions and 179 deletions

View File

@@ -10,10 +10,12 @@ import top.fatweb.oxygen.toolbox.monitor.TimeZoneBroadcastMonitor
import top.fatweb.oxygen.toolbox.monitor.TimeZoneMonitor
import top.fatweb.oxygen.toolbox.repository.lib.DepRepository
import top.fatweb.oxygen.toolbox.repository.lib.impl.LocalDepRepository
import top.fatweb.oxygen.toolbox.repository.tool.impl.NetworkToolRepository
import top.fatweb.oxygen.toolbox.repository.tool.StoreRepository
import top.fatweb.oxygen.toolbox.repository.tool.ToolRepository
import top.fatweb.oxygen.toolbox.repository.userdata.impl.LocalUserDataRepository
import top.fatweb.oxygen.toolbox.repository.tool.impl.NetworkStoreRepository
import top.fatweb.oxygen.toolbox.repository.tool.impl.OfflineToolRepository
import top.fatweb.oxygen.toolbox.repository.userdata.UserDataRepository
import top.fatweb.oxygen.toolbox.repository.userdata.impl.LocalUserDataRepository
@Module
@InstallIn(SingletonComponent::class)
@@ -28,8 +30,11 @@ abstract class DataModule {
internal abstract fun bindsUserDataRepository(userDataRepository: LocalUserDataRepository): UserDataRepository
@Binds
internal abstract fun bindsToolRepository(toolRepository: NetworkToolRepository): ToolRepository
internal abstract fun bindsDepRepository(depRepository: LocalDepRepository): DepRepository
@Binds
internal abstract fun bindsDepRepository(depRepository: LocalDepRepository): DepRepository
internal abstract fun bindsStoreRepository(storeRepository: NetworkStoreRepository): StoreRepository
@Binds
internal abstract fun bindsToolRepository(toolRepository: OfflineToolRepository): ToolRepository
}

View File

@@ -0,0 +1,18 @@
package top.fatweb.oxygen.toolbox.di
import android.content.Context
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.qualifiers.ApplicationContext
import dagger.hilt.components.SingletonComponent
import top.fatweb.oxygen.toolbox.data.tool.ToolDatabase
import top.fatweb.oxygen.toolbox.data.tool.dao.ToolDao
@Module
@InstallIn(SingletonComponent::class)
object DatabaseModule {
@Provides
fun provideToolDao(@ApplicationContext context: Context): ToolDao =
ToolDatabase.getInstance(context).toolDao()
}