Age | Commit message (Collapse) | Author |
|
|
|
Improve input handling on Android
|
|
On mobile platforms virtual keyboards take up significant amount of
screen space and UI containing a text box may need to be adjusted
after the keyboard appears to keep the text box visible to user. This
commit adds a way to obtain virtual keyabord height so that controls
are aware of how much they need to move.
|
|
- Dispatch input immediately as it comes, instead of delaying it to the
next step().
- Fix text box input handling when caret is at the middle of the text.
- Minimize queueEvent calls on Java side.
|
|
|
|
The changes include work done to ensure that GDNative apps and Nim
integration specifically can run on Android. The changes have been
tested on our WIP game, which uses godot-nim and depends on several
third-party .so libs, and Platformer demo to ensure nothing got broken.
- .so libraries are exported to lib/ folder in .apk, instead of assets/,
because that's where Android expects them to be and it resolves the
library name into "lib/<ABI>/<name>", where <ABI> is the ABI matching
the current device. So we establish the convention that Android .so
files in the project must be located in the folder corresponding to
the ABI they were compiled for.
- Godot callbacks (event handlers) are now called from the same thread
from which Main::iteration is called. It is also what Godot now
considers to be the main thread, because Main::setup is also called
from there. This makes threading on Android more consistent with
other platforms, making the code that depends on Thread::get_main_id
more portable (GDNative has such code).
- Sizes of GDNative API types have been fixed to work on 32-bit
platforms.
|
|
|
|
|
|
- Fixes some single-dash leftovers that were missed in the previous commit
- Reorder the help output for clarity, and document missing options
- Drop obsolete options: --noop, --pack, --editor-scene, --level, --import, --import-script, --no-quit
- Improve error message on malformed arguments and do not display help on error
- Always use long form of arguments when starting a new Godot process from C++, for clarity and easy grepping
- Cleanup obsolete code here and there
|
|
main.cpp and help cleanup"
|
|
- Fixes some single-dash leftovers that were missed in the previous commit
- Reorder the help output for clarity, and document missing options
- Drop obsolete options: --noop, --pack, --editor-scene, --level, --import, --import-script, --no-quit
- Improve error message on malformed arguments and do not display help on error
- Cleanup obsolete code here and there
|
|
(Lot's of bloat accumulated, so it was time for clean up.)
-Made EditorSettings and ProjectSettings search more useful (search in sections too)
|
|
getting sku detail runs only if mod != 0 which means querying 20*n will not get sku details.
referenced from https://github.com/googlesamples/android-play-billing/blob/master/TrivialDrive/app/src/main/java/com/example/android/trivialdrivesample/util/IabHelper.java#L1029-L1062
|
|
Fix possible memory leak for Android and update gradle
|
|
/godot_dev/platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloaderService.java:575: Error: The WIFI_SERVICE must be looked up on the Application context or memory will leak on devices < Android N. Try changing to .getApplicationContext() [WifiManagerLeak]
mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Explanation for issues of type "WifiManagerLeak":
On versions prior to Android N (24), initializing the WifiManager via
Context#getSystemService can cause a memory leak if the context is not the
application context. Change context.getSystemService(...) to
context.getApplicationContext().getSystemService(...).
1 errors, 0 warnings
|
|
|
|
|
|
|
|
From https://github.com/lucasdemarchi/codespell
|
|
Android seems to be working again!
|
|
|
|
They do not play well with clang-format which aligns the `//` part
with the rest of the code block, thus producing badly indented commented code.
|
|
|
|
That year should bring the long-awaited OpenGL ES 3.0 compatible renderer
with state-of-the-art rendering techniques tuned to work as low as middle
end handheld devices - without compromising with the possibilities given
for higher end desktop games of course. Great times ahead for the Godot
community and the gamers that will play our games!
|
|
|
|
Fix #7014
|
|
Improve android payment
|
|
|
|
|
|
|
|
|
|
Fix #5306
|
|
Tested IAP function on device.
|
|
|
|
Also removes a couple wrong Godot headers from third-party source files.
|
|
Supporting Android API 23 (Android 6.0)
|
|
|
|
|
|
using ``NotificationCompat`` in ``support-v4`` library will increase APK filesize a little bit, but it guarantees to run OK with API 4+
tested with API 19 and 23 devices
|
|
If we update build gradle to use ``compileSdkVersion 23``,
``org.apache.http`` package causes error. (issue #4711)
We need to use ``useLibrary 'org.apache.http.legacy'`` to solve this problem.
To use ``useLibrary``, we need to use latest gradle also.
And now, we faced another problem with ``APK Expansion`` java sources.
```
/platform/android/java/src/com/google/android/vending/expansion/downloader/impl/DownloadNotification.java
137 : mCurrentNotification.setLatestEventInfo(mContext, mCurrentTitle, mCurrentText, mContentIntent); // causes error
```
So, some of APK Expansion java sources are updated by referencing commits from https://github.com/danikula/Google-Play-Expansion-File
And dropped V3CustomNotification.java which was for android 3.0, since godot supports android 14 (4.0) above officially.
Unfortunately, another problem, The 'MissingTranslation' error was occurred.
So, build.gradle is updated to use ``disable 'MissingTranslation'``
Additionally, I updated ``buildToolsVersion``, ``targetSdkVersion`` to latest version.
I tested APK Expansion funtionality on Android 6.0 (Nexus 9, Nexus 6p) and Android 4.4 (Galaxy Note 2) with Google Developer console.
|
|
|
|
|
|
|
|
org.godotengine.godot
|
|
-Added new Gradle build system, as it is the required build system
|
|
|
|
FBOs so all 2D shader effects should now work in every single Android device.
|
|
|
|
GodotPaymentV3 currently consumes purchased item right after purchasing.
But, some in-app item should not consume like "remove ads permanently"
So, I added "setAutoConsume(boolean)", "requestPurchased()",
"consume(sku_string)".
AutoConsume is true by default as before.
usage:
func _ready():
var payment = Globals.get_singleton("GodotPayments")
payment.setPurchaseCallbackId(get_instance_ID())
payment.setAutoConsume(false) # default : true
payment.requestPurchased() # callback : has_purchased
payment.purchase("item_name") # callback : purchase_success,
purchase_fail, purchase_cancel, purchase_owned
payment.consume("item_name") # callback : consume_success
func purchase_success(receipt, signature, sku):
print("purchase_success : ", sku)
func purchase_fail():
print("purchase_fail")
func purchase_cancel():
print("purchase_cancel")
func purchase_owned(sku):
print("purchase_owned : ", sku)
func consume_success(receipt, signature, sku):
print("consume_success : ", sku)
func has_purchased(receipt, signature, sku):
if sku == "":
print("has_purchased : nothing")
else:
print("has_purchased : ", sku)
|
|
Fix android payments
|