// Show the recipientpage public void newChat() { var recipientPage = new WalletRecipientPage(); recipientPage.pickSucceeded += HandlePickSucceeded; Navigation.PushModalAsync(recipientPage); }
private void onNavigating(object sender, WebNavigatingEventArgs e) { string current_url = HttpUtility.UrlDecode(e.Url); if (current_url.Equals("ixian:onload", StringComparison.Ordinal)) { onLoad(); } else if (current_url.Equals("ixian:back", StringComparison.Ordinal)) { Navigation.PopAsync(Config.defaultXamarinAnimations); } else if (current_url.Equals("ixian:pick", StringComparison.Ordinal)) { var recipientPage = new WalletRecipientPage(); recipientPage.pickSucceeded += HandlePickSucceeded; Navigation.PushModalAsync(recipientPage); } else if (current_url.Equals("ixian:error", StringComparison.Ordinal)) { displaySpixiAlert("SPIXI", "Please type an amount.", "OK"); } else if (current_url.Contains("ixian:sendrequest:")) { string[] split = current_url.Split(new string[] { "ixian:sendrequest:" }, StringSplitOptions.None); // Extract all addresses and amounts string[] addresses_split = split[1].Split(new string[] { "|" }, StringSplitOptions.None); string[] split_address = addresses_split[0].Split(':'); string recipient = split_address[0]; string amount = split_address[1]; onRequest(recipient, amount); } else { // Otherwise it's just normal navigation e.Cancel = false; return; } e.Cancel = true; }
private void onNavigating(object sender, WebNavigatingEventArgs e) { string current_url = HttpUtility.UrlDecode(e.Url); if (current_url.Equals("ixian:onload", StringComparison.Ordinal)) { onLoad(); } else if (current_url.Equals("ixian:back", StringComparison.Ordinal)) { Navigation.PopAsync(Config.defaultXamarinAnimations); } else if (current_url.Equals("ixian:pick", StringComparison.Ordinal)) { var recipientPage = new WalletRecipientPage(); recipientPage.pickSucceeded += HandlePickSucceeded; Navigation.PushModalAsync(recipientPage); } else if (current_url.Equals("ixian:quickscan", StringComparison.Ordinal)) { ICustomQRScanner scanner = DependencyService.Get <ICustomQRScanner>(); if (scanner != null && scanner.useCustomQRScanner()) { Utils.sendUiCommand(webView, "quickScanJS"); e.Cancel = true; return; } quickScan(); } else if (current_url.Contains("ixian:qrresult:")) { string[] split = current_url.Split(new string[] { "ixian:qrresult:" }, StringSplitOptions.None); string result = split[1]; processQRResult(result); e.Cancel = true; return; } else if (current_url.Equals("ixian:error", StringComparison.Ordinal)) { displaySpixiAlert("SPIXI", "Please type a wallet address.", "OK"); } else if (current_url.Equals("ixian:error2", StringComparison.Ordinal)) { displaySpixiAlert("SPIXI", "Please type an amount.", "OK"); } else if (current_url.Contains("ixian:send:")) { string[] split = current_url.Split(new string[] { "ixian:send:" }, StringSplitOptions.None); // Extract all addresses and amounts string[] addresses_split = split[1].Split(new string[] { "|" }, StringSplitOptions.None); // Go through each entry foreach (string address_and_amount in addresses_split) { if (address_and_amount.Length < 1) { continue; } // Extract the address and amount string[] asplit = address_and_amount.Split(new string[] { ":" }, StringSplitOptions.None); if (asplit.Count() < 2) { continue; } string address = asplit[0]; string amount = asplit[1]; if (Address.validateChecksum(Base58Check.Base58CheckEncoding.DecodePlain(address)) == false) { e.Cancel = true; displaySpixiAlert("Invalid address checksum", "Please make sure you typed the address correctly.", "OK"); return; } string[] amount_split = amount.Split(new string[] { "." }, StringSplitOptions.None); if (amount_split.Length > 2) { displaySpixiAlert("SPIXI", "Please type a correct decimal amount.", "OK"); e.Cancel = true; return; } // Add decimals if none found if (amount_split.Length == 1) { amount = String.Format("{0}.0", amount); } IxiNumber _amount = amount; if (_amount < (long)0) { displaySpixiAlert("SPIXI", "Please type a positive amount.", "OK"); e.Cancel = true; return; } } Navigation.PushAsync(new WalletSend2Page(addresses_split)); } else if (current_url.Contains("ixian:getMaxAmount")) { if (Node.balance > ConsensusConfig.transactionPrice * 2) { // TODO needs to be improved and pubKey length needs to be taken into account Utils.sendUiCommand(webView, "setAmount", (Node.balance - (ConsensusConfig.transactionPrice * 2)).ToString()); } } else { // Otherwise it's just normal navigation e.Cancel = false; return; } e.Cancel = true; }
private void onNavigating(object sender, WebNavigatingEventArgs e) { string current_url = HttpUtility.UrlDecode(e.Url); if (onNavigatingGlobal(current_url)) { e.Cancel = true; return; } if (current_url.Equals("ixian:onload", StringComparison.Ordinal)) { onLoad(); } else if (current_url.Equals("ixian:back", StringComparison.Ordinal)) { Navigation.PopAsync(Config.defaultXamarinAnimations); } else if (current_url.Equals("ixian:pick", StringComparison.Ordinal)) { var recipientPage = new WalletRecipientPage(); recipientPage.pickSucceeded += HandlePickSucceeded; Navigation.PushModalAsync(recipientPage); } else if (current_url.Equals("ixian:error", StringComparison.Ordinal)) { displaySpixiAlert(SpixiLocalization._SL("wallet-error-amount-title"), SpixiLocalization._SL("wallet-error-amount-text"), SpixiLocalization._SL("global-dialog-ok")); } else if (current_url.Contains("ixian:sendrequest:")) { try { string[] split = current_url.Split(new string[] { "ixian:sendrequest:" }, StringSplitOptions.None); // Extract all addresses and amounts string[] addresses_split = split[1].Split(new string[] { "|" }, StringSplitOptions.None); foreach (var address_amount in addresses_split) { if (address_amount == "") { continue; } string[] split_address_amount = address_amount.Split(':'); if (split_address_amount.Count() < 2) { continue; } string recipient = split_address_amount[0]; string amount = split_address_amount[1]; if (Address.validateChecksum(Base58Check.Base58CheckEncoding.DecodePlain(recipient)) == false) { e.Cancel = true; displaySpixiAlert(SpixiLocalization._SL("global-invalid-address-title"), SpixiLocalization._SL("global-invalid-address-text"), SpixiLocalization._SL("global-dialog-ok")); return; } string[] amount_split = amount.Split(new string[] { "." }, StringSplitOptions.None); if (amount_split.Length > 2) { displaySpixiAlert(SpixiLocalization._SL("wallet-error-amount-title"), SpixiLocalization._SL("wallet-error-amountdecimal-text"), SpixiLocalization._SL("global-dialog-ok")); e.Cancel = true; return; } // Add decimals if none found if (amount_split.Length == 1) { amount = String.Format("{0}.0", amount); } IxiNumber _amount = amount; if (_amount == 0) { displaySpixiAlert(SpixiLocalization._SL("wallet-error-amount-title"), SpixiLocalization._SL("wallet-error-amount-text"), SpixiLocalization._SL("global-dialog-ok")); e.Cancel = true; return; } if (_amount < (long)0) { displaySpixiAlert(SpixiLocalization._SL("wallet-error-amount-title"), SpixiLocalization._SL("wallet-error-amount-text"), SpixiLocalization._SL("global-dialog-ok")); e.Cancel = true; return; } onRequest(recipient, amount); } }catch (Exception ex) { Logging.error("Exception occurent for sendrequest action: " + ex); displaySpixiAlert(SpixiLocalization._SL("wallet-request-error-title"), SpixiLocalization._SL("wallet-request-error-text"), SpixiLocalization._SL("global-dialog-ok")); } } else if (current_url.Contains("ixian:addrecipient")) { try { string[] split = current_url.Split(new string[] { "ixian:addrecipient:" }, StringSplitOptions.None); if (Address.validateChecksum(Base58Check.Base58CheckEncoding.DecodePlain(split[1]))) { Utils.sendUiCommand(webView, "addRecipient", split[1], split[1]); } else { displaySpixiAlert(SpixiLocalization._SL("global-invalid-address-title"), SpixiLocalization._SL("global-invalid-address-text"), SpixiLocalization._SL("global-dialog-ok")); } } catch (Exception) { displaySpixiAlert(SpixiLocalization._SL("global-invalid-address-title"), SpixiLocalization._SL("global-invalid-address-text"), SpixiLocalization._SL("global-dialog-ok")); } } else { // Otherwise it's just normal navigation e.Cancel = false; return; } e.Cancel = true; }
private void onNavigating(object sender, WebNavigatingEventArgs e) { string current_url = e.Url; if (current_url.Equals("ixian:onload", StringComparison.Ordinal)) { onLoad(); } else if (current_url.Equals("ixian:back", StringComparison.Ordinal)) { Navigation.PopAsync(Config.defaultXamarinAnimations); } else if (current_url.Equals("ixian:pick", StringComparison.Ordinal)) { var recipientPage = new WalletRecipientPage(); recipientPage.pickSucceeded += HandlePickSucceeded; Navigation.PushModalAsync(recipientPage); } else if (current_url.Equals("ixian:quickscan", StringComparison.Ordinal)) { quickScan(); } else if (current_url.Equals("ixian:error", StringComparison.Ordinal)) { DisplayAlert("SPIXI", "Please type a wallet address.", "OK"); } else if (current_url.Equals("ixian:error2", StringComparison.Ordinal)) { DisplayAlert("SPIXI", "Please type an amount.", "OK"); } else if (current_url.Contains("ixian:send:")) { string[] split = current_url.Split(new string[] { "ixian:send:" }, StringSplitOptions.None); // Extract all addresses and amounts string[] addresses_split = split[1].Split(new string[] { "%7C" }, StringSplitOptions.None); // Go through each entry foreach (string address_and_amount in addresses_split) { if (address_and_amount.Length < 1) { continue; } // Extract the address and amount string[] asplit = address_and_amount.Split(new string[] { ":" }, StringSplitOptions.None); if (asplit.Count() < 2) { continue; } string address = asplit[0]; string amount = asplit[1]; if (Address.validateChecksum(Base58Check.Base58CheckEncoding.DecodePlain(address)) == false) { e.Cancel = true; DisplayAlert("Invalid address checksum", "Please make sure you typed the address correctly.", "OK"); return; } string[] amount_split = amount.Split(new string[] { "." }, StringSplitOptions.None); if (amount_split.Length > 2) { DisplayAlert("SPIXI", "Please type a correct decimal amount.", "OK"); e.Cancel = true; return; } // Add decimals if none found if (amount_split.Length == 1) { amount = String.Format("{0}.0", amount); } IxiNumber _amount = amount; if (_amount < (long)0) { DisplayAlert("SPIXI", "Please type a positive amount.", "OK"); e.Cancel = true; return; } } Navigation.PushAsync(new WalletSend2Page(addresses_split)); } else { // Otherwise it's just normal navigation e.Cancel = false; return; } e.Cancel = true; }