diff --git a/app/dependencies/releaseRuntimeClasspath.txt b/app/dependencies/releaseRuntimeClasspath.txt index ef602f696..b52d5770b 100644 --- a/app/dependencies/releaseRuntimeClasspath.txt +++ b/app/dependencies/releaseRuntimeClasspath.txt @@ -94,10 +94,8 @@ androidx.emoji2:emoji2:1.4.0 androidx.exifinterface:exifinterface:1.4.1 androidx.fragment:fragment:1.5.4 androidx.graphics:graphics-path:1.0.1 -androidx.hilt:hilt-common:1.3.0 androidx.hilt:hilt-lifecycle-viewmodel-compose:1.3.0 androidx.hilt:hilt-lifecycle-viewmodel:1.3.0 -androidx.hilt:hilt-work:1.3.0 androidx.interpolator:interpolator:1.0.0 androidx.legacy:legacy-support-core-utils:1.0.0 androidx.lifecycle:lifecycle-common-java8:2.10.0 diff --git a/app/proguardShield/releaseFastRules.txt b/app/proguardShield/releaseFastRules.txt index 6ecb65fa7..2588813f8 100644 --- a/app/proguardShield/releaseFastRules.txt +++ b/app/proguardShield/releaseFastRules.txt @@ -440,7 +440,6 @@ static java.lang.Void compose*RuntimeError(...); -keepclassmembers,allowshrinking,allowobfuscation interface * { @retrofit2.http.* ; } --keepnames @androidx.hilt.work.HiltWorker class * extends androidx.work.ListenableWorker -keepnames @kotlinx.serialization.internal.NamedCompanion class * -keepnames class * extends androidx.startup.Initializer -keepnames class * extends androidx.work.InputMerger diff --git a/feature/tasks/impl/build.gradle b/feature/tasks/impl/build.gradle index 72736c8c9..dadb48965 100644 --- a/feature/tasks/impl/build.gradle +++ b/feature/tasks/impl/build.gradle @@ -1,6 +1,5 @@ plugins { id "moop.android.feature" - id "com.google.devtools.ksp" } android { @@ -15,9 +14,6 @@ dependencies { implementation projects.feature.tasks.api implementation projects.feature.notification.api - implementation libs.androidx.hilt.work - ksp libs.androidx.hilt.compiler - implementation libs.androidx.work.runtime androidTestImplementation libs.androidx.work.testing diff --git a/feature/tasks/impl/src/main/AndroidManifest.xml b/feature/tasks/impl/src/main/AndroidManifest.xml deleted file mode 100644 index c2f377881..000000000 --- a/feature/tasks/impl/src/main/AndroidManifest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - diff --git a/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/AnnounceOpenDateWorker.kt b/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/AnnounceOpenDateWorker.kt index 402338bd7..4aeaaab1d 100644 --- a/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/AnnounceOpenDateWorker.kt +++ b/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/AnnounceOpenDateWorker.kt @@ -16,20 +16,21 @@ package soup.movie.feature.tasks.impl import android.content.Context -import androidx.hilt.work.HiltWorker import androidx.work.CoroutineWorker import androidx.work.WorkerParameters -import dagger.assisted.Assisted -import dagger.assisted.AssistedInject +import dagger.hilt.android.EntryPointAccessors +import soup.movie.feature.tasks.impl.di.WorkerEntryPoint import soup.movie.log.Logger -@HiltWorker -class AnnounceOpenDateWorker @AssistedInject constructor( - @Assisted context: Context, - @Assisted params: WorkerParameters, - private val announceOpenDate: AnnounceOpenDateUseCase, +class AnnounceOpenDateWorker( + context: Context, + params: WorkerParameters, ) : CoroutineWorker(context, params) { + private val announceOpenDate = EntryPointAccessors + .fromApplication(context, WorkerEntryPoint::class.java) + .announceOpenDate() + override suspend fun doWork(): Result { Logger.d("doWork: start!") return try { diff --git a/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/SyncOpenDateWorker.kt b/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/SyncOpenDateWorker.kt index e98232960..93a9376f4 100644 --- a/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/SyncOpenDateWorker.kt +++ b/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/SyncOpenDateWorker.kt @@ -16,20 +16,21 @@ package soup.movie.feature.tasks.impl import android.content.Context -import androidx.hilt.work.HiltWorker import androidx.work.CoroutineWorker import androidx.work.WorkerParameters -import dagger.assisted.Assisted -import dagger.assisted.AssistedInject +import dagger.hilt.android.EntryPointAccessors +import soup.movie.feature.tasks.impl.di.WorkerEntryPoint import soup.movie.log.Logger -@HiltWorker -class SyncOpenDateWorker @AssistedInject constructor( - @Assisted context: Context, - @Assisted params: WorkerParameters, - private val syncOpenDate: SyncOpenDateUseCase, +class SyncOpenDateWorker( + context: Context, + params: WorkerParameters, ) : CoroutineWorker(context, params) { + private val syncOpenDate = EntryPointAccessors + .fromApplication(context, WorkerEntryPoint::class.java) + .syncOpenDate() + override suspend fun doWork(): Result { Logger.d("doWork: start!") return try { diff --git a/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/WorkManagerInitializer.kt b/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/WorkManagerInitializer.kt deleted file mode 100644 index d3029083f..000000000 --- a/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/WorkManagerInitializer.kt +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2023 SOUP - * - * 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 - * - * https://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. - */ -package soup.movie.feature.tasks.impl - -import android.content.Context -import androidx.hilt.work.HiltWorkerFactory -import androidx.startup.Initializer -import androidx.work.Configuration -import androidx.work.WorkManager -import dagger.hilt.android.EntryPointAccessors -import soup.movie.feature.tasks.impl.di.DaggerInitializerComponent -import soup.movie.feature.tasks.impl.di.InitializerDependencies -import javax.inject.Inject - -class WorkManagerInitializer : Initializer { - - @Inject - lateinit var workerFactory: HiltWorkerFactory - - override fun create(context: Context): WorkManager { - DaggerInitializerComponent.builder() - .context(context) - .appDependencies( - EntryPointAccessors.fromApplication( - context.applicationContext, - InitializerDependencies::class.java, - ), - ) - .build() - .inject(this) - - WorkManager.initialize( - context, - Configuration.Builder() - .setWorkerFactory(workerFactory) - .build(), - ) - return WorkManager.getInstance(context) - } - - override fun dependencies(): List>> { - return emptyList() - } -} diff --git a/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/di/InitializerComponent.kt b/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/di/InitializerComponent.kt deleted file mode 100644 index a7fc6de04..000000000 --- a/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/di/InitializerComponent.kt +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2021 SOUP - * - * 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 - * - * https://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. - */ -package soup.movie.feature.tasks.impl.di - -import android.content.Context -import dagger.BindsInstance -import dagger.Component -import soup.movie.feature.tasks.impl.WorkManagerInitializer - -@Component(dependencies = [InitializerDependencies::class]) -interface InitializerComponent { - - fun inject(initializer: WorkManagerInitializer) - - @Component.Builder - interface Builder { - fun context(@BindsInstance context: Context): Builder - fun appDependencies(dependencies: InitializerDependencies): Builder - fun build(): InitializerComponent - } -} diff --git a/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/di/InitializerDependencies.kt b/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/di/WorkerEntryPoint.kt similarity index 76% rename from feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/di/InitializerDependencies.kt rename to feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/di/WorkerEntryPoint.kt index 8809b29ed..d687cef68 100644 --- a/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/di/InitializerDependencies.kt +++ b/feature/tasks/impl/src/main/java/soup/movie/feature/tasks/impl/di/WorkerEntryPoint.kt @@ -15,14 +15,17 @@ */ package soup.movie.feature.tasks.impl.di -import androidx.hilt.work.HiltWorkerFactory import dagger.hilt.EntryPoint import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent +import soup.movie.feature.tasks.impl.AnnounceOpenDateUseCase +import soup.movie.feature.tasks.impl.SyncOpenDateUseCase @EntryPoint @InstallIn(SingletonComponent::class) -interface InitializerDependencies { +interface WorkerEntryPoint { - fun workerFactory(): HiltWorkerFactory + fun syncOpenDate(): SyncOpenDateUseCase + + fun announceOpenDate(): AnnounceOpenDateUseCase } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c6a6f260a..2cdd21d9e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -60,8 +60,6 @@ dagger-hilt-android = { module = "com.google.dagger:hilt-android", version.ref = dagger-hilt-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "dagger" } dagger-hilt-testing = { module = "com.google.dagger:hilt-android-testing", version.ref = "dagger" } -androidx-hilt-work = { module = "androidx.hilt:hilt-work", version.ref = "androidxhilt" } -androidx-hilt-compiler = { module = "androidx.hilt:hilt-compiler", version.ref = "androidxhilt" } androidx-hilt-lifecycle-viewmodel-compose = { module = "androidx.hilt:hilt-lifecycle-viewmodel-compose", version.ref = "androidxhilt" } # AndroidX