protected override async void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); clientName = Android.OS.Build.Manufacturer + " " + Android.OS.Build.Model; SetContentView(Resource.Layout.premium); Plugin.CurrentActivity.CrossCurrentActivity.Current.Activity = this; InitElements(); if (_databaseMethods.UserExists()) { if (!_methods.IsConnected()) { NoConnectionActivity.ActivityName = this; StartActivity(typeof(NoConnectionActivity)); Finish(); return; } var purchaseInfo = await _accounts.AccountAuthorize(_databaseMethods.GetAccessJwt(), clientName); //var deserialized_info = JsonConvert.DeserializeObject<AuthorizeRootObject>(purchase_info); AuthorizeAfterPurchase(purchaseInfo); } FindViewById <RelativeLayout>(Resource.Id.backRL).Click += (s, e) => OnBackPressed(); _monthBn.Click += async(s, e) => { if (!_databaseMethods.UserExists()) { call_login_menu(); return; } if (!_methods.IsConnected()) { NoConnectionActivity.ActivityName = this; StartActivity(typeof(NoConnectionActivity)); Finish(); return; } _monthActivityIndicator.Visibility = ViewStates.Visible; _monthBn.Visibility = ViewStates.Gone; string productId = "month_auto_subscription"; InAppBillingService inAppBillingService = new InAppBillingService(); InAppBillingPurchase purchase = new InAppBillingPurchase(); var authorizeCheck = await _accounts.AccountAuthorize(_databaseMethods.GetAccessJwt(), clientName); if (/*res_card_data == Constants.status_code409 ||*/ authorizeCheck == Constants.status_code401) { ShowSeveralDevicesRestriction(); return; } var deserialized = JsonConvert.DeserializeObject <AuthorizeRootObject>(authorizeCheck); if (deserialized != null) { var jsonObj = JsonConvert.SerializeObject(new { accountID = deserialized.accountID.ToString() }); var textBytes = Encoding.UTF8.GetBytes(jsonObj); var base64 = Convert.ToBase64String(textBytes); if (deserialized.accountID != null) { purchase = await inAppBillingService.PurchaseSubscription(productId, base64); } } //else //purchase = await inAppBillingService.PurchaseSubscription(product_id, String.Empty); if (purchase != null) { Toast.MakeText(this, TranslationHelper.GetString("waitServerSync", _ci), ToastLength.Short).Show(); // Inform our server. var notifyServer = await _accounts.AccountSubscribeAndroid(_databaseMethods.GetAccessJwt(), 3, purchase.ProductId, purchase.PurchaseToken); //var notify_server = await accounts.AccountSubscribe( //databaseMethods.GetAccessJwt(), //Constants.personalGoogle.ToString(), //purchase, //DateTime.UtcNow.AddDays(1), // ATTENTION with days. //NativeMethods.GetDeviceId() //); var authorizeCheckAfterPurchase = await _accounts.AccountAuthorize(_databaseMethods.GetAccessJwt(), clientName); AuthorizeAfterPurchase(authorizeCheckAfterPurchase); _monthActivityIndicator.Visibility = ViewStates.Gone; Toast.MakeText(this, TranslationHelper.GetString("syncDoneSuccessfully", _ci), ToastLength.Short).Show(); return; } _monthActivityIndicator.Visibility = ViewStates.Gone; _monthBn.Visibility = ViewStates.Visible; }; _yearBn.Click += async(s, e) => { if (!_databaseMethods.UserExists()) { call_login_menu(); return; } if (!_methods.IsConnected()) { NoConnectionActivity.ActivityName = this; StartActivity(typeof(NoConnectionActivity)); Finish(); return; } _yearActivityIndicator.Visibility = ViewStates.Visible; _yearBn.Visibility = ViewStates.Gone; string productId = "year_auto_subscription"; InAppBillingService inAppBillingService = new InAppBillingService(); InAppBillingPurchase purchase = new InAppBillingPurchase(); var authorizeCheck = await _accounts.AccountAuthorize(_databaseMethods.GetAccessJwt(), clientName); if (/*res_card_data == Constants.status_code409 ||*/ authorizeCheck == Constants.status_code401) { ShowSeveralDevicesRestriction(); return; } var deserialized = JsonConvert.DeserializeObject <AuthorizeRootObject>(authorizeCheck); if (deserialized != null) { var jsonObj = JsonConvert.SerializeObject(new { accountID = deserialized.accountID.ToString() }); var textBytes = Encoding.UTF8.GetBytes(jsonObj); var base64 = Convert.ToBase64String(textBytes); if (deserialized.accountID != null) { purchase = await inAppBillingService.PurchaseSubscription(productId, base64); } } //else //purchase = await inAppBillingService.PurchaseSubscription(product_id, String.Empty); if (purchase != null) { Toast.MakeText(this, TranslationHelper.GetString("waitServerSync", _ci), ToastLength.Short).Show(); // Inform our server. var notifyServer = await _accounts.AccountSubscribeAndroid(_databaseMethods.GetAccessJwt(), 3, purchase.ProductId, purchase.PurchaseToken); //var notify_server = await accounts.AccountSubscribe( //databaseMethods.GetAccessJwt(), //Constants.personalGoogle.ToString(), //purchase, //DateTime.UtcNow.AddDays(1), // ATTENTION with days. //NativeMethods.GetDeviceId() //); var authorizeCheckAfterPurchase = await _accounts.AccountAuthorize(_databaseMethods.GetAccessJwt(), clientName); AuthorizeAfterPurchase(authorizeCheckAfterPurchase); _yearActivityIndicator.Visibility = ViewStates.Gone; Toast.MakeText(this, TranslationHelper.GetString("syncDoneSuccessfully", _ci), ToastLength.Short).Show(); return; } _yearActivityIndicator.Visibility = ViewStates.Gone; _yearBn.Visibility = ViewStates.Visible; }; _termsBn.Click += (s, e) => { var uri = Android.Net.Uri.Parse("https://myqrcards.com/agreement/ru"); StartActivity(new Intent(Intent.ActionView, uri)); }; _politicsBn.Click += (s, e) => { var uri = Android.Net.Uri.Parse("https://myqrcards.com/privacy-policy/ru"); StartActivity(new Intent(Intent.ActionView, uri)); }; }
protected override async void OnResume() { base.OnResume(); CardsCreatingProcessActivity.CameFrom = Constants.email_confirmation_waiting; if (!_methods.IsConnected()) { NoConnectionActivity.ActivityName = this; StartActivity(typeof(NoConnectionActivity)); Finish(); Analytics.TrackEvent("147 finish waiting email"); return; } AccountActions.cycledRequestCancelled = false; string res = null; try { res = await _accountActions.AccountActionsGet(_databaseMethods.GetActionJwt(), clientName); } catch (Exception ex) { if (!_methods.IsConnected()) { NoConnectionActivity.ActivityName = this; StartActivity(typeof(NoConnectionActivity)); Finish(); Analytics.TrackEvent("164 finish waiting email"); return; } } if (String.IsNullOrEmpty(res)) { if (!_methods.IsConnected()) { NoConnectionActivity.ActivityName = this; StartActivity(typeof(NoConnectionActivity)); Finish(); Analytics.TrackEvent("175 finish waiting email"); return; } } if (res.Contains("processed")) { var deserializedGet = JsonConvert.DeserializeObject <AccountActionsGetModel>(res); string resAuth = null; try { resAuth = await _accounts.AccountAuthorize(deserializedGet.accountClientJwt, clientName); } catch (Exception ex) { if (!_methods.IsConnected()) { NoConnectionActivity.ActivityName = this; StartActivity(typeof(NoConnectionActivity)); Finish(); Analytics.TrackEvent("194 finish waiting email"); return; } } if (String.IsNullOrEmpty(resAuth)) { if (!_methods.IsConnected()) { NoConnectionActivity.ActivityName = this; StartActivity(typeof(NoConnectionActivity)); Finish(); Analytics.TrackEvent("205 finish waiting email"); return; } } var deserialized = JsonConvert.DeserializeObject <AuthorizeRootObject>(resAuth); int lastSubscription = deserialized.subscriptions[deserialized.subscriptions.Count - 1].id; _databaseMethods.InsertLoginAfter(deserialized.accessJwt, deserialized.accountUrl, lastSubscription); try { foreach (var subs in deserialized.subscriptions) { if (subs.limitations != null) { if (subs.limitations.allowMultiClients) { QrActivity.IsPremium = true; break; } } } //if (!is_premium) foreach (var subscription in deserialized.subscriptions) { if (subscription.limitations != null) { if (subscription.limitations?.cardsRemaining == null) { QrActivity.CardsRemaining = 10; break; } else if (subscription.limitations.cardsRemaining > QrActivity.CardsRemaining) { QrActivity.CardsRemaining = subscription.limitations.cardsRemaining.Value; } } } foreach (var subscription in deserialized.subscriptions) { if (subscription.features != null) { foreach (var feature in subscription.features) { if (feature == Constants.ExtraEmploymentData) { QrActivity.ExtraEmploymentData = feature; } if (feature == Constants.CompanyLogoInQr) { QrActivity.CompanyLogoInQr = feature; } if (feature == Constants.ExtraPersonData) { QrActivity.ExtraPersonData = feature; } } } else { } } } catch { } if (!resAuth.Contains("userTermsAccepted")) { var deviceId = NativeMethods.GetDeviceId(); string resApplyTerms = null; try { resApplyTerms = await _accounts.ApplyUserTerms(deserialized.accessJwt, deserializedGet.processed, deviceId); } catch (Exception ex) { if (!_methods.IsConnected()) { NoConnectionActivity.ActivityName = this; StartActivity(typeof(NoConnectionActivity)); Finish(); Analytics.TrackEvent("274 finish waiting email"); return; } } if (String.IsNullOrEmpty(resApplyTerms)) { if (!_methods.IsConnected()) { NoConnectionActivity.ActivityName = this; StartActivity(typeof(NoConnectionActivity)); Finish(); Analytics.TrackEvent("285 finish waiting email"); return; } } if (resApplyTerms.ToLower().Contains(": 20") || resApplyTerms.ToLower().Contains("accepted")) { if (_databaseMethods.GetLoginedFrom() == Constants.from_card_creating) { Intent intent = new Intent(this, typeof(CardsCreatingProcessActivity)); intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack StartActivity(intent); //StartActivity(typeof(CardsCreatingProcessActivity)); //Finish(); } else if (_databaseMethods.GetLoginedFrom() == Constants.from_slide_menu) { Intent intent = new Intent(this, typeof(MyCardActivity)); intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack StartActivity(intent); //StartActivity(typeof(MyCardActivity)); //Finish(); } else if (_databaseMethods.GetLoginedFrom() == Constants.from_card_creating_premium) { Intent intent = new Intent(this, typeof(PersonalDataActivity)); intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack StartActivity(intent); //StartActivity(typeof(PersonalDataActivity)); //Finish(); } else { if (!QrActivity.IsPremium) { Intent intent = new Intent(this, typeof(MyCardActivity)); intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack StartActivity(intent); //StartActivity(typeof(MyCardActivity)); } else { Intent intent = new Intent(this, typeof(QrActivity)); intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack StartActivity(intent); //StartActivity(typeof(QRActivity)); } Finish(); } } } else { if (_databaseMethods.GetLoginedFrom() == Constants.from_card_creating) { Intent intent = new Intent(this, typeof(CardsCreatingProcessActivity)); intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack StartActivity(intent); //StartActivity(typeof(CardsCreatingProcessActivity)); //Finish(); } else if (_databaseMethods.GetLoginedFrom() == Constants.from_slide_menu) { if (!QrActivity.IsPremium) { Intent intent = new Intent(this, typeof(MyCardActivity)); intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack StartActivity(intent); //StartActivity(typeof(MyCardActivity)); } else { Intent intent = new Intent(this, typeof(QrActivity)); intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack StartActivity(intent); //StartActivity(typeof(QRActivity)); } Finish(); } else if (_databaseMethods.GetLoginedFrom() == Constants.from_card_creating_premium) { Intent intent = new Intent(this, typeof(PersonalDataActivity)); intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack StartActivity(intent); //StartActivity(typeof(PersonalDataActivity)); //Finish(); } else { if (!QrActivity.IsPremium) { Intent intent = new Intent(this, typeof(MyCardActivity)); intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack StartActivity(intent); //StartActivity(typeof(MyCardActivity)); } else { Intent intent = new Intent(this, typeof(QrActivity)); intent.AddFlags(ActivityFlags.ClearTop); // Removes other Activities from stack StartActivity(intent); //StartActivity(typeof(QRActivity)); } Finish(); } } } }