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.
+