[android] fix: Pass IsFirstStart to engine.

This commit is contained in:
Alexander Marchuk 2016-04-28 17:56:41 +03:00 committed by Alex Zolotarev
parent 3161e3b1d1
commit 33caa07d71
2 changed files with 31 additions and 5 deletions

View file

@ -53,6 +53,7 @@ public class MapFragment extends BaseMwmFragment
private int mWidth;
private boolean mRequireResize;
private boolean mEngineCreated;
private boolean mFirstStart;
private static boolean sWasCopyrightDisplayed;
interface MapRenderingListener
@ -152,8 +153,8 @@ public class MapFragment extends BaseMwmFragment
getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);
final float exactDensityDpi = metrics.densityDpi;
boolean isFirstLaunch = false; //TODO(Android team): set correct value
mEngineCreated = nativeCreateEngine(surface, (int) exactDensityDpi, isFirstLaunch);
mFirstStart = ((MwmActivity) getMwmActivity()).isFirstStart();
mEngineCreated = nativeCreateEngine(surface, (int) exactDensityDpi, mFirstStart);
if (!mEngineCreated)
{
reportUnsupported();
@ -270,6 +271,16 @@ public class MapFragment extends BaseMwmFragment
}
}
boolean isFirstStart()
{
return mFirstStart;
}
void clearFirstStart()
{
mFirstStart = false;
}
static native void nativeCompassUpdated(double magneticNorth, double trueNorth, boolean forceRedraw);
static native void nativeScalePlus();
static native void nativeScaleMinus();

View file

@ -120,6 +120,8 @@ public class MwmActivity extends BaseMwmFragmentActivity
private final Stack<MapTask> mTasks = new Stack<>();
private final StoragePathManager mPathManager = new StoragePathManager();
private boolean mFirstStart;
private View mMapFrame;
private MapFragment mMapFragment;
@ -835,6 +837,12 @@ public class MwmActivity extends BaseMwmFragmentActivity
case LocationState.NOT_FOLLOW_NO_POSITION:
pauseLocation();
if (mMapFragment != null && mMapFragment.isFirstStart())
{
mMapFragment.clearFirstStart();
return;
}
String message = String.format("%s\n\n%s", getString(R.string.current_location_unknown_message),
getString(R.string.current_location_unknown_title));
new AlertDialog.Builder(this)
@ -918,8 +926,8 @@ public class MwmActivity extends BaseMwmFragmentActivity
if (!RoutingController.get().isNavigating())
{
boolean isFirstStart = FirstStartFragment.showOn(this);
if (isFirstStart)
mFirstStart = FirstStartFragment.showOn(this);
if (mFirstStart)
{
addTask(new MwmActivity.MapTask()
{
@ -931,7 +939,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
});
}
if (!isFirstStart && !SinglePageNewsFragment.showOn(this))
if (!mFirstStart && !SinglePageNewsFragment.showOn(this))
{
if (ViralFragment.shouldDisplay())
new ViralFragment().show(getSupportFragmentManager(), "");
@ -1465,4 +1473,11 @@ public class MwmActivity extends BaseMwmFragmentActivity
mRoutingPlanInplaceController.updateBuildProgress(progress, router);
}
}
boolean isFirstStart()
{
boolean res = mFirstStart;
mFirstStart = false;
return res;
}
}