Implement core:config module

This commit is contained in:
Shcherbatykh Oleg
2026-02-18 14:02:04 +03:00
parent 341d128099
commit 705b689c58
30 changed files with 392 additions and 41 deletions

View File

@@ -5,7 +5,7 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:name=".App"
android:name=".TSUDeskApp"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
@@ -13,14 +13,14 @@
android:supportsRtl="true"
android:theme="@style/Theme.TSUDesk">
<activity
android:name=".MainActivity"
android:name=".SplashScreenActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity" />
</application>
</manifest>

View File

@@ -1,7 +1,24 @@
package ru.fincode.tsudesk
import android.app.Application
import android.util.Log
import dagger.hilt.android.HiltAndroidApp
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.launch
import ru.fincode.tsudesk.core.config.domain.usecase.GetConfigUseCase
import ru.fincode.tsudesk.core.common.model.DataResult
import javax.inject.Inject
const val LOG_TAG = "NETWORK_DEBUG"
@HiltAndroidApp
class App : Application()
class TSUDeskApp : Application() {
private val appScope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
override fun onCreate() {
super.onCreate()
}
}

View File

@@ -11,7 +11,6 @@ import ru.fincode.tsudesk.feature.schedule.domain.model.ScheduleType
import ru.fincode.tsudesk.feature.schedule.domain.usecase.GetScheduleUseCase
import javax.inject.Inject
private const val LOG_TAG = "NETWORK_DEBUG"
@AndroidEntryPoint
class MainActivity : ComponentActivity() {

View File

@@ -0,0 +1,44 @@
package ru.fincode.tsudesk
import android.content.Intent
import android.os.Bundle
import android.util.Log
import androidx.activity.ComponentActivity
import androidx.lifecycle.lifecycleScope
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import ru.fincode.tsudesk.core.common.model.DataResult
import ru.fincode.tsudesk.core.config.domain.usecase.GetConfigUseCase
import javax.inject.Inject
@AndroidEntryPoint
class SplashScreenActivity : ComponentActivity() {
@Inject
lateinit var fetchConfigUseCase: GetConfigUseCase
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
lifecycleScope.launchWhenCreated {
val result = withContext(Dispatchers.IO) { fetchConfigUseCase() }
when (result) {
is DataResult.Data -> {
Log.d(LOG_TAG, "SUCCESS: config=${result.data}")
}
is DataResult.Error -> {
Log.e(
LOG_TAG,
"ERROR: ${result.error}, fallback=${result.data}",
result.cause
)
}
}
startActivity(Intent(this@SplashScreenActivity, MainActivity::class.java))
finish()
}
}
}