Skip to content

Commit

Permalink
Move AccountsDrawerHandler injection back to model
Browse files Browse the repository at this point in the history
  • Loading branch information
rfc2822 committed Jan 15, 2025
1 parent 811338d commit e1ea78e
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ import java.util.logging.Logger
class AccountsModel @AssistedInject constructor(
@Assisted val syncAccountsOnInit: Boolean,
private val accountRepository: AccountRepository,
internal val accountsDrawerHandler: AccountsDrawerHandler,
@ApplicationContext val context: Context,
private val db: AppDatabase,
introPageFactory: IntroPageFactory,
Expand Down
7 changes: 2 additions & 5 deletions app/src/main/kotlin/at/bitfire/davdroid/ui/AccountsScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,7 @@ import kotlinx.coroutines.launch

@Composable
fun AccountsScreen(
initialSyncAccounts: Boolean,
accountsDrawerHandler: AccountsDrawerHandler
initialSyncAccounts: Boolean
) {
val context = LocalContext.current
val activity = context as? Activity
Expand All @@ -100,7 +99,6 @@ fun AccountsScreen(
}

AccountsScreen(
accountsDrawerHandler = accountsDrawerHandler,
initialSyncAccounts = initialSyncAccounts,
onShowAppIntro = {
introActivityLauncher.launch(null)
Expand All @@ -124,7 +122,6 @@ fun AccountsScreen(

@Composable
fun AccountsScreen(
accountsDrawerHandler: AccountsDrawerHandler,
initialSyncAccounts: Boolean,
onShowAppIntro: () -> Unit,
onAddAccount: () -> Unit,
Expand All @@ -151,7 +148,7 @@ fun AccountsScreen(
}

AccountsScreen(
accountsDrawerHandler = accountsDrawerHandler,
accountsDrawerHandler = model.accountsDrawerHandler,
accounts = accounts,
showSyncAll = showSyncAll,
onSyncAll = { model.syncAllAccounts() },
Expand Down
8 changes: 7 additions & 1 deletion app/src/main/kotlin/at/bitfire/davdroid/ui/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,22 @@ import androidx.appcompat.app.AppCompatActivity
import at.bitfire.davdroid.ui.navigation.Destination
import at.bitfire.davdroid.ui.navigation.Navigation
import dagger.hilt.android.AndroidEntryPoint
import java.util.logging.Logger
import javax.inject.Inject

@AndroidEntryPoint
class MainActivity: AppCompatActivity() {

@Inject
lateinit var logger: Logger

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

setContent {
Navigation(
deepLinkUri = intent.data
deepLinkUri = intent.data,
logger = logger
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,16 @@ package at.bitfire.davdroid.ui.navigation
import android.net.Uri
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.ViewModel
import androidx.navigation.NavDeepLinkRequest
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
import androidx.navigation.toRoute
import at.bitfire.davdroid.ui.AccountsDrawerHandler
import at.bitfire.davdroid.ui.AccountsScreen
import dagger.hilt.android.lifecycle.HiltViewModel
import java.util.logging.Logger
import javax.inject.Inject

@Composable
fun Navigation(deepLinkUri: Uri?) {
val model = hiltViewModel<NavigationModel>()
Navigation_WithModel(
deepLinkUri = deepLinkUri,
accountsDrawerHandler = model.accountsDrawerHandler,
logger = model.logger,
)
}

@Composable
private fun Navigation_WithModel(
deepLinkUri: Uri?,
accountsDrawerHandler: AccountsDrawerHandler,
logger: Logger
) {
fun Navigation(deepLinkUri: Uri?, logger: Logger) {
val navController = rememberNavController()

LaunchedEffect(Unit) {
Expand All @@ -55,16 +36,8 @@ private fun Navigation_WithModel(
) { backStackEntry ->
val route = backStackEntry.toRoute<Destination.Accounts>()
AccountsScreen(
initialSyncAccounts = route.syncAccounts,
accountsDrawerHandler = accountsDrawerHandler
initialSyncAccounts = route.syncAccounts
)
}
}
}

// only for dependency injection
@HiltViewModel
class NavigationModel @Inject constructor(
val accountsDrawerHandler: AccountsDrawerHandler,
val logger: Logger
): ViewModel()
}

0 comments on commit e1ea78e

Please sign in to comment.