Sub ElementsBox1_TitleLabel1_Click
'Connetti al Google Play Store
Log("Tento di connettermi al Play Store...")
Wait For (BillingManager.ConnectIfNeeded) BillingManager_Connected (Result As BillingResult)
If Result.IsSuccess = True Then
'get the sku details
Log("Connesso, verifico dettagli SKU...")
Dim sf As Object = BillingManager.QuerySkuDetails("subs", Array(iControl.SUBS_TYPE_ID & SelectedButtonID)) 'Cambiare con ID corrente
Wait For (sf) BillingManager_SkuQueryCompleted (Result As BillingResult, SkuDetails As List)
If Result.IsSuccess And SkuDetails.Size = 1 Then
Log("Dettagli SKU: " & SkuDetails.Get(0))
End If
Wait For (BillingManager.QueryPurchases("subs")) BillingManager_PurchasesQueryCompleted (Result As BillingResult, Purchases As List)
Log("Query completed: " & Result.IsSuccess)
If Result.IsSuccess Then
For Each p As Purchase In Purchases
If p.Sku = iControl.SUBS_TYPE_ID & SelectedButtonID Then
Try
ChangeSubType(SkuDetails.Get(0), "pui_cloud_lvl_5", p.PurchaseToken)
Catch
Log(LastException)
End Try
End If
Next
End If
Else
Log("Connessione al Play Store non riuscita!")
End If
End Sub
Private Sub ChangeSubType(CurrentSku As SkuDetails, NewSku As String, PurchaseToken As String) As BillingResult
Dim jo As JavaObject = BillingManager
Dim BillingClient As JavaObject = jo.GetField("client")
Dim context As JavaObject
context.InitializeContext
Dim BillingFlowParams As JavaObject
BillingFlowParams = BillingFlowParams.InitializeStatic("com.android.billingclient.api.BillingFlowParams") _
.RunMethodJO("newBuilder", Null).RunMethodJO("setSkuDetails", Array(CurrentSku)) _
.RunMethodJO("setOldSku", Array(NewSku, PurchaseToken)).RunMethod("build", Null)
Return BillingClient.RunMethod("launchBillingFlow", Array(context, BillingFlowParams))
End Sub