Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 27 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down Expand Up @@ -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"
Expand All @@ -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)

Expand All @@ -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
Expand All @@ -168,7 +192,7 @@ dependencies {
implementation(libs.bundles.lifecycle)

// Dependency Injection
implementation(libs.koin)
implementation(libs.bundles.koin)


// --- Testing ---
Expand All @@ -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.
}
30 changes: 17 additions & 13 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,26 @@
tools:targetApi="33">
<activity
android:name=".ui.MainActivity"
android:exported="true">
android:exported="true"
android:theme="@style/PasscodesTheme.Default">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name=".ui.PasswordManagerActivity" />
<activity android:name=".ui.SavePasswordActivity" />
<activity android:name=".ui.LoadPasswordActivity" />
<activity android:name=".ui.ViewPasswordActivity" />
<activity android:name=".ui.UpdatePasswordActivity" />
<activity android:name=".ui.SettingsActivity" />
<activity android:name=".ui.AboutUsActivity" />
<activity android:name=".ui.LicenseActivity" />
<activity
android:name=".oldui.MainActivity"
android:exported="true">
</activity>
<activity android:name=".oldui.PasswordManagerActivity" />
<activity android:name=".oldui.SavePasswordActivity" />
<activity android:name=".oldui.LoadPasswordActivity" />
<activity android:name=".oldui.ViewPasswordActivity" />
<activity android:name=".oldui.UpdatePasswordActivity" />
<activity android:name=".oldui.SettingsActivity" />
<activity android:name=".oldui.AboutUsActivity" />
<activity android:name=".oldui.LicenseActivity" />
<activity android:name=".autofill.AutofillSettingsActivity" />

<service
Expand All @@ -46,9 +50,9 @@

<service
android:name=".autofill.PasswordAutofillService"
android:exported="true"
android:label="@string/app_name"
android:permission="android.permission.BIND_AUTOFILL_SERVICE"
android:exported="true">
android:permission="android.permission.BIND_AUTOFILL_SERVICE">
<intent-filter>
<action android:name="android.service.autofill.AutofillService" />
</intent-filter>
Expand All @@ -59,4 +63,4 @@
</service>
</application>

</manifest>
</manifest>
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

import android.content.Intent
import android.os.Bundle
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

import android.content.Intent
import android.os.Bundle
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

sealed interface LoadPasswordAction {
data object RefreshPassword: LoadPasswordAction
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

import android.content.Intent
import android.os.Bundle
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

import com.jeeldobariya.passcodes.database.Password

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
Expand Down
Original file line number Diff line number Diff line change
@@ -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<String>, 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)
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

import android.content.Intent
import android.os.Bundle
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

sealed interface SavePasswordAction {
data class OnChangeDomain(val newDomain: String): SavePasswordAction
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

data class SavePasswordState(
val domain: String = "",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

sealed interface UpdatePasswordAction {
data class OnChangeDomain(val newDomain: String): UpdatePasswordAction
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

import android.app.AlertDialog
import android.os.Bundle
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

data class UpdatePasswordState(
val domain: String = "",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

sealed interface ViewPasswordAction {
data class LoadPassword(val passwordId: Int): ViewPasswordAction
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

import android.app.AlertDialog
import android.content.ClipData
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

data class ViewPasswordState(
val domain: String = "",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui
package com.jeeldobariya.passcodes.oldui

import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.jeeldobariya.passcodes.ui.adapter
package com.jeeldobariya.passcodes.oldui.adapter

import android.content.Context
import android.view.LayoutInflater
Expand Down
Loading
Loading