diff --git a/PLAY_STORE.md b/PLAY_STORE.md
new file mode 100644
index 0000000..cfd30ce
--- /dev/null
+++ b/PLAY_STORE.md
@@ -0,0 +1,46 @@
+# Mizafi — Play Store release
+
+This branch prepares **Mizafi** for Google Play publishing. The open-source repository remains **[FlowFi](https://github.com/saadkhalidkhan/FlowFi)**; only the shipped app identity changes.
+
+| Item | Value |
+|------|--------|
+| **Play Store app name** | Mizafi |
+| **Package name** | `com.saadproductlabs.mizafi` |
+| **Developer / publisher** | Saad Product Labs |
+
+## Build a release APK or AAB
+
+```bash
+./gradlew :app:bundleRelease
+```
+
+Output: `app/build/outputs/bundle/release/app-release.aab`
+
+For a local APK:
+
+```bash
+./gradlew :app:assembleRelease
+```
+
+## Install debug build
+
+```bash
+./gradlew :app:installDebug
+adb shell am start -n com.saadproductlabs.mizafi/.MainActivity
+```
+
+## Before you upload
+
+1. **Signing** — Configure a release keystore in `app/build.gradle.kts` (not committed).
+2. **Store listing** — App name **Mizafi**, developer **Saad Product Labs**.
+3. **Privacy policy** — Required if you collect data; this app stores data locally only (Room).
+4. **Screenshots** — Capture from this branch (Mizafi branding).
+5. **Version** — Bump `versionCode` / `versionName` in `app/build.gradle.kts` for each release.
+
+## Copyright
+
+Source is licensed under the [MIT License](LICENSE):
+
+> Copyright (c) 2026 Saad Khalid Khan
+
+Publishing on Play Store under **Saad Product Labs** does not change the license or GitHub repo name.
diff --git a/README.md b/README.md
index 8f72f2f..189350e 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
# FlowFi
+> **Play Store branch:** App ships as **[Mizafi](PLAY_STORE.md)** (`com.saadproductlabs.mizafi`) by **Saad Product Labs**. This GitHub repo name stays **FlowFi**.
+
[](https://github.com/saadkhalidkhan/FlowFi/actions/workflows/ci.yml)
[](https://github.com/saadkhalidkhan/FlowFi/actions/workflows/docs.yml)
[](https://opensource.org/licenses/MIT)
@@ -73,7 +75,7 @@ Install on a device or emulator:
```bash
./gradlew :app:installDebug
-adb shell am start -n com.example.flowfi/.MainActivity
+adb shell am start -n com.saadproductlabs.mizafi/.MainActivity
```
## Usage examples
@@ -81,10 +83,10 @@ adb shell am start -n com.example.flowfi/.MainActivity
### Insert a transaction
```kotlin
-import com.example.flowfi.data.database.AppDatabase
-import com.example.flowfi.data.entity.TransactionEntity
-import com.example.flowfi.data.entity.TransactionType
-import com.example.flowfi.data.repository.TransactionRepositoryImpl
+import com.saadproductlabs.mizafi.data.database.AppDatabase
+import com.saadproductlabs.mizafi.data.entity.TransactionEntity
+import com.saadproductlabs.mizafi.data.entity.TransactionType
+import com.saadproductlabs.mizafi.data.repository.TransactionRepositoryImpl
val repository = TransactionRepositoryImpl(
AppDatabase.getDatabase(context).transactionDao()
@@ -104,7 +106,7 @@ repository.insertTransaction(
### Observe totals in a ViewModel
```kotlin
-import com.example.flowfi.data.entity.TransactionType
+import com.saadproductlabs.mizafi.data.entity.TransactionType
import kotlinx.coroutines.flow.map
repository.getAllTransactions()
@@ -118,7 +120,7 @@ repository.getAllTransactions()
### Create a savings goal
```kotlin
-import com.example.flowfi.data.entity.SavingsGoalEntity
+import com.saadproductlabs.mizafi.data.entity.SavingsGoalEntity
savingsGoalRepository.insertGoal(
SavingsGoalEntity(
@@ -132,7 +134,7 @@ savingsGoalRepository.insertGoal(
### Generate behavioral insights
```kotlin
-import com.example.flowfi.domain.InsightEngine
+import com.saadproductlabs.mizafi.domain.InsightEngine
val insights = InsightEngine.generate(transactions)
insights.forEach { println(it.message) }
@@ -141,7 +143,7 @@ insights.forEach { println(it.message) }
### Wire repositories in `Application`
```kotlin
-class FlowFiApplication : Application() {
+class MizafiApplication : Application() {
val database by lazy { AppDatabase.getDatabase(this) }
val repository by lazy { TransactionRepositoryImpl(database.transactionDao()) }
val savingsGoalRepository by lazy {
@@ -170,7 +172,7 @@ Published docs (GitHub Pages): **https://saadkhalidkhan.github.io/FlowFi/**
```
FlowFi/
├── app/
-│ └── src/main/java/com/example/flowfi/
+│ └── src/main/java/com/saadproductlabs/mizafi/
│ ├── data/ # Room entities, DAOs, repositories
│ ├── domain/ # InsightEngine, CategoryAnalytics
│ ├── ui/ # Compose screens, theme, navigation
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index f0d6524..d17de66 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -6,11 +6,11 @@ plugins {
}
android {
- namespace = "com.example.flowfi"
+ namespace = "com.saadproductlabs.mizafi"
compileSdk = 36
defaultConfig {
- applicationId = "com.example.flowfi"
+ applicationId = "com.saadproductlabs.mizafi"
minSdk = 26
targetSdk = 36
versionCode = 1
diff --git a/app/src/androidTest/java/com/example/flowfi/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/saadproductlabs/mizafi/ExampleInstrumentedTest.kt
similarity index 83%
rename from app/src/androidTest/java/com/example/flowfi/ExampleInstrumentedTest.kt
rename to app/src/androidTest/java/com/saadproductlabs/mizafi/ExampleInstrumentedTest.kt
index 1a168b7..b8bfbf9 100644
--- a/app/src/androidTest/java/com/example/flowfi/ExampleInstrumentedTest.kt
+++ b/app/src/androidTest/java/com/saadproductlabs/mizafi/ExampleInstrumentedTest.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi
+package com.saadproductlabs.mizafi
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -19,6 +19,6 @@ class ExampleInstrumentedTest {
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
- assertEquals("com.example.flowfi", appContext.packageName)
+ assertEquals("com.saadproductlabs.mizafi", appContext.packageName)
}
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8dc45dc..20c77a0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -5,7 +5,7 @@
+ android:theme="@style/Theme.Mizafi">
+ android:theme="@style/Theme.Mizafi">
diff --git a/app/src/main/java/com/example/flowfi/FlowFiApplication.kt b/app/src/main/java/com/example/flowfi/FlowFiApplication.kt
deleted file mode 100644
index 106a8e8..0000000
--- a/app/src/main/java/com/example/flowfi/FlowFiApplication.kt
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.example.flowfi
-
-import android.app.Application
-import com.example.flowfi.data.database.AppDatabase
-import com.example.flowfi.data.repository.SavingsGoalRepository
-import com.example.flowfi.data.repository.SavingsGoalRepositoryImpl
-import com.example.flowfi.data.repository.TransactionRepository
-import com.example.flowfi.data.repository.TransactionRepositoryImpl
-
-class FlowFiApplication : Application() {
- val database: AppDatabase by lazy { AppDatabase.getDatabase(this) }
- val repository: TransactionRepository by lazy { TransactionRepositoryImpl(database.transactionDao()) }
- val savingsGoalRepository: SavingsGoalRepository by lazy {
- SavingsGoalRepositoryImpl(database.savingsGoalDao())
- }
-}
diff --git a/app/src/main/java/com/example/flowfi/MainActivity.kt b/app/src/main/java/com/saadproductlabs/mizafi/MainActivity.kt
similarity index 77%
rename from app/src/main/java/com/example/flowfi/MainActivity.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/MainActivity.kt
index f7f3e7f..84f6e4e 100644
--- a/app/src/main/java/com/example/flowfi/MainActivity.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/MainActivity.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi
+package com.saadproductlabs.mizafi
import android.os.Bundle
import androidx.activity.ComponentActivity
@@ -11,10 +11,10 @@ import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.lifecycle.viewmodel.compose.viewModel
-import com.example.flowfi.ui.navigation.FlowFiNavHost
-import com.example.flowfi.ui.theme.FlowFiTheme
-import com.example.flowfi.viewmodel.TransactionViewModel
-import com.example.flowfi.viewmodel.TransactionViewModelFactory
+import com.saadproductlabs.mizafi.ui.navigation.MizafiNavHost
+import com.saadproductlabs.mizafi.ui.theme.MizafiTheme
+import com.saadproductlabs.mizafi.viewmodel.TransactionViewModel
+import com.saadproductlabs.mizafi.viewmodel.TransactionViewModelFactory
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
@@ -30,8 +30,8 @@ class MainActivity : ComponentActivity() {
)
)
setContent {
- FlowFiTheme {
- val application = application as FlowFiApplication
+ MizafiTheme {
+ val application = application as MizafiApplication
val viewModel: TransactionViewModel = viewModel(
factory = TransactionViewModelFactory(
application.repository,
@@ -43,7 +43,7 @@ class MainActivity : ComponentActivity() {
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
- FlowFiNavHost(viewModel = viewModel)
+ MizafiNavHost(viewModel = viewModel)
}
}
}
diff --git a/app/src/main/java/com/saadproductlabs/mizafi/MizafiApplication.kt b/app/src/main/java/com/saadproductlabs/mizafi/MizafiApplication.kt
new file mode 100644
index 0000000..c0b68e7
--- /dev/null
+++ b/app/src/main/java/com/saadproductlabs/mizafi/MizafiApplication.kt
@@ -0,0 +1,16 @@
+package com.saadproductlabs.mizafi
+
+import android.app.Application
+import com.saadproductlabs.mizafi.data.database.AppDatabase
+import com.saadproductlabs.mizafi.data.repository.SavingsGoalRepository
+import com.saadproductlabs.mizafi.data.repository.SavingsGoalRepositoryImpl
+import com.saadproductlabs.mizafi.data.repository.TransactionRepository
+import com.saadproductlabs.mizafi.data.repository.TransactionRepositoryImpl
+
+class MizafiApplication : Application() {
+ val database: AppDatabase by lazy { AppDatabase.getDatabase(this) }
+ val repository: TransactionRepository by lazy { TransactionRepositoryImpl(database.transactionDao()) }
+ val savingsGoalRepository: SavingsGoalRepository by lazy {
+ SavingsGoalRepositoryImpl(database.savingsGoalDao())
+ }
+}
diff --git a/app/src/main/java/com/example/flowfi/data/dao/SavingsGoalDao.kt b/app/src/main/java/com/saadproductlabs/mizafi/data/dao/SavingsGoalDao.kt
similarity index 84%
rename from app/src/main/java/com/example/flowfi/data/dao/SavingsGoalDao.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/data/dao/SavingsGoalDao.kt
index 0ab1fbc..9a90dbc 100644
--- a/app/src/main/java/com/example/flowfi/data/dao/SavingsGoalDao.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/data/dao/SavingsGoalDao.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi.data.dao
+package com.saadproductlabs.mizafi.data.dao
import androidx.room.Dao
import androidx.room.Delete
@@ -6,7 +6,7 @@ import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Update
-import com.example.flowfi.data.entity.SavingsGoalEntity
+import com.saadproductlabs.mizafi.data.entity.SavingsGoalEntity
import kotlinx.coroutines.flow.Flow
@Dao
diff --git a/app/src/main/java/com/example/flowfi/data/dao/TransactionDao.kt b/app/src/main/java/com/saadproductlabs/mizafi/data/dao/TransactionDao.kt
similarity index 90%
rename from app/src/main/java/com/example/flowfi/data/dao/TransactionDao.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/data/dao/TransactionDao.kt
index 1b16f03..77d41c3 100644
--- a/app/src/main/java/com/example/flowfi/data/dao/TransactionDao.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/data/dao/TransactionDao.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi.data.dao
+package com.saadproductlabs.mizafi.data.dao
import androidx.room.Dao
import androidx.room.Delete
@@ -6,7 +6,7 @@ import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Update
-import com.example.flowfi.data.entity.TransactionEntity
+import com.saadproductlabs.mizafi.data.entity.TransactionEntity
import kotlinx.coroutines.flow.Flow
@Dao
diff --git a/app/src/main/java/com/example/flowfi/data/database/AppDatabase.kt b/app/src/main/java/com/saadproductlabs/mizafi/data/database/AppDatabase.kt
similarity index 74%
rename from app/src/main/java/com/example/flowfi/data/database/AppDatabase.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/data/database/AppDatabase.kt
index c2b76f8..0176b7a 100644
--- a/app/src/main/java/com/example/flowfi/data/database/AppDatabase.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/data/database/AppDatabase.kt
@@ -1,14 +1,14 @@
-package com.example.flowfi.data.database
+package com.saadproductlabs.mizafi.data.database
import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import androidx.room.TypeConverters
-import com.example.flowfi.data.dao.SavingsGoalDao
-import com.example.flowfi.data.dao.TransactionDao
-import com.example.flowfi.data.entity.SavingsGoalEntity
-import com.example.flowfi.data.entity.TransactionEntity
+import com.saadproductlabs.mizafi.data.dao.SavingsGoalDao
+import com.saadproductlabs.mizafi.data.dao.TransactionDao
+import com.saadproductlabs.mizafi.data.entity.SavingsGoalEntity
+import com.saadproductlabs.mizafi.data.entity.TransactionEntity
@Database(
entities = [TransactionEntity::class, SavingsGoalEntity::class],
@@ -29,7 +29,7 @@ abstract class AppDatabase : RoomDatabase() {
val instance = Room.databaseBuilder(
context.applicationContext,
AppDatabase::class.java,
- "flowfi_database"
+ "mizafi_database"
).fallbackToDestructiveMigration()
.build()
INSTANCE = instance
diff --git a/app/src/main/java/com/example/flowfi/data/database/Converters.kt b/app/src/main/java/com/saadproductlabs/mizafi/data/database/Converters.kt
similarity index 73%
rename from app/src/main/java/com/example/flowfi/data/database/Converters.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/data/database/Converters.kt
index 8afb631..e749ea4 100644
--- a/app/src/main/java/com/example/flowfi/data/database/Converters.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/data/database/Converters.kt
@@ -1,7 +1,7 @@
-package com.example.flowfi.data.database
+package com.saadproductlabs.mizafi.data.database
import androidx.room.TypeConverter
-import com.example.flowfi.data.entity.TransactionType
+import com.saadproductlabs.mizafi.data.entity.TransactionType
class Converters {
@TypeConverter
diff --git a/app/src/main/java/com/example/flowfi/data/entity/SavingsGoalEntity.kt b/app/src/main/java/com/saadproductlabs/mizafi/data/entity/SavingsGoalEntity.kt
similarity index 90%
rename from app/src/main/java/com/example/flowfi/data/entity/SavingsGoalEntity.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/data/entity/SavingsGoalEntity.kt
index fd25c5e..4de4100 100644
--- a/app/src/main/java/com/example/flowfi/data/entity/SavingsGoalEntity.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/data/entity/SavingsGoalEntity.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi.data.entity
+package com.saadproductlabs.mizafi.data.entity
import androidx.room.Entity
import androidx.room.PrimaryKey
diff --git a/app/src/main/java/com/example/flowfi/data/entity/TransactionEntity.kt b/app/src/main/java/com/saadproductlabs/mizafi/data/entity/TransactionEntity.kt
similarity index 89%
rename from app/src/main/java/com/example/flowfi/data/entity/TransactionEntity.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/data/entity/TransactionEntity.kt
index acf0006..d4daa54 100644
--- a/app/src/main/java/com/example/flowfi/data/entity/TransactionEntity.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/data/entity/TransactionEntity.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi.data.entity
+package com.saadproductlabs.mizafi.data.entity
import androidx.room.Entity
import androidx.room.PrimaryKey
diff --git a/app/src/main/java/com/example/flowfi/data/repository/SavingsGoalRepository.kt b/app/src/main/java/com/saadproductlabs/mizafi/data/repository/SavingsGoalRepository.kt
similarity index 82%
rename from app/src/main/java/com/example/flowfi/data/repository/SavingsGoalRepository.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/data/repository/SavingsGoalRepository.kt
index 89e6c6d..74fa474 100644
--- a/app/src/main/java/com/example/flowfi/data/repository/SavingsGoalRepository.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/data/repository/SavingsGoalRepository.kt
@@ -1,7 +1,7 @@
-package com.example.flowfi.data.repository
+package com.saadproductlabs.mizafi.data.repository
-import com.example.flowfi.data.dao.SavingsGoalDao
-import com.example.flowfi.data.entity.SavingsGoalEntity
+import com.saadproductlabs.mizafi.data.dao.SavingsGoalDao
+import com.saadproductlabs.mizafi.data.entity.SavingsGoalEntity
import kotlinx.coroutines.flow.Flow
interface SavingsGoalRepository {
diff --git a/app/src/main/java/com/example/flowfi/data/repository/TransactionRepository.kt b/app/src/main/java/com/saadproductlabs/mizafi/data/repository/TransactionRepository.kt
similarity index 88%
rename from app/src/main/java/com/example/flowfi/data/repository/TransactionRepository.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/data/repository/TransactionRepository.kt
index f66b203..f0e90dd 100644
--- a/app/src/main/java/com/example/flowfi/data/repository/TransactionRepository.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/data/repository/TransactionRepository.kt
@@ -1,7 +1,7 @@
-package com.example.flowfi.data.repository
+package com.saadproductlabs.mizafi.data.repository
-import com.example.flowfi.data.dao.TransactionDao
-import com.example.flowfi.data.entity.TransactionEntity
+import com.saadproductlabs.mizafi.data.dao.TransactionDao
+import com.saadproductlabs.mizafi.data.entity.TransactionEntity
import kotlinx.coroutines.flow.Flow
interface TransactionRepository {
diff --git a/app/src/main/java/com/example/flowfi/domain/CategoryAnalytics.kt b/app/src/main/java/com/saadproductlabs/mizafi/domain/CategoryAnalytics.kt
similarity index 81%
rename from app/src/main/java/com/example/flowfi/domain/CategoryAnalytics.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/domain/CategoryAnalytics.kt
index b2b5216..6c6bc39 100644
--- a/app/src/main/java/com/example/flowfi/domain/CategoryAnalytics.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/domain/CategoryAnalytics.kt
@@ -1,8 +1,8 @@
-package com.example.flowfi.domain
+package com.saadproductlabs.mizafi.domain
-import com.example.flowfi.data.entity.TransactionEntity
-import com.example.flowfi.data.entity.TransactionType
-import com.example.flowfi.util.DateUtils
+import com.saadproductlabs.mizafi.data.entity.TransactionEntity
+import com.saadproductlabs.mizafi.data.entity.TransactionType
+import com.saadproductlabs.mizafi.util.DateUtils
data class CategorySpend(
val category: String,
diff --git a/app/src/main/java/com/example/flowfi/domain/InsightEngine.kt b/app/src/main/java/com/saadproductlabs/mizafi/domain/InsightEngine.kt
similarity index 96%
rename from app/src/main/java/com/example/flowfi/domain/InsightEngine.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/domain/InsightEngine.kt
index 1a66a45..1eb6ef3 100644
--- a/app/src/main/java/com/example/flowfi/domain/InsightEngine.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/domain/InsightEngine.kt
@@ -1,8 +1,8 @@
-package com.example.flowfi.domain
+package com.saadproductlabs.mizafi.domain
-import com.example.flowfi.data.entity.TransactionEntity
-import com.example.flowfi.data.entity.TransactionType
-import com.example.flowfi.util.DateUtils
+import com.saadproductlabs.mizafi.data.entity.TransactionEntity
+import com.saadproductlabs.mizafi.data.entity.TransactionType
+import com.saadproductlabs.mizafi.util.DateUtils
import kotlin.math.roundToInt
enum class InsightTone {
diff --git a/app/src/main/java/com/example/flowfi/ui/components/CategoryBarChart.kt b/app/src/main/java/com/saadproductlabs/mizafi/ui/components/CategoryBarChart.kt
similarity index 94%
rename from app/src/main/java/com/example/flowfi/ui/components/CategoryBarChart.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/ui/components/CategoryBarChart.kt
index 80154eb..494b922 100644
--- a/app/src/main/java/com/example/flowfi/ui/components/CategoryBarChart.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/ui/components/CategoryBarChart.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi.ui.components
+package com.saadproductlabs.mizafi.ui.components
import androidx.compose.foundation.Canvas
import androidx.compose.foundation.layout.*
@@ -12,8 +12,8 @@ import androidx.compose.ui.geometry.Size
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
-import com.example.flowfi.domain.CategorySpend
-import com.example.flowfi.ui.util.formatCurrency
+import com.saadproductlabs.mizafi.domain.CategorySpend
+import com.saadproductlabs.mizafi.ui.util.formatCurrency
@Composable
fun CategoryBarChart(
diff --git a/app/src/main/java/com/example/flowfi/ui/model/TransactionCategories.kt b/app/src/main/java/com/saadproductlabs/mizafi/ui/model/TransactionCategories.kt
similarity index 81%
rename from app/src/main/java/com/example/flowfi/ui/model/TransactionCategories.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/ui/model/TransactionCategories.kt
index dd99484..774a2b1 100644
--- a/app/src/main/java/com/example/flowfi/ui/model/TransactionCategories.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/ui/model/TransactionCategories.kt
@@ -1,6 +1,6 @@
-package com.example.flowfi.ui.model
+package com.saadproductlabs.mizafi.ui.model
-import com.example.flowfi.data.entity.TransactionType
+import com.saadproductlabs.mizafi.data.entity.TransactionType
object TransactionCategories {
val expense = listOf("Food", "Transport", "Bills", "Shopping", "Other")
diff --git a/app/src/main/java/com/example/flowfi/ui/model/TransactionListFilters.kt b/app/src/main/java/com/saadproductlabs/mizafi/ui/model/TransactionListFilters.kt
similarity index 90%
rename from app/src/main/java/com/example/flowfi/ui/model/TransactionListFilters.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/ui/model/TransactionListFilters.kt
index 1a2fdbb..9cb221b 100644
--- a/app/src/main/java/com/example/flowfi/ui/model/TransactionListFilters.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/ui/model/TransactionListFilters.kt
@@ -1,7 +1,7 @@
-package com.example.flowfi.ui.model
+package com.saadproductlabs.mizafi.ui.model
-import com.example.flowfi.data.entity.TransactionEntity
-import com.example.flowfi.ui.util.formatMonthYear
+import com.saadproductlabs.mizafi.data.entity.TransactionEntity
+import com.saadproductlabs.mizafi.ui.util.formatMonthYear
import java.util.Calendar
data class MonthFilterOption(
diff --git a/app/src/main/java/com/example/flowfi/ui/navigation/FlowFiNavHost.kt b/app/src/main/java/com/saadproductlabs/mizafi/ui/navigation/MizafiNavHost.kt
similarity index 86%
rename from app/src/main/java/com/example/flowfi/ui/navigation/FlowFiNavHost.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/ui/navigation/MizafiNavHost.kt
index 1c8fb71..b6b7efd 100644
--- a/app/src/main/java/com/example/flowfi/ui/navigation/FlowFiNavHost.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/ui/navigation/MizafiNavHost.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi.ui.navigation
+package com.saadproductlabs.mizafi.ui.navigation
import androidx.compose.runtime.Composable
import androidx.navigation.NavHostController
@@ -7,14 +7,14 @@ import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.navArgument
import androidx.navigation.compose.rememberNavController
-import com.example.flowfi.ui.screens.DashboardScreen
-import com.example.flowfi.ui.screens.InsightsScreen
-import com.example.flowfi.ui.screens.TransactionEntryScreen
-import com.example.flowfi.ui.screens.TransactionListScreen
-import com.example.flowfi.viewmodel.TransactionViewModel
+import com.saadproductlabs.mizafi.ui.screens.DashboardScreen
+import com.saadproductlabs.mizafi.ui.screens.InsightsScreen
+import com.saadproductlabs.mizafi.ui.screens.TransactionEntryScreen
+import com.saadproductlabs.mizafi.ui.screens.TransactionListScreen
+import com.saadproductlabs.mizafi.viewmodel.TransactionViewModel
@Composable
-fun FlowFiNavHost(
+fun MizafiNavHost(
viewModel: TransactionViewModel,
navController: NavHostController = rememberNavController()
) {
diff --git a/app/src/main/java/com/example/flowfi/ui/navigation/NavDestinations.kt b/app/src/main/java/com/saadproductlabs/mizafi/ui/navigation/NavDestinations.kt
similarity index 89%
rename from app/src/main/java/com/example/flowfi/ui/navigation/NavDestinations.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/ui/navigation/NavDestinations.kt
index ed6b138..dfe9e2f 100644
--- a/app/src/main/java/com/example/flowfi/ui/navigation/NavDestinations.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/ui/navigation/NavDestinations.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi.ui.navigation
+package com.saadproductlabs.mizafi.ui.navigation
sealed class Screen(val route: String) {
object Dashboard : Screen("dashboard")
diff --git a/app/src/main/java/com/example/flowfi/ui/screens/DashboardScreen.kt b/app/src/main/java/com/saadproductlabs/mizafi/ui/screens/DashboardScreen.kt
similarity index 92%
rename from app/src/main/java/com/example/flowfi/ui/screens/DashboardScreen.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/ui/screens/DashboardScreen.kt
index 1877dcb..f1d6c95 100644
--- a/app/src/main/java/com/example/flowfi/ui/screens/DashboardScreen.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/ui/screens/DashboardScreen.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi.ui.screens
+package com.saadproductlabs.mizafi.ui.screens
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
@@ -23,16 +23,16 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
-import com.example.flowfi.data.entity.TransactionEntity
-import com.example.flowfi.data.entity.TransactionType
-import com.example.flowfi.ui.theme.ExpenseRed
-import com.example.flowfi.ui.theme.ExpenseRedContainer
-import com.example.flowfi.ui.theme.IncomeGreen
-import com.example.flowfi.ui.theme.IncomeGreenContainer
-import com.example.flowfi.ui.util.formatCurrency
-import com.example.flowfi.ui.util.formatCurrentMonthYear
-import com.example.flowfi.ui.util.formatTransactionDate
-import com.example.flowfi.viewmodel.TransactionViewModel
+import com.saadproductlabs.mizafi.data.entity.TransactionEntity
+import com.saadproductlabs.mizafi.data.entity.TransactionType
+import com.saadproductlabs.mizafi.ui.theme.ExpenseRed
+import com.saadproductlabs.mizafi.ui.theme.ExpenseRedContainer
+import com.saadproductlabs.mizafi.ui.theme.IncomeGreen
+import com.saadproductlabs.mizafi.ui.theme.IncomeGreenContainer
+import com.saadproductlabs.mizafi.ui.util.formatCurrency
+import com.saadproductlabs.mizafi.ui.util.formatCurrentMonthYear
+import com.saadproductlabs.mizafi.ui.util.formatTransactionDate
+import com.saadproductlabs.mizafi.viewmodel.TransactionViewModel
@OptIn(ExperimentalMaterial3Api::class)
@Composable
@@ -48,9 +48,9 @@ fun DashboardScreen(
Scaffold(
contentWindowInsets = WindowInsets.safeDrawing,
topBar = {
- TopAppBar(
- title = { Text("FlowFi", fontWeight = FontWeight.Bold) },
- colors = TopAppBarDefaults.topAppBarColors(
+ CenterAlignedTopAppBar(
+ title = { Text("Mizafi", fontWeight = FontWeight.Bold) },
+ colors = TopAppBarDefaults.centerAlignedTopAppBarColors(
containerColor = MaterialTheme.colorScheme.primaryContainer,
titleContentColor = MaterialTheme.colorScheme.onPrimaryContainer
)
@@ -148,7 +148,7 @@ fun DashboardScreen(
@Composable
private fun GuidancePreviewCard(
- topInsight: com.example.flowfi.domain.BehavioralInsight?,
+ topInsight: com.saadproductlabs.mizafi.domain.BehavioralInsight?,
onViewInsights: () -> Unit
) {
Card(
diff --git a/app/src/main/java/com/example/flowfi/ui/screens/InsightsScreen.kt b/app/src/main/java/com/saadproductlabs/mizafi/ui/screens/InsightsScreen.kt
similarity index 94%
rename from app/src/main/java/com/example/flowfi/ui/screens/InsightsScreen.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/ui/screens/InsightsScreen.kt
index eb12b44..d6103e3 100644
--- a/app/src/main/java/com/example/flowfi/ui/screens/InsightsScreen.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/ui/screens/InsightsScreen.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi.ui.screens
+package com.saadproductlabs.mizafi.ui.screens
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.layout.WindowInsets
@@ -27,18 +27,18 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
-import com.example.flowfi.data.entity.SavingsGoalEntity
-import com.example.flowfi.domain.BehavioralInsight
-import com.example.flowfi.domain.InsightTone
-import com.example.flowfi.ui.components.CategoryBarChart
-import com.example.flowfi.ui.theme.ExpenseRed
-import com.example.flowfi.ui.theme.ExpenseRedContainer
-import com.example.flowfi.ui.theme.IncomeGreen
-import com.example.flowfi.ui.theme.IncomeGreenContainer
-import com.example.flowfi.ui.util.formatCurrency
-import com.example.flowfi.ui.util.formatCurrentMonthYear
-import com.example.flowfi.ui.util.isValidAmountInput
-import com.example.flowfi.viewmodel.TransactionViewModel
+import com.saadproductlabs.mizafi.data.entity.SavingsGoalEntity
+import com.saadproductlabs.mizafi.domain.BehavioralInsight
+import com.saadproductlabs.mizafi.domain.InsightTone
+import com.saadproductlabs.mizafi.ui.components.CategoryBarChart
+import com.saadproductlabs.mizafi.ui.theme.ExpenseRed
+import com.saadproductlabs.mizafi.ui.theme.ExpenseRedContainer
+import com.saadproductlabs.mizafi.ui.theme.IncomeGreen
+import com.saadproductlabs.mizafi.ui.theme.IncomeGreenContainer
+import com.saadproductlabs.mizafi.ui.util.formatCurrency
+import com.saadproductlabs.mizafi.ui.util.formatCurrentMonthYear
+import com.saadproductlabs.mizafi.ui.util.isValidAmountInput
+import com.saadproductlabs.mizafi.viewmodel.TransactionViewModel
private val goalPresets = listOf("Emergency fund", "Bike", "Marriage", "Travel")
@@ -187,7 +187,7 @@ private fun GuidanceHeroCard() {
)
Spacer(modifier = Modifier.height(8.dp))
Text(
- text = "FlowFi highlights trends, category mix, and goal progress so you can act—not just read numbers.",
+ text = "Mizafi highlights trends, category mix, and goal progress so you can act—not just read numbers.",
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.onSecondaryContainer.copy(alpha = 0.85f)
)
@@ -260,7 +260,7 @@ fun BehavioralInsightCard(insight: BehavioralInsight) {
@Composable
private fun AnalyticsCard(
- breakdown: List,
+ breakdown: List,
chartColors: List
) {
Card(
diff --git a/app/src/main/java/com/example/flowfi/ui/screens/TransactionEntryScreen.kt b/app/src/main/java/com/saadproductlabs/mizafi/ui/screens/TransactionEntryScreen.kt
similarity index 94%
rename from app/src/main/java/com/example/flowfi/ui/screens/TransactionEntryScreen.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/ui/screens/TransactionEntryScreen.kt
index d51c1fb..9905d9a 100644
--- a/app/src/main/java/com/example/flowfi/ui/screens/TransactionEntryScreen.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/ui/screens/TransactionEntryScreen.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi.ui.screens
+package com.saadproductlabs.mizafi.ui.screens
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.layout.WindowInsets
@@ -14,14 +14,14 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.unit.dp
-import com.example.flowfi.data.entity.TransactionEntity
-import com.example.flowfi.data.entity.TransactionType
-import com.example.flowfi.ui.model.TransactionCategories
-import com.example.flowfi.ui.util.currencyPrefix
-import com.example.flowfi.ui.util.formatAmountForInput
-import com.example.flowfi.ui.util.formatTransactionDate
-import com.example.flowfi.ui.util.isValidAmountInput
-import com.example.flowfi.viewmodel.TransactionViewModel
+import com.saadproductlabs.mizafi.data.entity.TransactionEntity
+import com.saadproductlabs.mizafi.data.entity.TransactionType
+import com.saadproductlabs.mizafi.ui.model.TransactionCategories
+import com.saadproductlabs.mizafi.ui.util.currencyPrefix
+import com.saadproductlabs.mizafi.ui.util.formatAmountForInput
+import com.saadproductlabs.mizafi.ui.util.formatTransactionDate
+import com.saadproductlabs.mizafi.ui.util.isValidAmountInput
+import com.saadproductlabs.mizafi.viewmodel.TransactionViewModel
@OptIn(ExperimentalMaterial3Api::class)
@Composable
diff --git a/app/src/main/java/com/example/flowfi/ui/screens/TransactionListScreen.kt b/app/src/main/java/com/saadproductlabs/mizafi/ui/screens/TransactionListScreen.kt
similarity index 97%
rename from app/src/main/java/com/example/flowfi/ui/screens/TransactionListScreen.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/ui/screens/TransactionListScreen.kt
index 8ec57bd..f8372d5 100644
--- a/app/src/main/java/com/example/flowfi/ui/screens/TransactionListScreen.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/ui/screens/TransactionListScreen.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi.ui.screens
+package com.saadproductlabs.mizafi.ui.screens
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
@@ -16,10 +16,10 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
-import com.example.flowfi.ui.model.TransactionListFilters
-import com.example.flowfi.ui.theme.ExpenseRed
-import com.example.flowfi.ui.util.formatTransactionDate
-import com.example.flowfi.viewmodel.TransactionViewModel
+import com.saadproductlabs.mizafi.ui.model.TransactionListFilters
+import com.saadproductlabs.mizafi.ui.theme.ExpenseRed
+import com.saadproductlabs.mizafi.ui.util.formatTransactionDate
+import com.saadproductlabs.mizafi.viewmodel.TransactionViewModel
import kotlinx.coroutines.launch
@OptIn(ExperimentalMaterial3Api::class)
@@ -202,7 +202,7 @@ fun TransactionListScreen(
private fun TransactionFilterFields(
selectedMonthLabel: String,
selectedCategoryLabel: String,
- monthOptions: List,
+ monthOptions: List,
categoryOptions: List,
onMonthSelected: (String?) -> Unit,
onCategorySelected: (String?) -> Unit
diff --git a/app/src/main/java/com/example/flowfi/ui/theme/Color.kt b/app/src/main/java/com/saadproductlabs/mizafi/ui/theme/Color.kt
similarity index 90%
rename from app/src/main/java/com/example/flowfi/ui/theme/Color.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/ui/theme/Color.kt
index 4acdc5f..ccc742b 100644
--- a/app/src/main/java/com/example/flowfi/ui/theme/Color.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/ui/theme/Color.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi.ui.theme
+package com.saadproductlabs.mizafi.ui.theme
import androidx.compose.ui.graphics.Color
diff --git a/app/src/main/java/com/example/flowfi/ui/theme/Theme.kt b/app/src/main/java/com/saadproductlabs/mizafi/ui/theme/Theme.kt
similarity index 96%
rename from app/src/main/java/com/example/flowfi/ui/theme/Theme.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/ui/theme/Theme.kt
index 6a0233f..be4bd5f 100644
--- a/app/src/main/java/com/example/flowfi/ui/theme/Theme.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/ui/theme/Theme.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi.ui.theme
+package com.saadproductlabs.mizafi.ui.theme
import android.app.Activity
import android.os.Build
@@ -34,7 +34,7 @@ private val LightColorScheme = lightColorScheme(
)
@Composable
-fun FlowFiTheme(
+fun MizafiTheme(
darkTheme: Boolean = isSystemInDarkTheme(),
// Dynamic color is available on Android 12+
dynamicColor: Boolean = true,
diff --git a/app/src/main/java/com/example/flowfi/ui/theme/Type.kt b/app/src/main/java/com/saadproductlabs/mizafi/ui/theme/Type.kt
similarity index 95%
rename from app/src/main/java/com/example/flowfi/ui/theme/Type.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/ui/theme/Type.kt
index ca8f5ff..6c93ec6 100644
--- a/app/src/main/java/com/example/flowfi/ui/theme/Type.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/ui/theme/Type.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi.ui.theme
+package com.saadproductlabs.mizafi.ui.theme
import androidx.compose.material3.Typography
import androidx.compose.ui.text.TextStyle
diff --git a/app/src/main/java/com/example/flowfi/ui/util/Formatters.kt b/app/src/main/java/com/saadproductlabs/mizafi/ui/util/Formatters.kt
similarity index 97%
rename from app/src/main/java/com/example/flowfi/ui/util/Formatters.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/ui/util/Formatters.kt
index 578467e..88c562c 100644
--- a/app/src/main/java/com/example/flowfi/ui/util/Formatters.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/ui/util/Formatters.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi.ui.util
+package com.saadproductlabs.mizafi.ui.util
import java.text.NumberFormat
import java.text.SimpleDateFormat
diff --git a/app/src/main/java/com/example/flowfi/util/DateUtils.kt b/app/src/main/java/com/saadproductlabs/mizafi/util/DateUtils.kt
similarity index 98%
rename from app/src/main/java/com/example/flowfi/util/DateUtils.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/util/DateUtils.kt
index 0b13fd2..54a8592 100644
--- a/app/src/main/java/com/example/flowfi/util/DateUtils.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/util/DateUtils.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi.util
+package com.saadproductlabs.mizafi.util
import java.util.Calendar
diff --git a/app/src/main/java/com/example/flowfi/viewmodel/TransactionViewModel.kt b/app/src/main/java/com/saadproductlabs/mizafi/viewmodel/TransactionViewModel.kt
similarity index 82%
rename from app/src/main/java/com/example/flowfi/viewmodel/TransactionViewModel.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/viewmodel/TransactionViewModel.kt
index 7f5d219..1a414ac 100644
--- a/app/src/main/java/com/example/flowfi/viewmodel/TransactionViewModel.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/viewmodel/TransactionViewModel.kt
@@ -1,17 +1,17 @@
-package com.example.flowfi.viewmodel
+package com.saadproductlabs.mizafi.viewmodel
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.example.flowfi.data.entity.SavingsGoalEntity
-import com.example.flowfi.data.entity.TransactionEntity
-import com.example.flowfi.data.entity.TransactionType
-import com.example.flowfi.data.repository.SavingsGoalRepository
-import com.example.flowfi.data.repository.TransactionRepository
-import com.example.flowfi.domain.BehavioralInsight
-import com.example.flowfi.domain.CategoryAnalytics
-import com.example.flowfi.domain.CategorySpend
-import com.example.flowfi.domain.InsightEngine
-import com.example.flowfi.util.DateUtils
+import com.saadproductlabs.mizafi.data.entity.SavingsGoalEntity
+import com.saadproductlabs.mizafi.data.entity.TransactionEntity
+import com.saadproductlabs.mizafi.data.entity.TransactionType
+import com.saadproductlabs.mizafi.data.repository.SavingsGoalRepository
+import com.saadproductlabs.mizafi.data.repository.TransactionRepository
+import com.saadproductlabs.mizafi.domain.BehavioralInsight
+import com.saadproductlabs.mizafi.domain.CategoryAnalytics
+import com.saadproductlabs.mizafi.domain.CategorySpend
+import com.saadproductlabs.mizafi.domain.InsightEngine
+import com.saadproductlabs.mizafi.util.DateUtils
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.combine
diff --git a/app/src/main/java/com/example/flowfi/viewmodel/TransactionViewModelFactory.kt b/app/src/main/java/com/saadproductlabs/mizafi/viewmodel/TransactionViewModelFactory.kt
similarity index 76%
rename from app/src/main/java/com/example/flowfi/viewmodel/TransactionViewModelFactory.kt
rename to app/src/main/java/com/saadproductlabs/mizafi/viewmodel/TransactionViewModelFactory.kt
index acd9b01..de7fccd 100644
--- a/app/src/main/java/com/example/flowfi/viewmodel/TransactionViewModelFactory.kt
+++ b/app/src/main/java/com/saadproductlabs/mizafi/viewmodel/TransactionViewModelFactory.kt
@@ -1,9 +1,9 @@
-package com.example.flowfi.viewmodel
+package com.saadproductlabs.mizafi.viewmodel
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
-import com.example.flowfi.data.repository.SavingsGoalRepository
-import com.example.flowfi.data.repository.TransactionRepository
+import com.saadproductlabs.mizafi.data.repository.SavingsGoalRepository
+import com.saadproductlabs.mizafi.data.repository.TransactionRepository
class TransactionViewModelFactory(
private val transactionRepository: TransactionRepository,
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c8d58d5..4668b84 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,3 +1,3 @@
- FlowFi
+ Mizafi
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 257e6bf..7f5b1dd 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/app/src/test/java/com/example/flowfi/CategoryAnalyticsTest.kt b/app/src/test/java/com/saadproductlabs/mizafi/CategoryAnalyticsTest.kt
similarity index 79%
rename from app/src/test/java/com/example/flowfi/CategoryAnalyticsTest.kt
rename to app/src/test/java/com/saadproductlabs/mizafi/CategoryAnalyticsTest.kt
index 4cd681d..bdf2e68 100644
--- a/app/src/test/java/com/example/flowfi/CategoryAnalyticsTest.kt
+++ b/app/src/test/java/com/saadproductlabs/mizafi/CategoryAnalyticsTest.kt
@@ -1,8 +1,8 @@
-package com.example.flowfi
+package com.saadproductlabs.mizafi
-import com.example.flowfi.data.entity.TransactionEntity
-import com.example.flowfi.data.entity.TransactionType
-import com.example.flowfi.domain.CategoryAnalytics
+import com.saadproductlabs.mizafi.data.entity.TransactionEntity
+import com.saadproductlabs.mizafi.data.entity.TransactionType
+import com.saadproductlabs.mizafi.domain.CategoryAnalytics
import org.junit.Assert.assertEquals
import org.junit.Test
diff --git a/app/src/test/java/com/example/flowfi/ExampleUnitTest.kt b/app/src/test/java/com/saadproductlabs/mizafi/ExampleUnitTest.kt
similarity index 90%
rename from app/src/test/java/com/example/flowfi/ExampleUnitTest.kt
rename to app/src/test/java/com/saadproductlabs/mizafi/ExampleUnitTest.kt
index c658c92..4345004 100644
--- a/app/src/test/java/com/example/flowfi/ExampleUnitTest.kt
+++ b/app/src/test/java/com/saadproductlabs/mizafi/ExampleUnitTest.kt
@@ -1,4 +1,4 @@
-package com.example.flowfi
+package com.saadproductlabs.mizafi
import org.junit.Test
diff --git a/app/src/test/java/com/example/flowfi/FakeSavingsGoalRepository.kt b/app/src/test/java/com/saadproductlabs/mizafi/FakeSavingsGoalRepository.kt
similarity index 82%
rename from app/src/test/java/com/example/flowfi/FakeSavingsGoalRepository.kt
rename to app/src/test/java/com/saadproductlabs/mizafi/FakeSavingsGoalRepository.kt
index 72f0f55..5cab07b 100644
--- a/app/src/test/java/com/example/flowfi/FakeSavingsGoalRepository.kt
+++ b/app/src/test/java/com/saadproductlabs/mizafi/FakeSavingsGoalRepository.kt
@@ -1,7 +1,7 @@
-package com.example.flowfi
+package com.saadproductlabs.mizafi
-import com.example.flowfi.data.entity.SavingsGoalEntity
-import com.example.flowfi.data.repository.SavingsGoalRepository
+import com.saadproductlabs.mizafi.data.entity.SavingsGoalEntity
+import com.saadproductlabs.mizafi.data.repository.SavingsGoalRepository
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
diff --git a/app/src/test/java/com/example/flowfi/FakeTransactionRepository.kt b/app/src/test/java/com/saadproductlabs/mizafi/FakeTransactionRepository.kt
similarity index 86%
rename from app/src/test/java/com/example/flowfi/FakeTransactionRepository.kt
rename to app/src/test/java/com/saadproductlabs/mizafi/FakeTransactionRepository.kt
index 57a8556..e83f080 100644
--- a/app/src/test/java/com/example/flowfi/FakeTransactionRepository.kt
+++ b/app/src/test/java/com/saadproductlabs/mizafi/FakeTransactionRepository.kt
@@ -1,8 +1,8 @@
-package com.example.flowfi
+package com.saadproductlabs.mizafi
-import com.example.flowfi.data.entity.TransactionEntity
-import com.example.flowfi.data.entity.TransactionType
-import com.example.flowfi.data.repository.TransactionRepository
+import com.saadproductlabs.mizafi.data.entity.TransactionEntity
+import com.saadproductlabs.mizafi.data.entity.TransactionType
+import com.saadproductlabs.mizafi.data.repository.TransactionRepository
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.map
diff --git a/app/src/test/java/com/example/flowfi/InsightEngineTest.kt b/app/src/test/java/com/saadproductlabs/mizafi/InsightEngineTest.kt
similarity index 89%
rename from app/src/test/java/com/example/flowfi/InsightEngineTest.kt
rename to app/src/test/java/com/saadproductlabs/mizafi/InsightEngineTest.kt
index 82a93d4..09e1ebc 100644
--- a/app/src/test/java/com/example/flowfi/InsightEngineTest.kt
+++ b/app/src/test/java/com/saadproductlabs/mizafi/InsightEngineTest.kt
@@ -1,10 +1,10 @@
-package com.example.flowfi
+package com.saadproductlabs.mizafi
-import com.example.flowfi.data.entity.TransactionEntity
-import com.example.flowfi.data.entity.TransactionType
-import com.example.flowfi.domain.InsightEngine
-import com.example.flowfi.domain.InsightTone
-import com.example.flowfi.util.DateUtils
+import com.saadproductlabs.mizafi.data.entity.TransactionEntity
+import com.saadproductlabs.mizafi.data.entity.TransactionType
+import com.saadproductlabs.mizafi.domain.InsightEngine
+import com.saadproductlabs.mizafi.domain.InsightTone
+import com.saadproductlabs.mizafi.util.DateUtils
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Test
diff --git a/app/src/test/java/com/example/flowfi/TransactionListFiltersTest.kt b/app/src/test/java/com/saadproductlabs/mizafi/TransactionListFiltersTest.kt
similarity index 93%
rename from app/src/test/java/com/example/flowfi/TransactionListFiltersTest.kt
rename to app/src/test/java/com/saadproductlabs/mizafi/TransactionListFiltersTest.kt
index a693f80..eef8de1 100644
--- a/app/src/test/java/com/example/flowfi/TransactionListFiltersTest.kt
+++ b/app/src/test/java/com/saadproductlabs/mizafi/TransactionListFiltersTest.kt
@@ -1,9 +1,9 @@
-package com.example.flowfi
+package com.saadproductlabs.mizafi
-import com.example.flowfi.data.entity.TransactionEntity
-import com.example.flowfi.data.entity.TransactionType
-import com.example.flowfi.ui.model.TransactionListFilters
-import com.example.flowfi.util.DateUtils
+import com.saadproductlabs.mizafi.data.entity.TransactionEntity
+import com.saadproductlabs.mizafi.data.entity.TransactionType
+import com.saadproductlabs.mizafi.ui.model.TransactionListFilters
+import com.saadproductlabs.mizafi.util.DateUtils
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Test
diff --git a/app/src/test/java/com/example/flowfi/TransactionViewModelRestoreTest.kt b/app/src/test/java/com/saadproductlabs/mizafi/TransactionViewModelRestoreTest.kt
similarity index 88%
rename from app/src/test/java/com/example/flowfi/TransactionViewModelRestoreTest.kt
rename to app/src/test/java/com/saadproductlabs/mizafi/TransactionViewModelRestoreTest.kt
index 0615473..6daac33 100644
--- a/app/src/test/java/com/example/flowfi/TransactionViewModelRestoreTest.kt
+++ b/app/src/test/java/com/saadproductlabs/mizafi/TransactionViewModelRestoreTest.kt
@@ -1,8 +1,8 @@
-package com.example.flowfi
+package com.saadproductlabs.mizafi
-import com.example.flowfi.data.entity.TransactionEntity
-import com.example.flowfi.data.entity.TransactionType
-import com.example.flowfi.viewmodel.TransactionViewModel
+import com.saadproductlabs.mizafi.data.entity.TransactionEntity
+import com.saadproductlabs.mizafi.data.entity.TransactionType
+import com.saadproductlabs.mizafi.viewmodel.TransactionViewModel
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.first
diff --git a/app/src/test/java/com/example/flowfi/TransactionViewModelTest.kt b/app/src/test/java/com/saadproductlabs/mizafi/TransactionViewModelTest.kt
similarity index 58%
rename from app/src/test/java/com/example/flowfi/TransactionViewModelTest.kt
rename to app/src/test/java/com/saadproductlabs/mizafi/TransactionViewModelTest.kt
index 15463a4..89f3616 100644
--- a/app/src/test/java/com/example/flowfi/TransactionViewModelTest.kt
+++ b/app/src/test/java/com/saadproductlabs/mizafi/TransactionViewModelTest.kt
@@ -1,8 +1,8 @@
-package com.example.flowfi
+package com.saadproductlabs.mizafi
-import com.example.flowfi.data.entity.TransactionEntity
-import com.example.flowfi.data.entity.TransactionType
-import com.example.flowfi.util.DateUtils
+import com.saadproductlabs.mizafi.data.entity.TransactionEntity
+import com.saadproductlabs.mizafi.data.entity.TransactionType
+import com.saadproductlabs.mizafi.util.DateUtils
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Test
@@ -17,14 +17,14 @@ class TransactionViewModelTest {
@Test
fun formatAmountForInput_stripsTrailingZero() {
- assertEquals("42", com.example.flowfi.ui.util.formatAmountForInput(42.0))
- assertEquals("12.5", com.example.flowfi.ui.util.formatAmountForInput(12.5))
+ assertEquals("42", com.saadproductlabs.mizafi.ui.util.formatAmountForInput(42.0))
+ assertEquals("12.5", com.saadproductlabs.mizafi.ui.util.formatAmountForInput(12.5))
}
@Test
fun transactionCategories_includesUnknownCategory() {
- val options = com.example.flowfi.ui.model.TransactionCategories.optionsFor(
- com.example.flowfi.data.entity.TransactionType.EXPENSE,
+ val options = com.saadproductlabs.mizafi.ui.model.TransactionCategories.optionsFor(
+ com.saadproductlabs.mizafi.data.entity.TransactionType.EXPENSE,
"Custom"
)
assertEquals("Custom", options.first())
@@ -32,20 +32,20 @@ class TransactionViewModelTest {
@Test
fun formatCurrentMonthYear_isNotBlank() {
- assertTrue(com.example.flowfi.ui.util.formatCurrentMonthYear().isNotBlank())
+ assertTrue(com.saadproductlabs.mizafi.ui.util.formatCurrentMonthYear().isNotBlank())
}
@Test
fun currencyPrefix_isNotBlank() {
- assertTrue(com.example.flowfi.ui.util.currencyPrefix().isNotBlank())
+ assertTrue(com.saadproductlabs.mizafi.ui.util.currencyPrefix().isNotBlank())
}
@Test
fun isValidAmountInput_rejectsInvalidPatterns() {
- assertTrue(com.example.flowfi.ui.util.isValidAmountInput("12.50"))
- assertTrue(com.example.flowfi.ui.util.isValidAmountInput(""))
- assertTrue(!com.example.flowfi.ui.util.isValidAmountInput("12.345"))
- assertTrue(!com.example.flowfi.ui.util.isValidAmountInput("abc"))
+ assertTrue(com.saadproductlabs.mizafi.ui.util.isValidAmountInput("12.50"))
+ assertTrue(com.saadproductlabs.mizafi.ui.util.isValidAmountInput(""))
+ assertTrue(!com.saadproductlabs.mizafi.ui.util.isValidAmountInput("12.345"))
+ assertTrue(!com.saadproductlabs.mizafi.ui.util.isValidAmountInput("abc"))
}
@Test
diff --git a/settings.gradle.kts b/settings.gradle.kts
index bf6a69a..5fb41a1 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -22,6 +22,6 @@ dependencyResolutionManagement {
}
}
-rootProject.name = "FlowFi"
+rootProject.name = "Mizafi"
include(":app")
\ No newline at end of file