Skip to content
Draft
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
3 changes: 0 additions & 3 deletions app-watch/app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
plugins {
alias(libs.plugins.composenews.android.application)
alias(libs.plugins.composenews.android.application.compose)
alias(libs.plugins.composenews.android.hilt)
}

android {
Expand Down Expand Up @@ -43,9 +42,7 @@ dependencies {
}
libs.apply {
implementation(androidx.ktx)
implementation(hilt.work)
implementation(lifecycle.runtime.ktx)
implementation(hilt.navigation.compose)
implementation(work.runtime.ktx)
implementation(compose.activity)
implementation(compose.ui.preview.wear)
Expand Down
6 changes: 3 additions & 3 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
plugins {
alias(libs.plugins.composenews.android.application)
alias(libs.plugins.composenews.android.application.compose)
alias(libs.plugins.composenews.android.hilt)}
}

android {
namespace = libs.versions.projectApplicationId.get()
Expand Down Expand Up @@ -48,10 +48,10 @@ dependencies {
libs.apply {
implementation(compose.activity)
implementation(androidx.ktx)
implementation(hilt.work)
implementation(koin.work)
implementation(lifecycle.runtime.ktx)
implementation(work.runtime.ktx)
implementation(hilt.navigation.compose)
implementation(bundles.koin)
implementation(compose.material3.adaptive.navigation.suite)
implementation(compose.material3.adaptive.navigation)
implementation(espresso.core)
Expand Down
5 changes: 0 additions & 5 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,6 @@

-keep class * extends androidx.compose.runtime.Composable { *; }

-keepclassmembers class * {
@dagger.hilt.android.lifecycle.HiltViewModel *;
}
-keep,@dagger.hilt.InstallIn class * { *; }
-keep class dagger.hilt.** { *; }
-dontwarn dagger.internal.codegen.ComponentProcessor

-keep class retrofit2.** { *; }
Expand Down
12 changes: 12 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,18 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:exported="false"
tools:node="merge">
<meta-data
android:name="androidx.work.WorkManagerInitializer"
android:value="androidx.startup"
tools:node="remove" />
</provider>

</application>

</manifest>
24 changes: 20 additions & 4 deletions app/src/main/java/ir/composenews/ComposeNewsApplication.kt
Original file line number Diff line number Diff line change
@@ -1,15 +1,31 @@
@file:OptIn(KoinExperimentalAPI::class)

package ir.composenews

import android.app.Application
import dagger.hilt.android.HiltAndroidApp
import ir.composenews.navigation.di.navigationRootModule
import ir.composenews.sync.Sync
import ir.composenews.sync.worker.workerModule
import org.koin.android.ext.koin.androidContext
import org.koin.androidx.workmanager.koin.workManagerFactory
import org.koin.androix.startup.KoinStartup
import org.koin.core.annotation.KoinExperimentalAPI
import org.koin.dsl.KoinConfiguration

@HiltAndroidApp
class ComposeNewsApplication : Application() {
class ComposeNewsApplication : Application(), KoinStartup {

override fun onCreate() {
super.onCreate()
Sync.init(this)
// Sync.init(this) // TODO causes crash. temporary commented so our workmanager initializer disabled
}

override fun onKoinStartup() = KoinConfiguration {
androidContext(this@ComposeNewsApplication)
workManagerFactory()
modules(
workerModule,
navigationRootModule,
)
}

}
2 changes: 0 additions & 2 deletions app/src/main/java/ir/composenews/ui/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@ import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.runtime.Composable
import androidx.compose.ui.tooling.preview.Preview
import dagger.hilt.android.AndroidEntryPoint
import ir.composenews.designsystem.theme.ComposeNewsTheme
import ir.composenews.permission.enum.PermissionType
import ir.composenews.permission.manager.PermissionManager
import ir.composenews.permission.manager.PermissionManagerImpl

@AndroidEntryPoint
class MainActivity : ComponentActivity(), PermissionManager by PermissionManagerImpl() {

override fun onCreate(savedInstanceState: Bundle?) {
Expand Down
4 changes: 0 additions & 4 deletions build-logic/convention/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,6 @@ gradlePlugin {
implementationClass = "AndroidApplicationComposeConventionPlugin"
}

register("androidHilt") {
id = libs.plugins.composenews.android.hilt.get().pluginId
implementationClass = "HiltConventionPlugin"
}
register("androidLibrary") {
id = libs.plugins.composenews.android.library.asProvider().get().pluginId
implementationClass = "AndroidLibraryConventionPlugin"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,11 @@ class AndroidFeatureConventionPlugin : Plugin<Project> {
pluginManager.apply {
apply(libs.findPlugin("composenews-android-library").get().get().pluginId)
apply(libs.findPlugin("composenews-android-library.compose").get().get().pluginId)
apply(libs.findPlugin("composenews-android-hilt").get().get().pluginId)
}
}

private fun Project.applyDependencies() {
dependencies {
"implementation"(libs.findLibrary("hilt.navigation.compose").get())
"androidTestImplementation"(libs.findLibrary("runner").get())

"testImplementation"(project(":core:test"))
Expand Down
27 changes: 0 additions & 27 deletions build-logic/convention/src/main/kotlin/HiltConventionPlugin.kt

This file was deleted.

1 change: 0 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ plugins {
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.ksp) apply false
alias(libs.plugins.kotlin.parcelize) apply false
alias(libs.plugins.hilt.android) apply false
alias(libs.plugins.kotliner) apply false
alias(libs.plugins.detekt) apply true // Needs to be applied at the root, unlike others.
alias(libs.plugins.compose) apply false
Expand Down
3 changes: 1 addition & 2 deletions core/sync/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
plugins {
alias(libs.plugins.composenews.android.library)
alias(libs.plugins.composenews.android.hilt)
}

android {
Expand All @@ -10,7 +9,7 @@ android {
dependencies {
api(projects.domain.market)
libs.apply {
implementation(hilt.work)
implementation(koin.work)
implementation(startup.runtime)
implementation(work.runtime.ktx)
}
Expand Down

This file was deleted.

17 changes: 7 additions & 10 deletions core/sync/src/main/java/ir/composenews/sync/worker/SyncWorker.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,22 @@
package ir.composenews.sync.worker

import android.content.Context
import androidx.hilt.work.HiltWorker
import androidx.work.CoroutineWorker
import androidx.work.ForegroundInfo
import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.OutOfQuotaPolicy
import androidx.work.WorkerParameters
import dagger.assisted.Assisted
import dagger.assisted.AssistedInject
import ir.composenews.domain.use_case.SyncMarketListUseCase
import ir.composenews.sync.SyncConstraints
import ir.composenews.sync.syncForegroundInfo
import org.koin.core.component.KoinComponent

@HiltWorker
class SyncWorker @AssistedInject constructor(
@Assisted private val appContext: Context,
@Assisted workerParams: WorkerParameters,
class SyncWorker(
private val appContext: Context,
workerParams: WorkerParameters,
private val syncMarketListUseCase: SyncMarketListUseCase,
) : CoroutineWorker(appContext, workerParams) {
) : CoroutineWorker(appContext, workerParams),
KoinComponent {

override suspend fun doWork(): Result {
return try {
Expand All @@ -43,10 +41,9 @@ class SyncWorker @AssistedInject constructor(
appContext.syncForegroundInfo()

companion object {
fun startUpSyncWork() = OneTimeWorkRequestBuilder<DelegatingWorker>()
fun startUpSyncWork() = OneTimeWorkRequestBuilder<SyncWorker>()
.setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)
.setConstraints(SyncConstraints)
.setInputData(SyncWorker::class.delegatedData())
.build()
}
}
24 changes: 24 additions & 0 deletions core/sync/src/main/java/ir/composenews/sync/worker/WorkerModule.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
@file:Suppress(
"TopLevelPropertyNaming",
"Indentation",
"SwallowedException",
"TooGenericExceptionCaught",
"ktlint:standard:chain-method-continuation",
"ktlint:standard:no-empty-first-line-in-class-body",
"ktlint:standard:multiline-expression-wrapping",
"ktlint:standard:blank-line-before-declaration",
"ktlint:standard:trailing-comma-on-call-site"
)

package ir.composenews.sync.worker

import ir.composenews.domain.use_case.SyncMarketListUseCase
import org.koin.androidx.workmanager.dsl.workerOf
import org.koin.core.module.dsl.factoryOf
import org.koin.dsl.module

val workerModule = module {

factoryOf(::SyncMarketListUseCase)
workerOf(::SyncWorker)
}
2 changes: 1 addition & 1 deletion core/test/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
plugins {
alias(libs.plugins.composenews.android.library)
alias(libs.plugins.composenews.android.hilt)
}

android {
Expand All @@ -12,6 +11,7 @@ android {

dependencies {
libs.apply {
api(bundles.koin)
api(bundles.kotest)
api(coroutines.test)
api(mockk)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,13 @@

package ir.composenews.core_test.di

import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import ir.composenews.core_test.dispatcher.DispatcherProvider
import ir.composenews.core_test.dispatcher.PlatformDispatcherProvider
import org.koin.core.module.dsl.singleOf
import org.koin.dsl.bind
import org.koin.dsl.module

@Module
@InstallIn(SingletonComponent::class)
interface DispatcherModule {
@Binds
fun bindDispatcherProvider(impl: PlatformDispatcherProvider): DispatcherProvider
}
val dispatcherModule =
module {
singleOf(::PlatformDispatcherProvider) bind DispatcherProvider::class
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,8 @@ package ir.composenews.core_test.dispatcher

import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.Dispatchers
import javax.inject.Inject

class PlatformDispatcherProvider @Inject constructor() : DispatcherProvider {
class PlatformDispatcherProvider : DispatcherProvider {
override val ui: CoroutineDispatcher = Dispatchers.Main
override val io: CoroutineDispatcher = Dispatchers.IO
override val bg: CoroutineDispatcher = Dispatchers.Default
Expand Down
Loading
Loading