From 3adb50ff7c1483d85996dd89960f98ed17ad043d Mon Sep 17 00:00:00 2001 From: MIPPL Date: Tue, 22 Oct 2019 13:13:38 +0200 Subject: [PATCH] Several fixes and suggestions, b 236 --- .idea/caches/build_file_checksums.ser | Bin 539 -> 539 bytes .idea/caches/gradle_models.ser | Bin 236832 -> 236832 bytes app/build.gradle | 4 +- .../presenter/activities/HomeActivity.java | 3 + .../activities/settings/AboutActivity.java | 2 +- .../settings/FingerprintActivity.java | 4 +- .../activities/settings/SettingsActivity.java | 3 +- .../fragments/FragmentEventDetails.java | 66 +++++++++++++++-- .../fragments/FragmentRequestAmount.java | 17 +++++ .../fragments/FragmentTxDetails.java | 21 ++++-- .../tools/adapter/TransactionListAdapter.java | 56 +++++++-------- .../tools/animation/BRAnimator.java | 68 +++++++++++++++++- .../tools/manager/BRSharedPrefs.java | 13 ++++ .../tools/manager/PromptManager.java | 4 +- .../wagerrwallet/tools/util/BRConstants.java | 2 + .../wallets/wagerr/WalletWagerrManager.java | 2 +- app/src/main/jni/breadwallet-core | 2 +- app/src/main/res/layout/event_details.xml | 16 ++++- .../main/res/layout/transaction_details.xml | 53 +++++--------- app/src/main/res/values/colors.xml | 3 +- 20 files changed, 251 insertions(+), 88 deletions(-) diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index d3dc1ee0efb5b361c421682adc55f32124291a49..a6e57b7dc4d1e12942aa42c6620b1ca7b9aaecee 100644 GIT binary patch delta 35 tcmV+;0NnqZ1e*kqm;~q}UdNG~cMzHXJ+Ilp-+`Hw`tzbCFUpf60r)ss5>@~J delta 35 tcmV+;0NnqZ1e*kqm;~N1bt93ScM!HqSJe57MktbPb;EH{S)!980r(9Q4~75$ diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser index ccc6ef171739d48b79c1d5dde8d1f86b165d67f1..5099678f95cd3c45074076d62728f07fd9a7af87 100644 GIT binary patch literal 236832 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

X?XNbg<*cRb4N1O85M~TgU&^YW*Bt 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 literal 236832 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 XkG7zBy8eQ5Yy})9fw7~Ed@A#QG>?1Y diff --git a/app/build.gradle b/app/build.gradle index 44488d538..a5ea9256c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId = 'com.wagerrwallet' minSdkVersion 23 targetSdkVersion 28 - versionCode 235 - versionName "235" + versionCode 236 + versionName "236" multiDexEnabled true // Similar to other properties in the defaultConfig block, diff --git a/app/src/main/java/com/wagerrwallet/presenter/activities/HomeActivity.java b/app/src/main/java/com/wagerrwallet/presenter/activities/HomeActivity.java index bfa5a1c9f..10340e721 100644 --- a/app/src/main/java/com/wagerrwallet/presenter/activities/HomeActivity.java +++ b/app/src/main/java/com/wagerrwallet/presenter/activities/HomeActivity.java @@ -184,6 +184,9 @@ public void hidePrompt() { if (mCurrentPrompt == PromptManager.PromptItem.SHARE_DATA) { BRSharedPrefs.putShareDataDismissed(app, true); } + if (mCurrentPrompt == PromptManager.PromptItem.FINGER_PRINT) { + BRSharedPrefs.putFingerprintDismissed(app, true); + } if (mCurrentPrompt != null) BREventManager.getInstance().pushEvent("prompt." + PromptManager.getInstance().getPromptName(mCurrentPrompt) + ".dismissed"); mCurrentPrompt = null; diff --git a/app/src/main/java/com/wagerrwallet/presenter/activities/settings/AboutActivity.java b/app/src/main/java/com/wagerrwallet/presenter/activities/settings/AboutActivity.java index bdaced8da..40fe8830c 100644 --- a/app/src/main/java/com/wagerrwallet/presenter/activities/settings/AboutActivity.java +++ b/app/src/main/java/com/wagerrwallet/presenter/activities/settings/AboutActivity.java @@ -98,7 +98,7 @@ public void onClick(View v) { policyText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.wagerr.com/privacy/")); + Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/wagerr/WagerrWalletAndroid/blob/master/PrivacyPolicy.md")); startActivity(browserIntent); app.overridePendingTransition(R.anim.enter_from_bottom, R.anim.empty_300); } diff --git a/app/src/main/java/com/wagerrwallet/presenter/activities/settings/FingerprintActivity.java b/app/src/main/java/com/wagerrwallet/presenter/activities/settings/FingerprintActivity.java index 077153b5c..c84418697 100644 --- a/app/src/main/java/com/wagerrwallet/presenter/activities/settings/FingerprintActivity.java +++ b/app/src/main/java/com/wagerrwallet/presenter/activities/settings/FingerprintActivity.java @@ -140,11 +140,11 @@ private String getLimitText() { BigDecimal satoshis = new BigDecimal(BRKeyStore.getSpendLimit(this)); WalletsMaster master = WalletsMaster.getInstance(this); //amount in BTC, mBTC or bits - BigDecimal amount = master.getCurrentWallet(this).getFiatForSmallestCrypto(this, satoshis, null); + BigDecimal amount = satoshis.divide( new BigDecimal(BRConstants.ONE_BITCOIN)); // master.getCurrentWallet(this).getFiatForSmallestCrypto(this, satoshis, null); //amount in user preferred ISO (e.g. USD) BigDecimal curAmount = master.getCurrentWallet(this).getFiatForSmallestCrypto(this, satoshis, null); //formatted string for the label - return String.format(getString(R.string.TouchIdSettings_spendingLimit), CurrencyUtils.getFormattedAmount(this, "WGR", amount), CurrencyUtils.getFormattedAmount(this, iso, curAmount)); + return String.format(getString(R.string.TouchIdSettings_spendingLimit), CurrencyUtils.getFormattedAmount(this, "WGR", satoshis), CurrencyUtils.getFormattedAmount(this, iso, curAmount)); } @Override diff --git a/app/src/main/java/com/wagerrwallet/presenter/activities/settings/SettingsActivity.java b/app/src/main/java/com/wagerrwallet/presenter/activities/settings/SettingsActivity.java index cd5240455..b94563149 100644 --- a/app/src/main/java/com/wagerrwallet/presenter/activities/settings/SettingsActivity.java +++ b/app/src/main/java/com/wagerrwallet/presenter/activities/settings/SettingsActivity.java @@ -253,6 +253,7 @@ public void onClick(View v) { } }, false)); */ +/* remove this option upon request items.add(new BRSettingsItem(getString(R.string.Settings_review), "", new View.OnClickListener() { @Override public void onClick(View v) { @@ -267,7 +268,7 @@ public void onClick(View v) { overridePendingTransition(R.anim.enter_from_right, R.anim.exit_to_left); } }, false)); - +*/ items.add(new BRSettingsItem(getString(R.string.Settings_aboutBread), "", new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/wagerrwallet/presenter/fragments/FragmentEventDetails.java b/app/src/main/java/com/wagerrwallet/presenter/fragments/FragmentEventDetails.java index e91dc149a..b4d6f7207 100644 --- a/app/src/main/java/com/wagerrwallet/presenter/fragments/FragmentEventDetails.java +++ b/app/src/main/java/com/wagerrwallet/presenter/fragments/FragmentEventDetails.java @@ -6,6 +6,8 @@ import android.os.Bundle; import android.os.Handler; import android.support.annotation.Nullable; +import android.text.Editable; +import android.text.TextWatcher; import android.util.Log; import android.view.KeyEvent; import android.view.LayoutInflater; @@ -39,6 +41,7 @@ import com.wagerrwallet.tools.manager.BRClipboardManager; import com.wagerrwallet.tools.manager.BRSharedPrefs; import com.wagerrwallet.tools.manager.SendManager; +import com.wagerrwallet.tools.util.BRConstants; import com.wagerrwallet.tools.util.BRDateUtil; import com.wagerrwallet.tools.util.CurrencyUtils; import com.wagerrwallet.tools.util.Utils; @@ -122,6 +125,7 @@ public class FragmentEventDetails extends DialogFragment implements View.OnClick private ImageButton mAcceptBet; private ImageButton mCancelBet; private View mCurrentSelectedBetOption = null; + private ImageButton faq; private BRText mPotentialReward; @@ -153,6 +157,16 @@ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, View rootView = inflater.inflate(R.layout.event_details, container, false); + faq = (ImageButton) rootView.findViewById(R.id.faq_button); + + faq.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (!BRAnimator.isClickAllowed()) return; + BRAnimator.showSupportFragment(getActivity(), BRConstants.betSlip); + } + }); + mMainLayout = rootView.findViewById(R.id.dynamic_container); mTxEventHeader = rootView.findViewById(R.id.tx_eventheader); mTxEventDate= rootView.findViewById(R.id.tx_eventdate); @@ -229,6 +243,33 @@ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { } }); + + mTxAmount.addTextChangedListener(new TextWatcher() { + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + String oddTx = ((BRText)mCurrentSelectedBetOption).getText().toString(); + float odds = 0; + int value = getContext().getResources().getInteger(R.integer.min_bet_amount); + int minvalue = value; + Float fValue = 0.0f; + try { + odds = Float.parseFloat( oddTx ); + fValue = Float.parseFloat(mTxAmount.getText().toString()); + value = Math.max(minvalue, fValue.intValue()); + } catch (NumberFormatException e) { + } + setRewardAmount(value, odds); + } + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + // TODO Auto-generated method stub + } + @Override + public void afterTextChanged(Editable s) { + // TODO Auto-generated method stub + } + }); + mSpreadsContainer = rootView.findViewById(R.id.spreads_container); mSpreadsLayout = rootView.findViewById(R.id.spreads_layout); mTxSpreadPoints= rootView.findViewById(R.id.tx_spread_points); @@ -266,7 +307,7 @@ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { mTxLastDate = rootView.findViewById(R.id.tx_last_date); mToFrom = rootView.findViewById(R.id.tx_to_from); mToFromAddress = rootView.findViewById(R.id.tx_to_from_address); - mMemoText = rootView.findViewById(R.id.memo); + //mMemoText = rootView.findViewById(R.id.memo); mStartingBalance = rootView.findViewById(R.id.tx_starting_balance); mEndingBalance = rootView.findViewById(R.id.tx_ending_balance); mExchangeRate = rootView.findViewById(R.id.exchange_rate); @@ -333,11 +374,7 @@ protected void updateSeekBar( int amount, int posX ) { try { odds = Float.parseFloat( oddTx ); stake = amount; - long rewardAmount = stake + (long)((stake * (odds - 1)) * 0.94); - BigDecimal rewardCryptoAmount = new BigDecimal((long)rewardAmount*UNIT_MULTIPLIER); - BigDecimal rewardFiatAmount = walletManager.getFiatForSmallestCrypto(getActivity(), rewardCryptoAmount.abs(), null); - String rewardFiatAmountStr = CurrencyUtils.getFormattedAmount(getContext(), BRSharedPrefs.getPreferredFiatIso(getContext()), rewardFiatAmount); - mPotentialReward.setText("" + rewardAmount + " WGR (" + rewardFiatAmountStr +")" ); + setRewardAmount(stake, odds); } catch (NumberFormatException e) { mPotentialReward.setText("---"); @@ -349,6 +386,21 @@ protected void updateSeekBar( int amount, int posX ) { //mTxAmount.setX(seekBar.getX() + posX); } + protected void setRewardAmount(long stake, float odds) { + BaseWalletManager walletManager = WalletsMaster.getInstance(getActivity()).getCurrentWallet(getActivity()); + + try { + long rewardAmount = stake + (long)((stake * (odds - 1)) * 0.94); + BigDecimal rewardCryptoAmount = new BigDecimal((long)rewardAmount*UNIT_MULTIPLIER); + BigDecimal rewardFiatAmount = walletManager.getFiatForSmallestCrypto(getActivity(), rewardCryptoAmount.abs(), null); + String rewardFiatAmountStr = CurrencyUtils.getFormattedAmount(getContext(), BRSharedPrefs.getPreferredFiatIso(getContext()), rewardFiatAmount); + mPotentialReward.setText("" + rewardAmount + " WGR (" + rewardFiatAmountStr +")" ); + } + catch (NumberFormatException e) { + mPotentialReward.setText("---"); + } + } + protected void AcceptBet() { int min = getContext().getResources().getInteger(R.integer.min_bet_amount); BetEntity.BetTxType betType = (mTransaction.getType()== BetEventEntity.BetTxType.PEERLESS)? BetEntity.BetTxType.PEERLESS:BetEntity.BetTxType.CHAIN_LOTTO; @@ -370,7 +422,7 @@ public void onClick(BRDialogView brDialogView) { CryptoRequest item = new CryptoRequest(tx, null, false, "", "", new BigDecimal(amount)); SendManager.sendTransaction(getActivity(), item, wallet); - BRAnimator.showFragmentEvent = mTransaction; + //BRAnimator.showFragmentEvent = mTransaction; dismiss(); // close fragment } } diff --git a/app/src/main/java/com/wagerrwallet/presenter/fragments/FragmentRequestAmount.java b/app/src/main/java/com/wagerrwallet/presenter/fragments/FragmentRequestAmount.java index 4319d59cc..6dff115fc 100644 --- a/app/src/main/java/com/wagerrwallet/presenter/fragments/FragmentRequestAmount.java +++ b/app/src/main/java/com/wagerrwallet/presenter/fragments/FragmentRequestAmount.java @@ -23,6 +23,7 @@ import com.wagerrwallet.presenter.customviews.BRButton; import com.wagerrwallet.presenter.customviews.BRKeyboard; import com.wagerrwallet.presenter.customviews.BRLinearLayoutWithCaret; +import com.wagerrwallet.presenter.entities.CryptoRequest; import com.wagerrwallet.tools.animation.BRAnimator; import com.wagerrwallet.tools.animation.SlideDetector; import com.wagerrwallet.tools.manager.BRClipboardManager; @@ -232,6 +233,7 @@ public void onClick(View v) { QRUtils.share("sms:", getActivity(), bitcoinUri.toString()); } }); +/* shareButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -241,6 +243,21 @@ public void onClick(View v) { showKeyboard(false); } }); +*/ + shareButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (!BRAnimator.isClickAllowed()) { + return; + } + showKeyboard(false); + BaseWalletManager walletManager = WalletsMaster.getInstance(getActivity()).getCurrentWallet(getActivity()); + CryptoRequest cryptoRequest = new CryptoRequest.Builder().setAddress(walletManager.decorateAddress(getActivity(), mReceiveAddress)).setAmount(new BigDecimal(getAmount())).build(); + Uri cryptoUri = CryptoUriParser.createCryptoUrl(getActivity(), walletManager, cryptoRequest); + QRUtils.sendShareIntent(getActivity(), cryptoUri.toString(), cryptoRequest.getAddress(true)); + } + }); + mAddress.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/wagerrwallet/presenter/fragments/FragmentTxDetails.java b/app/src/main/java/com/wagerrwallet/presenter/fragments/FragmentTxDetails.java index 0fc02513c..920257bc2 100644 --- a/app/src/main/java/com/wagerrwallet/presenter/fragments/FragmentTxDetails.java +++ b/app/src/main/java/com/wagerrwallet/presenter/fragments/FragmentTxDetails.java @@ -30,6 +30,7 @@ import com.wagerrwallet.tools.manager.BRSharedPrefs; import com.wagerrwallet.tools.sqlite.BetEventTxDataStore; import com.wagerrwallet.tools.sqlite.BetResultTxDataStore; +import com.wagerrwallet.tools.util.BRConstants; import com.wagerrwallet.tools.util.BRDateUtil; import com.wagerrwallet.tools.util.CurrencyUtils; import com.wagerrwallet.tools.util.Utils; @@ -62,6 +63,7 @@ public class FragmentTxDetails extends DialogFragment { private BRText mToFromAddress2; private BRText mToFromAddress3; private BRText mMemoText; + private BRText mLinkOpenInExplorer; private BRText mStartingBalance; private BRText mEndingBalance; @@ -108,7 +110,8 @@ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, mToFromAddress = rootView.findViewById(R.id.tx_to_from_address); mToFromAddress2 = rootView.findViewById(R.id.tx_to_from_address2); mToFromAddress3 = rootView.findViewById(R.id.tx_to_from_address3); - mMemoText = rootView.findViewById(R.id.memo); + //mMemoText = rootView.findViewById(R.id.memo); + mLinkOpenInExplorer = rootView.findViewById(R.id.link_open_in_explorer); mStartingBalance = rootView.findViewById(R.id.tx_starting_balance); mEndingBalance = rootView.findViewById(R.id.tx_ending_balance); mExchangeRate = rootView.findViewById(R.id.exchange_rate); @@ -200,9 +203,9 @@ private void updateUi() { BigDecimal tmpStartingBalance = new BigDecimal(mTransaction.getBalanceAfterTx()).subtract(cryptoAmount.abs()).subtract(new BigDecimal(mTransaction.getFee()).abs()); - BigDecimal startingBalance = isCryptoPreferred ? walletManager.getCryptoForSmallestCrypto(getActivity(), tmpStartingBalance) : walletManager.getFiatForSmallestCrypto(getActivity(), tmpStartingBalance, null); + BigDecimal startingBalance = isCryptoPreferred ? walletManager.getCryptoForSmallestCrypto(getActivity(), tmpStartingBalance).multiply(new BigDecimal(BRConstants.ONE_BITCOIN)) : walletManager.getFiatForSmallestCrypto(getActivity(), tmpStartingBalance, null); - BigDecimal endingBalance = isCryptoPreferred ? walletManager.getCryptoForSmallestCrypto(getActivity(), new BigDecimal(mTransaction.getBalanceAfterTx())) : walletManager.getFiatForSmallestCrypto(getActivity(), new BigDecimal(mTransaction.getBalanceAfterTx()), null); + BigDecimal endingBalance = isCryptoPreferred ? walletManager.getCryptoForSmallestCrypto(getActivity(), new BigDecimal(mTransaction.getBalanceAfterTx())).multiply(new BigDecimal(BRConstants.ONE_BITCOIN)) : walletManager.getFiatForSmallestCrypto(getActivity(), new BigDecimal(mTransaction.getBalanceAfterTx()), null); mStartingBalance.setText(CurrencyUtils.getFormattedAmount(getActivity(), iso, startingBalance == null ? null : startingBalance.abs())); mEndingBalance.setText(CurrencyUtils.getFormattedAmount(getActivity(), iso, endingBalance == null ? null : endingBalance.abs())); @@ -299,6 +302,7 @@ public void onClick(View v) { mTxAmount.setTextColor(getContext().getColor(R.color.transaction_amount_received_color)); // Set the memo text if one is available +/* disable memo upon request String memo; TxMetaData txMetaData = KVStoreManager.getInstance().getTxMetaData(getActivity(), mTransaction.getTxHash()); @@ -320,7 +324,7 @@ public void onClick(View v) { } else { mMemoText.setText(""); } - +*/ // timestamp is 0 if it's not confirmed in a block yet so make it now mTxDate.setText(BRDateUtil.getMidDate(mTransaction.getTimeStamp() == 0 ? System.currentTimeMillis() : (mTransaction.getTimeStamp() * 1000))); @@ -350,6 +354,15 @@ public void run() { } }); + mLinkOpenInExplorer.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("https://explorer.wagerr.com/#/tx/%s", mTransaction.getTxHashHexReversed()))); + startActivity(browserIntent); + getActivity().overridePendingTransition(R.anim.enter_from_bottom, R.anim.empty_300); + } + }); + // Set the transaction block number mConfirmedInBlock.setText(String.valueOf(mTransaction.getBlockHeight())); diff --git a/app/src/main/java/com/wagerrwallet/tools/adapter/TransactionListAdapter.java b/app/src/main/java/com/wagerrwallet/tools/adapter/TransactionListAdapter.java index 04fb3bced..d2b959f88 100644 --- a/app/src/main/java/com/wagerrwallet/tools/adapter/TransactionListAdapter.java +++ b/app/src/main/java/com/wagerrwallet/tools/adapter/TransactionListAdapter.java @@ -181,7 +181,7 @@ private void setTexts(final TxHolder convertView, int position) { if (received) convertView.transactionAmount.setTextColor(mContext.getResources().getColor(R.color.transaction_amount_received_color, null)); else - convertView.transactionAmount.setTextColor(mContext.getResources().getColor(R.color.total_assets_usd_color, null)); + convertView.transactionAmount.setTextColor(mContext.getResources().getColor(R.color.transaction_amount_sent_color, null)); // If this transaction failed, show the "FAILED" indicator in the cell if (!item.isValid()) @@ -251,30 +251,38 @@ else if (confirms == 3) long nCurrentHeight = BRSharedPrefs.getLastBlockHeight(mContext, wallet.getIso(mContext)); boolean isNormalTx = true; - if (item.isCoinbase() && item.getBlockHeight() != Integer.MAX_VALUE) { // then payout reward - boolean immature = (nCurrentHeight-item.getBlockHeight()) <= PAYOUT_MATURITY; - String strMatureInfo = String.format( "%d/%d", (nCurrentHeight-item.getBlockHeight()), PAYOUT_MATURITY ); - int amountColor = ( !immature ) ? R.color.transaction_amount_payout_color:R.color.transaction_amount_inmature_color; - convertView.transactionAmount.setTextColor(mContext.getResources().getColor(amountColor, null)); - BetResultTxDataStore brds = BetResultTxDataStore.getInstance(mContext); - BetResultEntity br = brds.getByBlockHeight(mContext, wallet.getIso(mContext), item.getBlockHeight() - 1); - if (br != null) { - eventID = br.getEventID(); - EventTxUiHolder ev = BetEventTxDataStore.getInstance(mContext).getTransactionByEventId(mContext, "wgr", eventID); - if (ev != null) { - txDescription = String.format("%s - %s", ev.getTxHomeTeam(), ev.getTxAwayTeam()); + if (item.getBetEntity()==null) { + if (item.isCoinbase() && item.getBlockHeight() != Integer.MAX_VALUE) { // then payout reward + boolean immature = (nCurrentHeight - item.getBlockHeight()) <= PAYOUT_MATURITY; + String strMatureInfo = String.format("%d/%d", (nCurrentHeight - item.getBlockHeight()), PAYOUT_MATURITY); + int amountColor = (!immature) ? R.color.transaction_amount_payout_color : R.color.transaction_amount_inmature_color; + convertView.transactionAmount.setTextColor(mContext.getResources().getColor(amountColor, null)); + BetResultTxDataStore brds = BetResultTxDataStore.getInstance(mContext); + BetResultEntity br = brds.getByBlockHeight(mContext, wallet.getIso(mContext), item.getBlockHeight() - 1); + if (br != null) { + eventID = br.getEventID(); + EventTxUiHolder ev = BetEventTxDataStore.getInstance(mContext).getTransactionByEventId(mContext, "wgr", eventID); + if (ev != null) { + txDescription = String.format("%s - %s", ev.getTxHomeTeam(), ev.getTxAwayTeam()); + } else { + txDescription = String.format("Event #%d: info not avalable", eventID); + } + txDate = String.format("PAYOUT Event #%d", eventID); } else { - txDescription = String.format("Event #%d: info not avalable", eventID); + txDescription = String.format("Result not avalable at height %d", item.getBlockHeight() - 1); + txDate = "PAYOUT"; } - txDate = String.format("PAYOUT Event #%d", eventID); + isNormalTx = false; + if (immature) txDate += " " + strMatureInfo; } else { - txDescription = String.format("Result not avalable at height %d", item.getBlockHeight() - 1); - txDate = "PAYOUT"; + if (level > 4) { + txDescription = !commentString.isEmpty() ? commentString : (!received ? "sent to " : "received via ") + wallet.decorateAddress(mContext, item.getToRecipient(wallet, received)); + } else { + txDescription = !commentString.isEmpty() ? commentString : (!received ? "sending to " : "receiving via ") + wallet.decorateAddress(mContext, item.getToRecipient(wallet, received)); + } } - isNormalTx=false; - if (immature) txDate+=" " + strMatureInfo; - } else if (item.getBetEntity()!=null) { // outgoing bet + } else { // outgoing bet eventID = item.getBetEntity().getEventID(); EventTxUiHolder ev = BetEventTxDataStore.getInstance(mContext).getTransactionByEventId(mContext, "wgr", eventID); if (ev != null) { @@ -287,14 +295,6 @@ else if (confirms == 3) isNormalTx=false; } - - if (isNormalTx) { // regular tx - if (level > 4) { - txDescription = !commentString.isEmpty() ? commentString : (!received ? "sent to " : "received via ") + wallet.decorateAddress(mContext, item.getToRecipient(wallet, received)); - } else { - txDescription = !commentString.isEmpty() ? commentString : (!received ? "sending to " : "receiving via ") + wallet.decorateAddress(mContext, item.getToRecipient(wallet, received)); - } - } convertView.transactionDetail.setText(txDescription); convertView.transactionDate.setText(shortDate + " " + txDate); } diff --git a/app/src/main/java/com/wagerrwallet/tools/animation/BRAnimator.java b/app/src/main/java/com/wagerrwallet/tools/animation/BRAnimator.java index 78d2e898c..1cc24fa76 100644 --- a/app/src/main/java/com/wagerrwallet/tools/animation/BRAnimator.java +++ b/app/src/main/java/com/wagerrwallet/tools/animation/BRAnimator.java @@ -170,7 +170,73 @@ public void run() { public static void showSupportFragment(Activity app, String articleId) { - Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://t.me/Wagerrpublictest")); + String URL = "https://wagerr.zendesk.com/hc/en-us/"; + + switch (articleId) { + + case BRConstants.walletDisabled: + URL += "articles/360035353391-Why-is-my-wallet-disabled-"; + break; + + case BRConstants.receive: + URL += "articles/360035353511-How-do-I-receive-Wagerr-WGR-"; + break; + + case BRConstants.setPin: + URL += "/articles/360035353791-Why-do-i-need-a-PIN-"; + break; + + case BRConstants.enableFingerprint: + URL += "articles/360035353591-What-is-fingerprint-authentication-"; + break; + + case BRConstants.fingerprintSpendingLimit: + URL += "articles/360035353631-What-is-the-fingerprint-touch-ID-spending-limit-"; + break; + + case BRConstants.wipeWallet: + URL += "articles/360035358811-How-do-I-wipe-my-wallet-"; + break; + + case BRConstants.paperKey: + case BRConstants.writePhrase: + case BRConstants.recoverWallet: + URL += "articles/360035353811-What-is-a-recovery-key-"; + break; + + case BRConstants.importWallet: + URL += "articles/360034979472-What-happens-when-I-import-a-Wagerr-private-key-"; + break; + + case BRConstants.displayCurrency: + URL += "articles/360035353871-How-does-the-Wagerr-wallet-app-show-my-balance-in-my-local-currency-"; + break; + + case BRConstants.reScan: + URL += "articles/360034979492-When-should-I-re-sync-my-Wagerr-wallet-with-the-blockchain-"; + break; + + case BRConstants.securityCenter: + URL += "articles/360035353831-What-is-the-Security-Center-"; + break; + + case BRConstants.send: + URL += "articles/360034979232-How-can-I-send-Wagerr-WGR-"; + break; + + case BRConstants.requestAmount: + URL += "articles/360034983592-How-do-I-use-the-Request-an-Amount-screen-in-my-Wagerr-wallet-"; + break; + + case BRConstants.betSlip: + URL += "articles/360035358891-Betting-Slip"; + break; + + default: + URL += "categories/360002247832-Mobile-Application"; + break; + } + Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(URL)); app.startActivity(browserIntent); app.overridePendingTransition(R.anim.enter_from_bottom, R.anim.empty_300); diff --git a/app/src/main/java/com/wagerrwallet/tools/manager/BRSharedPrefs.java b/app/src/main/java/com/wagerrwallet/tools/manager/BRSharedPrefs.java index d3637b139..75646b9ae 100644 --- a/app/src/main/java/com/wagerrwallet/tools/manager/BRSharedPrefs.java +++ b/app/src/main/java/com/wagerrwallet/tools/manager/BRSharedPrefs.java @@ -458,6 +458,19 @@ public static void putShareDataDismissed(Context context, boolean dismissed) { editor.apply(); } + public static boolean getFingerprintDismissed(Context context) { + SharedPreferences settingsToGet = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); + return settingsToGet.getBoolean("FingerprintDismissed", false); + } + + public static void putFingerprintDismissed(Context context, boolean dismissed) { + if (context == null) return; + SharedPreferences settings = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = settings.edit(); + editor.putBoolean("FingerprintDismissed", dismissed); + editor.apply(); + } + public static String getTrustNode(Context context, String iso) { SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); return prefs.getString("trustNode_" + iso.toUpperCase(), ""); diff --git a/app/src/main/java/com/wagerrwallet/tools/manager/PromptManager.java b/app/src/main/java/com/wagerrwallet/tools/manager/PromptManager.java index 5e10e871a..27d471a5a 100644 --- a/app/src/main/java/com/wagerrwallet/tools/manager/PromptManager.java +++ b/app/src/main/java/com/wagerrwallet/tools/manager/PromptManager.java @@ -86,7 +86,7 @@ public boolean shouldPrompt(Context app, PromptItem item) { assert (app != null); switch (item) { case FINGER_PRINT: - return !BRSharedPrefs.getUseFingerprint(app) && Utils.isFingerprintAvailable(app); + return !BRSharedPrefs.getUseFingerprint(app) && Utils.isFingerprintAvailable(app) && !BRSharedPrefs.getFingerprintDismissed(app); case PAPER_KEY: return !BRSharedPrefs.getPhraseWroteDown(app); case UPGRADE_PIN: @@ -95,7 +95,7 @@ public boolean shouldPrompt(Context app, PromptItem item) { BaseWalletManager wallet = WalletsMaster.getInstance(app).getCurrentWallet(app); return wallet != null && BRSharedPrefs.getScanRecommended(app, wallet.getIso(app)); case SHARE_DATA: - return !BRSharedPrefs.getShareData(app) && !BRSharedPrefs.getShareDataDismissed(app); + return false; /*!BRSharedPrefs.getShareData(app) && !BRSharedPrefs.getShareDataDismissed(app);*/ // disabled by request } return false; diff --git a/app/src/main/java/com/wagerrwallet/tools/util/BRConstants.java b/app/src/main/java/com/wagerrwallet/tools/util/BRConstants.java index e39a9e4bc..7713716f4 100644 --- a/app/src/main/java/com/wagerrwallet/tools/util/BRConstants.java +++ b/app/src/main/java/com/wagerrwallet/tools/util/BRConstants.java @@ -117,6 +117,8 @@ public class BRConstants { public static final String loopBug = "android-loop-bug"; public static final String bchFaq = "bitcoin-cash"; + public static final String betSlip = "bet-slip"; + private BRConstants() { } diff --git a/app/src/main/java/com/wagerrwallet/wallet/wallets/wagerr/WalletWagerrManager.java b/app/src/main/java/com/wagerrwallet/wallet/wallets/wagerr/WalletWagerrManager.java index 48695498c..6d43c56ff 100644 --- a/app/src/main/java/com/wagerrwallet/wallet/wallets/wagerr/WalletWagerrManager.java +++ b/app/src/main/java/com/wagerrwallet/wallet/wallets/wagerr/WalletWagerrManager.java @@ -287,7 +287,7 @@ public List getTxUiHolders() { tx.getOutputAddresses(), tx.getInputAddresses(), getWallet().getBalanceAfterTransaction(tx), (int) tx.getSize(), getWallet().getTransactionAmount(tx), getWallet().transactionIsValid(tx) - , (tx.getInputAddresses().length==1 && tx.getOutputAddresses().length>=1 && tx.getInputAddresses()[0].length()==0 && tx.getOutputAddresses()[0].length()==0) ); // is coinbase or POS + , (tx.getInputAddresses().length==1 && tx.getOutputAddresses().length>=1 && tx.getOutputAddresses()[0].length()==0) ); // is coinbase or POS BetEntity be = WagerrOpCodeManager.getEventIdFromCoreTx(tx); txUiHolder.setBetEntity(be); diff --git a/app/src/main/jni/breadwallet-core b/app/src/main/jni/breadwallet-core index d477b76e9..867b82ecc 160000 --- a/app/src/main/jni/breadwallet-core +++ b/app/src/main/jni/breadwallet-core @@ -1 +1 @@ -Subproject commit d477b76e982749429ec2dd287cef7b3c8f4ca446 +Subproject commit 867b82ecc10ca4f83142db5d663fb022aaab7335 diff --git a/app/src/main/res/layout/event_details.xml b/app/src/main/res/layout/event_details.xml index e66aeec6d..3c2d675ca 100644 --- a/app/src/main/res/layout/event_details.xml +++ b/app/src/main/res/layout/event_details.xml @@ -20,11 +20,22 @@ android:layout_height="28dp" android:layout_marginBottom="-35dp" android:layout_above="@+id/tx_eventheader" - android:layout_alignParentRight="true" - android:layout_marginRight="30dp" + android:layout_alignParentLeft="true" + android:layout_marginLeft="15dp" android:padding="50dp" android:background="@drawable/ic_close_light_grey"/> + + diff --git a/app/src/main/res/layout/transaction_details.xml b/app/src/main/res/layout/transaction_details.xml index f22776341..996762c28 100644 --- a/app/src/main/res/layout/transaction_details.xml +++ b/app/src/main/res/layout/transaction_details.xml @@ -199,47 +199,14 @@ android:textSize="12sp" app:customTFont="CircularPro-Book.otf" /> - - - - - @@ -383,6 +350,22 @@ android:textColor="@color/settings_chevron_right" app:customTFont="CircularPro-Book.otf"/> + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index dda68b4e3..8643fd48e 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -74,7 +74,8 @@ #e0e5e8 #b3c0c8 #4cbf2c - #df001c + #4cbf2c + #df001c #cccccc #f46b41 #70ffffff