|
@@ -46,6 +46,7 @@ import androidx.compose.runtime.livedata.observeAsState
|
|
import androidx.compose.runtime.mutableFloatStateOf
|
|
import androidx.compose.runtime.mutableFloatStateOf
|
|
import androidx.compose.runtime.mutableStateOf
|
|
import androidx.compose.runtime.mutableStateOf
|
|
import androidx.compose.runtime.remember
|
|
import androidx.compose.runtime.remember
|
|
|
|
+import androidx.compose.runtime.rememberCoroutineScope
|
|
import androidx.compose.runtime.rememberUpdatedState
|
|
import androidx.compose.runtime.rememberUpdatedState
|
|
import androidx.compose.runtime.setValue
|
|
import androidx.compose.runtime.setValue
|
|
import androidx.compose.ui.Alignment
|
|
import androidx.compose.ui.Alignment
|
|
@@ -77,6 +78,7 @@ import com.android.billingclient.api.BillingClientStateListener
|
|
import com.android.billingclient.api.BillingResult
|
|
import com.android.billingclient.api.BillingResult
|
|
import com.android.billingclient.api.PurchasesUpdatedListener
|
|
import com.android.billingclient.api.PurchasesUpdatedListener
|
|
import com.android.billingclient.api.SkuDetails
|
|
import com.android.billingclient.api.SkuDetails
|
|
|
|
+import com.vpn.fastestvpnservice.MainActivity
|
|
import com.vpn.fastestvpnservice.R
|
|
import com.vpn.fastestvpnservice.R
|
|
import com.vpn.fastestvpnservice.beans.DataResponse
|
|
import com.vpn.fastestvpnservice.beans.DataResponse
|
|
import com.vpn.fastestvpnservice.beans.ProductFeatures
|
|
import com.vpn.fastestvpnservice.beans.ProductFeatures
|
|
@@ -88,12 +90,14 @@ import com.vpn.fastestvpnservice.customItems.SubscriptionPackageItem
|
|
import com.vpn.fastestvpnservice.customItems.getSelectedPosition
|
|
import com.vpn.fastestvpnservice.customItems.getSelectedPosition
|
|
import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
|
|
import com.vpn.fastestvpnservice.helpers.BasePreferenceHelper
|
|
import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.OnLifecycleEvent
|
|
import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.OnLifecycleEvent
|
|
|
|
+import com.vpn.fastestvpnservice.screens.bottomNavBarScreens.onServer
|
|
import com.vpn.fastestvpnservice.sealedClass.BottomBarScreen
|
|
import com.vpn.fastestvpnservice.sealedClass.BottomBarScreen
|
|
import com.vpn.fastestvpnservice.sealedClass.Screen
|
|
import com.vpn.fastestvpnservice.sealedClass.Screen
|
|
import com.vpn.fastestvpnservice.ui.theme.FastestVPNTheme
|
|
import com.vpn.fastestvpnservice.ui.theme.FastestVPNTheme
|
|
import com.vpn.fastestvpnservice.ui.theme.customTypography2
|
|
import com.vpn.fastestvpnservice.ui.theme.customTypography2
|
|
import com.vpn.fastestvpnservice.utils.Utils
|
|
import com.vpn.fastestvpnservice.utils.Utils
|
|
import com.vpn.fastestvpnservice.viewmodels.BillingViewModel
|
|
import com.vpn.fastestvpnservice.viewmodels.BillingViewModel
|
|
|
|
+import com.vpn.fastestvpnservice.viewmodels.HomeViewModel
|
|
import com.vpn.fastestvpnservice.viewmodels.SubscriptionViewModel
|
|
import com.vpn.fastestvpnservice.viewmodels.SubscriptionViewModel
|
|
import kotlinx.coroutines.delay
|
|
import kotlinx.coroutines.delay
|
|
import kotlin.random.Random
|
|
import kotlin.random.Random
|
|
@@ -104,7 +108,6 @@ import kotlin.random.nextInt
|
|
@Composable
|
|
@Composable
|
|
fun SubscriptionScreen(navHostController: NavHostController, activity: ComponentActivity)
|
|
fun SubscriptionScreen(navHostController: NavHostController, activity: ComponentActivity)
|
|
{
|
|
{
|
|
-
|
|
|
|
val context = LocalContext.current
|
|
val context = LocalContext.current
|
|
val subscriptionViewModel: SubscriptionViewModel = viewModel{
|
|
val subscriptionViewModel: SubscriptionViewModel = viewModel{
|
|
SubscriptionViewModel(context = context, activity)
|
|
SubscriptionViewModel(context = context, activity)
|
|
@@ -113,6 +116,11 @@ fun SubscriptionScreen(navHostController: NavHostController, activity: Component
|
|
var skuDetailsList: List<SkuDetails>? = null
|
|
var skuDetailsList: List<SkuDetails>? = null
|
|
val basePreferenceHelper = BasePreferenceHelper(context)
|
|
val basePreferenceHelper = BasePreferenceHelper(context)
|
|
var isLoaderShow by remember { mutableStateOf(true) }
|
|
var isLoaderShow by remember { mutableStateOf(true) }
|
|
|
|
+ var isSubscriptionServerClicked by remember { mutableStateOf(false) }
|
|
|
|
+ val scope = rememberCoroutineScope()
|
|
|
|
+ val homeViewModel: HomeViewModel = viewModel {
|
|
|
|
+ HomeViewModel(context, scope)
|
|
|
|
+ }
|
|
|
|
|
|
Box(
|
|
Box(
|
|
modifier = Modifier
|
|
modifier = Modifier
|
|
@@ -122,6 +130,7 @@ fun SubscriptionScreen(navHostController: NavHostController, activity: Component
|
|
|
|
|
|
LaunchedEffect(key1 = true) {
|
|
LaunchedEffect(key1 = true) {
|
|
Log.d("test_api_response_p", "Products API called!")
|
|
Log.d("test_api_response_p", "Products API called!")
|
|
|
|
+ MainActivity.isStopSubscriptionNavigation = true
|
|
subscriptionViewModel.getProducts(onProductResult = {
|
|
subscriptionViewModel.getProducts(onProductResult = {
|
|
isLoaderShow = false
|
|
isLoaderShow = false
|
|
})
|
|
})
|
|
@@ -222,28 +231,34 @@ fun SubscriptionScreen(navHostController: NavHostController, activity: Component
|
|
|
|
|
|
val skuDetailsListsSubs = subscriptionViewModel.liveDataSkuDetails.observeAsState().value
|
|
val skuDetailsListsSubs = subscriptionViewModel.liveDataSkuDetails.observeAsState().value
|
|
|
|
|
|
- Button(
|
|
|
|
|
|
+ if (isSubscriptionServerClicked) {
|
|
|
|
+ val server = basePreferenceHelper.getSubscriptionServerObject()
|
|
|
|
+ Log.d("getSubscriptionServer", "server = ${server?.server_name}")
|
|
|
|
+ Log.d("ServerCallbacks", "isServerClicked $isSubscriptionServerClicked")
|
|
|
|
+ if (server != null) {
|
|
|
|
+ onServer.onServerSelected(
|
|
|
|
+ context,
|
|
|
|
+ homeViewModel,
|
|
|
|
+ onClick = { isSubscriptionServerClicked = false },
|
|
|
|
+ true,
|
|
|
|
+ server
|
|
|
|
+ )
|
|
|
|
+ navHostController.popBackStack(BottomBarScreen.Home.route, false)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ Button(
|
|
onClick = {
|
|
onClick = {
|
|
selectedPosition = getSelectedPosition()
|
|
selectedPosition = getSelectedPosition()
|
|
Log.d("test_button", "onClick")
|
|
Log.d("test_button", "onClick")
|
|
Log.d("SubscriptionViewModel", "liveData ${skuDetailsListsSubs}")
|
|
Log.d("SubscriptionViewModel", "liveData ${skuDetailsListsSubs}")
|
|
|
|
|
|
- if (Screen.Subscription.isTrue)
|
|
|
|
- {
|
|
|
|
- navHostController.popBackStack(BottomBarScreen.Home.route, false)
|
|
|
|
- } else {
|
|
|
|
- navHostController.popBackStack()
|
|
|
|
- }
|
|
|
|
- Screen.Subscription.isTrue = false
|
|
|
|
-
|
|
|
|
-
|
|
|
|
// subscriptionViewModel.startConnection(selectedPosition)
|
|
// subscriptionViewModel.startConnection(selectedPosition)
|
|
-// if (skuDetailsListsSubs != null) {
|
|
|
|
-// subscriptionViewModel.subscriptionProduct(
|
|
|
|
-// selectedPosition, skuDetailsListsSubs, activity
|
|
|
|
-// )
|
|
|
|
-// }
|
|
|
|
|
|
+ if (skuDetailsListsSubs != null) {
|
|
|
|
+ subscriptionViewModel.subscriptionProduct(
|
|
|
|
+ selectedPosition, skuDetailsListsSubs, activity
|
|
|
|
+ )
|
|
|
|
+ }
|
|
|
|
|
|
},
|
|
},
|
|
modifier = Modifier
|
|
modifier = Modifier
|
|
@@ -286,10 +301,28 @@ fun SubscriptionScreen(navHostController: NavHostController, activity: Component
|
|
it.enabled_protocols.let {
|
|
it.enabled_protocols.let {
|
|
basePreferenceHelper.saveEnabledProtocols(it)
|
|
basePreferenceHelper.saveEnabledProtocols(it)
|
|
}
|
|
}
|
|
-
|
|
|
|
it.data?.let {
|
|
it.data?.let {
|
|
basePreferenceHelper.saveServerData(it)
|
|
basePreferenceHelper.saveServerData(it)
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if (Screen.Subscription.isTrue)
|
|
|
|
+ {
|
|
|
|
+ if (MainActivity.isStopSubscriptionNavigation) {
|
|
|
|
+ Log.d("testing_subs_nav", "if ${Screen.Subscription.isTrue}")
|
|
|
|
+ isSubscriptionServerClicked = true
|
|
|
|
+
|
|
|
|
+// navHostController.popBackStack(BottomBarScreen.Home.route, false)
|
|
|
|
+ MainActivity.isStopSubscriptionNavigation = false
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ if (MainActivity.isStopSubscriptionNavigation) {
|
|
|
|
+ Log.d("testing_subs_nav", "else ${Screen.Subscription.isTrue}")
|
|
|
|
+ navHostController.popBackStack()
|
|
|
|
+ MainActivity.isStopSubscriptionNavigation = false
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ Screen.Subscription.isTrue = false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|