Fixed bug with widget positions.

This commit is contained in:
Dmitry Yunitsky 2015-06-26 20:59:47 +03:00 committed by Alex Zolotarev
parent fd79f73610
commit 3f0bd19c65
3 changed files with 30 additions and 34 deletions

View file

@ -1475,4 +1475,4 @@ extern "C"
m2::PointD const pivot = m2::PointD(pivotX, pivotY);
android::Platform::RunOnGuiThreadImpl(bind(&Framework::SetWidgetPivot, frm(), widgetType, pivot));
}
} // extern "C"
} // extern "C"

View file

@ -22,8 +22,6 @@ public class MapFragment extends NvEventQueueFragment
public static final String FRAGMENT_TAG = MapFragment.class.getSimpleName();
private boolean mIsRenderingInitialized;
protected native void nativeStorageConnected();
protected native void nativeStorageDisconnected();
@ -63,44 +61,24 @@ public class MapFragment extends NvEventQueueFragment
}
@Override
public void onStop()
{
super.onStop();
mIsRenderingInitialized = false;
}
@Override
protected void applyWidgetPivots(final int mapHeight, final int mapWidth)
protected void applyWidgetPivots()
{
final Resources resources = getResources();
// TODO need a delay here to make call work
getView().postDelayed(new Runnable()
{
@Override
public void run()
{
Framework.setWidgetPivot(Framework.MAP_WIDGET_RULER, mapWidth - resources.getDimensionPixelOffset(R.dimen.margin_right_ruler), mapHeight - resources.getDimensionPixelOffset(R.dimen.margin_bottom_ruler));
Framework.setWidgetPivot(Framework.MAP_WIDGET_COMPASS, resources.getDimensionPixelOffset(R.dimen.margin_left_compass), mapHeight - resources.getDimensionPixelOffset(R.dimen.margin_bottom_compass));
}
}, 300);
}
public boolean isRenderingInitialized()
{
return mIsRenderingInitialized;
Framework.setWidgetPivot(Framework.MAP_WIDGET_RULER, mSurfaceWidth - resources.getDimensionPixelOffset(R.dimen.margin_right_ruler), mSurfaceHeight - resources.getDimensionPixelOffset(R.dimen.margin_bottom_ruler));
Framework.setWidgetPivot(Framework.MAP_WIDGET_COMPASS, resources.getDimensionPixelOffset(R.dimen.margin_left_compass), mSurfaceHeight - resources.getDimensionPixelOffset(R.dimen.margin_bottom_compass));
}
@Override
public void OnRenderingInitialized()
{
mIsRenderingInitialized = true;
final Activity host = getActivity();
if (host != null && host instanceof MapRenderingListener)
{
final MapRenderingListener listener = (MapRenderingListener) host;
listener.onRenderingInitialized();
}
super.OnRenderingInitialized();
}
@Override

View file

@ -24,10 +24,11 @@ public abstract class NvEventQueueFragment extends BaseMwmFragment implements Vi
private final Logger mLog = StubLogger.get();
private boolean mIsRenderingInitialized;
private EglWrapper mEglWrapper;
protected SurfaceHolder mCachedSurfaceHolder;
private int mSurfaceWidth;
private int mSurfaceHeight;
protected int mSurfaceWidth;
protected int mSurfaceHeight;
private int mDisplayDensity;
@ -80,6 +81,8 @@ public abstract class NvEventQueueFragment extends BaseMwmFragment implements Vi
mDisplayDensity = metrics.densityDpi;
mIsNativeLaunched = true;
onCreateNative();
if (getActivity().isChangingConfigurations())
mIsRenderingInitialized = true;
}
@Override
@ -103,7 +106,6 @@ public abstract class NvEventQueueFragment extends BaseMwmFragment implements Vi
{
mCachedSurfaceHolder = holder;
onSurfaceCreatedNative(mSurfaceWidth, mSurfaceHeight, mDisplayDensity);
applyWidgetPivots(mSurfaceHeight, mSurfaceWidth);
}
@Override
@ -113,7 +115,8 @@ public abstract class NvEventQueueFragment extends BaseMwmFragment implements Vi
mSurfaceWidth = width;
mSurfaceHeight = height;
onSurfaceChangedNative(mSurfaceWidth, mSurfaceHeight, mDisplayDensity);
applyWidgetPivots(mSurfaceHeight, mSurfaceWidth);
if (mIsRenderingInitialized)
applyWidgetPivots();
}
@Override
@ -125,7 +128,10 @@ public abstract class NvEventQueueFragment extends BaseMwmFragment implements Vi
});
}
protected abstract void applyWidgetPivots(final int mapHeight, final int mapWidth);
/**
* Implement to position map widgets.
*/
protected abstract void applyWidgetPivots();
@Override
public void onStart()
@ -161,8 +167,11 @@ public abstract class NvEventQueueFragment extends BaseMwmFragment implements Vi
{
super.onStop();
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB || !getActivity().isChangingConfigurations())
{
// if configuration is changed - EGL shouldn't be reinitialized
mIsRenderingInitialized = false;
onStopNative();
}
}
@Override
@ -279,7 +288,16 @@ public abstract class NvEventQueueFragment extends BaseMwmFragment implements Vi
}
@SuppressWarnings("UnusedDeclaration")
public void OnRenderingInitialized() {}
public void OnRenderingInitialized()
{
mIsRenderingInitialized = true;
applyWidgetPivots();
}
public boolean isRenderingInitialized()
{
return mIsRenderingInitialized;
}
@SuppressWarnings("UnusedDeclaration")
public void ReportUnsupported()