Jump to content

John van de Waeter

Members
  • Content Count

    53
  • Joined

  • Last visited

Posts posted by John van de Waeter


  1. Hi All,

     

    I use Metal in a iOS FMX project like:

     

     if TUIScreen.Wrap(TUIScreen.OCClass.mainScreen).nativeScale=TUIScreen.Wrap(TUIScreen.OCClass.mainScreen).Scale
       then
        begin
          GlobalUseMetal:=true; 
          GlobalEventDrivenDisplayUpdates:=false;
          GlobalPreferredFramesPerSecond:=60;
        end;

     

    I use Media-Camera action TakePhotoFromCamera OnDidFinishTaking and assign the bitmap to a TImage.Bitmap.

     

    This used to work okay, but now on Delphi11 it produces an image in which Red and Blue are interchanged.

     

    Same thing happens if I paste an image from the clipboard.

    Same thing happens if I get an image from the gallery.

     

    Image.Bitmap.Loadfromfile('animage.jpg') and dito .png works okay.

     

    If I turn off Metal, all is okay. Tested on iPhone5 and iPhone8.

     

     

    Any thougts?

    tia, John

     


  2. Hi All,

     

    My PC is always on. Except for today, I needed to check hardware and had to coldboot my computer.

    Ofcourse there were some windows updates that jumped in. Ok, Ok, All Ok.

    Windows booting, all seems okay, I start my D11-FMX project, F9 execute

    The project asks a server for updated info via HTTP. Via an idHttp.

    That has worked for years flawlessly, but now timed out.

    Weird. Browser worked ok, ip4 and ipv6 enabled, all seems ok.

    Compile and run on Android, everything works as expected. Same for iOS.

     

    I took a USBdrive and copied the Windows executable to a laptop that had not been switched on for weeks. On the same LAN.

    Everything worked like a charm.

     

    So, it's likely something in my computer.

    Switched off all apps/internet and whatever protections are visible in the windows settings, rebooted several times.,

    To no Avail.

    Windows updates maybe?

    Uninstalled update KB5007186

    Everything works again!

     

    I cannot look inside the updates, no idea what's going on,

     

     

     


  3. Dave, Chris,

     

    I've first checked the Classes.dex with the jadx-tool, and all info I could find was about Billing version 4.0, so this looked okay.

    The Check in the Entitlements list was already there.

    Then I tried a new build to upload to the playstore with the meta-data line Dave mentioned included, and Voila, accepted without the warning! 🙂

     

    I think you'd better file it to QC Dave, that will definitely draw more attention...

    Thanks for the help guys!

     

    John


  4. Hi Chris,

    I tried.

    From a 10.4.2 project, I copied the sources to a new Alexandria directory.

    - removed all Android and iOS related files

    - removed the DProj and .dsk files

    - opened in D11`, reverting all library files to default

    Compile, install, run, test: NO PROBLEMS

    Upload to Google: Accepted, but with the same warning about the Billing Services: must use version 3 or higher.
    Appearantly my app doesn't meet the november 1 requierments... In the Libraries-section of the project I see billing-4.0.0.dex.jar though.
    Any idea how/where else to check for the correct Billing library?

     


  5. Hi All,

    I have a nice Android app, developed in D 10.4.2, which includes In-App purchases.
    It runs on Android 6 and above.

    1. The new Delphi 11 says the Android app will run on Android 8 and above.

    This would be bad news for my cutomers with Android 6 and 7

    2. Google says per november 2021 the new app billing service needs to be used.
    Unless this new app billing service could be used by Delphi 10.4.2, I'm forced to use D11 but that would be bad news for (see above).


    It would be nice if either
    - D10.4.2 could handle te new Billing Service, so I could service those oldAndroid clients for say another year
    or
    - D11 can be used to create Android apps for Android 6 and 7. I guess there's a little more to it then just changing the minSDKVersion?

     

    Any tips? Greatly appreciated!
    tnx,
    John

     


  6. Hi All,

     

    In a FMX IOS project, I turned on Metal to have a much more smoothly scrolling scrollbox.

     

    In project source:

     

    if TUIScreen.Wrap(TUIScreen.OCClass.mainScreen).nativeScale=TUIScreen.Wrap(TUIScreen.OCClass.mainScreen).Scale

     then
       begin
          GlobalUseMetal    :=true;
          GlobalEventDrivenDisplayUpdates := true;
          GlobalPreferredFramesPerSecond := 60;
        end;

     

    Works great.

     

    But in another part of the same project, I have image1.bitmap.savetofile(docpath+'filename.png')

     

    This works okay if Metal is not used, but crashes if Metal is used.

     

    Delphi 10.4.1

     

    Is this a bug or am I missing something?

     

    tia,

    John


  7. Hi All,

     

    When a user goes outdoor with his phone, network-connections may switch from WiFi to Mobile data.

     

    There's no problem when both networks are ipv4 or ipv6, but sometimes the WiFi is ipv6 and the Mobile data connection is ipv4, or vice versa.

    In that case, putting a hostname (in idUDPclient or idHttp) between square brackets (coming from ipv6) results in a "connection refused".

     

    Now this https://delphiworlds.com/download/libreachability-a-for-arm64/ does a nice job. It tells me that the networks has switched, so I can take appropriate action and check for ipv4 or ipv6 connection.

    Works great on Android 32 and 64, and probably IOS 32 bit (I cannot test).

    However, the library for IOS 64 bit (libReachability64) doesn't work anymore for IOS 64 bit. Compiling fails.

     

    Does anyone know if this library is updated so it can be used in Delphi 10.4.1 ?

     

    Or another way to be informed when network changes?

     

    tia!

    John

     

     


  8. Most of my problems with deploying iOS apps disappeared when I:

    - deleted the IOSDevice directory

    - deleted the Launchscreen.TemplateiOS,

    - deleted Entitlement.TemplateiOS.xml

    - made sure every icon in project/Options has its own file

     

    and rebuild

     

    Not sure if this helps you though... I'm no iOS guru...


  9. Found it, I guess...

     

    In System.Android.Sensors,  class procedure TAndroidGeocoder.GeocodeReverseRequest

     

    The FGeoRevAddress was filled with data from the previous request.

    The code only fills the fields that are empty. So after one request, the fields where not empty and new data never got into the fGeoRevAddress.

     

    I applied just a quick fix for what I needed (city, postalcode, adminarea)

    of course this needs a more proper solution... 🙂

     

     My quick fix:

     else
      begin
        Addr := FGeoRevAddress;
    
        Addr.adminarea:='';    // <--- added
        addr.postalcode:='';   // <--- added
        addr.locality:='';     // <--- added

     

     

     


  10. Hi Rollo62,

    It's not a matter of UI-refresh.

    I added a counter to the callback of the reverse geo lookup. It counts and it displays the counter.

    Like City=Amsterdam 1

           City = Amsterdam 2

    ....

    The lookup is executed, just returning the same result every next time (on Android).

     

     


  11. Not sure if this is of any help, but I had similar problems.

     

    After several unsuccessful attempts I tried this:

     

    - Deleting ALL IOS stuff from the sourcedir (templates, directory iosdevice64, directory launchscreen.Template)

    - Deleting ALL stuff regarding my app from the Mac

    - Setting up newly all Icons in Projects/Options making sure that every icon (splash, app, launcher) have their own file

     

    The last one in bold!. I cannot look behind the scenes where delphi collects the files for the deploy-list, but it seemed to me that that it would not add a source file if it was already there.

     

    Lazy as I am, I used the same 1024x1024 for several images in the project/options/icons list. Only 1 appeared in the deploy-list.

    When I gave every icon its own file, they all appeared in the deploy list.

     

    - Rebuild, worked!

     


  12. Well, actually because I always doubt myself, I tried this demo on Android.

     

    Start it, enable LocationSensor. Works, adress info is correct.

     

    Leave the demo app running, start walking a couple of hundred meters.

     

    The location coordinates and map synchronizes with the position, the current address does not.

     

    Stop LocationSensor, start LocationSensor: still old address.

     

    Stop app, restart app, address info ok.

     

     


  13. Pat,

    Still, no, no LocationSensor involved. I already have coordinates.

    I just want to lookup (georeverse) the postalcode from a set of lat/long.

     

    Meta code:

    1: Input lat, long;

    Find postalcode using georeverse

    Works on both iOS and Android

    2: Input another different set of lat/long;

    Find postalcode;

    Works on iOS, but gives result of first lookup (1) in Android.

     

     

×