Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorr.kuznetsov <r.kuznetsov@corp.mail.ru>2019-05-14 16:39:11 +0300
committerDaria Volvenkova <d.volvenkova@corp.mail.ru>2019-05-17 18:45:59 +0300
commita3007501b4c097ae916932ee1b019a456695a48e (patch)
tree1b86c1912778b102d4fb1ab3022fdb128b90a5c9 /android
parent4695b23cdbfd0fbae4b1d3f47bd4d3ff1ac390d1 (diff)
[drape] Fixed rendering initialization notification
Diffstat (limited to 'android')
-rw-r--r--android/jni/com/mapswithme/maps/MapFragment.cpp26
-rw-r--r--android/src/com/mapswithme/maps/MapFragment.java36
-rw-r--r--android/src/com/mapswithme/maps/MapRenderingListener.java8
-rw-r--r--android/src/com/mapswithme/maps/MwmActivity.java11
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;