diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index a9d6827e1..663bf4b1b 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser index 3be3e1346..e298ddf6c 100644 Binary files a/.idea/caches/gradle_models.ser and b/.idea/caches/gradle_models.ser differ diff --git a/app/build.gradle b/app/build.gradle index 373bf6b32..ef1b30997 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId = 'com.wagerrwallet' minSdkVersion 23 targetSdkVersion 28 - versionCode 239 - versionName "239" + versionCode 240 + versionName "240" multiDexEnabled true // Similar to other properties in the defaultConfig block, @@ -172,4 +172,5 @@ dependencies { implementation 'junit:junit:4.12' implementation 'com.android.support.test.espresso:espresso-core:3.0.1' implementation 'tools.fastlane:screengrab:1.1.0' -} \ No newline at end of file + implementation 'com.android.support:support-v4:27.1.1' +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7a9acf8e6..4a20b53ff 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,42 +3,39 @@ xmlns:tools="http://schemas.android.com/tools" package="com.wagerrwallet"> - - - - - - - - - - - - + + + + + + + + + + + + - - - - - + tools:ignore="ProtectedPermissions" /> + + + android:required="false" /> + android:required="false" /> + android:required="false" /> + android:required="true" /> + android:required="false" /> + + android:resource="@xml/provider_paths" /> - + - + - + - - + + - - - - + + + + - + + android:resource="@xml/searchable" /> - + - - + + - - - - + + + + - + + android:resource="@xml/searchable" /> - + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" /> - + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" /> - + android:screenOrientation="portrait" /> - + android:screenOrientation="portrait"> + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" /> - + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" /> - + android:screenOrientation="portrait" /> - + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" /> - - + android:screenOrientation="portrait"> + android:windowSoftInputMode="adjustResize" /> + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" /> + android:screenOrientation="portrait" /> - + android:screenOrientation="portrait" /> - + android:screenOrientation="portrait" /> - - + android:screenOrientation="portrait"> + android:label="SyncReceiver" /> \ No newline at end of file diff --git a/app/src/main/java/com/wagerrwallet/presenter/activities/EventsActivity.java b/app/src/main/java/com/wagerrwallet/presenter/activities/EventsActivity.java index 52378b85e..7b5b6f9d7 100644 --- a/app/src/main/java/com/wagerrwallet/presenter/activities/EventsActivity.java +++ b/app/src/main/java/com/wagerrwallet/presenter/activities/EventsActivity.java @@ -42,6 +42,8 @@ import com.platform.HTTPServer; import com.wagerrwallet.R; import com.wagerrwallet.core.BRCorePeer; +import com.wagerrwallet.presenter.activities.settings.BetSettings; +import com.wagerrwallet.presenter.activities.settings.SettingsActivity; import com.wagerrwallet.presenter.activities.settings.WebViewActivity; import com.wagerrwallet.presenter.activities.util.BRActivity; import com.wagerrwallet.presenter.customviews.BRButton; @@ -106,6 +108,7 @@ public class EventsActivity extends BRActivity implements InternetManager.Connec public ViewFlipper barFlipper; private BREventSearchBar searchBar; private ImageButton mSearchIcon; + private ImageButton mSettingsIcon; private ImageButton mSwap; private ConstraintLayout toolBarConstraintLayout; @@ -143,6 +146,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { barFlipper = findViewById(R.id.tool_bar_flipper); searchBar = findViewById(R.id.search_bar); mSearchIcon = findViewById(R.id.search_icon); + mSettingsIcon = findViewById(R.id.settings_icon); toolBarConstraintLayout = findViewById(R.id.bread_toolbar); mSwap = findViewById(R.id.swap); mBalanceLabel = findViewById(R.id.balance_label); @@ -176,7 +180,7 @@ public void onItemSelected(AdapterView parent, View view, int position, long } if (EventTxManager.getInstance().adapter != null) - EventTxManager.getInstance().adapter.filter( filterSwitches, true); + EventTxManager.getInstance().adapter.filter( filterSwitches, true, searchBar.getSearchQuery()); updateTournaments(); } @@ -197,7 +201,7 @@ public void onItemSelected(AdapterView parent, View view, int position, long } if (EventTxManager.getInstance().adapter != null) - EventTxManager.getInstance().adapter.filter( filterSwitches, true); + EventTxManager.getInstance().adapter.filter( filterSwitches, true, searchBar.getSearchQuery()); } @Override @@ -248,6 +252,15 @@ public void onClick(View view) { } }); + mSettingsIcon.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(EventsActivity.this, BetSettings.class); + startActivity(intent); + overridePendingTransition(R.anim.enter_from_right, R.anim.exit_to_left); + } + }); + mBalancePrimary.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/wagerrwallet/presenter/activities/WalletActivity.java b/app/src/main/java/com/wagerrwallet/presenter/activities/WalletActivity.java index fdbfb61cd..e717f8130 100644 --- a/app/src/main/java/com/wagerrwallet/presenter/activities/WalletActivity.java +++ b/app/src/main/java/com/wagerrwallet/presenter/activities/WalletActivity.java @@ -85,10 +85,6 @@ public class WalletActivity extends BRActivity implements InternetManager.Connec BRText mBalanceLabel; BRText mProgressLabel; ProgressBar mProgressBar; - private BRButton betHistoryFilter; - private BRButton rewardsFilter; - public boolean[] filterSwitches = new boolean[2]; - public ViewFlipper barFlipper; private BRSearchBar searchBar; @@ -132,22 +128,6 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { mProgressLabel = findViewById(R.id.syncing_label); mProgressBar = findViewById(R.id.sync_progress); mNotificationBar = findViewById(R.id.notification_bar); - betHistoryFilter = findViewById(R.id.bet_filter); - betHistoryFilter.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - filterSwitches[0] = !filterSwitches[0]; - updateFilterButtonsUI(filterSwitches); - } - }); - rewardsFilter = findViewById(R.id.reward_filter); - rewardsFilter.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - filterSwitches[1] = !filterSwitches[1]; - updateFilterButtonsUI(filterSwitches); - } - }); if (Utils.isEmulatorOrDebug(this)) { if (logger != null) logger.interrupt(); @@ -248,13 +228,6 @@ public void onClick(View v) { } - private void updateFilterButtonsUI(boolean[] switches) { - betHistoryFilter.setType(switches[0] ? 3 : 2); - rewardsFilter.setType(switches[1] ? 3 : 2); - if (TxManager.getInstance().adapter != null) - TxManager.getInstance().adapter.filterBetHistory( filterSwitches, true); - } - @Override protected void onDestroy() { super.onDestroy(); diff --git a/app/src/main/java/com/wagerrwallet/presenter/activities/settings/AppCompatPreferenceActivity.java b/app/src/main/java/com/wagerrwallet/presenter/activities/settings/AppCompatPreferenceActivity.java new file mode 100644 index 000000000..266c32bbe --- /dev/null +++ b/app/src/main/java/com/wagerrwallet/presenter/activities/settings/AppCompatPreferenceActivity.java @@ -0,0 +1,109 @@ +package com.wagerrwallet.presenter.activities.settings; + +import android.content.res.Configuration; +import android.os.Bundle; +import android.preference.PreferenceActivity; +import android.support.annotation.LayoutRes; +import android.support.annotation.Nullable; +import android.support.v7.app.ActionBar; +import android.support.v7.app.AppCompatDelegate; +import android.support.v7.widget.Toolbar; +import android.view.MenuInflater; +import android.view.View; +import android.view.ViewGroup; + +/** + * A {@link android.preference.PreferenceActivity} which implements and proxies the necessary calls + * to be used with AppCompat. + */ +public abstract class AppCompatPreferenceActivity extends PreferenceActivity { + + private AppCompatDelegate mDelegate; + + @Override + protected void onCreate(Bundle savedInstanceState) { + getDelegate().installViewFactory(); + getDelegate().onCreate(savedInstanceState); + super.onCreate(savedInstanceState); + } + + @Override + protected void onPostCreate(Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + getDelegate().onPostCreate(savedInstanceState); + } + + public ActionBar getSupportActionBar() { + return getDelegate().getSupportActionBar(); + } + + public void setSupportActionBar(@Nullable Toolbar toolbar) { + getDelegate().setSupportActionBar(toolbar); + } + + @Override + public MenuInflater getMenuInflater() { + return getDelegate().getMenuInflater(); + } + + @Override + public void setContentView(@LayoutRes int layoutResID) { + getDelegate().setContentView(layoutResID); + } + + @Override + public void setContentView(View view) { + getDelegate().setContentView(view); + } + + @Override + public void setContentView(View view, ViewGroup.LayoutParams params) { + getDelegate().setContentView(view, params); + } + + @Override + public void addContentView(View view, ViewGroup.LayoutParams params) { + getDelegate().addContentView(view, params); + } + + @Override + protected void onPostResume() { + super.onPostResume(); + getDelegate().onPostResume(); + } + + @Override + protected void onTitleChanged(CharSequence title, int color) { + super.onTitleChanged(title, color); + getDelegate().setTitle(title); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + getDelegate().onConfigurationChanged(newConfig); + } + + @Override + protected void onStop() { + super.onStop(); + getDelegate().onStop(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + getDelegate().onDestroy(); + } + + public void invalidateOptionsMenu() { + getDelegate().invalidateOptionsMenu(); + } + + private AppCompatDelegate getDelegate() { + if (mDelegate == null) { + mDelegate = AppCompatDelegate.create(this, null); + } + return mDelegate; + } +} diff --git a/app/src/main/java/com/wagerrwallet/presenter/activities/settings/BetSettings.java b/app/src/main/java/com/wagerrwallet/presenter/activities/settings/BetSettings.java new file mode 100644 index 000000000..188a788f9 --- /dev/null +++ b/app/src/main/java/com/wagerrwallet/presenter/activities/settings/BetSettings.java @@ -0,0 +1,87 @@ +package com.wagerrwallet.presenter.activities.settings; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.graphics.Typeface; +import android.os.Bundle; +import android.os.Handler; +import android.support.v7.widget.AppCompatCheckBox; +import android.util.TypedValue; +import android.view.Gravity; +import android.view.View; +import android.view.inputmethod.InputMethodManager; +import android.widget.Button; +import android.widget.CheckedTextView; +import android.widget.CompoundButton; +import android.widget.EditText; +import android.widget.ImageButton; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.wagerrwallet.R; +import com.wagerrwallet.core.BRCoreKey; +import com.wagerrwallet.core.BRCoreMerkleBlock; +import com.wagerrwallet.core.BRCorePeer; +import com.wagerrwallet.presenter.activities.util.BRActivity; +import com.wagerrwallet.tools.animation.BRAnimator; +import com.wagerrwallet.tools.manager.BRSharedPrefs; +import com.wagerrwallet.tools.sqlite.MerkleBlockDataSource; +import com.wagerrwallet.tools.threads.executor.BRExecutor; +import com.wagerrwallet.tools.util.TrustedNode; +import com.wagerrwallet.tools.util.Utils; +import com.wagerrwallet.wallet.WalletsMaster; +import com.wagerrwallet.wallet.wallets.wagerr.WalletWagerrManager; + +public class BetSettings extends BRActivity { + private static final String TAG = BetSettings.class.getName(); + public static String FEATURE_DISPLAY_ODDS = "wgr_displaymodifiedodds"; + + private AppCompatCheckBox chkDisplayOdds; + private static BetSettings app; + + + public static BetSettings getApp() { + return app; + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_betsettings); + + chkDisplayOdds = findViewById(R.id.chk_displayodds); + + chkDisplayOdds.setChecked(BRSharedPrefs.getFeatureEnabled(this, FEATURE_DISPLAY_ODDS, true)); + chkDisplayOdds.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + BRSharedPrefs.putFeatureEnabled(app, isChecked, FEATURE_DISPLAY_ODDS); + } + }); + } + + @Override + protected void onResume() { + super.onResume(); + app = this; + } + + @Override + protected void onPause() { + super.onPause(); + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + overridePendingTransition(R.anim.enter_from_left, R.anim.exit_to_right); + } + +} 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 b94563149..fa43ea24c 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 @@ -242,6 +242,15 @@ public void onClick(View v) { } }, false)); + items.add(new BRSettingsItem("Bet settings", "", new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(SettingsActivity.this, BetSettings.class); + startActivity(intent); + overridePendingTransition(R.anim.enter_from_right, R.anim.exit_to_left); + } + }, false)); + items.add(new BRSettingsItem(getString(R.string.Settings_other), "", null, true)); /* remove this option upon request items.add(new BRSettingsItem(getString(R.string.Settings_shareData), "ON", new View.OnClickListener() { diff --git a/app/src/main/java/com/wagerrwallet/presenter/customviews/BREventSearchBar.java b/app/src/main/java/com/wagerrwallet/presenter/customviews/BREventSearchBar.java index 50e7d286b..ae8812af2 100644 --- a/app/src/main/java/com/wagerrwallet/presenter/customviews/BREventSearchBar.java +++ b/app/src/main/java/com/wagerrwallet/presenter/customviews/BREventSearchBar.java @@ -11,6 +11,7 @@ import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; +import android.widget.LinearLayout; import com.wagerrwallet.R; import com.wagerrwallet.presenter.activities.EventsActivity; @@ -53,6 +54,8 @@ public class BREventSearchBar extends android.support.v7.widget.Toolbar { private BRButton completedFilter; private BRButton cancelButton; private EventsActivity breadActivity; + private LinearLayout barLayout; + private LinearLayout betbarLayout; public long[] filterSwitches = new long[4]; @@ -81,6 +84,10 @@ private void init() { pendingFilter = (BRButton) findViewById(R.id.pending_filter); completedFilter = (BRButton) findViewById(R.id.complete_filter); cancelButton = (BRButton) findViewById(R.id.cancel_button); + barLayout = (LinearLayout) findViewById(R.id.filter_buttons_layout); + barLayout.setVisibility(GONE); + betbarLayout = (LinearLayout) findViewById(R.id.bet_filter_buttons_layout); + betbarLayout.setVisibility(GONE); clearSwitches(); setListeners(); @@ -241,5 +248,7 @@ public void run() { } } - + public String getSearchQuery() { + return searchEdit.getText().toString(); + } } \ No newline at end of file diff --git a/app/src/main/java/com/wagerrwallet/presenter/customviews/BRSearchBar.java b/app/src/main/java/com/wagerrwallet/presenter/customviews/BRSearchBar.java index aaf4d1f08..a1aa25986 100644 --- a/app/src/main/java/com/wagerrwallet/presenter/customviews/BRSearchBar.java +++ b/app/src/main/java/com/wagerrwallet/presenter/customviews/BRSearchBar.java @@ -51,8 +51,13 @@ public class BRSearchBar extends android.support.v7.widget.Toolbar { private BRButton pendingFilter; private BRButton completedFilter; private BRButton cancelButton; + + private BRButton betHistoryFilter; + private BRButton rewardsFilter; + private WalletActivity breadActivity; + public boolean[] betfilterSwitches = new boolean[2]; public boolean[] filterSwitches = new boolean[4]; public BRSearchBar(Context context) { @@ -84,6 +89,24 @@ private void init() { clearSwitches(); setListeners(); + betHistoryFilter = findViewById(R.id.bet_filter); + betHistoryFilter.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + betfilterSwitches[0] = !betfilterSwitches[0]; + updateBetFilterButtonsUI(betfilterSwitches); + } + }); + rewardsFilter = findViewById(R.id.reward_filter); + rewardsFilter.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + betfilterSwitches[1] = !betfilterSwitches[1]; + updateBetFilterButtonsUI(betfilterSwitches); + } + }); + + searchEdit.requestFocus(); searchEdit.postDelayed(new Runnable() { @@ -111,7 +134,14 @@ private void updateFilterButtonsUI(boolean[] switches) { pendingFilter.setType(switches[2] ? 3 : 2); completedFilter.setType(switches[3] ? 3 : 2); if (TxManager.getInstance().adapter != null) - TxManager.getInstance().adapter.filterBy(searchEdit.getText().toString(), filterSwitches); + TxManager.getInstance().adapter.filterBy(searchEdit.getText().toString(), filterSwitches, betfilterSwitches); + } + + private void updateBetFilterButtonsUI(boolean[] switches) { + betHistoryFilter.setType(switches[0] ? 3 : 2); + rewardsFilter.setType(switches[1] ? 3 : 2); + if (TxManager.getInstance().adapter != null) + TxManager.getInstance().adapter.filterBy( searchEdit.getText().toString(), filterSwitches, betfilterSwitches); } private void setListeners() { @@ -146,7 +176,7 @@ public void beforeTextChanged(CharSequence s, int start, int count, int after) { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { if (TxManager.getInstance().adapter != null) - TxManager.getInstance().adapter.filterBy(s.toString(), filterSwitches); + TxManager.getInstance().adapter.filterBy(s.toString(), filterSwitches, betfilterSwitches); } @Override @@ -207,6 +237,8 @@ public void clearSwitches() { filterSwitches[1] = false; filterSwitches[2] = false; filterSwitches[3] = false; + betfilterSwitches[0] = false; + betfilterSwitches[1] = false; } public void onShow(boolean b) { @@ -216,6 +248,7 @@ public void onShow(boolean b) { if (b) { clearSwitches(); updateFilterButtonsUI(filterSwitches); + updateBetFilterButtonsUI(betfilterSwitches); new Handler().postDelayed(new Runnable() { @Override public void run() { diff --git a/app/src/main/java/com/wagerrwallet/presenter/entities/BetEventEntity.java b/app/src/main/java/com/wagerrwallet/presenter/entities/BetEventEntity.java index 20a461291..842d415a7 100644 --- a/app/src/main/java/com/wagerrwallet/presenter/entities/BetEventEntity.java +++ b/app/src/main/java/com/wagerrwallet/presenter/entities/BetEventEntity.java @@ -1,6 +1,12 @@ package com.wagerrwallet.presenter.entities; +import com.wagerrwallet.WagerrApp; +import com.wagerrwallet.presenter.activities.settings.BetSettings; +import com.wagerrwallet.tools.manager.BRSharedPrefs; + +import java.text.DecimalFormat; + /** * BreadWallet *

@@ -190,19 +196,33 @@ public long getAwayTeamID() { return awayTeamID; } + public String getOddTx( float odd) { + DecimalFormat df = new DecimalFormat("0.00"); + return df.format(odd); + } + public String getTxHomeOdds() { if (homeOdds==0) return "N/A"; - else return String.valueOf((float)homeOdds/ODDS_MULTIPLIER); + else return getOddTx(getOdds((float)homeOdds/ODDS_MULTIPLIER)); } public String getTxAwayOdds() { if (awayOdds==0) return "N/A"; - else return String.valueOf((float)awayOdds/ODDS_MULTIPLIER); + else return getOddTx(getOdds((float)awayOdds/ODDS_MULTIPLIER)); } public String getTxDrawOdds() { if (drawOdds==0) return "N/A"; - else return String.valueOf((float)drawOdds/ODDS_MULTIPLIER); + else return getOddTx(getOdds((float)drawOdds/ODDS_MULTIPLIER)); + } + + public float getOdds( float odds ) { + if (BRSharedPrefs.getFeatureEnabled(WagerrApp.getBreadContext(), BetSettings.FEATURE_DISPLAY_ODDS, true)) { + return odds; + } + else { + return (float)((odds-1)*0.94)+1; + } } public long getHomeOdds() { @@ -239,12 +259,12 @@ public String getTxSpreadPoints() { public String getTxSpreadHomeOdds() { if (spreadHomeOdds==0) return "N/A"; - else return String.valueOf((float)spreadHomeOdds/ODDS_MULTIPLIER); + else return getOddTx(getOdds((float)spreadHomeOdds/ODDS_MULTIPLIER)); } public String getTxSpreadAwayOdds() { if (spreadAwayOdds==0) return "N/A"; - else return String.valueOf((float)spreadAwayOdds/ODDS_MULTIPLIER); + else return getOddTx(getOdds((float)spreadAwayOdds/ODDS_MULTIPLIER)); } public long getTotalPoints() { @@ -265,12 +285,12 @@ public String getTxTotalPoints() { public String getTxOverOdds() { if (overOdds==0) return "N/A"; - else return String.valueOf((float)overOdds/ODDS_MULTIPLIER); + else return getOddTx(getOdds((float)overOdds/ODDS_MULTIPLIER)); } public String getTxUnderOdds() { if (underOdds==0) return "N/A"; - else return String.valueOf((float)underOdds/ODDS_MULTIPLIER); + else return getOddTx(getOdds((float)underOdds/ODDS_MULTIPLIER)); } public String getTxSport() { diff --git a/app/src/main/java/com/wagerrwallet/presenter/entities/TxUiHolder.java b/app/src/main/java/com/wagerrwallet/presenter/entities/TxUiHolder.java index a0b68e73c..79abafd2d 100644 --- a/app/src/main/java/com/wagerrwallet/presenter/entities/TxUiHolder.java +++ b/app/src/main/java/com/wagerrwallet/presenter/entities/TxUiHolder.java @@ -53,8 +53,10 @@ public class TxUiHolder { private int txSize; public TxMetaData metaData; private BetEntity betEntity; + private String teamSearchDescription; private TxUiHolder() { + teamSearchDescription=""; } public TxUiHolder(long timeStamp, int blockHeight, byte[] hash, String txReversed, long sent, @@ -75,6 +77,7 @@ public TxUiHolder(long timeStamp, int blockHeight, byte[] hash, String txReverse this.txSize = txSize; this.isCoinbase = isCoinbase; betEntity = null; + this.teamSearchDescription = ""; } public BetEntity getBetEntity() { return betEntity;} @@ -156,4 +159,11 @@ public String getToRecipient( BaseWalletManager wm, boolean received ) { return ret; } + public void setTeamSearchDescription(String teamSearchDesc) { + teamSearchDescription = teamSearchDesc; + } + + public String getTeamSearchDescription() { + return teamSearchDescription; + } } 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 3cd588014..912e6bf07 100644 --- a/app/src/main/java/com/wagerrwallet/presenter/fragments/FragmentEventDetails.java +++ b/app/src/main/java/com/wagerrwallet/presenter/fragments/FragmentEventDetails.java @@ -29,7 +29,9 @@ import com.platform.entities.TxMetaData; import com.platform.tools.KVStoreManager; import com.wagerrwallet.R; +import com.wagerrwallet.WagerrApp; import com.wagerrwallet.core.BRCoreTransaction; +import com.wagerrwallet.presenter.activities.settings.BetSettings; import com.wagerrwallet.presenter.customviews.BRDialogView; import com.wagerrwallet.presenter.customviews.BRText; import com.wagerrwallet.presenter.entities.BetEntity; @@ -43,6 +45,7 @@ import com.wagerrwallet.tools.manager.BRClipboardManager; import com.wagerrwallet.tools.manager.BRSharedPrefs; import com.wagerrwallet.tools.manager.SendManager; +import com.wagerrwallet.tools.sqlite.BetEventTxDataStore; import com.wagerrwallet.tools.util.BRConstants; import com.wagerrwallet.tools.util.BRDateUtil; import com.wagerrwallet.tools.util.CurrencyUtils; @@ -143,6 +146,26 @@ public class FragmentEventDetails extends DialogFragment implements View.OnClick boolean mDetailsShowing = false; + private int mInterval = 3000; + private Handler mHandler; + private boolean updatingNode; + + // refresh to update odds + Runnable mStatusChecker = new Runnable() { + @Override + public void run() { + try { + Context app = WagerrApp.getBreadContext(); + mTransaction = BetEventTxDataStore.getInstance(app).getTransactionByEventId(app, "wgr", mTransaction.getEventID()); + updateUi(); + } finally { + // 100% guarantee that this always happens, even if + // your update method throws an exception + mHandler.postDelayed(mStatusChecker, mInterval); + } + } + }; + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -412,7 +435,8 @@ protected void setRewardAmount(long stake, float odds) { BaseWalletManager walletManager = WalletsMaster.getInstance(getActivity()).getCurrentWallet(getActivity()); try { - long rewardAmount = stake + (long)((stake * (odds - 1)) * 0.94); + boolean oddsSetting = BRSharedPrefs.getFeatureEnabled(WagerrApp.getBreadContext(), BetSettings.FEATURE_DISPLAY_ODDS, true); + long rewardAmount = stake + ((oddsSetting)?(long)((stake * (odds - 1)) * 0.94):(long)(stake * (odds-1))); 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); @@ -612,9 +636,9 @@ public void updateUi() { EventTxUiHolder item = mTransaction; mTxHomeTeam.setText( (item.getTxHomeTeam()!=null)?item.getTxHomeTeam():"Home N/A" ); mTxAwayTeam.setText( (item.getTxAwayTeam()!=null)?item.getTxAwayTeam():"Away N/A" ); - mTxHomeOdds.setText( (item.getTxHomeOdds()!=null)?item.getTxHomeOdds():"N/A" ); - mTxDrawOdds.setText( (item.getTxDrawOdds()!=null)?item.getTxDrawOdds():"N/A" ); - mTxAwayOdds.setText( (item.getTxAwayOdds()!=null)?item.getTxAwayOdds():"N/A" ); + mTxHomeOdds.setText( (item.getHomeOdds()>0)?item.getTxHomeOdds():"N/A" ); + mTxDrawOdds.setText( (item.getDrawOdds()>0)?item.getTxDrawOdds():"N/A" ); + mTxAwayOdds.setText( (item.getAwayOdds()>0)?item.getTxAwayOdds():"N/A" ); rlLastContainer = mMoneyLineContainer; // default... bHasSpreads = (item.getSpreadPoints()>0); @@ -737,6 +761,20 @@ public void run() { @Override public void onResume() { super.onResume(); + mHandler = new Handler(); + startRepeatingTask(); + } + @Override + public void onPause() { + super.onPause(); + stopRepeatingTask(); + } + + void startRepeatingTask() { + mStatusChecker.run(); + } + void stopRepeatingTask() { + mHandler.removeCallbacks(mStatusChecker); } } diff --git a/app/src/main/java/com/wagerrwallet/tools/adapter/EventListAdapter.java b/app/src/main/java/com/wagerrwallet/tools/adapter/EventListAdapter.java index 38bc80bf9..e38090a53 100644 --- a/app/src/main/java/com/wagerrwallet/tools/adapter/EventListAdapter.java +++ b/app/src/main/java/com/wagerrwallet/tools/adapter/EventListAdapter.java @@ -229,7 +229,7 @@ private void showTransactionFailed(EventHolder holder, EventTxUiHolder tx, boole } public void filterBy(String query, long[] switches) { - filter(switches, true); + filter(switches, true, query); } public void resetFilter() { @@ -237,18 +237,28 @@ public void resetFilter() { notifyDataSetChanged(); } - public void filter(final long[] switches, boolean bNotify) { + public void filter(final long[] switches, boolean bNotify, String query) { long start = System.currentTimeMillis(); int switchesON = 0; for (long i : switches) if (i>0) switchesON++; final List filteredList = new ArrayList<>(); + String lowerQuery = query.toLowerCase().trim(); EventTxUiHolder item; for (int i = 0; i < backUpFeed.size(); i++) { item = backUpFeed.get(i); - if ( (switches[0]==-1 || switches[0]==item.getSportID()) - && (switches[1]==-1 || switches[1]==item.getTournamentID()) ) { - filteredList.add(item); + // team match + boolean matchesTeam = item.getTxHomeTeam().toLowerCase().contains(lowerQuery) + || item.getTxAwayTeam().toLowerCase().contains(lowerQuery); + if ( matchesTeam ) { + if (switchesON == 0) { + filteredList.add(item); + } else { + if ((switches[0] == -1 || switches[0] == item.getSportID()) + && (switches[1] == -1 || switches[1] == item.getTournamentID())) { + filteredList.add(item); + } + } } } filterSwitches = switches; 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 109deaca7..ecd9e2073 100644 --- a/app/src/main/java/com/wagerrwallet/tools/adapter/TransactionListAdapter.java +++ b/app/src/main/java/com/wagerrwallet/tools/adapter/TransactionListAdapter.java @@ -73,7 +73,9 @@ public class TransactionListAdapter extends RecyclerView.Adapter backUpFeed; private List itemFeed; // private Map mds; - public boolean[] filterSwitches; // = new boolean[1]; + public boolean[] filterSwitches = { false, false, false, false }; + public boolean[] betfilterSwitches = { false, false }; + public String filterQuery=""; private final int txType = 0; private final int promptType = 1; @@ -101,9 +103,6 @@ private void init(List items) { if (backUpFeed == null) backUpFeed = new ArrayList<>(); this.itemFeed = items; this.backUpFeed = items; - if (filterSwitches!=null) { - filterBetHistory(filterSwitches, false); - } } public void updateData() { @@ -289,6 +288,7 @@ else if (confirms == 3) if (ev != null) { txDescription = ev.getEventDescriptionForBet(item.getBetEntity().getOutcome()); txDate = ev.getEventDateForBet(item.getBetEntity().getOutcome()); + item.setTeamSearchDescription(txDescription); } else { txDescription = String.format("Event #%d: info not avalable", eventID); txDate = String.format("BET %s", item.getBetEntity().getOutcome().toString()); @@ -348,8 +348,12 @@ private void showTransactionFailed(TxHolder holder, TxUiHolder tx, boolean recei } } - public void filterBy(String query, boolean[] switches) { - filter(query, switches); + public void filterBy(String query, boolean[] switches, boolean[] betswitches) { + filter(query, switches, betswitches); + } + + public void filterBy() { + filter(filterQuery, filterSwitches, betfilterSwitches); } public boolean FilterItem( TxUiHolder item, boolean[] switches) { @@ -383,7 +387,7 @@ public void resetFilter() { notifyDataSetChanged(); } - private void filter(final String query, final boolean[] switches) { + private void filter(final String query, final boolean[] switches, final boolean[] betswitches) { BaseWalletManager wallet = WalletsMaster.getInstance(mContext).getCurrentWallet(mContext); long start = System.currentTimeMillis(); @@ -393,6 +397,7 @@ private void filter(final String query, final boolean[] switches) { // return; int switchesON = 0; for (boolean i : switches) if (i) switchesON++; + for (boolean i : betswitches) if (i) switchesON++; final List filteredList = new ArrayList<>(); TxUiHolder item; @@ -401,7 +406,10 @@ private void filter(final String query, final boolean[] switches) { boolean matchesHash = item.getTxHashHexReversed() != null && item.getTxHashHexReversed().toLowerCase().contains(lowerQuery); boolean matchesAddress = item.getToRecipient(wallet, false).toLowerCase().contains(lowerQuery) || item.getToRecipient(wallet, true).toLowerCase().contains(lowerQuery); boolean matchesMemo = item.metaData != null && item.metaData.comment != null && item.metaData.comment.toLowerCase().contains(lowerQuery); - if (matchesHash || matchesAddress || matchesMemo) { + // team match + boolean matchesTeam = !item.getTeamSearchDescription().isEmpty() && item.getTeamSearchDescription().toLowerCase().contains(lowerQuery); + + if (matchesHash || matchesAddress || matchesMemo || matchesTeam ) { if (switchesON == 0) { filteredList.add(item); } else { @@ -428,12 +436,19 @@ private void filter(final String query, final boolean[] switches) { willAdd = false; } + if (!FilterItem(item, betswitches)) { + willAdd = false; + } + if (willAdd) filteredList.add(item); } } } + filterSwitches = switches; + betfilterSwitches = betswitches; + filterQuery = query; itemFeed = filteredList; notifyDataSetChanged(); 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 75646b9ae..2a0b94b9e 100644 --- a/app/src/main/java/com/wagerrwallet/tools/manager/BRSharedPrefs.java +++ b/app/src/main/java/com/wagerrwallet/tools/manager/BRSharedPrefs.java @@ -296,6 +296,11 @@ public static boolean getFeatureEnabled(Context activity, String feature) { return prefs.getBoolean(feature, false); } + public static boolean getFeatureEnabled(Context activity, String feature, boolean defValue) { + SharedPreferences prefs = activity.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); + return prefs.getBoolean(feature, defValue); + } + public static void putFeatureEnabled(Context activity, boolean enabled, String feature) { SharedPreferences prefs = activity.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); diff --git a/app/src/main/java/com/wagerrwallet/tools/manager/EventTxManager.java b/app/src/main/java/com/wagerrwallet/tools/manager/EventTxManager.java index 29544566f..69060521d 100644 --- a/app/src/main/java/com/wagerrwallet/tools/manager/EventTxManager.java +++ b/app/src/main/java/com/wagerrwallet/tools/manager/EventTxManager.java @@ -73,8 +73,13 @@ public void init(final EventsActivity app) { txList, new RecyclerItemClickListener.OnItemClickListener() { @Override public void onItemClick(View view, int position, float x, float y) { - EventTxUiHolder item = adapter.getItems().get(position); - BRAnimator.showEventDetails(app, item, position); + try { + EventTxUiHolder item = adapter.getItems().get(position); + BRAnimator.showEventDetails(app, item, position); + } + catch (ArrayIndexOutOfBoundsException e) { + + } } @Override diff --git a/app/src/main/java/com/wagerrwallet/tools/manager/TxManager.java b/app/src/main/java/com/wagerrwallet/tools/manager/TxManager.java index 33543051a..c0769cd01 100644 --- a/app/src/main/java/com/wagerrwallet/tools/manager/TxManager.java +++ b/app/src/main/java/com/wagerrwallet/tools/manager/TxManager.java @@ -12,6 +12,7 @@ import com.wagerrwallet.R; import com.wagerrwallet.presenter.activities.WalletActivity; +import com.wagerrwallet.presenter.customviews.BRSearchBar; import com.wagerrwallet.presenter.entities.EventTxUiHolder; import com.wagerrwallet.presenter.entities.TxUiHolder; import com.wagerrwallet.tools.adapter.TransactionListAdapter; @@ -111,9 +112,7 @@ public void run() { final List currentItems = adapter.getItems(); currentItems.clear(); for (TxUiHolder item : items) { - if (adapter.FilterItem(item, ((WalletActivity) app).filterSwitches)) { - currentItems.add(item); - } + currentItems.add(item); } //adapter.setItems(betItems); //txList.setAdapter(adapter); diff --git a/app/src/main/java/com/wagerrwallet/tools/sqlite/CurrencyDataSource.java b/app/src/main/java/com/wagerrwallet/tools/sqlite/CurrencyDataSource.java index 552af30db..35a8252d5 100644 --- a/app/src/main/java/com/wagerrwallet/tools/sqlite/CurrencyDataSource.java +++ b/app/src/main/java/com/wagerrwallet/tools/sqlite/CurrencyDataSource.java @@ -35,6 +35,7 @@ import com.wagerrwallet.tools.manager.BRReportsManager; import com.wagerrwallet.tools.util.BRConstants; import com.wagerrwallet.tools.util.Utils; +import com.wagerrwallet.wallet.wallets.wagerr.WalletWagerrManager; import java.util.ArrayList; import java.util.Collection; @@ -127,6 +128,9 @@ public List getAllCurrencies(Context app, String iso) { new String[]{iso.toUpperCase()}, null, null, "\'" + BRSQLiteHelper.CURRENCY_CODE + "\'"); cursor.moveToFirst(); + + currencies.add(getBTCEntity()); + while (!cursor.isAfterLast()) { CurrencyEntity curEntity = cursorToCurrency(cursor); if ( !curEntity.code.equals(iso.toUpperCase()) ) { @@ -134,6 +138,7 @@ public List getAllCurrencies(Context app, String iso) { } cursor.moveToNext(); } + // make sure to close the cursor } finally { if (cursor != null) @@ -144,6 +149,15 @@ public List getAllCurrencies(Context app, String iso) { return currencies; } + public CurrencyEntity getBTCEntity() { + CurrencyEntity btcEntity = new CurrencyEntity(); + btcEntity.code="BTC"; + btcEntity.iso="BTC"; + btcEntity.name="Bitcoin"; + btcEntity.rate= 1; + return btcEntity; + } + public List getAllCurrencyCodes(Context app, String iso) { List ISOs = new ArrayList<>(); Cursor cursor = null; @@ -174,6 +188,10 @@ public CurrencyEntity getCurrencyByCode(Context app, String iso, String code) { Cursor cursor = null; CurrencyEntity result = null; try { + if (code.equals("BTC")) { + return getBTCEntity(); + } + database = openDatabase(); // printTest(); // Log.e(TAG, "getCurrencyByCode: code: " + code + ", iso: " + walletManager.getIso(app)); diff --git a/app/src/main/java/com/wagerrwallet/tools/util/CurrencyUtils.java b/app/src/main/java/com/wagerrwallet/tools/util/CurrencyUtils.java index a2f136908..ea8921e3b 100644 --- a/app/src/main/java/com/wagerrwallet/tools/util/CurrencyUtils.java +++ b/app/src/main/java/com/wagerrwallet/tools/util/CurrencyUtils.java @@ -60,25 +60,42 @@ public static String getFormattedAmount(Context app, String iso, BigDecimal amou DecimalFormatSymbols decimalFormatSymbols; Currency currency = null; String symbol = null; + int maxDecimals = 2; decimalFormatSymbols = currencyFormat.getDecimalFormatSymbols(); -// int decimalPoints = 0; + int minDecimals = 2; BaseWalletManager wallet = WalletsMaster.getInstance(app).getWalletByIso(app, iso); if (wallet != null) { symbol = wallet.getSymbol(app); amount = wallet.getCryptoForSmallestCrypto(app, amount); + maxDecimals = wallet.getMaxDecimalPlaces(app); } else { try { currency = Currency.getInstance(iso); symbol = currency.getSymbol(); + maxDecimals = currency.getDefaultFractionDigits() + 2; } catch (IllegalArgumentException e) { - e.printStackTrace(); + //e.printStackTrace(); + } + if (iso.toLowerCase().equals("btc")) { + maxDecimals = 8; + minDecimals = 4; + String symbolBitcoinSecondary = "\u0243"; + String symbolBitcoinPrimary = "\u20BF"; + SymbolUtils symbolUtils = new SymbolUtils(); + if (symbolUtils.doesDeviceSupportSymbol(symbolBitcoinPrimary)) { + symbol = symbolBitcoinPrimary; + + } else { + symbol = symbolBitcoinSecondary; + } } } decimalFormatSymbols.setCurrencySymbol(symbol); // currencyFormat.setMaximumFractionDigits(decimalPoints); currencyFormat.setGroupingUsed(true); - currencyFormat.setMaximumFractionDigits(currency != null ? currency.getDefaultFractionDigits() + 2 : wallet.getMaxDecimalPlaces(app)); // add 2 decimal places for Coin fiat denomination - too low at the moment. + currencyFormat.setMinimumFractionDigits(minDecimals); + currencyFormat.setMaximumFractionDigits(maxDecimals); // add 2 decimal places for Coin fiat denomination - too low at the moment. currencyFormat.setDecimalFormatSymbols(decimalFormatSymbols); currencyFormat.setNegativePrefix(decimalFormatSymbols.getCurrencySymbol() + "-"); currencyFormat.setNegativeSuffix(""); diff --git a/app/src/main/jni/breadwallet-core b/app/src/main/jni/breadwallet-core index 5eb209eff..f6315dd18 160000 --- a/app/src/main/jni/breadwallet-core +++ b/app/src/main/jni/breadwallet-core @@ -1 +1 @@ -Subproject commit 5eb209eff0ef884ccd210d07ef8900eee20dbfd7 +Subproject commit f6315dd18da5024e62870f469e1c32fc6a87538c diff --git a/app/src/main/res/drawable/ic_info_black_24dp.xml b/app/src/main/res/drawable/ic_info_black_24dp.xml new file mode 100644 index 000000000..158e2a72c --- /dev/null +++ b/app/src/main/res/drawable/ic_info_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_notifications_black_24dp.xml b/app/src/main/res/drawable/ic_notifications_black_24dp.xml new file mode 100644 index 000000000..81db489c8 --- /dev/null +++ b/app/src/main/res/drawable/ic_notifications_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_settings_white.xml b/app/src/main/res/drawable/ic_settings_white.xml new file mode 100644 index 000000000..1df431148 --- /dev/null +++ b/app/src/main/res/drawable/ic_settings_white.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_sync_black_24dp.xml b/app/src/main/res/drawable/ic_sync_black_24dp.xml new file mode 100644 index 000000000..5ede6fb7f --- /dev/null +++ b/app/src/main/res/drawable/ic_sync_black_24dp.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_betsettings.xml b/app/src/main/res/layout/activity_betsettings.xml new file mode 100644 index 000000000..428267bbe --- /dev/null +++ b/app/src/main/res/layout/activity_betsettings.xml @@ -0,0 +1,44 @@ + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_events.xml b/app/src/main/res/layout/activity_events.xml index 89f4f6f8d..0d5441706 100644 --- a/app/src/main/res/layout/activity_events.xml +++ b/app/src/main/res/layout/activity_events.xml @@ -189,7 +189,19 @@ android:layout_marginEnd="26dp" android:layout_marginBottom="98dp" android:background="@drawable/ic_search_white_24dp" - android:visibility="gone" + android:visibility="visible" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" /> + + diff --git a/app/src/main/res/layout/activity_wallet.xml b/app/src/main/res/layout/activity_wallet.xml index b4dd4854d..821967659 100644 --- a/app/src/main/res/layout/activity_wallet.xml +++ b/app/src/main/res/layout/activity_wallet.xml @@ -64,40 +64,6 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"/> - - - - + android:textSize="18sp" /> + + + + + + + @@ -65,7 +112,7 @@ android:layout_marginBottom="16dp" android:layout_marginEnd="4dp" android:layout_marginStart="8dp" - android:layout_marginTop="16dp" + android:layout_marginTop="2dp" android:paddingBottom="4dp" android:paddingTop="4dp" android:text="@string/Search.sent" @@ -82,7 +129,7 @@ android:layout_marginBottom="16dp" android:layout_marginEnd="4dp" android:layout_marginStart="4dp" - android:layout_marginTop="16dp" + android:layout_marginTop="2dp" android:paddingBottom="4dp" android:paddingTop="4dp" android:text="@string/Search.received" @@ -99,7 +146,7 @@ android:layout_marginBottom="16dp" android:layout_marginEnd="4dp" android:layout_marginStart="4dp" - android:layout_marginTop="16dp" + android:layout_marginTop="2dp" android:paddingBottom="4dp" android:paddingTop="4dp" android:text="@string/Search.pending" @@ -116,7 +163,7 @@ android:layout_marginBottom="16dp" android:layout_marginEnd="8dp" android:layout_marginStart="4dp" - android:layout_marginTop="16dp" + android:layout_marginTop="2dp" android:paddingBottom="4dp" android:paddingTop="4dp" android:text="@string/Search.complete" diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png index ea5876aa2..c56d32af7 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png index ea5876aa2..66ce15f0f 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png index ea5876aa2..ec2c7d52f 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index ea5876aa2..c726f200f 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index ea5876aa2..78110516c 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a533a68e5..1410ae2a0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,782 +1,855 @@ - - Wagerr - - Blog - - Made by the global Bread team. Version %1$s - - Privacy Policy - - Reddit - - Terms of Use - - About - - Twitter - - Close - - Support Center - - Loading Wallet - - My Wagerr - - It looks like you are using a third-party keyboard, which can record what you type and steal your Paper Key. Please switch to the default Android keyboard for extra protection. - - Error - - There is a problem with your Android OS keystore, please contact support@wagerr.com - - Your Wagerr encrypted data was recently invalidated because your Android lock screen was disabled. - - Android KeyStore Error - - No internet connection found. Check your connection and try again. - - Warning - - Addresses Copied - - All wallet addresses successfully copied. - - Paper Key Set - - Awesome! - - PIN Set - - Send failed - - Send Confirmation - - Money Sent! - - Fingerprint recognized - - JSON Serialization Error - - Wallet not ready - - Unable to retrieve API token - - Enter a destination BCH address below. All BCH in your wallet at the time of the fork (%1$s) will be sent. - - Confirm sending %1$s to %2$s - - Confirmation - - Your account does not contain any BCH, or you received BCH after the fork. - - Transaction ID copied - - Please enter an address - - Payment Protocol Requests are not supported for BCH transactions - - BCH was successfully sent. - - Withdraw BCH - - BCH Transaction ID - - Approve - - %1$s is requesting authentication using your bitcoin wallet - - Deny - - Authentication Error - - Please check with the service. You may need to try again. - - Successfully Authenticated - - BitID Authentication Request - - Cancel - - Ignore - - menu - - No - - OK - - receive - - send - - Settings - - Submit - - Yes - - Center your ID in the box - - Amount to Send: - - Network Fee: - - Processing time: This transaction is predicted to complete in %1$s. - - Send - - Confirmation - - To - - Total Cost: - - To make sure everything was written down correctly, please enter the following words from your paper key. - - Word #%1$s - - Wagerr Display Unit - - Exchange Rate - - This device isn\'t configured to send email with the iOS mail app. - - Email Unavailable - - Wagerr can not be authenticated due to a bug in your version of Android. [Please tap here for more information.] - - This device isn\'t configured to send messages. - - Messaging Unavailable - - Fingerprint not recognized. Please try again. - - Economy - - 1-24 hours - - This option is not recommended for time-sensitive transactions. - - Estimated Delivery: %1$s - - Regular - - 10-60 minutes - - Processing Speed - - Checking private key balance... - - Send %1$s from this private key into your wallet? The wagerr network will receive a fee of %2$s. - - This private key is already in your wallet. - - This private key is empty. - - Transaction fees would cost more than the funds available on this private key. - - Not a valid private key - - Error signing transaction - - Import - - Importing Wallet - - Wallet to be imported - - Importing a wallet transfers all the money from your other wallet into your Wagerr wallet using a single transaction. - - This private key is password protected. - - password - - Your Wagerr Wallet - - Scan Private Key - - Success - - Successfully imported wallet. - - Import Wallet - - Unlocking Key - - Importing a wallet does not include transaction history or other details. - - Wrong password, please try again. - - Close - - Ignore - - DEVICE SECURITY COMPROMISED\n Any \'jailbreak\' app can access Wagerr\'s keychain data and steal your Wagerr! Wipe this wallet immediately and restore on a secure device. - - DEVICE SECURITY COMPROMISED\n Any \'jailbreak\' app can access Wagerr\'s keychain data and steal your Wagerr. Please only use Wagerr on a non-jailbroken device. - - WARNING - - Location services are disabled. - - Wagerr does not have permission to access location services. - - You created your wallet on %1$s - - Your wallet name only appears in your account transaction history and cannot be seen by anyone else. - - Wallet Name - - Manage Wallet - - Buy Bitcoin - - Lock Wallet - - Security Center - - Settings - - Support - - Create New Wallet - - Menu - - Recover Wallet - - Switch to Automatic Mode - - Connected - - Enter Node IP address and port (optional) - - Enter Node - - Switch to Manual Mode - - Current Primary Node - - Not Connected - - Node Connection Status - - Wagerr Nodes - - Bad Payment Request - - Unsupported or corrupted document - - missing certificate - - request expired - - Couldn\'t make payment - - Wagerr payments can\'t be less than %1$s. - - Wagerr transaction outputs can\'t be less than %1$s. - - unsupported signature type - - untrusted certificate - - A device passcode is needed to safeguard your wallet. Go to settings and turn passcode on. - - Turn device passcode on - - A device screen lock is mandatory to use the Wagerr wallet. Please enable the screen lock in your device settings and reinstall the application to enable wallet encryption - + + Wagerr + + Blog + + Made by the global Bread team. Version %1$s + + Privacy Policy + + Reddit + + Terms of Use + + About + + Twitter + + Close + + Support Center + + Loading Wallet + + My Wagerr + + It looks like you are using a third-party keyboard, which can record what you type and steal your Paper Key. Please switch to the default Android keyboard for extra protection. + + Error + + There is a problem with your Android OS keystore, please contact support@wagerr.com + + Your Wagerr encrypted data was recently invalidated because your Android lock screen was disabled. + + Android KeyStore Error + + No internet connection found. Check your connection and try again. + + Warning + + Addresses Copied + + All wallet addresses successfully copied. + + Paper Key Set + + Awesome! + + PIN Set + + Send failed + + Send Confirmation + + Money Sent! + + Fingerprint recognized + + JSON Serialization Error + + Wallet not ready + + Unable to retrieve API token + + Enter a destination BCH address below. All BCH in your wallet at the time of the fork (%1$s) will be sent. + + Confirm sending %1$s to %2$s + + Confirmation + + Your account does not contain any BCH, or you received BCH after the fork. + + Transaction ID copied + + Please enter an address + + Payment Protocol Requests are not supported for BCH transactions + + BCH was successfully sent. + + Withdraw BCH + + BCH Transaction ID + + Approve + + %1$s is requesting authentication using your bitcoin wallet + + Deny + + Authentication Error + + Please check with the service. You may need to try again. + + Successfully Authenticated + + BitID Authentication Request + + Cancel + + Ignore + + menu + + No + + OK + + receive + + send + + Settings + + Submit + + Yes + + Center your ID in the box + + Amount to Send: + + Network Fee: + + Processing time: This transaction is predicted to complete in %1$s. + + Send + + Confirmation + + To + + Total Cost: + + To make sure everything was written down correctly, please enter the following words from your paper key. + + Word #%1$s + + Wagerr Display Unit + + Exchange Rate + + This device isn\'t configured to send email with the iOS mail app. + + Email Unavailable + + Wagerr can not be authenticated due to a bug in your version of Android. [Please tap here for more information.] + + This device isn\'t configured to send messages. + + Messaging Unavailable + + Fingerprint not recognized. Please try again. + + Economy + + 1-24 hours + + This option is not recommended for time-sensitive transactions. + + Estimated Delivery: %1$s + + Regular + + 10-60 minutes + + Processing Speed + + Checking private key balance... + + Send %1$s from this private key into your wallet? The wagerr network will receive a fee of %2$s. + + This private key is already in your wallet. + + This private key is empty. + + Transaction fees would cost more than the funds available on this private key. + + Not a valid private key + + Error signing transaction + + Import + + Importing Wallet + + Wallet to be imported + + Importing a wallet transfers all the money from your other wallet into your Wagerr wallet using a single transaction. + + This private key is password protected. + + password + + Your Wagerr Wallet + + Scan Private Key + + Success + + Successfully imported wallet. + + Import Wallet + + Unlocking Key + + Importing a wallet does not include transaction history or other details. + + Wrong password, please try again. + + Close + + Ignore + + DEVICE SECURITY COMPROMISED\n Any \'jailbreak\' app can access Wagerr\'s keychain data and steal your Wagerr! Wipe this wallet immediately and restore on a secure device. + + DEVICE SECURITY COMPROMISED\n Any \'jailbreak\' app can access Wagerr\'s keychain data and steal your Wagerr. Please only use Wagerr on a non-jailbroken device. + + WARNING + + Location services are disabled. + + Wagerr does not have permission to access location services. + + You created your wallet on %1$s + + Your wallet name only appears in your account transaction history and cannot be seen by anyone else. + + Wallet Name + + Manage Wallet + + Buy Bitcoin + + Lock Wallet + + Security Center + + Settings + + Support + + Create New Wallet + + Menu + + Recover Wallet + + Switch to Automatic Mode + + Connected + + Enter Node IP address and port (optional) + + Enter Node + + Switch to Manual Mode + + Current Primary Node + + Not Connected + + Node Connection Status + + Wagerr Nodes + + Bad Payment Request + + Unsupported or corrupted document + + missing certificate + + request expired + + Couldn\'t make payment + + Wagerr payments can\'t be less than %1$s. + + Wagerr transaction outputs can\'t be less than %1$s. + + unsupported signature type + + untrusted certificate + + A device passcode is needed to safeguard your wallet. Go to settings and turn passcode on. + + Turn device passcode on + + A device screen lock is mandatory to use the Wagerr wallet. Please enable the screen lock in your device settings and reinstall the application to enable wallet encryption + - We can\'t proceed because your screen lock settings have been changed (e.g. password was disabled, fingerprints were changed). For security purposes, Android has permanently locked your key store. Therefore, your Wagerr app data must be wiped by uninstalling. Don’t worry, your funds are still secure! Reinstall the app and recover your wallet using your paper key. - - Screen lock disabled - - Your Paper Key must be saved in case you ever lose or change your phone. Tap here to continue. - - Action Required - - Your wallet may be out of sync. This can often be fixed by rescanning the blockchain. - - Transaction Rejected - - Help improve Wagerr by sharing your anonymous data with us - - Share Anonymous Data - - Tap here to enable Touch ID - - Tap here to enable fingerprint authentication - - Enable Touch ID - - Enable Fingerprint Authentication - - PIN - - Wagerr has upgraded to using a 6-digit PIN. Tap here to upgrade. - - Upgrade PIN - - Turn on notifications to receive special messages from Wagerr in the future. - - Push Notifications - - Off - - On - - Notifications - - Copied to clipboard. - - Email - - Request an Amount - - Share - - Text Message - - Receive - - Done - - Recover Wallet - - Reset PIN - - Enter Paper Key - - Recover your Wagerr with your paper key. - - The paper key you entered is invalid. Please double-check each word and try again. - - Left Arrow - - Next - - Tap here for more information. - - Right Arrow - - Enter the paper key for the wallet you want to recover. - - To reset your PIN, enter the words from your paper key into the boxes below. - - Please enter an amount first. - - Request an Amount - - Sync - - You will not be able to send money while syncing. - - Sync with Blockchain? - - 15-20 minutes - - If a transaction shows as completed on the Wagerr network but not in your Wagerr. - - You repeatedly get an error saying your transaction was rejected. - - Start Sync - - You will not be able to send money while syncing with the blockchain. - - Sync Blockchain - - Estimated time - - When to Sync? - - Camera Flash - - complete - - pending - - received - - sent - - Enable all security features for maximum protection. - - The only way to access your Wagerr if you lose or upgrade your phone. - - Paper Key - - Protects your Wagerr from unauthorized users. - - 6-Digit PIN - - Security Center - - Conveniently unlock your Wagerr and send money up to a set limit. - - Touch ID - - Fingerprint Authentication - - Amount - - Balance: %1$s - - Allow camera access in \"Settings\" > \"Apps\" > \"Wagerr\" > \"Permissions\" - Please allow Storage permission in \"Settings\" > \"Apps\" > \"Wagerr\" > \"Permissions\" + We can\'t proceed because your screen lock settings have been changed (e.g. password was disabled, fingerprints were changed). For security purposes, Android has permanently locked your key store. Therefore, your Wagerr app data must be wiped by uninstalling. Don’t worry, your funds are still secure! Reinstall the app and recover your wallet using your paper key. + + Screen lock disabled + + Your Paper Key must be saved in case you ever lose or change your phone. Tap here to continue. + + Action Required + + Your wallet may be out of sync. This can often be fixed by rescanning the blockchain. + + Transaction Rejected + + Help improve Wagerr by sharing your anonymous data with us + + Share Anonymous Data + + Tap here to enable Touch ID + + Tap here to enable fingerprint authentication + + Enable Touch ID + + Enable Fingerprint Authentication + + PIN + + Wagerr has upgraded to using a 6-digit PIN. Tap here to upgrade. + + Upgrade PIN + + Turn on notifications to receive special messages from Wagerr in the future. + + Push Notifications + + Off + + On + + Notifications + + Copied to clipboard. + + Email + + Request an Amount + + Share + + Text Message + + Receive + + Done + + Recover Wallet + + Reset PIN + + Enter Paper Key + + Recover your Wagerr with your paper key. + + The paper key you entered is invalid. Please double-check each word and try again. + + Left Arrow + + Next + + Tap here for more information. + + Right Arrow + + Enter the paper key for the wallet you want to recover. + + To reset your PIN, enter the words from your paper key into the boxes below. + + Please enter an amount first. + + Request an Amount + + Sync + + You will not be able to send money while syncing. + + Sync with Blockchain? + + 15-20 minutes + + If a transaction shows as completed on the Wagerr network but not in your Wagerr. + + You repeatedly get an error saying your transaction was rejected. + + Start Sync + + You will not be able to send money while syncing with the blockchain. + + Sync Blockchain + + Estimated time + + When to Sync? + + Camera Flash + + complete + + pending + + received + + sent + + Enable all security features for maximum protection. + + The only way to access your Wagerr if you lose or upgrade your phone. + + Paper Key + + Protects your Wagerr from unauthorized users. + + 6-Digit PIN + + Security Center + + Conveniently unlock your Wagerr and send money up to a set limit. + + Touch ID + + Fingerprint Authentication + + Amount + + Balance: %1$s + + Allow camera access in \"Settings\" > \"Apps\" > \"Wagerr\" > \"Permissions\" + Please allow Storage permission in \"Settings\" > \"Apps\" > \"Wagerr\" > \"Permissions\" - - Wagerr is not allowed to access the camera - - Go to Settings to allow camera access. - - Wagerr is not allowed to access the camera - - The destination is your own address. You cannot send to yourself. - - Could not create transaction. - - Memo - - Pasteboard is empty - - Network Fee: %1$s - - Payee identity isn\'t certified. - - The destination address is not a valid Wagerr address. - - Pasteboard does not contain a valid Wagerr address. - - Invalid Address - - Sending is disabled during a full rescan. - - Loading Request - - Please enter the recipient\'s address. - - Please enter an amount to send. - - Paste - - Could not publish transaction. - - Could not load payment request - - Scan - - Send - - Send - - To - - Bitcoin addresses are intended for single use only. - Bitcoin Cash addresses are intended for single use only. - Wagerr addresses are intended for single use only. + + Wagerr is not allowed to access the camera + + Go to Settings to allow camera access. + + Wagerr is not allowed to access the camera + + The destination is your own address. You cannot send to yourself. + + Could not create transaction. + + Memo + + Pasteboard is empty + + Network Fee: %1$s + + Payee identity isn\'t certified. + + The destination address is not a valid Wagerr address. + + Pasteboard does not contain a valid Wagerr address. + + Invalid Address + + Sending is disabled during a full rescan. + + Loading Request + + Please enter the recipient\'s address. + + Please enter an amount to send. + + Paste + + Could not publish transaction. + + Could not load payment request + + Scan + + Send + + Send + + To + + Bitcoin addresses are intended for single use only. + Bitcoin Cash addresses are intended for single use only. + Wagerr addresses are intended for single use only. - - Re-use reduces privacy for both you and the recipient and can result in loss if the recipient doesn\'t directly control the address. - - Address Already Used - - About - - Advanced Settings - - Display Currency - Currency Settings - Bitcoin - BitcoinCash - Wagerr - Other - About Wagerr - - Join Early Access - - Are you enjoying Wagerr? - - Import Wallet - - Preferences - - Update Pin - - Notifications - - Leave us a Review - - Share Anonymous Data - - Sync Blockchain - - Settings - - Touch ID Spending Limit - - Fingerprint Authentication Spending Limit - - Wallet - - Start/Recover Another Wallet - - Help improve Wagerr by sharing your anonymous data with us. This does not include any financial information. We respect your financial privacy. - - Share Data? - - Share Anonymous Data? - - Write Down Paper Key Again - - Your paper key is the only way to restore your Wagerr if your phone is lost, stolen, broken, or upgraded.\n\nWe will show you a list of words to write down on a piece of paper and keep safe. - - Write Down Paper Key - - You last wrote down your paper key on %1$s - - The easy and secure way to use Wagerr. - - Connecting - - Syncing - - Retry - - Syncing - - %1$s d - - %1$s h - - %1$s m - - %1$s s - - You can customize your Touch ID spending limit from the %1$s. - - You can customize your Fingerprint Authentication Spending Limit from the Fingerprint Authorization Spending Limit screen - - You have not enabled fingerprint authentication. Go to Settings -> Security to set up fingerprint authentication. - - Fingerprint Authentication Not Enabled - - Use your fingerprint to unlock your Wagerr and send money up to a set limit. - - Touch ID Spending Limit Screen - - Spending limit: %1$s (%2$s) - - Enable Touch ID for Wagerr - - Enable Fingerprint Authentication - - Touch ID - - Fingerprint Authentication - - You have not set up Touch ID on this device. Go to Settings->Touch ID & Passcode to set it up now. - - Touch ID Not Set Up - - Always require passcode - - You will be asked to enter your 6-digit PIN to send any transaction over your spending limit, and every 48 hours since the last time you entered your 6-digit PIN. - - Touch ID Spending Limit - - Fingerprint Authorization Spending Limit - - Available to Spend - - Complete - - Ending balance: %1$s - - Exchange rate when received: - - Exchange rate when sent: - - (%1$s fee) - - INVALID - - just now - - In progress: %1$s - - In progress: %1$s - - Starting balance: %1$s - - Waiting to be confirmed. Some merchants require confirmation to complete a transaction. Estimated time: 1-2 hours. - - account - - Amount - - Confirmed in Block - - Memo - - Your transactions will appear here. - - at %1$s - - More... - - Moved %1$s - - Moved %1$s - - Not Confirmed - - Received %1$s - - Received %1$s - - Sent %1$s - - Sent %1$s - - Status - - Transaction Details - - to %1$s - - Wagerr Transaction ID - - Received at this Address - - Sent to this Address - - Disabled until: %1$s - - My Address - - Reset PIN - - Scan - - Enter PIN - - Touch Sensor - - Unlock your Wagerr. - - Please unlock your Android device to continue. - - Unlock with TouchID - - Authentication required - - Wallet Unlocked - - Remember this PIN. If you forget it, you won\'t be able to access your Wagerr. - - Your PIN will be used to unlock your Wagerr and send money. - - Set PIN - - Re-Enter PIN - - Enter your current PIN. - - Enter your new PIN. - - Re-Enter your new PIN. - - Sorry, could not update PIN. - - Update PIN Error - - Update PIN - - Copy wallet addresses to clipboard? - - Authorize to copy wallet address to clipboard - - Copy Wallet Addresses - - Copy - - Please enter your PIN to authorize this action. - - Please enter your PIN to continue. - - PIN Required - - Authorize this transaction - - Open the Wagerr iPhone app to set up your wallet. - - Dismiss - - There was an error loading the content. Please try again. - - Updating... - - Breadwallet has changed its name to Wagerr, with a brand new look and some new features.\n\nIf you need help, look for the (?) in the top right of most screens. - - Welcome to Wagerr! - - Are you sure you want to delete this wallet? - - Wipe Wallet? - - Failed to wipe wallet. - - Failed - - To start a new wallet or restore an existing wallet, you must first erase the wallet that is currently installed. To continue, enter the current wallet\'s Paper Key. - - Starting or recovering another wallet allows you to access and manage a different Wagerr wallet on this device. - - Your current wallet will be removed from this device. If you wish to restore it in the future, you will need to enter your Paper Key. - - Start or Recover Another Wallet - - Wipe - - Wiping... - - Write down each word in order and store it in a safe place. - - Next - - Previous - - %1$d of %2$d - - Bitcoin - BitcoinCash - Balance - Buy - Send - Receive - total assets - Portfolio - Wallets - Admin + + Re-use reduces privacy for both you and the recipient and can result in loss if the recipient doesn\'t directly control the address. + + Address Already Used + + About + + Advanced Settings + + Display Currency + Currency Settings + Bitcoin + BitcoinCash + Wagerr + Other + About Wagerr + + Join Early Access + + Are you enjoying Wagerr? + + Import Wallet + + Preferences + + Update Pin + + Notifications + + Leave us a Review + + Share Anonymous Data + + Sync Blockchain + + Settings + + Touch ID Spending Limit + + Fingerprint Authentication Spending Limit + + Wallet + + Start/Recover Another Wallet + + Help improve Wagerr by sharing your anonymous data with us. This does not include any financial information. We respect your financial privacy. + + Share Data? + + Share Anonymous Data? + + Write Down Paper Key Again + + Your paper key is the only way to restore your Wagerr if your phone is lost, stolen, broken, or upgraded.\n\nWe will show you a list of words to write down on a piece of paper and keep safe. + + Write Down Paper Key + + You last wrote down your paper key on %1$s + + The easy and secure way to use Wagerr. + + Connecting + + Syncing + + Retry + + Syncing + + %1$s d + + %1$s h + + %1$s m + + %1$s s + + You can customize your Touch ID spending limit from the %1$s. + + You can customize your Fingerprint Authentication Spending Limit from the Fingerprint Authorization Spending Limit screen + + You have not enabled fingerprint authentication. Go to Settings -> Security to set up fingerprint authentication. + + Fingerprint Authentication Not Enabled + + Use your fingerprint to unlock your Wagerr and send money up to a set limit. + + Touch ID Spending Limit Screen + + Spending limit: %1$s (%2$s) + + Enable Touch ID for Wagerr + + Enable Fingerprint Authentication + + Touch ID + + Fingerprint Authentication + + You have not set up Touch ID on this device. Go to Settings->Touch ID & Passcode to set it up now. + + Touch ID Not Set Up + + Always require passcode + + You will be asked to enter your 6-digit PIN to send any transaction over your spending limit, and every 48 hours since the last time you entered your 6-digit PIN. + + Touch ID Spending Limit + + Fingerprint Authorization Spending Limit + + Available to Spend + + Complete + + Ending balance: %1$s + + Exchange rate when received: + + Exchange rate when sent: + + (%1$s fee) + + INVALID + + just now + + In progress: %1$s + + In progress: %1$s + + Starting balance: %1$s + + Waiting to be confirmed. Some merchants require confirmation to complete a transaction. Estimated time: 1-2 hours. + + account + + Amount + + Confirmed in Block + + Memo + + Your transactions will appear here. + + at %1$s + + More... + + Moved %1$s + + Moved %1$s + + Not Confirmed + + Received %1$s + + Received %1$s + + Sent %1$s + + Sent %1$s + + Status + + Transaction Details + + to %1$s + + Wagerr Transaction ID + + Received at this Address + + Sent to this Address + + Disabled until: %1$s + + My Address + + Reset PIN + + Scan + + Enter PIN + + Touch Sensor + + Unlock your Wagerr. + + Please unlock your Android device to continue. + + Unlock with TouchID + + Authentication required + + Wallet Unlocked + + Remember this PIN. If you forget it, you won\'t be able to access your Wagerr. + + Your PIN will be used to unlock your Wagerr and send money. + + Set PIN + + Re-Enter PIN + + Enter your current PIN. + + Enter your new PIN. + + Re-Enter your new PIN. + + Sorry, could not update PIN. + + Update PIN Error + + Update PIN + + Copy wallet addresses to clipboard? + + Authorize to copy wallet address to clipboard + + Copy Wallet Addresses + + Copy + + Please enter your PIN to authorize this action. + + Please enter your PIN to continue. + + PIN Required + + Authorize this transaction + + Open the Wagerr iPhone app to set up your wallet. + + Dismiss + + There was an error loading the content. Please try again. + + Updating... + + Breadwallet has changed its name to Wagerr, with a brand new look and some new features.\n\nIf you need help, look for the (?) in the top right of most screens. + + Welcome to Wagerr! + + Are you sure you want to delete this wallet? + + Wipe Wallet? + + Failed to wipe wallet. + + Failed + + To start a new wallet or restore an existing wallet, you must first erase the wallet that is currently installed. To continue, enter the current wallet\'s Paper Key. + + Starting or recovering another wallet allows you to access and manage a different Wagerr wallet on this device. + + Your current wallet will be removed from this device. If you wish to restore it in the future, you will need to enter your Paper Key. + + Start or Recover Another Wallet + + Wipe + + Wiping... + + Write down each word in order and store it in a safe place. + + Next + + Previous + + %1$d of %2$d + + Bitcoin + BitcoinCash + Balance + Buy + Send + Receive + total assets + Portfolio + Wallets + Admin - - Wagerr now supports Bitcoin Cash! - Any BCH in your wallet can be accessed through the home screen. - Home - Dismiss - "Screen Altering App Detected - "Wagerr will not function properly unless screen altering apps(such as Twilight) are disabled. - Adapted to Wagerr by MIP - Current Height - Last block hash - Sports Betting - Sport - Tournament - Round + + Wagerr now supports Bitcoin Cash! + Any BCH in your wallet can be accessed through the home screen. + Home + Dismiss + "Screen Altering App Detected + "Wagerr will not function properly unless screen altering apps(such as Twilight) are disabled. + Adapted to Wagerr by MIP + Current Height + Last block hash + Sports Betting + Sport + Tournament + Round We can\\\'t proceed because your screen lock settings have been changed (e.g. password was disabled, fingerprints were changed). For security purposes, Android has permanently locked your key store. Therefore, your Wagerr app data must be wiped.\\n\\nDon’t worry, your funds are still secure! Recover your wallet using your paper key. + Bet Settings + + + + + General + + Enable social recommendations + Recommendations for people to contact + based on your message history + + + Display name + John Smith + + Add friends to messages + + Always + When possible + Never + + + 1 + 0 + -1 + + + + Data & sync + + Sync frequency + + 15 minutes + 30 minutes + 1 hour + 3 hours + 6 hours + Never + + + 15 + 30 + 60 + 180 + 360 + -1 + + + + Entry 1 + Entry 2 + Entry 3 + + + + 1 + 2 + 3 + + + + + System sync settings + + + Notifications + + New message notifications + + Ringtone + Silent + + Vibrate diff --git a/app/src/main/res/xml/pref_data_sync.xml b/app/src/main/res/xml/pref_data_sync.xml new file mode 100644 index 000000000..6bd9192c6 --- /dev/null +++ b/app/src/main/res/xml/pref_data_sync.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/xml/pref_general.xml b/app/src/main/res/xml/pref_general.xml new file mode 100644 index 000000000..36569d6b7 --- /dev/null +++ b/app/src/main/res/xml/pref_general.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/app/src/main/res/xml/pref_headers.xml b/app/src/main/res/xml/pref_headers.xml new file mode 100644 index 000000000..89c4a4c3b --- /dev/null +++ b/app/src/main/res/xml/pref_headers.xml @@ -0,0 +1,20 @@ + + + + +

+ +
+ +
+ + diff --git a/app/src/main/res/xml/pref_notification.xml b/app/src/main/res/xml/pref_notification.xml new file mode 100644 index 000000000..e5a319e6f --- /dev/null +++ b/app/src/main/res/xml/pref_notification.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + +