Commit Graph
51 Commits
Author SHA1 Message Date
Alex Jbanca 7632172512 build: move StatusQ QML and assets from libStatusQ into the mobile app
New STATUSQ_BUNDLE_QML option (default ON, desktop/storybook unchanged);
mobile passes OFF and bundles statusq.qrc + asset qrcs via Status.pro so
the Qt Quick Compiler processes StatusQ's QML (57% of its bindings
AOT-compile, tree 46% -> 48%). Resource paths are unchanged.

First-launch cold start on device: 5.65s -> 4.83s; runtime QML
compilation is now fully eliminated (warm == cold).
2026-08-13 16:41:46 +03:00
Alex Jbanca f7a4519ff8 build: wire QML ahead-of-time compilation into the mobile build
- enable qtquickcompiler and split browser web scripts into their own
  qrc excluded from compilation (browser-engine JS, not QML-engine)
- pass the runtime import paths to qmlcachegen; qtquickcompiler.prf only
  passes --resource, leaving all in-repo modules unresolvable
  (11% -> 32% of bindings AOT-compiled)
- shim the Universal style in as QtQuick.Controls for the compiler;
  qmlcachegen cannot follow the selector module's optional imports
  (32% -> 46%)
- emit per-binding .aotstats next to each generated .cpp for coverage
  tracking
2026-08-13 16:41:46 +03:00
Andrey Bocharnikov 90d7bac594 fix: unify Qt 6.11 a11y crash filters in StatusQ
Move the iOS ObjectDestroyed VoiceOver workaround into StatusQ and add a
macOS WebEngine datepicker table-cell guard. Auto-install via a libStatusQ
constructor so no explicit call sites are needed (#21450, #21491).
2026-07-14 17:40:51 +04:00
Alex Jbanca 7a505fef07 fix: IOS crash with accessibility
Install an accessibilityUpdateHandler. It will avoid updating the accessibility cache when the object is destroyed
2026-07-14 17:40:51 +04:00
Alex Jbanca d3b8917a04 chore: Drop DOtherSide
+ Move monitoring to statusq
2026-07-07 10:44:53 +03:00
Alex Jbanca 9f06b8d243 fix: Align min ios version with Qt6.11 2026-06-16 14:22:16 -04:00
b416cdf22d chore: merge branch 'release/2.38.x' into master (#20950)
* Release 2.38.0

* fix(browser): hide sidebar when tapping outside (#20624)

* fix: payment modal padding (#20702)

fixes #20690

* fix(Browser): open URLs in a new tab from Downloads view

Fixes #20685

* fix(RenameAccountModal): responsive layout

- fix the overall layout, respecting the modal width
- fix the pre-selected color (color vs color-string mismatch)
- add the modal to Storybook

Fixes #19325

* feat(StatusTextField): provide a standard edit context menu
- allows to be styled propely using our Theme
- disabled on mobile (iOS/Android provide their own)

Fixes #20632
Iterates #20544

* fix(Portal): fix the community promo icon color

Fixes #20689

* fix: cannot login via keycard

Closes #20633

* chore: remove Polygon zkEVM chain

- Deleted constants and UI elements related to Polygon zkEVM from wallet_constants.nim, Constants.qml, and Utils.qml.
- Removed SVG icons for Polygon zkEVM from the assets directory.
- Updated translation files to eliminate references to Polygon zkEVM Explorer in multiple languages.

* chore: display "Unknown token" for tx in History tab if token details are missing

For the tokens that are not in any of the list that the app operates with "Unknown token"
should be used for the name, and raw value for crypto value instead of the token key.

* fix: amount colors of the token breakdown pills make the amounts hard to read

Closes #20701

* fix(Settings): fix overflow in Appearance view

- add the view to Storybook

Fixes #20645

* fix(Desktop) Increasing app height triggers portrait mode

- lower the `portraitBreakpoint` to 640x480, and make the
portrait/landscape criteria switch depend on `width` only
- let the PrimaryNavSidebar follow the same logic
- update TS files

Fixes #20318

* chore(@e2e): text input

* chore(@qml): object name for send button in chat

* chore(@e2e): temp exclude password change from PRs

* fix: don't try to (re)store window geometry/visiblity on mobile

* fix(AppMain): reapply font size and padding when the orientation changes

Fixes #20635

* fix(StatusSectionLayout): explicitly state the breakpoint

- when switching to portrait mode

* fix(main): restore visibility on mobile

- similar to setting it to `visible`

* fix(browser): android connector fixes (#20623)

* fix(browser): stale request when closing connection popup

* fix(browser): require webkit 1.12.1

* to enable addDocumentStartJavaScript

fixes #20602

* fix(Syncing): Ensure mobile network sync is enabled by default

Fixes `syncingOnMobileNetwork` DB value defaulting to false, causing status-go to block store node sync on mobile devices and leaving sent messages stuck in "sending" state.

Fixes #20663

* fix(CommunitiesPortal): community cards are cut on the right

- simplify the layout, use full width for the ScrollView
- remove the internal scaling, causes more issues than it solves
- use smaller card delegates when in compact mode
- fix some other minor responsive issues
- regenerate TS files

Fixes #20728

* chore: remove status l2 sepolia (#20748)

* ios: upgrade to SDK 26

* fix: avoid sync getAllTokens on every token refresh (#20786)

fixes #20784

* fix(StatusChatInfoButton): don't open Profile dialog with pinned message

- in 1-1 chats, the TapHandler would leak the click event to the
underlying MouseArea, thus invoking both the PinnedMessagesPopup and the
ProfileDialog

Fixes #20658

* ConfirmationDialog: refactor to derive from StatusDialog

* StatusDialog: delayed bindings to ensure proper height in bottom sheet mode

* Settings: prevent navigating to settings on sign out request in portrait mode

* AdvancdedView: prevent options switching before confirmation

* fix(StatusBaseInput): no placeholder with preeditText

- also hide the placeholderText when there are suggestions from the
native virtual keyboard on mobile

Fixes #20774

* fix(browser): android snapshot colors (#20791)

* fix(connector): parallel dapp requests race (#20703)

* fix(browser): fix crash

fixes #20591

* chore: bump status-go

* chore: hide data verified by Nimbus (#20811)

fixes #20788

* feat(connector): ephemeral dApp records (#20808)

* feat(connector): ephemeral dapp records

refs status-im/status-app#20676

* fix: copilot comments

* chore: bump status-go

* ChatColumnView: workaround for QTBUG-146653

It was causing that selecting mention from suggestions list was not possible on mobile.

Closes: #20798

* StatusChatInputTextArea: take preedit text into account when filtering mentions

It's necessary to handle suggestions correctly (filtering based on the user input).

Closes: #20743

* StatusChatInputTextArea: take preedit text into account when filtering emojis

* fix: swapped ui in history (#20818)

Swapped word is now staying in one row

* fix(iOS/FileDialog): Use native pickers for image selection

Route iOS file selection through native platform pickers to avoid Qt file dialog sizing issues on mobile.

- Use `UIDocumentPickerViewController` for document-based flows such as backups and JSON imports.
- Add a photo-library mode to `StatusFileDialog` for image selection flows.
- Use the native iOS photo picker for profile picture, community logo/banner, and image selector uploads.
- Return selected files/photos through the existing `StatusFileDialog` selected file API.
- Added support for multi file selection.

Closes #20704

* chore: a huge delay between balance/history update (#20812)

Closes #20751

* fix(wc): reconnect broken pipe (#20809)

* recreate wc client after Resume()

fixes #20767

* fix(Search): focus the user/channel/chat search fields

- StatusTextField: theme/style according to Status design
- SearchBox: derive from StatusTextField instead of the clunky
StatusInput; we only need one-line input here anyway
- fix usages of the SearchBox, notably fixup the need to use a native
validator if needed; greatly simplifies the code to use this component
- regenerate TS files

Fixes #20754

* chore(@e2e): fix locators for search boxes

* chore(@e2e): fix for seed phrase

* fix(ThirdpartyServicesPopup): prevent eliding the instructions

- use a simple RowLayout with StatusIcon+StatusBaseText, with wrap mode
turned on
- don't hardcode the InformationTag pill height
- remove the redundant Close button

Fixes #20706
Fixes #19981

* chore: don't show unknown token for nft name in history view

Fixes: #20817

* fix(Onboarding): Make sync pairing page scrollable

Make the sync pairing page scrollable so the instructions button stays reachable when the QR scanner content overflows.

Fixes #20638

* fix(StatusSectionLayout): Fix SwipeView panel positioning

Ensure the portrait `StatusSectionLayout` visually follows `SwipeView.currentIndex` changes on Android by repositioning the internal view after programmatic panel navigation. This prevents the layout from keeping the previous `contentX` while the logical index has already changed.

Fix #20771

* Android: workaround for triggering full-screen mode after screenshot

On Android 15, taking a screenshot and invoking sharing dialog was triggering full-screen mode, not restored when sharing is finished.

Closes: #20612

* fix: GifPopup and StickersPopup bottom-sheet layout improved

Closes: #20571

* StatusStickersPopup: layout improved

* emoji/gif/stickers popups sizing ad-hoc patches

* Perf/cherry pick v1 (#20802)

* perf: Async start messenger

The startMessenger backend call is a lengthy process, blocking the main thread for a few seconds. Moving it to async tasks gives the main thread the chance advance on the login work until the messenger starts successfully.

Perf improvement on my heavy account:

Before: 17 sec warm start-up
After: 14 sec warm start-up

- Added `onMessengerStarted` method to `AccessInterface` to handle messenger start errors.
- Implemented `onMessengerStarted` method in `Module` to emit error notifications.
- Introduced `SIGNAL_MESSENGER_STARTED` constant for signaling messenger start events.
- Created `asyncStartMessengerTask` to manage asynchronous messenger start operations.
- Updated `startMessenger` method in `Service` to utilize the new async task and handle responses.

* fix: Trim StartMessenger async task output

* fix: review coment - remove dead code

* perf(qml): Drop the file selectors

* fix(webviewLoader): log on error

* perf: seed contacts with community members

Iterates: https://github.com/status-im/status-app/issues/20228

Resolving community members creates a high frequency RPC flood at start-up when the app tries to eagerly resolve every community members. On Android Status community adds around 2 sec in CPU time on warm start-up.

The solution implements an enriched community member type and contact type returned from status-go. The app will receive this extra data and seed the contacts cache (instead of creating the contacts cache using 4 separate RPCs for each member/contact).

* perf: enhance contact seeding with MemberSeed structure and optimize duplicate handling

* feat: Migrate android binder from files to shared memory

This commit aligns the client-server communication with standard Android solutions - direct binder calls and shared memory. This is done both for perf reasons (has a big impact on high frequency callse) and security concerns (no unencrypted data is touching the disk).

There are two main changes in this commit:
1. Direct communication between client and service when the payload is below 64KB. This is for high frequency and ligh calls (like colorId). The file based communication overhead is just too high for such usage.
2. Shared memory - When the payload is bigger than 64KB we'll use the shared memory

* perf: Avoid unnecessary community and chat copies

The nim profile trace is dominated with community and chat object copies.

There are 3 main types of changes:
- using `lent` to borrow a community from the service. It can be used as a return type only
- using openarray in favor of seq for proc args, where `lent` cannot be used.
- use "communityId" instead of full community where openarray or lent migration would cascade into lots of changes

* perf: Optimize community role retrieval in getChatItemFromChatDto

* perf: Move `getCachedCurrencyFormats` to threadpool

* fix: Fixing merge errors

* perf: Granular control qml compilation and loading of main layouts

This commit aims to split the qml compilation into smaller chunks and  schedule the compilation at the appropriate time.

Approach: Each main section lives behind a loader component that has 2 purposes - load the component at appropriate times and defer the qml compilation until the loader is created.

The same approach was applied to AppMain.qml and on top of this we'll need to make sure we're loading the AppMain at an appropriate time so that we'll avoid many intermediary states if the nim layer isn't ready for it.

For this, I've introduced a new component - QmlCompiler. It has a list of main components and can precompile the qml component or make sure to load it all if needed (e.g while the onboarding runs we can use that time to preload everything)

This approach is fully compatible with Loader.asynchronous usage and implementing loading states for the components - the community and chat loaders already implement it partially.
Can be extended to preload all the sections in the background while the user is working on the current section.

- Added MarketLoader.qml to handle market-related UI loading.
- Introduced NodeLoader.qml for loading node-related UI components.
- Created PopupsLoader.qml to manage various popups within the application.
- Developed ProfileLoader.qml for loading user profile sections.
- Implemented WalletLoader.qml to manage wallet-related UI components.
- Added QmlCompiler.qml to centralize URL management for QML components.
- Updated qmldir to include new loaders for better modularity.
- Refactored main.qml to utilize the new AppMainLoader and improve loading logic.

* fix: Correct spelling, function args and bindings

* chore: bump vendors

* fix: home selection doesn't open the proper 1x1 chat

There are 2 bugs: property binding override from within the component internals and a signal signature mismatch

* fix: handle shutdown process to avoid race conditions

- Added a custom exit procedure (https://en.cppreference.com/c/program/_Exit) to bypass libc static destructors on mobile devices, preventing potential race conditions during shutdown
- Ensured proper teardown of the threadpool in the StatusFoundation delete method

Fixes #20855

* fix(nft): disable more chains (#20866)

* fix(collectibles): add ink, katana to unsupported list

fixes #20717

* fix(dapps): dapp name html injection (#20881)

* chore: add dapp fields html injection to storybook

* fix(dapps): use the PlainText format for dApp controlled strings

fixes #20879

* fix(Portal): do not autofocus the Search field

Fixes #20870

* fix: Community members in community settins

* fix(android): async webview construction (#20916)

fixes #20886

* fix(chat): restore iOS paste menu behavior

Use the platform popup for the chat input context menu on iOS so paste and selection actions follow native text editing behavior.

Avoid toggling readOnly during iOS paste handling, since that dismisses and restores the virtual keyboard. Keep Android using the existing null context menu path.

Closes #20588

* fix(StatusTextField): Use native paste menu for text fields on iOS

Use the native iOS context menu for StatusTextField and keep Android on the default behavior.

* fix(android): battery usage while the app is in the background

This commit bumps status-go to include https://github.com/status-im/status-go/pull/7440. As a result the message sending is paused while in the background to stop the high frequency mvds loops that will prevent Android from going into sleep.
To preserve message sending while the app is in the background/killed we'll have to wake messenger briefly on the OS intent. We'll resume messenger for 60 seconds - enough to push the message through and then it will be paused again unless the app goes back to foreground.

This results in less battery usage and less events piling up in the qt event loop while the app is in the background.

* chore(@e2e): temp disable syncing test in release 2.38

* fix(chat): prevent MessageView from stealing ImageMessage right-clicks (#20889)

fixes #20789

* fix: cliping modal input (#20944)

* feat(notifications): update notification settings copy

Refresh notification settings wording across desktop and mobile, renaming the settings entry to “Notifications” and updating the enable notifications popup copy for iOS and other platforms.

Add clearer privacy messaging for APNs, on-device mobile delivery, and desktop OS notifications. Restore the iOS centralized notification options section and reuse the sound/volume controls across general and iOS notification settings, while keeping platform-specific test notification behavior.

Part of #20628

* feat(PushNotifications): Update mobile notification banner display logic

Adds local display state for the mobile push notification banner so it can respect the “Don’t ask me again” choice and avoid reappearing within the same minor version.

The banner is now shown only on mobile when private notifications are disabled, the current app minor version is at least 2.38, the user has not opted out, and the banner has not already been shown for that minor version. Patch updates reuse the same stored minor version, so they do not retrigger the banner.

Also wires the current app version into the handler and adds the “Don’t ask me again” switch to the popup.

Closes #20902

* fix(NotificationsView): Fix filter exemptions with stable scroll position

Move exemption search filtering from delegate visibility toggles to a SortFilterProxyModel, so the list only instantiates matching items instead of hiding non-matching delegates.

Keep the exemptions list height stable while filtering, capped to the visible settings page height, to avoid the page scroll jumping when the filtered result count shrinks without leaving a long empty scroll area.

* fix: failed e2e test fixed

* chore(@e2e): fix after conflicts resolution

---------

Co-authored-by: Anthony Laibe <491074+alaibe@users.noreply.github.com>
Co-authored-by: Andrey Bocharnikov <andrey.bocharnikov@gmail.com>
Co-authored-by: Lukáš Tinkl <lukast@status.im>
Co-authored-by: Anastasiya <anastasija.ig@gmail.com>
Co-authored-by: Noelia <noelia@status.im>
Co-authored-by: Siddarth Kumar <siddarthkay@gmail.com>
Co-authored-by: Michał Cieślak <michalcieslak@status.im>
Co-authored-by: Alex Jbanca <47811206+alexjba@users.noreply.github.com>
Co-authored-by: Alex Jbanca <alexjb@status.im>
2026-05-21 10:54:47 +02:00
Siddarth Kumar 6e232c10d0 ios: upgrade to SDK 26 2026-05-06 08:53:30 +05:30
Alex Jbanca 7c80103d36 fix: android deadlock when spawning app foreground/background cycles (#20519) 2026-04-23 13:31:18 +02:00
Alex Jbanca db4b5c5a46 feat(ios): wire-up push notifications (#20344)
* feat(ios): wire-up push notifications

- wire push notifications endpoints with qml access
- split NotificationsView.qml into 2 different components. The general component preserving the current behavior and a reduced functionality for centralized push notifications (similar to the Status legacy)
- wire bundle id from EnvVariables.mk to the push notifications status-go calls. We need the bundle id as topic.
- Tweak the Push permissions request flow to account for platform specifics

* fix: mobile-run doesn't work for all targets
2026-04-06 14:19:22 +03:00
Alex Jbanca 8b57fabf01 chore(android): Compile 16kb page size against qt 6.11
- update linker flags
- update imports for mobile WebViewAdapter
- explicit cmake find for qt code private
2026-03-26 09:08:57 +02:00
Alex Jbanca 4fdcf9ec1d feat(android): status-go as a service
Add an option to run status-go as a service on android using Androdi Binder as a transport.

See ADR for more details docs/adr/0001-android-status-go-as-a-service.md
2026-03-20 09:22:26 +02:00
Alex Jbanca 432c0394cb feat: Push notifications permissions - UI
Adding the possibility for the user to interact with the OS push notification permissions.

1. Adding a `EnablePushNotificationsPopup` component. This component will be shown at start-up. The user can use it to request push notifications permissions or to navigate to OS settings if the permissions cannot be enabled from within the app
2. Hook the push notifications permissions to NotificationsView. The `Enable push notifications` toggle will also ask for push notifications permissions if possible. Otherwise it will show an additional section guiding the user to enable push notifications from OS settings.
2026-03-19 21:23:49 +02:00
Andrey Bocharnikov 33fe931c4d feat(browser): integrate mobilewebview repo (#20179)
* feat(Browser): AbstractWebView + webengine component

* Added capabilities

fixes #19420

* feat(mobile-browser): profile manager

* feat(mobile-browser): make a single overlay for Downloads/EmptyPage views

* fix(browser): integrate mobilewebview repo

* fix(browser): fix pr comments

* fix(browser): fix pr comments

* chore: bump status go

* chore: disable mobile browser
2026-03-17 15:27:19 +04:00
Siddarth Kumar a980ae767c ios: enable automatic signing for local builds
fixes: https://github.com/status-im/status-app/issues/19725
2026-03-06 20:23:59 +05:30
Alex Jbanca 7fc5283251 fix: MacOS build - missing libZXing
Compile zxing and scodes as static libs
2026-02-20 12:52:10 +02:00
Jonathan Rainville ebb9c2f9c6 chore(qzxing): remove old QR code library 2026-02-13 13:05:32 -05:00
Jonathan Rainville cec140de2b feat(qr): add new QR library SCodes to scan qr codes (#19811) 2026-02-13 09:21:18 -05:00
Alex Jbanca 5bcd9d8688 feat(mobile): Shake to share log files
Implement shake to share for android and IOS

+ migrate to an event driven mechanism for IOS as well
2026-02-09 16:41:04 +02:00
Alex Jbanca ab48e34204 fix(ios): Adding permissions for local backup path
Needs: https://github.com/status-im/MobileUI/pull/4

MobileUI adds 2 new APIs to manage the temporary file permissions (`startAccessingPath` and `stopAccessingPath`)

We're using these 2 new APIs in the StatusFolderDialog and StatusFileDialog. Whenever the user picks a public folder or file we'll ask IOS to grant permission access to these files. By default these permissions will be stored for the app lifetime. If needed we can also stop the permissions.

Changes:
- DeviceStore.qml: This store file implements a migration path from the old backup path to a standard public Status folder. This is needed for the existing users where the backup path is already configured somewhere else. The `setBackupPath` is also disabled for IOS. It's probably not the ideal place for such a thing, but for sure it's more isolated than AppMain or other common place.
- BackupView.qml: This view was changed a little bit so that we won't give the impression that the folder picked by the user will be used as a backup folder. Kept all the components visibile and altered just the copy
- StatusFileDialog.qml: When a file is picked by the user we'll ensure `startAccessingPath` is called. The file dialog output will be a local file path (as opposed to a file url)
- StatusFolderDialog.qml: Similar to StatusFileDialog
2026-02-05 17:20:52 +02:00
Alex Jbanca e95901281c feat: Add status-keycard-qt lib
This commit adds the status-keycard-qt submodule and updates the build configuration to support it.

In this initial version the `status-keycard-qt` option can be enabled by using the `USE_STATUS_KEYCARD_QT` flag.
- desktop: `USE_STATUS_KEYCARD_QT` will enable/disable the qt implementation. By default the go version is used
- ios: `USE_STATUS_KEYCARD_QT` will enable/disable the qt implementation
- android: the qt implementation is enabled by default

to squash - first commit
2026-01-14 14:37:35 +02:00
Siddarth Kumar 0fdd9fda2d ci: fix android signing
- brings in status-jenkins-lib@v1.9.36
- use gradle build types for PR and Release.
- signing config moved to gradle
- simplify build App script
2026-01-12 19:27:43 +04:00
Siddarth Kumar 1a9708fe01 ios: create and sign separate bundle ID for PRs
- points to `fix-ios-signing-with-fastlane` branch of
`status-jenkins-lib` which provides development certs for PR builds and
distribution certs for release builds.
- adds nix flake to provide ruby dependencies for `fastlane`
- adds config for new build identifier for PRs: `app.status.mobile.pr`
- swaps testflight script with fastlane action
- adds job to build iOS in release
- updates status-go to use nim-sds from
https://github.com/logos-messaging/nim-sds/pull/41
2025-12-24 16:33:32 +04:00
Alex Jbanca 60b775b2bf fix: Unbreak the mobile app 2025-12-08 22:14:25 +01:00
Lukáš Tinkl c4bd2dc4dc chore: setup automatic versioning for mobile builds
- use the same `DESKTOP_VERSION` as the user visible version, but also
set the internal build version string on both Android/iOS

Fixes #19309
2025-11-20 16:24:32 +01:00
Noelia c34ad26e25 feat(AppearanceView): Added padding factor slider and modified default scaling factors for short screens
- Adds a new padding factor slider to the `AppearanceView` to experiment with UI scaling behavior. This allows adjusting paddings dynamically for testing different density levels and layout responsiveness.

- Adds a new 100% screen scaling factor for mobile to provide a more natural and consistent visual baseline across devices.
Also updates the default UI configuration:

- Font size: set to S
- Padding: set to XXS

These defaults help achieve a cleaner, more compact layout while improving readability and overall UI density on mobile.
2025-11-17 16:04:00 +01:00
Siddarth Kumar a1dd245159 ios: produce signed build
- update status-jenkins-lib to v1.9.30 which provides iOS provisioning
profile and appstore certs.
- builds signed iOS app and pushes to testflight.
- updates testflight metadata with PR link and commit sha it was built
from
- adds `scripts/testflight-changelog.mjs` script used by CI to update PR
metadata.
- set `ITSAppUsesNonExemptEncryption` to `false`
2025-10-31 14:31:30 +04:00
Siddarth Kumar dee268e221 mobile: build a signed android app
- generate signed APK for PRs
- generate signed AAB for PRs targeting release branches
- updates status-jenkins-lib to v1.9.29 which provides keystore and
credentials for signing
- rename bundle id app.status.mobile
- nuke FOREGROUND_SERVICE permission
- automatically generate versionCode based on minutes since epoch
- nuke unused mobile/android/qt5 dir
- fix path to SecureAndroidAuthentication.java
- bump nim to 2.2.4
2025-10-26 12:36:27 +04:00
Alex Jbanca cfb41ba53a chore: Add splash screens
+ remove the safe area workarounds for qt 6.9.1

This commit adds the splash screen resources for Android and IOS.
On Android it will also create a StatusBarUtil.java. This is a helper to notify the OS when the app theme changes so that the top bar icons to change as well.
StatusQtActivity class inherits the QtActivity and implements the splash screen condition on Android. This is necessary to avoid screen flickering and empty screens while the app loads.
2025-10-17 09:53:17 +03:00
Alex Jbanca b2d4eddc77 chore: Update app name to Status and align app package id with the bundle id
App name: Status
App package/bundle: im.status.app
2025-10-16 12:32:51 +03:00
Lukáš Tinkl 75e867b7de fix(i18n): bundle the translations into resources
- simplify the process or deploying the translations by treating the QM
files just like any other resource, and compile/bundle them with the
binary
- remove manual copying of the QM files in Makefile and other scripts
- greatly simplify the LanguageService discovery, as the QM files are
now in a uniform prefix (`:/i18n`) on any platform
- because of the uniform prefix/location, the retranslation now happens
automatically by `QQmlApplicationEngine`, by just setting/getting the
`Qt.uiLanguage` property

Fixes #18914
2025-10-15 15:15:41 +02:00
Khushboo Mehta e382eb6391 feat(@desktop/wallet): Added Biometric support for ios
fixes #18925
2025-10-07 20:56:36 +05:30
Khushboo Mehta 3e18c91cac feat(@mobile/biometrics): Add suport for biometrics on Android
Uses Biometric Manager with CryptoObject to make it secure and robust
2025-10-07 20:44:14 +05:30
Siddarth Kumar c3401936b7 ci: init iOS build pipeline
- update `status-desktop/mobile/scripts/EnvVariables.mk` to use `$QMAKE`
instead of `qmake`.
- add `QMAKE` env var in `ci/jenkinsfile.android`
- add `ci/Jenkinsfile.ios` pipeline job to build the app and provide the
artifact as part of Github PR.
- update the bundle id for mobile app to `im.status.app`
2025-09-23 13:17:46 +05:30
Alex Jbanca fe36d7423c fix: QML server
- Use local network IP address for the host, instead of localhost
- Use the default install folder for the app whenever it's not built using the qml local server. Previously it was installed in `default` folder
- Simplify the `APP_VARIANT`
2025-09-09 13:13:11 +03:00
Michał Cieślak 1f1b653257 Mobile: separate build dirs for regular and qml-server builds
Closes: #18466
2025-08-28 10:04:09 +02:00
Alex Jbanca 1c2643aed3 chore(pcre): Remove pcre dependency for mobile builds 2025-08-01 17:09:59 +03:00
Alex Jbanca 234fbd51a6 fix: IOS build and deploy 2025-07-25 17:14:37 +03:00
Michał Cieślak 659594d609 DummyCompatImports - imports workaround removed 2025-07-15 15:25:54 +02:00
Alex Jbanca 2524258454 fix(mobile): Add camera support 2025-06-23 12:49:39 +03:00
Alex Jbanca e37cf1dfbd chore: Use 0.8 scaling for mobile 2025-06-20 19:05:50 +03:00
Alex Jbanca b5043f1134 chore: Use openssl3
- Replace the openssl vendors and use the official repo for both IOS and Android
- Update the build scripts to compile openssl using the official repo
2025-06-10 14:26:36 +03:00
Alex Jbanca 532e7ea989 chore: integrate the mobile build system in the main makefile
- Creating new targets to build, run and clean mobile builds
- Updating the builds to support qt 6.9.0 (and NDK 27.2.12479018)
- Move the GH actions to the main gh folder
- Update the main Makefile to allow cross-compilation. `detected_os` becomes `mkspecs`
2025-06-10 11:28:12 +03:00
Alex Jbanca 11e22b3d8e fix: Various fixes to the build system
1. Adding AndroidManifest.xml with app icons and splash screen
2. Renaming IOS-build to Status-tablet
3. Update androiddeployqt to run on android-31
4. Adding app icons to IOS
5. Fixing makefile clean, makefile nim_status_client dependencies, makefile DOtherSide lib name
6. Update README.md with latest changes
2025-06-03 16:44:03 +03:00
Alex Jbanca 59f9ee87fb chore(qt6): Update the build scripts for qt5 and qt6 compatibility 2025-06-03 16:44:03 +03:00
Alex Jbanca 3cfcca7290 chore: Use the status-im/status-desktop repo 2025-06-03 16:44:03 +03:00
alexjba 8890858b64 fix: fix linux build 2025-06-03 16:44:03 +03:00
Alex Jbanca 091e7e1d1a fix: Android ABI 2025-06-03 16:44:03 +03:00
Alex Jbanca 1b1d8f118e chore: Android build 2025-06-03 16:44:03 +03:00
Alex Jbanca 2f04500669 fix: build settings 2025-06-03 16:44:03 +03:00