refactor: package rename from com.couplesconnect.app to app.closer, update build config and firebase setup

This commit is contained in:
null 2026-06-16 20:03:58 -05:00
parent e42de938e7
commit 84995641f3
167 changed files with 533 additions and 505 deletions

View File

@ -9,11 +9,11 @@ plugins {
}
android {
namespace = "com.couplesconnect.app"
namespace = "app.closer"
compileSdk = 35
defaultConfig {
applicationId = "couples.connect.dev"
applicationId = "app.closer"
minSdk = 26
targetSdk = 35
versionCode = 1

View File

@ -5,21 +5,21 @@
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<application
android:name=".CouplesConnectApp"
android:name=".CloserApp"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/Theme.CouplesConnect"
android:theme="@style/Theme.Closer"
android:supportsRtl="true">
<activity
android:name=".MainActivity"
android:exported="true"
android:windowSoftInputMode="adjustResize"
android:theme="@style/Theme.CouplesConnect">
android:theme="@style/Theme.Closer">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />

View File

@ -1,12 +1,12 @@
package com.couplesconnect.app
package app.closer
import android.app.Application
import com.couplesconnect.app.core.firebase.FirebaseInitializer
import app.closer.core.firebase.FirebaseInitializer
import dagger.hilt.android.HiltAndroidApp
import javax.inject.Inject
@HiltAndroidApp
class CouplesConnectApp : Application() {
class CloserApp : Application() {
@Inject lateinit var firebaseInitializer: FirebaseInitializer

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app
package app.closer
import android.os.Bundle
import androidx.activity.ComponentActivity
@ -7,8 +7,8 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.ui.Modifier
import com.couplesconnect.app.core.navigation.AppNavigation
import com.couplesconnect.app.ui.theme.CouplesConnectTheme
import app.closer.core.navigation.AppNavigation
import app.closer.ui.theme.CloserTheme
import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
@ -16,7 +16,7 @@ class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
CouplesConnectTheme {
CloserTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.core.analytics
package app.closer.core.analytics
interface AnalyticsTracker {
fun trackScreenViewed(screenName: String)

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.core.analytics
package app.closer.core.analytics
import android.os.Bundle
import com.google.firebase.analytics.FirebaseAnalytics

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.core.billing
package app.closer.core.billing
import javax.inject.Inject
import javax.inject.Singleton

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.core.crash
package app.closer.core.crash
interface CrashReporter {
fun setUserId(uid: String)

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.core.crash
package app.closer.core.crash
import com.google.firebase.crashlytics.FirebaseCrashlytics
import javax.inject.Inject

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.core.feature
package app.closer.core.feature
/**
* Feature flag definition.

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.core.feature
package app.closer.core.feature
/**
* Feature implementation priority.

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.core.feature
package app.closer.core.feature
/**
* Central registry for all feature flags.

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.core.feature
package app.closer.core.feature
/**
* Feature billing status.

View File

@ -1,6 +1,6 @@
package com.couplesconnect.app.core.firebase
package app.closer.core.firebase
import com.couplesconnect.app.BuildConfig // generated by buildFeatures { buildConfig = true }
import app.closer.BuildConfig // generated by buildFeatures { buildConfig = true }
import com.google.firebase.appcheck.FirebaseAppCheck
import com.google.firebase.appcheck.playintegrity.PlayIntegrityAppCheckProviderFactory
import javax.inject.Inject

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.core.navigation
package app.closer.core.navigation
import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons
@ -29,37 +29,37 @@ import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
import androidx.navigation.NavGraph.Companion.findStartDestination
import androidx.navigation.navArgument
import com.couplesconnect.app.ui.auth.ForgotPasswordScreen
import com.couplesconnect.app.ui.answers.AnswerHistoryScreen
import com.couplesconnect.app.ui.answers.AnswerRevealScreen
import com.couplesconnect.app.ui.auth.LoginScreen
import com.couplesconnect.app.ui.auth.SignUpScreen
import com.couplesconnect.app.ui.home.HomeScreen
import com.couplesconnect.app.ui.home.PartnerHomeScreen
import com.couplesconnect.app.ui.onboarding.CreateProfileScreen
import com.couplesconnect.app.ui.onboarding.OnboardingScreen
import com.couplesconnect.app.ui.pairing.AcceptInviteScreen
import com.couplesconnect.app.ui.pairing.CreateInviteScreen
import com.couplesconnect.app.ui.pairing.EmailInviteScreen
import com.couplesconnect.app.ui.pairing.InviteConfirmScreen
import com.couplesconnect.app.ui.paywall.PaywallScreen
import com.couplesconnect.app.ui.questions.DailyQuestionScreen
import com.couplesconnect.app.ui.questions.QuestionCategoryScreen
import com.couplesconnect.app.ui.questions.QuestionComposerScreen
import com.couplesconnect.app.ui.questions.QuestionPackLibraryScreen
import com.couplesconnect.app.ui.questions.QuestionThreadScreen
import com.couplesconnect.app.ui.settings.AccountScreen
import com.couplesconnect.app.ui.settings.DeleteAccountScreen
import com.couplesconnect.app.ui.settings.NotificationSettingsScreen
import com.couplesconnect.app.ui.settings.PrivacyScreen
import com.couplesconnect.app.ui.settings.RelationshipSettingsScreen
import com.couplesconnect.app.ui.settings.SettingsScreen
import com.couplesconnect.app.ui.settings.SubscriptionScreen
import com.couplesconnect.app.ui.wheel.CategoryPickerScreen
import com.couplesconnect.app.ui.wheel.SpinWheelScreen
import com.couplesconnect.app.ui.wheel.WheelCompleteScreen
import com.couplesconnect.app.ui.wheel.WheelHistoryScreen
import com.couplesconnect.app.ui.wheel.WheelSessionScreen
import app.closer.ui.auth.ForgotPasswordScreen
import app.closer.ui.answers.AnswerHistoryScreen
import app.closer.ui.answers.AnswerRevealScreen
import app.closer.ui.auth.LoginScreen
import app.closer.ui.auth.SignUpScreen
import app.closer.ui.home.HomeScreen
import app.closer.ui.home.PartnerHomeScreen
import app.closer.ui.onboarding.CreateProfileScreen
import app.closer.ui.onboarding.OnboardingScreen
import app.closer.ui.pairing.AcceptInviteScreen
import app.closer.ui.pairing.CreateInviteScreen
import app.closer.ui.pairing.EmailInviteScreen
import app.closer.ui.pairing.InviteConfirmScreen
import app.closer.ui.paywall.PaywallScreen
import app.closer.ui.questions.DailyQuestionScreen
import app.closer.ui.questions.QuestionCategoryScreen
import app.closer.ui.questions.QuestionComposerScreen
import app.closer.ui.questions.QuestionPackLibraryScreen
import app.closer.ui.questions.QuestionThreadScreen
import app.closer.ui.settings.AccountScreen
import app.closer.ui.settings.DeleteAccountScreen
import app.closer.ui.settings.NotificationSettingsScreen
import app.closer.ui.settings.PrivacyScreen
import app.closer.ui.settings.RelationshipSettingsScreen
import app.closer.ui.settings.SettingsScreen
import app.closer.ui.settings.SubscriptionScreen
import app.closer.ui.wheel.CategoryPickerScreen
import app.closer.ui.wheel.SpinWheelScreen
import app.closer.ui.wheel.WheelCompleteScreen
import app.closer.ui.wheel.WheelHistoryScreen
import app.closer.ui.wheel.WheelSessionScreen
@OptIn(ExperimentalMaterial3Api::class)
@Composable

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.core.navigation
package app.closer.core.navigation
import android.net.Uri

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.core.navigation
package app.closer.core.navigation
object ExternalLinks {
const val PRIVACY_POLICY = "https://couplesconnect.app/privacy"

View File

@ -1,7 +1,7 @@
package com.couplesconnect.app.core.notifications
package app.closer.core.notifications
import com.couplesconnect.app.domain.repository.AuthRepository
import com.couplesconnect.app.domain.repository.UserRepository
import app.closer.domain.repository.AuthRepository
import app.closer.domain.repository.UserRepository
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
import dagger.hilt.android.AndroidEntryPoint

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.core.notifications
package app.closer.core.notifications
import android.app.NotificationChannel
import android.app.NotificationManager
@ -7,8 +7,8 @@ import android.content.Context
import android.content.Intent
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import com.couplesconnect.app.MainActivity
import com.couplesconnect.app.R
import app.closer.MainActivity
import app.closer.R
object NotificationHelper {

View File

@ -1,11 +1,11 @@
package com.couplesconnect.app.data.local
package app.closer.data.local
import androidx.room.Database
import androidx.room.RoomDatabase
import androidx.room.TypeConverters
import com.couplesconnect.app.data.local.converters.Converters
import com.couplesconnect.app.data.local.entity.CategoryEntity
import com.couplesconnect.app.data.local.entity.QuestionEntity
import app.closer.data.local.converters.Converters
import app.closer.data.local.entity.CategoryEntity
import app.closer.data.local.entity.QuestionEntity
@Database(
entities = [QuestionEntity::class, CategoryEntity::class],

View File

@ -1,11 +1,11 @@
package com.couplesconnect.app.data.local
package app.closer.data.local
import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.couplesconnect.app.data.local.entity.CategoryEntity
import app.closer.data.local.entity.CategoryEntity
@Dao
interface CategoryDao {

View File

@ -1,11 +1,11 @@
package com.couplesconnect.app.data.local
package app.closer.data.local
import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import com.couplesconnect.app.data.local.entity.QuestionEntity
import app.closer.data.local.entity.QuestionEntity
@Dao
interface QuestionDao {

View File

@ -1,11 +1,11 @@
package com.couplesconnect.app.data.local
package app.closer.data.local
import androidx.datastore.core.DataStore
import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.core.booleanPreferencesKey
import androidx.datastore.preferences.core.edit
import com.couplesconnect.app.domain.repository.AppSettings
import com.couplesconnect.app.domain.repository.SettingsRepository
import app.closer.domain.repository.AppSettings
import app.closer.domain.repository.SettingsRepository
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import javax.inject.Inject

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.data.local.converters
package app.closer.data.local.converters
import androidx.room.TypeConverter

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.data.local.entity
package app.closer.data.local.entity
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.data.local.entity
package app.closer.data.local.entity
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@ -1,18 +1,18 @@
package com.couplesconnect.app.data.local.mapper
package app.closer.data.local.mapper
import com.couplesconnect.app.data.local.entity.QuestionEntity
import com.couplesconnect.app.data.local.entity.CategoryEntity
import com.couplesconnect.app.domain.model.ChoiceAnswerConfig
import com.couplesconnect.app.domain.model.ChoiceAnswerConfigImpl
import com.couplesconnect.app.domain.model.ChoiceOption
import com.couplesconnect.app.domain.model.Question
import com.couplesconnect.app.domain.model.QuestionCategory
import com.couplesconnect.app.domain.model.ScaleAnswerConfig
import com.couplesconnect.app.domain.model.ScaleAnswerConfigImpl
import com.couplesconnect.app.domain.model.ThisOrThatAnswerConfig
import com.couplesconnect.app.domain.model.ThisOrThatAnswerConfigImpl
import com.couplesconnect.app.domain.model.WrittenAnswerConfig
import com.couplesconnect.app.domain.model.WrittenAnswerConfigImpl
import app.closer.data.local.entity.QuestionEntity
import app.closer.data.local.entity.CategoryEntity
import app.closer.domain.model.ChoiceAnswerConfig
import app.closer.domain.model.ChoiceAnswerConfigImpl
import app.closer.domain.model.ChoiceOption
import app.closer.domain.model.Question
import app.closer.domain.model.QuestionCategory
import app.closer.domain.model.ScaleAnswerConfig
import app.closer.domain.model.ScaleAnswerConfigImpl
import app.closer.domain.model.ThisOrThatAnswerConfig
import app.closer.domain.model.ThisOrThatAnswerConfigImpl
import app.closer.domain.model.WrittenAnswerConfig
import app.closer.domain.model.WrittenAnswerConfigImpl
import org.json.JSONArray
import org.json.JSONObject

View File

@ -1,6 +1,6 @@
package com.couplesconnect.app.data.questions
package app.closer.data.questions
import com.couplesconnect.app.domain.model.*
import app.closer.domain.model.*
import org.json.JSONArray
import org.json.JSONObject

View File

@ -1,6 +1,6 @@
package com.couplesconnect.app.data.remote
package app.closer.data.remote
import com.couplesconnect.app.domain.model.AuthState
import app.closer.domain.model.AuthState
import com.google.firebase.auth.FirebaseAuth
import kotlinx.coroutines.channels.awaitClose
import kotlinx.coroutines.flow.Flow

View File

@ -1,6 +1,6 @@
package com.couplesconnect.app.data.remote
package app.closer.data.remote
import com.couplesconnect.app.domain.model.Couple
import app.closer.domain.model.Couple
import com.google.firebase.firestore.DocumentSnapshot
import com.google.firebase.firestore.FirebaseFirestore
import com.google.firebase.firestore.SetOptions

View File

@ -1,6 +1,6 @@
package com.couplesconnect.app.data.remote
package app.closer.data.remote
import com.couplesconnect.app.domain.model.Invite
import app.closer.domain.model.Invite
import com.google.firebase.firestore.FirebaseFirestore
import com.google.firebase.firestore.SetOptions
import kotlinx.coroutines.suspendCancellableCoroutine

View File

@ -1,10 +1,10 @@
package com.couplesconnect.app.data.remote
package app.closer.data.remote
import com.couplesconnect.app.domain.model.QuestionAnswer
import com.couplesconnect.app.domain.model.QuestionMessage
import com.couplesconnect.app.domain.model.QuestionReaction
import com.couplesconnect.app.domain.model.QuestionThread
import com.couplesconnect.app.domain.model.QuestionThreadStatus
import app.closer.domain.model.QuestionAnswer
import app.closer.domain.model.QuestionMessage
import app.closer.domain.model.QuestionReaction
import app.closer.domain.model.QuestionThread
import app.closer.domain.model.QuestionThreadStatus
import com.google.firebase.firestore.DocumentSnapshot
import com.google.firebase.firestore.FieldValue
import com.google.firebase.firestore.FirebaseFirestore

View File

@ -1,6 +1,6 @@
package com.couplesconnect.app.data.remote
package app.closer.data.remote
import com.couplesconnect.app.domain.model.User
import app.closer.domain.model.User
import com.google.firebase.firestore.FirebaseFirestore
import com.google.firebase.firestore.SetOptions
import kotlinx.coroutines.suspendCancellableCoroutine

View File

@ -1,9 +1,9 @@
package com.couplesconnect.app.data.repository
package app.closer.data.repository
import com.couplesconnect.app.data.remote.FirestoreCoupleDataSource
import com.couplesconnect.app.data.remote.FirestoreUserDataSource
import com.couplesconnect.app.domain.model.Couple
import com.couplesconnect.app.domain.repository.CoupleRepository
import app.closer.data.remote.FirestoreCoupleDataSource
import app.closer.data.remote.FirestoreUserDataSource
import app.closer.domain.model.Couple
import app.closer.domain.repository.CoupleRepository
import javax.inject.Inject
import javax.inject.Singleton

View File

@ -1,8 +1,8 @@
package com.couplesconnect.app.data.repository
package app.closer.data.repository
import com.couplesconnect.app.domain.model.Question
import com.couplesconnect.app.domain.model.QuestionCategory
import com.couplesconnect.app.domain.repository.QuestionRepository
import app.closer.domain.model.Question
import app.closer.domain.model.QuestionCategory
import app.closer.domain.repository.QuestionRepository
class FakeQuestionRepository : QuestionRepository {
override suspend fun getDailyQuestion(): Question? = null

View File

@ -1,8 +1,8 @@
package com.couplesconnect.app.data.repository
package app.closer.data.repository
import com.couplesconnect.app.data.remote.FirebaseAuthDataSource
import com.couplesconnect.app.domain.model.AuthState
import com.couplesconnect.app.domain.repository.AuthRepository
import app.closer.data.remote.FirebaseAuthDataSource
import app.closer.domain.model.AuthState
import app.closer.domain.repository.AuthRepository
import kotlinx.coroutines.flow.Flow
import javax.inject.Inject
import javax.inject.Singleton

View File

@ -1,8 +1,8 @@
package com.couplesconnect.app.data.repository
package app.closer.data.repository
import com.couplesconnect.app.data.remote.FirestoreInviteDataSource
import com.couplesconnect.app.domain.model.Invite
import com.couplesconnect.app.domain.repository.InviteRepository
import app.closer.data.remote.FirestoreInviteDataSource
import app.closer.domain.model.Invite
import app.closer.domain.repository.InviteRepository
import javax.inject.Inject
import javax.inject.Singleton

View File

@ -1,7 +1,7 @@
package com.couplesconnect.app.data.repository
package app.closer.data.repository
import com.couplesconnect.app.domain.model.QuestionSession
import com.couplesconnect.app.domain.repository.QuestionSessionRepository
import app.closer.domain.model.QuestionSession
import app.closer.domain.repository.QuestionSessionRepository
import com.google.firebase.firestore.FirebaseFirestore
import kotlinx.coroutines.tasks.await
import javax.inject.Inject

View File

@ -1,13 +1,13 @@
package com.couplesconnect.app.data.repository
package app.closer.data.repository
import com.couplesconnect.app.data.remote.FirestoreQuestionThreadDataSource
import com.couplesconnect.app.domain.model.QuestionAnswer
import com.couplesconnect.app.domain.model.QuestionMessage
import com.couplesconnect.app.domain.model.QuestionReaction
import com.couplesconnect.app.domain.model.QuestionThread
import com.couplesconnect.app.domain.model.QuestionThreadStatus
import com.couplesconnect.app.domain.repository.CoupleRepository
import com.couplesconnect.app.domain.repository.QuestionThreadRepository
import app.closer.data.remote.FirestoreQuestionThreadDataSource
import app.closer.domain.model.QuestionAnswer
import app.closer.domain.model.QuestionMessage
import app.closer.domain.model.QuestionReaction
import app.closer.domain.model.QuestionThread
import app.closer.domain.model.QuestionThreadStatus
import app.closer.domain.repository.CoupleRepository
import app.closer.domain.repository.QuestionThreadRepository
import kotlinx.coroutines.flow.Flow
import javax.inject.Inject
import javax.inject.Singleton

View File

@ -1,12 +1,12 @@
package com.couplesconnect.app.data.repository
package app.closer.data.repository
import com.couplesconnect.app.data.local.CategoryDao
import com.couplesconnect.app.data.local.QuestionDao
import com.couplesconnect.app.data.local.mapper.toQuestion
import com.couplesconnect.app.data.local.mapper.toQuestionCategory
import com.couplesconnect.app.domain.model.Question
import com.couplesconnect.app.domain.model.QuestionCategory
import com.couplesconnect.app.domain.repository.QuestionRepository
import app.closer.data.local.CategoryDao
import app.closer.data.local.QuestionDao
import app.closer.data.local.mapper.toQuestion
import app.closer.data.local.mapper.toQuestionCategory
import app.closer.domain.model.Question
import app.closer.domain.model.QuestionCategory
import app.closer.domain.repository.QuestionRepository
import javax.inject.Inject
import javax.inject.Singleton

View File

@ -1,8 +1,8 @@
package com.couplesconnect.app.data.repository
package app.closer.data.repository
import android.content.Context
import com.couplesconnect.app.domain.model.LocalAnswer
import com.couplesconnect.app.domain.repository.LocalAnswerRepository
import app.closer.domain.model.LocalAnswer
import app.closer.domain.repository.LocalAnswerRepository
import dagger.hilt.android.qualifiers.ApplicationContext
import javax.inject.Inject
import javax.inject.Singleton

View File

@ -1,8 +1,8 @@
package com.couplesconnect.app.data.repository
package app.closer.data.repository
import com.couplesconnect.app.data.remote.FirestoreUserDataSource
import com.couplesconnect.app.domain.model.User
import com.couplesconnect.app.domain.repository.UserRepository
import app.closer.data.remote.FirestoreUserDataSource
import app.closer.domain.model.User
import app.closer.domain.repository.UserRepository
import javax.inject.Inject
import javax.inject.Singleton

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.di
package app.closer.di
import android.content.Context
import androidx.datastore.core.DataStore
@ -6,7 +6,7 @@ import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.preferencesDataStoreFile
import androidx.datastore.preferences.core.PreferenceDataStoreFactory
import androidx.room.Room
import com.couplesconnect.app.data.local.AppDatabase
import app.closer.data.local.AppDatabase
import com.google.firebase.firestore.FirebaseFirestore
import dagger.Module
import dagger.Provides

View File

@ -1,10 +1,10 @@
package com.couplesconnect.app.di
package app.closer.di
import android.content.Context
import com.couplesconnect.app.core.analytics.AnalyticsTracker
import com.couplesconnect.app.core.analytics.FirebaseAnalyticsTracker
import com.couplesconnect.app.core.crash.CrashReporter
import com.couplesconnect.app.core.crash.FirebaseCrashReporter
import app.closer.core.analytics.AnalyticsTracker
import app.closer.core.analytics.FirebaseAnalyticsTracker
import app.closer.core.crash.CrashReporter
import app.closer.core.crash.FirebaseCrashReporter
import com.google.firebase.analytics.FirebaseAnalytics
import dagger.Binds
import dagger.Module

View File

@ -1,25 +1,25 @@
package com.couplesconnect.app.di
package app.closer.di
import com.couplesconnect.app.core.billing.EntitlementChecker
import com.couplesconnect.app.core.billing.FakeEntitlementChecker
import com.couplesconnect.app.data.local.SettingsDataStore
import com.couplesconnect.app.data.repository.CoupleRepositoryImpl
import com.couplesconnect.app.data.repository.QuestionSessionRepositoryImpl
import com.couplesconnect.app.data.repository.FirebaseAuthRepositoryImpl
import com.couplesconnect.app.data.repository.InviteRepositoryImpl
import com.couplesconnect.app.data.repository.SharedPreferencesLocalAnswerRepository
import com.couplesconnect.app.data.repository.RoomQuestionRepository
import com.couplesconnect.app.data.repository.QuestionThreadRepositoryImpl
import com.couplesconnect.app.data.repository.UserRepositoryImpl
import com.couplesconnect.app.domain.repository.AuthRepository
import com.couplesconnect.app.domain.repository.CoupleRepository
import com.couplesconnect.app.domain.repository.QuestionSessionRepository
import com.couplesconnect.app.domain.repository.InviteRepository
import com.couplesconnect.app.domain.repository.LocalAnswerRepository
import com.couplesconnect.app.domain.repository.QuestionRepository
import com.couplesconnect.app.domain.repository.QuestionThreadRepository
import com.couplesconnect.app.domain.repository.SettingsRepository
import com.couplesconnect.app.domain.repository.UserRepository
import app.closer.core.billing.EntitlementChecker
import app.closer.core.billing.FakeEntitlementChecker
import app.closer.data.local.SettingsDataStore
import app.closer.data.repository.CoupleRepositoryImpl
import app.closer.data.repository.QuestionSessionRepositoryImpl
import app.closer.data.repository.FirebaseAuthRepositoryImpl
import app.closer.data.repository.InviteRepositoryImpl
import app.closer.data.repository.SharedPreferencesLocalAnswerRepository
import app.closer.data.repository.RoomQuestionRepository
import app.closer.data.repository.QuestionThreadRepositoryImpl
import app.closer.data.repository.UserRepositoryImpl
import app.closer.domain.repository.AuthRepository
import app.closer.domain.repository.CoupleRepository
import app.closer.domain.repository.QuestionSessionRepository
import app.closer.domain.repository.InviteRepository
import app.closer.domain.repository.LocalAnswerRepository
import app.closer.domain.repository.QuestionRepository
import app.closer.domain.repository.QuestionThreadRepository
import app.closer.domain.repository.SettingsRepository
import app.closer.domain.repository.UserRepository
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
data class Answer(
val id: String = "",

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
sealed class AuthState {
object Loading : AuthState()

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
data class Couple(
val id: String = "",

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
data class Entitlement(
val id: String = "",

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
data class Invite(
val id: String = "",

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
enum class InviteStatus {
PENDING,

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
data class LocalAnswer(
val questionId: String,

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
// Answer config for different question types
data class WrittenAnswerConfig(

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
data class QuestionAnswer(
val userId: String = "",

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
data class QuestionCategory(
val id: String = "",

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
data class QuestionMessage(
val id: String = "",

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
data class QuestionPack(
val id: String = "",

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
data class QuestionReaction(
val id: String = "",

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
data class QuestionSession(
val id: String = "",

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
enum class QuestionSessionStatus {
ACTIVE,

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
data class QuestionThread(
val id: String = "",

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.model
package app.closer.domain.model
data class User(
val id: String = "",

View File

@ -1,6 +1,6 @@
package com.couplesconnect.app.domain.repository
package app.closer.domain.repository
import com.couplesconnect.app.domain.model.AuthState
import app.closer.domain.model.AuthState
import kotlinx.coroutines.flow.Flow
interface AuthRepository {

View File

@ -1,6 +1,6 @@
package com.couplesconnect.app.domain.repository
package app.closer.domain.repository
import com.couplesconnect.app.domain.model.Couple
import app.closer.domain.model.Couple
interface CoupleRepository {
suspend fun getCoupleForUser(userId: String): Couple?

View File

@ -1,6 +1,6 @@
package com.couplesconnect.app.domain.repository
package app.closer.domain.repository
import com.couplesconnect.app.domain.model.Invite
import app.closer.domain.model.Invite
interface InviteRepository {
suspend fun createInvite(inviterUserId: String): Result<String>

View File

@ -1,6 +1,6 @@
package com.couplesconnect.app.domain.repository
package app.closer.domain.repository
import com.couplesconnect.app.domain.model.LocalAnswer
import app.closer.domain.model.LocalAnswer
import kotlinx.coroutines.flow.Flow
interface LocalAnswerRepository {

View File

@ -1,7 +1,7 @@
package com.couplesconnect.app.domain.repository
package app.closer.domain.repository
import com.couplesconnect.app.domain.model.Question
import com.couplesconnect.app.domain.model.QuestionCategory
import app.closer.domain.model.Question
import app.closer.domain.model.QuestionCategory
interface QuestionRepository {
suspend fun getDailyQuestion(): Question?

View File

@ -1,6 +1,6 @@
package com.couplesconnect.app.domain.repository
package app.closer.domain.repository
import com.couplesconnect.app.domain.model.QuestionSession
import app.closer.domain.model.QuestionSession
interface QuestionSessionRepository {
suspend fun saveSession(session: QuestionSession): Result<Unit>

View File

@ -1,9 +1,9 @@
package com.couplesconnect.app.domain.repository
package app.closer.domain.repository
import com.couplesconnect.app.domain.model.QuestionAnswer
import com.couplesconnect.app.domain.model.QuestionMessage
import com.couplesconnect.app.domain.model.QuestionReaction
import com.couplesconnect.app.domain.model.QuestionThread
import app.closer.domain.model.QuestionAnswer
import app.closer.domain.model.QuestionMessage
import app.closer.domain.model.QuestionReaction
import app.closer.domain.model.QuestionThread
import kotlinx.coroutines.flow.Flow
interface QuestionThreadRepository {

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.domain.repository
package app.closer.domain.repository
import kotlinx.coroutines.flow.Flow

View File

@ -1,6 +1,6 @@
package com.couplesconnect.app.domain.repository
package app.closer.domain.repository
import com.couplesconnect.app.domain.model.User
import app.closer.domain.model.User
interface UserRepository {
suspend fun getUser(uid: String): User?

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.ui.answers
package app.closer.ui.answers
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@ -37,10 +37,10 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import com.couplesconnect.app.core.navigation.AppRoute
import com.couplesconnect.app.domain.model.LocalAnswer
import com.couplesconnect.app.ui.components.EmptyState
import com.couplesconnect.app.ui.questions.displayCategoryName
import app.closer.core.navigation.AppRoute
import app.closer.domain.model.LocalAnswer
import app.closer.ui.components.EmptyState
import app.closer.ui.questions.displayCategoryName
@Composable
fun AnswerHistoryScreen(

View File

@ -1,9 +1,9 @@
package com.couplesconnect.app.ui.answers
package app.closer.ui.answers
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.couplesconnect.app.domain.model.LocalAnswer
import com.couplesconnect.app.domain.repository.LocalAnswerRepository
import app.closer.domain.model.LocalAnswer
import app.closer.domain.repository.LocalAnswerRepository
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject
import kotlinx.coroutines.flow.MutableStateFlow

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.ui.answers
package app.closer.ui.answers
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@ -34,11 +34,11 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import com.couplesconnect.app.core.navigation.AppRoute
import com.couplesconnect.app.domain.model.LocalAnswer
import com.couplesconnect.app.domain.model.Question
import com.couplesconnect.app.ui.questions.displayCategoryName
import com.couplesconnect.app.ui.questions.displayQuestionType
import app.closer.core.navigation.AppRoute
import app.closer.domain.model.LocalAnswer
import app.closer.domain.model.Question
import app.closer.ui.questions.displayCategoryName
import app.closer.ui.questions.displayQuestionType
@Composable
fun AnswerRevealScreen(

View File

@ -1,12 +1,12 @@
package com.couplesconnect.app.ui.answers
package app.closer.ui.answers
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.couplesconnect.app.domain.model.LocalAnswer
import com.couplesconnect.app.domain.model.Question
import com.couplesconnect.app.domain.repository.LocalAnswerRepository
import com.couplesconnect.app.domain.repository.QuestionRepository
import app.closer.domain.model.LocalAnswer
import app.closer.domain.model.Question
import app.closer.domain.repository.LocalAnswerRepository
import app.closer.domain.repository.QuestionRepository
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject
import kotlinx.coroutines.flow.MutableStateFlow

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.ui.auth
package app.closer.ui.auth
import androidx.compose.material3.OutlinedTextFieldDefaults
import androidx.compose.runtime.Composable

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.ui.auth
package app.closer.ui.auth
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@ -46,7 +46,7 @@ import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import com.couplesconnect.app.core.navigation.AppRoute
import app.closer.core.navigation.AppRoute
@OptIn(ExperimentalMaterial3Api::class)
@Composable

View File

@ -1,8 +1,8 @@
package com.couplesconnect.app.ui.auth
package app.closer.ui.auth
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.couplesconnect.app.domain.repository.AuthRepository
import app.closer.domain.repository.AuthRepository
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.ui.auth
package app.closer.ui.auth
import androidx.compose.foundation.background
import androidx.compose.foundation.BorderStroke
@ -48,7 +48,7 @@ import androidx.compose.ui.text.input.VisualTransformation
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import com.couplesconnect.app.core.navigation.AppRoute
import app.closer.core.navigation.AppRoute
@Composable
fun LoginScreen(

View File

@ -1,8 +1,8 @@
package com.couplesconnect.app.ui.auth
package app.closer.ui.auth
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.couplesconnect.app.domain.repository.AuthRepository
import app.closer.domain.repository.AuthRepository
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.ui.auth
package app.closer.ui.auth
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@ -50,7 +50,7 @@ import androidx.compose.ui.text.input.VisualTransformation
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import com.couplesconnect.app.core.navigation.AppRoute
import app.closer.core.navigation.AppRoute
@OptIn(ExperimentalMaterial3Api::class)
@Composable

View File

@ -1,8 +1,8 @@
package com.couplesconnect.app.ui.auth
package app.closer.ui.auth
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.couplesconnect.app.domain.repository.AuthRepository
import app.closer.domain.repository.AuthRepository
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.ui.components
package app.closer.ui.components
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.ui.components
package app.closer.ui.components
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.ui.components
package app.closer.ui.components
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.ui.components
package app.closer.ui.components
import androidx.compose.foundation.Canvas
import androidx.compose.foundation.background

View File

@ -1,4 +1,4 @@
package com.couplesconnect.app.ui.components
package app.closer.ui.components
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement

Some files were not shown because too many files have changed in this diff Show More