Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions app/src/main/java/com/doyoonkim/knutice/MainApplication.kt
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,11 @@ class MainApplication() : Application(), AppInjectorProvider, WidgetDependencyPr
when(target) {
is PushNotificationService -> {
DaggerNotificationServiceComponent.factory()
.create(appComponent, appComponent).inject(target)
.create(
systemServices = appComponent,
networkProvider = appComponent,
localPreferenceProvider = appComponent
).inject(target)
}
else -> error("Unsupported Target $target")
}
Expand All @@ -41,7 +45,10 @@ class MainApplication() : Application(), AppInjectorProvider, WidgetDependencyPr


override fun provide(): WidgetDependency {
return DaggerWidgetComponent.factory().create(appComponent, appComponent)
return DaggerWidgetComponent.factory().create(
systemServices = appComponent,
networkProvider = appComponent,
localPreferenceProvider = appComponent)
}

@Inject lateinit var notificationManager: NotificationManager
Expand Down
1 change: 1 addition & 0 deletions app/src/main/java/com/doyoonkim/knutice/SplashActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ class SplashActivity : ComponentActivity() {
systemServices = appComponent,
networkProvider = appComponent,
localStorageProvider = appComponent,
localPreferenceProvider = appComponent,
firebaseInfrastructureProvider = appComponent
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ class WidgetConfigurationActivity : ComponentActivity() {
// Dependency Injection
val appComponent = (application as MainApplication).appComponent
val sceneComponent = DaggerWidgetConfigSceneComponent.factory().create(
systemService = appComponent
systemService = appComponent,
localPreferenceProvider = appComponent
)

WidgetPreferencesScreen(
Expand Down
10 changes: 6 additions & 4 deletions app/src/main/java/com/doyoonkim/knutice/WidgetSyncObserver.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ package com.doyoonkim.knutice
import android.util.Log
import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner
import com.doyoonkim.common.di.AppPreferences
import com.doyoonkim.domain.interfaces.AppSubscriptionPreferenceRepository
import com.doyoonkim.domain.interfaces.AppWidgetPreferenceRepository
import com.doyoonkim.domain.interfaces.LocalWidgetCacheRepository
import com.doyoonkim.model.WidgetCategoryPolicy
import com.doyoonkim.widget.model.CarrelWidgetState
Expand All @@ -17,7 +18,8 @@ import javax.inject.Inject
class WidgetSyncObserver @Inject constructor(
private val localWidgetCacheRepository: LocalWidgetCacheRepository,
private val widgetStateUpdater: WidgetStateUpdater,
private val appPreference: AppPreferences,
private val appWidgetPreference: AppWidgetPreferenceRepository,
private val appSubscriptionPreference: AppSubscriptionPreferenceRepository,
private val applicationScope: CoroutineScope
): DefaultLifecycleObserver {

Expand All @@ -42,7 +44,7 @@ class WidgetSyncObserver @Inject constructor(
contentUrl = vo.url
)
}
val categoryPolicy = appPreference.getWidgetCategoryPolicy()
val categoryPolicy = appWidgetPreference.getWidgetCategoryPolicy()
// Category Mismatch: Recent Category Changed via WidgetConfiguration. Widget is already updated.
if (categoryPolicy != localWidgetCacheRepository.widgetCategoryCacheState.value) return

Expand All @@ -56,7 +58,7 @@ class WidgetSyncObserver @Inject constructor(
)
}
is WidgetCategoryPolicy.Major -> {
val majorCategory = appPreference.getSubscribedMajor()
val majorCategory = appSubscriptionPreference.getSubscribedMajor()
majorCategory?.let {
updateNoticeWidgetState(
WidgetState(it, noticeCache)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package com.doyoonkim.knutice.di.components

import android.app.Application
import androidx.work.ListenableWorker
import com.doyoonkim.common.di.AppPreferences
import com.doyoonkim.data.di.LocalModule
import com.doyoonkim.data.di.TokenRemoteModule
import com.doyoonkim.domain.di.AsyncFtsEntryInsertionModule
Expand All @@ -15,12 +14,15 @@ import com.doyoonkim.network.di.NetworkModule
import com.doyoonkim.notification.di.FcmTokenModule
import com.doyoonkim.common.worker.IntermediateWorkerFactory
import com.doyoonkim.data.di.CampusRemoteModule
import com.doyoonkim.data.di.LocalPreferenceModule
import com.doyoonkim.data.di.NoticeRemoteModule
import com.doyoonkim.data.di.RoomDatabaseModule
import com.doyoonkim.data.di.SystemCoroutineModule
import com.doyoonkim.infrastructure.di.FirebaseAnalyticsModule
import com.doyoonkim.infrastructure.di.FirebaseRemoteConfigModule
import com.doyoonkim.knutice.di.util.FirebaseInfrastructureProvider
import com.doyoonkim.knutice.di.util.LocalCacheProvider
import com.doyoonkim.knutice.di.util.LocalPreferenceProvider
import com.doyoonkim.knutice.di.util.LocalStorageProvider
import com.doyoonkim.knutice.di.util.NetworkProvider
import com.doyoonkim.knutice.di.util.SystemServices
Expand All @@ -41,20 +43,20 @@ import javax.inject.Singleton
SystemCoroutineModule::class,
LocalModule::class,
RoomDatabaseModule::class,
LocalPreferenceModule::class,
NetworkModule::class
]
)
interface AppComponent :
SystemServices,
NetworkProvider,
LocalStorageProvider,
LocalCacheProvider,
LocalPreferenceProvider,
FirebaseInfrastructureProvider
{
fun inject(app: MainApplication)

// AppPref Instance
fun appPreference(): AppPreferences

// Worker Subcomponent
fun workerComponent(): WorkerSubcomponent.Factory

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.doyoonkim.data.di.ImageRemoteModule
import com.doyoonkim.data.di.TokenRemoteModule
import com.doyoonkim.domain.di.TokenUseCaseModule
import com.doyoonkim.knutice.di.modules.WorkSchedulerModule
import com.doyoonkim.knutice.di.util.LocalPreferenceProvider
import com.doyoonkim.knutice.di.util.NetworkProvider
import com.doyoonkim.knutice.di.util.SystemServices
import com.doyoonkim.notification.di.NotificationModule
Expand All @@ -14,6 +15,7 @@ import dagger.Component
@Component(
dependencies = [
SystemServices::class,
LocalPreferenceProvider::class,
NetworkProvider::class
],
modules = [
Expand All @@ -32,7 +34,8 @@ interface NotificationServiceComponent {
interface Factory {
fun create(
systemServices: SystemServices,
networkProvider: NetworkProvider
networkProvider: NetworkProvider,
localPreferenceProvider: LocalPreferenceProvider
): NotificationServiceComponent
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ import com.doyoonkim.domain.di.TipUseCaseModule
import com.doyoonkim.knutice.di.modules.ViewModelFactoryModule
import com.doyoonkim.knutice.di.modules.WorkSchedulerModule
import com.doyoonkim.knutice.di.util.FirebaseInfrastructureProvider
import com.doyoonkim.knutice.di.util.LocalCacheProvider
import com.doyoonkim.knutice.di.util.LocalPreferenceProvider
import com.doyoonkim.knutice.di.util.LocalStorageProvider
import com.doyoonkim.knutice.di.util.NetworkProvider
import com.doyoonkim.knutice.di.util.SystemServices
Expand All @@ -37,7 +39,8 @@ import javax.inject.Singleton
@Component(
dependencies = [
SystemServices::class,
LocalStorageProvider::class,
LocalCacheProvider::class,
LocalPreferenceProvider::class,
NetworkProvider::class,
FirebaseInfrastructureProvider::class
],
Expand All @@ -58,14 +61,19 @@ interface HomeSceneComponent {
fun create(
systemServices: SystemServices,
networkProvider: NetworkProvider,
localStorageProvider: LocalStorageProvider,
localCacheProvider: LocalCacheProvider,
localPreferenceProvider: LocalPreferenceProvider,
firebaseInfrastructureProvider: FirebaseInfrastructureProvider
): HomeSceneComponent
}
}

@Component(
dependencies = [SystemServices::class, NetworkProvider::class],
dependencies = [
SystemServices::class,
NetworkProvider::class,
LocalPreferenceProvider::class
],
modules = [
ViewModelFactoryModule::class,
NoticeByMajorSceneModule::class,
Expand All @@ -82,14 +90,19 @@ interface NoticeByMajorSceneComponent {
interface Factory {
fun create(
systemServices: SystemServices,
networkProvider: NetworkProvider
networkProvider: NetworkProvider,
localPreferenceProvider: LocalPreferenceProvider
): NoticeByMajorSceneComponent
}
}


@Component(
dependencies = [SystemServices::class, LocalStorageProvider::class],
dependencies = [
SystemServices::class,
LocalStorageProvider::class,
LocalPreferenceProvider::class
],
modules = [
ViewModelFactoryModule::class,
BookmarkListSceneModule::class,
Expand All @@ -103,6 +116,7 @@ interface BookmarkListSceneComponent {
interface Factory {
fun create(
systemServices: SystemServices,
localPreferenceProvider: LocalPreferenceProvider,
localStorageProvider: LocalStorageProvider
): BookmarkListSceneComponent
}
Expand Down Expand Up @@ -212,7 +226,11 @@ interface NoticeInCategorySceneComponent {


@Component(
dependencies = [SystemServices::class, NetworkProvider::class],
dependencies = [
SystemServices::class,
LocalPreferenceProvider::class,
NetworkProvider::class
],
modules = [
ViewModelFactoryModule::class,
CustomerServiceSceneModule::class,
Expand All @@ -227,14 +245,19 @@ interface CustomerServiceSceneComponent {
interface Factory {
fun create(
systemService: SystemServices,
localPreferenceProvider: LocalPreferenceProvider,
networkProvider: NetworkProvider
): CustomerServiceSceneComponent
}
}


@Component(
dependencies = [SystemServices::class, NetworkProvider::class],
dependencies = [
SystemServices::class,
LocalPreferenceProvider::class,
NetworkProvider::class
],
modules = [
ViewModelFactoryModule::class,
NotificationPreferencesSceneModule::class,
Expand All @@ -249,14 +272,20 @@ interface NotificationPreferencesSceneComponent {
interface Factory {
fun create(
systemServices: SystemServices,
localPreferenceProvider: LocalPreferenceProvider,
networkProvider: NetworkProvider
): NotificationPreferencesSceneComponent
}
}


@Component(
dependencies = [SystemServices::class, NetworkProvider::class, LocalStorageProvider::class ],
dependencies = [
SystemServices::class,
NetworkProvider::class,
LocalStorageProvider::class,
LocalPreferenceProvider::class
],
modules = [
ViewModelFactoryModule::class,
SettingsSceneModule::class,
Expand All @@ -272,7 +301,8 @@ interface SettingsSceneComponent {
fun create(
systemServices: SystemServices,
networkProvider: NetworkProvider,
localStorageProvider: LocalStorageProvider
localStorageProvider: LocalStorageProvider,
localPreferenceProvider: LocalPreferenceProvider
): SettingsSceneComponent
}
}
Expand All @@ -283,6 +313,7 @@ interface SettingsSceneComponent {
SystemServices::class,
NetworkProvider::class,
LocalStorageProvider::class,
LocalPreferenceProvider::class,
FirebaseInfrastructureProvider::class
],
modules = [
Expand All @@ -303,13 +334,14 @@ interface SplashSceneComponent {
systemServices: SystemServices,
networkProvider: NetworkProvider,
localStorageProvider: LocalStorageProvider,
localPreferenceProvider: LocalPreferenceProvider,
firebaseInfrastructureProvider: FirebaseInfrastructureProvider
): SplashSceneComponent
}
}

@Component(
dependencies = [SystemServices::class],
dependencies = [SystemServices::class, LocalPreferenceProvider::class],
modules = [
ViewModelFactoryModule::class,
WidgetConfigSceneModule::class,
Expand All @@ -322,15 +354,19 @@ interface WidgetConfigSceneComponent {

@Component.Factory
interface Factory {
fun create(systemService: SystemServices): WidgetConfigSceneComponent
fun create(
systemService: SystemServices,
localPreferenceProvider: LocalPreferenceProvider
): WidgetConfigSceneComponent
}
}

@Component(
dependencies = [
SystemServices::class,
NetworkProvider::class,
LocalStorageProvider::class
LocalCacheProvider::class,
LocalPreferenceProvider::class
],
modules = [
ViewModelFactoryModule::class,
Expand All @@ -346,7 +382,8 @@ interface CarrelStatusSceneComponent {
fun create(
systemServices: SystemServices,
networkProvider: NetworkProvider,
localStorageProvider: LocalStorageProvider
localCacheProvider: LocalCacheProvider,
localPreferenceProvider: LocalPreferenceProvider
): CarrelStatusSceneComponent
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.doyoonkim.knutice.di.components

import com.doyoonkim.knutice.di.modules.WorkSchedulerModule
import com.doyoonkim.knutice.di.util.LocalPreferenceProvider
import com.doyoonkim.knutice.di.util.NetworkProvider
import com.doyoonkim.knutice.di.util.SystemServices
import com.doyoonkim.widget.di.WidgetDependency
Expand All @@ -9,6 +10,7 @@ import dagger.Component
@Component(
dependencies = [
SystemServices::class,
LocalPreferenceProvider::class,
NetworkProvider::class
],
modules = [
Expand All @@ -21,7 +23,8 @@ interface WidgetComponent: WidgetDependency {
interface Factory {
fun create(
systemServices: SystemServices,
networkProvider: NetworkProvider
networkProvider: NetworkProvider,
localPreferenceProvider: LocalPreferenceProvider
): WidgetComponent
}
}
Loading
Loading