diff --git a/src/app/global/feature_flags.nim b/src/app/global/feature_flags.nim index cefaff64876..6fb2ddb9dc3 100644 --- a/src/app/global/feature_flags.nim +++ b/src/app/global/feature_flags.nim @@ -23,7 +23,7 @@ const DEFAULT_FLAG_SIMPLE_SEND_ENABLED = true const DEFAULT_FLAG_MARKET_ENABLED = true const DEFAULT_FLAG_HOMEPAGE_ENABLED = true const DEFAULT_FLAG_LOCAL_BACKUP_ENABLED = true -const DEFAULT_FLAG_PRIVACY_MODE_FEATURE_ENABLED = false +const DEFAULT_FLAG_PRIVACY_MODE_FEATURE_ENABLED = true # Compile time feature flags const DEFAULT_FLAG_DAPPS_ENABLED = true diff --git a/storybook/pages/BrowserPrivacyWallPage.qml b/storybook/pages/BrowserPrivacyWallPage.qml new file mode 100644 index 00000000000..7904d4561a1 --- /dev/null +++ b/storybook/pages/BrowserPrivacyWallPage.qml @@ -0,0 +1,33 @@ +import QtQuick +import QtQuick.Controls + +import AppLayouts.Browser + +import Storybook + +SplitView { + id: root + + Logs { id: logs } + + BrowserPrivacyWall { + SplitView.fillWidth: true + SplitView.fillHeight: true + + onOpenThirdpartyServicesInfoPopupRequested: logs.logEvent("Enable third party services requested") + onOpenDiscussPageRequested: logs.logEvent("Open discuss page requested") + } + + LogsAndControlsPanel { + id: logsAndControlsPanel + + SplitView.minimumHeight: 100 + SplitView.preferredHeight: 200 + + logsView.logText: logs.logText + } +} + +// category: Layouts +// status: good +// https://www.figma.com/design/idUoxN7OIW2Jpp3PMJ1Rl8/Settings----Desktop-Legacy?node-id=27024-24709&m=dev diff --git a/ui/StatusQ/CMakeLists.txt b/ui/StatusQ/CMakeLists.txt index 0d400ab58b7..d3f85830bc0 100644 --- a/ui/StatusQ/CMakeLists.txt +++ b/ui/StatusQ/CMakeLists.txt @@ -140,6 +140,18 @@ if (${STATUSQ_SHADOW_BUILD}) src/assets/png/png.qrc src/assets/twemoji/twemoji.qrc src/assets/twemoji/twemoji-svg.qrc) + + # Platform-specific PNG bundles + if(ANDROID OR IOS) + list(APPEND STATUSQ_QRC_FILES + src/assets/png/png-mobile.qrc + ) + else() + list(APPEND STATUSQ_QRC_FILES + src/assets/png/png-desktop.qrc + ) + endif() + if (${STATUSQ_STATIC_LIB}) # randlib would complain about the generated .o files. Generate cpp files instead. qt_add_resources(STATUSQ_QRC_COMPILED ${STATUSQ_QRC_FILES}) diff --git a/ui/StatusQ/src/assets/png/browser/placeholders/browser-dark-small.png b/ui/StatusQ/src/assets/png/browser/placeholders/browser-dark-small.png new file mode 100644 index 00000000000..7ac1d5060fb Binary files /dev/null and b/ui/StatusQ/src/assets/png/browser/placeholders/browser-dark-small.png differ diff --git a/ui/StatusQ/src/assets/png/browser/placeholders/browser-dark.png b/ui/StatusQ/src/assets/png/browser/placeholders/browser-dark.png new file mode 100644 index 00000000000..cff6ed76fed Binary files /dev/null and b/ui/StatusQ/src/assets/png/browser/placeholders/browser-dark.png differ diff --git a/ui/StatusQ/src/assets/png/browser/placeholders/browser-light-small.png b/ui/StatusQ/src/assets/png/browser/placeholders/browser-light-small.png new file mode 100644 index 00000000000..0744ea13b6d Binary files /dev/null and b/ui/StatusQ/src/assets/png/browser/placeholders/browser-light-small.png differ diff --git a/ui/StatusQ/src/assets/png/browser/placeholders/browser-light.png b/ui/StatusQ/src/assets/png/browser/placeholders/browser-light.png new file mode 100644 index 00000000000..ba425a21f1e Binary files /dev/null and b/ui/StatusQ/src/assets/png/browser/placeholders/browser-light.png differ diff --git a/ui/StatusQ/src/assets/png/market/swap-dark-small.png b/ui/StatusQ/src/assets/png/market/swap-dark-small.png new file mode 100644 index 00000000000..61bd764b6dd Binary files /dev/null and b/ui/StatusQ/src/assets/png/market/swap-dark-small.png differ diff --git a/ui/StatusQ/src/assets/png/market/swap-dark.png b/ui/StatusQ/src/assets/png/market/swap-dark.png new file mode 100644 index 00000000000..c1f2b151de8 Binary files /dev/null and b/ui/StatusQ/src/assets/png/market/swap-dark.png differ diff --git a/ui/StatusQ/src/assets/png/market/swap-light-small.png b/ui/StatusQ/src/assets/png/market/swap-light-small.png new file mode 100644 index 00000000000..deccb05bbdf Binary files /dev/null and b/ui/StatusQ/src/assets/png/market/swap-light-small.png differ diff --git a/ui/StatusQ/src/assets/png/market/swap.png b/ui/StatusQ/src/assets/png/market/swap-light.png similarity index 100% rename from ui/StatusQ/src/assets/png/market/swap.png rename to ui/StatusQ/src/assets/png/market/swap-light.png diff --git a/ui/StatusQ/src/assets/png/market/tradeCenter-dark-small.png b/ui/StatusQ/src/assets/png/market/tradeCenter-dark-small.png new file mode 100644 index 00000000000..916a147b5a2 Binary files /dev/null and b/ui/StatusQ/src/assets/png/market/tradeCenter-dark-small.png differ diff --git a/ui/StatusQ/src/assets/png/market/tradeCenter-dark.png b/ui/StatusQ/src/assets/png/market/tradeCenter-dark.png new file mode 100644 index 00000000000..0f8b8ff747a Binary files /dev/null and b/ui/StatusQ/src/assets/png/market/tradeCenter-dark.png differ diff --git a/ui/StatusQ/src/assets/png/market/tradeCenter-light-small.png b/ui/StatusQ/src/assets/png/market/tradeCenter-light-small.png new file mode 100644 index 00000000000..035b113bb8c Binary files /dev/null and b/ui/StatusQ/src/assets/png/market/tradeCenter-light-small.png differ diff --git a/ui/StatusQ/src/assets/png/market/tradeCenter.png b/ui/StatusQ/src/assets/png/market/tradeCenter-light.png similarity index 100% rename from ui/StatusQ/src/assets/png/market/tradeCenter.png rename to ui/StatusQ/src/assets/png/market/tradeCenter-light.png diff --git a/ui/StatusQ/src/assets/png/png-desktop.qrc b/ui/StatusQ/src/assets/png/png-desktop.qrc new file mode 100644 index 00000000000..71bd23216a2 --- /dev/null +++ b/ui/StatusQ/src/assets/png/png-desktop.qrc @@ -0,0 +1,18 @@ + + + market/tradeCenter-light.png + market/swap-light.png + market/tradeCenter-dark.png + market/swap-dark.png + wallet/placeholders/buyView-dark.png + wallet/placeholders/collectiblesView-dark.png + wallet/placeholders/swapView-dark.png + wallet/placeholders/mainView-dark.png + wallet/placeholders/swapView-light.png + wallet/placeholders/mainView-light.png + wallet/placeholders/collectiblesView-light.png + wallet/placeholders/buyView-light.png + browser/placeholders/browser-light.png + browser/placeholders/browser-dark.png + + diff --git a/ui/StatusQ/src/assets/png/png-mobile.qrc b/ui/StatusQ/src/assets/png/png-mobile.qrc new file mode 100644 index 00000000000..ad2b280bf0d --- /dev/null +++ b/ui/StatusQ/src/assets/png/png-mobile.qrc @@ -0,0 +1,18 @@ + + + market/tradeCenter-light-small.png + market/swap-light-small.png + market/tradeCenter-dark-small.png + market/swap-dark-small.png + wallet/placeholders/mainView-light-small.png + wallet/placeholders/collectiblesView-light-small.png + wallet/placeholders/buyView-light-small.png + wallet/placeholders/swapView-light-small.png + wallet/placeholders/mainView-dark-small.png + wallet/placeholders/collectiblesView-dark-small.png + wallet/placeholders/buyView-dark-small.png + wallet/placeholders/swapView-dark-small.png + browser/placeholders/browser-light-small.png + browser/placeholders/browser-dark-small.png + + diff --git a/ui/StatusQ/src/assets/png/png.qrc b/ui/StatusQ/src/assets/png/png.qrc index 00d4161f611..05e573a6803 100644 --- a/ui/StatusQ/src/assets/png/png.qrc +++ b/ui/StatusQ/src/assets/png/png.qrc @@ -924,11 +924,5 @@ status-logo-icon.png status-preparing.png unfurling-image.png - wallet/placeholders/buyView.png - wallet/placeholders/swapView.png - wallet/placeholders/collectiblesView.png - wallet/placeholders/mainView.png - market/tradeCenter.png - market/swap.png diff --git a/ui/StatusQ/src/assets/png/wallet/placeholders/buyView-dark-small.png b/ui/StatusQ/src/assets/png/wallet/placeholders/buyView-dark-small.png new file mode 100644 index 00000000000..fd706cec533 Binary files /dev/null and b/ui/StatusQ/src/assets/png/wallet/placeholders/buyView-dark-small.png differ diff --git a/ui/StatusQ/src/assets/png/wallet/placeholders/buyView-dark.png b/ui/StatusQ/src/assets/png/wallet/placeholders/buyView-dark.png new file mode 100644 index 00000000000..67bc04149a9 Binary files /dev/null and b/ui/StatusQ/src/assets/png/wallet/placeholders/buyView-dark.png differ diff --git a/ui/StatusQ/src/assets/png/wallet/placeholders/buyView-light-small.png b/ui/StatusQ/src/assets/png/wallet/placeholders/buyView-light-small.png new file mode 100644 index 00000000000..1468fd20fc3 Binary files /dev/null and b/ui/StatusQ/src/assets/png/wallet/placeholders/buyView-light-small.png differ diff --git a/ui/StatusQ/src/assets/png/wallet/placeholders/buyView.png b/ui/StatusQ/src/assets/png/wallet/placeholders/buyView-light.png similarity index 100% rename from ui/StatusQ/src/assets/png/wallet/placeholders/buyView.png rename to ui/StatusQ/src/assets/png/wallet/placeholders/buyView-light.png diff --git a/ui/StatusQ/src/assets/png/wallet/placeholders/collectiblesView-dark-small.png b/ui/StatusQ/src/assets/png/wallet/placeholders/collectiblesView-dark-small.png new file mode 100644 index 00000000000..1714fe5be62 Binary files /dev/null and b/ui/StatusQ/src/assets/png/wallet/placeholders/collectiblesView-dark-small.png differ diff --git a/ui/StatusQ/src/assets/png/wallet/placeholders/collectiblesView-dark.png b/ui/StatusQ/src/assets/png/wallet/placeholders/collectiblesView-dark.png new file mode 100644 index 00000000000..b8ade434c7f Binary files /dev/null and b/ui/StatusQ/src/assets/png/wallet/placeholders/collectiblesView-dark.png differ diff --git a/ui/StatusQ/src/assets/png/wallet/placeholders/collectiblesView-light-small.png b/ui/StatusQ/src/assets/png/wallet/placeholders/collectiblesView-light-small.png new file mode 100644 index 00000000000..433f5e790ae Binary files /dev/null and b/ui/StatusQ/src/assets/png/wallet/placeholders/collectiblesView-light-small.png differ diff --git a/ui/StatusQ/src/assets/png/wallet/placeholders/collectiblesView.png b/ui/StatusQ/src/assets/png/wallet/placeholders/collectiblesView-light.png similarity index 100% rename from ui/StatusQ/src/assets/png/wallet/placeholders/collectiblesView.png rename to ui/StatusQ/src/assets/png/wallet/placeholders/collectiblesView-light.png diff --git a/ui/StatusQ/src/assets/png/wallet/placeholders/mainView-dark-small.png b/ui/StatusQ/src/assets/png/wallet/placeholders/mainView-dark-small.png new file mode 100644 index 00000000000..93eb6a5253f Binary files /dev/null and b/ui/StatusQ/src/assets/png/wallet/placeholders/mainView-dark-small.png differ diff --git a/ui/StatusQ/src/assets/png/wallet/placeholders/mainView-dark.png b/ui/StatusQ/src/assets/png/wallet/placeholders/mainView-dark.png new file mode 100644 index 00000000000..65b04199fa9 Binary files /dev/null and b/ui/StatusQ/src/assets/png/wallet/placeholders/mainView-dark.png differ diff --git a/ui/StatusQ/src/assets/png/wallet/placeholders/mainView-light-small.png b/ui/StatusQ/src/assets/png/wallet/placeholders/mainView-light-small.png new file mode 100644 index 00000000000..ee16be093e9 Binary files /dev/null and b/ui/StatusQ/src/assets/png/wallet/placeholders/mainView-light-small.png differ diff --git a/ui/StatusQ/src/assets/png/wallet/placeholders/mainView.png b/ui/StatusQ/src/assets/png/wallet/placeholders/mainView-light.png similarity index 100% rename from ui/StatusQ/src/assets/png/wallet/placeholders/mainView.png rename to ui/StatusQ/src/assets/png/wallet/placeholders/mainView-light.png diff --git a/ui/StatusQ/src/assets/png/wallet/placeholders/swapView-dark-small.png b/ui/StatusQ/src/assets/png/wallet/placeholders/swapView-dark-small.png new file mode 100644 index 00000000000..10c72829c16 Binary files /dev/null and b/ui/StatusQ/src/assets/png/wallet/placeholders/swapView-dark-small.png differ diff --git a/ui/StatusQ/src/assets/png/wallet/placeholders/swapView-dark.png b/ui/StatusQ/src/assets/png/wallet/placeholders/swapView-dark.png new file mode 100644 index 00000000000..18f62db615a Binary files /dev/null and b/ui/StatusQ/src/assets/png/wallet/placeholders/swapView-dark.png differ diff --git a/ui/StatusQ/src/assets/png/wallet/placeholders/swapView-light-small.png b/ui/StatusQ/src/assets/png/wallet/placeholders/swapView-light-small.png new file mode 100644 index 00000000000..dc686844923 Binary files /dev/null and b/ui/StatusQ/src/assets/png/wallet/placeholders/swapView-light-small.png differ diff --git a/ui/StatusQ/src/assets/png/wallet/placeholders/swapView.png b/ui/StatusQ/src/assets/png/wallet/placeholders/swapView-light.png similarity index 100% rename from ui/StatusQ/src/assets/png/wallet/placeholders/swapView.png rename to ui/StatusQ/src/assets/png/wallet/placeholders/swapView-light.png diff --git a/ui/StatusQ/src/typesregistration.cpp b/ui/StatusQ/src/typesregistration.cpp index 1ffe5ace1e2..0b1686aaf29 100644 --- a/ui/StatusQ/src/typesregistration.cpp +++ b/ui/StatusQ/src/typesregistration.cpp @@ -101,6 +101,11 @@ void registerStatusQTypes() { Q_INIT_RESOURCE(fonts); Q_INIT_RESOURCE(img); Q_INIT_RESOURCE(png); +#if defined(Q_OS_ANDROID) || defined(Q_OS_IOS) + Q_INIT_RESOURCE(png_mobile); +#else + Q_INIT_RESOURCE(png_desktop); +#endif Q_INIT_RESOURCE(twemoji); Q_INIT_RESOURCE(twemoji_svg); #endif diff --git a/ui/app/AppLayouts/Browser/BrowserPrivacyWall.qml b/ui/app/AppLayouts/Browser/BrowserPrivacyWall.qml new file mode 100644 index 00000000000..a8fae2f95a6 --- /dev/null +++ b/ui/app/AppLayouts/Browser/BrowserPrivacyWall.qml @@ -0,0 +1,31 @@ +import QtQuick +import QtQuick.Layouts + +import StatusQ.Layout + +import shared.panels +import utils + +StatusSectionLayout { + id: root + + signal openDiscussPageRequested() + signal openThirdpartyServicesInfoPopupRequested() + + centerPanel: PrivacyWallCarousel { + Layout.fillWidth: true + Layout.fillHeight: true + + infoText: qsTr("Enable third-party services for browser features to work.") + model: ListModel { + ListElement { + primary: qsTr("Dapp browser") + secondary: qsTr("Browse decentralized apps") + image: "browser/placeholders/browser" + } + } + + onEnableThirdpartyServicesRequested: root.openThirdpartyServicesInfoPopupRequested() + onOpenDiscussPageRequested: root.openDiscussPageRequested() + } +} diff --git a/ui/app/AppLayouts/Browser/qmldir b/ui/app/AppLayouts/Browser/qmldir index b0b245e68f2..4ed99e81f74 100644 --- a/ui/app/AppLayouts/Browser/qmldir +++ b/ui/app/AppLayouts/Browser/qmldir @@ -1 +1,2 @@ BrowserLayout 1.0 BrowserLayout.qml +BrowserPrivacyWall 1.0 BrowserPrivacyWall.qml diff --git a/ui/app/AppLayouts/Onboarding/OnboardingFlow.qml b/ui/app/AppLayouts/Onboarding/OnboardingFlow.qml index c5ad795fd5a..eb93489fae8 100644 --- a/ui/app/AppLayouts/Onboarding/OnboardingFlow.qml +++ b/ui/app/AppLayouts/Onboarding/OnboardingFlow.qml @@ -278,6 +278,7 @@ OnboardingStackView { NewAccountLoginPage { networkChecksEnabled: root.networkChecksEnabled isKeycardEnabled: root.isKeycardEnabled + thirdpartyServicesEnabled: root.thirdpartyServicesEnabled onLoginWithSyncingRequested: root.push(logInBySyncingFlow) onLoginWithKeycardRequested: root.push(loginWithKeycardFlow) diff --git a/ui/app/AppLayouts/Onboarding/pages/NewAccountLoginPage.qml b/ui/app/AppLayouts/Onboarding/pages/NewAccountLoginPage.qml index 88a34998023..f318b5777ae 100644 --- a/ui/app/AppLayouts/Onboarding/pages/NewAccountLoginPage.qml +++ b/ui/app/AppLayouts/Onboarding/pages/NewAccountLoginPage.qml @@ -19,6 +19,7 @@ OnboardingPage { id: root required property bool networkChecksEnabled + required property bool thirdpartyServicesEnabled property bool isKeycardEnabled: true @@ -126,7 +127,7 @@ OnboardingPage { NetworkChecker { id: netChecker - active: root.networkChecksEnabled + active: root.networkChecksEnabled && root.thirdpartyServicesEnabled } Component { diff --git a/ui/app/mainui/AppMain.qml b/ui/app/mainui/AppMain.qml index 666a388fea2..a7c52d0f8cb 100644 --- a/ui/app/mainui/AppMain.qml +++ b/ui/app/mainui/AppMain.qml @@ -2046,24 +2046,44 @@ Item { restoreMode: Binding.RestoreNone } - sourceComponent: BrowserLayout { - id: browserLayout - userUID: appMain.profileStore.pubKey - thirdpartyServicesEnabled: appMain.rootStore.thirdpartyServicesEnabled - navBar: appMain.navBar - bookmarksStore: BrowserStores.BookmarksStore {} - downloadsStore: BrowserStores.DownloadsStore {} - browserRootStore: BrowserStores.BrowserRootStore {} - browserWalletStore: BrowserStores.BrowserWalletStore {} - web3ProviderStore: BrowserStores.Web3ProviderStore { - dappBrowserAccountAddress: browserLayout.browserWalletStore.dappBrowserAccount.address + sourceComponent: appMain.rootStore.thirdpartyServicesEnabled ? browserLayout: browserPrivacyWall + + Component { + id: browserPrivacyWall + + BrowserPrivacyWall { + navBar: appMain.navBar + + onOpenThirdpartyServicesInfoPopupRequested: popupRequestsHandler.thirdpartyServicesPopupHandler.openPopup() + onOpenDiscussPageRequested: Global.openLinkWithConfirmation( + Constants.statusDiscussPageUrl, + SQUtils.StringUtils.extractDomainFromLink(Constants.statusDiscussPageUrl)) } + } - transactionStore: appMain.transactionStore - assetsStore: appMain.walletAssetsStore - currencyStore: appMain.currencyStore - tokensStore: appMain.tokensStore - onSendToRecipientRequested: (address) => popupRequestsHandler.sendModalHandler.sendToRecipient(address) + Component { + id: browserLayout + + BrowserLayout { + id: browserLayoutItem + + userUID: appMain.profileStore.pubKey + thirdpartyServicesEnabled: appMain.rootStore.thirdpartyServicesEnabled + navBar: appMain.navBar + bookmarksStore: BrowserStores.BookmarksStore {} + downloadsStore: BrowserStores.DownloadsStore {} + browserRootStore: BrowserStores.BrowserRootStore {} + browserWalletStore: BrowserStores.BrowserWalletStore {} + web3ProviderStore: BrowserStores.Web3ProviderStore { + dappBrowserAccountAddress: browserLayoutItem.browserWalletStore.dappBrowserAccount.address + } + + transactionStore: appMain.transactionStore + assetsStore: appMain.walletAssetsStore + currencyStore: appMain.currencyStore + tokensStore: appMain.tokensStore + onSendToRecipientRequested: (address) => popupRequestsHandler.sendModalHandler.sendToRecipient(address) + } } } diff --git a/ui/i18n/qml_base_en.ts b/ui/i18n/qml_base_en.ts index 203383c4dc2..156b4a36b62 100644 --- a/ui/i18n/qml_base_en.ts +++ b/ui/i18n/qml_base_en.ts @@ -2534,6 +2534,21 @@ Do you wish to override the security check and continue? + + BrowserPrivacyWall + + Enable third-party services for browser features to work. + + + + Dapp browser + + + + Browse decentralized apps + + + BrowserSettingsMenu diff --git a/ui/i18n/qml_base_lokalise_en.ts b/ui/i18n/qml_base_lokalise_en.ts index e534215eb08..fb909260067 100644 --- a/ui/i18n/qml_base_lokalise_en.ts +++ b/ui/i18n/qml_base_lokalise_en.ts @@ -3102,6 +3102,24 @@ If you wish so, you may continue with an unverified certificate. Accepting an unverified certificate means you may not be connected with the host you tried to connect to. Do you wish to override the security check and continue? + + BrowserPrivacyWall + + Enable third-party services for browser features to work. + BrowserPrivacyWall + Enable third-party services for browser features to work. + + + Dapp browser + BrowserPrivacyWall + Dapp browser + + + Browse decentralized apps + BrowserPrivacyWall + Browse decentralized apps + + BrowserSettingsMenu diff --git a/ui/i18n/qml_cs.ts b/ui/i18n/qml_cs.ts index 31d27e5f686..19ee98246db 100644 --- a/ui/i18n/qml_cs.ts +++ b/ui/i18n/qml_cs.ts @@ -2541,6 +2541,21 @@ Do you wish to override the security check and continue? + + BrowserPrivacyWall + + Enable third-party services for browser features to work. + + + + Dapp browser + + + + Browse decentralized apps + + + BrowserSettingsMenu diff --git a/ui/i18n/qml_ko.ts b/ui/i18n/qml_ko.ts index fcfc0d0306c..6ebaf49183e 100644 --- a/ui/i18n/qml_ko.ts +++ b/ui/i18n/qml_ko.ts @@ -2527,6 +2527,21 @@ Do you wish to override the security check and continue? 원하신다면, 검증되지 않은 인증서로 계속할 수 있습니다. 검증되지 않은 인증서를 수락하면, 시도한 호스트와 실제로 연결되지 않을 수 있습니다.\n보안 검사를 무시하고 계속하시겠습니까? + + BrowserPrivacyWall + + Enable third-party services for browser features to work. + + + + Dapp browser + + + + Browse decentralized apps + + + BrowserSettingsMenu diff --git a/ui/imports/shared/panels/PrivacyWallCarousel.qml b/ui/imports/shared/panels/PrivacyWallCarousel.qml index 4c070a888f6..bef2834f426 100644 --- a/ui/imports/shared/panels/PrivacyWallCarousel.qml +++ b/ui/imports/shared/panels/PrivacyWallCarousel.qml @@ -20,6 +20,22 @@ Control { signal openDiscussPageRequested() signal enableThirdpartyServicesRequested() + QtObject { + id: d + readonly property var window: root.contentItem.Window.window + readonly property int windowWidth: window ? window.width: Screen.width + readonly property int windowHeight: window ? window.height: Screen.height + readonly property bool isSmallPortraitScreen: windowHeight > windowWidth + // The max width of a phone in portrait mode + && windowWidth <= Theme.portraitBreakpoint.width + function getImagePath(currentIndex) { + const imageName = root.model.get(currentIndex).image + const platformPostfix = isSmallPortraitScreen ? "-small": "" + const imagePath = "%1-%2%3".arg(imageName).arg(Theme.palette.name).arg(platformPostfix) + return Theme.png(imagePath) + } + } + verticalPadding: Theme.xlPadding horizontalPadding: Theme.xlPadding * 2 @@ -28,30 +44,49 @@ Control { Item { Layout.fillHeight: true } - StatusBaseText { + ColumnLayout { + readonly property int maxChildrenHeight: (primaryText.maximumLineCount * primaryText.lineHeight) + + (secondaryText.maximumLineCount * secondaryText.lineHeight) + Layout.fillWidth: true + Layout.preferredHeight: maxChildrenHeight + Layout.maximumHeight: maxChildrenHeight + spacing: 0 - horizontalAlignment: Text.AlignHCenter - font.weight: Font.Bold - font.pixelSize: 22 - lineHeightMode: Text.FixedHeight - lineHeight: 30 - wrapMode: Text.WordWrap + Item { Layout.fillHeight: true } - text: root.model.get(pageIndicator.currentIndex).primary - } + StatusBaseText { + id: primaryText - StatusBaseText { - Layout.topMargin: -parent.spacing - Layout.fillWidth: true + Layout.fillWidth: true + Layout.alignment: Qt.AlignBottom - horizontalAlignment: Text.AlignHCenter - font.pixelSize: Theme.additionalTextSize - lineHeightMode: Text.FixedHeight - lineHeight: 18 - wrapMode: Text.WordWrap + horizontalAlignment: Text.AlignHCenter + font.weight: Font.Bold + font.pixelSize: 22 + wrapMode: Text.WordWrap + lineHeightMode: Text.FixedHeight + lineHeight: 30 + maximumLineCount: 2 + + text: root.model.get(pageIndicator.currentIndex).primary + } - text: root.model.get(pageIndicator.currentIndex).secondary + StatusBaseText { + id: secondaryText + + Layout.fillWidth: true + Layout.alignment: Qt.AlignBottom + + horizontalAlignment: Text.AlignHCenter + font.pixelSize: Theme.additionalTextSize + lineHeightMode: Text.FixedHeight + lineHeight: 18 + wrapMode: Text.WordWrap + maximumLineCount: 2 + + text: root.model.get(pageIndicator.currentIndex).secondary + } } Image { @@ -74,7 +109,7 @@ Control { id: fadeSwap OpacityAnimator { target: placeholderImage; from: 1; to: 0; duration: 500;} PropertyAction { target: placeholderImage; property: "source"; - value: Theme.png(root.model.get(pageIndicator.currentIndex).image) } + value: d.getImagePath(pageIndicator.currentIndex) } OpacityAnimator { target: placeholderImage; from: 0; to: 1; duration: 500; } } @@ -89,7 +124,7 @@ Control { } Component.onCompleted: { - placeholderImage.source = Theme.png(root.model.get(pageIndicator.currentIndex).image) + placeholderImage.source = d.getImagePath(pageIndicator.currentIndex) initialized = true } } @@ -101,6 +136,7 @@ Control { Layout.maximumWidth: parent.width count: root.model.count + visible: count > 1 } StatusBaseText { diff --git a/ui/nim-status-client.pro b/ui/nim-status-client.pro index fc2d9956115..59c74911b4e 100644 --- a/ui/nim-status-client.pro +++ b/ui/nim-status-client.pro @@ -42,6 +42,8 @@ RESOURCES += resources.qrc \ StatusQ/src/assets/fonts/fonts.qrc \ StatusQ/src/assets/img/img.qrc \ StatusQ/src/assets/png/png.qrc \ + StatusQ/src/assets/png/png-desktop.qrc \ + StatusQ/src/assets/png/png-mobile.qrc \ StatusQ/src/assets/twemoji/twemoji.qrc \ StatusQ/src/assets/twemoji/twemoji-big.qrc \ StatusQ/src/assets/twemoji/twemoji-svg.qrc \ diff --git a/vendor/status-go b/vendor/status-go index c3bd89f1c8e..30bbd40f98d 160000 --- a/vendor/status-go +++ b/vendor/status-go @@ -1 +1 @@ -Subproject commit c3bd89f1c8e7d2c2af8c757a2e7623e50737c9cf +Subproject commit 30bbd40f98d65c5896e4d302b8714cd7fe0d0a6a