-
Content Count
277 -
Joined
-
Last visited
-
Days Won
2
Everything posted by Yaron
-
I thought I may try the web installer as that worked for me well under a VM with the beta version, but since I originally installed through the ISO on my real PC, it warns me that the registry settings are incompatible and that I should use the ISO.
-
I uninstalled everything (including java) and installed clean from the ISO, at the end it was written to click finish and the microsoft sdk installer will execute, but it didn't. I then tried to compile an Android application that compiled just fine with the 10.3.3 beta and I get this: Do I need to install Java separately from the Delphi ISO? Under "c:\Program Files\Java\" I can see "jdk1.8.0_60" and "jre1.8.0_60" populated folders that were created by the Delphi installer.
-
Recently upgrading to Android 10, I notice a few weird inconsistencies with the various App icons. It seems that the icon embedded in the App's APK is either ignored (replaced by an icon from an icon pack depending on whichever launcher is in use), shrunk down and fitting into some shape (circle, round-rect, etc) and even when shrunk into a shape, some icons are circle-cropped while other are just squares (with the embedded icon being either a square or a round-rect). Is there a manifest entry that lets the launchers know I just want my app's icon to display as-designed?
-
I doubt it will override the 64bit version, they request the version be the same to prevent people from releasing mismatched versions by accident.
-
Then using Android Tools, how should we configure an emulator? I assume none of the x86 images would work (e.g. "Google APIs Intel x86 Atom_64 System Image"). This leaves the latest ARM system image, which only supports Android 7.1.1.
-
This is probably not high priority, but I thought I'd make a note of it, If the drive running the application version of a mars project is removed, trying to close the app crashes, even if the drive is re-attached before closing. I suspect it's due to the file handles being invalidated. It happens to me because I debug mars from an encrypted drive that is automatically detached after several hours.
-
Regardless of the upcoming version, you must include both 32bit and 64bit APK files otherwise your app will not work on some devices. I'm not sure if the play store allows you to upload separate APK files or you must upload an AppBundle.
-
So far I tried the following emulators: 1. Nox 6 (Android 7.1.x) 2. BlueStacks 4 (Android 7.1.x) 3. VirtualBox with Android v8.1 64bit image (https://www.osboxes.org/android-x86/) For some strange reason, none of them will even run the 32bit versions of a blank Delphi cross-platform app. This is on a clean install of Delphi with a clean install of a fully patched Win10 running in a VM. I guess my only course of action right now would be to buy a somewhat high-end device to be able to test 64bit development, but I would welcome any suggestions of a cheaper course.
-
Are you running Nox with the Android 7 image? By default Nox will run with older versions of Android.
-
I wouldn't be surprised if the tablet has 6GB but only 4GB is addressable. Chinese tablets can be funny that way, like them marketing the resolution as 1900x1200, while in reality it's 1280x800 but with a scale factor that makes it appear to be 1900x1200.
-
Last year, I bought a cheap Chinese (CARBAYTA S119) tablet, 6GB RAM, Android 9 to verify that my apps work on the latest Android version and to play with tablet layouts. It has a 64bit octa-core chip, but still runs Android 32bit. Also, My Galaxy Note 4 runs Android 6.0.1 32bit, so the version of Android doesn't seem to matter either.
-
Even though I have a subscription, I did not receive an invitation and now I have a quick Android project that I wanted to beta-test through the play store and... impossible. While this is a small hurdle now, there are projects that are due in a month or two that I simple can't release, it doesn't seem like google is accepting exemptions on new projects.
-
I'm trying to create a smooth UI experience by loading a webpage in the background and only showing it later on when a user clicks a button in the app. To load the webpage I'm using: TWebBrowser.LoadFromStrings('<html><body style="background-color:#2f2f2f"></body></html>',''); However, it seems that the webpage is not rendered if TWebBrowser is not visible, resulting in a white page showing up instead of my HTML. So I figured if this is a limitation, I'll just have TWebBrowser visible and cover it by a TRectangle, however that didn't work either as it seems (at least under windows) that the TWebBrowser control is always on-top. I also tried to placing the TWebBrowser control into a TPanel to see if that would allow it to be overlaid by other components, but it didn't make a difference. Finally I tried utilizing the "OnDidFinishLoad" event, but it didn't help either, a white page would still flicker for a split second before the page was rendered. Is there some other trick I haven't thought of that will allow me to first render the page in the background and only then show it so I don't have a flashing white box appear for a second before the page renders?
-
I just looked at FGX, it doesn't look like it supports an alternative to TWebBrowser. And I would like to stick with Delphi, I have developed a lot for it and have a lot of pre-built support code that allows me to quickly prototype. Otherwise I would have already moved to ReactJS, Kotlin or Flutter as you mentioned.
-
How does Flutter relate to Delphi?
-
As part of a service I'm writing using mars, I'm exposing a sign-up page for users to sign up to the service. However, I want to prevent attacks on the service by bots and possibly detect multiple accidental clicks on the submit button. Right now the way I'm considering doing this is by keeping a list of IP addresses and verifying that only one sign-up per time-frame is allowed. I have two questions: 1. Using MARS, how do I read the client's IP address? 2. Are there other recommendations for defending mars?
-
Protecting mis-use of server resources
Yaron replied to Yaron's topic in MARS-Curiosity REST Library
However, the above did not fully solve my problem, it would have been better if there was a way to get the IP from within functions that are called by mars in Server.Resources, otherwise I'm not sure how to connect the IP from Server.Ignition to an action in Server.Resources in a multi-threaded environment. -
Protecting mis-use of server resources
Yaron replied to Yaron's topic in MARS-Curiosity REST Library
I believe I figured it out, here's how to show a pop-up dialog with the IP address: In "Server.Ignition.pas" CreateEngine, I added : FEngine.OnBeforeHandleRequest := function (AEngine: TMARSEngine; AURL: TMARSURL; ARequest: TWebRequest; AResponse: TWebResponse; var Handled: Boolean ) : Boolean begin Result := True; ShowMessage(ARequest.RemoteIP); end; And also had to add "MARS.Core.URL, Web.HTTPApp" to the "uses" section. -
Protecting mis-use of server resources
Yaron replied to Yaron's topic in MARS-Curiosity REST Library
I'm using ISAPI, not Indy for the server-side code, so I can't get the IP the way you suggest. I'm hoping for a more generic approach that will work in all MARS output modes (stand-alone application EXE, ISAPI, etc) -
Maybe one of the MVPs knows a way to do this by leveraging the underlying java code? I need the UI to look sleek and a blank white screen transition sorts of gives a clunky vibe.
-
I am using Rio, doesn't seem to help with my issue.
-
You should also be aware that disabling hardware acceleration can harshly impact battery usage for your app.
-
I'm not sure you can really disable hardware acceleration as FMX for Android relies on the GPU canvas which is OpenGL hardware accelerated. But seriously though, OpenGL hardware acceleration has been built into smartphones for well over 5 years, so even old phones have it. Not to mention you would have to use Delphi v10.2 or older to even support versions of Android older than v5 and you won't be able to upload these apps into the app store because they don't support the Android SDK google is requiring to upload new apps to the store (not to mention the 64bit issue).
-
I also tried having the TWebBrowser visible off-screen by calling "WebBrowser.SetBounds(clientWidth,0,clientWidth,clientHeight)" and then returning it on-screen when the user clicks a button. On windows it works well enough (no white flash) but on Android I still see it flashing white for a split second.
-
Since I've now reached a point where I must take action, I've done as you suggested, hopefully the process will be speedy.