diff --git a/android/jni/com/mapswithme/maps/Framework.cpp b/android/jni/com/mapswithme/maps/Framework.cpp index 94928e377b..0f81231d04 100644 --- a/android/jni/com/mapswithme/maps/Framework.cpp +++ b/android/jni/com/mapswithme/maps/Framework.cpp @@ -304,7 +304,6 @@ void Framework::DetachSurface(bool destroySurface) { LOG(LINFO, ("Destroy surface.")); m_isSurfaceDestroyed = true; - m_work.EnterBackground(); m_work.OnDestroySurface(); } @@ -378,8 +377,6 @@ bool Framework::AttachSurface(JNIEnv * env, jobject jSurface) bool const recreateContextDependentResources = (m_vulkanContextFactory == nullptr); m_work.OnRecoverSurface(w, h, recreateContextDependentResources); m_isSurfaceDestroyed = false; - - m_work.EnterForeground(); } LOG(LINFO, ("Attach surface finished.")); diff --git a/android/jni/com/mapswithme/maps/MwmApplication.cpp b/android/jni/com/mapswithme/maps/MwmApplication.cpp index b19a9376d2..a024a556a8 100644 --- a/android/jni/com/mapswithme/maps/MwmApplication.cpp +++ b/android/jni/com/mapswithme/maps/MwmApplication.cpp @@ -45,4 +45,13 @@ extern "C" g_framework->AddString(jni::ToNativeString(env, name), jni::ToNativeString(env, value)); } + + JNIEXPORT void JNICALL + Java_com_mapswithme_maps_MwmApplication_nativeOnTransit(JNIEnv *, jclass, jboolean foreground) + { + if (static_cast(foreground)) + g_framework->NativeFramework()->EnterForeground(); + else + g_framework->NativeFramework()->EnterBackground(); + } } diff --git a/android/src/com/mapswithme/maps/MwmApplication.java b/android/src/com/mapswithme/maps/MwmApplication.java index 473eaf4abf..997fb259ce 100644 --- a/android/src/com/mapswithme/maps/MwmApplication.java +++ b/android/src/com/mapswithme/maps/MwmApplication.java @@ -45,7 +45,7 @@ import com.mapswithme.util.statistics.Statistics; import java.util.HashMap; import java.util.List; -public class MwmApplication extends Application +public class MwmApplication extends Application implements AppBackgroundTracker.OnTransitionListener { @SuppressWarnings("NullableProblems") @NonNull @@ -280,6 +280,7 @@ public class MwmApplication extends Application TrafficManager.INSTANCE.initialize(); SubwayManager.from(this).initialize(); mPurchaseOperationObservable.initialize(); + mBackgroundTracker.addListener(this); mFrameworkInitialized = true; } @@ -379,6 +380,7 @@ public class MwmApplication extends Application private static native void nativeInitFramework(); private static native void nativeProcessTask(long taskPointer); private static native void nativeAddLocalization(String name, String value); + private static native void nativeOnTransit(boolean foreground); @NonNull public Logger getLogger() @@ -396,6 +398,12 @@ public class MwmApplication extends Application return mFirstLaunch; } + @Override + public void onTransit(boolean foreground) + { + nativeOnTransit(foreground); + } + private static class VisibleAppLaunchListener implements AppBackgroundTracker.OnVisibleAppLaunchListener { @Override