Compare commits
3 Commits
3d246af3f7
...
9ee3d532be
| Author | SHA1 | Date | |
|---|---|---|---|
| 9ee3d532be | |||
| aacb800f4a | |||
| 8ac2ce5273 |
@@ -284,8 +284,8 @@ kordant/
|
|||||||
|
|
||||||
| Document | Location |
|
| Document | Location |
|
||||||
|----------|----------|
|
|----------|----------|
|
||||||
| Product Plan | `plans/SHIELDAI-product-plan.md` |
|
| Product Plan | `plans/Kordant-product-plan.md` |
|
||||||
| Technical Architecture | `plans/SHIELDAI-technical-architecture.md` |
|
| Technical Architecture | `plans/Kordant-technical-architecture.md` |
|
||||||
| Infrastructure | `infra/README.md` |
|
| Infrastructure | `infra/README.md` |
|
||||||
| Rollback Runbook | `infra/ROLLBACK.md` |
|
| Rollback Runbook | `infra/ROLLBACK.md` |
|
||||||
| Stripe Integration | `docs/STRIPE_INTEGRATION.md` |
|
| Stripe Integration | `docs/STRIPE_INTEGRATION.md` |
|
||||||
|
|||||||
15
android/Kordant/.gitignore
vendored
15
android/Kordant/.gitignore
vendored
@@ -1,15 +0,0 @@
|
|||||||
*.iml
|
|
||||||
.gradle
|
|
||||||
/local.properties
|
|
||||||
/.idea/caches
|
|
||||||
/.idea/libraries
|
|
||||||
/.idea/modules.xml
|
|
||||||
/.idea/workspace.xml
|
|
||||||
/.idea/navEditor.xml
|
|
||||||
/.idea/assetWizardSettings.xml
|
|
||||||
.DS_Store
|
|
||||||
/build
|
|
||||||
/captures
|
|
||||||
.externalNativeBuild
|
|
||||||
.cxx
|
|
||||||
local.properties
|
|
||||||
3
android/Kordant/.idea/.gitignore
generated
vendored
3
android/Kordant/.idea/.gitignore
generated
vendored
@@ -1,3 +0,0 @@
|
|||||||
# Default ignored files
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.shieldai.android
|
package com.kordant.android
|
||||||
|
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import com.shieldai.android.data.repository.AuthRepository
|
import com.kordant.android.data.repository.AuthRepository
|
||||||
import com.shieldai.android.data.repository.AuthRepositoryImpl
|
import com.kordant.android.data.repository.AuthRepositoryImpl
|
||||||
|
|
||||||
class KordantApp : Application() {
|
class KordantApp : Application() {
|
||||||
lateinit var authRepository: AuthRepository
|
lateinit var authRepository: AuthRepository
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.shieldai.android
|
package com.kordant.android
|
||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.activity.compose.setContent
|
import androidx.activity.compose.setContent
|
||||||
import androidx.activity.enableEdgeToEdge
|
import androidx.activity.enableEdgeToEdge
|
||||||
import com.shieldai.android.navigation.AppNavigation
|
import com.kordant.android.navigation.AppNavigation
|
||||||
import com.shieldai.android.ui.theme.KordantTheme
|
import com.kordant.android.ui.theme.KordantTheme
|
||||||
|
|
||||||
class MainActivity : ComponentActivity() {
|
class MainActivity : ComponentActivity() {
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.local
|
package com.kordant.android.data.local
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.model
|
package com.kordant.android.data.model
|
||||||
|
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.model
|
package com.kordant.android.data.model
|
||||||
|
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.model
|
package com.kordant.android.data.model
|
||||||
|
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.model
|
package com.kordant.android.data.model
|
||||||
|
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.model
|
package com.kordant.android.data.model
|
||||||
|
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.model
|
package com.kordant.android.data.model
|
||||||
|
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.model
|
package com.kordant.android.data.model
|
||||||
|
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.model
|
package com.kordant.android.data.model
|
||||||
|
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.model
|
package com.kordant.android.data.model
|
||||||
|
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.model
|
package com.kordant.android.data.model
|
||||||
|
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.model
|
package com.kordant.android.data.model
|
||||||
|
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.remote
|
package com.kordant.android.data.remote
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
@@ -11,7 +11,7 @@ class AuthInterceptor(context: Context) : Interceptor {
|
|||||||
|
|
||||||
private val securePrefs: SharedPreferences = EncryptedSharedPreferences.create(
|
private val securePrefs: SharedPreferences = EncryptedSharedPreferences.create(
|
||||||
context,
|
context,
|
||||||
"shieldai_auth_prefs",
|
"kordant_auth_prefs",
|
||||||
MasterKey.Builder(context).setKeyScheme(MasterKey.KeyScheme.AES256_GCM).build(),
|
MasterKey.Builder(context).setKeyScheme(MasterKey.KeyScheme.AES256_GCM).build(),
|
||||||
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
|
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
|
||||||
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM,
|
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM,
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.remote
|
package com.kordant.android.data.remote
|
||||||
|
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import kotlin.math.min
|
import kotlin.math.min
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
package com.shieldai.android.data.remote
|
package com.kordant.android.data.remote
|
||||||
|
|
||||||
import com.shieldai.android.data.model.Alert
|
import com.kordant.android.data.model.Alert
|
||||||
import com.shieldai.android.data.model.BrokerListing
|
import com.kordant.android.data.model.BrokerListing
|
||||||
import com.shieldai.android.data.model.Exposure
|
import com.kordant.android.data.model.Exposure
|
||||||
import com.shieldai.android.data.model.Property
|
import com.kordant.android.data.model.Property
|
||||||
import com.shieldai.android.data.model.RemovalRequest
|
import com.kordant.android.data.model.RemovalRequest
|
||||||
import com.shieldai.android.data.model.SpamRule
|
import com.kordant.android.data.model.SpamRule
|
||||||
import com.shieldai.android.data.model.Subscription
|
import com.kordant.android.data.model.Subscription
|
||||||
import com.shieldai.android.data.model.User
|
import com.kordant.android.data.model.User
|
||||||
import com.shieldai.android.data.model.VoiceAnalysis
|
import com.kordant.android.data.model.VoiceAnalysis
|
||||||
import com.shieldai.android.data.model.VoiceEnrollment
|
import com.kordant.android.data.model.VoiceEnrollment
|
||||||
import com.shieldai.android.data.model.WatchlistItem
|
import com.kordant.android.data.model.WatchlistItem
|
||||||
import kotlinx.serialization.json.JsonObject
|
import kotlinx.serialization.json.JsonObject
|
||||||
import retrofit2.http.Body
|
import retrofit2.http.Body
|
||||||
import retrofit2.http.POST
|
import retrofit2.http.POST
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.remote
|
package com.kordant.android.data.remote
|
||||||
|
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
import kotlinx.serialization.json.JsonElement
|
import kotlinx.serialization.json.JsonElement
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package com.shieldai.android.data.repository
|
package com.kordant.android.data.repository
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.shieldai.android.data.local.CacheManager
|
import com.kordant.android.data.local.CacheManager
|
||||||
import com.shieldai.android.data.model.Alert
|
import com.kordant.android.data.model.Alert
|
||||||
import com.shieldai.android.data.remote.ApiResult
|
import com.kordant.android.data.remote.ApiResult
|
||||||
import com.shieldai.android.data.remote.ErrorHandler
|
import com.kordant.android.data.remote.ErrorHandler
|
||||||
import com.shieldai.android.data.remote.TRPCApiService
|
import com.kordant.android.data.remote.TRPCApiService
|
||||||
import com.shieldai.android.data.remote.TRPCRequest
|
import com.kordant.android.data.remote.TRPCRequest
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.serialization.json.buildJsonObject
|
import kotlinx.serialization.json.buildJsonObject
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.repository
|
package com.kordant.android.data.repository
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
@@ -38,7 +38,7 @@ interface AuthRepository {
|
|||||||
|
|
||||||
class AuthRepositoryImpl(
|
class AuthRepositoryImpl(
|
||||||
context: Context,
|
context: Context,
|
||||||
private val baseUrl: String = "https://api.shieldai.com"
|
private val baseUrl: String = "https://kordant.ai/api"
|
||||||
) : AuthRepository {
|
) : AuthRepository {
|
||||||
|
|
||||||
private val JSON_MEDIA_TYPE = "application/json; charset=utf-8".toMediaType()
|
private val JSON_MEDIA_TYPE = "application/json; charset=utf-8".toMediaType()
|
||||||
@@ -54,7 +54,7 @@ class AuthRepositoryImpl(
|
|||||||
|
|
||||||
private val securePrefs: SharedPreferences = EncryptedSharedPreferences.create(
|
private val securePrefs: SharedPreferences = EncryptedSharedPreferences.create(
|
||||||
context,
|
context,
|
||||||
"shieldai_auth_prefs",
|
"kordant_auth_prefs",
|
||||||
masterKey,
|
masterKey,
|
||||||
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
|
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
|
||||||
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
|
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package com.shieldai.android.data.repository
|
package com.kordant.android.data.repository
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.shieldai.android.data.local.CacheManager
|
import com.kordant.android.data.local.CacheManager
|
||||||
import com.shieldai.android.data.model.Exposure
|
import com.kordant.android.data.model.Exposure
|
||||||
import com.shieldai.android.data.model.WatchlistItem
|
import com.kordant.android.data.model.WatchlistItem
|
||||||
import com.shieldai.android.data.remote.ApiResult
|
import com.kordant.android.data.remote.ApiResult
|
||||||
import com.shieldai.android.data.remote.ErrorHandler
|
import com.kordant.android.data.remote.ErrorHandler
|
||||||
import com.shieldai.android.data.remote.TRPCApiService
|
import com.kordant.android.data.remote.TRPCApiService
|
||||||
import com.shieldai.android.data.remote.TRPCRequest
|
import com.kordant.android.data.remote.TRPCRequest
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.serialization.json.buildJsonObject
|
import kotlinx.serialization.json.buildJsonObject
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package com.shieldai.android.data.repository
|
package com.kordant.android.data.repository
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.shieldai.android.data.local.CacheManager
|
import com.kordant.android.data.local.CacheManager
|
||||||
import com.shieldai.android.data.model.Property
|
import com.kordant.android.data.model.Property
|
||||||
import com.shieldai.android.data.remote.ApiResult
|
import com.kordant.android.data.remote.ApiResult
|
||||||
import com.shieldai.android.data.remote.ErrorHandler
|
import com.kordant.android.data.remote.ErrorHandler
|
||||||
import com.shieldai.android.data.remote.TRPCApiService
|
import com.kordant.android.data.remote.TRPCApiService
|
||||||
import com.shieldai.android.data.remote.TRPCRequest
|
import com.kordant.android.data.remote.TRPCRequest
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.serialization.json.buildJsonObject
|
import kotlinx.serialization.json.buildJsonObject
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package com.shieldai.android.data.repository
|
package com.kordant.android.data.repository
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.shieldai.android.data.local.CacheManager
|
import com.kordant.android.data.local.CacheManager
|
||||||
import com.shieldai.android.data.model.BrokerListing
|
import com.kordant.android.data.model.BrokerListing
|
||||||
import com.shieldai.android.data.model.RemovalRequest
|
import com.kordant.android.data.model.RemovalRequest
|
||||||
import com.shieldai.android.data.remote.ApiResult
|
import com.kordant.android.data.remote.ApiResult
|
||||||
import com.shieldai.android.data.remote.ErrorHandler
|
import com.kordant.android.data.remote.ErrorHandler
|
||||||
import com.shieldai.android.data.remote.TRPCApiService
|
import com.kordant.android.data.remote.TRPCApiService
|
||||||
import com.shieldai.android.data.remote.TRPCRequest
|
import com.kordant.android.data.remote.TRPCRequest
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.serialization.json.buildJsonObject
|
import kotlinx.serialization.json.buildJsonObject
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package com.shieldai.android.data.repository
|
package com.kordant.android.data.repository
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.shieldai.android.data.local.CacheManager
|
import com.kordant.android.data.local.CacheManager
|
||||||
import com.shieldai.android.data.model.SpamRule
|
import com.kordant.android.data.model.SpamRule
|
||||||
import com.shieldai.android.data.remote.ApiResult
|
import com.kordant.android.data.remote.ApiResult
|
||||||
import com.shieldai.android.data.remote.ErrorHandler
|
import com.kordant.android.data.remote.ErrorHandler
|
||||||
import com.shieldai.android.data.remote.TRPCApiService
|
import com.kordant.android.data.remote.TRPCApiService
|
||||||
import com.shieldai.android.data.remote.TRPCRequest
|
import com.kordant.android.data.remote.TRPCRequest
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.serialization.json.buildJsonObject
|
import kotlinx.serialization.json.buildJsonObject
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package com.shieldai.android.data.repository
|
package com.kordant.android.data.repository
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.shieldai.android.data.local.CacheManager
|
import com.kordant.android.data.local.CacheManager
|
||||||
import com.shieldai.android.data.model.Subscription
|
import com.kordant.android.data.model.Subscription
|
||||||
import com.shieldai.android.data.remote.ApiResult
|
import com.kordant.android.data.remote.ApiResult
|
||||||
import com.shieldai.android.data.remote.ErrorHandler
|
import com.kordant.android.data.remote.ErrorHandler
|
||||||
import com.shieldai.android.data.remote.TRPCApiService
|
import com.kordant.android.data.remote.TRPCApiService
|
||||||
import com.shieldai.android.data.remote.TRPCRequest
|
import com.kordant.android.data.remote.TRPCRequest
|
||||||
import kotlinx.serialization.json.buildJsonObject
|
import kotlinx.serialization.json.buildJsonObject
|
||||||
import kotlinx.serialization.json.put
|
import kotlinx.serialization.json.put
|
||||||
|
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package com.shieldai.android.data.repository
|
package com.kordant.android.data.repository
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.shieldai.android.data.local.CacheManager
|
import com.kordant.android.data.local.CacheManager
|
||||||
import com.shieldai.android.data.model.User
|
import com.kordant.android.data.model.User
|
||||||
import com.shieldai.android.data.remote.ApiResult
|
import com.kordant.android.data.remote.ApiResult
|
||||||
import com.shieldai.android.data.remote.ErrorHandler
|
import com.kordant.android.data.remote.ErrorHandler
|
||||||
import com.shieldai.android.data.remote.TRPCApiService
|
import com.kordant.android.data.remote.TRPCApiService
|
||||||
import com.shieldai.android.data.remote.TRPCRequest
|
import com.kordant.android.data.remote.TRPCRequest
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.serialization.json.buildJsonObject
|
import kotlinx.serialization.json.buildJsonObject
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package com.shieldai.android.data.repository
|
package com.kordant.android.data.repository
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.shieldai.android.data.local.CacheManager
|
import com.kordant.android.data.local.CacheManager
|
||||||
import com.shieldai.android.data.model.VoiceAnalysis
|
import com.kordant.android.data.model.VoiceAnalysis
|
||||||
import com.shieldai.android.data.model.VoiceEnrollment
|
import com.kordant.android.data.model.VoiceEnrollment
|
||||||
import com.shieldai.android.data.remote.ApiResult
|
import com.kordant.android.data.remote.ApiResult
|
||||||
import com.shieldai.android.data.remote.ErrorHandler
|
import com.kordant.android.data.remote.ErrorHandler
|
||||||
import com.shieldai.android.data.remote.TRPCApiService
|
import com.kordant.android.data.remote.TRPCApiService
|
||||||
import com.shieldai.android.data.remote.TRPCRequest
|
import com.kordant.android.data.remote.TRPCRequest
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.serialization.json.buildJsonObject
|
import kotlinx.serialization.json.buildJsonObject
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.sync
|
package com.kordant.android.data.sync
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.work.CoroutineWorker
|
import androidx.work.CoroutineWorker
|
||||||
@@ -29,7 +29,7 @@ class OfflineWorker(
|
|||||||
try {
|
try {
|
||||||
val body = request.body.toRequestBody(jsonMediaType)
|
val body = request.body.toRequestBody(jsonMediaType)
|
||||||
val httpRequest = Request.Builder()
|
val httpRequest = Request.Builder()
|
||||||
.url("https://api.shieldai.com/${request.endpoint}")
|
.url("https://kordant.ai/api/${request.endpoint}")
|
||||||
.method(request.method, body)
|
.method(request.method, body)
|
||||||
.build()
|
.build()
|
||||||
val response = client.newCall(httpRequest).execute()
|
val response = client.newCall(httpRequest).execute()
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.sync
|
package com.kordant.android.data.sync
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.data.sync
|
package com.kordant.android.data.sync
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.ConnectivityManager
|
import android.net.ConnectivityManager
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.shieldai.android.di
|
package com.kordant.android.di
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.shieldai.android.data.local.CacheManager
|
import com.kordant.android.data.local.CacheManager
|
||||||
|
|
||||||
object DatabaseModule {
|
object DatabaseModule {
|
||||||
fun initializeCache(context: Context) {
|
fun initializeCache(context: Context) {
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.shieldai.android.di
|
package com.kordant.android.di
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
|
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
|
||||||
import com.shieldai.android.data.remote.AuthInterceptor
|
import com.kordant.android.data.remote.AuthInterceptor
|
||||||
import com.shieldai.android.data.remote.TRPCApiService
|
import com.kordant.android.data.remote.TRPCApiService
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
import okhttp3.MediaType.Companion.toMediaType
|
import okhttp3.MediaType.Companion.toMediaType
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
package com.shieldai.android.di
|
package com.kordant.android.di
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import com.shieldai.android.data.repository.AlertRepository
|
import com.kordant.android.data.repository.AlertRepository
|
||||||
import com.shieldai.android.data.repository.DarkWatchRepository
|
import com.kordant.android.data.repository.DarkWatchRepository
|
||||||
import com.shieldai.android.data.repository.HomeTitleRepository
|
import com.kordant.android.data.repository.HomeTitleRepository
|
||||||
import com.shieldai.android.data.repository.RemoveBrokersRepository
|
import com.kordant.android.data.repository.RemoveBrokersRepository
|
||||||
import com.shieldai.android.data.repository.SpamShieldRepository
|
import com.kordant.android.data.repository.SpamShieldRepository
|
||||||
import com.shieldai.android.data.repository.SubscriptionRepository
|
import com.kordant.android.data.repository.SubscriptionRepository
|
||||||
import com.shieldai.android.data.repository.UserRepository
|
import com.kordant.android.data.repository.UserRepository
|
||||||
import com.shieldai.android.data.repository.VoicePrintRepository
|
import com.kordant.android.data.repository.VoicePrintRepository
|
||||||
|
|
||||||
object RepositoryModule {
|
object RepositoryModule {
|
||||||
private var userRepository: UserRepository? = null
|
private var userRepository: UserRepository? = null
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.navigation
|
package com.kordant.android.navigation
|
||||||
|
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
@@ -11,8 +11,8 @@ import androidx.compose.ui.platform.LocalContext
|
|||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import androidx.navigation.compose.currentBackStackEntryAsState
|
import androidx.navigation.compose.currentBackStackEntryAsState
|
||||||
import androidx.navigation.compose.rememberNavController
|
import androidx.navigation.compose.rememberNavController
|
||||||
import com.shieldai.android.KordantApp
|
import com.kordant.android.KordantApp
|
||||||
import com.shieldai.android.viewmodel.AuthViewModel
|
import com.kordant.android.viewmodel.AuthViewModel
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun AppNavigation() {
|
fun AppNavigation() {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.navigation
|
package com.kordant.android.navigation
|
||||||
|
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.NavigationBar
|
import androidx.compose.material3.NavigationBar
|
||||||
@@ -7,7 +7,7 @@ import androidx.compose.material3.Text
|
|||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.graphics.vector.ImageVector
|
import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
import androidx.compose.ui.res.vectorResource
|
import androidx.compose.ui.res.vectorResource
|
||||||
import com.shieldai.android.R
|
import com.kordant.android.R
|
||||||
|
|
||||||
data class BottomNavItem(
|
data class BottomNavItem(
|
||||||
val screen: Screen,
|
val screen: Screen,
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.navigation
|
package com.kordant.android.navigation
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
@@ -26,20 +26,20 @@ import androidx.navigation.compose.NavHost
|
|||||||
import androidx.navigation.compose.composable
|
import androidx.navigation.compose.composable
|
||||||
import androidx.navigation.compose.rememberNavController
|
import androidx.navigation.compose.rememberNavController
|
||||||
import androidx.navigation.navArgument
|
import androidx.navigation.navArgument
|
||||||
import com.shieldai.android.R
|
import com.kordant.android.R
|
||||||
import com.shieldai.android.ui.screens.auth.AuthScreen
|
import com.kordant.android.ui.screens.auth.AuthScreen
|
||||||
import com.shieldai.android.ui.screens.auth.ForgotPasswordScreen
|
import com.kordant.android.ui.screens.auth.ForgotPasswordScreen
|
||||||
import com.shieldai.android.ui.screens.auth.ResetPasswordScreen
|
import com.kordant.android.ui.screens.auth.ResetPasswordScreen
|
||||||
import com.shieldai.android.ui.screens.dashboard.AlertDetailScreen
|
import com.kordant.android.ui.screens.dashboard.AlertDetailScreen
|
||||||
import com.shieldai.android.ui.screens.dashboard.DashboardScreen
|
import com.kordant.android.ui.screens.dashboard.DashboardScreen
|
||||||
import com.shieldai.android.ui.screens.onboarding.OnboardingScreen
|
import com.kordant.android.ui.screens.onboarding.OnboardingScreen
|
||||||
import com.shieldai.android.ui.screens.services.DarkWatchScreen
|
import com.kordant.android.ui.screens.services.DarkWatchScreen
|
||||||
import com.shieldai.android.ui.screens.services.HomeTitleScreen
|
import com.kordant.android.ui.screens.services.HomeTitleScreen
|
||||||
import com.shieldai.android.ui.screens.services.RemoveBrokersScreen
|
import com.kordant.android.ui.screens.services.RemoveBrokersScreen
|
||||||
import com.shieldai.android.ui.screens.services.SpamShieldScreen
|
import com.kordant.android.ui.screens.services.SpamShieldScreen
|
||||||
import com.shieldai.android.ui.screens.services.VoicePrintScreen
|
import com.kordant.android.ui.screens.services.VoicePrintScreen
|
||||||
import com.shieldai.android.ui.screens.settings.SettingsScreen
|
import com.kordant.android.ui.screens.settings.SettingsScreen
|
||||||
import com.shieldai.android.viewmodel.AuthViewModel
|
import com.kordant.android.viewmodel.AuthViewModel
|
||||||
|
|
||||||
data class ServiceNavCard(
|
data class ServiceNavCard(
|
||||||
val title: String,
|
val title: String,
|
||||||
@@ -224,7 +224,7 @@ private fun ServicesHubScreen(
|
|||||||
) {
|
) {
|
||||||
items(services.size) { index ->
|
items(services.size) { index ->
|
||||||
val service = services[index]
|
val service = services[index]
|
||||||
com.shieldai.android.ui.components.ShieldCard(
|
com.kordant.android.ui.components.ShieldCard(
|
||||||
onClick = { onNavigateToService(service.route) },
|
onClick = { onNavigateToService(service.route) },
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = Modifier.fillMaxWidth()
|
||||||
) {
|
) {
|
||||||
@@ -269,7 +269,7 @@ private fun AlertsScreen(
|
|||||||
fontWeight = FontWeight.Bold,
|
fontWeight = FontWeight.Bold,
|
||||||
modifier = Modifier.padding(bottom = 16.dp)
|
modifier = Modifier.padding(bottom = 16.dp)
|
||||||
)
|
)
|
||||||
com.shieldai.android.ui.components.ShieldEmptyState(
|
com.kordant.android.ui.components.ShieldEmptyState(
|
||||||
title = "No alerts",
|
title = "No alerts",
|
||||||
description = "You have no recent alerts"
|
description = "You have no recent alerts"
|
||||||
)
|
)
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.navigation
|
package com.kordant.android.navigation
|
||||||
|
|
||||||
sealed class Screen(val route: String) {
|
sealed class Screen(val route: String) {
|
||||||
data object Dashboard : Screen("dashboard")
|
data object Dashboard : Screen("dashboard")
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.components
|
package com.kordant.android.ui.components
|
||||||
|
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
@@ -29,7 +29,7 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.theme.KordantTheme
|
import com.kordant.android.ui.theme.KordantTheme
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.components
|
package com.kordant.android.ui.components
|
||||||
|
|
||||||
import androidx.compose.foundation.Canvas
|
import androidx.compose.foundation.Canvas
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
@@ -22,8 +22,8 @@ import androidx.compose.ui.unit.TextUnit
|
|||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import coil.compose.AsyncImage
|
import coil.compose.AsyncImage
|
||||||
import com.shieldai.android.ui.theme.BrandPrimary
|
import com.kordant.android.ui.theme.BrandPrimary
|
||||||
import com.shieldai.android.ui.theme.Success
|
import com.kordant.android.ui.theme.Success
|
||||||
|
|
||||||
enum class AvatarSize(val dimension: Dp, val fontSize: TextUnit) {
|
enum class AvatarSize(val dimension: Dp, val fontSize: TextUnit) {
|
||||||
Small(32.dp, 12.sp),
|
Small(32.dp, 12.sp),
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.components
|
package com.kordant.android.ui.components
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.Spacer
|
import androidx.compose.foundation.layout.Spacer
|
||||||
@@ -16,12 +16,12 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.graphics.painter.Painter
|
import androidx.compose.ui.graphics.painter.Painter
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.theme.Error
|
import com.kordant.android.ui.theme.Error
|
||||||
import com.shieldai.android.ui.theme.Info
|
import com.kordant.android.ui.theme.Info
|
||||||
import com.shieldai.android.ui.theme.Success
|
import com.kordant.android.ui.theme.Success
|
||||||
import com.shieldai.android.ui.theme.TextPrimaryLight
|
import com.kordant.android.ui.theme.TextPrimaryLight
|
||||||
import com.shieldai.android.ui.theme.TextSecondaryLight
|
import com.kordant.android.ui.theme.TextSecondaryLight
|
||||||
import com.shieldai.android.ui.theme.Warning
|
import com.kordant.android.ui.theme.Warning
|
||||||
|
|
||||||
enum class BadgeVariant {
|
enum class BadgeVariant {
|
||||||
Default, Success, Warning, Error, Info
|
Default, Success, Warning, Error, Info
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.components
|
package com.kordant.android.ui.components
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.RowScope
|
import androidx.compose.foundation.layout.RowScope
|
||||||
import androidx.compose.foundation.layout.Spacer
|
import androidx.compose.foundation.layout.Spacer
|
||||||
@@ -18,8 +18,8 @@ import androidx.compose.runtime.Composable
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.theme.BrandPrimary
|
import com.kordant.android.ui.theme.BrandPrimary
|
||||||
import com.shieldai.android.ui.theme.Error
|
import com.kordant.android.ui.theme.Error
|
||||||
|
|
||||||
enum class ShieldButtonVariant {
|
enum class ShieldButtonVariant {
|
||||||
Primary, Secondary, Ghost, Danger
|
Primary, Secondary, Ghost, Danger
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.components
|
package com.kordant.android.ui.components
|
||||||
|
|
||||||
import androidx.compose.foundation.BorderStroke
|
import androidx.compose.foundation.BorderStroke
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
@@ -13,9 +13,9 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.graphics.Brush
|
import androidx.compose.ui.graphics.Brush
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.theme.BrandAccent
|
import com.kordant.android.ui.theme.BrandAccent
|
||||||
import com.shieldai.android.ui.theme.BrandPrimary
|
import com.kordant.android.ui.theme.BrandPrimary
|
||||||
import com.shieldai.android.ui.theme.OutlineLight
|
import com.kordant.android.ui.theme.OutlineLight
|
||||||
|
|
||||||
val GradientCardBrush = Brush.linearGradient(
|
val GradientCardBrush = Brush.linearGradient(
|
||||||
colors = listOf(
|
colors = listOf(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.components
|
package com.kordant.android.ui.components
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.components
|
package com.kordant.android.ui.components
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Spacer
|
import androidx.compose.foundation.layout.Spacer
|
||||||
@@ -19,7 +19,7 @@ import androidx.compose.runtime.Composable
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.theme.BrandPrimary
|
import com.kordant.android.ui.theme.BrandPrimary
|
||||||
|
|
||||||
data class ModalAction(
|
data class ModalAction(
|
||||||
val text: String,
|
val text: String,
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.components
|
package com.kordant.android.ui.components
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
@@ -14,12 +14,12 @@ import androidx.compose.ui.draw.clip
|
|||||||
import androidx.compose.ui.graphics.StrokeCap
|
import androidx.compose.ui.graphics.StrokeCap
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.theme.BrandAccent
|
import com.kordant.android.ui.theme.BrandAccent
|
||||||
import com.shieldai.android.ui.theme.BrandPrimary
|
import com.kordant.android.ui.theme.BrandPrimary
|
||||||
import com.shieldai.android.ui.theme.Error
|
import com.kordant.android.ui.theme.Error
|
||||||
import com.shieldai.android.ui.theme.OutlineLight
|
import com.kordant.android.ui.theme.OutlineLight
|
||||||
import com.shieldai.android.ui.theme.Success
|
import com.kordant.android.ui.theme.Success
|
||||||
import com.shieldai.android.ui.theme.Warning
|
import com.kordant.android.ui.theme.Warning
|
||||||
|
|
||||||
enum class ProgressColor {
|
enum class ProgressColor {
|
||||||
Primary, Accent, Success, Warning, Error
|
Primary, Accent, Success, Warning, Error
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.components
|
package com.kordant.android.ui.components
|
||||||
|
|
||||||
import androidx.compose.animation.core.LinearEasing
|
import androidx.compose.animation.core.LinearEasing
|
||||||
import androidx.compose.animation.core.RepeatMode
|
import androidx.compose.animation.core.RepeatMode
|
||||||
@@ -22,7 +22,7 @@ import androidx.compose.ui.geometry.Offset
|
|||||||
import androidx.compose.ui.graphics.Brush
|
import androidx.compose.ui.graphics.Brush
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.theme.OutlineLight
|
import com.kordant.android.ui.theme.OutlineLight
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ShieldSkeletonLine(
|
fun ShieldSkeletonLine(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.components
|
package com.kordant.android.ui.components
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
@@ -20,7 +20,7 @@ import androidx.compose.ui.text.input.KeyboardType
|
|||||||
import androidx.compose.ui.text.input.PasswordVisualTransformation
|
import androidx.compose.ui.text.input.PasswordVisualTransformation
|
||||||
import androidx.compose.ui.text.input.VisualTransformation
|
import androidx.compose.ui.text.input.VisualTransformation
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.theme.Error
|
import com.kordant.android.ui.theme.Error
|
||||||
|
|
||||||
enum class InputType {
|
enum class InputType {
|
||||||
Text, Email, Password, Number, Phone
|
Text, Email, Password, Number, Phone
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.components
|
package com.kordant.android.ui.components
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
@@ -13,11 +13,11 @@ import androidx.compose.runtime.Composable
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.theme.Error
|
import com.kordant.android.ui.theme.Error
|
||||||
import com.shieldai.android.ui.theme.Info
|
import com.kordant.android.ui.theme.Info
|
||||||
import com.shieldai.android.ui.theme.Success
|
import com.kordant.android.ui.theme.Success
|
||||||
import com.shieldai.android.ui.theme.TextPrimaryDark
|
import com.kordant.android.ui.theme.TextPrimaryDark
|
||||||
import com.shieldai.android.ui.theme.Warning
|
import com.kordant.android.ui.theme.Warning
|
||||||
|
|
||||||
enum class ToastVariant {
|
enum class ToastVariant {
|
||||||
Success, Error, Warning, Info
|
Success, Error, Warning, Info
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.components
|
package com.kordant.android.ui.components
|
||||||
|
|
||||||
import androidx.compose.foundation.Canvas
|
import androidx.compose.foundation.Canvas
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
@@ -18,9 +18,9 @@ import androidx.compose.ui.graphics.Paint
|
|||||||
import androidx.compose.ui.graphics.drawscope.DrawScope
|
import androidx.compose.ui.graphics.drawscope.DrawScope
|
||||||
import androidx.compose.ui.graphics.drawscope.scale
|
import androidx.compose.ui.graphics.drawscope.scale
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.theme.Error
|
import com.kordant.android.ui.theme.Error
|
||||||
import com.shieldai.android.ui.theme.Success
|
import com.kordant.android.ui.theme.Success
|
||||||
import com.shieldai.android.ui.theme.Warning
|
import com.kordant.android.ui.theme.Warning
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ThreatGauge(
|
fun ThreatGauge(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.auth
|
package com.kordant.android.ui.screens.auth
|
||||||
|
|
||||||
import androidx.compose.foundation.Image
|
import androidx.compose.foundation.Image
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
@@ -26,9 +26,9 @@ import androidx.compose.ui.Modifier
|
|||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.R
|
import com.kordant.android.R
|
||||||
import com.shieldai.android.ui.components.ShieldCard
|
import com.kordant.android.ui.components.ShieldCard
|
||||||
import com.shieldai.android.viewmodel.AuthViewModel
|
import com.kordant.android.viewmodel.AuthViewModel
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun AuthScreen(
|
fun AuthScreen(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.auth
|
package com.kordant.android.ui.screens.auth
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.security.identity.IdentityCredentialException
|
import android.security.identity.IdentityCredentialException
|
||||||
@@ -79,11 +79,11 @@ fun canUseBiometric(context: Context): Boolean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun isBiometricEnabled(context: Context): Boolean {
|
fun isBiometricEnabled(context: Context): Boolean {
|
||||||
val prefs = context.getSharedPreferences("shieldai_biometric_prefs", Context.MODE_PRIVATE)
|
val prefs = context.getSharedPreferences("kordant_biometric_prefs", Context.MODE_PRIVATE)
|
||||||
return prefs.getBoolean("biometric_enabled", false)
|
return prefs.getBoolean("biometric_enabled", false)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setBiometricEnabled(context: Context, enabled: Boolean) {
|
fun setBiometricEnabled(context: Context, enabled: Boolean) {
|
||||||
val prefs = context.getSharedPreferences("shieldai_biometric_prefs", Context.MODE_PRIVATE)
|
val prefs = context.getSharedPreferences("kordant_biometric_prefs", Context.MODE_PRIVATE)
|
||||||
prefs.edit().putBoolean("biometric_enabled", enabled).apply()
|
prefs.edit().putBoolean("biometric_enabled", enabled).apply()
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.auth
|
package com.kordant.android.ui.screens.auth
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Spacer
|
import androidx.compose.foundation.layout.Spacer
|
||||||
@@ -21,12 +21,12 @@ import androidx.compose.ui.Alignment
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.components.InputType
|
import com.kordant.android.ui.components.InputType
|
||||||
import com.shieldai.android.ui.components.ShieldButton
|
import com.kordant.android.ui.components.ShieldButton
|
||||||
import com.shieldai.android.ui.components.ShieldButtonVariant
|
import com.kordant.android.ui.components.ShieldButtonVariant
|
||||||
import com.shieldai.android.ui.components.ShieldCard
|
import com.kordant.android.ui.components.ShieldCard
|
||||||
import com.shieldai.android.ui.components.ShieldTextField
|
import com.kordant.android.ui.components.ShieldTextField
|
||||||
import com.shieldai.android.viewmodel.AuthViewModel
|
import com.kordant.android.viewmodel.AuthViewModel
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ForgotPasswordScreen(
|
fun ForgotPasswordScreen(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.auth
|
package com.kordant.android.ui.screens.auth
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
@@ -33,12 +33,12 @@ import com.google.android.gms.auth.api.signin.GoogleSignIn
|
|||||||
import com.google.android.gms.auth.api.signin.GoogleSignInClient
|
import com.google.android.gms.auth.api.signin.GoogleSignInClient
|
||||||
import com.google.android.gms.auth.api.signin.GoogleSignInOptions
|
import com.google.android.gms.auth.api.signin.GoogleSignInOptions
|
||||||
import com.google.android.gms.common.api.ApiException
|
import com.google.android.gms.common.api.ApiException
|
||||||
import com.shieldai.android.ui.components.InputType
|
import com.kordant.android.ui.components.InputType
|
||||||
import com.shieldai.android.ui.components.ShieldButton
|
import com.kordant.android.ui.components.ShieldButton
|
||||||
import com.shieldai.android.ui.components.ShieldTextField
|
import com.kordant.android.ui.components.ShieldTextField
|
||||||
import com.shieldai.android.ui.theme.BrandPrimary
|
import com.kordant.android.ui.theme.BrandPrimary
|
||||||
import com.shieldai.android.viewmodel.AuthUiState
|
import com.kordant.android.viewmodel.AuthUiState
|
||||||
import com.shieldai.android.viewmodel.AuthViewModel
|
import com.kordant.android.viewmodel.AuthViewModel
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun LoginScreen(
|
fun LoginScreen(
|
||||||
@@ -53,7 +53,7 @@ fun LoginScreen(
|
|||||||
|
|
||||||
val gso = remember {
|
val gso = remember {
|
||||||
GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
|
GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
|
||||||
.requestIdToken(context.getString(com.shieldai.android.R.string.default_web_client_id))
|
.requestIdToken(context.getString(com.kordant.android.R.string.default_web_client_id))
|
||||||
.requestEmail()
|
.requestEmail()
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.auth
|
package com.kordant.android.ui.screens.auth
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Spacer
|
import androidx.compose.foundation.layout.Spacer
|
||||||
@@ -21,11 +21,11 @@ import androidx.compose.ui.Alignment
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.components.InputType
|
import com.kordant.android.ui.components.InputType
|
||||||
import com.shieldai.android.ui.components.ShieldButton
|
import com.kordant.android.ui.components.ShieldButton
|
||||||
import com.shieldai.android.ui.components.ShieldCard
|
import com.kordant.android.ui.components.ShieldCard
|
||||||
import com.shieldai.android.ui.components.ShieldTextField
|
import com.kordant.android.ui.components.ShieldTextField
|
||||||
import com.shieldai.android.viewmodel.AuthViewModel
|
import com.kordant.android.viewmodel.AuthViewModel
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ResetPasswordScreen(
|
fun ResetPasswordScreen(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.auth
|
package com.kordant.android.ui.screens.auth
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
@@ -19,16 +19,16 @@ import androidx.compose.ui.Alignment
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.components.InputType
|
import com.kordant.android.ui.components.InputType
|
||||||
import com.shieldai.android.ui.components.ProgressColor
|
import com.kordant.android.ui.components.ProgressColor
|
||||||
import com.shieldai.android.ui.components.ShieldButton
|
import com.kordant.android.ui.components.ShieldButton
|
||||||
import com.shieldai.android.ui.components.ShieldProgressBar
|
import com.kordant.android.ui.components.ShieldProgressBar
|
||||||
import com.shieldai.android.ui.components.ShieldTextField
|
import com.kordant.android.ui.components.ShieldTextField
|
||||||
import com.shieldai.android.util.PasswordStrength
|
import com.kordant.android.util.PasswordStrength
|
||||||
import com.shieldai.android.util.calculatePasswordStrength
|
import com.kordant.android.util.calculatePasswordStrength
|
||||||
import com.shieldai.android.util.passwordStrengthLabel
|
import com.kordant.android.util.passwordStrengthLabel
|
||||||
import com.shieldai.android.viewmodel.AuthUiState
|
import com.kordant.android.viewmodel.AuthUiState
|
||||||
import com.shieldai.android.viewmodel.AuthViewModel
|
import com.kordant.android.viewmodel.AuthViewModel
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun SignupScreen(
|
fun SignupScreen(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.dashboard
|
package com.kordant.android.ui.screens.dashboard
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
@@ -28,14 +28,14 @@ import androidx.compose.ui.input.nestedscroll.nestedScroll
|
|||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import com.shieldai.android.data.model.Alert
|
import com.kordant.android.data.model.Alert
|
||||||
import com.shieldai.android.ui.components.BadgeVariant
|
import com.kordant.android.ui.components.BadgeVariant
|
||||||
import com.shieldai.android.ui.components.ShieldBadge
|
import com.kordant.android.ui.components.ShieldBadge
|
||||||
import com.shieldai.android.ui.components.ShieldButton
|
import com.kordant.android.ui.components.ShieldButton
|
||||||
import com.shieldai.android.ui.components.ShieldButtonVariant
|
import com.kordant.android.ui.components.ShieldButtonVariant
|
||||||
import com.shieldai.android.ui.components.ShieldCard
|
import com.kordant.android.ui.components.ShieldCard
|
||||||
import com.shieldai.android.ui.components.ShieldEmptyState
|
import com.kordant.android.ui.components.ShieldEmptyState
|
||||||
import com.shieldai.android.ui.viewmodel.AlertDetailViewModel
|
import com.kordant.android.ui.viewmodel.AlertDetailViewModel
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.dashboard
|
package com.kordant.android.ui.screens.dashboard
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
@@ -36,18 +36,18 @@ import androidx.compose.ui.res.vectorResource
|
|||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import com.shieldai.android.R
|
import com.kordant.android.R
|
||||||
import com.shieldai.android.data.model.Alert
|
import com.kordant.android.data.model.Alert
|
||||||
import com.shieldai.android.ui.components.BadgeVariant
|
import com.kordant.android.ui.components.BadgeVariant
|
||||||
import com.shieldai.android.ui.components.ShieldBadge
|
import com.kordant.android.ui.components.ShieldBadge
|
||||||
import com.shieldai.android.ui.components.ShieldButton
|
import com.kordant.android.ui.components.ShieldButton
|
||||||
import com.shieldai.android.ui.components.ShieldButtonVariant
|
import com.kordant.android.ui.components.ShieldButtonVariant
|
||||||
import com.shieldai.android.ui.components.ShieldCard
|
import com.kordant.android.ui.components.ShieldCard
|
||||||
import com.shieldai.android.ui.components.ShieldEmptyState
|
import com.kordant.android.ui.components.ShieldEmptyState
|
||||||
import com.shieldai.android.ui.components.ShieldSkeletonCard
|
import com.kordant.android.ui.components.ShieldSkeletonCard
|
||||||
import com.shieldai.android.ui.components.ThreatGauge
|
import com.kordant.android.ui.components.ThreatGauge
|
||||||
import com.shieldai.android.viewmodel.DashboardViewModel
|
import com.kordant.android.viewmodel.DashboardViewModel
|
||||||
import com.shieldai.android.viewmodel.DashboardViewModel as DashboardVM
|
import com.kordant.android.viewmodel.DashboardViewModel as DashboardVM
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
data class ServiceSummary(
|
data class ServiceSummary(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.onboarding
|
package com.kordant.android.ui.screens.onboarding
|
||||||
|
|
||||||
import androidx.compose.animation.core.Animatable
|
import androidx.compose.animation.core.Animatable
|
||||||
import androidx.compose.animation.core.tween
|
import androidx.compose.animation.core.tween
|
||||||
@@ -24,9 +24,9 @@ import androidx.compose.ui.graphics.drawscope.Stroke
|
|||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.components.ShieldButton
|
import com.kordant.android.ui.components.ShieldButton
|
||||||
import com.shieldai.android.ui.theme.BrandPrimary
|
import com.kordant.android.ui.theme.BrandPrimary
|
||||||
import com.shieldai.android.ui.theme.Success
|
import com.kordant.android.ui.theme.Success
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun CompleteStep(onComplete: () -> Unit) {
|
fun CompleteStep(onComplete: () -> Unit) {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.onboarding
|
package com.kordant.android.ui.screens.onboarding
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
@@ -24,10 +24,10 @@ import androidx.compose.ui.Alignment
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.components.InputType
|
import com.kordant.android.ui.components.InputType
|
||||||
import com.shieldai.android.ui.components.ShieldButton
|
import com.kordant.android.ui.components.ShieldButton
|
||||||
import com.shieldai.android.ui.components.ShieldButtonVariant
|
import com.kordant.android.ui.components.ShieldButtonVariant
|
||||||
import com.shieldai.android.ui.components.ShieldTextField
|
import com.kordant.android.ui.components.ShieldTextField
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun FamilyInviteStep(
|
fun FamilyInviteStep(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.onboarding
|
package com.kordant.android.ui.screens.onboarding
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
@@ -22,8 +22,8 @@ import androidx.compose.ui.draw.clip
|
|||||||
import androidx.compose.ui.draw.drawBehind
|
import androidx.compose.ui.draw.drawBehind
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.theme.BrandPrimary
|
import com.kordant.android.ui.theme.BrandPrimary
|
||||||
import com.shieldai.android.viewmodel.AuthViewModel
|
import com.kordant.android.viewmodel.AuthViewModel
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun OnboardingScreen(
|
fun OnboardingScreen(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.onboarding
|
package com.kordant.android.ui.screens.onboarding
|
||||||
|
|
||||||
import androidx.compose.foundation.BorderStroke
|
import androidx.compose.foundation.BorderStroke
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
@@ -23,7 +23,7 @@ import androidx.compose.ui.Alignment
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.theme.BrandPrimary
|
import com.kordant.android.ui.theme.BrandPrimary
|
||||||
|
|
||||||
data class Plan(
|
data class Plan(
|
||||||
val name: String,
|
val name: String,
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.onboarding
|
package com.kordant.android.ui.screens.onboarding
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
@@ -24,10 +24,10 @@ import androidx.compose.ui.Alignment
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.shieldai.android.ui.components.InputType
|
import com.kordant.android.ui.components.InputType
|
||||||
import com.shieldai.android.ui.components.ShieldButton
|
import com.kordant.android.ui.components.ShieldButton
|
||||||
import com.shieldai.android.ui.components.ShieldButtonVariant
|
import com.kordant.android.ui.components.ShieldButtonVariant
|
||||||
import com.shieldai.android.ui.components.ShieldTextField
|
import com.kordant.android.ui.components.ShieldTextField
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun WatchlistSetupStep(
|
fun WatchlistSetupStep(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.services
|
package com.kordant.android.ui.screens.services
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
@@ -36,14 +36,14 @@ import androidx.compose.ui.res.painterResource
|
|||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import com.shieldai.android.R
|
import com.kordant.android.R
|
||||||
import com.shieldai.android.ui.components.ShieldBadge
|
import com.kordant.android.ui.components.ShieldBadge
|
||||||
import com.shieldai.android.ui.components.ShieldButton
|
import com.kordant.android.ui.components.ShieldButton
|
||||||
import com.shieldai.android.ui.components.ShieldButtonVariant
|
import com.kordant.android.ui.components.ShieldButtonVariant
|
||||||
import com.shieldai.android.ui.components.ShieldCard
|
import com.kordant.android.ui.components.ShieldCard
|
||||||
import com.shieldai.android.ui.components.ShieldEmptyState
|
import com.kordant.android.ui.components.ShieldEmptyState
|
||||||
import com.shieldai.android.ui.components.ShieldTextField
|
import com.kordant.android.ui.components.ShieldTextField
|
||||||
import com.shieldai.android.viewmodel.DarkWatchViewModel
|
import com.kordant.android.viewmodel.DarkWatchViewModel
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
@@ -186,7 +186,7 @@ private fun DarkWatchContent(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun WatchlistItemCard(item: com.shieldai.android.data.model.WatchlistItem) {
|
private fun WatchlistItemCard(item: com.kordant.android.data.model.WatchlistItem) {
|
||||||
ShieldCard(modifier = Modifier.fillMaxWidth()) {
|
ShieldCard(modifier = Modifier.fillMaxWidth()) {
|
||||||
Row(
|
Row(
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth(),
|
||||||
@@ -214,15 +214,15 @@ private fun WatchlistItemCard(item: com.shieldai.android.data.model.WatchlistIte
|
|||||||
}
|
}
|
||||||
ShieldBadge(
|
ShieldBadge(
|
||||||
text = item.status,
|
text = item.status,
|
||||||
variant = if (item.status == "active") com.shieldai.android.ui.components.BadgeVariant.Success
|
variant = if (item.status == "active") com.kordant.android.ui.components.BadgeVariant.Success
|
||||||
else com.shieldai.android.ui.components.BadgeVariant.Default
|
else com.kordant.android.ui.components.BadgeVariant.Default
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun ExposureCard(exposure: com.shieldai.android.data.model.Exposure) {
|
private fun ExposureCard(exposure: com.kordant.android.data.model.Exposure) {
|
||||||
ShieldCard(modifier = Modifier.fillMaxWidth()) {
|
ShieldCard(modifier = Modifier.fillMaxWidth()) {
|
||||||
Column {
|
Column {
|
||||||
Row(
|
Row(
|
||||||
@@ -238,9 +238,9 @@ private fun ExposureCard(exposure: com.shieldai.android.data.model.Exposure) {
|
|||||||
ShieldBadge(
|
ShieldBadge(
|
||||||
text = exposure.severity,
|
text = exposure.severity,
|
||||||
variant = when (exposure.severity.lowercase()) {
|
variant = when (exposure.severity.lowercase()) {
|
||||||
"critical" -> com.shieldai.android.ui.components.BadgeVariant.Error
|
"critical" -> com.kordant.android.ui.components.BadgeVariant.Error
|
||||||
"high" -> com.shieldai.android.ui.components.BadgeVariant.Warning
|
"high" -> com.kordant.android.ui.components.BadgeVariant.Warning
|
||||||
else -> com.shieldai.android.ui.components.BadgeVariant.Info
|
else -> com.kordant.android.ui.components.BadgeVariant.Info
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.services
|
package com.kordant.android.ui.screens.services
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
@@ -36,15 +36,15 @@ import androidx.compose.ui.res.painterResource
|
|||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import com.shieldai.android.R
|
import com.kordant.android.R
|
||||||
import com.shieldai.android.ui.components.BadgeVariant
|
import com.kordant.android.ui.components.BadgeVariant
|
||||||
import com.shieldai.android.ui.components.ShieldBadge
|
import com.kordant.android.ui.components.ShieldBadge
|
||||||
import com.shieldai.android.ui.components.ShieldButton
|
import com.kordant.android.ui.components.ShieldButton
|
||||||
import com.shieldai.android.ui.components.ShieldButtonVariant
|
import com.kordant.android.ui.components.ShieldButtonVariant
|
||||||
import com.shieldai.android.ui.components.ShieldCard
|
import com.kordant.android.ui.components.ShieldCard
|
||||||
import com.shieldai.android.ui.components.ShieldEmptyState
|
import com.kordant.android.ui.components.ShieldEmptyState
|
||||||
import com.shieldai.android.ui.components.ShieldTextField
|
import com.kordant.android.ui.components.ShieldTextField
|
||||||
import com.shieldai.android.viewmodel.HomeTitleViewModel
|
import com.kordant.android.viewmodel.HomeTitleViewModel
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
@@ -160,7 +160,7 @@ private fun HomeTitleContent(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun PropertyCard(property: com.shieldai.android.data.model.Property) {
|
private fun PropertyCard(property: com.kordant.android.data.model.Property) {
|
||||||
ShieldCard(modifier = Modifier.fillMaxWidth()) {
|
ShieldCard(modifier = Modifier.fillMaxWidth()) {
|
||||||
Column {
|
Column {
|
||||||
Row(
|
Row(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.services
|
package com.kordant.android.ui.screens.services
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
@@ -36,15 +36,15 @@ import androidx.compose.ui.res.painterResource
|
|||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import com.shieldai.android.R
|
import com.kordant.android.R
|
||||||
import com.shieldai.android.ui.components.BadgeVariant
|
import com.kordant.android.ui.components.BadgeVariant
|
||||||
import com.shieldai.android.ui.components.ShieldBadge
|
import com.kordant.android.ui.components.ShieldBadge
|
||||||
import com.shieldai.android.ui.components.ShieldButton
|
import com.kordant.android.ui.components.ShieldButton
|
||||||
import com.shieldai.android.ui.components.ShieldButtonVariant
|
import com.kordant.android.ui.components.ShieldButtonVariant
|
||||||
import com.shieldai.android.ui.components.ShieldCard
|
import com.kordant.android.ui.components.ShieldCard
|
||||||
import com.shieldai.android.ui.components.ShieldEmptyState
|
import com.kordant.android.ui.components.ShieldEmptyState
|
||||||
import com.shieldai.android.ui.components.ShieldTextField
|
import com.kordant.android.ui.components.ShieldTextField
|
||||||
import com.shieldai.android.viewmodel.RemoveBrokersViewModel
|
import com.kordant.android.viewmodel.RemoveBrokersViewModel
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
@@ -187,7 +187,7 @@ private fun RemoveBrokersContent(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun ListingCard(listing: com.shieldai.android.data.model.BrokerListing) {
|
private fun ListingCard(listing: com.kordant.android.data.model.BrokerListing) {
|
||||||
ShieldCard(modifier = Modifier.fillMaxWidth()) {
|
ShieldCard(modifier = Modifier.fillMaxWidth()) {
|
||||||
Column {
|
Column {
|
||||||
Row(
|
Row(
|
||||||
@@ -226,7 +226,7 @@ private fun ListingCard(listing: com.shieldai.android.data.model.BrokerListing)
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun RemovalRequestCard(request: com.shieldai.android.data.model.RemovalRequest) {
|
private fun RemovalRequestCard(request: com.kordant.android.data.model.RemovalRequest) {
|
||||||
ShieldCard(modifier = Modifier.fillMaxWidth()) {
|
ShieldCard(modifier = Modifier.fillMaxWidth()) {
|
||||||
Column {
|
Column {
|
||||||
Row(
|
Row(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.services
|
package com.kordant.android.ui.screens.services
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
@@ -37,14 +37,14 @@ import androidx.compose.ui.res.painterResource
|
|||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import com.shieldai.android.R
|
import com.kordant.android.R
|
||||||
import com.shieldai.android.ui.components.ShieldBadge
|
import com.kordant.android.ui.components.ShieldBadge
|
||||||
import com.shieldai.android.ui.components.ShieldButton
|
import com.kordant.android.ui.components.ShieldButton
|
||||||
import com.shieldai.android.ui.components.ShieldButtonVariant
|
import com.kordant.android.ui.components.ShieldButtonVariant
|
||||||
import com.shieldai.android.ui.components.ShieldCard
|
import com.kordant.android.ui.components.ShieldCard
|
||||||
import com.shieldai.android.ui.components.ShieldEmptyState
|
import com.kordant.android.ui.components.ShieldEmptyState
|
||||||
import com.shieldai.android.ui.components.ShieldTextField
|
import com.kordant.android.ui.components.ShieldTextField
|
||||||
import com.shieldai.android.viewmodel.SpamShieldViewModel
|
import com.kordant.android.viewmodel.SpamShieldViewModel
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
@@ -224,7 +224,7 @@ private fun StatCard(
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun RuleCard(
|
private fun RuleCard(
|
||||||
rule: com.shieldai.android.data.model.SpamRule,
|
rule: com.kordant.android.data.model.SpamRule,
|
||||||
onToggle: (Boolean) -> Unit
|
onToggle: (Boolean) -> Unit
|
||||||
) {
|
) {
|
||||||
ShieldCard(modifier = Modifier.fillMaxWidth()) {
|
ShieldCard(modifier = Modifier.fillMaxWidth()) {
|
||||||
@@ -244,13 +244,13 @@ private fun RuleCard(
|
|||||||
) {
|
) {
|
||||||
ShieldBadge(
|
ShieldBadge(
|
||||||
text = rule.action,
|
text = rule.action,
|
||||||
variant = if (rule.action == "block") com.shieldai.android.ui.components.BadgeVariant.Error
|
variant = if (rule.action == "block") com.kordant.android.ui.components.BadgeVariant.Error
|
||||||
else com.shieldai.android.ui.components.BadgeVariant.Warning
|
else com.kordant.android.ui.components.BadgeVariant.Warning
|
||||||
)
|
)
|
||||||
if (rule.priority > 0) {
|
if (rule.priority > 0) {
|
||||||
ShieldBadge(
|
ShieldBadge(
|
||||||
text = "P${rule.priority}",
|
text = "P${rule.priority}",
|
||||||
variant = com.shieldai.android.ui.components.BadgeVariant.Info
|
variant = com.kordant.android.ui.components.BadgeVariant.Info
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.services
|
package com.kordant.android.ui.screens.services
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
@@ -36,15 +36,15 @@ import androidx.compose.ui.res.painterResource
|
|||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import com.shieldai.android.R
|
import com.kordant.android.R
|
||||||
import com.shieldai.android.ui.components.BadgeVariant
|
import com.kordant.android.ui.components.BadgeVariant
|
||||||
import com.shieldai.android.ui.components.ShieldBadge
|
import com.kordant.android.ui.components.ShieldBadge
|
||||||
import com.shieldai.android.ui.components.ShieldButton
|
import com.kordant.android.ui.components.ShieldButton
|
||||||
import com.shieldai.android.ui.components.ShieldButtonVariant
|
import com.kordant.android.ui.components.ShieldButtonVariant
|
||||||
import com.shieldai.android.ui.components.ShieldCard
|
import com.kordant.android.ui.components.ShieldCard
|
||||||
import com.shieldai.android.ui.components.ShieldEmptyState
|
import com.kordant.android.ui.components.ShieldEmptyState
|
||||||
import com.shieldai.android.ui.components.ShieldTextField
|
import com.kordant.android.ui.components.ShieldTextField
|
||||||
import com.shieldai.android.viewmodel.VoicePrintViewModel
|
import com.kordant.android.viewmodel.VoicePrintViewModel
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
@@ -160,7 +160,7 @@ private fun VoicePrintContent(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun EnrollmentCard(enrollment: com.shieldai.android.data.model.VoiceEnrollment) {
|
private fun EnrollmentCard(enrollment: com.kordant.android.data.model.VoiceEnrollment) {
|
||||||
ShieldCard(modifier = Modifier.fillMaxWidth()) {
|
ShieldCard(modifier = Modifier.fillMaxWidth()) {
|
||||||
Column {
|
Column {
|
||||||
Row(
|
Row(
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.screens.settings
|
package com.kordant.android.ui.screens.settings
|
||||||
|
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
@@ -34,14 +34,14 @@ import androidx.compose.ui.input.nestedscroll.nestedScroll
|
|||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||||
import com.shieldai.android.ui.components.ShieldAvatar
|
import com.kordant.android.ui.components.ShieldAvatar
|
||||||
import com.shieldai.android.ui.components.ShieldBadge
|
import com.kordant.android.ui.components.ShieldBadge
|
||||||
import com.shieldai.android.ui.components.ShieldButton
|
import com.kordant.android.ui.components.ShieldButton
|
||||||
import com.shieldai.android.ui.components.ShieldButtonVariant
|
import com.kordant.android.ui.components.ShieldButtonVariant
|
||||||
import com.shieldai.android.ui.components.ShieldCard
|
import com.kordant.android.ui.components.ShieldCard
|
||||||
import com.shieldai.android.ui.components.ShieldEmptyState
|
import com.kordant.android.ui.components.ShieldEmptyState
|
||||||
import com.shieldai.android.viewmodel.AuthViewModel
|
import com.kordant.android.viewmodel.AuthViewModel
|
||||||
import com.shieldai.android.viewmodel.SettingsViewModel
|
import com.kordant.android.viewmodel.SettingsViewModel
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
@@ -184,7 +184,7 @@ private fun SettingsContent(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun AccountSection(user: com.shieldai.android.data.model.User) {
|
private fun AccountSection(user: com.kordant.android.data.model.User) {
|
||||||
Column {
|
Column {
|
||||||
Text(
|
Text(
|
||||||
text = "Account",
|
text = "Account",
|
||||||
@@ -214,10 +214,10 @@ private fun AccountSection(user: com.shieldai.android.data.model.User) {
|
|||||||
)
|
)
|
||||||
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
|
Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) {
|
||||||
if (user.emailVerified) {
|
if (user.emailVerified) {
|
||||||
ShieldBadge(text = "Email verified", variant = com.shieldai.android.ui.components.BadgeVariant.Success)
|
ShieldBadge(text = "Email verified", variant = com.kordant.android.ui.components.BadgeVariant.Success)
|
||||||
}
|
}
|
||||||
if (user.phoneVerified) {
|
if (user.phoneVerified) {
|
||||||
ShieldBadge(text = "Phone verified", variant = com.shieldai.android.ui.components.BadgeVariant.Success)
|
ShieldBadge(text = "Phone verified", variant = com.kordant.android.ui.components.BadgeVariant.Success)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -227,7 +227,7 @@ private fun AccountSection(user: com.shieldai.android.data.model.User) {
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun SubscriptionSection(
|
private fun SubscriptionSection(
|
||||||
subscription: com.shieldai.android.data.model.Subscription?,
|
subscription: com.kordant.android.data.model.Subscription?,
|
||||||
onUpgrade: () -> Unit
|
onUpgrade: () -> Unit
|
||||||
) {
|
) {
|
||||||
Column {
|
Column {
|
||||||
@@ -260,7 +260,7 @@ private fun SubscriptionSection(
|
|||||||
text = "Upgrade",
|
text = "Upgrade",
|
||||||
onClick = onUpgrade,
|
onClick = onUpgrade,
|
||||||
variant = ShieldButtonVariant.Secondary,
|
variant = ShieldButtonVariant.Secondary,
|
||||||
size = com.shieldai.android.ui.components.ShieldButtonSize.Small
|
size = com.kordant.android.ui.components.ShieldButtonSize.Small
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.theme
|
package com.kordant.android.ui.theme
|
||||||
|
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.theme
|
package com.kordant.android.ui.theme
|
||||||
|
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material3.Shapes
|
import androidx.compose.material3.Shapes
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.theme
|
package com.kordant.android.ui.theme
|
||||||
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import androidx.compose.foundation.isSystemInDarkTheme
|
import androidx.compose.foundation.isSystemInDarkTheme
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.shieldai.android.ui.theme
|
package com.kordant.android.ui.theme
|
||||||
|
|
||||||
import androidx.compose.material3.Typography
|
import androidx.compose.material3.Typography
|
||||||
import androidx.compose.ui.text.TextStyle
|
import androidx.compose.ui.text.TextStyle
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package com.shieldai.android.util
|
package com.kordant.android.util
|
||||||
|
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import com.shieldai.android.ui.theme.Error
|
import com.kordant.android.ui.theme.Error
|
||||||
import com.shieldai.android.ui.theme.Success
|
import com.kordant.android.ui.theme.Success
|
||||||
import com.shieldai.android.ui.theme.Warning
|
import com.kordant.android.ui.theme.Warning
|
||||||
|
|
||||||
enum class PasswordStrength {
|
enum class PasswordStrength {
|
||||||
WEAK, FAIR, STRONG, VERY_STRONG
|
WEAK, FAIR, STRONG, VERY_STRONG
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package com.shieldai.android.viewmodel
|
package com.kordant.android.viewmodel
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.shieldai.android.KordantApp
|
import com.kordant.android.KordantApp
|
||||||
import com.shieldai.android.data.model.Alert
|
import com.kordant.android.data.model.Alert
|
||||||
import com.shieldai.android.data.repository.AlertRepository
|
import com.kordant.android.data.repository.AlertRepository
|
||||||
import com.shieldai.android.di.RepositoryModule
|
import com.kordant.android.di.RepositoryModule
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
@@ -33,7 +33,7 @@ class AlertDetailViewModel : ViewModel() {
|
|||||||
_uiState.value = _uiState.value.copy(isLoading = true, error = null)
|
_uiState.value = _uiState.value.copy(isLoading = true, error = null)
|
||||||
try {
|
try {
|
||||||
val result = alertRepo.getAlerts()
|
val result = alertRepo.getAlerts()
|
||||||
if (result is com.shieldai.android.data.remote.ApiResult.Success) {
|
if (result is com.kordant.android.data.remote.ApiResult.Success) {
|
||||||
val alert = result.data.find { it.id == alertId }
|
val alert = result.data.find { it.id == alertId }
|
||||||
val correlated = alert?.let {
|
val correlated = alert?.let {
|
||||||
result.data.filter { a ->
|
result.data.filter { a ->
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
package com.shieldai.android.viewmodel
|
package com.kordant.android.viewmodel
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.shieldai.android.KordantApp
|
import com.kordant.android.KordantApp
|
||||||
import com.shieldai.android.data.repository.AuthRepository
|
import com.kordant.android.data.repository.AuthRepository
|
||||||
import com.shieldai.android.data.repository.AuthRepositoryImpl
|
import com.kordant.android.data.repository.AuthRepositoryImpl
|
||||||
import com.shieldai.android.data.repository.User
|
import com.kordant.android.data.repository.User
|
||||||
import com.shieldai.android.util.calculatePasswordStrength
|
import com.kordant.android.util.calculatePasswordStrength
|
||||||
import com.shieldai.android.util.passwordStrengthProgress
|
import com.kordant.android.util.passwordStrengthProgress
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package com.shieldai.android.viewmodel
|
package com.kordant.android.viewmodel
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.shieldai.android.KordantApp
|
import com.kordant.android.KordantApp
|
||||||
import com.shieldai.android.data.model.Exposure
|
import com.kordant.android.data.model.Exposure
|
||||||
import com.shieldai.android.data.model.WatchlistItem
|
import com.kordant.android.data.model.WatchlistItem
|
||||||
import com.shieldai.android.data.repository.DarkWatchRepository
|
import com.kordant.android.data.repository.DarkWatchRepository
|
||||||
import com.shieldai.android.di.RepositoryModule
|
import com.kordant.android.di.RepositoryModule
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
@@ -44,11 +44,11 @@ class DarkWatchViewModel : ViewModel() {
|
|||||||
val watchlistResult = repo.getWatchlist(forceRefresh)
|
val watchlistResult = repo.getWatchlist(forceRefresh)
|
||||||
val exposuresResult = repo.getExposures(forceRefresh)
|
val exposuresResult = repo.getExposures(forceRefresh)
|
||||||
|
|
||||||
val watchlist = if (watchlistResult is com.shieldai.android.data.remote.ApiResult.Success) {
|
val watchlist = if (watchlistResult is com.kordant.android.data.remote.ApiResult.Success) {
|
||||||
watchlistResult.data
|
watchlistResult.data
|
||||||
} else emptyList()
|
} else emptyList()
|
||||||
|
|
||||||
val exposures = if (exposuresResult is com.shieldai.android.data.remote.ApiResult.Success) {
|
val exposures = if (exposuresResult is com.kordant.android.data.remote.ApiResult.Success) {
|
||||||
exposuresResult.data
|
exposuresResult.data
|
||||||
} else emptyList()
|
} else emptyList()
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ class DarkWatchViewModel : ViewModel() {
|
|||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
_uiState.value = _uiState.value.copy(isAdding = true, error = null)
|
_uiState.value = _uiState.value.copy(isAdding = true, error = null)
|
||||||
val result = repo.addWatchlistItem(type, value, label)
|
val result = repo.addWatchlistItem(type, value, label)
|
||||||
if (result is com.shieldai.android.data.remote.ApiResult.Error) {
|
if (result is com.kordant.android.data.remote.ApiResult.Error) {
|
||||||
_uiState.value = _uiState.value.copy(
|
_uiState.value = _uiState.value.copy(
|
||||||
isAdding = false,
|
isAdding = false,
|
||||||
error = result.message
|
error = result.message
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
package com.shieldai.android.viewmodel
|
package com.kordant.android.viewmodel
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.shieldai.android.KordantApp
|
import com.kordant.android.KordantApp
|
||||||
import com.shieldai.android.data.model.Alert
|
import com.kordant.android.data.model.Alert
|
||||||
import com.shieldai.android.data.repository.AlertRepository
|
import com.kordant.android.data.repository.AlertRepository
|
||||||
import com.shieldai.android.data.repository.DarkWatchRepository
|
import com.kordant.android.data.repository.DarkWatchRepository
|
||||||
import com.shieldai.android.data.repository.HomeTitleRepository
|
import com.kordant.android.data.repository.HomeTitleRepository
|
||||||
import com.shieldai.android.data.repository.RemoveBrokersRepository
|
import com.kordant.android.data.repository.RemoveBrokersRepository
|
||||||
import com.shieldai.android.data.repository.SpamShieldRepository
|
import com.kordant.android.data.repository.SpamShieldRepository
|
||||||
import com.shieldai.android.data.repository.VoicePrintRepository
|
import com.kordant.android.data.repository.VoicePrintRepository
|
||||||
import com.shieldai.android.di.RepositoryModule
|
import com.kordant.android.di.RepositoryModule
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
@@ -74,27 +74,27 @@ class DashboardViewModel : ViewModel() {
|
|||||||
val removalsResult = removeBrokersRepo.getRemovalRequests()
|
val removalsResult = removeBrokersRepo.getRemovalRequests()
|
||||||
|
|
||||||
val alerts = when (alertsResult) {
|
val alerts = when (alertsResult) {
|
||||||
is com.shieldai.android.data.remote.ApiResult.Success -> alertsResult.data
|
is com.kordant.android.data.remote.ApiResult.Success -> alertsResult.data
|
||||||
else -> emptyList()
|
else -> emptyList()
|
||||||
}
|
}
|
||||||
val watchlist = when (watchlistResult) {
|
val watchlist = when (watchlistResult) {
|
||||||
is com.shieldai.android.data.remote.ApiResult.Success -> watchlistResult.data
|
is com.kordant.android.data.remote.ApiResult.Success -> watchlistResult.data
|
||||||
else -> emptyList()
|
else -> emptyList()
|
||||||
}
|
}
|
||||||
val enrollments = when (enrollmentsResult) {
|
val enrollments = when (enrollmentsResult) {
|
||||||
is com.shieldai.android.data.remote.ApiResult.Success -> enrollmentsResult.data
|
is com.kordant.android.data.remote.ApiResult.Success -> enrollmentsResult.data
|
||||||
else -> emptyList()
|
else -> emptyList()
|
||||||
}
|
}
|
||||||
val rules = when (rulesResult) {
|
val rules = when (rulesResult) {
|
||||||
is com.shieldai.android.data.remote.ApiResult.Success -> rulesResult.data
|
is com.kordant.android.data.remote.ApiResult.Success -> rulesResult.data
|
||||||
else -> emptyList()
|
else -> emptyList()
|
||||||
}
|
}
|
||||||
val properties = when (propertiesResult) {
|
val properties = when (propertiesResult) {
|
||||||
is com.shieldai.android.data.remote.ApiResult.Success -> propertiesResult.data
|
is com.kordant.android.data.remote.ApiResult.Success -> propertiesResult.data
|
||||||
else -> emptyList()
|
else -> emptyList()
|
||||||
}
|
}
|
||||||
val removals = when (removalsResult) {
|
val removals = when (removalsResult) {
|
||||||
is com.shieldai.android.data.remote.ApiResult.Success -> removalsResult.data
|
is com.kordant.android.data.remote.ApiResult.Success -> removalsResult.data
|
||||||
else -> emptyList()
|
else -> emptyList()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package com.shieldai.android.viewmodel
|
package com.kordant.android.viewmodel
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.shieldai.android.KordantApp
|
import com.kordant.android.KordantApp
|
||||||
import com.shieldai.android.data.model.Property
|
import com.kordant.android.data.model.Property
|
||||||
import com.shieldai.android.data.repository.HomeTitleRepository
|
import com.kordant.android.data.repository.HomeTitleRepository
|
||||||
import com.shieldai.android.di.RepositoryModule
|
import com.kordant.android.di.RepositoryModule
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
@@ -40,7 +40,7 @@ class HomeTitleViewModel : ViewModel() {
|
|||||||
_uiState.value = _uiState.value.copy(isLoading = !forceRefresh, error = null)
|
_uiState.value = _uiState.value.copy(isLoading = !forceRefresh, error = null)
|
||||||
try {
|
try {
|
||||||
val result = repo.getProperties(forceRefresh)
|
val result = repo.getProperties(forceRefresh)
|
||||||
if (result is com.shieldai.android.data.remote.ApiResult.Success) {
|
if (result is com.kordant.android.data.remote.ApiResult.Success) {
|
||||||
_uiState.value = _uiState.value.copy(
|
_uiState.value = _uiState.value.copy(
|
||||||
isLoading = false,
|
isLoading = false,
|
||||||
properties = result.data
|
properties = result.data
|
||||||
@@ -61,7 +61,7 @@ class HomeTitleViewModel : ViewModel() {
|
|||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
_uiState.value = _uiState.value.copy(isAdding = true, error = null)
|
_uiState.value = _uiState.value.copy(isAdding = true, error = null)
|
||||||
val result = repo.addProperty(address, type)
|
val result = repo.addProperty(address, type)
|
||||||
if (result is com.shieldai.android.data.remote.ApiResult.Error) {
|
if (result is com.kordant.android.data.remote.ApiResult.Error) {
|
||||||
_uiState.value = _uiState.value.copy(
|
_uiState.value = _uiState.value.copy(
|
||||||
isAdding = false,
|
isAdding = false,
|
||||||
error = result.message
|
error = result.message
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package com.shieldai.android.viewmodel
|
package com.kordant.android.viewmodel
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.shieldai.android.KordantApp
|
import com.kordant.android.KordantApp
|
||||||
import com.shieldai.android.data.model.BrokerListing
|
import com.kordant.android.data.model.BrokerListing
|
||||||
import com.shieldai.android.data.model.RemovalRequest
|
import com.kordant.android.data.model.RemovalRequest
|
||||||
import com.shieldai.android.data.repository.RemoveBrokersRepository
|
import com.kordant.android.data.repository.RemoveBrokersRepository
|
||||||
import com.shieldai.android.di.RepositoryModule
|
import com.kordant.android.di.RepositoryModule
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
@@ -44,11 +44,11 @@ class RemoveBrokersViewModel : ViewModel() {
|
|||||||
val listingsResult = repo.getListings(forceRefresh)
|
val listingsResult = repo.getListings(forceRefresh)
|
||||||
val requestsResult = repo.getRemovalRequests(forceRefresh)
|
val requestsResult = repo.getRemovalRequests(forceRefresh)
|
||||||
|
|
||||||
val listings = if (listingsResult is com.shieldai.android.data.remote.ApiResult.Success) {
|
val listings = if (listingsResult is com.kordant.android.data.remote.ApiResult.Success) {
|
||||||
listingsResult.data
|
listingsResult.data
|
||||||
} else emptyList()
|
} else emptyList()
|
||||||
|
|
||||||
val requests = if (requestsResult is com.shieldai.android.data.remote.ApiResult.Success) {
|
val requests = if (requestsResult is com.kordant.android.data.remote.ApiResult.Success) {
|
||||||
requestsResult.data
|
requestsResult.data
|
||||||
} else emptyList()
|
} else emptyList()
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ class RemoveBrokersViewModel : ViewModel() {
|
|||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
_uiState.value = _uiState.value.copy(isCreating = true, error = null)
|
_uiState.value = _uiState.value.copy(isCreating = true, error = null)
|
||||||
val result = repo.createRemovalRequest(listingId, notes)
|
val result = repo.createRemovalRequest(listingId, notes)
|
||||||
if (result is com.shieldai.android.data.remote.ApiResult.Error) {
|
if (result is com.kordant.android.data.remote.ApiResult.Error) {
|
||||||
_uiState.value = _uiState.value.copy(
|
_uiState.value = _uiState.value.copy(
|
||||||
isCreating = false,
|
isCreating = false,
|
||||||
error = result.message
|
error = result.message
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
package com.shieldai.android.viewmodel
|
package com.kordant.android.viewmodel
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.shieldai.android.KordantApp
|
import com.kordant.android.KordantApp
|
||||||
import com.shieldai.android.data.model.Subscription
|
import com.kordant.android.data.model.Subscription
|
||||||
import com.shieldai.android.data.model.User
|
import com.kordant.android.data.model.User
|
||||||
import com.shieldai.android.data.repository.SubscriptionRepository
|
import com.kordant.android.data.repository.SubscriptionRepository
|
||||||
import com.shieldai.android.data.repository.UserRepository
|
import com.kordant.android.data.repository.UserRepository
|
||||||
import com.shieldai.android.di.RepositoryModule
|
import com.kordant.android.di.RepositoryModule
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
@@ -50,11 +50,11 @@ class SettingsViewModel : ViewModel() {
|
|||||||
val userResult = userRepo.getMe(forceRefresh)
|
val userResult = userRepo.getMe(forceRefresh)
|
||||||
val subResult = subscriptionRepo.getSubscription()
|
val subResult = subscriptionRepo.getSubscription()
|
||||||
|
|
||||||
val user = if (userResult is com.shieldai.android.data.remote.ApiResult.Success) {
|
val user = if (userResult is com.kordant.android.data.remote.ApiResult.Success) {
|
||||||
userResult.data
|
userResult.data
|
||||||
} else null
|
} else null
|
||||||
|
|
||||||
val subscription = if (subResult is com.shieldai.android.data.remote.ApiResult.Success) {
|
val subscription = if (subResult is com.kordant.android.data.remote.ApiResult.Success) {
|
||||||
subResult.data
|
subResult.data
|
||||||
} else null
|
} else null
|
||||||
|
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package com.shieldai.android.viewmodel
|
package com.kordant.android.viewmodel
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.shieldai.android.KordantApp
|
import com.kordant.android.KordantApp
|
||||||
import com.shieldai.android.data.model.SpamRule
|
import com.kordant.android.data.model.SpamRule
|
||||||
import com.shieldai.android.data.repository.SpamShieldRepository
|
import com.kordant.android.data.repository.SpamShieldRepository
|
||||||
import com.shieldai.android.di.RepositoryModule
|
import com.kordant.android.di.RepositoryModule
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
@@ -43,7 +43,7 @@ class SpamShieldViewModel : ViewModel() {
|
|||||||
_uiState.value = _uiState.value.copy(isLoading = !forceRefresh, error = null)
|
_uiState.value = _uiState.value.copy(isLoading = !forceRefresh, error = null)
|
||||||
try {
|
try {
|
||||||
val result = repo.getRules(forceRefresh)
|
val result = repo.getRules(forceRefresh)
|
||||||
if (result is com.shieldai.android.data.remote.ApiResult.Success) {
|
if (result is com.kordant.android.data.remote.ApiResult.Success) {
|
||||||
val stats = repo.getStats()
|
val stats = repo.getStats()
|
||||||
_uiState.value = _uiState.value.copy(
|
_uiState.value = _uiState.value.copy(
|
||||||
isLoading = false,
|
isLoading = false,
|
||||||
@@ -68,7 +68,7 @@ class SpamShieldViewModel : ViewModel() {
|
|||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
_uiState.value = _uiState.value.copy(isCreating = true, error = null)
|
_uiState.value = _uiState.value.copy(isCreating = true, error = null)
|
||||||
val result = repo.createRule(pattern, action, description)
|
val result = repo.createRule(pattern, action, description)
|
||||||
if (result is com.shieldai.android.data.remote.ApiResult.Error) {
|
if (result is com.kordant.android.data.remote.ApiResult.Error) {
|
||||||
_uiState.value = _uiState.value.copy(
|
_uiState.value = _uiState.value.copy(
|
||||||
isCreating = false,
|
isCreating = false,
|
||||||
error = result.message
|
error = result.message
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
package com.shieldai.android.viewmodel
|
package com.kordant.android.viewmodel
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.shieldai.android.KordantApp
|
import com.kordant.android.KordantApp
|
||||||
import com.shieldai.android.data.model.VoiceEnrollment
|
import com.kordant.android.data.model.VoiceEnrollment
|
||||||
import com.shieldai.android.data.repository.VoicePrintRepository
|
import com.kordant.android.data.repository.VoicePrintRepository
|
||||||
import com.shieldai.android.di.RepositoryModule
|
import com.kordant.android.di.RepositoryModule
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
@@ -44,7 +44,7 @@ class VoicePrintViewModel : ViewModel() {
|
|||||||
} else {
|
} else {
|
||||||
repo.getEnrollments()
|
repo.getEnrollments()
|
||||||
}
|
}
|
||||||
if (result is com.shieldai.android.data.remote.ApiResult.Success) {
|
if (result is com.kordant.android.data.remote.ApiResult.Success) {
|
||||||
_uiState.value = _uiState.value.copy(
|
_uiState.value = _uiState.value.copy(
|
||||||
isLoading = false,
|
isLoading = false,
|
||||||
enrollments = result.data
|
enrollments = result.data
|
||||||
@@ -65,7 +65,7 @@ class VoicePrintViewModel : ViewModel() {
|
|||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
_uiState.value = _uiState.value.copy(isEnrolling = true, error = null)
|
_uiState.value = _uiState.value.copy(isEnrolling = true, error = null)
|
||||||
val result = repo.createEnrollment(name)
|
val result = repo.createEnrollment(name)
|
||||||
if (result is com.shieldai.android.data.remote.ApiResult.Error) {
|
if (result is com.kordant.android.data.remote.ApiResult.Error) {
|
||||||
_uiState.value = _uiState.value.copy(
|
_uiState.value = _uiState.value.copy(
|
||||||
isEnrolling = false,
|
isEnrolling = false,
|
||||||
error = result.message
|
error = result.message
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user