Jump to content

alejandro.sawers

Members
  • Content Count

    15
  • Joined

  • Last visited

Posts posted by alejandro.sawers


  1. 3 hours ago, Borni said:

    with the return key in a tmemo it crahses with the message

    java.lang.indexoutofboundsexception

     under Android32/64.

    A quick test on a Delphi 12.2 blank FMX app with only a TMemo, compiled for Android 64, running on an Android 13 device doesn't show such error.

    Maybe test with a blank project to discard issues with your Delphi/Android SDK installation.

    • Like 1

  2. I think the best you could have done is to post in advance what you have tried to do and how far you reached on your implementation, along with technical details as what Delphi version you use, if you test on device or simulator, etc.

    Anyway the best you could do to find the culprit on your own is to test with the Kastri supplied demo and/or a blank project, then:
    - If that works check what is different between the working project and your old project.

    - If that doesn't work then the issue could be elsewhere (Firebase project config, APN certificates, FCM backend giving errors, etc.)


  3. While this could frustrate some users, the truth is that approximate location access is not suited for most geolocation applications/features. Now if the user has given a incorrect location level access to the app (probably by mistake) it should inform the user so the permission level is corrected before accessing the features.

     

    Now for Delphi FMX apps this is trivial in Android as there are two separate permissions for approximate and precise location access and a simple query helps to determine the access level granted. The culprit is iOS, as since iOS 14 the accuracy authorization level is separated from the location authorization status itself, and apparently there is no way to access such value from user code (accuracyAuthorization is a CLLocationManager instance property but such instance is buried on the implementation section of System.iOS.Sensors.pas).

     

    So before patching this file and fighting the compiler about dependent units "compiled with another version of...", all without knowing if this would work at the end, I would like to know if somebody found another way to achieve this.


  4. 21 hours ago, terran said:

    where can it be reported (to) this thing?

    On the new portal, more info here.

    21 hours ago, terran said:

    it doesn't contain anything except a single page. where can i read existing reports?

    The launch was far form ideal. At the beginning it was not possible to view other people's reports, but I think they have improved the site since then because existing reports by others are now visible.

    21 hours ago, terran said:

    has anyone done this, and had a result?

    Well, on the old portal I submitted a total of 6 bugs of which 5 were resolved and one was related to a third-party component. Maybe I've been just lucky, because many people have their tickets open for years or closed as fixed when in reality the issue persists (as the submitter claims it). Report this anyway, and attaching a minimal project where the problem can be consistently reproduced will help them to quickly find a fix (to be delivered on the next release, if you're lucky).

    • Like 1

  5. iPhone X with iOS 16.7.8 here, light themed

    Delphi 12.1 (with patch 1), Xcode 15.4, Skia enabled, target iPhoneOS 17.5.

    Blank FMX apps runs ok

     

    iphoneX.thumb.jpeg.a1398945c3897b82ecc37d248ddebce6.jpeg

     

    A possibility is that a specific component in your app fails under this specific configuration. It would be great if you can work closely with your customer to pinpoint the issue, by getting specific details of the device (iOS version, theme, settings) or to offer test build variations through TestFlight.


  6. 12 hours ago, Dave Nottage said:

    is there some reason you need to target API level 35?

    Not right now, but I know sometimes Embarcadero can miss things like these and put us in a hurry eventually.

    12 hours ago, Dave Nottage said:

    you could use code from Kastri to implement a workaround

    I tried this with the same FMX app (I had to put a Client aligned TLayout for Padding to work and then the TButton inside it) and voila:

     

    android15_padding.thumb.png.08c42ea72e932b51d50c3bb61cde1478.png

     

    Thanks Dave. This should work until an official fix is given.

    • Like 2

  7. When targeting Android 15 (API level 35) the system now enforces edge-to-edge UI. As described in the documentation apps not designed to be edge-to-edge could expect issues with app content being hidden by the status bar, nav bar, etc.

    FMX Android apps seem to be impacted. Here is a test on a blank Delphi 12.0 Android app: when targeting Android 14 (first image) the UI is ok, but when targeting Android 15 (second image) the sample button gets behind the status bar and is not clickable.

     

    target_android14.thumb.png.a8de402d297c40c80817ece39ec79ea6.pngtarget_android15.thumb.png.7a6a03a2765d08ba3a59f872693b26d6.png

     

    Effectively a breaking change. The official docs give instructions on how to make an app edge-to-edge compliant, however I'm not sure how these instructions could be applied to FMX apps (I'm not really well versed on native Android development) or if a workaround exists by patching .pas source files. I hope the latter is possible.

     


  8. From the official docs:

    Quote

    Beginning with Android 15, Android supports devices that are configured to use a page size of 16 KB (16 KB devices). If your app uses any NDK libraries, either directly or indirectly through an SDK, then you will need to rebuild your app for it to work on these 16 KB devices.

    Given that FMX Android apps are served as native code I suspect this change could mean something that Embarcadero should check carefully. Luckily the same page offers links on how to test an app on a 16 KB environment (emulator), so I did with a blank FMX app and...

    libc  Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x7d7f34f39000 in tid 5935

    Yes, the app crashes at startup, but it works on a non-16 KB emulator. Maybe is too early to tackle this problem yet (no 16 KB devices on the wild afaik), but given that this change could be complex (update NDK?) and take a while (Delphi 13?) I hope there is something devs can do to fix this on our own with what we have at hand (i.e. Delphi 12.x).

     

    As a side note I tested this on an Android emulator running on a Mac with M2 chip as ARM emulation is no longer possible on Windows.

    • Like 1
×