diff --git a/android/java/org/chromium/chrome/browser/crypto_wallet/activities/AccountDetailActivity.java b/android/java/org/chromium/chrome/browser/crypto_wallet/activities/AccountDetailActivity.java index 7e1ab8003e2..db4b4a7b166 100644 --- a/android/java/org/chromium/chrome/browser/crypto_wallet/activities/AccountDetailActivity.java +++ b/android/java/org/chromium/chrome/browser/crypto_wallet/activities/AccountDetailActivity.java @@ -62,6 +62,7 @@ public class AccountDetailActivity new Intent(AccountDetailActivity.this, AccountDetailsWithQrActivity.class); accountDetailsWithQrActivityIntent.putExtra(Utils.ADDRESS, mAddress); accountDetailsWithQrActivityIntent.putExtra(Utils.NAME, mName); + accountDetailsWithQrActivityIntent.putExtra(Utils.ISIMPORTED, mIsImported); startActivity(accountDetailsWithQrActivityIntent); } }); diff --git a/android/java/org/chromium/chrome/browser/crypto_wallet/activities/AccountDetailsWithQrActivity.java b/android/java/org/chromium/chrome/browser/crypto_wallet/activities/AccountDetailsWithQrActivity.java index 30c399f3746..13f9e14cb20 100644 --- a/android/java/org/chromium/chrome/browser/crypto_wallet/activities/AccountDetailsWithQrActivity.java +++ b/android/java/org/chromium/chrome/browser/crypto_wallet/activities/AccountDetailsWithQrActivity.java @@ -37,6 +37,7 @@ public class AccountDetailsWithQrActivity extends AsyncInitializationActivity { private String mAddress; private String mName; + private boolean mIsImported; @Override protected void triggerLayoutInflation() { @@ -45,6 +46,7 @@ public class AccountDetailsWithQrActivity extends AsyncInitializationActivity { if (getIntent() != null) { mAddress = getIntent().getStringExtra(Utils.ADDRESS); mName = getIntent().getStringExtra(Utils.NAME); + mIsImported = getIntent().getBooleanExtra(Utils.ISIMPORTED, false); } Toolbar toolbar = findViewById(R.id.toolbar); @@ -67,6 +69,9 @@ public class AccountDetailsWithQrActivity extends AsyncInitializationActivity { accountNameText.setEnabled(false); TextView privateKeyText = findViewById(R.id.account_private_key_text); + if (mIsImported) { + privateKeyText.setVisibility(View.GONE); + } privateKeyText.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/android/java/org/chromium/chrome/browser/crypto_wallet/activities/AccountPrivateKeyActivity.java b/android/java/org/chromium/chrome/browser/crypto_wallet/activities/AccountPrivateKeyActivity.java index cf714f1bc74..f2555e9c718 100644 --- a/android/java/org/chromium/chrome/browser/crypto_wallet/activities/AccountPrivateKeyActivity.java +++ b/android/java/org/chromium/chrome/browser/crypto_wallet/activities/AccountPrivateKeyActivity.java @@ -6,9 +6,13 @@ package org.chromium.chrome.browser.crypto_wallet.activities; import android.text.method.HideReturnsTransformationMethod; +import android.text.method.PasswordTransformationMethod; import android.view.MenuItem; +import android.view.View; import android.widget.Button; import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.TextView; import androidx.appcompat.widget.Toolbar; @@ -28,6 +32,7 @@ public class AccountPrivateKeyActivity extends AsyncInitializationActivity implements ConnectionErrorHandler { private KeyringController mKeyringController; private String mAddress; + private boolean mIsPrivateKeyShown; @Override protected void triggerLayoutInflation() { setContentView(R.layout.activity_account_private_key); @@ -47,6 +52,38 @@ public class AccountPrivateKeyActivity -> Utils.saveTextToClipboard( AccountPrivateKeyActivity.this, privateKeyText.getText().toString())); + LinearLayout bannerLayout = findViewById(R.id.wallet_backup_banner); + bannerLayout.setVisibility(View.VISIBLE); + + TextView warningText = findViewById(R.id.warning_text); + warningText.setText(getResources().getString(R.string.private_key_warning_text)); + + ImageView bannerBtn = findViewById(R.id.backup_banner_close); + bannerBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + bannerLayout.setVisibility(View.GONE); + } + }); + + Button showPrivateKeyBtn = findViewById(R.id.btn_show_private_key); + showPrivateKeyBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (!mIsPrivateKeyShown) { + privateKeyText.setTransformationMethod( + HideReturnsTransformationMethod.getInstance()); + showPrivateKeyBtn.setText(getResources().getString(R.string.hide_private_key)); + } else { + privateKeyText.setTransformationMethod( + PasswordTransformationMethod.getInstance()); + showPrivateKeyBtn.setText(getResources().getString(R.string.show_private_key)); + } + mIsPrivateKeyShown = !mIsPrivateKeyShown; + } + }); + + InitKeyringController(); if (mKeyringController != null) mKeyringController.getPrivateKeyForDefaultKeyringAccount( mAddress, (result, privateKey) -> { @@ -55,11 +92,6 @@ public class AccountPrivateKeyActivity } }); - Button showPrivateKeyBtn = findViewById(R.id.btn_show_private_key); - showPrivateKeyBtn.setOnClickListener(v - -> privateKeyText.setTransformationMethod( - HideReturnsTransformationMethod.getInstance())); - onInitialLayoutInflationComplete(); } diff --git a/android/java/res/layout/activity_account_private_key.xml b/android/java/res/layout/activity_account_private_key.xml index a6bbb040404..2f83ef6eaed 100644 --- a/android/java/res/layout/activity_account_private_key.xml +++ b/android/java/res/layout/activity_account_private_key.xml @@ -20,6 +20,8 @@ android:layout_marginBottom="24dp" android:gravity="center_vertical" /> + + diff --git a/android/java/res/layout/wallet_backup_banner.xml b/android/java/res/layout/wallet_backup_banner.xml index 5889e987ec3..953ee6c4544 100644 --- a/android/java/res/layout/wallet_backup_banner.xml +++ b/android/java/res/layout/wallet_backup_banner.xml @@ -25,6 +25,7 @@ tools:ignore="UseCompoundDrawables"> Show Private Key + + Hide Private Key + + + Warning: Never disclose this key. Anyone with private key can steal any assets held in your account. +