Jump to content

Yaroslav Brovin

Administrators
  • Posts

    2,584
  • Joined

  • Last visited

  • Days Won

    652

Everything posted by Yaroslav Brovin

  1. Thank you, I have updated my answer above.
  2. Ok, I see this issue is appeared only on Android 64-bit target. As I see installer uses wrong library path for Android 64-bit target on 10.4 only. It will be fixed in the next update. At this moment you can easily fix it: Open Tools -> Options -> Language -> Delphi -> Library. Select "Android 64-bit" target in the top comboBox. Open paths editor for "Library Path". Find "$(FGX)\Libs\Common\Android64\Debug\armeabi-v7a" path value and replace it on "$(FGX)\Libs\Common\Android\Debug\arm64-v8a". Save changes. That's it. Thank you
  3. Hello Megat, Could you attach dproj file (or sent me by direct message), which has this linker error on 10.4? Thank you
  4. Поддержка RAD Studio 10.4 добавлена в 1.4.1.0:
  5. Download : The distributive is available by request only. Release d ate: 2 July 2020 Changelog: * Added support RAD Studio 10.4
  6. Скачать: Релиз доступен только по запросу. Дата релиза: 02 июля 2020 Список изменений: - Добавлена поддержка RAD Studio 10.4
  7. ? Минут через 10 выложим хотфикс.
  8. The library is asynchronous in General. So if you use Sleep you freeze application main event loop. Please, consider using callbacks and events model for do it.
  9. Выложил 1.4.0.1 с исправлением TfgCheckBox и TfgRadioButton.
  10. Ждали лицензию на RAD Studio 10.4. Все работы по поддержке 10.4 уже провели. Сегодня мы наконец-то получили ключи. Завтра будет еще один релиз с поддержкой RAD Studio 10.4.
  11. Принял. Через 30 минут выложу релиз c хот фиксом.
  12. Hello Luke, Do you have demo sample? Thank you
  13. Download : The distributive is available by request only. Release d ate: 1 July 2020 Changelog: * Using CheckBox and RadioButton leads to application crash.
  14. Скачать: Релиз доступен только по запросу. Дата релиза: 01 июля 2020 Список изменений: * Использование CheckBox и RadioButton приводило к падению приложения
  15. Добрый день, Эта ошибка еще воспроизводится на 1.3.0.0?
  16. Исправлено в 1.4.0.0 для TForm, TfgLayout.
  17. Download : The distributive is available by request only. Release d ate: 1 July 2020 Changelog: ~ Loss of backward compatibility: - Regenerated Android Api headers files: Android.Api.*.pas. - The Migration instruction is available here: https://forum.fgx-native.com/topic/364-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-%D0%BC%D0%B8%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%81%D1%82%D0%B0%D1%80%D0%BE%D0%B3%D0%BE-android-%D0%BC%D0%BE%D1%81%D1%82%D0%B0-%D0%BD%D0%B0-%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9 * TfgForm: - The specified color in the design-time System SystemStatusBar.BackgroundColor did not change the color in the runtime. Fixed. * Android-Delphi bridge: - The principle of operation of the bridge has been changed. Now the class wrapper is only used for accessing class members and creating instances of Java classes. - Now all Java object wrapper methods accept an interface type, not a class type, as was previously the case. - The Migration instruction is available here: https://forum.fgx-native.com/topic/364-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-%D0%BC%D0%B8%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%81%D1%82%D0%B0%D1%80%D0%BE%D0%B3%D0%BE-android-%D0%BC%D0%BE%D1%81%D1%82%D0%B0-%D0%BD%D0%B0-%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9 * Android Api: - New headers for some Android Api classes were added. Extended java.lang.Class methods list and added new headers for android.widget.NumberPicker. - All headers files were translated on using Delphi interfaces. - The old deprecated headers are not compatible with 1.4.0.0. - FGX.Helpers.Android were extended with new set of helpers methods for quick conversion Delphi types and Java types. - Existing methods set were extended with new set of methods, which works with array types. - All deprecated methods in Android API now are marked as deprecated and includes information about Android API version, when method was deprecated. * TfgControl.HitTest: - #178 [HitTest] HitTest is broken https://gitlab.com/y.brovin/fgx/-/issues/178 - #497 CardPanel OnTap is invoked, when HitTest=false and not invoked, when HitTest=true https://gitlab.com/y.brovin/fgx/-/issues/497 - #367 [TfgCardPanel] Event OnTap is invoked, when HitTest = False https://gitlab.com/y.brovin/fgx/-/issues/367 - #8 [HitTest] [OnTap] HitTest is not accounted in child controls https://gitlab.com/y.brovin/fgx/-/issues/8 - OnTap on form https://forum.fgx-native.com/topic/86-ontap-%D0%BD%D0%B0-%D1%84%D0%BE%D1%80%D0%BC%D0%B5/ - HitTest doesn't work https://forum.fgx-native.com/topic/341-hittest-%D0%BD%D0%B5-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82/ * Localization: - Now The assets designer generates localized Assets.Consts.pas file version. Migration instruction from 1.3.0.0 -> 1.4.0.0:
  18. Скачать: Релиз доступен только по запросу. Дата релиза: 01 июля 2020 Список изменений: ~ Потеря обратной совместимости: - Переработана заголовочные файлы Android API: Android.Api.*.pas. - Инструкция о миграции доступна здесь: https://forum.fgx-native.com/topic/364-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-%D0%BC%D0%B8%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%81%D1%82%D0%B0%D1%80%D0%BE%D0%B3%D0%BE-android-%D0%BC%D0%BE%D1%81%D1%82%D0%B0-%D0%BD%D0%B0-%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9 * TfgForm: - Заданный цвет в design-time SystemStatusBar.BackgroundColor не менял цвет рантайме. Исправлено. * Android-Delphi мост: - Изменен принцип работы моста. Теперь классовая обертка используется только для доступа к классовыми членам и создания экземпляров Java классов. - Теперь все методы обертки джава объектов принимают интерфейсный тип, а не классовый, как было ранее. - Инструкция о миграции доступна здесь: https://forum.fgx-native.com/topic/364-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-%D0%BC%D0%B8%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%81%D1%82%D0%B0%D1%80%D0%BE%D0%B3%D0%BE-android-%D0%BC%D0%BE%D1%81%D1%82%D0%B0-%D0%BD%D0%B0-%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9 * Android Api: - Добавлены обертки для новых классов из Android API. В частности расширены методы java.lang.Class и добавлены обертка для android.widget.NumberPicker. - Все заголовочные файлы переведены на использование интерфейсов. - Старые заголовочные файлы больше не совместимы с 1.4.0.0. - Расширен набор вспомогательных методов в FGX.Helpers.Android для быстрой конвертации Delphi типов в Java и наоборот. - Расширен набор методов для уже существующих типов, работаюших с массивами. - Теперь все устаревшие методы Android API помечены, как deprecated и содержат информацию о версии Android, когда метод стал устаревшим. * TfgControl.HitTest: - #178 [HitTest] Поломался HitTest https://gitlab.com/y.brovin/fgx/-/issues/178 - #497 CardPanel OnTap срабатывает при HitTest=false и не срабатывает при HitTest=true https://gitlab.com/y.brovin/fgx/-/issues/497 - #367 [TfgCardPanel] Отрабатывает событие OnTap при HitTest = False https://gitlab.com/y.brovin/fgx/-/issues/367 - #8 [HitTest] [OnTap] Не учитывается свойство HitTest у дочерних компонентов при работе OnTap https://gitlab.com/y.brovin/fgx/-/issues/8 - OnTap на форме https://forum.fgx-native.com/topic/86-ontap-%D0%BD%D0%B0-%D1%84%D0%BE%D1%80%D0%BC%D0%B5/ - HitTest не работает https://forum.fgx-native.com/topic/341-hittest-%D0%BD%D0%B5-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82/ * Локализация: - Теперь дизайнер ресурсов генерирует локализованную версию Assets.Consts.pas файл. Инструкция по миграции с 1.3.0.0 на 1.4.0.0:
  19. Исправлено в 1.4.0.0.
  20. Всем доброго дня! Как и обещал ранее, перед релизом 1.4.0.0 выкладываю инструкцию о миграции использования старого Android-Delphi моста на новый в 1.4.0.0. Это руководство актуально тем разработчикам, которые используют Android Api в своих проектах. В этой статье я рассмотрю только те аспекты в работе моста, которые изменились. По большей части изменения были необходимы только в свете поддержки RAD Studio 10.4, в которой была полностью удалена поддержка модели памяти ARC. 1. Создание Java объекта: Было: var Intent: TJIntent; Intent := TJIntent.Create; Стало: var Intent: JIntent; Intent := TJIntent.Create; Все объявления переменных, атрибутов и тд должны быть теперь именованы без префикса "T". TJActivity -> JActivity. 2. Передача Java объектов через Java интерфейс: Было: // Декларация метода. Принимает атрибут интерфейсного типа CharSequence. TJTextView.setError(const AArg0: JCharSequence); // Java cтрока TJString реализует интерфейс JCharSequence. Поэтому передача идет напрямую (в старой версии моста). View.setError(StringToJString(Control.Error)); Стало: // Декларация метода. Принимает атрибут интерфейсного типа CharSequence. TJTextView.setError(const AArg0: JCharSequence); // Теперь обертка Java cтроки TJString НЕ реализует явно интерфейс JCharSequence. Поэтому необходима явная конвертация JString -> JCharSequence View.setError(TJCharSequence.Wrap(StringToJString(Control.Error))); // Или можно воспользоваться хелпером из FGX.Helpers.Android.pas View.setError(StringToJCharSequence(Control.Error)); 3. Работа с Java массивами: При создании экземпляра Java массива (TJavaArray<T>) вся работа теперь осуществляется через интерфейс IJavaArray<T>. Было: var Points: TJavaArray<Single>; Points := TJavaArray<Single>.Create(0); FCanvas.drawLines(Points, FStroke); Стало: var Points: IJavaArray<Single>; Points := TJavaArray<Single>.Create(0); FCanvas.drawLines(Points, FStroke); 4. Работа с Java-листенерами: Если вы реализовывали свои листенеры через наследование класса Java.Bridge.TJavaLocal, то в 1.4.0.0 листенеры теперь поддерживают счетчик ссылок через Delphi IInterface. Это значит, что при создании листенера, его необходимо сохранять в переменную/поле интерфейсного типа, а не объектного. Было: TfgAndroidCameraStateListener = class(TJavaLocal, JCameraStateListener) private [Weak] FCamera: TfgAndroidCamera; public constructor Create(const ACamera: TfgAndroidCamera); { JCameraStateListener } procedure onClosed(const AArg0: JCameraDevice); procedure onDisconnected(const cameraDevice: JCameraDevice); procedure onError(const cameraDevice: JCameraDevice; const errorCode: Integer); procedure onOpened(const cameraDevice: JCameraDevice); end; var FStateListener: TfgAndroidCameraStateListener FStateListener := TfgAndroidCameraStateListener.Create(Self); FStateCallback.setListener(FStateListener); Стало: TfgAndroidCameraStateListener = class(TJavaLocal, JCameraStateListener) private [Weak] FCamera: TfgAndroidCamera; public constructor Create(const ACamera: TfgAndroidCamera); { JCameraStateListener } procedure onClosed(const AArg0: JCameraDevice); procedure onDisconnected(const cameraDevice: JCameraDevice); procedure onError(const cameraDevice: JCameraDevice; const errorCode: Integer); procedure onOpened(const cameraDevice: JCameraDevice); end; var FStateListener: JCameraStateListener FStateListener := TfgAndroidCameraStateListener.Create(Self); FStateCallback.setListener(FStateListener); В противном случае, экземпляр листенера FStateListener будет удален сразу же после вызова FStateCallback.setListener(FStateListener); Что в свою очередь приведет к последующим падения приложения. Так как сработает механизм подсчета ссылок Delphi интерфейсов. 5. Конвертация string <-> JString: До RAD Studio 10.4 мобильные компиляторы поддерживали добавление операторов неявного преобразования. Это в свою очередь позволило нам реализовать автоматическую конвертацию "на лету" Delphi string <-> Java JString. В 10.4 эту возможность убрали вместе с ARC, так как неявное преобразование реализуется через ARC. Поэтому теперь нужно явно вызывать преобразование строк через StringToJString и JStringToString: Было: TjUri.parse('tel:+'); Стало: uses FGX.Helpers.Android; TJUri.parse(StringToJString('tel:+')) Это все изменения, которые необходимо сделать.
  21. Если какого-то Андроид апи не хватает, я всегда могу его добавить в ближайший релиз. только дайте мне знать, чего не хватает.
×
×
  • Create New...