Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
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
1 change: 0 additions & 1 deletion app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
// import org.gradle.api.GradleException
import com.android.build.api.dsl.ApplicationExtension
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import java.io.FileInputStream
import java.text.SimpleDateFormat
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,21 @@ import androidx.navigation3.runtime.rememberSaveableStateHolderNavEntryDecorator
import androidx.navigation3.ui.NavDisplay
import com.jeeldobariya.passcodes.core.datastore.AppSettings
import com.jeeldobariya.passcodes.core.datastore.appDatastore
import com.jeeldobariya.passcodes.core.feature_flags.FeatureFlagsSettings
import com.jeeldobariya.passcodes.core.feature_flags.featureFlagsDatastore
import com.jeeldobariya.passcodes.core.navigation.Route
import com.jeeldobariya.passcodes.password_manager.ui.PasswordManagerScreen
import com.jeeldobariya.passcodes.password_manager.ui.SavePasswordScreen
import com.jeeldobariya.passcodes.password_manager.ui.UpdatePasswordScreen
import com.jeeldobariya.passcodes.ui.AboutScreen
import com.jeeldobariya.passcodes.password_manager.ui.ClassicalLoadPasswordScreen
import com.jeeldobariya.passcodes.password_manager.ui.ClassicalPasswordManagerScreen
import com.jeeldobariya.passcodes.password_manager.ui.ClassicalSavePasswordScreen
import com.jeeldobariya.passcodes.password_manager.ui.ClassicalUpdatePasswordScreen
import com.jeeldobariya.passcodes.password_manager.ui.ClassicalViewPasswordScreen
import com.jeeldobariya.passcodes.password_manager.ui.ModernPasswordManagerScreen
import com.jeeldobariya.passcodes.password_manager.ui.ModernSavePasswordScreen
import com.jeeldobariya.passcodes.password_manager.ui.ModernUpdatePasswordScreen
import com.jeeldobariya.passcodes.ui.ClassicalAboutScreen
import com.jeeldobariya.passcodes.ui.ClassicalMainScreen
import com.jeeldobariya.passcodes.ui.MainScreen
import com.jeeldobariya.passcodes.ui.SettingsScreen
import com.jeeldobariya.passcodes.ui.ClassicalSettingsScreen
import com.jeeldobariya.passcodes.ui.ModernAboutScreen
import com.jeeldobariya.passcodes.ui.ModernMainScreen
import com.jeeldobariya.passcodes.ui.ModernSettingsScreen


@Composable
Expand All @@ -38,34 +43,42 @@ private fun ModernNavigationRoot(backStack: NavBackStack<NavKey>, navigateTo: (R
),
entryProvider = entryProvider {
entry<Route.Home> {
MainScreen(navigateTo)
ModernMainScreen(navigateTo)
}

entry<Route.Settings> {
SettingsScreen()
ModernSettingsScreen()
}

entry<Route.AboutUs> {
AboutScreen()
ModernAboutScreen()
}

entry<Route.PasswordManager> {
PasswordManagerScreen(navigateTo)
ModernPasswordManagerScreen(navigateTo)
}

entry<Route.LoadPassword> {
ModernPasswordManagerScreen(navigateTo)
}

entry<Route.SavePassword> {
SavePasswordScreen()
ModernSavePasswordScreen()
}

entry<Route.ViewPassword> { // Theoretically, Should be treated as `UpdatePassword` Route in Modern Layout...
ModernUpdatePasswordScreen(it.id)
}

entry<Route.UpdatePassword> {
UpdatePasswordScreen(it.id)
ModernUpdatePasswordScreen(it.id)
}
}
)
}

@Composable
private fun ClassicNavigationRoot(backStack: NavBackStack<NavKey>, navigateTo: (Route) -> Unit) {
private fun ClassicalNavigationRoot(backStack: NavBackStack<NavKey>, navigateTo: (Route) -> Unit) {
NavDisplay(
backStack = backStack,
onBack = {
Expand All @@ -77,27 +90,35 @@ private fun ClassicNavigationRoot(backStack: NavBackStack<NavKey>, navigateTo: (
),
entryProvider = entryProvider {
entry<Route.Home> {
ClassicalMainScreen(navigateTo)
ClassicalMainScreen(navigateTo = navigateTo)
}

entry<Route.Settings> {
SettingsScreen()
ClassicalSettingsScreen()
}

entry<Route.AboutUs> {
AboutScreen()
ClassicalAboutScreen()
}

entry<Route.PasswordManager> {
PasswordManagerScreen(navigateTo)
ClassicalPasswordManagerScreen(navigateTo = navigateTo)
}

entry<Route.LoadPassword> {
ClassicalLoadPasswordScreen(navigateTo = navigateTo)
}

entry<Route.SavePassword> {
SavePasswordScreen()
ClassicalSavePasswordScreen()
}

entry<Route.ViewPassword> {
ClassicalViewPasswordScreen(passwordId = it.id, navigateTo = navigateTo)
}

entry<Route.UpdatePassword> {
UpdatePasswordScreen(it.id)
ClassicalUpdatePasswordScreen(passwordId = it.id)
}
}
)
Expand All @@ -110,10 +131,11 @@ fun NavigationRoot() {
val appDataStore = LocalContext.current.appDatastore
val appDatastoreState by appDataStore.data.collectAsState(AppSettings())

fun navigateTo(route: Route): Unit {
fun navigateTo(route: Route) {
backStack.add(route)
}

if (appDatastoreState.isModernLayoutEnable) { ModernNavigationRoot(backStack, ::navigateTo) }
else { ClassicNavigationRoot(backStack, ::navigateTo) }
if (appDatastoreState.isModernLayoutEnable) { ModernNavigationRoot(backStack, ::navigateTo) } else {
ClassicalNavigationRoot(backStack, ::navigateTo)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.jeeldobariya.passcodes.oldui
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.google.android.gms.oss.licenses.OssLicensesMenuActivity
import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity
import com.jeeldobariya.passcodes.core.datastore.appDatastore
import com.jeeldobariya.passcodes.databinding.ActivityLicenseBinding
import kotlinx.coroutines.flow.first
Expand All @@ -12,7 +12,6 @@ import java.io.BufferedReader
import java.io.InputStreamReader

class LicenseActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
runBlocking {
setTheme(appDatastore.data.first().theme)
Expand All @@ -31,7 +30,7 @@ class LicenseActivity : AppCompatActivity() {
e.printStackTrace()
}

binding.thirdPartyBtn.setOnClickListener { v ->
binding.thirdPartyBtn.setOnClickListener { _ ->
val thirdPartyLicenseActivity = Intent(this, OssLicensesMenuActivity::class.java)
startActivity(thirdPartyLicenseActivity)
}
Expand Down
Loading
Loading