-
Notifications
You must be signed in to change notification settings - Fork 88
Fix: Mobile MVP UI and feature fixes #19095
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Jenkins BuildsClick to see older builds (234)
|
4131141 to
c8a4b02
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
e65b0df to
0b106ca
Compare
0b106ca to
12e8522
Compare
| <message> | ||
| <source>Keycard blocked</source> | ||
| <comment>KeycardEnterPinPage</comment> | ||
| <translation>Keycard blocked</translation> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The string is clearly there:
status-desktop/ui/app/AppLayouts/Onboarding/pages/KeycardEnterPinPage.qml
Lines 126 to 129 in 59bb23e
| title: `<font color='${Theme.palette.dangerColor1}'>` | |
| + `${qsTr("Keycard blocked")}</font>` | |
| } |
Yet I'm getting ui-tests failure here; looks like a bug in Qt's lupdate which got fixed in Qt 6.10.0 which I'm running locally 😢
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, it's inside the backticks... maybe that's the bug which got fixed; older versions seem to ignore such strings
fadc043 to
f279e91
Compare
35afc92 to
30bba77
Compare
- raise to 14.0 like everywhere else
- ignore TS files inside build dirs; they are most likely not ours
- adjust the permissions/features according to the docu - do not use a `TMPDIR` when saving/resizing a file from NIM, it doesn't work on mobile; use one from QStandardPaths which has an Android specific implementation (https://github.com/qt/qtbase/blob/dev/src/corelib/io/qstandardpaths_android.cpp) Fixes #18076 Fixes #19053
- instead of hardcoding 4 CPU cores
- as we do in the desktop Makefile; this entails a lot of other dependant options, like logging and enabling dev features in the app
- fix a regression where the Node section got removed from the primary (left) navbar Fixes #19050
96110ea to
733cd8a
Compare
| steps { | ||
| script { | ||
| checkTranslations() | ||
| catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I made the TS file check optional; there's a Qt bug which doesn't catch qsTr() calls inside JS backticks
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Like here:
status-desktop/ui/app/AppLayouts/Onboarding/pages/KeycardEnterPinPage.qml
Lines 126 to 129 in 59bb23e
| title: `<font color='${Theme.palette.dangerColor1}'>` | |
| + `${qsTr("Keycard blocked")}</font>` | |
| } |
| quit(QuitSuccess) # quits the app TODO: change this to logout instead when supported | ||
|
|
||
| method getLogDir*(self: Module): string = | ||
| return url_fromLocalFile(constants.LOGDIR) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fromLocalFile would give wrong result on Android
| slot: "onAsyncSendImagesDone", | ||
| chatId: chatId, | ||
| imagePathsJson: imagePathsJson, | ||
| tempDir: TMPDIR.replace("\\", "\\\\"), # Escape backslashes so that the JSON sent is valid (Windows issue) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TMPDIR doesn't work on Android
| signal pinRequested | ||
|
|
||
| layer.enabled: true | ||
| layer.effect: Glow { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Glow effect removed @alexjba
| anchors.verticalCenter: parent.verticalCenter | ||
| anchors.left: parent.left | ||
| anchors.leftMargin: accountOrderItem.statusListItemTitle.width + Theme.bigPadding | ||
| anchors.leftMargin: accountOrderItem.statusListItemTitle.width + parent.leftPadding + Theme.bigPadding |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Beta tag padding fixed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks a bit hacky to be honest. On narrow screen it looks ok but on wider one the space seems to be too wide. Something with this calculation must be wrong if bigpadding is not enough and stuff was overlapping. It should not overlap even with 0 margin.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I think I know why, the StatusList item has this hardcoded:
property real leftPadding: 16
property real rightPadding: 16which doesn't scale properly on hires displays; the extra Theme.bigPadding will probably not be needed then
| } | ||
|
|
||
| StatusSettingsLineButton { | ||
| visible: root.isBrowserEnabled // feature flag |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Browser disabled on mobile
| value: Constants.appSection.browser | ||
| enabled: d.isBrowserEnabled | ||
| } | ||
| ValueFilter { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Node section restored
| COLLECTED_SOURCE_FILES | ||
| ${CMAKE_SOURCE_DIR}/../*.qml | ||
| ) | ||
| list(FILTER COLLECTED_SOURCE_FILES EXCLUDE REGEX "${CMAKE_SOURCE_DIR}/../StatusQ/build/.*" ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ignore qsTr() from build dirs
| icon.name: "send" | ||
| type: StatusQ.StatusFlatRoundButton.Type.Tertiary | ||
| visible: messageInputField.length > 0 || control.fileUrlsAndSources.length > 0 | ||
| visible: messageInputField.length > 0 || control.fileUrlsAndSources.length > 0 || !!control.paymentRequestModel |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Send button enabled for Pay requests; however the message doesn't get sent because it has no text; this looks like a bug in either NIM or status-go @jrainville
| onLoaded: { | ||
| popupMenuSlot.item.closeHandler = function () { | ||
| statusNavBarTabButton.highlighted = false | ||
| popupMenuSlot.active = false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would close the submenu if not using cascaded menus, e.g on Android; each menu/submenu is a toplevel one
|
|
||
| property string picturesShortcut: Utils.isIOS ? "assets-library://" : | ||
| StandardPaths.writableLocation(StandardPaths.PicturesLocation) | ||
| StandardPaths.standardLocations(StandardPaths.PicturesLocation)[0] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't need a writable dir for reading files (images)
| #ifdef Q_OS_ANDROID | ||
| #include <QJniObject> | ||
| #include <QtCore/qnativeinterface.h> | ||
| #endif |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicate include
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work that matters!
| anchors.verticalCenter: parent.verticalCenter | ||
| anchors.left: parent.left | ||
| anchors.leftMargin: accountOrderItem.statusListItemTitle.width + Theme.bigPadding | ||
| anchors.leftMargin: accountOrderItem.statusListItemTitle.width + parent.leftPadding + Theme.bigPadding |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks a bit hacky to be honest. On narrow screen it looks ok but on wider one the space seems to be too wide. Something with this calculation must be wrong if bigpadding is not enough and stuff was overlapping. It should not overlap even with 0 margin.
- fixup Android permissions and local file access and improve the error reporting - tooltip metrics - Browser settings subsection properly enabled/disabled - handle the Back gesture in Onboarding - update TS files
733cd8a to
2efdd51
Compare
What does the PR do
This PR polishes the Mobile MVP experience across onboarding, account creation, navbar context menus, wallet settings, and Android file access. It also includes small Storybook and i18n housekeeping updates.
Here is a revised description of the pull request, with references to the issues fixed by each commit:
productionvariant as default for mobile builds: Updated the mobile Makefile to set theproductionvariant by default, aligning it with the desktop variant. This change impacts logging and enables development features in the app (Commit).nprocin MAKEFLAGS for CI: Replaced hardcoded usage of 4 CPU cores withnprocto dynamically determine available cores (Commit).This PR introduces a series of fixes and improvements across different features, optimizing performance, usability, and developer experience. Each commit addresses specific issues or introduces enhancements as detailed above.
Affected areas
App
Architecture compliance
My PR is consistent with this document: QML Architecture Guidelines
Screencapture of the functionality
Profile image saved:

Sending an image in chat:

About (

productionlogo):Advanced section (fixed layout, disabled Browser/Debug parts):

Home screen (new hover/glow effect):

Token list (fixed popup header; icon/name/count/timestamp):

Node section restored:

Cascading submenu fixed:

Send button enabled for transactions:

Wallet beta tag alignment fixed:

Impact on end user
Stuff works
How to test
TBD
Risk
low