diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 9a29d6e4..d71aa566 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -7,6 +7,7 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
+ alias(libs.plugins.compose.compiler)
alias(libs.plugins.ksp)
alias(libs.plugins.oss.licenses)
}
@@ -135,8 +136,19 @@ android {
buildFeatures {
viewBinding = true
buildConfig = true
+ compose = true
}
}
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_11
+ targetCompatibility = JavaVersion.VERSION_11
+ }
+ kotlinOptions {
+ jvmTarget = "11"
+ }
+ buildFeatures {
+ compose = true
+ }
ksp {
val location = "$projectDir/schemas"
@@ -145,6 +157,17 @@ android {
}
dependencies {
+ // Jetpack Compose
+ implementation(libs.bundles.compose)
+ implementation(platform(libs.compose.bom))
+ implementation(libs.androidx.ui)
+ implementation(libs.androidx.ui.graphics)
+ androidTestImplementation(libs.androidx.ui.test.junit4)
+ debugImplementation(libs.bundles.compose.debug)
+
+ // Navigation 3
+ implementation(libs.bundles.navigation3)
+
// Standard Kotlin Libraries
implementation(libs.kotlin.stdlib)
@@ -155,6 +178,7 @@ dependencies {
// Data/Persistence (Room Bundle)
implementation(libs.bundles.room)
+ debugImplementation(libs.androidx.ui.test.manifest)
ksp(libs.room.compiler)
// Networking/Parsing
@@ -168,7 +192,7 @@ dependencies {
implementation(libs.bundles.lifecycle)
// Dependency Injection
- implementation(libs.koin)
+ implementation(libs.bundles.koin)
// --- Testing ---
@@ -177,8 +201,9 @@ dependencies {
testImplementation(libs.bundles.unit.test)
// Android Instrumented Testing (Android Test Bundle)
+ androidTestImplementation(platform(libs.compose.bom))
androidTestImplementation(libs.bundles.android.test)
androidTestImplementation(libs.room.testing)
- androidTestImplementation(libs.coroutines.test)
+ androidTestImplementation(libs.bundles.coroutines.test)
androidTestImplementation(libs.truth) // Keeping truth explicit for androidTest, though it's in both bundles.
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2c896861..fc3da90e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -17,22 +17,26 @@
tools:targetApi="33">
+ android:exported="true"
+ android:theme="@style/PasscodesTheme.Default">
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ android:permission="android.permission.BIND_AUTOFILL_SERVICE">
@@ -59,4 +63,4 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/di/appModule.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/di/appModule.kt
index 04dc71b1..65f10a1c 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/di/appModule.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/di/appModule.kt
@@ -1,9 +1,9 @@
package com.jeeldobariya.passcodes.di
-import com.jeeldobariya.passcodes.ui.LoadPasswordViewModel
-import com.jeeldobariya.passcodes.ui.SavePasswordViewModel
-import com.jeeldobariya.passcodes.ui.UpdatePasswordViewModel
-import com.jeeldobariya.passcodes.ui.ViewPasswordViewModel
+import com.jeeldobariya.passcodes.oldui.LoadPasswordViewModel
+import com.jeeldobariya.passcodes.oldui.SavePasswordViewModel
+import com.jeeldobariya.passcodes.oldui.UpdatePasswordViewModel
+import com.jeeldobariya.passcodes.oldui.ViewPasswordViewModel
import com.jeeldobariya.passcodes.utils.Controller
import org.koin.android.ext.koin.androidContext
import org.koin.core.module.dsl.viewModel
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/AboutUsActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/AboutUsActivity.kt
similarity index 97%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/AboutUsActivity.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/AboutUsActivity.kt
index 8fb28137..c4ef8a2d 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/AboutUsActivity.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/AboutUsActivity.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
import android.content.Intent
import android.os.Bundle
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LicenseActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/LicenseActivity.kt
similarity index 96%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LicenseActivity.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/LicenseActivity.kt
index 7cb9ad01..d31bd781 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LicenseActivity.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/LicenseActivity.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
import android.content.Intent
import android.os.Bundle
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordAction.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/LoadPasswordAction.kt
similarity index 69%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordAction.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/LoadPasswordAction.kt
index 332a9995..ff18f46f 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordAction.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/LoadPasswordAction.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
sealed interface LoadPasswordAction {
data object RefreshPassword: LoadPasswordAction
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/LoadPasswordActivity.kt
similarity index 96%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordActivity.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/LoadPasswordActivity.kt
index 408e6ede..ef30c244 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordActivity.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/LoadPasswordActivity.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
import android.content.Intent
import android.os.Bundle
@@ -8,7 +8,7 @@ import androidx.core.view.WindowCompat
import com.jeeldobariya.passcodes.R
import com.jeeldobariya.passcodes.database.Password
import com.jeeldobariya.passcodes.databinding.ActivityLoadPasswordBinding
-import com.jeeldobariya.passcodes.ui.adapter.PasswordAdapter
+import com.jeeldobariya.passcodes.oldui.adapter.PasswordAdapter
import com.jeeldobariya.passcodes.utils.CommonUtils
import com.jeeldobariya.passcodes.utils.collectLatestLifecycleFlow
import org.koin.androidx.viewmodel.ext.android.viewModel
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordState.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/LoadPasswordState.kt
similarity index 81%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordState.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/LoadPasswordState.kt
index f18b8942..e017cb43 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordState.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/LoadPasswordState.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
import com.jeeldobariya.passcodes.database.Password
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordViewModel.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/LoadPasswordViewModel.kt
similarity index 96%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordViewModel.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/LoadPasswordViewModel.kt
index 7d09adaa..28a50813 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordViewModel.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/LoadPasswordViewModel.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/MainActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/MainActivity.kt
new file mode 100644
index 00000000..0c6a9fb1
--- /dev/null
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/MainActivity.kt
@@ -0,0 +1,80 @@
+package com.jeeldobariya.passcodes.oldui
+
+import android.content.Intent
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.WindowCompat
+import androidx.lifecycle.lifecycleScope
+import com.jeeldobariya.passcodes.BuildConfig
+import com.jeeldobariya.passcodes.databinding.ActivityMainBinding
+import com.jeeldobariya.passcodes.utils.CommonUtils
+import com.jeeldobariya.passcodes.utils.UpdateChecker
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+
+// import com.jeeldobariya.passcodes.utils.Permissions
+
+class MainActivity : AppCompatActivity() {
+
+ // private lateinit var permissionsHandle: Permissions
+
+ private lateinit var binding: ActivityMainBinding
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ CommonUtils.updateCurrTheme(this)
+ super.onCreate(savedInstanceState)
+ binding = ActivityMainBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+
+ lifecycleScope.launch(Dispatchers.IO) {
+ UpdateChecker.checkVersion(this@MainActivity, BuildConfig.VERSION_NAME)
+ }
+
+ // Add event onclick listener
+ addOnClickListenerOnButton()
+
+ // Make window fullscreen
+ WindowCompat.setDecorFitsSystemWindows(window, false)
+
+ /* Comment the code as permission is not need to write into app data dir.
+ // Check and request permission when the app is first opened
+ permissionsHandle = Permissions(this)
+ if (!permissionsHandle.checkPermission()) permissionsHandle.requestPermission()
+ */
+ }
+
+ /* Comment the code as permission is not need to write into app data dir.
+ override fun onRequestPermissionsResult(
+ requestCode: Int, permissions: Array, grantResults: IntArray
+ ) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults)
+ if (requestCode == Permissions.PERMISSION_REQUEST_CODE) {
+ if (permissionsHandle.isPermissionGranted(grantResults)) {
+ // Permission has been granted
+ Toast.makeText(this, getString(R.string.permission_granted), Toast.LENGTH_LONG).show()
+ } else {
+ // Permission not granted
+ Toast.makeText(this, getString(R.string.permission_denied), Toast.LENGTH_LONG).show()
+ }
+ }
+ }
+ */
+
+ // Added all the onclick event listeners
+ private fun addOnClickListenerOnButton() {
+ binding.passwordManagerBtn.setOnClickListener {
+ val passwordManagerIntent = Intent(this, PasswordManagerActivity::class.java)
+ startActivity(passwordManagerIntent)
+ }
+
+ binding.settingBtn.setOnClickListener {
+ val settingIntent = Intent(this, SettingsActivity::class.java)
+ startActivity(settingIntent)
+ }
+
+ binding.aboutUsBtn.setOnClickListener {
+ val aboutUsIntent = Intent(this, AboutUsActivity::class.java)
+ startActivity(aboutUsIntent)
+ }
+ }
+}
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/PasswordManagerActivity.kt
similarity index 99%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/PasswordManagerActivity.kt
index e28777d2..f13ee291 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/PasswordManagerActivity.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
import android.content.Intent
import android.os.Bundle
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordAction.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/SavePasswordAction.kt
similarity index 90%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordAction.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/SavePasswordAction.kt
index 7bf6105d..14634ce5 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordAction.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/SavePasswordAction.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
sealed interface SavePasswordAction {
data class OnChangeDomain(val newDomain: String): SavePasswordAction
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/SavePasswordActivity.kt
similarity index 98%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordActivity.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/SavePasswordActivity.kt
index a17990c8..9833cade 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordActivity.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/SavePasswordActivity.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordState.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/SavePasswordState.kt
similarity index 81%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordState.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/SavePasswordState.kt
index 01d1274c..8cd30a14 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordState.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/SavePasswordState.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
data class SavePasswordState(
val domain: String = "",
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordViewModel.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/SavePasswordViewModel.kt
similarity index 97%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordViewModel.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/SavePasswordViewModel.kt
index 0fb9759e..2fce6577 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordViewModel.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/SavePasswordViewModel.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SettingsActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/SettingsActivity.kt
similarity index 98%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SettingsActivity.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/SettingsActivity.kt
index ff164a16..76adb186 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/SettingsActivity.kt
@@ -1,6 +1,5 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
-import android.content.Context
import android.os.Bundle
import android.view.View
import android.widget.AdapterView
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordAction.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/UpdatePasswordAction.kt
similarity index 91%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordAction.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/UpdatePasswordAction.kt
index 98fd3742..7ef3f60b 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordAction.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/UpdatePasswordAction.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
sealed interface UpdatePasswordAction {
data class OnChangeDomain(val newDomain: String): UpdatePasswordAction
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/UpdatePasswordActivity.kt
similarity index 98%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordActivity.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/UpdatePasswordActivity.kt
index 172b5559..4824b8f6 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordActivity.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/UpdatePasswordActivity.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
import android.app.AlertDialog
import android.os.Bundle
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordState.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/UpdatePasswordState.kt
similarity index 82%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordState.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/UpdatePasswordState.kt
index 1b4cefaa..767dd9af 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordState.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/UpdatePasswordState.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
data class UpdatePasswordState(
val domain: String = "",
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordViewModel.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/UpdatePasswordViewModel.kt
similarity index 98%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordViewModel.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/UpdatePasswordViewModel.kt
index 050d75ba..715a9b45 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordViewModel.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/UpdatePasswordViewModel.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordAction.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/ViewPasswordAction.kt
similarity index 87%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordAction.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/ViewPasswordAction.kt
index 7c71544f..e40b9a90 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordAction.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/ViewPasswordAction.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
sealed interface ViewPasswordAction {
data class LoadPassword(val passwordId: Int): ViewPasswordAction
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/ViewPasswordActivity.kt
similarity index 98%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordActivity.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/ViewPasswordActivity.kt
index e927e5d1..6244bcd5 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordActivity.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/ViewPasswordActivity.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
import android.app.AlertDialog
import android.content.ClipData
@@ -10,7 +10,6 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.WindowCompat
import com.jeeldobariya.passcodes.R
import com.jeeldobariya.passcodes.databinding.ActivityViewPasswordBinding
-import com.jeeldobariya.passcodes.flags.FeatureFlagManager
import com.jeeldobariya.passcodes.utils.CommonUtils
import com.jeeldobariya.passcodes.utils.collectLatestLifecycleFlow
import kotlinx.coroutines.runBlocking
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordState.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/ViewPasswordState.kt
similarity index 84%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordState.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/ViewPasswordState.kt
index e5e7b099..3809af97 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordState.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/ViewPasswordState.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
data class ViewPasswordState(
val domain: String = "",
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordViewModel.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/ViewPasswordViewModel.kt
similarity index 97%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordViewModel.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/ViewPasswordViewModel.kt
index d27279e2..579365d7 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordViewModel.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/ViewPasswordViewModel.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui
+package com.jeeldobariya.passcodes.oldui
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/adapter/PasswordAdapter.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/adapter/PasswordAdapter.kt
similarity index 97%
rename from app/src/main/kotlin/com/jeeldobariya/passcodes/ui/adapter/PasswordAdapter.kt
rename to app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/adapter/PasswordAdapter.kt
index 3336e860..249fa700 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/adapter/PasswordAdapter.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/oldui/adapter/PasswordAdapter.kt
@@ -1,4 +1,4 @@
-package com.jeeldobariya.passcodes.ui.adapter
+package com.jeeldobariya.passcodes.oldui.adapter
import android.content.Context
import android.view.LayoutInflater
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt
index 1789a3f8..07c80f09 100644
--- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt
@@ -2,79 +2,84 @@ package com.jeeldobariya.passcodes.ui
import android.content.Intent
import android.os.Bundle
-import androidx.appcompat.app.AppCompatActivity
-import androidx.core.view.WindowCompat
-import androidx.lifecycle.lifecycleScope
-import com.jeeldobariya.passcodes.BuildConfig
-import com.jeeldobariya.passcodes.databinding.ActivityMainBinding
-import com.jeeldobariya.passcodes.utils.CommonUtils
-import com.jeeldobariya.passcodes.utils.UpdateChecker
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.launch
-
-// import com.jeeldobariya.passcodes.utils.Permissions
-
-class MainActivity : AppCompatActivity() {
-
- // private lateinit var permissionsHandle: Permissions
-
- private lateinit var binding: ActivityMainBinding
+import androidx.activity.ComponentActivity
+import androidx.activity.compose.setContent
+import androidx.activity.enableEdgeToEdge
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.padding
+import androidx.compose.material3.Button
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.jeeldobariya.passcodes.ui.ui.theme.PasscodesTheme
+class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
- CommonUtils.updateCurrTheme(this)
super.onCreate(savedInstanceState)
- binding = ActivityMainBinding.inflate(layoutInflater)
- setContentView(binding.root)
-
- lifecycleScope.launch(Dispatchers.IO) {
- UpdateChecker.checkVersion(this@MainActivity, BuildConfig.VERSION_NAME)
+ enableEdgeToEdge()
+ setContent {
+ PasscodesTheme {
+ MainScreen {
+ val loginIntent = Intent(this@MainActivity, com.jeeldobariya.passcodes.oldui.MainActivity::class.java)
+ startActivity(loginIntent)
+ }
+ }
}
-
- // Add event onclick listener
- addOnClickListenerOnButton()
-
- // Make window fullscreen
- WindowCompat.setDecorFitsSystemWindows(window, false)
-
- /* Comment the code as permission is not need to write into app data dir.
- // Check and request permission when the app is first opened
- permissionsHandle = Permissions(this)
- if (!permissionsHandle.checkPermission()) permissionsHandle.requestPermission()
- */
}
+}
- /* Comment the code as permission is not need to write into app data dir.
- override fun onRequestPermissionsResult(
- requestCode: Int, permissions: Array, grantResults: IntArray
+@Composable
+fun MainScreen(navigateToOldUi: () -> Unit) {
+ Surface(
+ color = MaterialTheme.colorScheme.surface,
+ modifier = Modifier.fillMaxSize(),
+ tonalElevation = 5.dp
+ ) {
+ Column(
+ modifier = Modifier
+ .fillMaxSize()
+ .padding(24.dp),
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally
) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults)
- if (requestCode == Permissions.PERMISSION_REQUEST_CODE) {
- if (permissionsHandle.isPermissionGranted(grantResults)) {
- // Permission has been granted
- Toast.makeText(this, getString(R.string.permission_granted), Toast.LENGTH_LONG).show()
- } else {
- // Permission not granted
- Toast.makeText(this, getString(R.string.permission_denied), Toast.LENGTH_LONG).show()
- }
+ Text("Passcodes", fontSize = 24.sp)
+ Text("You are on New Jetpack UI")
+
+ Spacer(Modifier.padding(12.dp))
+
+ Button(
+ onClick = navigateToOldUi
+ ) {
+ Text("Back To Old UI", fontSize = 20.sp)
+ }
+ Button(
+ onClick = navigateToOldUi
+ ) {
+ Text("Continue New UI", fontSize = 20.sp)
}
- }
- */
- // Added all the onclick event listeners
- private fun addOnClickListenerOnButton() {
- binding.passwordManagerBtn.setOnClickListener {
- val passwordManagerIntent = Intent(this, PasswordManagerActivity::class.java)
- startActivity(passwordManagerIntent)
- }
+ Spacer(Modifier.padding(12.dp))
- binding.settingBtn.setOnClickListener {
- val settingIntent = Intent(this, SettingsActivity::class.java)
- startActivity(settingIntent)
+ Text("Jetpack UI Is Under Development", fontSize = 6.sp)
}
+ }
+}
- binding.aboutUsBtn.setOnClickListener {
- val aboutUsIntent = Intent(this, AboutUsActivity::class.java)
- startActivity(aboutUsIntent)
+@Preview(showBackground = true)
+@Composable
+fun GreetingPreview() {
+ PasscodesTheme {
+ MainScreen {
+ Unit
}
}
}
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ui/theme/Color.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ui/theme/Color.kt
new file mode 100644
index 00000000..4ed93138
--- /dev/null
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ui/theme/Color.kt
@@ -0,0 +1,11 @@
+package com.jeeldobariya.passcodes.ui.ui.theme
+
+import androidx.compose.ui.graphics.Color
+
+val Purple80 = Color(0xFFD0BCFF)
+val PurpleGrey80 = Color(0xFFCCC2DC)
+val Pink80 = Color(0xFFEFB8C8)
+
+val Purple40 = Color(0xFF6650a4)
+val PurpleGrey40 = Color(0xFF625b71)
+val Pink40 = Color(0xFF7D5260)
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ui/theme/Theme.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ui/theme/Theme.kt
new file mode 100644
index 00000000..047c32fc
--- /dev/null
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ui/theme/Theme.kt
@@ -0,0 +1,57 @@
+package com.jeeldobariya.passcodes.ui.ui.theme
+
+import android.os.Build
+import androidx.compose.foundation.isSystemInDarkTheme
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.darkColorScheme
+import androidx.compose.material3.dynamicDarkColorScheme
+import androidx.compose.material3.dynamicLightColorScheme
+import androidx.compose.material3.lightColorScheme
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.platform.LocalContext
+
+private val DarkColorScheme = darkColorScheme(
+ primary = Purple80,
+ secondary = PurpleGrey80,
+ tertiary = Pink80
+)
+
+private val LightColorScheme = lightColorScheme(
+ primary = Purple40,
+ secondary = PurpleGrey40,
+ tertiary = Pink40
+
+ /* Other default colors to override
+ background = Color(0xFFFFFBFE),
+ surface = Color(0xFFFFFBFE),
+ onPrimary = Color.White,
+ onSecondary = Color.White,
+ onTertiary = Color.White,
+ onBackground = Color(0xFF1C1B1F),
+ onSurface = Color(0xFF1C1B1F),
+ */
+)
+
+@Composable
+fun PasscodesTheme(
+ darkTheme: Boolean = isSystemInDarkTheme(),
+ // Dynamic color is available on Android 12+
+ dynamicColor: Boolean = true,
+ content: @Composable () -> Unit
+) {
+ val colorScheme = when {
+ dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
+ val context = LocalContext.current
+ if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
+ }
+
+ darkTheme -> DarkColorScheme
+ else -> LightColorScheme
+ }
+
+ MaterialTheme(
+ colorScheme = colorScheme,
+ typography = Typography,
+ content = content
+ )
+}
diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ui/theme/Type.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ui/theme/Type.kt
new file mode 100644
index 00000000..f456b139
--- /dev/null
+++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ui/theme/Type.kt
@@ -0,0 +1,34 @@
+package com.jeeldobariya.passcodes.ui.ui.theme
+
+import androidx.compose.material3.Typography
+import androidx.compose.ui.text.TextStyle
+import androidx.compose.ui.text.font.FontFamily
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.unit.sp
+
+// Set of Material typography styles to start with
+val Typography = Typography(
+ bodyLarge = TextStyle(
+ fontFamily = FontFamily.Default,
+ fontWeight = FontWeight.Normal,
+ fontSize = 16.sp,
+ lineHeight = 24.sp,
+ letterSpacing = 0.5.sp
+ )
+ /* Other default text styles to override
+ titleLarge = TextStyle(
+ fontFamily = FontFamily.Default,
+ fontWeight = FontWeight.Normal,
+ fontSize = 22.sp,
+ lineHeight = 28.sp,
+ letterSpacing = 0.sp
+ ),
+ labelSmall = TextStyle(
+ fontFamily = FontFamily.Default,
+ fontWeight = FontWeight.Medium,
+ fontSize = 11.sp,
+ lineHeight = 16.sp,
+ letterSpacing = 0.5.sp
+ )
+ */
+)
diff --git a/app/src/main/res/layout/activity_about_us.xml b/app/src/main/res/layout/activity_about_us.xml
index 21e2f66a..5800c4a9 100644
--- a/app/src/main/res/layout/activity_about_us.xml
+++ b/app/src/main/res/layout/activity_about_us.xml
@@ -5,7 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorSurface"
- tools:context=".ui.AboutUsActivity">
+ tools:context=".oldui.AboutUsActivity">
+ tools:context=".oldui.LicenseActivity">
+ tools:context=".oldui.SettingsActivity">