diff options
author | r.kuznetsov <r.kuznetsov@corp.mail.ru> | 2019-05-14 16:39:11 +0300 |
---|---|---|
committer | Daria Volvenkova <d.volvenkova@corp.mail.ru> | 2019-05-17 18:45:59 +0300 |
commit | a3007501b4c097ae916932ee1b019a456695a48e (patch) | |
tree | 1b86c1912778b102d4fb1ab3022fdb128b90a5c9 /android | |
parent | 4695b23cdbfd0fbae4b1d3f47bd4d3ff1ac390d1 (diff) |
[drape] Fixed rendering initialization notification
Diffstat (limited to 'android')
-rw-r--r-- | android/jni/com/mapswithme/maps/MapFragment.cpp | 26 | ||||
-rw-r--r-- | android/src/com/mapswithme/maps/MapFragment.java | 36 | ||||
-rw-r--r-- | android/src/com/mapswithme/maps/MapRenderingListener.java | 8 | ||||
-rw-r--r-- | android/src/com/mapswithme/maps/MwmActivity.java | 11 |
4 files changed, 66 insertions, 15 deletions
diff --git a/android/jni/com/mapswithme/maps/MapFragment.cpp b/android/jni/com/mapswithme/maps/MapFragment.cpp index 612ba9aa60..ec4e717274 100644 --- a/android/jni/com/mapswithme/maps/MapFragment.cpp +++ b/android/jni/com/mapswithme/maps/MapFragment.cpp @@ -11,6 +11,15 @@ #include "platform/file_logging.hpp" #include "platform/settings.hpp" +namespace +{ +void OnRenderingInitializationFinished(std::shared_ptr<jobject> const & listener) +{ + JNIEnv * env = jni::GetEnv(); + env->CallVoidMethod(*listener, jni::GetMethodID(env, *listener.get(), + "onRenderingInitializationFinished", "()V")); +} +} // namespace extern "C" { @@ -125,7 +134,8 @@ Java_com_mapswithme_maps_MapFragment_nativeOnTouch(JNIEnv * env, jclass clazz, j } JNIEXPORT void JNICALL -Java_com_mapswithme_maps_MapFragment_nativeSetupWidget(JNIEnv * env, jclass clazz, jint widget, jfloat x, jfloat y, jint anchor) +Java_com_mapswithme_maps_MapFragment_nativeSetupWidget( + JNIEnv * env, jclass clazz, jint widget, jfloat x, jfloat y, jint anchor) { g_framework->SetupWidget(static_cast<gui::EWidget>(widget), x, y, static_cast<dp::Anchor>(anchor)); } @@ -142,4 +152,18 @@ Java_com_mapswithme_maps_MapFragment_nativeCleanWidgets(JNIEnv * env, jclass cla g_framework->CleanWidgets(); } +JNIEXPORT void JNICALL +Java_com_mapswithme_maps_MapFragment_nativeSetRenderingInitializationFinishedListener( + JNIEnv * env, jclass clazz, jobject listener) +{ + if (listener) + { + g_framework->NativeFramework()->SetGraphicsContextInitializationHandler( + std::bind(&OnRenderingInitializationFinished, jni::make_global_ref(listener))); + } + else + { + g_framework->NativeFramework()->SetGraphicsContextInitializationHandler(nullptr); + } +} } // extern "C" diff --git a/android/src/com/mapswithme/maps/MapFragment.java b/android/src/com/mapswithme/maps/MapFragment.java index 47f67923a2..b9b31d1b51 100644 --- a/android/src/com/mapswithme/maps/MapFragment.java +++ b/android/src/com/mapswithme/maps/MapFragment.java @@ -26,7 +26,8 @@ import com.mapswithme.util.log.LoggerFactory; public class MapFragment extends BaseMwmFragment implements View.OnTouchListener, - SurfaceHolder.Callback + SurfaceHolder.Callback, + MapRenderingListener { public static final String ARG_LAUNCH_BY_DEEP_LINK = "launch_by_deep_link"; private static final Logger LOGGER = LoggerFactory.INSTANCE.getLogger(LoggerFactory.Type.MISC); @@ -72,12 +73,6 @@ public class MapFragment extends BaseMwmFragment @NonNull private SurfaceView mSurfaceView; - interface MapRenderingListener - { - void onRenderingInitialized(); - void onRenderingRestored(); - } - private void setupWidgets(int width, int height) { mHeight = height; @@ -137,20 +132,30 @@ public class MapFragment extends BaseMwmFragment nativeApplyWidgets(); } - private void onRenderingInitialized() + @Override + public void onRenderingCreated() { final Activity activity = getActivity(); if (isAdded() && activity instanceof MapRenderingListener) - ((MapRenderingListener) activity).onRenderingInitialized(); + ((MapRenderingListener) activity).onRenderingCreated(); } - private void onRenderingRestored() + @Override + public void onRenderingRestored() { final Activity activity = getActivity(); if (isAdded() && activity instanceof MapRenderingListener) ((MapRenderingListener) activity).onRenderingRestored(); } + @Override + public void onRenderingInitializationFinished() + { + final Activity activity = getActivity(); + if (isAdded() && activity instanceof MapRenderingListener) + ((MapRenderingListener) activity).onRenderingInitializationFinished(); + } + private void reportUnsupported() { new AlertDialog.Builder(getActivity()) @@ -222,7 +227,7 @@ public class MapFragment extends BaseMwmFragment mSurfaceCreated = true; mSurfaceAttached = true; nativeResumeSurfaceRendering(); - onRenderingInitialized(); + onRenderingCreated(); } @Override @@ -280,9 +285,17 @@ public class MapFragment extends BaseMwmFragment public void onStart() { super.onStart(); + nativeSetRenderingInitializationFinishedListener(this); LOGGER.d(TAG, "onStart"); } + public void onStop() + { + super.onStop(); + nativeSetRenderingInitializationFinishedListener(null); + LOGGER.d(TAG, "onStop"); + } + private boolean isThemeChangingProcess() { return mUiThemeOnPause != null && !mUiThemeOnPause.equals(Config.getCurrentUiTheme()); @@ -391,4 +404,5 @@ public class MapFragment extends BaseMwmFragment private static native void nativeSetupWidget(int widget, float x, float y, int anchor); private static native void nativeApplyWidgets(); private static native void nativeCleanWidgets(); + private static native void nativeSetRenderingInitializationFinishedListener(MapRenderingListener listener); } diff --git a/android/src/com/mapswithme/maps/MapRenderingListener.java b/android/src/com/mapswithme/maps/MapRenderingListener.java new file mode 100644 index 0000000000..726b325d74 --- /dev/null +++ b/android/src/com/mapswithme/maps/MapRenderingListener.java @@ -0,0 +1,8 @@ +package com.mapswithme.maps; + +interface MapRenderingListener +{ + void onRenderingCreated(); + void onRenderingRestored(); + void onRenderingInitializationFinished(); +} diff --git a/android/src/com/mapswithme/maps/MwmActivity.java b/android/src/com/mapswithme/maps/MwmActivity.java index 9b5f1f9f86..4856ed5742 100644 --- a/android/src/com/mapswithme/maps/MwmActivity.java +++ b/android/src/com/mapswithme/maps/MwmActivity.java @@ -135,7 +135,7 @@ public class MwmActivity extends BaseMwmFragmentActivity implements MapObjectListener, View.OnTouchListener, OnClickListener, - MapFragment.MapRenderingListener, + MapRenderingListener, CustomNavigateUpListener, RoutingController.Container, LocationHelper.UiCallback, @@ -278,13 +278,12 @@ public class MwmActivity extends BaseMwmFragmentActivity } @Override - public void onRenderingInitialized() + public void onRenderingCreated() { checkMeasurementSystem(); checkKitkatMigrationMove(); LocationHelper.INSTANCE.attach(this); - runTasks(); } @Override @@ -293,6 +292,12 @@ public class MwmActivity extends BaseMwmFragmentActivity runTasks(); } + @Override + public void onRenderingInitializationFinished() + { + runTasks(); + } + private void myPositionClick() { mLocationErrorDialogAnnoying = false; |