Files
amnezia-client/client/ui/qml/qml.qrc
Nethius c28452a5da feat: desktop updater (#825)
* added changelog drawer

* Created a scaffold for Linux installation

* implement Linux updating

* Add debug logs about installer in service

* Add client side of installation logic for Windows and MacOS

* Add service side of installation logic for Windows

* ru readme

* Update README_RU.md

* Add files via upload

* chore: added clang-format config files (#1293)

* Update README_RU.md

* Update README.md

* feature: added subscription expiration date for premium v2 (#1261)

* feature: added subscription expiration date for premium v2

* feature: added a check for the presence of the “services” field in the response body of the getServicesList() function

* feature: added prohibition to change location when connection is active

* bugfix: renamed public_key->end_date to public_key->expires_at according to the changes on the backend

* feature/xray user management (#972)

* feature: implement client management functionality for Xray

---------

Co-authored-by: aiamnezia <ai@amnezia.org>
Co-authored-by: vladimir.kuznetsov <nethiuswork@gmail.com>

* Fix formatting

* Add some logs

* Add logs from installattion shell on Windows

* Fix installation for Windows and MacOS

* Optimized code

* Move installer running to client side for Ubuntu

* Move installer launch logic to client side for Windows

* Clean service code

* Add linux_install script to resources

* Add logs for UpdateController

* Add draft for MacOS installation

* Disable updates checking for Android and iOS

* chore: fixed macos update script

* chore: remove duplicate lines

* chore: post merge fixes

* chore: add missing ifdef

* decrease version for testing

* chore: added changelog text processing depend on OS

* add .vscode to .gitignore

* Change updater downloading method to retrieving link from the gateway

* add Release date file creation to s3 deploy script

* Add release date downloading from endpoint

* update check refactoring

* feat: switch macOS auto-update from DMG to ZIP+PKG installer

- Update macOS artifact URL from .dmg to .zip
- Rewrite mac_installer.sh to extract ZIP and install PKG via osascript
- Increase download timeout to 30s for larger ZIP files

* fix: fix Android build

* feat: Change get request for updater link to post

* refactor: preparing NewsModel for update notifications

- Changed `updateModel` to `setNewsList` for better semantic meaning.
- Delegate model container updating to private method updateModel
- Updated the logic for marking news as read to use item IDs instead of a boolean flag.

* feat: Move update notification in news list

- Updated `UpdateController` to handle empty release dates in header text.
- Added `getVersion` method to `UpdateController` for version retrieval.
- Enhanced `NewsModel` to support update notifications with new methods for marking updates as skipped and setting update notifications.
- Updated QML pages to display update information and provide actions for updates and skipping them.
- Introduced `isUpdate` property in `NewsItem` to differentiate between regular news and updates.

* feat: Implement rate limit workaround for gateway requests

- Added a delay before contacting the gateway in both `UpdateController` and `ApiNewsController` to prevent rate limit issues caused by simultaneous requests.

* refactor: Convert synchronous network requests to asynchronous in UpdateController

- Updated `UpdateController` to use asynchronous network requests for fetching gateway URL, version info, changelog, and release date.
- Introduced `doGetAsync` method to handle asynchronous GET requests with error handling.
- Removed synchronous methods to improve responsiveness and prevent blocking the UI during network operations.
- Added a mechanism to prevent multiple concurrent update checks.

* chore: Decrease AmneziaVPN version to 4.8.10.0 in CMakeLists.txt for testing

* refactor: Improve update check handling to avoid rate limit issues

- Updated `CoreController` to initiate update checks after news fetching is complete.
- Removed synchronous waiting in `ApiNewsController` to streamline the fetching process.

* fix: fixed typo in IsReadRole

* fix: fix updater filenames

* chore: move updateController to core

* refactor: update to mvvm

* chore: tiny fix

---------

Co-authored-by: aiamnezia <ai@amnezia.org>
Co-authored-by: aiamnezia <ai@amnezia.com>
Co-authored-by: Pokamest Nikak <pokamest@gmail.com>
Co-authored-by: KsZnak <ksu@amnezia.org>
Co-authored-by: Cyril Anisimov <cyan84@gmail.com>
Co-authored-by: vkamn <vk@amnezia.org>
2026-05-04 12:37:19 +08:00

137 lines
7.0 KiB
Plaintext

<RCC>
<qresource prefix="/ui/qml">
<file>Components/AdLabel.qml</file>
<file>Components/ConnectButton.qml</file>
<file>Components/ConnectionTypeSelectionDrawer.qml</file>
<file>Components/GamepadLoader.qml</file>
<file>Components/HomeContainersListView.qml</file>
<file>Components/HomeSplitTunnelingDrawer.qml</file>
<file>Components/InstalledAppsDrawer.qml</file>
<file>Components/ChangelogDrawer.qml</file>
<file>Components/QuestionDrawer.qml</file>
<file>Components/SelectLanguageDrawer.qml</file>
<file>Components/ServersListView.qml</file>
<file>Components/SettingsContainersListView.qml</file>
<file>Components/BenefitRow.qml</file>
<file>Components/BenefitsPanel.qml</file>
<file>Components/SubscriptionExpiredDrawer.qml</file>
<file>Components/SubscriptionPlanCard.qml</file>
<file>Components/TermsAndPrivacyText.qml</file>
<file>Components/TransportProtoSelector.qml</file>
<file>Components/AddSitePanel.qml</file>
<file>Config/GlobalConfig.qml</file>
<file>Config/qmldir</file>
<file>Controls2/BackButtonType.qml</file>
<file>Controls2/BasicButtonType.qml</file>
<file>Controls2/BusyIndicatorType.qml</file>
<file>Controls2/CardType.qml</file>
<file>Controls2/CardWithIconsType.qml</file>
<file>Controls2/CheckBoxType.qml</file>
<file>Controls2/ContextMenuType.qml</file>
<file>Controls2/DividerType.qml</file>
<file>Controls2/DrawerType2.qml</file>
<file>Controls2/DropDownType.qml</file>
<file>Controls2/FlickableType.qml</file>
<file>Controls2/Header2Type.qml</file>
<file>Controls2/BaseHeaderType.qml</file>
<file>Controls2/HeaderTypeWithButton.qml</file>
<file>Controls2/HeaderTypeWithSwitcher.qml</file>
<file>Controls2/HorizontalRadioButton.qml</file>
<file>Controls2/ImageButtonType.qml</file>
<file>Controls2/LabelWithButtonType.qml</file>
<file>Controls2/LabelWithImageType.qml</file>
<file>Controls2/ListViewWithLabelsType.qml</file>
<file>Controls2/ListViewWithRadioButtonType.qml</file>
<file>Controls2/PageType.qml</file>
<file>Controls2/PopupType.qml</file>
<file>Controls2/ProgressBarType.qml</file>
<file>Controls2/ScrollBarType.qml</file>
<file>Controls2/StackViewType.qml</file>
<file>Controls2/SwitcherType.qml</file>
<file>Controls2/TabButtonType.qml</file>
<file>Controls2/TabImageButtonType.qml</file>
<file>Controls2/TextAreaType.qml</file>
<file>Controls2/TextAreaWithFooterType.qml</file>
<file>Controls2/TextFieldWithHeaderType.qml</file>
<file>Controls2/TextTypes/ButtonTextType.qml</file>
<file>Controls2/TextTypes/CaptionTextType.qml</file>
<file>Controls2/TextTypes/Header1TextType.qml</file>
<file>Controls2/TextTypes/Header2TextType.qml</file>
<file>Controls2/TextTypes/LabelTextType.qml</file>
<file>Controls2/TextTypes/ListItemTitleType.qml</file>
<file>Controls2/TextTypes/ParagraphTextType.qml</file>
<file>Controls2/TextTypes/BadgeTextType.qml</file>
<file>Controls2/TextTypes/SmallTextType.qml</file>
<file>Controls2/TopCloseButtonType.qml</file>
<file>Controls2/VerticalRadioButton.qml</file>
<file>Controls2/WarningType.qml</file>
<file>Filters/ContainersModelFilters.qml</file>
<file>main2.qml</file>
<file>Modules/Style/AmneziaStyle.qml</file>
<file>Modules/Style/qmldir</file>
<file>Pages2/PageDeinstalling.qml</file>
<file>Pages2/PageDevMenu.qml</file>
<file>Pages2/PageHome.qml</file>
<file>Pages2/PageProtocolAwgSettings.qml</file>
<file>Pages2/PageProtocolOpenVpnSettings.qml</file>
<file>Pages2/PageProtocolRaw.qml</file>
<file>Pages2/PageProtocolWireGuardSettings.qml</file>
<file>Pages2/PageProtocolXraySettings.qml</file>
<file>Pages2/PageServiceDnsSettings.qml</file>
<file>Pages2/PageServiceSftpSettings.qml</file>
<file>Pages2/PageServiceSocksProxySettings.qml</file>
<file>Pages2/PageServiceTorWebsiteSettings.qml</file>
<file>Pages2/PageSettings.qml</file>
<file>Pages2/PageSettingsAbout.qml</file>
<file>Pages2/PageSettingsApiAvailableCountries.qml</file>
<file>Pages2/PageSettingsApiServerInfo.qml</file>
<file>Pages2/PageSettingsApplication.qml</file>
<file>Pages2/PageSettingsAppSplitTunneling.qml</file>
<file>Pages2/PageSettingsBackup.qml</file>
<file>Pages2/PageSettingsConnection.qml</file>
<file>Pages2/PageSettingsDns.qml</file>
<file>Pages2/PageSettingsKillSwitch.qml</file>
<file>Pages2/PageSettingsKillSwitchExceptions.qml</file>
<file>Pages2/PageSettingsLogging.qml</file>
<file>Pages2/PageSettingsServerData.qml</file>
<file>Pages2/PageSettingsServerInfo.qml</file>
<file>Pages2/PageSettingsServerProtocol.qml</file>
<file>Pages2/PageSettingsServerProtocols.qml</file>
<file>Pages2/PageSettingsServerServices.qml</file>
<file>Pages2/PageSettingsServersList.qml</file>
<file>Pages2/PageSettingsSplitTunneling.qml</file>
<file>Pages2/PageSettingsNewsNotifications.qml</file>
<file>Pages2/PageSettingsNewsDetail.qml</file>
<file>Pages2/PageProtocolAwgClientSettings.qml</file>
<file>Pages2/PageProtocolWireGuardClientSettings.qml</file>
<file>Pages2/PageSetupWizardApiFreeInfo.qml</file>
<file>Pages2/PageSetupWizardApiPremiumInfo.qml</file>
<file>Pages2/PageSetupWizardApiTrialEmail.qml</file>
<file>Pages2/PageSetupWizardApiServicesList.qml</file>
<file>Pages2/PageSetupWizardConfigSource.qml</file>
<file>Pages2/PageSetupWizardCredentials.qml</file>
<file>Pages2/PageSetupWizardEasy.qml</file>
<file>Pages2/PageSetupWizardInstalling.qml</file>
<file>Pages2/PageSetupWizardProtocols.qml</file>
<file>Pages2/PageSetupWizardProtocolSettings.qml</file>
<file>Pages2/PageSetupWizardQrReader.qml</file>
<file>Pages2/PageSetupWizardStart.qml</file>
<file>Pages2/PageSetupWizardTextKey.qml</file>
<file>Pages2/PageSetupWizardViewConfig.qml</file>
<file>Pages2/PageShare.qml</file>
<file>Pages2/PageShareFullAccess.qml</file>
<file>Pages2/PageShareConnection.qml</file>
<file>Pages2/PageStart.qml</file>
<file>Components/RenameServerDrawer.qml</file>
<file>Controls2/ListViewType.qml</file>
<file>Pages2/PageSettingsApiSupport.qml</file>
<file>Pages2/PageSettingsApiInstructions.qml</file>
<file>Pages2/PageSettingsApiNativeConfigs.qml</file>
<file>Pages2/PageSettingsApiDevices.qml</file>
<file>Components/AwgTextField.qml</file>
<file>Pages2/PageSettingsApiSubscriptionKey.qml</file>
<file>Components/SmartScroll.qml</file>
</qresource>
</RCC>