diff --git a/README.md b/README.md index 6efffd4..1377853 100644 --- a/README.md +++ b/README.md @@ -284,8 +284,8 @@ kordant/ | Document | Location | |----------|----------| -| Product Plan | `plans/SHIELDAI-product-plan.md` | -| Technical Architecture | `plans/SHIELDAI-technical-architecture.md` | +| Product Plan | `plans/Kordant-product-plan.md` | +| Technical Architecture | `plans/Kordant-technical-architecture.md` | | Infrastructure | `infra/README.md` | | Rollback Runbook | `infra/ROLLBACK.md` | | Stripe Integration | `docs/STRIPE_INTEGRATION.md` | diff --git a/android/app/src/androidTest/java/com/shieldai/android/ComponentTests.kt b/android/app/src/androidTest/java/com/kordant/android/ComponentTests.kt similarity index 100% rename from android/app/src/androidTest/java/com/shieldai/android/ComponentTests.kt rename to android/app/src/androidTest/java/com/kordant/android/ComponentTests.kt diff --git a/android/app/src/androidTest/java/com/shieldai/android/ExampleInstrumentedTest.kt b/android/app/src/androidTest/java/com/kordant/android/ExampleInstrumentedTest.kt similarity index 100% rename from android/app/src/androidTest/java/com/shieldai/android/ExampleInstrumentedTest.kt rename to android/app/src/androidTest/java/com/kordant/android/ExampleInstrumentedTest.kt diff --git a/android/app/src/main/java/com/kordant/android/MainActivity.kt b/android/app/src/main/java/com/kordant/android/MainActivity.kt index 0277cb9..cac9dfb 100644 --- a/android/app/src/main/java/com/kordant/android/MainActivity.kt +++ b/android/app/src/main/java/com/kordant/android/MainActivity.kt @@ -1,11 +1,11 @@ -package com.shieldai.android +package com.kordant.android import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge -import com.shieldai.android.navigation.AppNavigation -import com.shieldai.android.ui.theme.KordantTheme +import com.kordant.android.navigation.AppNavigation +import com.kordant.android.ui.theme.KordantTheme class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { diff --git a/android/app/src/main/java/com/kordant/android/ShieldAIApp.kt b/android/app/src/main/java/com/kordant/android/ShieldAIApp.kt index 51bb314..08a2f14 100644 --- a/android/app/src/main/java/com/kordant/android/ShieldAIApp.kt +++ b/android/app/src/main/java/com/kordant/android/ShieldAIApp.kt @@ -1,8 +1,8 @@ -package com.shieldai.android +package com.kordant.android import android.app.Application -import com.shieldai.android.data.repository.AuthRepository -import com.shieldai.android.data.repository.AuthRepositoryImpl +import com.kordant.android.data.repository.AuthRepository +import com.kordant.android.data.repository.AuthRepositoryImpl class KordantApp : Application() { lateinit var authRepository: AuthRepository diff --git a/android/app/src/main/java/com/kordant/android/data/local/CacheManager.kt b/android/app/src/main/java/com/kordant/android/data/local/CacheManager.kt index 8b8726f..803c348 100644 --- a/android/app/src/main/java/com/kordant/android/data/local/CacheManager.kt +++ b/android/app/src/main/java/com/kordant/android/data/local/CacheManager.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.local +package com.kordant.android.data.local import android.content.Context import kotlinx.serialization.Serializable diff --git a/android/app/src/main/java/com/kordant/android/data/model/Alert.kt b/android/app/src/main/java/com/kordant/android/data/model/Alert.kt index 5fccb69..874f298 100644 --- a/android/app/src/main/java/com/kordant/android/data/model/Alert.kt +++ b/android/app/src/main/java/com/kordant/android/data/model/Alert.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.model +package com.kordant.android.data.model import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/app/src/main/java/com/kordant/android/data/model/BrokerListing.kt b/android/app/src/main/java/com/kordant/android/data/model/BrokerListing.kt index 9d4132a..d186b21 100644 --- a/android/app/src/main/java/com/kordant/android/data/model/BrokerListing.kt +++ b/android/app/src/main/java/com/kordant/android/data/model/BrokerListing.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.model +package com.kordant.android.data.model import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/app/src/main/java/com/kordant/android/data/model/Exposure.kt b/android/app/src/main/java/com/kordant/android/data/model/Exposure.kt index 97d127b..473474c 100644 --- a/android/app/src/main/java/com/kordant/android/data/model/Exposure.kt +++ b/android/app/src/main/java/com/kordant/android/data/model/Exposure.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.model +package com.kordant.android.data.model import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/app/src/main/java/com/kordant/android/data/model/Property.kt b/android/app/src/main/java/com/kordant/android/data/model/Property.kt index 38a52a8..9ff1858 100644 --- a/android/app/src/main/java/com/kordant/android/data/model/Property.kt +++ b/android/app/src/main/java/com/kordant/android/data/model/Property.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.model +package com.kordant.android.data.model import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/app/src/main/java/com/kordant/android/data/model/RemovalRequest.kt b/android/app/src/main/java/com/kordant/android/data/model/RemovalRequest.kt index 90767e1..bb12dff 100644 --- a/android/app/src/main/java/com/kordant/android/data/model/RemovalRequest.kt +++ b/android/app/src/main/java/com/kordant/android/data/model/RemovalRequest.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.model +package com.kordant.android.data.model import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/app/src/main/java/com/kordant/android/data/model/SpamRule.kt b/android/app/src/main/java/com/kordant/android/data/model/SpamRule.kt index eee767e..560b9ae 100644 --- a/android/app/src/main/java/com/kordant/android/data/model/SpamRule.kt +++ b/android/app/src/main/java/com/kordant/android/data/model/SpamRule.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.model +package com.kordant.android.data.model import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/app/src/main/java/com/kordant/android/data/model/Subscription.kt b/android/app/src/main/java/com/kordant/android/data/model/Subscription.kt index 714d6a2..22708de 100644 --- a/android/app/src/main/java/com/kordant/android/data/model/Subscription.kt +++ b/android/app/src/main/java/com/kordant/android/data/model/Subscription.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.model +package com.kordant.android.data.model import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/app/src/main/java/com/kordant/android/data/model/User.kt b/android/app/src/main/java/com/kordant/android/data/model/User.kt index 3a530aa..c797897 100644 --- a/android/app/src/main/java/com/kordant/android/data/model/User.kt +++ b/android/app/src/main/java/com/kordant/android/data/model/User.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.model +package com.kordant.android.data.model import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/app/src/main/java/com/kordant/android/data/model/VoiceAnalysis.kt b/android/app/src/main/java/com/kordant/android/data/model/VoiceAnalysis.kt index f5d3cd2..384ac04 100644 --- a/android/app/src/main/java/com/kordant/android/data/model/VoiceAnalysis.kt +++ b/android/app/src/main/java/com/kordant/android/data/model/VoiceAnalysis.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.model +package com.kordant.android.data.model import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/app/src/main/java/com/kordant/android/data/model/VoiceEnrollment.kt b/android/app/src/main/java/com/kordant/android/data/model/VoiceEnrollment.kt index c8601ec..aeb9983 100644 --- a/android/app/src/main/java/com/kordant/android/data/model/VoiceEnrollment.kt +++ b/android/app/src/main/java/com/kordant/android/data/model/VoiceEnrollment.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.model +package com.kordant.android.data.model import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/app/src/main/java/com/kordant/android/data/model/WatchlistItem.kt b/android/app/src/main/java/com/kordant/android/data/model/WatchlistItem.kt index 104213f..b911954 100644 --- a/android/app/src/main/java/com/kordant/android/data/model/WatchlistItem.kt +++ b/android/app/src/main/java/com/kordant/android/data/model/WatchlistItem.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.model +package com.kordant.android.data.model import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/android/app/src/main/java/com/kordant/android/data/remote/AuthInterceptor.kt b/android/app/src/main/java/com/kordant/android/data/remote/AuthInterceptor.kt index 481711b..a4d207f 100644 --- a/android/app/src/main/java/com/kordant/android/data/remote/AuthInterceptor.kt +++ b/android/app/src/main/java/com/kordant/android/data/remote/AuthInterceptor.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.remote +package com.kordant.android.data.remote import android.content.Context import android.content.SharedPreferences @@ -11,7 +11,7 @@ class AuthInterceptor(context: Context) : Interceptor { private val securePrefs: SharedPreferences = EncryptedSharedPreferences.create( context, - "shieldai_auth_prefs", + "kordant_auth_prefs", MasterKey.Builder(context).setKeyScheme(MasterKey.KeyScheme.AES256_GCM).build(), EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM, diff --git a/android/app/src/main/java/com/kordant/android/data/remote/ErrorHandler.kt b/android/app/src/main/java/com/kordant/android/data/remote/ErrorHandler.kt index 53b9ced..64736c3 100644 --- a/android/app/src/main/java/com/kordant/android/data/remote/ErrorHandler.kt +++ b/android/app/src/main/java/com/kordant/android/data/remote/ErrorHandler.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.remote +package com.kordant.android.data.remote import kotlinx.coroutines.delay import kotlin.math.min diff --git a/android/app/src/main/java/com/kordant/android/data/remote/TRPCApiService.kt b/android/app/src/main/java/com/kordant/android/data/remote/TRPCApiService.kt index eb5a1db..27652e7 100644 --- a/android/app/src/main/java/com/kordant/android/data/remote/TRPCApiService.kt +++ b/android/app/src/main/java/com/kordant/android/data/remote/TRPCApiService.kt @@ -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.shieldai.android.data.model.BrokerListing -import com.shieldai.android.data.model.Exposure -import com.shieldai.android.data.model.Property -import com.shieldai.android.data.model.RemovalRequest -import com.shieldai.android.data.model.SpamRule -import com.shieldai.android.data.model.Subscription -import com.shieldai.android.data.model.User -import com.shieldai.android.data.model.VoiceAnalysis -import com.shieldai.android.data.model.VoiceEnrollment -import com.shieldai.android.data.model.WatchlistItem +import com.kordant.android.data.model.Alert +import com.kordant.android.data.model.BrokerListing +import com.kordant.android.data.model.Exposure +import com.kordant.android.data.model.Property +import com.kordant.android.data.model.RemovalRequest +import com.kordant.android.data.model.SpamRule +import com.kordant.android.data.model.Subscription +import com.kordant.android.data.model.User +import com.kordant.android.data.model.VoiceAnalysis +import com.kordant.android.data.model.VoiceEnrollment +import com.kordant.android.data.model.WatchlistItem import kotlinx.serialization.json.JsonObject import retrofit2.http.Body import retrofit2.http.POST diff --git a/android/app/src/main/java/com/kordant/android/data/remote/TRPCResponse.kt b/android/app/src/main/java/com/kordant/android/data/remote/TRPCResponse.kt index 976ff59..2bde764 100644 --- a/android/app/src/main/java/com/kordant/android/data/remote/TRPCResponse.kt +++ b/android/app/src/main/java/com/kordant/android/data/remote/TRPCResponse.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.remote +package com.kordant.android.data.remote import kotlinx.serialization.Serializable import kotlinx.serialization.json.JsonElement diff --git a/android/app/src/main/java/com/kordant/android/data/repository/AlertRepository.kt b/android/app/src/main/java/com/kordant/android/data/repository/AlertRepository.kt index e28ebc4..a2558f6 100644 --- a/android/app/src/main/java/com/kordant/android/data/repository/AlertRepository.kt +++ b/android/app/src/main/java/com/kordant/android/data/repository/AlertRepository.kt @@ -1,12 +1,12 @@ -package com.shieldai.android.data.repository +package com.kordant.android.data.repository import android.content.Context -import com.shieldai.android.data.local.CacheManager -import com.shieldai.android.data.model.Alert -import com.shieldai.android.data.remote.ApiResult -import com.shieldai.android.data.remote.ErrorHandler -import com.shieldai.android.data.remote.TRPCApiService -import com.shieldai.android.data.remote.TRPCRequest +import com.kordant.android.data.local.CacheManager +import com.kordant.android.data.model.Alert +import com.kordant.android.data.remote.ApiResult +import com.kordant.android.data.remote.ErrorHandler +import com.kordant.android.data.remote.TRPCApiService +import com.kordant.android.data.remote.TRPCRequest import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.serialization.json.buildJsonObject diff --git a/android/app/src/main/java/com/kordant/android/data/repository/AuthRepository.kt b/android/app/src/main/java/com/kordant/android/data/repository/AuthRepository.kt index 83f3f18..9f2b4bf 100644 --- a/android/app/src/main/java/com/kordant/android/data/repository/AuthRepository.kt +++ b/android/app/src/main/java/com/kordant/android/data/repository/AuthRepository.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.repository +package com.kordant.android.data.repository import android.content.Context import android.content.SharedPreferences @@ -38,7 +38,7 @@ interface AuthRepository { class AuthRepositoryImpl( context: Context, - private val baseUrl: String = "https://api.shieldai.com" + private val baseUrl: String = "https://kordant.ai/api" ) : AuthRepository { private val JSON_MEDIA_TYPE = "application/json; charset=utf-8".toMediaType() @@ -54,7 +54,7 @@ class AuthRepositoryImpl( private val securePrefs: SharedPreferences = EncryptedSharedPreferences.create( context, - "shieldai_auth_prefs", + "kordant_auth_prefs", masterKey, EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM diff --git a/android/app/src/main/java/com/kordant/android/data/repository/DarkWatchRepository.kt b/android/app/src/main/java/com/kordant/android/data/repository/DarkWatchRepository.kt index 102ae78..c5d28ca 100644 --- a/android/app/src/main/java/com/kordant/android/data/repository/DarkWatchRepository.kt +++ b/android/app/src/main/java/com/kordant/android/data/repository/DarkWatchRepository.kt @@ -1,13 +1,13 @@ -package com.shieldai.android.data.repository +package com.kordant.android.data.repository import android.content.Context -import com.shieldai.android.data.local.CacheManager -import com.shieldai.android.data.model.Exposure -import com.shieldai.android.data.model.WatchlistItem -import com.shieldai.android.data.remote.ApiResult -import com.shieldai.android.data.remote.ErrorHandler -import com.shieldai.android.data.remote.TRPCApiService -import com.shieldai.android.data.remote.TRPCRequest +import com.kordant.android.data.local.CacheManager +import com.kordant.android.data.model.Exposure +import com.kordant.android.data.model.WatchlistItem +import com.kordant.android.data.remote.ApiResult +import com.kordant.android.data.remote.ErrorHandler +import com.kordant.android.data.remote.TRPCApiService +import com.kordant.android.data.remote.TRPCRequest import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.serialization.json.buildJsonObject diff --git a/android/app/src/main/java/com/kordant/android/data/repository/HomeTitleRepository.kt b/android/app/src/main/java/com/kordant/android/data/repository/HomeTitleRepository.kt index f45b91a..d2b501d 100644 --- a/android/app/src/main/java/com/kordant/android/data/repository/HomeTitleRepository.kt +++ b/android/app/src/main/java/com/kordant/android/data/repository/HomeTitleRepository.kt @@ -1,12 +1,12 @@ -package com.shieldai.android.data.repository +package com.kordant.android.data.repository import android.content.Context -import com.shieldai.android.data.local.CacheManager -import com.shieldai.android.data.model.Property -import com.shieldai.android.data.remote.ApiResult -import com.shieldai.android.data.remote.ErrorHandler -import com.shieldai.android.data.remote.TRPCApiService -import com.shieldai.android.data.remote.TRPCRequest +import com.kordant.android.data.local.CacheManager +import com.kordant.android.data.model.Property +import com.kordant.android.data.remote.ApiResult +import com.kordant.android.data.remote.ErrorHandler +import com.kordant.android.data.remote.TRPCApiService +import com.kordant.android.data.remote.TRPCRequest import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.serialization.json.buildJsonObject diff --git a/android/app/src/main/java/com/kordant/android/data/repository/RemoveBrokersRepository.kt b/android/app/src/main/java/com/kordant/android/data/repository/RemoveBrokersRepository.kt index 35c6b71..9032ddc 100644 --- a/android/app/src/main/java/com/kordant/android/data/repository/RemoveBrokersRepository.kt +++ b/android/app/src/main/java/com/kordant/android/data/repository/RemoveBrokersRepository.kt @@ -1,13 +1,13 @@ -package com.shieldai.android.data.repository +package com.kordant.android.data.repository import android.content.Context -import com.shieldai.android.data.local.CacheManager -import com.shieldai.android.data.model.BrokerListing -import com.shieldai.android.data.model.RemovalRequest -import com.shieldai.android.data.remote.ApiResult -import com.shieldai.android.data.remote.ErrorHandler -import com.shieldai.android.data.remote.TRPCApiService -import com.shieldai.android.data.remote.TRPCRequest +import com.kordant.android.data.local.CacheManager +import com.kordant.android.data.model.BrokerListing +import com.kordant.android.data.model.RemovalRequest +import com.kordant.android.data.remote.ApiResult +import com.kordant.android.data.remote.ErrorHandler +import com.kordant.android.data.remote.TRPCApiService +import com.kordant.android.data.remote.TRPCRequest import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.serialization.json.buildJsonObject diff --git a/android/app/src/main/java/com/kordant/android/data/repository/SpamShieldRepository.kt b/android/app/src/main/java/com/kordant/android/data/repository/SpamShieldRepository.kt index 499d810..fc2218a 100644 --- a/android/app/src/main/java/com/kordant/android/data/repository/SpamShieldRepository.kt +++ b/android/app/src/main/java/com/kordant/android/data/repository/SpamShieldRepository.kt @@ -1,12 +1,12 @@ -package com.shieldai.android.data.repository +package com.kordant.android.data.repository import android.content.Context -import com.shieldai.android.data.local.CacheManager -import com.shieldai.android.data.model.SpamRule -import com.shieldai.android.data.remote.ApiResult -import com.shieldai.android.data.remote.ErrorHandler -import com.shieldai.android.data.remote.TRPCApiService -import com.shieldai.android.data.remote.TRPCRequest +import com.kordant.android.data.local.CacheManager +import com.kordant.android.data.model.SpamRule +import com.kordant.android.data.remote.ApiResult +import com.kordant.android.data.remote.ErrorHandler +import com.kordant.android.data.remote.TRPCApiService +import com.kordant.android.data.remote.TRPCRequest import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.serialization.json.buildJsonObject diff --git a/android/app/src/main/java/com/kordant/android/data/repository/SubscriptionRepository.kt b/android/app/src/main/java/com/kordant/android/data/repository/SubscriptionRepository.kt index dbaed4a..d9eb49c 100644 --- a/android/app/src/main/java/com/kordant/android/data/repository/SubscriptionRepository.kt +++ b/android/app/src/main/java/com/kordant/android/data/repository/SubscriptionRepository.kt @@ -1,12 +1,12 @@ -package com.shieldai.android.data.repository +package com.kordant.android.data.repository import android.content.Context -import com.shieldai.android.data.local.CacheManager -import com.shieldai.android.data.model.Subscription -import com.shieldai.android.data.remote.ApiResult -import com.shieldai.android.data.remote.ErrorHandler -import com.shieldai.android.data.remote.TRPCApiService -import com.shieldai.android.data.remote.TRPCRequest +import com.kordant.android.data.local.CacheManager +import com.kordant.android.data.model.Subscription +import com.kordant.android.data.remote.ApiResult +import com.kordant.android.data.remote.ErrorHandler +import com.kordant.android.data.remote.TRPCApiService +import com.kordant.android.data.remote.TRPCRequest import kotlinx.serialization.json.buildJsonObject import kotlinx.serialization.json.put diff --git a/android/app/src/main/java/com/kordant/android/data/repository/UserRepository.kt b/android/app/src/main/java/com/kordant/android/data/repository/UserRepository.kt index 1e421b6..621fe71 100644 --- a/android/app/src/main/java/com/kordant/android/data/repository/UserRepository.kt +++ b/android/app/src/main/java/com/kordant/android/data/repository/UserRepository.kt @@ -1,12 +1,12 @@ -package com.shieldai.android.data.repository +package com.kordant.android.data.repository import android.content.Context -import com.shieldai.android.data.local.CacheManager -import com.shieldai.android.data.model.User -import com.shieldai.android.data.remote.ApiResult -import com.shieldai.android.data.remote.ErrorHandler -import com.shieldai.android.data.remote.TRPCApiService -import com.shieldai.android.data.remote.TRPCRequest +import com.kordant.android.data.local.CacheManager +import com.kordant.android.data.model.User +import com.kordant.android.data.remote.ApiResult +import com.kordant.android.data.remote.ErrorHandler +import com.kordant.android.data.remote.TRPCApiService +import com.kordant.android.data.remote.TRPCRequest import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.serialization.json.buildJsonObject diff --git a/android/app/src/main/java/com/kordant/android/data/repository/VoicePrintRepository.kt b/android/app/src/main/java/com/kordant/android/data/repository/VoicePrintRepository.kt index 976659c..c134a7a 100644 --- a/android/app/src/main/java/com/kordant/android/data/repository/VoicePrintRepository.kt +++ b/android/app/src/main/java/com/kordant/android/data/repository/VoicePrintRepository.kt @@ -1,13 +1,13 @@ -package com.shieldai.android.data.repository +package com.kordant.android.data.repository import android.content.Context -import com.shieldai.android.data.local.CacheManager -import com.shieldai.android.data.model.VoiceAnalysis -import com.shieldai.android.data.model.VoiceEnrollment -import com.shieldai.android.data.remote.ApiResult -import com.shieldai.android.data.remote.ErrorHandler -import com.shieldai.android.data.remote.TRPCApiService -import com.shieldai.android.data.remote.TRPCRequest +import com.kordant.android.data.local.CacheManager +import com.kordant.android.data.model.VoiceAnalysis +import com.kordant.android.data.model.VoiceEnrollment +import com.kordant.android.data.remote.ApiResult +import com.kordant.android.data.remote.ErrorHandler +import com.kordant.android.data.remote.TRPCApiService +import com.kordant.android.data.remote.TRPCRequest import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.serialization.json.buildJsonObject diff --git a/android/app/src/main/java/com/kordant/android/data/sync/OfflineWorker.kt b/android/app/src/main/java/com/kordant/android/data/sync/OfflineWorker.kt index 330d4fd..213e5b0 100644 --- a/android/app/src/main/java/com/kordant/android/data/sync/OfflineWorker.kt +++ b/android/app/src/main/java/com/kordant/android/data/sync/OfflineWorker.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.sync +package com.kordant.android.data.sync import android.content.Context import androidx.work.CoroutineWorker @@ -29,7 +29,7 @@ class OfflineWorker( try { val body = request.body.toRequestBody(jsonMediaType) val httpRequest = Request.Builder() - .url("https://api.shieldai.com/${request.endpoint}") + .url("https://kordant.ai/api/${request.endpoint}") .method(request.method, body) .build() val response = client.newCall(httpRequest).execute() diff --git a/android/app/src/main/java/com/kordant/android/data/sync/PendingRequestQueue.kt b/android/app/src/main/java/com/kordant/android/data/sync/PendingRequestQueue.kt index 95b75fd..01e087e 100644 --- a/android/app/src/main/java/com/kordant/android/data/sync/PendingRequestQueue.kt +++ b/android/app/src/main/java/com/kordant/android/data/sync/PendingRequestQueue.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.sync +package com.kordant.android.data.sync import android.content.Context import kotlinx.serialization.Serializable diff --git a/android/app/src/main/java/com/kordant/android/data/sync/SyncManager.kt b/android/app/src/main/java/com/kordant/android/data/sync/SyncManager.kt index e383294..b92d41a 100644 --- a/android/app/src/main/java/com/kordant/android/data/sync/SyncManager.kt +++ b/android/app/src/main/java/com/kordant/android/data/sync/SyncManager.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.data.sync +package com.kordant.android.data.sync import android.content.Context import android.net.ConnectivityManager diff --git a/android/app/src/main/java/com/kordant/android/di/DatabaseModule.kt b/android/app/src/main/java/com/kordant/android/di/DatabaseModule.kt index c5bc91c..321b468 100644 --- a/android/app/src/main/java/com/kordant/android/di/DatabaseModule.kt +++ b/android/app/src/main/java/com/kordant/android/di/DatabaseModule.kt @@ -1,7 +1,7 @@ -package com.shieldai.android.di +package com.kordant.android.di import android.content.Context -import com.shieldai.android.data.local.CacheManager +import com.kordant.android.data.local.CacheManager object DatabaseModule { fun initializeCache(context: Context) { diff --git a/android/app/src/main/java/com/kordant/android/di/NetworkModule.kt b/android/app/src/main/java/com/kordant/android/di/NetworkModule.kt index cfb44b9..75e2750 100644 --- a/android/app/src/main/java/com/kordant/android/di/NetworkModule.kt +++ b/android/app/src/main/java/com/kordant/android/di/NetworkModule.kt @@ -1,9 +1,9 @@ -package com.shieldai.android.di +package com.kordant.android.di import android.content.Context import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory -import com.shieldai.android.data.remote.AuthInterceptor -import com.shieldai.android.data.remote.TRPCApiService +import com.kordant.android.data.remote.AuthInterceptor +import com.kordant.android.data.remote.TRPCApiService import kotlinx.serialization.json.Json import okhttp3.MediaType.Companion.toMediaType import okhttp3.OkHttpClient diff --git a/android/app/src/main/java/com/kordant/android/di/RepositoryModule.kt b/android/app/src/main/java/com/kordant/android/di/RepositoryModule.kt index a459794..5e2aac1 100644 --- a/android/app/src/main/java/com/kordant/android/di/RepositoryModule.kt +++ b/android/app/src/main/java/com/kordant/android/di/RepositoryModule.kt @@ -1,14 +1,14 @@ -package com.shieldai.android.di +package com.kordant.android.di import android.content.Context -import com.shieldai.android.data.repository.AlertRepository -import com.shieldai.android.data.repository.DarkWatchRepository -import com.shieldai.android.data.repository.HomeTitleRepository -import com.shieldai.android.data.repository.RemoveBrokersRepository -import com.shieldai.android.data.repository.SpamShieldRepository -import com.shieldai.android.data.repository.SubscriptionRepository -import com.shieldai.android.data.repository.UserRepository -import com.shieldai.android.data.repository.VoicePrintRepository +import com.kordant.android.data.repository.AlertRepository +import com.kordant.android.data.repository.DarkWatchRepository +import com.kordant.android.data.repository.HomeTitleRepository +import com.kordant.android.data.repository.RemoveBrokersRepository +import com.kordant.android.data.repository.SpamShieldRepository +import com.kordant.android.data.repository.SubscriptionRepository +import com.kordant.android.data.repository.UserRepository +import com.kordant.android.data.repository.VoicePrintRepository object RepositoryModule { private var userRepository: UserRepository? = null diff --git a/android/app/src/main/java/com/kordant/android/navigation/AppNavigation.kt b/android/app/src/main/java/com/kordant/android/navigation/AppNavigation.kt index f73993b..1155a8c 100644 --- a/android/app/src/main/java/com/kordant/android/navigation/AppNavigation.kt +++ b/android/app/src/main/java/com/kordant/android/navigation/AppNavigation.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.navigation +package com.kordant.android.navigation import android.app.Application import androidx.compose.foundation.layout.padding @@ -11,8 +11,8 @@ import androidx.compose.ui.platform.LocalContext import androidx.lifecycle.viewmodel.compose.viewModel import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.rememberNavController -import com.shieldai.android.KordantApp -import com.shieldai.android.viewmodel.AuthViewModel +import com.kordant.android.KordantApp +import com.kordant.android.viewmodel.AuthViewModel @Composable fun AppNavigation() { diff --git a/android/app/src/main/java/com/kordant/android/navigation/BottomNavBar.kt b/android/app/src/main/java/com/kordant/android/navigation/BottomNavBar.kt index e43ef71..027e7b0 100644 --- a/android/app/src/main/java/com/kordant/android/navigation/BottomNavBar.kt +++ b/android/app/src/main/java/com/kordant/android/navigation/BottomNavBar.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.navigation +package com.kordant.android.navigation import androidx.compose.material3.Icon import androidx.compose.material3.NavigationBar @@ -7,7 +7,7 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.res.vectorResource -import com.shieldai.android.R +import com.kordant.android.R data class BottomNavItem( val screen: Screen, diff --git a/android/app/src/main/java/com/kordant/android/navigation/NavGraph.kt b/android/app/src/main/java/com/kordant/android/navigation/NavGraph.kt index bf34bea..77e091b 100644 --- a/android/app/src/main/java/com/kordant/android/navigation/NavGraph.kt +++ b/android/app/src/main/java/com/kordant/android/navigation/NavGraph.kt @@ -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.Arrangement @@ -26,20 +26,20 @@ import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController import androidx.navigation.navArgument -import com.shieldai.android.R -import com.shieldai.android.ui.screens.auth.AuthScreen -import com.shieldai.android.ui.screens.auth.ForgotPasswordScreen -import com.shieldai.android.ui.screens.auth.ResetPasswordScreen -import com.shieldai.android.ui.screens.dashboard.AlertDetailScreen -import com.shieldai.android.ui.screens.dashboard.DashboardScreen -import com.shieldai.android.ui.screens.onboarding.OnboardingScreen -import com.shieldai.android.ui.screens.services.DarkWatchScreen -import com.shieldai.android.ui.screens.services.HomeTitleScreen -import com.shieldai.android.ui.screens.services.RemoveBrokersScreen -import com.shieldai.android.ui.screens.services.SpamShieldScreen -import com.shieldai.android.ui.screens.services.VoicePrintScreen -import com.shieldai.android.ui.screens.settings.SettingsScreen -import com.shieldai.android.viewmodel.AuthViewModel +import com.kordant.android.R +import com.kordant.android.ui.screens.auth.AuthScreen +import com.kordant.android.ui.screens.auth.ForgotPasswordScreen +import com.kordant.android.ui.screens.auth.ResetPasswordScreen +import com.kordant.android.ui.screens.dashboard.AlertDetailScreen +import com.kordant.android.ui.screens.dashboard.DashboardScreen +import com.kordant.android.ui.screens.onboarding.OnboardingScreen +import com.kordant.android.ui.screens.services.DarkWatchScreen +import com.kordant.android.ui.screens.services.HomeTitleScreen +import com.kordant.android.ui.screens.services.RemoveBrokersScreen +import com.kordant.android.ui.screens.services.SpamShieldScreen +import com.kordant.android.ui.screens.services.VoicePrintScreen +import com.kordant.android.ui.screens.settings.SettingsScreen +import com.kordant.android.viewmodel.AuthViewModel data class ServiceNavCard( val title: String, @@ -224,7 +224,7 @@ private fun ServicesHubScreen( ) { items(services.size) { index -> val service = services[index] - com.shieldai.android.ui.components.ShieldCard( + com.kordant.android.ui.components.ShieldCard( onClick = { onNavigateToService(service.route) }, modifier = Modifier.fillMaxWidth() ) { @@ -269,7 +269,7 @@ private fun AlertsScreen( fontWeight = FontWeight.Bold, modifier = Modifier.padding(bottom = 16.dp) ) - com.shieldai.android.ui.components.ShieldEmptyState( + com.kordant.android.ui.components.ShieldEmptyState( title = "No alerts", description = "You have no recent alerts" ) diff --git a/android/app/src/main/java/com/kordant/android/navigation/Screen.kt b/android/app/src/main/java/com/kordant/android/navigation/Screen.kt index c55aa70..c64d8df 100644 --- a/android/app/src/main/java/com/kordant/android/navigation/Screen.kt +++ b/android/app/src/main/java/com/kordant/android/navigation/Screen.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.navigation +package com.kordant.android.navigation sealed class Screen(val route: String) { data object Dashboard : Screen("dashboard") diff --git a/android/app/src/main/java/com/kordant/android/ui/components/ComponentShowcase.kt b/android/app/src/main/java/com/kordant/android/ui/components/ComponentShowcase.kt index 736f23a..ced53af 100644 --- a/android/app/src/main/java/com/kordant/android/ui/components/ComponentShowcase.kt +++ b/android/app/src/main/java/com/kordant/android/ui/components/ComponentShowcase.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.ui.components +package com.kordant.android.ui.components import android.content.res.Configuration 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.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.theme.KordantTheme +import com.kordant.android.ui.theme.KordantTheme import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) diff --git a/android/app/src/main/java/com/kordant/android/ui/components/ShieldAvatar.kt b/android/app/src/main/java/com/kordant/android/ui/components/ShieldAvatar.kt index fd1fd59..9f9b84e 100644 --- a/android/app/src/main/java/com/kordant/android/ui/components/ShieldAvatar.kt +++ b/android/app/src/main/java/com/kordant/android/ui/components/ShieldAvatar.kt @@ -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.background @@ -22,8 +22,8 @@ import androidx.compose.ui.unit.TextUnit import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import coil.compose.AsyncImage -import com.shieldai.android.ui.theme.BrandPrimary -import com.shieldai.android.ui.theme.Success +import com.kordant.android.ui.theme.BrandPrimary +import com.kordant.android.ui.theme.Success enum class AvatarSize(val dimension: Dp, val fontSize: TextUnit) { Small(32.dp, 12.sp), diff --git a/android/app/src/main/java/com/kordant/android/ui/components/ShieldBadge.kt b/android/app/src/main/java/com/kordant/android/ui/components/ShieldBadge.kt index 10e47b2..3cf2a7c 100644 --- a/android/app/src/main/java/com/kordant/android/ui/components/ShieldBadge.kt +++ b/android/app/src/main/java/com/kordant/android/ui/components/ShieldBadge.kt @@ -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.Spacer @@ -16,12 +16,12 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.theme.Error -import com.shieldai.android.ui.theme.Info -import com.shieldai.android.ui.theme.Success -import com.shieldai.android.ui.theme.TextPrimaryLight -import com.shieldai.android.ui.theme.TextSecondaryLight -import com.shieldai.android.ui.theme.Warning +import com.kordant.android.ui.theme.Error +import com.kordant.android.ui.theme.Info +import com.kordant.android.ui.theme.Success +import com.kordant.android.ui.theme.TextPrimaryLight +import com.kordant.android.ui.theme.TextSecondaryLight +import com.kordant.android.ui.theme.Warning enum class BadgeVariant { Default, Success, Warning, Error, Info diff --git a/android/app/src/main/java/com/kordant/android/ui/components/ShieldButton.kt b/android/app/src/main/java/com/kordant/android/ui/components/ShieldButton.kt index f8730dd..1f9816e 100644 --- a/android/app/src/main/java/com/kordant/android/ui/components/ShieldButton.kt +++ b/android/app/src/main/java/com/kordant/android/ui/components/ShieldButton.kt @@ -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.Spacer @@ -18,8 +18,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.theme.BrandPrimary -import com.shieldai.android.ui.theme.Error +import com.kordant.android.ui.theme.BrandPrimary +import com.kordant.android.ui.theme.Error enum class ShieldButtonVariant { Primary, Secondary, Ghost, Danger diff --git a/android/app/src/main/java/com/kordant/android/ui/components/ShieldCard.kt b/android/app/src/main/java/com/kordant/android/ui/components/ShieldCard.kt index 0ae85ea..54e4e06 100644 --- a/android/app/src/main/java/com/kordant/android/ui/components/ShieldCard.kt +++ b/android/app/src/main/java/com/kordant/android/ui/components/ShieldCard.kt @@ -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.background @@ -13,9 +13,9 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.theme.BrandAccent -import com.shieldai.android.ui.theme.BrandPrimary -import com.shieldai.android.ui.theme.OutlineLight +import com.kordant.android.ui.theme.BrandAccent +import com.kordant.android.ui.theme.BrandPrimary +import com.kordant.android.ui.theme.OutlineLight val GradientCardBrush = Brush.linearGradient( colors = listOf( diff --git a/android/app/src/main/java/com/kordant/android/ui/components/ShieldEmptyState.kt b/android/app/src/main/java/com/kordant/android/ui/components/ShieldEmptyState.kt index f17c81a..0c71c3c 100644 --- a/android/app/src/main/java/com/kordant/android/ui/components/ShieldEmptyState.kt +++ b/android/app/src/main/java/com/kordant/android/ui/components/ShieldEmptyState.kt @@ -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.Column diff --git a/android/app/src/main/java/com/kordant/android/ui/components/ShieldModal.kt b/android/app/src/main/java/com/kordant/android/ui/components/ShieldModal.kt index d432bfd..0cc7494 100644 --- a/android/app/src/main/java/com/kordant/android/ui/components/ShieldModal.kt +++ b/android/app/src/main/java/com/kordant/android/ui/components/ShieldModal.kt @@ -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.Spacer @@ -19,7 +19,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.theme.BrandPrimary +import com.kordant.android.ui.theme.BrandPrimary data class ModalAction( val text: String, diff --git a/android/app/src/main/java/com/kordant/android/ui/components/ShieldProgressBar.kt b/android/app/src/main/java/com/kordant/android/ui/components/ShieldProgressBar.kt index 489a23b..ca2e10a 100644 --- a/android/app/src/main/java/com/kordant/android/ui/components/ShieldProgressBar.kt +++ b/android/app/src/main/java/com/kordant/android/ui/components/ShieldProgressBar.kt @@ -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.fillMaxWidth @@ -14,12 +14,12 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.StrokeCap import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.theme.BrandAccent -import com.shieldai.android.ui.theme.BrandPrimary -import com.shieldai.android.ui.theme.Error -import com.shieldai.android.ui.theme.OutlineLight -import com.shieldai.android.ui.theme.Success -import com.shieldai.android.ui.theme.Warning +import com.kordant.android.ui.theme.BrandAccent +import com.kordant.android.ui.theme.BrandPrimary +import com.kordant.android.ui.theme.Error +import com.kordant.android.ui.theme.OutlineLight +import com.kordant.android.ui.theme.Success +import com.kordant.android.ui.theme.Warning enum class ProgressColor { Primary, Accent, Success, Warning, Error diff --git a/android/app/src/main/java/com/kordant/android/ui/components/ShieldSkeleton.kt b/android/app/src/main/java/com/kordant/android/ui/components/ShieldSkeleton.kt index 3de46e1..08c2485 100644 --- a/android/app/src/main/java/com/kordant/android/ui/components/ShieldSkeleton.kt +++ b/android/app/src/main/java/com/kordant/android/ui/components/ShieldSkeleton.kt @@ -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.RepeatMode @@ -22,7 +22,7 @@ import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.theme.OutlineLight +import com.kordant.android.ui.theme.OutlineLight @Composable fun ShieldSkeletonLine( diff --git a/android/app/src/main/java/com/kordant/android/ui/components/ShieldTextField.kt b/android/app/src/main/java/com/kordant/android/ui/components/ShieldTextField.kt index da488b4..8039570 100644 --- a/android/app/src/main/java/com/kordant/android/ui/components/ShieldTextField.kt +++ b/android/app/src/main/java/com/kordant/android/ui/components/ShieldTextField.kt @@ -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.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.VisualTransformation import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.theme.Error +import com.kordant.android.ui.theme.Error enum class InputType { Text, Email, Password, Number, Phone diff --git a/android/app/src/main/java/com/kordant/android/ui/components/ShieldToast.kt b/android/app/src/main/java/com/kordant/android/ui/components/ShieldToast.kt index 1b5eac8..90f9352 100644 --- a/android/app/src/main/java/com/kordant/android/ui/components/ShieldToast.kt +++ b/android/app/src/main/java/com/kordant/android/ui/components/ShieldToast.kt @@ -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.padding @@ -13,11 +13,11 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.theme.Error -import com.shieldai.android.ui.theme.Info -import com.shieldai.android.ui.theme.Success -import com.shieldai.android.ui.theme.TextPrimaryDark -import com.shieldai.android.ui.theme.Warning +import com.kordant.android.ui.theme.Error +import com.kordant.android.ui.theme.Info +import com.kordant.android.ui.theme.Success +import com.kordant.android.ui.theme.TextPrimaryDark +import com.kordant.android.ui.theme.Warning enum class ToastVariant { Success, Error, Warning, Info diff --git a/android/app/src/main/java/com/kordant/android/ui/components/ThreatGauge.kt b/android/app/src/main/java/com/kordant/android/ui/components/ThreatGauge.kt index f4068dd..b17869d 100644 --- a/android/app/src/main/java/com/kordant/android/ui/components/ThreatGauge.kt +++ b/android/app/src/main/java/com/kordant/android/ui/components/ThreatGauge.kt @@ -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.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.scale import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.theme.Error -import com.shieldai.android.ui.theme.Success -import com.shieldai.android.ui.theme.Warning +import com.kordant.android.ui.theme.Error +import com.kordant.android.ui.theme.Success +import com.kordant.android.ui.theme.Warning @Composable fun ThreatGauge( diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/auth/AuthScreen.kt b/android/app/src/main/java/com/kordant/android/ui/screens/auth/AuthScreen.kt index e419f2e..b41cded 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/auth/AuthScreen.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/auth/AuthScreen.kt @@ -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.layout.Column @@ -26,9 +26,9 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.shieldai.android.R -import com.shieldai.android.ui.components.ShieldCard -import com.shieldai.android.viewmodel.AuthViewModel +import com.kordant.android.R +import com.kordant.android.ui.components.ShieldCard +import com.kordant.android.viewmodel.AuthViewModel @Composable fun AuthScreen( diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/auth/BiometricAuthScreen.kt b/android/app/src/main/java/com/kordant/android/ui/screens/auth/BiometricAuthScreen.kt index 1beaabb..88fe56f 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/auth/BiometricAuthScreen.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/auth/BiometricAuthScreen.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.ui.screens.auth +package com.kordant.android.ui.screens.auth import android.content.Context import android.security.identity.IdentityCredentialException @@ -79,11 +79,11 @@ fun canUseBiometric(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) } 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() } diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/auth/ForgotPasswordScreen.kt b/android/app/src/main/java/com/kordant/android/ui/screens/auth/ForgotPasswordScreen.kt index 07502df..0039ed4 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/auth/ForgotPasswordScreen.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/auth/ForgotPasswordScreen.kt @@ -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.Spacer @@ -21,12 +21,12 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.components.InputType -import com.shieldai.android.ui.components.ShieldButton -import com.shieldai.android.ui.components.ShieldButtonVariant -import com.shieldai.android.ui.components.ShieldCard -import com.shieldai.android.ui.components.ShieldTextField -import com.shieldai.android.viewmodel.AuthViewModel +import com.kordant.android.ui.components.InputType +import com.kordant.android.ui.components.ShieldButton +import com.kordant.android.ui.components.ShieldButtonVariant +import com.kordant.android.ui.components.ShieldCard +import com.kordant.android.ui.components.ShieldTextField +import com.kordant.android.viewmodel.AuthViewModel @Composable fun ForgotPasswordScreen( diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/auth/LoginScreen.kt b/android/app/src/main/java/com/kordant/android/ui/screens/auth/LoginScreen.kt index 6aa6d6d..ff570e2 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/auth/LoginScreen.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/auth/LoginScreen.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.ui.screens.auth +package com.kordant.android.ui.screens.auth import android.app.Activity 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.GoogleSignInOptions import com.google.android.gms.common.api.ApiException -import com.shieldai.android.ui.components.InputType -import com.shieldai.android.ui.components.ShieldButton -import com.shieldai.android.ui.components.ShieldTextField -import com.shieldai.android.ui.theme.BrandPrimary -import com.shieldai.android.viewmodel.AuthUiState -import com.shieldai.android.viewmodel.AuthViewModel +import com.kordant.android.ui.components.InputType +import com.kordant.android.ui.components.ShieldButton +import com.kordant.android.ui.components.ShieldTextField +import com.kordant.android.ui.theme.BrandPrimary +import com.kordant.android.viewmodel.AuthUiState +import com.kordant.android.viewmodel.AuthViewModel @Composable fun LoginScreen( @@ -53,7 +53,7 @@ fun LoginScreen( val gso = remember { 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() .build() } diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/auth/ResetPasswordScreen.kt b/android/app/src/main/java/com/kordant/android/ui/screens/auth/ResetPasswordScreen.kt index 5248c67..3b46753 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/auth/ResetPasswordScreen.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/auth/ResetPasswordScreen.kt @@ -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.Spacer @@ -21,11 +21,11 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.components.InputType -import com.shieldai.android.ui.components.ShieldButton -import com.shieldai.android.ui.components.ShieldCard -import com.shieldai.android.ui.components.ShieldTextField -import com.shieldai.android.viewmodel.AuthViewModel +import com.kordant.android.ui.components.InputType +import com.kordant.android.ui.components.ShieldButton +import com.kordant.android.ui.components.ShieldCard +import com.kordant.android.ui.components.ShieldTextField +import com.kordant.android.viewmodel.AuthViewModel @Composable fun ResetPasswordScreen( diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/auth/SignupScreen.kt b/android/app/src/main/java/com/kordant/android/ui/screens/auth/SignupScreen.kt index 8c6d533..1710275 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/auth/SignupScreen.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/auth/SignupScreen.kt @@ -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.Row @@ -19,16 +19,16 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.components.InputType -import com.shieldai.android.ui.components.ProgressColor -import com.shieldai.android.ui.components.ShieldButton -import com.shieldai.android.ui.components.ShieldProgressBar -import com.shieldai.android.ui.components.ShieldTextField -import com.shieldai.android.util.PasswordStrength -import com.shieldai.android.util.calculatePasswordStrength -import com.shieldai.android.util.passwordStrengthLabel -import com.shieldai.android.viewmodel.AuthUiState -import com.shieldai.android.viewmodel.AuthViewModel +import com.kordant.android.ui.components.InputType +import com.kordant.android.ui.components.ProgressColor +import com.kordant.android.ui.components.ShieldButton +import com.kordant.android.ui.components.ShieldProgressBar +import com.kordant.android.ui.components.ShieldTextField +import com.kordant.android.util.PasswordStrength +import com.kordant.android.util.calculatePasswordStrength +import com.kordant.android.util.passwordStrengthLabel +import com.kordant.android.viewmodel.AuthUiState +import com.kordant.android.viewmodel.AuthViewModel @Composable fun SignupScreen( diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/dashboard/AlertDetailScreen.kt b/android/app/src/main/java/com/kordant/android/ui/screens/dashboard/AlertDetailScreen.kt index a5d0603..8a46e31 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/dashboard/AlertDetailScreen.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/dashboard/AlertDetailScreen.kt @@ -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.Column @@ -28,14 +28,14 @@ import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.shieldai.android.data.model.Alert -import com.shieldai.android.ui.components.BadgeVariant -import com.shieldai.android.ui.components.ShieldBadge -import com.shieldai.android.ui.components.ShieldButton -import com.shieldai.android.ui.components.ShieldButtonVariant -import com.shieldai.android.ui.components.ShieldCard -import com.shieldai.android.ui.components.ShieldEmptyState -import com.shieldai.android.ui.viewmodel.AlertDetailViewModel +import com.kordant.android.data.model.Alert +import com.kordant.android.ui.components.BadgeVariant +import com.kordant.android.ui.components.ShieldBadge +import com.kordant.android.ui.components.ShieldButton +import com.kordant.android.ui.components.ShieldButtonVariant +import com.kordant.android.ui.components.ShieldCard +import com.kordant.android.ui.components.ShieldEmptyState +import com.kordant.android.ui.viewmodel.AlertDetailViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/dashboard/DashboardScreen.kt b/android/app/src/main/java/com/kordant/android/ui/screens/dashboard/DashboardScreen.kt index 61cbd12..e0d2f0c 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/dashboard/DashboardScreen.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/dashboard/DashboardScreen.kt @@ -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.Box @@ -36,18 +36,18 @@ import androidx.compose.ui.res.vectorResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.shieldai.android.R -import com.shieldai.android.data.model.Alert -import com.shieldai.android.ui.components.BadgeVariant -import com.shieldai.android.ui.components.ShieldBadge -import com.shieldai.android.ui.components.ShieldButton -import com.shieldai.android.ui.components.ShieldButtonVariant -import com.shieldai.android.ui.components.ShieldCard -import com.shieldai.android.ui.components.ShieldEmptyState -import com.shieldai.android.ui.components.ShieldSkeletonCard -import com.shieldai.android.ui.components.ThreatGauge -import com.shieldai.android.viewmodel.DashboardViewModel -import com.shieldai.android.viewmodel.DashboardViewModel as DashboardVM +import com.kordant.android.R +import com.kordant.android.data.model.Alert +import com.kordant.android.ui.components.BadgeVariant +import com.kordant.android.ui.components.ShieldBadge +import com.kordant.android.ui.components.ShieldButton +import com.kordant.android.ui.components.ShieldButtonVariant +import com.kordant.android.ui.components.ShieldCard +import com.kordant.android.ui.components.ShieldEmptyState +import com.kordant.android.ui.components.ShieldSkeletonCard +import com.kordant.android.ui.components.ThreatGauge +import com.kordant.android.viewmodel.DashboardViewModel +import com.kordant.android.viewmodel.DashboardViewModel as DashboardVM import kotlinx.coroutines.launch data class ServiceSummary( diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/CompleteStep.kt b/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/CompleteStep.kt index ab2f2e1..1a4360d 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/CompleteStep.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/CompleteStep.kt @@ -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.tween @@ -24,9 +24,9 @@ import androidx.compose.ui.graphics.drawscope.Stroke import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.components.ShieldButton -import com.shieldai.android.ui.theme.BrandPrimary -import com.shieldai.android.ui.theme.Success +import com.kordant.android.ui.components.ShieldButton +import com.kordant.android.ui.theme.BrandPrimary +import com.kordant.android.ui.theme.Success @Composable fun CompleteStep(onComplete: () -> Unit) { diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/FamilyInviteStep.kt b/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/FamilyInviteStep.kt index 68e790f..4a807af 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/FamilyInviteStep.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/FamilyInviteStep.kt @@ -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.Row @@ -24,10 +24,10 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.components.InputType -import com.shieldai.android.ui.components.ShieldButton -import com.shieldai.android.ui.components.ShieldButtonVariant -import com.shieldai.android.ui.components.ShieldTextField +import com.kordant.android.ui.components.InputType +import com.kordant.android.ui.components.ShieldButton +import com.kordant.android.ui.components.ShieldButtonVariant +import com.kordant.android.ui.components.ShieldTextField @Composable fun FamilyInviteStep( diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/OnboardingScreen.kt b/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/OnboardingScreen.kt index 1353d05..9f3d703 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/OnboardingScreen.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/OnboardingScreen.kt @@ -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.Box @@ -22,8 +22,8 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.drawBehind import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.theme.BrandPrimary -import com.shieldai.android.viewmodel.AuthViewModel +import com.kordant.android.ui.theme.BrandPrimary +import com.kordant.android.viewmodel.AuthViewModel @Composable fun OnboardingScreen( diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/PlanSelectionStep.kt b/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/PlanSelectionStep.kt index 8e6152f..4bf2f39 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/PlanSelectionStep.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/PlanSelectionStep.kt @@ -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.clickable @@ -23,7 +23,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.theme.BrandPrimary +import com.kordant.android.ui.theme.BrandPrimary data class Plan( val name: String, diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/WatchlistSetupStep.kt b/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/WatchlistSetupStep.kt index 3616471..73def7b 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/WatchlistSetupStep.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/onboarding/WatchlistSetupStep.kt @@ -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.Row @@ -24,10 +24,10 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.shieldai.android.ui.components.InputType -import com.shieldai.android.ui.components.ShieldButton -import com.shieldai.android.ui.components.ShieldButtonVariant -import com.shieldai.android.ui.components.ShieldTextField +import com.kordant.android.ui.components.InputType +import com.kordant.android.ui.components.ShieldButton +import com.kordant.android.ui.components.ShieldButtonVariant +import com.kordant.android.ui.components.ShieldTextField @Composable fun WatchlistSetupStep( diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/services/DarkWatchScreen.kt b/android/app/src/main/java/com/kordant/android/ui/screens/services/DarkWatchScreen.kt index 9222e82..435f471 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/services/DarkWatchScreen.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/services/DarkWatchScreen.kt @@ -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.Column @@ -36,14 +36,14 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.shieldai.android.R -import com.shieldai.android.ui.components.ShieldBadge -import com.shieldai.android.ui.components.ShieldButton -import com.shieldai.android.ui.components.ShieldButtonVariant -import com.shieldai.android.ui.components.ShieldCard -import com.shieldai.android.ui.components.ShieldEmptyState -import com.shieldai.android.ui.components.ShieldTextField -import com.shieldai.android.viewmodel.DarkWatchViewModel +import com.kordant.android.R +import com.kordant.android.ui.components.ShieldBadge +import com.kordant.android.ui.components.ShieldButton +import com.kordant.android.ui.components.ShieldButtonVariant +import com.kordant.android.ui.components.ShieldCard +import com.kordant.android.ui.components.ShieldEmptyState +import com.kordant.android.ui.components.ShieldTextField +import com.kordant.android.viewmodel.DarkWatchViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -186,7 +186,7 @@ private fun DarkWatchContent( } @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()) { Row( modifier = Modifier.fillMaxWidth(), @@ -214,15 +214,15 @@ private fun WatchlistItemCard(item: com.shieldai.android.data.model.WatchlistIte } ShieldBadge( text = item.status, - variant = if (item.status == "active") com.shieldai.android.ui.components.BadgeVariant.Success - else com.shieldai.android.ui.components.BadgeVariant.Default + variant = if (item.status == "active") com.kordant.android.ui.components.BadgeVariant.Success + else com.kordant.android.ui.components.BadgeVariant.Default ) } } } @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()) { Column { Row( @@ -238,9 +238,9 @@ private fun ExposureCard(exposure: com.shieldai.android.data.model.Exposure) { ShieldBadge( text = exposure.severity, variant = when (exposure.severity.lowercase()) { - "critical" -> com.shieldai.android.ui.components.BadgeVariant.Error - "high" -> com.shieldai.android.ui.components.BadgeVariant.Warning - else -> com.shieldai.android.ui.components.BadgeVariant.Info + "critical" -> com.kordant.android.ui.components.BadgeVariant.Error + "high" -> com.kordant.android.ui.components.BadgeVariant.Warning + else -> com.kordant.android.ui.components.BadgeVariant.Info } ) } diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/services/HomeTitleScreen.kt b/android/app/src/main/java/com/kordant/android/ui/screens/services/HomeTitleScreen.kt index 2cf4fe3..771d998 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/services/HomeTitleScreen.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/services/HomeTitleScreen.kt @@ -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.Column @@ -36,15 +36,15 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.shieldai.android.R -import com.shieldai.android.ui.components.BadgeVariant -import com.shieldai.android.ui.components.ShieldBadge -import com.shieldai.android.ui.components.ShieldButton -import com.shieldai.android.ui.components.ShieldButtonVariant -import com.shieldai.android.ui.components.ShieldCard -import com.shieldai.android.ui.components.ShieldEmptyState -import com.shieldai.android.ui.components.ShieldTextField -import com.shieldai.android.viewmodel.HomeTitleViewModel +import com.kordant.android.R +import com.kordant.android.ui.components.BadgeVariant +import com.kordant.android.ui.components.ShieldBadge +import com.kordant.android.ui.components.ShieldButton +import com.kordant.android.ui.components.ShieldButtonVariant +import com.kordant.android.ui.components.ShieldCard +import com.kordant.android.ui.components.ShieldEmptyState +import com.kordant.android.ui.components.ShieldTextField +import com.kordant.android.viewmodel.HomeTitleViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -160,7 +160,7 @@ private fun HomeTitleContent( } @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()) { Column { Row( diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/services/RemoveBrokersScreen.kt b/android/app/src/main/java/com/kordant/android/ui/screens/services/RemoveBrokersScreen.kt index 7550c0e..bc06256 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/services/RemoveBrokersScreen.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/services/RemoveBrokersScreen.kt @@ -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.Column @@ -36,15 +36,15 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.shieldai.android.R -import com.shieldai.android.ui.components.BadgeVariant -import com.shieldai.android.ui.components.ShieldBadge -import com.shieldai.android.ui.components.ShieldButton -import com.shieldai.android.ui.components.ShieldButtonVariant -import com.shieldai.android.ui.components.ShieldCard -import com.shieldai.android.ui.components.ShieldEmptyState -import com.shieldai.android.ui.components.ShieldTextField -import com.shieldai.android.viewmodel.RemoveBrokersViewModel +import com.kordant.android.R +import com.kordant.android.ui.components.BadgeVariant +import com.kordant.android.ui.components.ShieldBadge +import com.kordant.android.ui.components.ShieldButton +import com.kordant.android.ui.components.ShieldButtonVariant +import com.kordant.android.ui.components.ShieldCard +import com.kordant.android.ui.components.ShieldEmptyState +import com.kordant.android.ui.components.ShieldTextField +import com.kordant.android.viewmodel.RemoveBrokersViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -187,7 +187,7 @@ private fun RemoveBrokersContent( } @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()) { Column { Row( @@ -226,7 +226,7 @@ private fun ListingCard(listing: com.shieldai.android.data.model.BrokerListing) } @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()) { Column { Row( diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/services/SpamShieldScreen.kt b/android/app/src/main/java/com/kordant/android/ui/screens/services/SpamShieldScreen.kt index d409e5e..4cfddff 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/services/SpamShieldScreen.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/services/SpamShieldScreen.kt @@ -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.Column @@ -37,14 +37,14 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.shieldai.android.R -import com.shieldai.android.ui.components.ShieldBadge -import com.shieldai.android.ui.components.ShieldButton -import com.shieldai.android.ui.components.ShieldButtonVariant -import com.shieldai.android.ui.components.ShieldCard -import com.shieldai.android.ui.components.ShieldEmptyState -import com.shieldai.android.ui.components.ShieldTextField -import com.shieldai.android.viewmodel.SpamShieldViewModel +import com.kordant.android.R +import com.kordant.android.ui.components.ShieldBadge +import com.kordant.android.ui.components.ShieldButton +import com.kordant.android.ui.components.ShieldButtonVariant +import com.kordant.android.ui.components.ShieldCard +import com.kordant.android.ui.components.ShieldEmptyState +import com.kordant.android.ui.components.ShieldTextField +import com.kordant.android.viewmodel.SpamShieldViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -224,7 +224,7 @@ private fun StatCard( @Composable private fun RuleCard( - rule: com.shieldai.android.data.model.SpamRule, + rule: com.kordant.android.data.model.SpamRule, onToggle: (Boolean) -> Unit ) { ShieldCard(modifier = Modifier.fillMaxWidth()) { @@ -244,13 +244,13 @@ private fun RuleCard( ) { ShieldBadge( text = rule.action, - variant = if (rule.action == "block") com.shieldai.android.ui.components.BadgeVariant.Error - else com.shieldai.android.ui.components.BadgeVariant.Warning + variant = if (rule.action == "block") com.kordant.android.ui.components.BadgeVariant.Error + else com.kordant.android.ui.components.BadgeVariant.Warning ) if (rule.priority > 0) { ShieldBadge( text = "P${rule.priority}", - variant = com.shieldai.android.ui.components.BadgeVariant.Info + variant = com.kordant.android.ui.components.BadgeVariant.Info ) } } diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/services/VoicePrintScreen.kt b/android/app/src/main/java/com/kordant/android/ui/screens/services/VoicePrintScreen.kt index 3683947..c08485e 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/services/VoicePrintScreen.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/services/VoicePrintScreen.kt @@ -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.Column @@ -36,15 +36,15 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.shieldai.android.R -import com.shieldai.android.ui.components.BadgeVariant -import com.shieldai.android.ui.components.ShieldBadge -import com.shieldai.android.ui.components.ShieldButton -import com.shieldai.android.ui.components.ShieldButtonVariant -import com.shieldai.android.ui.components.ShieldCard -import com.shieldai.android.ui.components.ShieldEmptyState -import com.shieldai.android.ui.components.ShieldTextField -import com.shieldai.android.viewmodel.VoicePrintViewModel +import com.kordant.android.R +import com.kordant.android.ui.components.BadgeVariant +import com.kordant.android.ui.components.ShieldBadge +import com.kordant.android.ui.components.ShieldButton +import com.kordant.android.ui.components.ShieldButtonVariant +import com.kordant.android.ui.components.ShieldCard +import com.kordant.android.ui.components.ShieldEmptyState +import com.kordant.android.ui.components.ShieldTextField +import com.kordant.android.viewmodel.VoicePrintViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -160,7 +160,7 @@ private fun VoicePrintContent( } @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()) { Column { Row( diff --git a/android/app/src/main/java/com/kordant/android/ui/screens/settings/SettingsScreen.kt b/android/app/src/main/java/com/kordant/android/ui/screens/settings/SettingsScreen.kt index 70c61e9..9bf9e46 100644 --- a/android/app/src/main/java/com/kordant/android/ui/screens/settings/SettingsScreen.kt +++ b/android/app/src/main/java/com/kordant/android/ui/screens/settings/SettingsScreen.kt @@ -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.layout.Arrangement @@ -34,14 +34,14 @@ import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.shieldai.android.ui.components.ShieldAvatar -import com.shieldai.android.ui.components.ShieldBadge -import com.shieldai.android.ui.components.ShieldButton -import com.shieldai.android.ui.components.ShieldButtonVariant -import com.shieldai.android.ui.components.ShieldCard -import com.shieldai.android.ui.components.ShieldEmptyState -import com.shieldai.android.viewmodel.AuthViewModel -import com.shieldai.android.viewmodel.SettingsViewModel +import com.kordant.android.ui.components.ShieldAvatar +import com.kordant.android.ui.components.ShieldBadge +import com.kordant.android.ui.components.ShieldButton +import com.kordant.android.ui.components.ShieldButtonVariant +import com.kordant.android.ui.components.ShieldCard +import com.kordant.android.ui.components.ShieldEmptyState +import com.kordant.android.viewmodel.AuthViewModel +import com.kordant.android.viewmodel.SettingsViewModel @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -184,7 +184,7 @@ private fun SettingsContent( } @Composable -private fun AccountSection(user: com.shieldai.android.data.model.User) { +private fun AccountSection(user: com.kordant.android.data.model.User) { Column { Text( text = "Account", @@ -214,10 +214,10 @@ private fun AccountSection(user: com.shieldai.android.data.model.User) { ) Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) { 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) { - 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 private fun SubscriptionSection( - subscription: com.shieldai.android.data.model.Subscription?, + subscription: com.kordant.android.data.model.Subscription?, onUpgrade: () -> Unit ) { Column { @@ -260,7 +260,7 @@ private fun SubscriptionSection( text = "Upgrade", onClick = onUpgrade, variant = ShieldButtonVariant.Secondary, - size = com.shieldai.android.ui.components.ShieldButtonSize.Small + size = com.kordant.android.ui.components.ShieldButtonSize.Small ) } } diff --git a/android/app/src/main/java/com/kordant/android/ui/theme/Color.kt b/android/app/src/main/java/com/kordant/android/ui/theme/Color.kt index 0657a80..9b30fa6 100644 --- a/android/app/src/main/java/com/kordant/android/ui/theme/Color.kt +++ b/android/app/src/main/java/com/kordant/android/ui/theme/Color.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.ui.theme +package com.kordant.android.ui.theme import androidx.compose.ui.graphics.Color diff --git a/android/app/src/main/java/com/kordant/android/ui/theme/Shape.kt b/android/app/src/main/java/com/kordant/android/ui/theme/Shape.kt index 4bb24cf..4eb551c 100644 --- a/android/app/src/main/java/com/kordant/android/ui/theme/Shape.kt +++ b/android/app/src/main/java/com/kordant/android/ui/theme/Shape.kt @@ -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.material3.Shapes diff --git a/android/app/src/main/java/com/kordant/android/ui/theme/Theme.kt b/android/app/src/main/java/com/kordant/android/ui/theme/Theme.kt index 3028dc0..8276541 100644 --- a/android/app/src/main/java/com/kordant/android/ui/theme/Theme.kt +++ b/android/app/src/main/java/com/kordant/android/ui/theme/Theme.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.ui.theme +package com.kordant.android.ui.theme import android.os.Build import androidx.compose.foundation.isSystemInDarkTheme diff --git a/android/app/src/main/java/com/kordant/android/ui/theme/Type.kt b/android/app/src/main/java/com/kordant/android/ui/theme/Type.kt index c2fb516..c14aaab 100644 --- a/android/app/src/main/java/com/kordant/android/ui/theme/Type.kt +++ b/android/app/src/main/java/com/kordant/android/ui/theme/Type.kt @@ -1,4 +1,4 @@ -package com.shieldai.android.ui.theme +package com.kordant.android.ui.theme import androidx.compose.material3.Typography import androidx.compose.ui.text.TextStyle diff --git a/android/app/src/main/java/com/kordant/android/util/PasswordStrength.kt b/android/app/src/main/java/com/kordant/android/util/PasswordStrength.kt index 7549296..4964ffc 100644 --- a/android/app/src/main/java/com/kordant/android/util/PasswordStrength.kt +++ b/android/app/src/main/java/com/kordant/android/util/PasswordStrength.kt @@ -1,9 +1,9 @@ -package com.shieldai.android.util +package com.kordant.android.util import androidx.compose.ui.graphics.Color -import com.shieldai.android.ui.theme.Error -import com.shieldai.android.ui.theme.Success -import com.shieldai.android.ui.theme.Warning +import com.kordant.android.ui.theme.Error +import com.kordant.android.ui.theme.Success +import com.kordant.android.ui.theme.Warning enum class PasswordStrength { WEAK, FAIR, STRONG, VERY_STRONG diff --git a/android/app/src/main/java/com/kordant/android/viewmodel/AlertDetailViewModel.kt b/android/app/src/main/java/com/kordant/android/viewmodel/AlertDetailViewModel.kt index 7743031..3269601 100644 --- a/android/app/src/main/java/com/kordant/android/viewmodel/AlertDetailViewModel.kt +++ b/android/app/src/main/java/com/kordant/android/viewmodel/AlertDetailViewModel.kt @@ -1,12 +1,12 @@ -package com.shieldai.android.viewmodel +package com.kordant.android.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope -import com.shieldai.android.KordantApp -import com.shieldai.android.data.model.Alert -import com.shieldai.android.data.repository.AlertRepository -import com.shieldai.android.di.RepositoryModule +import com.kordant.android.KordantApp +import com.kordant.android.data.model.Alert +import com.kordant.android.data.repository.AlertRepository +import com.kordant.android.di.RepositoryModule import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow @@ -33,7 +33,7 @@ class AlertDetailViewModel : ViewModel() { _uiState.value = _uiState.value.copy(isLoading = true, error = null) try { 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 correlated = alert?.let { result.data.filter { a -> diff --git a/android/app/src/main/java/com/kordant/android/viewmodel/AuthViewModel.kt b/android/app/src/main/java/com/kordant/android/viewmodel/AuthViewModel.kt index 0d33a14..f5a25d6 100644 --- a/android/app/src/main/java/com/kordant/android/viewmodel/AuthViewModel.kt +++ b/android/app/src/main/java/com/kordant/android/viewmodel/AuthViewModel.kt @@ -1,14 +1,14 @@ -package com.shieldai.android.viewmodel +package com.kordant.android.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope -import com.shieldai.android.KordantApp -import com.shieldai.android.data.repository.AuthRepository -import com.shieldai.android.data.repository.AuthRepositoryImpl -import com.shieldai.android.data.repository.User -import com.shieldai.android.util.calculatePasswordStrength -import com.shieldai.android.util.passwordStrengthProgress +import com.kordant.android.KordantApp +import com.kordant.android.data.repository.AuthRepository +import com.kordant.android.data.repository.AuthRepositoryImpl +import com.kordant.android.data.repository.User +import com.kordant.android.util.calculatePasswordStrength +import com.kordant.android.util.passwordStrengthProgress import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow diff --git a/android/app/src/main/java/com/kordant/android/viewmodel/DarkWatchViewModel.kt b/android/app/src/main/java/com/kordant/android/viewmodel/DarkWatchViewModel.kt index e4c5dc1..6e302bf 100644 --- a/android/app/src/main/java/com/kordant/android/viewmodel/DarkWatchViewModel.kt +++ b/android/app/src/main/java/com/kordant/android/viewmodel/DarkWatchViewModel.kt @@ -1,13 +1,13 @@ -package com.shieldai.android.viewmodel +package com.kordant.android.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope -import com.shieldai.android.KordantApp -import com.shieldai.android.data.model.Exposure -import com.shieldai.android.data.model.WatchlistItem -import com.shieldai.android.data.repository.DarkWatchRepository -import com.shieldai.android.di.RepositoryModule +import com.kordant.android.KordantApp +import com.kordant.android.data.model.Exposure +import com.kordant.android.data.model.WatchlistItem +import com.kordant.android.data.repository.DarkWatchRepository +import com.kordant.android.di.RepositoryModule import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow @@ -44,11 +44,11 @@ class DarkWatchViewModel : ViewModel() { val watchlistResult = repo.getWatchlist(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 } 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 } else emptyList() @@ -70,7 +70,7 @@ class DarkWatchViewModel : ViewModel() { viewModelScope.launch { _uiState.value = _uiState.value.copy(isAdding = true, error = null) 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( isAdding = false, error = result.message diff --git a/android/app/src/main/java/com/kordant/android/viewmodel/DashboardViewModel.kt b/android/app/src/main/java/com/kordant/android/viewmodel/DashboardViewModel.kt index f8b5598..d8cf3e5 100644 --- a/android/app/src/main/java/com/kordant/android/viewmodel/DashboardViewModel.kt +++ b/android/app/src/main/java/com/kordant/android/viewmodel/DashboardViewModel.kt @@ -1,17 +1,17 @@ -package com.shieldai.android.viewmodel +package com.kordant.android.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope -import com.shieldai.android.KordantApp -import com.shieldai.android.data.model.Alert -import com.shieldai.android.data.repository.AlertRepository -import com.shieldai.android.data.repository.DarkWatchRepository -import com.shieldai.android.data.repository.HomeTitleRepository -import com.shieldai.android.data.repository.RemoveBrokersRepository -import com.shieldai.android.data.repository.SpamShieldRepository -import com.shieldai.android.data.repository.VoicePrintRepository -import com.shieldai.android.di.RepositoryModule +import com.kordant.android.KordantApp +import com.kordant.android.data.model.Alert +import com.kordant.android.data.repository.AlertRepository +import com.kordant.android.data.repository.DarkWatchRepository +import com.kordant.android.data.repository.HomeTitleRepository +import com.kordant.android.data.repository.RemoveBrokersRepository +import com.kordant.android.data.repository.SpamShieldRepository +import com.kordant.android.data.repository.VoicePrintRepository +import com.kordant.android.di.RepositoryModule import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow @@ -74,27 +74,27 @@ class DashboardViewModel : ViewModel() { val removalsResult = removeBrokersRepo.getRemovalRequests() 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() } 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() } 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() } 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() } 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() } 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() } diff --git a/android/app/src/main/java/com/kordant/android/viewmodel/HomeTitleViewModel.kt b/android/app/src/main/java/com/kordant/android/viewmodel/HomeTitleViewModel.kt index 3f81e60..1950a65 100644 --- a/android/app/src/main/java/com/kordant/android/viewmodel/HomeTitleViewModel.kt +++ b/android/app/src/main/java/com/kordant/android/viewmodel/HomeTitleViewModel.kt @@ -1,12 +1,12 @@ -package com.shieldai.android.viewmodel +package com.kordant.android.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope -import com.shieldai.android.KordantApp -import com.shieldai.android.data.model.Property -import com.shieldai.android.data.repository.HomeTitleRepository -import com.shieldai.android.di.RepositoryModule +import com.kordant.android.KordantApp +import com.kordant.android.data.model.Property +import com.kordant.android.data.repository.HomeTitleRepository +import com.kordant.android.di.RepositoryModule import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow @@ -40,7 +40,7 @@ class HomeTitleViewModel : ViewModel() { _uiState.value = _uiState.value.copy(isLoading = !forceRefresh, error = null) try { 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( isLoading = false, properties = result.data @@ -61,7 +61,7 @@ class HomeTitleViewModel : ViewModel() { viewModelScope.launch { _uiState.value = _uiState.value.copy(isAdding = true, error = null) 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( isAdding = false, error = result.message diff --git a/android/app/src/main/java/com/kordant/android/viewmodel/RemoveBrokersViewModel.kt b/android/app/src/main/java/com/kordant/android/viewmodel/RemoveBrokersViewModel.kt index 1f73a2e..d378433 100644 --- a/android/app/src/main/java/com/kordant/android/viewmodel/RemoveBrokersViewModel.kt +++ b/android/app/src/main/java/com/kordant/android/viewmodel/RemoveBrokersViewModel.kt @@ -1,13 +1,13 @@ -package com.shieldai.android.viewmodel +package com.kordant.android.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope -import com.shieldai.android.KordantApp -import com.shieldai.android.data.model.BrokerListing -import com.shieldai.android.data.model.RemovalRequest -import com.shieldai.android.data.repository.RemoveBrokersRepository -import com.shieldai.android.di.RepositoryModule +import com.kordant.android.KordantApp +import com.kordant.android.data.model.BrokerListing +import com.kordant.android.data.model.RemovalRequest +import com.kordant.android.data.repository.RemoveBrokersRepository +import com.kordant.android.di.RepositoryModule import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow @@ -44,11 +44,11 @@ class RemoveBrokersViewModel : ViewModel() { val listingsResult = repo.getListings(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 } 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 } else emptyList() @@ -70,7 +70,7 @@ class RemoveBrokersViewModel : ViewModel() { viewModelScope.launch { _uiState.value = _uiState.value.copy(isCreating = true, error = null) 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( isCreating = false, error = result.message diff --git a/android/app/src/main/java/com/kordant/android/viewmodel/SettingsViewModel.kt b/android/app/src/main/java/com/kordant/android/viewmodel/SettingsViewModel.kt index 2761ca5..79f0ce0 100644 --- a/android/app/src/main/java/com/kordant/android/viewmodel/SettingsViewModel.kt +++ b/android/app/src/main/java/com/kordant/android/viewmodel/SettingsViewModel.kt @@ -1,14 +1,14 @@ -package com.shieldai.android.viewmodel +package com.kordant.android.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope -import com.shieldai.android.KordantApp -import com.shieldai.android.data.model.Subscription -import com.shieldai.android.data.model.User -import com.shieldai.android.data.repository.SubscriptionRepository -import com.shieldai.android.data.repository.UserRepository -import com.shieldai.android.di.RepositoryModule +import com.kordant.android.KordantApp +import com.kordant.android.data.model.Subscription +import com.kordant.android.data.model.User +import com.kordant.android.data.repository.SubscriptionRepository +import com.kordant.android.data.repository.UserRepository +import com.kordant.android.di.RepositoryModule import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow @@ -50,11 +50,11 @@ class SettingsViewModel : ViewModel() { val userResult = userRepo.getMe(forceRefresh) 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 } 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 } else null diff --git a/android/app/src/main/java/com/kordant/android/viewmodel/SpamShieldViewModel.kt b/android/app/src/main/java/com/kordant/android/viewmodel/SpamShieldViewModel.kt index 2d626b7..6b39ba8 100644 --- a/android/app/src/main/java/com/kordant/android/viewmodel/SpamShieldViewModel.kt +++ b/android/app/src/main/java/com/kordant/android/viewmodel/SpamShieldViewModel.kt @@ -1,12 +1,12 @@ -package com.shieldai.android.viewmodel +package com.kordant.android.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope -import com.shieldai.android.KordantApp -import com.shieldai.android.data.model.SpamRule -import com.shieldai.android.data.repository.SpamShieldRepository -import com.shieldai.android.di.RepositoryModule +import com.kordant.android.KordantApp +import com.kordant.android.data.model.SpamRule +import com.kordant.android.data.repository.SpamShieldRepository +import com.kordant.android.di.RepositoryModule import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow @@ -43,7 +43,7 @@ class SpamShieldViewModel : ViewModel() { _uiState.value = _uiState.value.copy(isLoading = !forceRefresh, error = null) try { 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() _uiState.value = _uiState.value.copy( isLoading = false, @@ -68,7 +68,7 @@ class SpamShieldViewModel : ViewModel() { viewModelScope.launch { _uiState.value = _uiState.value.copy(isCreating = true, error = null) 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( isCreating = false, error = result.message diff --git a/android/app/src/main/java/com/kordant/android/viewmodel/VoicePrintViewModel.kt b/android/app/src/main/java/com/kordant/android/viewmodel/VoicePrintViewModel.kt index b1df965..bcd223b 100644 --- a/android/app/src/main/java/com/kordant/android/viewmodel/VoicePrintViewModel.kt +++ b/android/app/src/main/java/com/kordant/android/viewmodel/VoicePrintViewModel.kt @@ -1,12 +1,12 @@ -package com.shieldai.android.viewmodel +package com.kordant.android.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.viewModelScope -import com.shieldai.android.KordantApp -import com.shieldai.android.data.model.VoiceEnrollment -import com.shieldai.android.data.repository.VoicePrintRepository -import com.shieldai.android.di.RepositoryModule +import com.kordant.android.KordantApp +import com.kordant.android.data.model.VoiceEnrollment +import com.kordant.android.data.repository.VoicePrintRepository +import com.kordant.android.di.RepositoryModule import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow @@ -44,7 +44,7 @@ class VoicePrintViewModel : ViewModel() { } else { 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( isLoading = false, enrollments = result.data @@ -65,7 +65,7 @@ class VoicePrintViewModel : ViewModel() { viewModelScope.launch { _uiState.value = _uiState.value.copy(isEnrolling = true, error = null) 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( isEnrolling = false, error = result.message diff --git a/android/app/src/test/java/com/shieldai/android/ExampleUnitTest.kt b/android/app/src/test/java/com/kordant/android/ExampleUnitTest.kt similarity index 100% rename from android/app/src/test/java/com/shieldai/android/ExampleUnitTest.kt rename to android/app/src/test/java/com/kordant/android/ExampleUnitTest.kt diff --git a/android/app/src/test/java/com/shieldai/android/data/local/CacheManagerTest.kt b/android/app/src/test/java/com/kordant/android/data/local/CacheManagerTest.kt similarity index 100% rename from android/app/src/test/java/com/shieldai/android/data/local/CacheManagerTest.kt rename to android/app/src/test/java/com/kordant/android/data/local/CacheManagerTest.kt diff --git a/android/app/src/test/java/com/shieldai/android/data/remote/ErrorHandlerTest.kt b/android/app/src/test/java/com/kordant/android/data/remote/ErrorHandlerTest.kt similarity index 100% rename from android/app/src/test/java/com/shieldai/android/data/remote/ErrorHandlerTest.kt rename to android/app/src/test/java/com/kordant/android/data/remote/ErrorHandlerTest.kt diff --git a/android/app/src/test/java/com/shieldai/android/data/remote/TRPCResponseTest.kt b/android/app/src/test/java/com/kordant/android/data/remote/TRPCResponseTest.kt similarity index 100% rename from android/app/src/test/java/com/shieldai/android/data/remote/TRPCResponseTest.kt rename to android/app/src/test/java/com/kordant/android/data/remote/TRPCResponseTest.kt diff --git a/android/app/src/test/java/com/shieldai/android/data/sync/SyncManagerTest.kt b/android/app/src/test/java/com/kordant/android/data/sync/SyncManagerTest.kt similarity index 100% rename from android/app/src/test/java/com/shieldai/android/data/sync/SyncManagerTest.kt rename to android/app/src/test/java/com/kordant/android/data/sync/SyncManagerTest.kt diff --git a/android/app/src/test/java/com/shieldai/android/util/PasswordStrengthTest.kt b/android/app/src/test/java/com/kordant/android/util/PasswordStrengthTest.kt similarity index 100% rename from android/app/src/test/java/com/shieldai/android/util/PasswordStrengthTest.kt rename to android/app/src/test/java/com/kordant/android/util/PasswordStrengthTest.kt diff --git a/android/app/src/test/java/com/shieldai/android/viewmodel/AuthViewModelTest.kt b/android/app/src/test/java/com/kordant/android/viewmodel/AuthViewModelTest.kt similarity index 100% rename from android/app/src/test/java/com/shieldai/android/viewmodel/AuthViewModelTest.kt rename to android/app/src/test/java/com/kordant/android/viewmodel/AuthViewModelTest.kt diff --git a/android/app/src/test/java/com/shieldai/android/viewmodel/ServiceViewModelsTest.kt b/android/app/src/test/java/com/kordant/android/viewmodel/ServiceViewModelsTest.kt similarity index 94% rename from android/app/src/test/java/com/shieldai/android/viewmodel/ServiceViewModelsTest.kt rename to android/app/src/test/java/com/kordant/android/viewmodel/ServiceViewModelsTest.kt index 6355dfb..f3766d0 100644 --- a/android/app/src/test/java/com/shieldai/android/viewmodel/ServiceViewModelsTest.kt +++ b/android/app/src/test/java/com/kordant/android/viewmodel/ServiceViewModelsTest.kt @@ -1,17 +1,17 @@ -package com.shieldai.android.viewmodel +package com.kordant.android.viewmodel -import com.shieldai.android.data.model.Alert -import com.shieldai.android.data.model.Exposure -import com.shieldai.android.data.model.WatchlistItem -import com.shieldai.android.data.repository.AlertRepository -import com.shieldai.android.data.repository.DarkWatchRepository -import com.shieldai.android.data.repository.HomeTitleRepository -import com.shieldai.android.data.repository.RemoveBrokersRepository -import com.shieldai.android.data.repository.SpamShieldRepository -import com.shieldai.android.data.repository.SubscriptionRepository -import com.shieldai.android.data.repository.UserRepository -import com.shieldai.android.data.repository.VoicePrintRepository -import com.shieldai.android.data.remote.ApiResult +import com.kordant.android.data.model.Alert +import com.kordant.android.data.model.Exposure +import com.kordant.android.data.model.WatchlistItem +import com.kordant.android.data.repository.AlertRepository +import com.kordant.android.data.repository.DarkWatchRepository +import com.kordant.android.data.repository.HomeTitleRepository +import com.kordant.android.data.repository.RemoveBrokersRepository +import com.kordant.android.data.repository.SpamShieldRepository +import com.kordant.android.data.repository.SubscriptionRepository +import com.kordant.android.data.repository.UserRepository +import com.kordant.android.data.repository.VoicePrintRepository +import com.kordant.android.data.remote.ApiResult import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.StandardTestDispatcher diff --git a/iOS/Kordant.xcodeproj/xcuserdata/mike.xcuserdatad/xcschemes/xcschememanagement.plist b/iOS/Kordant.xcodeproj/xcuserdata/mike.xcuserdatad/xcschemes/xcschememanagement.plist index dcf613c..01dc54c 100644 --- a/iOS/Kordant.xcodeproj/xcuserdata/mike.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/iOS/Kordant.xcodeproj/xcuserdata/mike.xcuserdatad/xcschemes/xcschememanagement.plist @@ -4,7 +4,7 @@ SchemeUserState - ShieldAI.xcscheme_^#shared#^_ + Kordant.xcscheme_^#shared#^_ orderHint 0 diff --git a/iOS/KordantTests/ShieldAITests.swift b/iOS/KordantTests/KordantTests.swift similarity index 100% rename from iOS/KordantTests/ShieldAITests.swift rename to iOS/KordantTests/KordantTests.swift diff --git a/iOS/KordantUITests/ShieldAIUITestsLaunchTests.swift b/iOS/KordantUITests/KordantAIUITestsLaunchTests.swift similarity index 100% rename from iOS/KordantUITests/ShieldAIUITestsLaunchTests.swift rename to iOS/KordantUITests/KordantAIUITestsLaunchTests.swift diff --git a/iOS/KordantUITests/ShieldAIUITests.swift b/iOS/KordantUITests/KordantUITests.swift similarity index 100% rename from iOS/KordantUITests/ShieldAIUITests.swift rename to iOS/KordantUITests/KordantUITests.swift diff --git a/web/src/routes/migrated-pages.test.tsx b/web/src/routes/migrated-pages.test.tsx index e30c7b4..80434f5 100644 --- a/web/src/routes/migrated-pages.test.tsx +++ b/web/src/routes/migrated-pages.test.tsx @@ -6,38 +6,119 @@ import type { JSX } from "solid-js"; vi.mock("~/lib/api", () => ({ api: { correlation: { - getStats: { query: vi.fn().mockResolvedValue({ threatScore: 25, totalAlerts: 5, bySeverity: {}, bySource: {}, activeGroups: 2, resolvedCount: 3, falsePositiveCount: 1, threatBreakdown: [] }) }, - getAlerts: { query: vi.fn().mockResolvedValue({ items: [ - { id: "1", title: "New credential leak detected", severity: "HIGH", source: "DARKWATCH", createdAt: new Date().toISOString() }, - { id: "2", title: "Suspicious call", severity: "WARNING", source: "SPAMSHIELD", createdAt: new Date().toISOString() }, - ], total: 2, page: 1, limit: 10, totalPages: 1 }) }, + getStats: { + query: vi + .fn() + .mockResolvedValue({ + threatScore: 25, + totalAlerts: 5, + bySeverity: {}, + bySource: {}, + activeGroups: 2, + resolvedCount: 3, + falsePositiveCount: 1, + threatBreakdown: [], + }), + }, + getAlerts: { + query: vi.fn().mockResolvedValue({ + items: [ + { + id: "1", + title: "New credential leak detected", + severity: "HIGH", + source: "DARKWATCH", + createdAt: new Date().toISOString(), + }, + { + id: "2", + title: "Suspicious call", + severity: "WARNING", + source: "SPAMSHIELD", + createdAt: new Date().toISOString(), + }, + ], + total: 2, + page: 1, + limit: 10, + totalPages: 1, + }), + }, resolveAlert: { mutate: vi.fn().mockResolvedValue({}) }, }, darkwatch: { - getExposures: { query: vi.fn().mockResolvedValue({ items: [], total: 0, page: 1, limit: 1, totalPages: 0 }) }, + getExposures: { + query: vi + .fn() + .mockResolvedValue({ + items: [], + total: 0, + page: 1, + limit: 1, + totalPages: 0, + }), + }, runScan: { mutate: vi.fn().mockResolvedValue({}) }, }, voiceprint: { getEnrollments: { query: vi.fn().mockResolvedValue([]) }, - getAnalyses: { query: vi.fn().mockResolvedValue({ items: [], total: 0, page: 1, limit: 10, totalPages: 0 }) }, + getAnalyses: { + query: vi + .fn() + .mockResolvedValue({ + items: [], + total: 0, + page: 1, + limit: 10, + totalPages: 0, + }), + }, }, spamshield: { - getStats: { query: vi.fn().mockResolvedValue({ period: "week", totalDetections: 10, spamCount: 8, notSpamCount: 2, accuracy: 80, activeRules: 3 }) }, - getRules: { query: vi.fn().mockResolvedValue({ userRules: [], globalRules: [] }) }, + getStats: { + query: vi + .fn() + .mockResolvedValue({ + period: "week", + totalDetections: 10, + spamCount: 8, + notSpamCount: 2, + accuracy: 80, + activeRules: 3, + }), + }, + getRules: { + query: vi.fn().mockResolvedValue({ userRules: [], globalRules: [] }), + }, }, hometitle: { getProperties: { query: vi.fn().mockResolvedValue([]) }, getAlerts: { query: vi.fn().mockResolvedValue([]) }, }, removebrokers: { - getStats: { query: vi.fn().mockResolvedValue({ total: 0, byStatus: {}, totalListings: 0, listingsRemoved: 0, completionRate: 0 }) }, + getStats: { + query: vi + .fn() + .mockResolvedValue({ + total: 0, + byStatus: {}, + totalListings: 0, + listingsRemoved: 0, + completionRate: 0, + }), + }, getBrokerRegistry: { query: vi.fn().mockResolvedValue([]) }, }, }, })); vi.mock("@solidjs/router", () => ({ - A: (props: { href?: string; children?: JSX.Element; class?: string; onClick?: () => void }) => ( + A: (props: { + href?: string; + children?: JSX.Element; + class?: string; + onClick?: () => void; + }) => ( {props.children} @@ -49,7 +130,7 @@ vi.mock("@solidjs/router", () => ({ vi.mock("~/hooks", () => ({ useAuth: () => ({ - user: () => ({ name: "Test User", email: "test@shieldai.app" }), + user: () => ({ name: "Test User", email: "test@kordant.ai" }), isAuthenticated: () => true, isLoading: () => false, logout: vi.fn(), @@ -62,11 +143,41 @@ vi.mock("~/hooks", () => ({ }), useNotifications: () => ({ alerts: () => [ - { id: "1", title: "New credential leak detected", description: "Your email was found in a data breach", severity: "HIGH", createdAt: "5m ago" }, - { id: "2", title: "VoicePrint scan completed", description: "No deepfake voice activity detected", severity: "INFO", createdAt: "1h ago" }, - { id: "3", title: "RemoveBroker opt-out confirmed", description: "Your data has been removed from Whitepages", severity: "INFO", createdAt: "3h ago" }, - { id: "4", title: "Suspicious call blocked", description: "SpamShield blocked a call", severity: "WARNING", createdAt: "6h ago" }, - { id: "5", title: "HomeTitle alert", description: "A document was filed", severity: "CRITICAL", createdAt: "1d ago" }, + { + id: "1", + title: "New credential leak detected", + description: "Your email was found in a data breach", + severity: "HIGH", + createdAt: "5m ago", + }, + { + id: "2", + title: "VoicePrint scan completed", + description: "No deepfake voice activity detected", + severity: "INFO", + createdAt: "1h ago", + }, + { + id: "3", + title: "RemoveBroker opt-out confirmed", + description: "Your data has been removed from Whitepages", + severity: "INFO", + createdAt: "3h ago", + }, + { + id: "4", + title: "Suspicious call blocked", + description: "SpamShield blocked a call", + severity: "WARNING", + createdAt: "6h ago", + }, + { + id: "5", + title: "HomeTitle alert", + description: "A document was filed", + severity: "CRITICAL", + createdAt: "1d ago", + }, ], unreadCount: () => 5, markRead: vi.fn(), @@ -124,7 +235,9 @@ describe("BlogPage (listing)", () => { it("renders post titles and excerpts", () => { mount(() => ); - expect(document.body.textContent).toContain("AI Scam Trends to Watch in 2026"); + expect(document.body.textContent).toContain( + "AI Scam Trends to Watch in 2026", + ); expect(document.body.textContent).toContain("Sarah Chen"); expect(document.body.textContent).toContain("Mike Reynolds"); }); @@ -133,7 +246,9 @@ describe("BlogPage (listing)", () => { describe("BlogPostPage ([slug])", () => { it("renders post content for valid slug", () => { mount(() => ); - expect(document.body.textContent).toContain("AI Scam Trends to Watch in 2026"); + expect(document.body.textContent).toContain( + "AI Scam Trends to Watch in 2026", + ); expect(document.body.textContent).toContain("Sarah Chen"); expect(document.body.textContent).toContain("Security Researcher"); expect(document.body.textContent).toContain("May 15, 2026"); @@ -150,7 +265,9 @@ describe("BlogPostPage ([slug])", () => { it("renders social share buttons", () => { mount(() => ); const shareBtns = document.querySelectorAll("button[aria-label]"); - const shareLabels = Array.from(shareBtns).map(b => b.getAttribute("aria-label")); + const shareLabels = Array.from(shareBtns).map((b) => + b.getAttribute("aria-label"), + ); expect(shareLabels).toContain("Share on Twitter"); expect(shareLabels).toContain("Share on LinkedIn"); expect(shareLabels).toContain("Copy link"); @@ -192,14 +309,18 @@ describe("AdsPage", () => { it("marks Plus plan as Most Popular", () => { mount(() => ); const badges = document.body.querySelectorAll("span"); - const popularBadge = Array.from(badges).find(b => b.textContent === "Most Popular"); + const popularBadge = Array.from(badges).find( + (b) => b.textContent === "Most Popular", + ); expect(popularBadge).toBeTruthy(); }); it("renders FAQ section with toggle functionality", () => { mount(() => ); expect(document.body.textContent).toContain("Frequently Asked Questions"); - expect(document.body.textContent).toContain("How does Kordant detect voice clones?"); + expect(document.body.textContent).toContain( + "How does Kordant detect voice clones?", + ); expect(document.body.textContent).toContain("Is my data encrypted?"); }); @@ -224,7 +345,9 @@ describe("AdsPage", () => { it("renders CTA section with Get Started Free button", () => { mount(() => ); - expect(document.body.textContent).toContain("Ready to protect your identity?"); + expect(document.body.textContent).toContain( + "Ready to protect your identity?", + ); expect(document.body.textContent).toContain("Get Started Free"); }); }); @@ -276,14 +399,26 @@ describe("StatCard", () => { it("renders up trend indicator", () => { mount(() => ( - } /> + } + /> )); expect(document.body.textContent).toContain("+5%"); }); it("renders down trend indicator", () => { mount(() => ( - } /> + } + /> )); expect(document.body.textContent).toContain("-3%"); }); @@ -292,7 +427,13 @@ describe("StatCard", () => { describe("ActivityFeed", () => { it("renders activities", () => { const activities = [ - { id: "1", title: "Test Alert", description: "Test description", timestamp: "5m ago", type: "alert" as const }, + { + id: "1", + title: "Test Alert", + description: "Test description", + timestamp: "5m ago", + type: "alert" as const, + }, ]; mount(() => ); expect(document.body.textContent).toContain("Recent Activity");