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
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import com.example.talkeys_new.screens.events.createEvent.CreateEvent4Screen
import com.example.talkeys_new.screens.events.createEvent.CreateEvent5Screen
import com.example.talkeys_new.screens.events.createEvent.CreateEvent6Screen
import com.example.talkeys_new.screens.events.RegistrationSuccessScreen
import com.example.talkeys_new.screens.events.sharedEventCreationViewModel
import com.example.talkeysapk.screensUI.home.AboutUsScreen
import com.example.talkeysapk.screensUI.home.ContactUsScreen
import com.example.talkeysapk.screensUI.home.TermsAndConditionsScreen
Expand All @@ -35,8 +36,9 @@ import com.example.talkeysapk.screensUI.home.privacyPolicy
@Composable
fun AppNavigation(modifier: Modifier) {
val navController = rememberNavController()
val eventCreationViewModel = sharedEventCreationViewModel()

NavHost(navController = navController, startDestination = "landingpage") {
NavHost(navController = navController, startDestination = "home") {
//composable("splash") { SplashScreen(navController) }
composable("landingpage") { LandingPage(navController) }
composable("signup") { SignUpScreen(navController) }
Expand All @@ -61,12 +63,12 @@ fun AppNavigation(modifier: Modifier) {
composable("screen_not_found"){ScreenNotFound(navController)}

// Create Event Flow
composable("create_event_1") { CreateEvent1Screen(navController) }
composable("create_event_2") { CreateEvent2Screen(navController) }
composable("create_event_3") { CreateEvent3Screen(navController) }
composable("create_event_4") { CreateEvent4Screen(navController) }
composable("create_event_5") { CreateEvent5Screen(navController) }
composable("create_event_6") { CreateEvent6Screen(navController) }
composable("create_event_1") { CreateEvent1Screen(navController, eventCreationViewModel) }
composable("create_event_2") { CreateEvent2Screen(navController, eventCreationViewModel) }
composable("create_event_3") { CreateEvent3Screen(navController, eventCreationViewModel) }
composable("create_event_4") { CreateEvent4Screen(navController, eventCreationViewModel) }
composable("create_event_5") { CreateEvent5Screen(navController, eventCreationViewModel) }
composable("create_event_6") { CreateEvent6Screen(navController, eventCreationViewModel) }
composable("registration_success") { RegistrationSuccessScreen(navController) }

// Event Detail Screen with eventId parameter
Expand Down Expand Up @@ -130,25 +132,7 @@ fun AppNavigation(modifier: Modifier) {
val merchantOrderId = backStackEntry.arguments?.getString("merchantOrderId") ?: ""
val passId = backStackEntry.arguments?.getString("passId") ?: ""

// Decode the URL structure but preserve the token encoding
// Split at "token=" to handle the token separately
val paymentUrl = if (encodedPaymentUrl.contains("token%3D")) {
val parts = encodedPaymentUrl.split("token%3D", limit = 2)
if (parts.size == 2) {
// Decode the URL part before token
val urlPart = parts[0]
.replace("%3A", ":")
.replace("%2F", "/")
.replace("%3F", "?")
// Keep the token part as-is (already properly encoded)
urlPart + "token=" + parts[1]
} else {
encodedPaymentUrl
}
} else {
// Fallback: decode everything
android.net.Uri.decode(encodedPaymentUrl)
}
val paymentUrl = decodePaymentUrlArgument(encodedPaymentUrl)

com.example.talkeys_new.screens.payment.WebViewPaymentScreen(
paymentUrl = paymentUrl,
Expand Down Expand Up @@ -178,3 +162,11 @@ fun AppNavigation(modifier: Modifier) {

}
}

private fun decodePaymentUrlArgument(paymentUrlArgument: String): String {
if (paymentUrlArgument.startsWith("http://") || paymentUrlArgument.startsWith("https://")) {
return paymentUrlArgument
}

return android.net.Uri.decode(paymentUrlArgument)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.example.talkeys_new.screens.events

import android.content.Context
import android.content.Intent
import androidx.navigation.NavController
import com.talkeys.shared.presentation.events.EventPlatformRequest
import com.talkeys.shared.presentation.events.EventsRoute

fun handleEventPlatformRequest(
context: Context,
navController: NavController,
request: EventPlatformRequest
) {
when (request) {
is EventPlatformRequest.ShareEvent -> {
val sendIntent = Intent(Intent.ACTION_SEND).apply {
type = "text/plain"
putExtra(Intent.EXTRA_SUBJECT, request.subject)
putExtra(Intent.EXTRA_TEXT, request.text)
}
context.startActivity(Intent.createChooser(sendIntent, "Share Event"))
}

is EventPlatformRequest.NavigateToEventDetail -> {
navController.navigate("eventDetail/${request.eventId}")
}

is EventPlatformRequest.NavigateToRoute -> {
val route = when (request.route) {
EventsRoute.EventList -> "events"
EventsRoute.EventCreation -> "create_event_1"
}
navController.navigate(route)
}
}
}
Loading