Jump to content

Yaroslav Brovin

Administrators
  • Posts

    2,567
  • Joined

  • Last visited

  • Days Won

    647

Everything posted by Yaroslav Brovin

  1. Download: The distributive is available by request only. Release date: 30 April 2022 Warning 🚨 The TfgPickerPhotoFactory.PickPhotoFromCamera and TfgPickerPhotoFactory.PickPhotoFromLibrar methods, which take a single-file argument in the callback, are marked as deprecated and replaced with the same-name methods with an array of files in the callback. New ✨ TfgMap The new method MoveCameraToVisibleRegion and property VisibleRegion were added for possibility to move camera on region by specified geographics coordinates. FGX-154 Implement display specified region on map. TfgCollectionView The new property TfgCollectionView.SelectionOptions.AlwaysSelectItem was added, which allows or denies reset selection from last selected item. The property blocks last selection only when user manually tap an item. You can reset all selection by programmatic way. FGX-171 Add new selection mode in TfgCollectionView for deny a resetting last selected item. Components icons We have added new component icons for all components in "FGX: Shapes" and "FGX: Signature" groups. Improvements 🙌 TfgForm Now if the SystemStatusBar.ContentStyle equals Auto, the content style of the system status bar is selected based on the background color of the toolbar too. FGX-104 Изменение цвета шрифта системного StatusBar при использовании TfgNavigationBar. TfgScreenManager New methods TfgScreenInfo.DpToPx and TfgScreenInfo.PxToDp were added for conversion physical and logical coordinates among themselves. Alignment The primary optimization of the alignment system was carried out, the results of which were the reduction of unnecessary alignments when creating the form. Which can speed up the creation of forms and the launch of the application. TfgPickerPhoto Implemented multiple photo selection mode for TfgPickerPhotoFactory.PickPhotosFromLibrary (Note: iOS requires version 14 and above) Bug Fixes 🐛 FGX-175 TfgLabel splits text on lines when LineBreak=None (Android). FGX-173 The ImageMode.AspectFit doesn't work in TfgLottieImage (Android). FGX-172 Android application cannot be built with usage custom jar-libs on Delphi 11.1 (Android). FGX-145 TfgDrawerLayout events didn't implemented (iOS). FGX-156 The property Appearance.Icon.ColorName doesn't work for TfgButton (iOS). FGX-97 The OnTapItem event doesn't work if TfgCollectionView item includes TfgCardPanel (iOS). The Zoom gesture could raise "OutOfRange" exception, if user release only one finger (iOS). When Android application is being launched user could see small layout jump in ScrollBox (Android). When user uses dark theme in iOS, FGX Native application could incorrect display components. The alignment pages in TfgVirtualPagerLayout and TfgPagerLayout were fixed, if page is being added in runtime (iOS). After removing pages in TfgPagerLayout, the current index wasn't reset (iOS).
  2. Скачать: Релиз доступен только по запросу. Дата релиза: 30 апреля 2022 Внимание 🚨 Методы TfgPickerPhotoFactory.PickPhotoFromCamera и TfgPickerPhotoFactory.PickPhotoFromLibrary, принимающие в функции обратного вызова аргумент с одним файлом, помечены как устаревшие и заменены на одноименные методы с массивом файлов. Новое ✨ TfgMap Добавлены метод MoveCameraToVisibleRegion и свойство VisibleRegion для возможности переместить камеру в регион, заданный географическими координатами. FGX-154 Реализовать отображение заданной области на карте. TfgCollectionView Добавлено новое свойство TfgCollectionView.SelectionOptions.AlwaysSelectItem, которое разрешает или запрещает снимать вручную выделение с последнего выделенного элемента. Свойство блокирует сброс выделения только при интерактивном взаимодействии. Снять выделение через программный сброс выделения не запрещается. FGX-171 Добавить режим выделения в TfgCollectionView, при котором всегда будет выделен один элемент. Иконки компонентов Добавлены иконки для всех компонентов из групп "FGX: Shapes" и "FGX: Signature". Улучшения 🙌 TfgForm Теперь в режиме SystemStatusBar.ContentStyle = Auto стиль содержимого системного статус бара выбирается на основании цвета фона TfgNavigationBar в том числе, если он подключен к форме. FGX-104 Изменение цвета шрифта системного StatusBar при использовании TfgNavigationBar. TfgScreenManager Добавлены методы TfgScreenInfo.DpToPx и TfgScreenInfo.PxToDp для конвертации физических и логических координат между собой. Выравнивание Проведена первичная оптимизация системы выравнивания, результатов которой стало уменьшение лишних выравниваний при создании формы. Что может ускорить создание форм и запуск приложения. TfgPickerPhoto Реализован режим одновременного выбора нескольких фотографий TfgPickerPhotoFactory.PickPhotosFromLibrary (Внимание! Для iOS требуется версия 14 и выше). Исправление ошибок 🐛 FGX-175 Текст переносится не смотря на отключенный перенос в TfgLabel (Android). FGX-173 Не работает ImageMode.AspectFit для TfgLottieImage (Android). FGX-172 Не собирается Андроид приложение при использовании пользовательских Jar-библиотек на 11.1 (Android). FGX-145 Не реализованы события у TfgDrawerLayout (iOS). FGX-156 Не работает свойство Appearance.Icon.ColorName для TfgButton (iOS). FGX-97 Не срабатывает событие OnTapItem для TfgCollectionView (iOS). Жест Zoom может заканчиваться ошибкой, если в конце поднять только один палец (iOS). При старте приложения мог наблюдаться скачок разметки в ScrollBox (Android). При использовании темной темы в iOS, FGX Native приложение могло не корректно отображать цвет компонентов (iOS). Исправлено выравнивание страниц в TfgVirtualPagerLayout и `TfgPagerLayout`, если страницы добавлять программно (iOS). После полного удаления страниц в TfgPagerLayout, индекс текущей страницы не сбрасывался (iOS).
  3. Добрый вечер, Нужен демо проект. По стеку ошибка, связанная с выравниванием, а не с загрузкой изображения.
  4. Исправлено в 1.14.1.0. Для локальной правки сборки. Замените оригинальный файл $(FGX)/MSBuild/FGX.Delphi.Android.Targets на новый FGX.Delphi.Android.Targets
  5. Похоже дело в 11.1. В первом обновлении Embarcadero поменяли скрипты сборки. И похоже теперь просто у нас отвалилась сборка с дополнительными jar-библиотеками. Разберемся. Позже отпишусь о процессе.
  6. Добрый день, Есть демо проект, который я мог бы посмотреть? Спасибо
  7. Hello @ahmed.atayib, I'm glad to share with you, that we made public English release. So now it's available for everyone. Thank you, Yaroslav
  8. Authentication via Google Sign In was added in 1.14.0.0 for Android.
  9. Download: The distributive is available by request only. Release date: 12 April 2022 There may be a slowdown in IDE loading in release 1.14.0.0. This fix returns the IDE loading speed to the previous level. If you have performance degradation on IDE startup, please, install this update.
  10. Скачать: Релиз доступен только по запросу. Дата релиза: 14 апреля 2022 В релизе 1.14.0.0 может наблюдаться замедление загрузки IDE. Это исправление возвращает скорость загрузки IDE на прежний уровень. Если у вас нет проблем с эти, это обновление можно пропустить.
  11. Скачать: Релиз доступен только по запросу. Дата релиза: 12 апреля 2022 Исправление ошибок 🐛 Добавлены пропущенные собранные модули FGX.Authentication.Client.GoogleSignIn и FGX.Authentication.Client.FacebookLogin. FGX-170 Перезагрузка списка в TfgCollectionView.OnTap или TfgCollectionView.OnTapItem событиях может привести к ошибки доступа по индексу. Закрытие формы с TfgDatePicker приводило к падению приложения (iOS).
  12. Download: The distributive is available by request only. Release date: 12 April 2022 Bug Fixes 🐛 The missed files FGX.Authentication.Client.GoogleSignIn and FGX.Authentication.Client.FacebookLogin were added. FGX-170 The reloading items in TfgCollectionView.OnTap or TfgCollectionView.OnTapItem could lead to out of range exception. Closing form with TfgDatePicker led to application crash (iOS).
  13. Download: The distributive is available by request only. Release date: 10 April 2022 Warning 🚨 Properties TfgCollectionView.SelectionColor, SelectionColorName and SelectionMode were moved to new SelectionOptions property. At the same time, the old runtime access to them is still preserved. New ✨ TfgGoogleSignInAuthenticationClient The new component TfgGoogleSignInAuthenticationClient was added. It allows to identify user via "Google Sign in" service. The component is also cross-platform. However the component is implemented only for Android platform at this moment. TfgCollectionView - manual selection displaying The manual selection displaying was added in TfgCollectionView. The new property TfgCollectionView.SelectionOptions.DisplayingMode allows to specify way for displaying selection: Auto - regular mode by default. The component takes care about displaying selection via changing item's background color. Manual - manual mode. The component doesn't display selection. It notifies user about displaying/resetting item's selection via new event OnUpdateItemSelectionAppearance. In case of manual displaying selection, you should select or reset selection appearance in the OnUpdateItemSelectionAppearance event. This event is called every time the list needs to update the state of an item. Among the arguments of the event, information about: AItem - Item wrapper for working with nested controls. IsSelected - Is selected item or not. Initiator - Who is initiator refreshing selection appearance. If you want to add animations to the selection process of an element, then focus on this flag. This flag equlas "User" when the user changes the selection manually. The new demo sample was added: "Components" -> "TfgCollectionView" -> "Manual displaying selection". TfgControlEnumerators Two enumerators are now available for traversing the component tree with the ability to manage the traversal. Both enumerators are available in the TfgControlEnumerators class. TfgControlEnumerators.Enum - Root -> First..Last child TfgControlEnumerators.ReverseEnum - Root -> Last..First child For example, iterating over all `TfgEdit` might look like this: TfgControlEnumerators.Enum(Form, procedure (const AChild: TfgControl; var AAction: TfgEnumControlsAction) begin if AChild is TfgEdit then TfgLog.Debug(AChild.ToString); end); In addition to the usual bypass, it is possible to do a controlled bypass. For example, searching for an input field: TfgControlEnumerators.Enum(Form, procedure (const AChild: TfgControl; var AAction: TfgEnumControlsAction) begin if AChild is TfgEdit then begin TfgLog.Debug('Edit: ' + AChild.ToString); AAction := TfgEnumControlsAction.Stop; end else AAction := TfgEnumControlsAction.Continue; end); The `AAction` parameter of an anonymous function allows specify the further direction of the component traversal action: Continue - Go to next control; Discard - Go to sibling component (don't go deep); Stop - Stop. Components icons We have added new component icons for all components in "FGX: Standard" and "FGX: Layout" groups. Improvements 🙌 TfgFormManager The form manager TfgFormManager was redesigned. This class fully tracks the lifetime of all forms in FGX Native. Now all public methods do not take into account embedded form-frames, as before. Added a new demo project showing an example of working with authentication clients (TfgAppleIdAuthenticationClient, TfgFacebookLoginAuthenticationClient😞 "Authentication" -> "Authentication clients". Other The key event processing logic was redesigned. Now the key event is dispatched across all forms/frames, starting from the one closest to the user. Previously, depending on the moment of creation and embedding of the form, the order of processing button events could be violated. Bug Fixes 🐛 FGX-SUPPORT-85 In certain situations with embedded forms, when you click on the Back button, the application might not being hidden (Android). FGX-169 TBeacon Component doesn't work (Android). Java2Delphi tool didn't create output folder for generated headers. FGX-164 Nested TfgCollectionView in BottomSheet doesn't let to scroll second nested list (Android). TfgLottieImage repeated animation one additional time, is repeat mode was disabled (Android). The first build new project under Delphi 11.1 for Android always failed.
  14. Скачать: Релиз доступен только по запросу. Дата релиза: 10 апреля 2022 Внимание 🚨 Свойства TfgCollectionView.SelectionColor, SelectionColorName, SelectionMode перенесены в новое свойство SelectionOptions. При этом старый доступ в runtime к ним пока сохранен. Новое ✨ TfgGoogleSignInAuthenticationClient Новый компонент авторизации через сервис "Google Sign in". На текущий момент реализация только для Android. TfgCollectionView - ручное отображение выделения Добавлена возможность ручного отображения выделения элементов по вашему усмотрению. Новое свойство TfgCollectionView.SelectionOptions.DisplayingMode позволяет указать каким способом отображать выделение: Auto - обычный режим по умолчанию. Компонент берет на себя ответственность по автоматическому выделению элементов через изменение цвета заднего фона элемента. Manual - ручной режим. В этом случае компонент никак не отображает выделение элементов. О необходимости выделить/сбросить элемент компонент сообщает через новое событие OnUpdateItemSelectionAppearance. В случае ручной раскраски выделения, необходимо выполнить выделение или сброс выделения в событии OnUpdateItemSelectionAppearance. Это событие вызывается каждый раз, когда списку необходимо обновить состояние элемента. Среди аргументов события передается информация о: AItem - обертка для работы с элементом. IsSelected - выделен элемент или нет. Initiator - Кто инициатор обновления выделения элемента. Если вы хотите добавить анимации в процесс выделения элемента, то ориентируйтесь на этот флаг. Если пользователь нажимает на элемент, то в этом параметре будет значение "User", в противном случае "Control". Добавлен новый демонстрационный пример: "Компоненты" -> "TfgCollectionView" -> "Ручное отображение выделения". TfgControlEnumerators Теперь доступны два энумератора по обходу дерева компонентов с возможностью управлять обходом. Оба энумератора доступы в классе TfgControlEnumerators. TfgControlEnumerators.Enum - Корень -> First..Last child TfgControlEnumerators.ReverseEnum - Корень -> Last..First child Например, обход по всем TfgEdit может выглядеть так: TfgControlEnumerators.Enum(Form, procedure (const AChild: TfgControl; var AAction: TfgEnumControlsAction) begin if AChild is TfgEdit then TfgLog.Debug(AChild.ToString); end); Помимо обычного обхода есть возможность делать контролируемый обход. Например, поиск поля ввода: TfgControlEnumerators.Enum(Form, procedure (const AChild: TfgControl; var AAction: TfgEnumControlsAction) begin if AChild is TfgEdit then begin TfgLog.Debug('Edit: ' + AChild.ToString); AAction := TfgEnumControlsAction.Stop; end else AAction := TfgEnumControlsAction.Continue; end); Через параметр AAction анонимной функции можно передать дальнейшее направление действие по обходу компонентов: Continue - Перейти к следующему компоненту; Discard - Перейти к соседнему компоненту; Stop - Остановить обход. Иконки компонентов Добавлены иконки для всех компонентов из групп "FGX: Standard" и "FGX: Layout". Улучшения 🙌 TfgFormManager Переработан менеджер форм TfgFormManager. Этот класс полностью отслеживает время жизни всех форм в FGX Native. Теперь все публичные методы не учитывают встроенные формы-фреймы, как раньше. Прочее Полностью переработана логика обработки нажатий кнопок. Теперь событие нажатии кнопки передается по всем формам/фреймам, начиная от ближайшей к пользователю. Раньше, в зависимости от момента создания и встраивания формы мог нарушаться порядок обработки событий кнопок. Добавлен новый демонстрационный проект показывающий пример работы с клиентами аутентификации (TfgAppleIdAuthenticationClient, TfgFacebookLoginAuthenticationClient😞 "Aутентификация" -> "Клиенты аутентификации". Исправление ошибок 🐛 FGX-SUPPORT-85 В определенных ситуациях со встраиваемыми формами, при нажатии на кнопку Back приложение могло не сворачиваться (Android). FGX-169 Не работает TBeacon компонент (Android). Утилита Java2Delphi не создавала выходную папку для размещений в ней сгенерированных заголовочных файлов. FGX-164 Вложенный в BottomSheet компонент TfgCollectionView не прокручивает список (Android). TfgLottieImage всегда выполнял один повтор анимации, если режим повторения отключен (Android). Первая сборка нового проeкта под Delphi 11.1 для Android всегда заканчивалась неудачей.
  15. Здравствуйте, уважаемые разработчики. В этом анонсе мы хотим познакомить вас с теми нововведениями, которые появятся в версии 1.14.0.0. Лицензии и коды активации Начиная с версии 1.14.0.0 библиотека будет содержать систему защиты, которая построена на кодах активации и файлах лицензий. Каждому клиенту с активной подпиской был выслан индивидуальный код активации на email, привязанный к его учетной записи. Если по какой-то причине вы не получили свой код активации - свяжитесь с нами любым удобным для вас способом. При старте Delphi с неактивированной версией библиотеки вам будет предложено ввести индивидуальный код активации. После ввода кода активации на сервере происходит привязка вашей лицензии к текущему компьютеру (необходимо наличие активного подключения к сети Интернет), библиотека получает индивидуальный лицензионный файл, который сохраняется на компьютере и однозначно подтверждает ваше право на использование библиотеки. После активации вы можете продолжать пользоваться продуктом как обычно. Информацию о статусе активации и сроке бесплатных обновлений вы можете найти в окне о Delphi: "Help" -> "About Embarcadero RAD Studio". Важные сведения, связанные с активацией библиотеки: Допускается 3 (три) активации библиотеки на разных физических машинах, исходя из усредненной схемы использования: домашний, рабочий компьютеры и одна активация на случай смены физических комплектующих вашего компьютера. Однако, если по каким-то объективным причинам у вас будет потребность в дополнительных активациях, вы всегда можете связаться с нами любым удобным для вас способом. Не используйте активацию на чужих/ненужных компьютерах. Активацию необходимо производить каждый раз после установки новой версии библиотеки. При этом каждая активация библиотеки на одной и той же машине не считается за отдельную активацию. При обновлении продукта или приобретении новой подписки, вам будет выслан новый код активации, который действует на новый срок. При этом старый код продолжает действовать для старых версий библиотеки, как и ранее. Увеличенные сроки действия подписки В ближайшее время мы планируем расширить тарифные планы путем добавления подписок на 6 месяцев и 1 год. Детали о тарифах будут опубликованы позднее. Идентификация через сервис Google Sign in Мы продолжаем пополнять поддержку новых сервисов идентификации клиентов. В версии 1.14.0.0 предлагаем новый компонент TfgGoogleSignInAuthenticationClient для идентификации клиента через сервис "Google Sign in". На текущий момент компонент реализован для Android платформы. TfgCollectionView и ручное выделение TfgCollectionView поддерживает разные режимы выделения элементов. Ранее при выделении элемента происходило визуальное отображение заднего фона всего элемента, согласно настройкам цвета SelectionColorName/SelectionColor. Однако, если вы используете в качестве элементов TfgCardPanel или другие виды контейнеров, то часто нужно выполнять изменение цвета не всего элемента, а только вложенного контейнера: Advanced_animation.mp4.1f5461e85ffcf2d14b43e8518ef918c3.mp4 В версии 1.14.0.0 мы добавили возможность управлять внешним видом выделения элементов в ручном режиме, что открывает практически безграничные возможности по кастомизации. Новое свойство TfgCollectionView.SelectionOptions.DisplayingMode позволяет указать каким способом нужно отображать выделение. Доступно два способа отображения: Auto - обычный (старый) режим. Компонент берет на себя ответственность по изменению внешнего вида выделенных элементов путем изменения цвета заднего фона элемента. (по умолчанию) Manual - ручной режим. В этом режиме компонент делегирует разработчику работу по изменению внешнего вида выделенных элементов. О необходимости выделить/сбросить элемент компонент сообщает с помощью нового события OnUpdateItemSelectionAppearance. В ручном режиме вам необходимо выполнить визуальное выделение или сброс выделения у переданного элемента в событии OnUpdateItemSelectionAppearance. Это событие вызывается каждый раз, когда списку необходимо обновить состояние элемента. Среди аргументов события передается информация о: AItem - обертка для работы с элементом. AIsSelected - признак состояния выделения элемента. AInitiator - Кто инициатор обновления выделения элемента. Если вы хотите добавить анимации в процесс выделения элемента, то ориентируйтесь на этот флаг. Если пользователь нажимает на элемент, то в этом параметре будет значение "User", в противном случае "Control". Типичный код ручного выделения может выглядеть так: procedure TFormMain.fgCollectionView1UpdateItemSelectionAppearance(Sender: TObject; const AItem: TfgItemWrapper; const AIsSelected: Boolean; const AInitiator: TfgItemSelectionInitiator); var BackgroundPanel: TfgCardPanel; PrimaryLabel: TfgLabel; begin // Извлекаем ссылку на фон и текстовую метку в элементе BackgroundPanel := AItem.GetControlByLookupName<TfgCardPanel>('background'); PrimaryLabel := AItem.GetControlByLookupName<TfgLabel>('primary'); // Определяем параметры цвета выделения фона панели и цвета текста. if AIsSelected then begin BackgroundPanel.BackgroundColorName := R.Theme.Color.PRIMARY_LIGHT_PRIMARY; PrimaryLabel.ColorName := R.Theme.Color.ON_PRIMARY_TEXT; end else begin BackgroundPanel.BackgroundColorName := ''; PrimaryLabel.ColorName := ''; end; // Опционально, можно выполнить любую анимацию if AInitiator = TfgItemSelectionInitiator.User then BackgroundPanel.Shake; end; Добавлен новый демонстрационный пример: "Компоненты" -> "TfgCollectionView" -> "Ручное отображение выделения". TfgControlEnumerators Теперь доступны два энумератора по обходу дерева компонентов с возможностью управлять обходом. Оба энумератора доступы в классе TfgControlEnumerators. TfgControlEnumerators.Enum - Корень -> First..Last child TfgControlEnumerators.ReverseEnum - Корень -> Last..First child Например, обход по всем TfgEdit может выглядеть так: TfgControlEnumerators.Enum(Form, procedure (const AChild: TfgControl; var AAction: TfgEnumControlsAction) begin if AChild is TfgEdit then TfgLog.Debug(AChild.ToString); end); Помимо обычного обхода есть возможность делать контролируемый обход. Например, поиск поля ввода: TfgControlEnumerators.Enum(Form, procedure (const AChild: TfgControl; var AAction: TfgEnumControlsAction) begin if AChild is TfgEdit then begin TfgLog.Debug('Edit: ' + AChild.ToString); AAction := TfgEnumControlsAction.Stop; end else AAction := TfgEnumControlsAction.Continue; end); Через параметр AAction анонимной функции можно передать дальнейшее направление действия по обходу компонентов: Continue - Перейти к следующему компоненту; Discard - Перейти к соседнему компоненту; Stop - Остановить обход. Маленькие приятности Теперь компоненты из групп "FGX: Standard" и "FGX: Layout" имеют свои оригинальные иконки, которые позволяют проще находить нужные компоненты в палитре компонентов.
  16. Hello Ahmed, We are working on public english version at this moment. And We will open sells for english version soon. I think it will happen in April.
  17. Скорее всего речь про круг с отображением знаков зодиаков при выборе даты и времени.
  18. Ok, Got it. I will prepare later patched classes.dex file for you for testing.
  19. Hello @Omar Zelaya, What is a purpose to add embarcadero libraries? core-common-2.0.1.dex.jar is not compatible with FGX Native. How did you add this library to project (via "FGX Android Libraries")? Thank you
  20. Authentication via Facebook Login was added in 1.13.6.0 for iOS.
×
×
  • Create New...