diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 55580b8652..2c1bf5017d 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/src/main/java/com/tangem/presentation/activity/LoadedWalletActivity.java b/app/src/main/java/com/tangem/presentation/activity/LoadedWalletActivity.java index 8f95153a90..94ee33cce4 100644 --- a/app/src/main/java/com/tangem/presentation/activity/LoadedWalletActivity.java +++ b/app/src/main/java/com/tangem/presentation/activity/LoadedWalletActivity.java @@ -10,6 +10,7 @@ import android.support.v7.app.AppCompatActivity; import com.tangem.presentation.fragment.LoadedWalletFragment; import com.tangem.wallet.R; +import java.util.Objects; public class LoadedWalletActivity extends AppCompatActivity { @@ -19,11 +20,10 @@ public class LoadedWalletActivity extends AppCompatActivity { setContentView(R.layout.activity_loaded_wallet); MainActivity.commonInit(getApplicationContext()); - if( getIntent().getExtras().containsKey(NfcAdapter.EXTRA_TAG) ) - { - Tag tag=getIntent().getParcelableExtra(NfcAdapter.EXTRA_TAG); - if (tag != null ) { - LoadedWalletFragment fragment=(LoadedWalletFragment)(getSupportFragmentManager().findFragmentById(R.id.loaded_wallet_fragment)); + if (Objects.requireNonNull(getIntent().getExtras()).containsKey(NfcAdapter.EXTRA_TAG)) { + Tag tag = getIntent().getParcelableExtra(NfcAdapter.EXTRA_TAG); + if (tag != null) { + LoadedWalletFragment fragment = (LoadedWalletFragment) (getSupportFragmentManager().findFragmentById(R.id.loaded_wallet_fragment)); fragment.onTagDiscovered(tag); } } @@ -31,10 +31,11 @@ public class LoadedWalletActivity extends AppCompatActivity { @Override public void onBackPressed() { - LoadedWalletFragment loadedWalletFragment =(LoadedWalletFragment) getSupportFragmentManager().findFragmentById(R.id.loaded_wallet_fragment); - Intent data= loadedWalletFragment.prepareResultIntent(); + LoadedWalletFragment loadedWalletFragment = (LoadedWalletFragment) getSupportFragmentManager().findFragmentById(R.id.loaded_wallet_fragment); + Intent data = loadedWalletFragment.prepareResultIntent(); data.putExtra("modification", "update"); setResult(Activity.RESULT_OK, data); finish(); } + } diff --git a/app/src/main/java/com/tangem/presentation/activity/LogoActivity.java b/app/src/main/java/com/tangem/presentation/activity/LogoActivity.java index e9d5b73e5a..02bd68b64a 100644 --- a/app/src/main/java/com/tangem/presentation/activity/LogoActivity.java +++ b/app/src/main/java/com/tangem/presentation/activity/LogoActivity.java @@ -15,6 +15,7 @@ import com.tangem.wallet.R; * status bar and navigation/system bar) with user interaction. */ public class LogoActivity extends AppCompatActivity { + public static final String TAG = LogoActivity.class.getSimpleName(); private final Runnable mHideRunnable = new Runnable() { @Override diff --git a/app/src/main/java/com/tangem/presentation/activity/MainActivity.java b/app/src/main/java/com/tangem/presentation/activity/MainActivity.java index 189cf2e335..fa493db2f9 100644 --- a/app/src/main/java/com/tangem/presentation/activity/MainActivity.java +++ b/app/src/main/java/com/tangem/presentation/activity/MainActivity.java @@ -72,7 +72,6 @@ public class MainActivity extends AppCompatActivity implements PopupMenu.OnMenuI // OnCreateNFCDialog onCreateNFCDialog; - public void setOnCardsClean(OnCardsClean onCardsClean) { this.onCardsClean = onCardsClean; } @@ -126,7 +125,6 @@ public class MainActivity extends AppCompatActivity implements PopupMenu.OnMenuI new RootFoundDialog().show(getFragmentManager(), "RootFoundDialog"); } - setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); commonInit(getApplicationContext()); @@ -207,7 +205,6 @@ public class MainActivity extends AppCompatActivity implements PopupMenu.OnMenuI showMenu(fab); return true; } - return super.onKeyDown(keycode, e); } @@ -260,7 +257,6 @@ public class MainActivity extends AppCompatActivity implements PopupMenu.OnMenuI } } - } @Override @@ -281,9 +277,6 @@ public class MainActivity extends AppCompatActivity implements PopupMenu.OnMenuI @Override public boolean onOptionsItemSelected(MenuItem item) { - // Handle action bar item clicks here. The action bar will - // automatically handle clicks on the Home/Up button, so long - // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement @@ -338,7 +331,7 @@ public class MainActivity extends AppCompatActivity implements PopupMenu.OnMenuI private void showLogoActivity() { Intent intent = new Intent(getBaseContext(), LogoActivity.class); - intent.putExtra("skipAutoHide", true); + intent.putExtra(LogoActivity.TAG, true); startActivity(intent); } @@ -358,10 +351,13 @@ public class MainActivity extends AppCompatActivity implements PopupMenu.OnMenuI PopupMenu popup = new PopupMenu(this, v); MenuInflater inflater = popup.getMenuInflater(); inflater.inflate(R.menu.menu_main, popup.getMenu()); + if (BuildConfig.DEBUG) { - for (int i = 0; i < popup.getMenu().size(); i++) - popup.getMenu().getItem(i).setVisible(true); + popup.getMenu().findItem(R.id.managePIN).setEnabled(true); + popup.getMenu().findItem(R.id.managePIN2).setEnabled(true); + popup.getMenu().findItem(R.id.sendLogs).setVisible(true); } + popup.setOnMenuItemClickListener(this); popup.show(); } @@ -402,4 +398,5 @@ public class MainActivity extends AppCompatActivity implements PopupMenu.OnMenuI } } + } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/presentation/activity/SavePINActivity.java b/app/src/main/java/com/tangem/presentation/activity/SavePINActivity.java index 56298fd2ce..6fc3b5bf1a 100644 --- a/app/src/main/java/com/tangem/presentation/activity/SavePINActivity.java +++ b/app/src/main/java/com/tangem/presentation/activity/SavePINActivity.java @@ -55,7 +55,7 @@ public class SavePINActivity extends AppCompatActivity implements FingerprintHel private FingerprintManager.CryptoObject cryptoObject; private FingerprintHelper fingerprintHelper; - private boolean UsePIN2=false; + private boolean UsePIN2 = false; @Override @@ -65,28 +65,28 @@ public class SavePINActivity extends AppCompatActivity implements FingerprintHel MainActivity.commonInit(getApplicationContext()); - UsePIN2=getIntent().getBooleanExtra("PIN2", false); + UsePIN2 = getIntent().getBooleanExtra("PIN2", false); tvPIN = findViewById(R.id.pin); OnClickListener onButtonNClick = new OnClickListener() { @Override public void onClick(View view) { - tvPIN.setText(String.format("%s%s", tvPIN.getText(),((Button) view).getText())); + tvPIN.setText(String.format("%s%s", tvPIN.getText(), ((Button) view).getText())); } }; - if( UsePIN2 ) { + if (UsePIN2) { ((TextView) findViewById(R.id.pin_prompt)).setText(R.string.enter_pin2_and_use_fingerprint_to_save_it); - }else{ + } else { ((TextView) findViewById(R.id.pin_prompt)).setText(R.string.enter_pin_and_use_fingerprint_to_save_it); } chkUseFingerprint = (CheckBox) findViewById(R.id.chkUseFingerprint); - if( UsePIN2 ) { + if (UsePIN2) { chkUseFingerprint.setChecked(true); chkUseFingerprint.setEnabled(false); - }else{ + } else { chkUseFingerprint.setChecked(PINStorage.haveEncryptedPIN()); chkUseFingerprint.setEnabled(true); } @@ -164,6 +164,7 @@ public class SavePINActivity extends AppCompatActivity implements FingerprintHel private enum OnConfirmAction {Save, DeleteEncryptedAndSave, Delete} + OnConfirmAction onConfirmAction; private void doSavePIN() { @@ -188,8 +189,7 @@ public class SavePINActivity extends AppCompatActivity implements FingerprintHel focusView.requestFocus(); } else { - if( UsePIN2 ) - { + if (UsePIN2) { if (!testFingerPrintSettings()) { tvPIN.postDelayed(new Runnable() { @Override @@ -204,7 +204,7 @@ public class SavePINActivity extends AppCompatActivity implements FingerprintHel mConfirmWithFingerprintTask = new ConfirmWithFingerprintTask(); mConfirmWithFingerprintTask.execute((Void) null); - }else { + } else { if (chkUseFingerprint.isChecked() || PINStorage.haveEncryptedPIN()) { if (!testFingerPrintSettings()) { tvPIN.postDelayed(new Runnable() { @@ -236,8 +236,7 @@ public class SavePINActivity extends AppCompatActivity implements FingerprintHel } private void doDeletePIN() { - if( UsePIN2 ) - { + if (UsePIN2) { if (PINStorage.haveEncryptedPIN2()) { if (!testFingerPrintSettings()) { tvPIN.postDelayed(new Runnable() { @@ -255,7 +254,7 @@ public class SavePINActivity extends AppCompatActivity implements FingerprintHel tvPIN.setText(""); finish(); } - }else { + } else { if (chkUseFingerprint.isChecked() || PINStorage.haveEncryptedPIN()) { if (!testFingerPrintSettings()) { tvPIN.postDelayed(new Runnable() { @@ -292,30 +291,27 @@ public class SavePINActivity extends AppCompatActivity implements FingerprintHel switch (onConfirmAction) { case Save: String textToEncrypt = tvPIN.getText().toString(); - if( UsePIN2 ) - { + if (UsePIN2) { PINStorage.saveEncryptedPIN2(cipher, textToEncrypt); - }else { + } else { PINStorage.saveEncryptedPIN(cipher, textToEncrypt); } print(R.string.pin_save_success); break; case Delete: - if( UsePIN2 ) - { + if (UsePIN2) { PINStorage.deleteEncryptedPIN2(); - }else { + } else { PINStorage.deleteEncryptedPIN(); PINStorage.deletePIN(); } tvPIN.setText(""); break; case DeleteEncryptedAndSave: - if( UsePIN2 ) - { + if (UsePIN2) { PINStorage.deleteEncryptedPIN2(); PINStorage.saveEncryptedPIN2(cipher, tvPIN.getText().toString()); - }else { + } else { PINStorage.deleteEncryptedPIN(); PINStorage.savePIN(tvPIN.getText().toString()); } @@ -382,11 +378,11 @@ public class SavePINActivity extends AppCompatActivity implements FingerprintHel KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); fingerprintManager = (FingerprintManager) getSystemService(FINGERPRINT_SERVICE); - if (!keyguardManager.isKeyguardSecure()) { - print("User hasn't enabled Lock Screen"); - Toast.makeText(getBaseContext(), "User hasn't enabled Lock Screen", Toast.LENGTH_LONG).show(); - return false; - } + if (!keyguardManager.isKeyguardSecure()) { + print("User hasn't enabled Lock Screen"); + Toast.makeText(getBaseContext(), "User hasn't enabled Lock Screen", Toast.LENGTH_LONG).show(); + return false; + } if (ActivityCompat.checkSelfPermission(this, Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) { print("User hasn't granted permission to use Fingerprint"); diff --git a/app/src/main/java/com/tangem/presentation/adapter/CardListAdapter.java b/app/src/main/java/com/tangem/presentation/adapter/CardListAdapter.java index d6ddb400a9..770918ad90 100644 --- a/app/src/main/java/com/tangem/presentation/adapter/CardListAdapter.java +++ b/app/src/main/java/com/tangem/presentation/adapter/CardListAdapter.java @@ -31,7 +31,6 @@ import static com.tangem.domain.wallet.TangemCard.CountOurTx; public class CardListAdapter extends RecyclerView.Adapter { - public static class CardViewHolder extends RecyclerView.ViewHolder { CardView cv; TextView tvBalance, tvOffline, tvBalanceEquivalent, tvWallet, tvInputs, tvStatusInBlockchain, tvCardID, tvLastInput, lbLastInput, lbLastOutput, tvLastOutput, tvBlockchain; @@ -92,7 +91,7 @@ public class CardListAdapter extends RecyclerView.Adapter UIDs = instate.getStringArrayList("card_UID"); - if( UIDs!=null ) { + if (UIDs != null) { for (String UID : UIDs) { TangemCard card = new TangemCard(UID); card.LoadFromBundle(instate.getBundle(String.format("card_%s", UID))); @@ -133,7 +132,7 @@ public class CardListAdapter extends RecyclerView.Adapter { - int id = item.getItemId(); - switch (id) { - case R.id.action_set_PIN1: - doSetPin(); - return true; - case R.id.action_reset_PIN1: - doResetPin(); - return true; - case R.id.action_set_PIN2: - doSetPin2(); - return true; - case R.id.action_reset_PIN2: - doResetPin2(); - return true; - case R.id.action_reset_PINs: - doResetPins(); - return true; - case R.id.action_purge: - doPurge(); - return true; - default: - return false; - } + int id = item.getItemId(); + switch (id) { + case R.id.action_set_PIN1: + doSetPin(); + return true; + + case R.id.action_reset_PIN1: + doResetPin(); + return true; + + case R.id.action_set_PIN2: + doSetPin2(); + return true; + + case R.id.action_reset_PIN2: + doResetPin2(); + return true; + + case R.id.action_reset_PINs: + doResetPins(); + return true; + + case R.id.action_purge: + doPurge(); + return true; + + default: + return false; } }); popup.show(); @@ -779,14 +781,13 @@ public class LoadedWalletFragment extends Fragment implements SwipeRefreshLayout req.setID(67); req.setBlockchain(mCard.getBlockchain()); task.execute(req); - } else if (mCard.getBlockchain() == Blockchain.Bitcoin ||mCard.getBlockchain() == Blockchain.BitcoinTestNet) { + } else if (mCard.getBlockchain() == Blockchain.Bitcoin || mCard.getBlockchain() == Blockchain.BitcoinTestNet) { String nodeAddress = engine.GetNode(mCard); int nodePort = engine.GetNodePort(mCard); UpdateWalletInfoTask connectTask = new UpdateWalletInfoTask(nodeAddress, nodePort); connectTask.execute(ElectrumRequest.Broadcast(mCard.getWallet(), tx)); - } - else if (mCard.getBlockchain() == Blockchain.BitcoinCash ||mCard.getBlockchain() == Blockchain.BitcoinCashTestNet) { + } else if (mCard.getBlockchain() == Blockchain.BitcoinCash || mCard.getBlockchain() == Blockchain.BitcoinCashTestNet) { String nodeAddress = engine.GetNode(mCard); int nodePort = engine.GetNodePort(mCard); @@ -1372,7 +1373,7 @@ public class LoadedWalletFragment extends Fragment implements SwipeRefreshLayout e.printStackTrace(); ErrorOnUpdate(e.toString()); engine.SwitchNode(mCard); - } + } } else { e.printStackTrace(); ErrorOnUpdate(e.toString()); @@ -1422,7 +1423,7 @@ public class LoadedWalletFragment extends Fragment implements SwipeRefreshLayout e.printStackTrace(); ErrorOnUpdate(e.toString()); engine.SwitchNode(mCard); - } + } for (int i = 0; i < jsUnspentArray.length(); i++) { JSONObject jsUnspent = jsUnspentArray.getJSONObject(i); diff --git a/app/src/main/java/com/tangem/presentation/fragment/MainFragment.java b/app/src/main/java/com/tangem/presentation/fragment/MainFragment.java index 10710aea41..61613f4e06 100644 --- a/app/src/main/java/com/tangem/presentation/fragment/MainFragment.java +++ b/app/src/main/java/com/tangem/presentation/fragment/MainFragment.java @@ -110,7 +110,7 @@ public class MainFragment extends Fragment implements NfcAdapter.ReaderCallback, // SwipeRefreshLayout mSwipeRefreshLayout = result.findViewById(R.id.swipe_container); //TODO: tmp - if( mSwipeRefreshLayout!=null ) { + if (mSwipeRefreshLayout != null) { SwipeRefreshLayout.OnRefreshListener onRefreshListener = new SwipeRefreshLayout.OnRefreshListener() { @Override @@ -127,7 +127,7 @@ public class MainFragment extends Fragment implements NfcAdapter.ReaderCallback, } } }; - mSwipeRefreshLayout.setOnRefreshListener(onRefreshListener); //TODO: tmp + mSwipeRefreshLayout.setOnRefreshListener(onRefreshListener); //TODO: tmp } ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) { @@ -267,15 +267,14 @@ public class MainFragment extends Fragment implements NfcAdapter.ReaderCallback, String nodeAddress = engine.GetNode(card); int nodePort = engine.GetNodePort(card); RequestWalletInfoTask task = new RequestWalletInfoTask(nodeAddress, nodePort); - if( mSwipeRefreshLayout!=null ) mSwipeRefreshLayout.setRefreshing(true); //TODO: tmp + if (mSwipeRefreshLayout != null) mSwipeRefreshLayout.setRefreshing(true); //TODO: tmp requestTasks.add(task); task.execute(ElectrumRequest.ListUnspent(card.getWallet()), ElectrumRequest.ListHistory(card.getWallet())); RateInfoTask taskRate = new RateInfoTask(); ExchangeRequest rate = ExchangeRequest.GetRate(card.getWallet(), "bitcoin", "bitcoin"); taskRate.execute(rate); - } - else if (card.getBlockchain() == Blockchain.BitcoinCashTestNet || card.getBlockchain() == Blockchain.BitcoinCash) { + } else if (card.getBlockchain() == Blockchain.BitcoinCashTestNet || card.getBlockchain() == Blockchain.BitcoinCash) { SharedData data = new SharedData(SharedData.COUNT_REQUEST); for (int i = 0; i < data.allRequest; ++i) { @@ -288,14 +287,14 @@ public class MainFragment extends Fragment implements NfcAdapter.ReaderCallback, String nodeAddress = engine.GetNode(card); int nodePort = engine.GetNodePort(card); RequestWalletInfoTask task = new RequestWalletInfoTask(nodeAddress, nodePort); - if( mSwipeRefreshLayout!=null ) mSwipeRefreshLayout.setRefreshing(true); //TODO: tmp + if (mSwipeRefreshLayout != null) mSwipeRefreshLayout.setRefreshing(true); //TODO: tmp requestTasks.add(task); task.execute(ElectrumRequest.ListUnspent(card.getWallet()), ElectrumRequest.ListHistory(card.getWallet())); RateInfoTask taskRate = new RateInfoTask(); ExchangeRequest rate = ExchangeRequest.GetRate(card.getWallet(), "bitcoin-cash", "bitcoin-cash"); taskRate.execute(rate); - }else if (card.getBlockchain() == Blockchain.Token) { + } else if (card.getBlockchain() == Blockchain.Token) { ETHRequestTask updateETH = new ETHRequestTask(card.getBlockchain()); InfuraRequest reqETH = InfuraRequest.GetTokenBalance(card.getWallet(), engine.GetContractAddress(card), engine.GetTokenDecimals(card)); reqETH.setID(67); @@ -362,7 +361,8 @@ public class MainFragment extends Fragment implements NfcAdapter.ReaderCallback, int nodePort = engine.GetNodePort(card); RequestWalletInfoTask task = new RequestWalletInfoTask(nodeAddress, nodePort); - if( mSwipeRefreshLayout!=null ) mSwipeRefreshLayout.setRefreshing(true); //TODO: tmp + if (mSwipeRefreshLayout != null) + mSwipeRefreshLayout.setRefreshing(true); //TODO: tmp requestTasks.add(task); task.execute(ElectrumRequest.ListUnspent(card.getWallet()), ElectrumRequest.ListHistory(card.getWallet())); @@ -370,7 +370,7 @@ public class MainFragment extends Fragment implements NfcAdapter.ReaderCallback, ExchangeRequest rate = ExchangeRequest.GetRate(card.getWallet(), "bitcoin", "bitcoin"); taskRate.execute(rate); - }else if (card.getBlockchain() == Blockchain.BitcoinCashTestNet || card.getBlockchain() == Blockchain.BitcoinCash) { + } else if (card.getBlockchain() == Blockchain.BitcoinCashTestNet || card.getBlockchain() == Blockchain.BitcoinCash) { SharedData data = new SharedData(SharedData.COUNT_REQUEST); for (int i = 0; i < data.allRequest; ++i) { @@ -385,7 +385,8 @@ public class MainFragment extends Fragment implements NfcAdapter.ReaderCallback, int nodePort = engine.GetNodePort(card); RequestWalletInfoTask task = new RequestWalletInfoTask(nodeAddress, nodePort); - if( mSwipeRefreshLayout!=null ) mSwipeRefreshLayout.setRefreshing(true); //TODO: tmp + if (mSwipeRefreshLayout != null) + mSwipeRefreshLayout.setRefreshing(true); //TODO: tmp requestTasks.add(task); task.execute(ElectrumRequest.ListUnspent(card.getWallet()), ElectrumRequest.ListHistory(card.getWallet())); @@ -393,8 +394,7 @@ public class MainFragment extends Fragment implements NfcAdapter.ReaderCallback, ExchangeRequest rate = ExchangeRequest.GetRate(card.getWallet(), "bitcoin-cash", "bitcoin-cash"); taskRate.execute(rate); - } - else if (card.getBlockchain() == Blockchain.Token) { + } else if (card.getBlockchain() == Blockchain.Token) { ETHRequestTask updateETH = new ETHRequestTask(card.getBlockchain()); InfuraRequest reqETH = InfuraRequest.GetTokenBalance(card.getWallet(), engine.GetContractAddress(card), engine.GetTokenDecimals(card)); reqETH.setID(67); @@ -428,23 +428,32 @@ public class MainFragment extends Fragment implements NfcAdapter.ReaderCallback, @Override public void onViewCard(Bundle cardInfo) { - if( mSwipeRefreshLayout!=null ) mSwipeRefreshLayout.setRefreshing(false); //TODO: tmp + if (mSwipeRefreshLayout != null) + mSwipeRefreshLayout.setRefreshing(false); //TODO: tmp String UID = cardInfo.getString("UID"); TangemCard card = new TangemCard(UID); card.LoadFromBundle(cardInfo.getBundle("Card")); - Intent intent; - if (card.getStatus() == TangemCard.Status.Empty) { intent = new Intent(getActivity(), EmptyWalletActivity.class); - } else if (card.getStatus() == TangemCard.Status.Loaded) { +// Toast.makeText(getContext(), "1", Toast.LENGTH_SHORT).show(); + } + + else if (card.getStatus() == TangemCard.Status.Loaded) { intent = new Intent(getActivity(), LoadedWalletActivity.class); - } else if (card.getStatus() == TangemCard.Status.NotPersonalized || card.getStatus() == TangemCard.Status.Purged) { +// Toast.makeText(getContext(), "2", Toast.LENGTH_SHORT).show(); + } + + else if (card.getStatus() == TangemCard.Status.NotPersonalized || card.getStatus() == TangemCard.Status.Purged) { +// Toast.makeText(getContext(), "3", Toast.LENGTH_SHORT).show(); return; - } else { + } + + else { intent = new Intent(getActivity(), LoadedWalletActivity.class); +// Toast.makeText(getContext(), "4", Toast.LENGTH_SHORT).show(); } intent.putExtras(cardInfo); @@ -771,7 +780,8 @@ public class MainFragment extends Fragment implements NfcAdapter.ReaderCallback, protected void onCancelled() { super.onCancelled(); requestTasks.remove(this); - if ( mSwipeRefreshLayout!=null && requestTasks.size() == 0) mSwipeRefreshLayout.setRefreshing(false); //TODO: tmp + if (mSwipeRefreshLayout != null && requestTasks.size() == 0) + mSwipeRefreshLayout.setRefreshing(false); //TODO: tmp } @@ -921,7 +931,8 @@ public class MainFragment extends Fragment implements NfcAdapter.ReaderCallback, } } - if ( mSwipeRefreshLayout!=null && requestTasks.size() == 0) mSwipeRefreshLayout.setRefreshing(false); //TODO: tmp + if (mSwipeRefreshLayout != null && requestTasks.size() == 0) + mSwipeRefreshLayout.setRefreshing(false); //TODO: tmp } } diff --git a/app/src/main/res/menu/menu_loaded_wallet.xml b/app/src/main/res/menu/menu_loaded_wallet.xml index 9476857c95..9b93dd09a3 100644 --- a/app/src/main/res/menu/menu_loaded_wallet.xml +++ b/app/src/main/res/menu/menu_loaded_wallet.xml @@ -1,41 +1,49 @@ - + tools:context="com.tangem.presentation.activity.LoadedWalletActivity"> + + android:orderInCategory="100" + android:title="@string/set_pin_1" + app:showAsAction="never"/> + + android:orderInCategory="200" + android:title="@string/set_pin_2" + app:showAsAction="never"/> + + android:orderInCategory="300" + android:title="@string/reset_pin_1_to_default" + app:showAsAction="never"/> + + android:orderInCategory="400" + android:title="@string/reset_pin_2_to_default" + app:showAsAction="never"/> + + android:orderInCategory="500" + android:title="@string/reset_pins_to_default" + app:showAsAction="never"/> + + android:orderInCategory="600" + android:title="@string/erase_wallet" + app:showAsAction="never"/> + diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml index 7390c1763b..8828b2347b 100644 --- a/app/src/main/res/menu/menu_main.xml +++ b/app/src/main/res/menu/menu_main.xml @@ -1,10 +1,28 @@ - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b68c06cb89..ac8a5db3ca 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -30,6 +30,21 @@ LoadedWalletActivity Settings + + Clean up + Manage user PIN1… + Manage user PIN2… + Send logs… + About… + + + Set PIN1 + Set PIN2 + Reset PIN1 to default + Reset PIN2 to default + Reset PINs to default + Erase wallet + BETA