update package name (even bigger one)

This commit is contained in:
2024-07-16 07:02:50 +03:00
parent 4f9e49003b
commit c8b1d72f08
367 changed files with 12 additions and 25 deletions
@@ -0,0 +1,100 @@
package dev.meloda.fast.auth
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.navigation
import dev.meloda.fast.auth.captcha.navigation.captchaScreen
import dev.meloda.fast.auth.captcha.navigation.navigateToCaptcha
import dev.meloda.fast.auth.captcha.navigation.setCaptchaResult
import dev.meloda.fast.auth.validation.model.ValidationArguments
import dev.meloda.fast.auth.validation.navigation.navigateToValidation
import dev.meloda.fast.auth.validation.navigation.setValidationResult
import dev.meloda.fast.auth.validation.navigation.validationScreen
import dev.meloda.fast.auth.userbanned.model.UserBannedArguments
import dev.meloda.fast.auth.userbanned.navigation.navigateToUserBanned
import dev.meloda.fast.auth.userbanned.navigation.userBannedRoute
import com.meloda.fast.auth.login.navigation.Logo
import com.meloda.fast.auth.login.navigation.loginScreen
import com.meloda.fast.auth.login.navigation.navigateToLogin
import kotlinx.serialization.Serializable
import java.net.URLEncoder
@Serializable
object AuthGraph
fun NavGraphBuilder.authNavGraph(
onNavigateToMain: () -> Unit,
navController: NavController
) {
navigation<AuthGraph>(
startDestination = Logo
) {
loginScreen(
onNavigateToCaptcha = { arguments ->
navController.navigateToCaptcha(
captchaImageUrl = URLEncoder.encode(arguments.captchaImageUrl, "utf-8")
)
},
onNavigateToValidation = { arguments ->
navController.navigateToValidation(
ValidationArguments(
validationSid = arguments.validationSid,
redirectUri = URLEncoder.encode(arguments.redirectUri, "utf-8"),
phoneMask = arguments.phoneMask,
validationType = arguments.validationType,
canResendSms = arguments.canResendSms
)
)
},
onNavigateToMain = onNavigateToMain,
onNavigateToUserBanned = { arguments ->
navController.navigateToUserBanned(
UserBannedArguments(
userName = arguments.name,
message = arguments.message,
restoreUrl = arguments.restoreUrl,
accessToken = arguments.accessToken
)
)
},
onNavigateToCredentials = navController::navigateToLogin,
navController = navController
)
validationScreen(
onBack = {
navController.navigateUp()
navController.setValidationResult(null)
},
onResult = { code ->
navController.popBackStack()
navController.setValidationResult(code)
}
)
captchaScreen(
onBack = {
navController.navigateUp()
navController.setCaptchaResult(null)
},
onResult = { code ->
navController.popBackStack()
navController.setCaptchaResult(code)
}
)
userBannedRoute(onBack = navController::navigateUp)
}
}
fun NavController.navigateToAuth(clearBackStack: Boolean = false) {
val navController = this
this.navigate(AuthGraph) {
if (clearBackStack) {
popUpTo(navController.graph.id) {
inclusive = true
}
}
}
}
@@ -0,0 +1,14 @@
package dev.meloda.fast.auth
import dev.meloda.fast.auth.captcha.di.captchaModule
import dev.meloda.fast.auth.validation.di.validationModule
import com.meloda.fast.auth.login.di.loginModule
import org.koin.dsl.module
val authModule = module {
includes(
loginModule,
validationModule,
captchaModule,
)
}