From 9cec1a6e47b5c1c618bd51e1f2a8916c7f1b6f20 Mon Sep 17 00:00:00 2001 From: MIPPL Date: Tue, 29 Oct 2019 09:41:47 +0100 Subject: [PATCH] refresh bet slip, out of scope items, b 240 --- .idea/caches/build_file_checksums.ser | Bin 539 -> 539 bytes .idea/caches/gradle_models.ser | Bin 236832 -> 236836 bytes app/build.gradle | 7 +- app/src/main/AndroidManifest.xml | 167 +- .../presenter/activities/EventsActivity.java | 17 +- .../presenter/activities/WalletActivity.java | 27 - .../settings/AppCompatPreferenceActivity.java | 109 ++ .../activities/settings/BetSettings.java | 87 + .../activities/settings/SettingsActivity.java | 9 + .../customviews/BREventSearchBar.java | 11 +- .../presenter/customviews/BRSearchBar.java | 37 +- .../presenter/entities/BetEventEntity.java | 34 +- .../presenter/entities/TxUiHolder.java | 10 + .../fragments/FragmentEventDetails.java | 46 +- .../tools/adapter/EventListAdapter.java | 20 +- .../tools/adapter/TransactionListAdapter.java | 31 +- .../tools/manager/BRSharedPrefs.java | 5 + .../tools/manager/EventTxManager.java | 9 +- .../wagerrwallet/tools/manager/TxManager.java | 5 +- .../tools/sqlite/CurrencyDataSource.java | 18 + .../tools/util/CurrencyUtils.java | 23 +- app/src/main/jni/breadwallet-core | 2 +- .../main/res/drawable/ic_info_black_24dp.xml | 9 + .../drawable/ic_notifications_black_24dp.xml | 9 + .../main/res/drawable/ic_settings_white.xml | 7 + .../main/res/drawable/ic_sync_black_24dp.xml | 9 + .../main/res/layout/activity_betsettings.xml | 44 + app/src/main/res/layout/activity_events.xml | 14 +- app/src/main/res/layout/activity_wallet.xml | 34 - app/src/main/res/layout/event_details.xml | 7 +- app/src/main/res/layout/search_bar.xml | 59 +- app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 9021 -> 5802 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 9021 -> 3087 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 9021 -> 7778 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 9021 -> 14500 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 9021 -> 20346 bytes app/src/main/res/values/strings.xml | 1617 +++++++++-------- app/src/main/res/xml/pref_data_sync.xml | 21 + app/src/main/res/xml/pref_general.xml | 33 + app/src/main/res/xml/pref_headers.xml | 20 + app/src/main/res/xml/pref_notification.xml | 27 + 41 files changed, 1607 insertions(+), 977 deletions(-) create mode 100644 app/src/main/java/com/wagerrwallet/presenter/activities/settings/AppCompatPreferenceActivity.java create mode 100644 app/src/main/java/com/wagerrwallet/presenter/activities/settings/BetSettings.java create mode 100644 app/src/main/res/drawable/ic_info_black_24dp.xml create mode 100644 app/src/main/res/drawable/ic_notifications_black_24dp.xml create mode 100644 app/src/main/res/drawable/ic_settings_white.xml create mode 100644 app/src/main/res/drawable/ic_sync_black_24dp.xml create mode 100644 app/src/main/res/layout/activity_betsettings.xml create mode 100644 app/src/main/res/xml/pref_data_sync.xml create mode 100644 app/src/main/res/xml/pref_general.xml create mode 100644 app/src/main/res/xml/pref_headers.xml create mode 100644 app/src/main/res/xml/pref_notification.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index a9d6827e1228c3395fb7da83dbc13a47ff91d390..663bf4b1bb93f6449ee0ad8288982473bfc92b84 100644 GIT binary patch delta 35 tcmV+;0NnqZ1e*kqm;?-!&hC+%cM#+Lj3>bWcX;xuyZ#x1!&{Rh0r)Lo5q$sv delta 35 tcmV+;0NnqZ1e*kqm;?d-O|_AncMv|C5N~L7PuOLw=@>)sMf{T^0r&_853m3L diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser index 3be3e1346e935d6f82b1ab560f1f3d1acd29b54e..e298ddf6c1baa5f23a596e070afc84312c8be95d 100644 GIT binary patch delta 20083 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 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 ea5876aa27b2de0e365405c4c7435dff85f3af93..c56d32af7cbb03acc4b4ebbc9b7e4382fc9efcdb 100644 GIT binary patch literal 5802 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 literal 9021 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 DjU|N% diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png index ea5876aa27b2de0e365405c4c7435dff85f3af93..66ce15f0f4db8160de6ecea30bafbe26d2452d3b 100644 GIT binary patch literal 3087 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 literal 9021 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 DjU|N% diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png index ea5876aa27b2de0e365405c4c7435dff85f3af93..ec2c7d52f9bb81900e1df18ddf7097fd170afea3 100644 GIT binary patch literal 7778 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 literal 9021 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 DjU|N% diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index ea5876aa27b2de0e365405c4c7435dff85f3af93..c726f200f3e238a63cc5831ef8d058ca12994252 100644 GIT binary patch literal 14500 zcmbVTV{;`;(>}57jeTNm>}+gvV>>xXHnwfsPBz}yHa51kF;Dc~&tG_}24ALXrn~0q z>b|-=Qdv<71@Rjq002Odkrr3|Z%_E&gopiaJ(1l10|1Z#WW+_)Jq-T&B4y|=emr%~ z=CscqvS*@WQk6PwTeVO|$Y3Q_ljHEv7Ulm)%e6y^nP}z8`79sthUx zq}WbiXUDT;Oc-TIWd!JtA`t|U4+_JxW6S_q{8Ky_S-?5ot1NdqKz%@@7x>?q-Z8C? zcIX03Sg=GOW&l{CXJMKekjgs8f|vqWV!2Co_^bjvXgum=HGHb{UF`hZ>*PKbukM-J zA@rUq{RB%w1WCcoNkS}+Kq^o8(>{%oes)5a^e8-x^vFSk_Ue<0gDpQGRsA7K00(wZ zC9|vM>0yqVOP4B%pg2aC-?Y2-M*wqFA|3;WoOgydBl{QdN#04|mnl+DAz0lnPh~|s zQPkVvm&N;R2gF0f=aJQmyxsxF`i}#6!`ThDpgW=Y-ts)7hbvE$Qkd&~k3*hSt@V3p zk!1MGCDiZ#?hyevA|nt&GQ2OAofkq6&W_i%?p<$JS=1u+uw_EQ6~cf8UIlPu_lQ!( z#nmV8`ufwftE>7Sef_bAhk^+R_PlWUG}v}2Nes>WF`}3OtmTVjKAZgmuvYOdw0l*l zb%M&~HIGT-Isn}X(dvEEr|wgL`O(1xG%f{*h^9A}iAY%S2Er*HL(w7BJ~Yq;Xh2lR zm8)pz1V&}8*EM#4@%R}g9R+Om22O^+$vC!R^S4M{RZ;0v1)n?wtGL@FFa3O ziCjkk5u0Yg8Ov6Rr8Jo<=mI&!q|V>&??q*JSpt#{{18)oWMPO>oC9CTxFE147>FOD zqETof1kkL7n!1Q^2E*&mt?2H!?-Cv?)!MrK&&?HdS>#-x4i59EOW31{equpHNuZkb zP}M5QDE_0SOCp>Skc>4*TKF{tF(wvN;sqVJg@Cq|_pSTO0iavyaRD2+ko@j`z3@ol z59x+l(wEDQ?O^c3SB0AkTQHRbS3Du78-#{`$y4zVXc-jmN*PckfM&Z_AcYlOd47I1 z8-~hz6;mpg|DYkD-=GLx)B}hxr3$Db+3~xq)u`4~WYgl%v50ltfG#J?%4IM)0wfi z!59!~NFYL~iexb4GU=EQoHLvE0>w{TeAiq`E^nvx6FH?vnc9mVh6n*XB#_chla`}) z_prKpZ3}RQFlfPzyA4hS_;tp_4gP{V^1$7m&!NZ|ENW-p%$;F{EJ)`O%Vq4`+B|GG zFG{Wb^VUcEI#uJqmvq_CHLVIt#?J3Vg>rX%kYWD!LL2AYJEc?itk8MNtFL2^Lc~o; zMmM`kS-Q)Y=gFyIWsOrk?102Kr~ajxHM=EC14l=lI3{m=WV()3;0erIESq_@9n zqu{JWI#kUQ?L3a`pQZ4hqgrFWCUns|2!*hQ%#ao18E|8jyZFXAf+QEDa?q^4)ppJ`Eq${I&D)d zs2D=MilL-4ub`DVAs#MoF!IlK3s$TCYD)HvssK;e!~r^_Z}ktkUWbt1tEnG{fsHKk zCJ3yas#^O==Z~VLhLr#djbWyP)O~e&@WpqQoH=hyo~I=WGJVxN22JC%Xdnk+9J)fV z??09G%Dpsbk*??tGz~=G+vXQk^+%oLZ1R8#(|a7ZXhxO@#Q8vv+6903f)2~@_!o7Q zAj5<=bp0xGUS(`&tQYlFJS~j=!5xBG93jFW)9xSc0k??9P4E8I@i^K%Yy*f?tKV6r ziK7uae2^A-#Z)Bd)iRHpDrwsXO3k0GL*+gCafpnok~PhjETQFSxj`lMlEuc@%0)k+ zj(N@n(NalXUF)1hYxlgtnik2~YwT~bqP=rkkYqE((8>p8`O*~L`1EG3Gq=W*Hb<_KA}~8!XYI*IWDCAs!5gex@mSqkZys7y zj81Tp^C~ktCBTXK?uj6ZJkD}CtWSL+5KZWGBSe!2(eNb}k4W8M2$-GNNXSl(!T3s6 zsZ`pN(?;CLU_+8cZde&6LRQ@1AvE!X{uBCAK$3B0Ir1y$t9t&~Kvn^l89gBz z9a5wcE4WHK2d@R3vp6WyzL1e?8=sDOf)KwR_lFTFf#6kcqU*q(Or60+nizN__!rUxIN*ug41#y!n}b<(eUyO(1O<=b%m73xc0qq zfx&G!DV(44ZxnGMg7Bjkl7LB2&hh19hQ01>MkoL_;N;kyE2EzK_|h6VznE10IAzW< zADs<#92w+ms48_|w(zvC!C?{HrQ6diV9)6J=3}WbluG*R{V_RK<3|51#@d zb(TyJ4Tu|HU{ACyA77!MoN0~dOhI`h?GN`s;_OV8b?Dr$IN@fTi9wiV)!Q>*UlGL- z`x?jRu@oY+!JR2o9Q_RPF9a&4h<}Zj=fhZCvgM?VgAa@Tu*h)sXal@#wM|`8a1{a6 z7`0~rr^=grw*#qJ9kLuEGoe=62wfs`aND$hSW8cn1wvB zLd~(ioJEa!s^W=_=iZHD2N0V$VG1g)UwL&rYpdij_au5Xac7rctTW9S)8d#g81u)Rw&30K@;TerBdVpG^<27+;vVdApvjO#?PpDy z=Z#icK(6;-2pBTdxN7=|+CrM10SFtP8!8;y=2k0H3!EdME21SSj<}RZ$s1)ygi0lo zgo{uV8y^l*%Vi^m2ZuGc7*hmR0}UO%Kq;zOSqyN#+R)GyaHbg#NDy`6w6b>gVDB*< z$BAmny`Q`|BRGgh)WYNHCjsTq)*PJXqc1_*8h^;m{Lt0l6BT4f1j=;H zMuo)?up`Ykn<)Tp!MAyOM8XM}#$|SC!Kg^on9&W5z+ryH6lGDGfDBZ^i;pE2xAzQ< zaEV#?8trJ{p%i-$j$amU|59fNDgDCl==hxI-;#68ZTHKN`;o4-34__wuy;iuvJIOC zUi5L*YT|&nW*|VkPGF}^kyN>PbZ5K%#*HT~!jKv#6;nXvZr%j_?FE3@GCok0U$;>5@x9xt+8qURbgiyPR?Gz>h+b)V_&_?9Oil-H# z14zlHXvd40VDC3oJHCs=$UQ|iV^5`MJaT?htF(|USFN%S*tOJYX%e9&3GTW`M5L;V zZouv1#eXY)#O|l35;(@t z3Exs=)5;S4lEzrK{nNa-FropkV z4I=Bmk;c4kLD7~+#InxyvnU2(kARvZ0%3Urmzu;oWFR`?=~RdF=u+?I!~K9gQ|OY| zqx(G3a0P`Z(^Nu%gE$JylhYxxK5RV__01{x^T(Y%UUo$aS7s=XKv~*|%~+e5K%vsq z=GMjnWC9W2bxrwvwa)$_S6h|*F=>VcZlMrI>1SJNX*}nj$AEE#JkR`#XZ`PhX~Oln zsT_Q;HvZdw8c9^6@p>ysnIniZgYbBN_0MZA3DhLg5b$E0wgM#0Ue>yuc+5vDqmGWD zXd5ln4q)z!32e#BmgE9x~)rX;X0ZM=I|D`%UeM}eKf&&5`M^N#m zW{4%)(TMghtz6}ixYp=~%IjtSKII#_-@i9+RGw>>g)UIl&;ahZVl}60jp?@t@d$FK zi{O@q!^=i~y(zhx{pLL>T=vnfi{5^`m~R1@NBqzLmD`8`<}1kbd$bq*;_PZpDNKuSqGV;VTjuU|weTOrqthHMbxqj=9G zrSN3_>^Mx5u`^5#hJ|g-UUz25?Vo%+!4S3mY#$G;ttS0CmZoQd&tuO{?F_54 zVoR6R)qc?(rf~>PByQH&^N)3R z`dH5&VK7LnUpJKVAJj-{hq^*|!Mp@#{lN{3`J_V$-A~OuQif>~r)T6S(@VZ~8m%^D#r=V`)4G>*oF1%Poo6&lq#)_E zkyijln@uuc^73nNvR>p~Ln{=*EYr=co|mpzk(XdYp_j{5ikwUuY{11@mn%$Kuizkd zf@c_!B?7Jdi!en(t0{Gu?pweyD#1F@5o?KD-cR5~0oU}4IwFc?Zs^`gKFec%>}nDq zG5!Ml?lL8OZq?j#uZTW`0HH2uf&9zwU1iDVpDm&DL#Ues>ccgblDN{OZsM6pmJ~$9 z=BVc15-Wh0we$}&*=p&^82D2~4@g&zWnhxWTVZG`Em# z1IF%GTpy1!b0>a&Q(q056Y|s1oHw}`p%bDK`hkHCWz-ZU*A4Jwv%AqAi+`w+#SHXL zY6sBQY2v!Q6r=}qY zfp6za1Q5_JxEV-q2d9A%dxn=8Lq;Ziuw#@f`8kcMkJr+99miDP4qKU(m5{WtxDfQJ zAZ7HC?TDKaV)!}zuVM5czR>G_dhq(BL)-Pf*5ivM-i%2?Lp0`^92r&7l|J;p(WsvJ zvLTZWVQ!sLI=PopuCm61yu)|>Q{BEXGBu2F+ZXR1RRCXqGA;7j_MM7-F`b%6NnUUq zLB#o8L=&}ST%QkD!aU-Sra@e7o)_ZZ&VRTxs#$LZMFV)wsFLMH zkd!PP@Y#8uG&zkv@^5)iwhDcYwnpC$=bYRu zC@BtAX;ee*Br7!(WvuZ~lo_R1r!fY$N-P?${!7bNW((o6|J{IiRUNK4GI5eW>(`Hh zI2B;D$Q!Gi^-&Fr4`*W)$Kg&lGF9>0i`O@GDTXjS(S0+p*}T-P=b1z(g9}BU)DItF zkmm*%r`>r`w+hblR%Qd0n6q~@yj(Wj4sZ4F5{cSfJz2RB*|9rQJaruWDzR;M5nlCL zt{uFvd`Hd~c!yuc?_o6gNan;cN6(5b@fw1^^jxvCYkcDxBhc|6rqPuD)SIQOL@+2aB)G9}GHvwceJh`atu_|i2u$M+kj zwt8Qitx3>++jP+e-HkhG)#4JwJNK^v^HKQggl@>}xG#Q{Fl}GA4quyoVn`JY&u)*Ksm*x;wS!CV*&V*DlX4dKlCTG8DO zS%J0X3Mhd&#P#|Qq+LEs^H$zpQ0mqjfv0n&@TO`<$&aFvk*rl@Z#W8(PZAk)><=l( zjmuuO4klI-)-#fPc%$zh*A*||6{z$E|F&YN>683;od13)yH-hecwK`=#~ceLLF5m@ z-yft712oAr)-nC{?K$H{Yrg&iot8O~SK9_ESh_6uJ&We)MjK6jaoAgserne};GM6L zNht-1(UW}3-r`@42F`|Wch46P6@aSXdWGyL!TS8TsQwxjQahjJY|GqOG>0AyZTBTM zosz(OHNs+?G9SUHi`7OX`FY_2fSFpAH39H~3{ymikks`sarHe-Ph@i3?jp~hgfs_) z*pbeHhj7q3VUWl$z4L7;jQ#s%FX^v8zBCizC`d}GN@xcBRun>++$??E;W5O~*S$P= z<{EqJZ<%q5?{8WsCgW2ZP<4QILq>l=Tf`rUsEhyEq3%aqJLfTRTls&{?X#vcXsDQU zLt-Zs13~O?ze>2e_ zEIE32wEuS3AAFm;;V@kBgGRS~;C$sPG(C>*n?8dkbWb^OZMVJO6s?&7d$k>3JIp+s zW2Uc8OFxo*a{o-X3D%`tey|bGU@R#7S%thDSkf|?1J$irLpOmli#z*xHam+7%z~eU zB720y<{n@mZlD~+=?~N-`D^qN1&v*fGx+RjBL2p&y}@$BzB!&k-8%`H_a$DYK6G-G0_t`|GN+ zaFa+;l|MS@TR}r)YE^%*^Hh<$vi%?SA+t_qT*Y40ubxvAvyQ)+qDe@%TLdmdS1Y$# zWEjJFA3lyBK$6546X3saRCU17=}7D+C|)~fM_NC>vSuhE+d=FgMFivB&Yej~ICglH z6s;|nzV1>js@Z7~Vku6&z+@D+JTI#L>j{x87c~+Yl7$hr5UW;etCGt{WUw2gp!%p+@OiAQhS6R!UKM%(UX zH&`0L_N*&h!~DH6E|?9A)?~oGt!TY0*^^|u#n!Hf z1YE*2A_s!Rt30ngC~~g*90=v*6VH#Tr?xZC6QV1~G%G-feZI|EX$nlmG9Q)3( zAfFrj(E!w}u0nQHv8w*|&8d&L&9s{Iz3&^^&#yhHmkWb~xfUJJOkuQWw=M>JW2P z11*?-fGx%_9#s2LIxl0c1)uQgzlG`Mx|2J3kbHU$DBX-h`J+0+5WXzWceP$VRSsVm}V%kMvxfD8a1lye7gKmBc%lVSYC9MU(B+%vk z8599}v*|f5=@_r!a9N?Z`X6E-ubZMVV5IN(a0m%K|12b3tsxumK=5%PpaI4~4edqNW(U@t3&$nV!FJDe(OO;{k7XfAu7ckoD;hs}`*F z7KQV&(M)RcIQfO{_n-1X44Bg|yVd~SE81efU%#-TN}dZ-g5LmkEoOx)FBVFn4ecMq4R)j(L|rBa?D6UlhCt1bs80+6zn;YZ7_g?H4{+!}5cy z@6?-PAS-)^8Pg>@YIr1|j;Q!Kd9U-&UIYTDDB%23ql|l$TDD`-z3M>Zw^qyCiA*_* znl(8gb$7JoUi`Z0l4y+s^RH1s+dv?1Tqbg&*6#c_M>jI*n@p+ds?CJT>Ld6}$6rZ= z(dnnY{>v<9?`TnVJ%;}%gj8?3l0mg+1OqI}fY6FzxTCz_H##}Lg>|&F-NfrJK&@PQ zlmpK#G=@u_n?%N@)T~tef@mczhIp&5=Vk9HpixIvve3mwDVdZ8>m3FBL!1 z`n(yuPVA0+hO`L;VxL>)Pb=D_1NmkaT|MH$Xj>&G?}UtiLLX`=|&ko5BHOK6#5u zqiJ7ny~`d;U@e3GqB0uS)|NsXx?Y>A%g`ACH~2KfxT=BfeOFWA#A?4O{L8P0hXo4}7TfzlfqE{XaQiV`oS>vi}9I_&ls0cpR@D^bIvL zb}?zJ@_>$oCr!KmT8H>~MnJ<&OXo&W{EX@khNTaf!YPZG)F3M!Z7-X0-45d3~ z9ha|6IF$J5BCyK!1cVeW(`X&kZpi)P70uMRQY}+n^foasJoJqXqvI|o8?T{TD}r5S zLg9IpIGMyB`RLItad*Dmx~v$Ag~Sg#Z8q0-g8bs}etYElGVm5{J3ecg3rT+v{;e9% zFpAs%xf7jiNt0$|7r`q?#GF(ag^U&vF45($ocM#_$KSnUtsyoXF1&Pd4nF$*I6x^v9D3uemV$Iak#V zKrJ)R3a6A0ZED)gh)-^K&Co`kxThtemX=DP@xk2_cN;H|!rA`#rhRqz7fW%VJpLWV z-obIVD<(kOjmXaBvH{#k7-s71pTtb>Jgj0c=YO;$HY53}0}gZC@&B1|&wv}Keuu+-Fd5A(g)fAyTpmLM|^ zed-Cnqr0H-Lox`1=Q>&vS6Dr5d)Jy+K|8*KUXdrpds8~vcQ=DP38i{d>PWMLc=c0* z9Kw9K_LFG{Gkvvu-xDQVH{HR1?VC`Zy!Y9bB($W>C8iL@~ScbKjXB8#)xjh<#GT7T|o$I0yFF#HP zS6z2}2R2+gI&ZHh{e#=;I}NanREtF0E=Te_VW0loA=)OrgX6PrhxY!XL8M4cGb*G=-eJ=De-j}eJEm>dQj%##0_RB4`-B|8_j5OMn zvs|oTG%qoXBOqBzK+PH2UYM79ktday%6-%p4KMH)o>R+ai=45Uz4`1tetPQF=26OC z(;N-tjJevQ`~puOt%6JPL)?&8hWFRp_fwnv$+=MJ(HB*CKG8USPtQx~(K4+7WetG;<6|jD0m_w^7{6yn&Xp|Bl|8R=0HaL}m8eE57v5bht17fK`E8AHGdxl;QJ zq}&S>(#KOG=7pJ75+r7=Y*)IFx}K7nF3S!(ZnOQT`~Fd)cC%+1ZyB6hOshB~inbZv zI5CmnarEn7dVR+?mY=^oMY`4lC?6zxUxGe;bB^S0=A_I7{g>|&{-ZPFvU)<<8@*Ts zi+aR}Y0D_q8b+#mJh$tA4~F7}EQqaLN39qPa)gsc)}`S#7&~6;eFm_(if5q;&JHf{ z&hAB0#zDGgWnr}*LA)Ilz;*+AFbwLiWtA6J~O z3zO#yOAki6{cB#Lj8>LH$0F}YKx*;~HT3}1>hQAq3UVgmyK!CU{tN}4t50F$mzQf; zq>!dMWlP#mxA9W#?*}w7>;C>ej!%piGqcM|>HFh@Xroo`1AJJcKY7g}r2W3u4{z!; z%kpOgAItwkFXigqlG@D{gMaeYh68BYJ3cQ8jpS8sJECVlt|WOa>BalB)&f>T2pt88 znzDkpIF#d;6fZ+zE6g^5QNQ#42DjUZwh6av%Qc8$yR8#}r^Jr}_kJd{tBqU+XC zhstm0f-^$o9pe^07#1%i)_on1aEiV;_&G22qPK{l-Ra@Xb!Fzw=$3`R@fG3t(y6O3 z^V?<|^SeV+Y-)C$VJot`d{)Tp$t)iA&monQv_IOKLvLy6Zg*GJVVt_YCV>4`M7w6X!EwnkTu{tSNXJrZL!=0{b!Jx}=N8uRB-0!M6g z#_G3piKO<9!zUsLT2SFEh>#V&dT9e{z6}GeFewIS4e5qa|7MfSO^U>;6erBTUf}YC zTpOi}$Fhb#XJRWJk{ZhM!+h(qNw9-4UaMft=w zRPZkPg_PR(XSU+6`tRmw^h&!EPF5h3#?iUYjBr2g2s;Kkb0_yxTIK|cr!@L+LK6^ z3%7D8%9q8fF07q}D2+_Cjo&`JS5`IymX2K*`$AC;hhiOKxhPrZ6g=cxNlr96oXnO( z*u)|#!ON+(sekegVg7OkdT}8*9-<;Ee!nIbw8ngDKSHZ$9vWZW+UV`Yt zHK}Q>+Kj65A@aYsyw7zXsbmp|2k8m^SQ)-(ve>(InP~v!Uk1~S47E2cWY^iE@7-^Y~i9fVKY?stoGNf@hQ;JaPzzmG=p@XJHev8n@VRK>IcR@&HU>#GTd}t zKfD&!nmxJ-Kk;+5Q*>S?J@*2dnytdAWSR^zdBBeNKK zQdfv$!NokAzYpHO7+^0_bnoE(T?#$jM(>nzX z_q^_{)x2d~E5m%fWEx9DdOKTldQ-MRh?zglHd`<6u$6b7%{GiO<1Kt&^ERp#=`?|Z zGy~WTL!zC8G7##BpsrvQ&9D>2=&rPAo^%SmnyH?)31PjS!4r$uccoAIasF^GVWJ-` zy8@~qw;w6l!JX@O-jjDi%ukTICXB8=K5P&rG+LyUPH{L1b0t@QwLDWYq97A5+O4J? zPZ1cTW|LxyScmayS+0Q7qpwL${P(=rI>=6-!bnqup=cSby!w8qz%xGS^HdgWS@!1s z6qDW6B8ZB{Wt&ipHD}LuXH9J(uZs01Wa$1b&?Ev@7hWSESJ zXV|CI7wRK1&X_t_rTakK`jn&|814886=W4}Ec`~T;BPDN!| zNC3d>Ne+~e6k?bRQ(fsLxZwESfxjfpJ|S^;7dJvzi{%npryj0k>>V>O5~gDF(s;d% zn+7lT84Nf=j#35;ZGzABY^2d0@pTse`G_l8>f9@@7+XGiHl|GVUE#lhstg!pkw9^5 zwC}eUfTP7)6JoE=uA6VT>89wMgyj>-Q}yLp@Pf)jehe-?u64zK(y{fQ=A*i=F-AHW zyAl|d7w~|$OH?$eXSG&EptZ%SIUc-G)Oz6!0@tWsQ4gXeDKP#C{*JEKV!5hssct9ydSqcTq-S^E6~j3r!1Q zqV%Dz*>9LB6f(2IL5R{kn_b=QSWO5|4GlQWADR-wpkHK>ea8@RCb97J$3{z{ECpW3 zRRmL{;y_QWFnojSs4l9?+@8`cWqp0E>@jUd(Y z9j-XJNbZhm03rnx4dsLMm31^JIOX6D0-cNG^s}HvesW=(hh{zrs4?cCO`qVRh&*em zb1r7n(JUs?H(SqRLuQTHauQQ9$v&SfDS=3H69g6thFuaG)Tt-o$Q+Jz{*86z{wdo| zoRPs*tZ$A~Y1S7WA>!U?Wjk3#b+tt4Fu z4VE&699;a*$i}muA=NImgTWd_=7|bJ5jUZUJ%y5X%*cXi=DIqqZ6(#@{cC?eH66X- zhcC5oN@N?Q+vkd(LjU88(NeXznyftP&a#wmTJCg>+0sy}C#vxix0QbT89BKna;W6E zU2LQ)(3Xq7qU7Pt`4^=)L@^xUFO6ayQBnvOZYRyk9y*!T2ABc%A7viML8Kcx_UDiP zMa{iwTJY3-t3{$E^~aZ}^V(=F>M07(J?G&>KZr?e^+Hu?O{U3%Idt=666XeT@o=wQ zG|kM3gK-Jz_XQ7)8O9YHH6(;8{gTB=i}L8>7n|Dti!Czm5LJw19YGSu4~4+Ql=y#1 z2fr0FTl@{-q%kY6?#PA+hINVHj6{+@^DDq1uE?s;A+2U72=lBOKj>d&UeIzI?%rAA zD6NZUMxL8E7vjsjU(g>n|NaNYoIAwC8RNE$Bn(DmA#lo16*N|CwMCj}@!}S9+hY%& zKqf`{q_M6%qyG%#IUi$MB|Gfj%Eh(M`+#ut-`+XJh4XlThBlyYgr#jr^cPINuoD2A z%*s#2f|Bx)7?UmEp)mW}Lbw&7^-LV>E1)sAnN4q^L$S3qV2<@WoXVneEfx};R|`Z! z^??!Q)g?ADo0zAZ#q#`1BFmz&{?eJP< zKV^~!OY(_ZcQA#VIWp`YyMY==x(>vX0bdyOQLC&cXw+e?9u;J5fDAGBdVd8?nS73E z>d@GuM9iFZP!Wer2Ylc_)wO!fS-U1!Ctd0*Uddt>18%=EYjQm0gOy*_rZt>50a?~1 zF~VLLh70F>cLQDE^^Z~m5BlRcxP0-5wCo;sZ?K4w*2E))f za2kDI-vW4AJA{{)Hd)I$Pk#F#){~f~SIg5+Bu+TyWqfP8->2cGcQ6-Ha-t~dd(nd7 zz~>ed`)P=M5{p8Xbt!-q@!i5|)axqjYpyg^BR+5E@2v}p2&mX@0EIl1k=;NpG>j+$ zP$gJjcD&o&(P62+X6hRFO7Sxzt3O?qqOpi49Mez+fQ^@~#`0r2T57}M1Bj4n#!!A4 zyw=m;My80)ptA@dOL)l>hjuB0ry?fU5_!(nNVWVdY`UjwV906rR1Jy5qQPYS9n{{8 zIS;Koebra7xNvqxDHs#o)K;>Y{Mu7yNQDSg3694!41J&+p*+W8H#jzqg=1vt(|gwl zlv)XVaVMVTXZ_WG0yW$>k#@07ngE7yGSYKd||&xfB1D*bBxhZKFl zwT5>H0gMx9(a9}a{Kt=Bof#V6uArFp37iqdNK^Acfe$qX7{-VqvN7}8#$qO0XO&AO-8oD3;SfI}nGO2HAeNe^ zp&5P++(1@GQ12(MkMYWMJoD16?8#x?f+Xl&^o4S<)zlB1>6Qo(?Ny!Ql(6O2%T1WcB#9@|Sv;h&(&Qgt|H6G-V(v3Fjf z)OAblQCh|t?Au_;qjE++BR@ALL^M(jeA>vrmp zY0;4k$l|_k-`2PF&fr5Kr6ZUVrOO}B9Ze43Uc8iN5qD!>Z?5tXx(<6A7kpEqQnbI$ zqT$t^fi8If+TzMefK3l7az5a)EBAnib;!9#A0o!6KN1+=R04r+y)VN9`^YpUVJi7uym$s5ZlY?tQn`6#gy3`eG11b*SVoX9o3 z-^RRur`Mn7MjR_~u3W5mX;S{tLW(6I!Ms<1%>ri%A9&BiSC|N!!Nd{LndNcBk~{$Py=w##%Kb@0ht~Xhq!)3HgZdW@QO(X(Y_9XcwXUT} zr}QKN*jg$b36RO3*Fq5G!m_T|ysnDH!DY||`%u!cB7wv2TPGNPILU7s4{IlQj9d6c pBE39uYkJm=a_|@bul78DgHn_{h@j)K|GEzWG7^g7bz(+A{|9s)61M;V literal 9021 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 DjU|N% diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index ea5876aa27b2de0e365405c4c7435dff85f3af93..78110516c6ed2302150dc7751aa6f87d0a6f22c0 100644 GIT binary patch literal 20346 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 TKV|D<00000NkvXXu0mjfvQ*HP literal 9021 zcmXYXdpwix|NoprP8H=?4kIBkr#XwtY*I+h%48OE*qqN&p&T-2=GaEcF;bL65@8$0 z+bO4V&Z(S6VZYnw`}!yMjI4tRYm<`!6Ai=cGiOor&Nta|abMx` zg4yM5W^C@4Y8+#_1jR^?3=iGI1p{q8&htR9=}9mrIKh#8}g7o@AbA1LAD<(hUuv>H1EOqxB;P zRj6lDInzWDyt9h<)6}rALazpuqnsRTPuvbkp> zCTX8*#sYNyR-h|8$cHJM`SHa~L-EWjX%Nc10BA4a?2A=+ zu3n}FQ+=lzC^9Qq8vhDx&hU87?qpdSaxiMy09x+{Kl~b{8Pl3}q=`CfU4`|Q7B{Yn z{2irl7=*Q%{fA=CFf*woDibUi~yT)>D_|fxXb7;fh3Rn|GIN_Y3>8_SHNJ3L?5XD zw{KsAFSY0yzPD^ilWr=gPx8M|yN})H&d&Zyqc>sx8mPZ#VT}L#xNDb3qBnSqN16Xq zeKLH=XG!x)Lfa#q`!h1Lv%5pNXZnV-lav+S%$=^|0iN}b@u`brfPP0+s#rv_`zeXo zu|~Tbfl)_3C7YC%o zLBNH7-RGv8TVNq*++AqaA!puIv~a~YTIu=0O_yaYsT^zCc2YCj>9>Se@<9!q6$3j9 zx9ryk^mL)UuV-4F4}&swRQj)d=Cc_3FfBqypQ!w&*F+o>se70dVn}bZm30qU4x>pN zK>od*>rz)$fe(g(qW0qCs&W4a5m^MmTjLcZ7XFf2qmd65#vYSCI_~$UWA|8RoYFl! znKw+W;A)T`H2WedCTCHs(UA+ z7Rv%0dq`|{6R)7$fBg}1vdA^ZAjXReAkidq!82KEVWbR=cgfYcmNc2k%l$kHk*3Q! z>s_6Hc3l2`y5WjEp8`hZ!t?HyKlmn)@ghF6CdKr_+51)UV2butvGmf&c0(oc6DarB zBPkK#X2nAxSD*?-^>%QM8vaV2zb&VB1^Pc029n!*zN%0z zVAWjxjHAs$9<3qpvnbrL7~Y=?*68f02)?`2^XvJ0l^bc0HIn&PWN_#>-KTIj;=iUS zKnF!MK8R_CK78(DTZ0xP?QggI3RpAr_2S8UXb7AwLoI9^o@a0HMiEUD+lUyG?+Ge| zK$bHsxF`8RT7}2K7zP4h?J8Z0Efk~+)e>Qn+Yic$X8VD)l7m}^W}R-zqI%$Yxzj>L zs<)xWEBYhA{jOb#6l$4E8f)SFvPm%*e6`{k&bYRb-o9yD|=U8 zz7F{XtXkYmc4CqP^&1{`qw~vm?@mVjQKu@p!_uyPtR#fx)-lVvt62ie zcwrX|et$nFY7yP}p6!*{t?RUgjd%W_)KL}gIwA}eUPY*58vc@#qc$uk6>yJd8ERaS zBzIhI>5l*$!;s7|-R>!1bFTRothZhen2-a5d`ePzj`P3@g@553@c%JVuWW_ZX3yOv zb>U^7Y@VD6TsH%3W)4387wQp`v!fKH2gH(Pfa-eOTH8S4OrUGw6xCaT4-;8exoI z6p{Xv-SCV4sp< zpnmyBE|nuM1mNBG^*KA=nQdtYaT7q6$z{pa5Mj9RA7n&NM_D8E>*ySrI%fM5>wN;7 ztd~hhfhma_vL1)O@5JvAAX4@(^0#_l9ves@h;9*(Dd1jY$zCPsf4M{}5RVq6l8I!; zcb$mHq2AE~h@lS}()*sRh8SX9MWWbiN1NKxh~>XHo2#aOu!2s#Eg0uDhf!D4c^*i0 zu}gMkXW?gSyHyr&$9F}}16qx;$?9JW@yC{aId>0&A7$ts1&E=4k4Hl)?h zT~^*#heY=>`#i>)O#L8cz3EnkO1w6qQ7|M`nMNC;?rk7nqw-)3Y>i56Pa(Al0@l zc~5I)9eD0nZYX4nennD%5*U+;85sIMQ=fNExP)IO&3-eyyoh7Vhb4$Nh6^n|FX2>y z;GX;;`In3iBZZFccRp404-|H(?{w_Tm#mKlL?ayQJ14BEq)14yiu`@pR{af-^3kF~ zv}D)A`6$qgNSi35>}l<@Vt03a!>&IUoGy3G38kgg^)!|ZXDj*dPN`*U9R?VQh;G?> zzlgN(`M;<|)?FLPt7EFk`L45_YhhMJk9;^6fZ)JYgm>MKH6IiW5CXFfk63ToXO z4LtQn>~l_zHU9ZZPO<}PdlWtt zc};V{{1nRFGJ)M`V-cvD<&^oH*MQdinQC%yD3ckqp?vk*JWh{2!m1T7(>750JFNF??_t0^!6-M)Qf6pT=tKr#%y0!}{xIn} zKnfS|x$l<466?X=?NR9U{*13aR-(W7V|}cv2h7Dz{P#j%x=sDRKJtN@j)=XZfjrw} zY`VeKjmPb{sy-!t8K{-6=Tl(Owls^kd4xim*+cXqk-@W+~F`}YyqC$!S-UE@JZnwzV}i;Zh<{63Jofi9F|(Qg?sx-Rud z76o*Ije~3s`EilWGx6e92K?6FM}>L76qKy{?7r&ak+dezX56<O->8f=NM~8BozpdLiPLpxDSO%ZJ}U?3F8ie4l;gsK-IYAvn*ROu z8|8NyYRumiKLe9SQh(hWOE_Yor*Sr@(#J`$4G z0XZf1ah=tIdZyLW>b22-!!OF*{ycVAc3{FPqo=5A%f&U8AyLG_#5NV5w~Fbqs3i&W zI_Nf^N>6SymA3G;F|PATC*IxvR6=#9+xKKgeG-!Y*KIzNGci%u3p#68<-VFxy@)$z z4o$bwLQ~FY8Fx%+diLWNI2i7ERrqxi^x)_ZoMrkP;!lOS#@t`Uz{HFe!3&Fc*{&Rc z`Iv4yLlM4(c}pMedoY{|T((Ul4Fe>Xb@J!KiMw0^1FB{RRh%v1}y2Ti-EDe}he#x*$AcAV_4(}B~zQw65zWI__&Zb^x^;avg9(T3;w zAX}Ay{QY{(A~(H7unjQd$((;)4^kxFBfZ4?m8%>|WAiVm!`m(Q+e+Dn((Q4Cqzb3} z2z~*`TB%&(E0n->bLyEajg@aJBf~Eiqr1nnpqXm#!%Kw)<}U;SX;xP+Tv_}8W`!W* znjW>_9^Sa@awGn}qJlU`V1OSkg9?nnC@L*{XU;WUAq~1_YP{RYHJ3-5osSid*7{_tYz zHE|EU@^7`oMu91P0m@9Zw8;0aG|i;vU=)yU=XWLqYlt~wvJ-J*sl8=241jmVdkA3! z2XuD?g~UM9wQv>7L1BE~8O)|do*=V(y_nJX8{H4pQ$0IIhXK> zU;8n~G=Bjh2A|s4ZFgEK{&C{rRH^Tm)Ls*iROr{c=j(6c$MQe=rJGVK+BA@PgZ%%~ z=X>6y2bhJ^1B1Aw?H0cM^gw;ctV>{EVS@R&9Lfxym!;oZSi&hB z{~}I0s&8_LRr>#j50nNeakN`%`W%75c{3#d^yMzg)SIrOM0w(~tSB}KOeyd=)2evh>78xUtiwg zW!P|5Ly&i2T3}yJ>(U0X;XF*wbxhXsBwTw(au82oVmZzG#E0!$0}*Djj81C&!*ayn zn}m?nc$kEL_V)h}!UH306}#BE(cY3*#1Q|PRt9KF`5YW!92Wa4+vvo%|Ebn5V)edr zqM=i_zB8QdH^(;Lp21gMr{8h$MkoJ(BII6o?q4@ImfqE!`A^H9x&gp2CHj<0oyisM z?nWYvn5oQB`tTk7W%)Dy_CT`w9X041LYPO=n9svvVJW9svJwu_h0;{el!wsM5UnMEmpMm?{a_>-5MA<^A-h&T~N zK+Mcy{c5cWvw*LcZt>Htai9r?A48g;Pu$jNRz5Q+sFnS=?$AATIETRJB@_FxkJfoC zjB01Cr`fhN87Zz=?_WBRX{JnOYN{{)@oBd{T`f!jsP$L2X+1g3Zg>cZLGM<)H#HnL z%LVyvn~R&62(0oiHDz04OFz_)o#^6kU+plvkB02bxt+v-&7*;>Mx{47n}|ANyctzj zsac`fVb0}mF6|9Ak*8h)t!Zii6*hLL7Vh8iJ(|7W4=fjca`dJu)FJw5m*QhxIgObn z8MIcl9#A^YN`RxwgIu6zw-Z>q!N;)B$el^p_w#hQTAA{w-8j$f&M(a~w=o5M zV@Qsh;8sBs=JsnL^mZq-uka2G)O5mn<+sKCD8>| z+6ei~M|ASg*>1)IO5CkfdFRh>l3uSAU8t})j5oRheQCUEDY`j3-T=p>fYR^MCf;ZA zM#tlKgxdnRj8Eb%00*9_^}kAH4Yvbls)hMDAnRpvP0n;mM;BgN9ER)4BID-(S0>T1 z5^N7w1AnY#R1G=TP38N8Owu1KMY||0{$eY*d4($t5=yz;Y{Vc1JBNOJatVmVN3SGc ziZ(KF4O}X4XfO+44-)DYhUY!Un?0`V4}@D`VYq3fX%Rzff_RhPgEu{m#IXK4py+lB zzS6JNOi{N!Cep$vp=W1!m~PAe-JH)$@65<=pG(|L5JwtNlSq^gz|O+d_u+H;{}N5# zV|wO$k#AvuIgXG0nZ2I8ubxcbdIR+14TDOR5tSi7NNONJ9#r0%0Rj@; zdu)lemI=n9-Q5z<56p#8*NJ0yZq8FG@PMO&g5|{r(_IJLdi>rM$C^(38$PE1osWyATfJWtAT@-J^o?rbjb(U=h1pqXZW zely!;Q1T3v7lp+hk80`*ylrLCf98HFHQ5o&A1Yrf#onRjoLkw^l(JX~%{05`fUL60 zznJl$PdLox(U|PSQcaLrB7YsA0cN+VAM8QWwRy}nUwt~sUyQrSq$&S&h%8D%bYmZ{ z_Y~02xH#Rozpc{w_M>5THKqfCF*?WzZzvQ95a$t7qk>Q zFf2b6&^I808x+}kq$(G~|4hk8gJ!gf#M)d26f)H98f4Q8Y@x5>z6H3iGdnSFl}N&X zgAWI!2I$BT3fW!ypx)C2ZGo3->aNTsk|^B;5yp8e3gU*PuFdc*-UDiLLm?3y5MxlL zzF_W&m<{VWV(rbItNkReurfzR_Vok%Ou|@NNjyCyfFqUiP zTO>I53|rgAJquy+TlYe?FrMT}e|}I}o#lKW*({PeY&}5ro1YNRzEZd)C z4BhEdK6z)yy!y`_gD($8xbHyeG?A^ux1!l9CGtQ&?YQ8>`&1hk;Ga8lJ?s$@$u-;07fQ_4THndf{onq?tH=6qHp*te9ahC~ zSkP@K7onN+#LWV$R6>Z?r@r3ZbNjVW7vk);V2k>pIUU&fNN$dQWcizR}N!riXY)rbZtCLSsm5VD2~QZgVb$_8nX@pJ6}c z`1iIJ@IL^8en2=I53a?KD6<{BJ?EM<|ot@2qgGuzdia*}^nXmZ|0D z`Zr9E&RsE*zQod-_v00U`e{zI@>@eo5DWrT67$7gxfLG_HrFb>}$$ zq8E}V_3+$k00Sk*eJs-~eM7di=eYip1zafvx!00@s4Mf4mB1;Yw2GW}tT+1Zf37!g ztK6LWX;q}!5Fkg+#8_L?^2KxC{HG%x1@cgT5`zOlkyQkR{RMOT*tg#8RlqD*Y|}Z1 zkORQLGW?Xit90QV*p_}HN|77Ti(71{lSLI- za#q28ph#C?2#kkI!KWl_dPxyM-L9oEDN^KKf+zDIIMH-F_{NX!X!G{ad_cdLCB)N7 zfcW$F$X`%}TZIHc+wpoD(+PQb&by7(891Rfi;MsMTvVG7nk-^CU^ErRYd%2>{?3uD z#_T_PW(G=@`9-q$Qj8dO=vy`+Tc;pBc?hb%`~w3m?NWx0bZ2`wehVVafVN@2k2b}EU$t# zD7q;6@ZL4SE}(sehUl*dvt5el4ULf_=n-{FluawI&XEomGGAq z3ob2IF@;~Z3z{O0G4GMERSVHk`LMSe3i8N3&+0bISOQDpKv+urZ- zPhJDyVT!M#KI7q$3M7eK44(ip1bo=D2sbf8jg4x9Rd#&N! z#6*$wyHoXxLax|M1I)kE&q`<8@e76s8h$t42bPn;`;>OeHv|{)Fy<#7@_)8j)vTkQ?16T?NtsFA$6L6};LTC%~rv4rK5jGETg$6vC4A?FF59KYPZ zWQqQ2F692~n_16Nvm9k6e)UHeO9Va{S=btLOL=xTB)Rb4eI|nw98zn%hRJ91ll(!A zz|jIaY5&B%-`uFv_^=J{-EhlIR>p8bv)kG@!!d#F?67pxVffXo#O7~LjUThOarZPz zGB;(tbh%57P-RQiv7UZCx6IK0EzY)w$~ksj);J<=O=ASvF} z4h$k9vM6B8+9UETg^ovG4sqCTjk`J1uoNmh!&qgs{E5={3m*+eQ0D~grw*O~^IPf_ z11rxZE!x>k@vI+R6;*C8_ngrwmxT8x`+u%5SQ>`}^Fl*2rh)fiK(K2!O{%Wmd-VSR DjU|N% 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 @@ + + + + + + + + + + + + + +