forked from organicmaps/organicmaps
Fixed bug with widget positions.
This commit is contained in:
parent
fd79f73610
commit
3f0bd19c65
3 changed files with 30 additions and 34 deletions
|
@ -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"
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Add table
Reference in a new issue