diff --git a/interface/resources/qml/hifi/commerce/wallet/WalletSetupLightbox.qml b/interface/resources/qml/hifi/commerce/wallet/WalletSetupLightbox.qml
index 2947c29f6c..2ac782e042 100644
--- a/interface/resources/qml/hifi/commerce/wallet/WalletSetupLightbox.qml
+++ b/interface/resources/qml/hifi/commerce/wallet/WalletSetupLightbox.qml
@@ -42,6 +42,7 @@ Rectangle {
onSecurityImageResult: {
if (imageID !== 0) { // "If security image is set up"
passphrasePageSecurityImage.source = securityImageSelection.getImagePathFromImageID(imageID);
+ keysReadyPageSecurityImage.source = securityImageSelection.getImagePathFromImageID(imageID);
if (root.lastPage === "login") {
securityImageContainer.visible = false;
choosePassphraseContainer.visible = true;
@@ -267,7 +268,7 @@ Rectangle {
}
// Text below security images
- RalewaySemiBold {
+ RalewayRegular {
text: "Your security picture shows you that the service asking for your passphrase is authorized. You can change your secure picture at any time.";
// Text size
size: 18;
@@ -485,7 +486,7 @@ Rectangle {
}
// Text below checkbox
- RalewaySemiBold {
+ RalewayRegular {
text: "Your passphrase is used to encrypt your private keys. Please write it down. If it is lost, you will not be able to recover it.";
// Text size
size: 16;
@@ -591,6 +592,7 @@ Rectangle {
anchors.fill: parent;
Item {
+ id: keysReadyTitle;
// Size
width: parent.width;
height: 50;
@@ -600,7 +602,7 @@ Rectangle {
// Title Bar text
RalewaySemiBold {
- text: "WALLET SETUP - STEP 2 OF 3";
+ text: "WALLET SETUP - STEP 3 OF 3";
// Text size
size: hifi.fontSizes.overlayTitle;
// Anchors
@@ -616,6 +618,90 @@ Rectangle {
verticalAlignment: Text.AlignVCenter;
}
}
+
+ // Text below title bar
+ RalewaySemiBold {
+ id: keysReadyTitleHelper;
+ text: "Your Private Keys are Ready";
+ // Text size
+ size: 24;
+ // Anchors
+ anchors.top: keysReadyTitle.bottom;
+ anchors.left: parent.left;
+ anchors.leftMargin: 16;
+ anchors.right: parent.right;
+ anchors.rightMargin: 16;
+ height: 50;
+ // Style
+ color: hifi.colors.darkGray;
+ // Alignment
+ horizontalAlignment: Text.AlignHLeft;
+ verticalAlignment: Text.AlignVCenter;
+ }
+
+ // Text below checkbox
+ RalewayRegular {
+ text: "Your money and purchases are secured with private keys that only you have access to. " +
+ "If they are lost, you will not be able to access your money or purchases.
" +
+ "To protect your privacy, High Fidelity has no access to your private keys and cannot " +
+ "recover them for any reason.
To safeguard your private keys, backup this file on a regular basis:";
+ // Text size
+ size: 16;
+ // Anchors
+ anchors.top: keysReadyTitleHelper.bottom;
+ anchors.topMargin: 16;
+ anchors.left: parent.left;
+ anchors.leftMargin: 16;
+ anchors.right: parent.right;
+ anchors.rightMargin: 16;
+ height: paintedHeight;
+ // Style
+ color: hifi.colors.darkGray;
+ wrapMode: Text.WordWrap;
+ // Alignment
+ horizontalAlignment: Text.AlignHLeft;
+ verticalAlignment: Text.AlignVCenter;
+ }
+
+ // Navigation Bar
+ Item {
+ // Size
+ width: parent.width;
+ height: 100;
+ // Anchors:
+ anchors.left: parent.left;
+ anchors.bottom: parent.bottom;
+ // Security Image
+ Image {
+ id: keysReadyPageSecurityImage;
+ // Anchors
+ anchors.top: parent.top;
+ anchors.topMargin: 3;
+ anchors.right: keysReadyPageNextButton.left;
+ height: keysReadyPageNextButton.height;
+ width: height;
+ anchors.verticalCenter: parent.verticalCenter;
+ fillMode: Image.PreserveAspectFit;
+ mipmap: true;
+ }
+ // "Next" button
+ HifiControlsUit.Button {
+ id: keysReadyPageNextButton;
+ color: hifi.buttons.black;
+ colorScheme: hifi.colorSchemes.dark;
+ anchors.top: parent.top;
+ anchors.topMargin: 3;
+ anchors.bottom: parent.bottom;
+ anchors.bottomMargin: 3;
+ anchors.right: parent.right;
+ anchors.rightMargin: 20;
+ width: 100;
+ text: "Finish";
+ onClicked: {
+ root.visible = false;
+ }
+ }
+ }
}
//
// PRIVATE KEYS READY END
diff --git a/interface/src/commerce/QmlCommerce.cpp b/interface/src/commerce/QmlCommerce.cpp
index 8cf7f0583c..751a38a1fd 100644
--- a/interface/src/commerce/QmlCommerce.cpp
+++ b/interface/src/commerce/QmlCommerce.cpp
@@ -64,6 +64,9 @@ void QmlCommerce::getSecurityImage() {
void QmlCommerce::getLoginStatus() {
emit loginStatusResult(DependencyManager::get()->isLoggedIn());
}
+void QmlCommerce::setPassphrase(const QString& passphrase) {
+ emit passphraseSetupStatusResult(true);
+}
void QmlCommerce::getPassphraseSetupStatus() {
emit passphraseSetupStatusResult(false);
}
diff --git a/interface/src/commerce/QmlCommerce.h b/interface/src/commerce/QmlCommerce.h
index cf6b620bdd..71ecd32d71 100644
--- a/interface/src/commerce/QmlCommerce.h
+++ b/interface/src/commerce/QmlCommerce.h
@@ -41,6 +41,7 @@ protected:
Q_INVOKABLE void chooseSecurityImage(uint imageID);
Q_INVOKABLE void getSecurityImage();
Q_INVOKABLE void getLoginStatus();
+ Q_INVOKABLE void setPassphrase(const QString& passphrase);
Q_INVOKABLE void getPassphraseSetupStatus();
};