From 63acb874f4e75de2548d21bed39f37fac7645d7f Mon Sep 17 00:00:00 2001 From: cyber-toad Date: Sun, 2 Apr 2023 00:27:33 +0200 Subject: [PATCH] [android] Log and handle Android low memory events Signed-off-by: cyber-toad --- android/jni/app/organicmaps/Framework.cpp | 7 +++++++ android/src/app/organicmaps/Framework.java | 2 ++ android/src/app/organicmaps/MwmActivity.java | 9 +++++++++ 3 files changed, 18 insertions(+) diff --git a/android/jni/app/organicmaps/Framework.cpp b/android/jni/app/organicmaps/Framework.cpp index e6813d0268..4a3dbaa259 100644 --- a/android/jni/app/organicmaps/Framework.cpp +++ b/android/jni/app/organicmaps/Framework.cpp @@ -1835,4 +1835,11 @@ Java_app_organicmaps_Framework_nativeHasPlacePageInfo(JNIEnv *, jclass) { return static_cast(frm()->HasPlacePageInfo()); } + +JNIEXPORT void JNICALL +Java_app_organicmaps_Framework_nativeMemoryWarning(JNIEnv *, jclass) +{ + return frm()->MemoryWarning(); +} + } // extern "C" diff --git a/android/src/app/organicmaps/Framework.java b/android/src/app/organicmaps/Framework.java index 45a4c9bba3..281f2a4ce6 100644 --- a/android/src/app/organicmaps/Framework.java +++ b/android/src/app/organicmaps/Framework.java @@ -409,6 +409,8 @@ public class Framework */ public static native boolean nativeHasPlacePageInfo(); + public static native void nativeMemoryWarning(); + public enum LocalAdsEventType { LOCAL_ADS_EVENT_SHOW_POINT, diff --git a/android/src/app/organicmaps/MwmActivity.java b/android/src/app/organicmaps/MwmActivity.java index db1e02bf48..9ca5131b9f 100644 --- a/android/src/app/organicmaps/MwmActivity.java +++ b/android/src/app/organicmaps/MwmActivity.java @@ -1857,4 +1857,13 @@ public class MwmActivity extends BaseMwmFragmentActivity RoutingOptions.addOption(roadType); rebuildLastRouteInternal(); } + + @Override + public void onTrimMemory(int level) + { + super.onTrimMemory(level); + Logger.d(TAG, "trim memory, level = " + level); + if (level >= TRIM_MEMORY_RUNNING_LOW) + Framework.nativeMemoryWarning(); + } }