[android] Fixed crash while Uber order on tablet

This commit is contained in:
alexzatsepin 2016-11-03 10:44:21 +03:00 committed by Ilya Grechuhin
parent b26eaabd8a
commit fef7a7c661
3 changed files with 43 additions and 28 deletions

View file

@ -1,11 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/start"
android:layout_width="@dimen/start_button_width"
android:layout_height="match_parent"
android:layout_gravity="center"
android:text="@string/p2p_start"
style="@style/MwmWidget.Button.Start"
android:textAppearance="@style/MwmTextAppearance.Body1"
tools:showIn="@layout/menu_route_plan_line"/>
<Button
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/start"
android:layout_width="wrap_content"
android:minWidth="@dimen/start_button_width"
android:padding="@dimen/margin_half"
android:layout_height="match_parent"
android:layout_gravity="center"
android:text="@string/p2p_start"
style="@style/MwmWidget.Button.Start"
android:textAppearance="@style/MwmTextAppearance.Body1"
tools:showIn="@layout/menu_route_plan_line"/>

View file

@ -18,12 +18,12 @@ import android.widget.TextView;
import com.mapswithme.maps.Framework;
import com.mapswithme.maps.MwmApplication;
import com.mapswithme.maps.R;
import com.mapswithme.maps.uber.Uber;
import com.mapswithme.maps.uber.UberInfo;
import com.mapswithme.maps.uber.UberLinks;
import com.mapswithme.maps.bookmarks.data.MapObject;
import com.mapswithme.maps.downloader.MapManager;
import com.mapswithme.maps.location.LocationHelper;
import com.mapswithme.maps.uber.Uber;
import com.mapswithme.maps.uber.UberInfo;
import com.mapswithme.maps.uber.UberLinks;
import com.mapswithme.util.Config;
import com.mapswithme.util.ConnectionState;
import com.mapswithme.util.StringUtils;
@ -270,7 +270,7 @@ public class RoutingController
mLastBuildProgress = 0;
mInternetConnected = ConnectionState.isConnected();
if (mLastRouterType == Framework.ROUTER_TYPE_TAXI)
if (isTaxiRouterType())
{
if (!mInternetConnected)
{
@ -509,7 +509,17 @@ public class RoutingController
boolean isUberPlanning()
{
return mLastRouterType == Framework.ROUTER_TYPE_TAXI && mUberPlanning;
return isTaxiRouterType() && mUberPlanning;
}
boolean isTaxiRouterType()
{
return mLastRouterType == Framework.ROUTER_TYPE_TAXI;
}
boolean isVehicleRouterType()
{
return mLastRouterType == Framework.ROUTER_TYPE_VEHICLE;
}
public boolean isNavigating()
@ -724,7 +734,7 @@ public class RoutingController
// Repeating tap on Uber icon should trigger the route building always,
// because it may be "No internet connection, try later" case
if (router == mLastRouterType && router != Framework.ROUTER_TYPE_TAXI)
if (router == mLastRouterType && !isTaxiRouterType())
return;
mLastRouterType = router;
@ -814,7 +824,8 @@ public class RoutingController
private void requestUberInfo()
{
mUberPlanning = true;
Uber.nativeRequestUberProducts(mStartPoint.getLat(), mStartPoint.getLon(), mEndPoint.getLat(), mEndPoint.getLon());
Uber.nativeRequestUberProducts(mStartPoint.getLat(), mStartPoint.getLon(),
mEndPoint.getLat(), mEndPoint.getLon());
if (mContainer != null)
mContainer.updateBuildProgress(0, mLastRouterType);
}
@ -822,7 +833,8 @@ public class RoutingController
@NonNull
UberLinks getUberLink(@NonNull String productId)
{
return Uber.nativeGetUberLinks(productId, mStartPoint.getLat(), mStartPoint.getLon(), mEndPoint.getLat(), mEndPoint.getLon());
return Uber.nativeGetUberLinks(productId, mStartPoint.getLat(), mStartPoint.getLon(),
mEndPoint.getLat(), mEndPoint.getLon());
}
/**
@ -834,7 +846,7 @@ public class RoutingController
{
mUberPlanning = false;
mLogger.d("onUberInfoReceived uberInfo = " + info);
if (mLastRouterType == Framework.ROUTER_TYPE_TAXI && mContainer != null)
if (isTaxiRouterType() && mContainer != null)
{
mContainer.onUberInfoReceived(info);
completeUberRequest();
@ -851,7 +863,7 @@ public class RoutingController
mUberPlanning = false;
Uber.ErrorCode code = Uber.ErrorCode.valueOf(errorCode);
mLogger.e("onUberError error = " + code);
if (mLastRouterType == Framework.ROUTER_TYPE_TAXI && mContainer != null)
if (isTaxiRouterType() && mContainer != null)
{
mContainer.onUberError(code);
completeUberRequest();

View file

@ -211,14 +211,14 @@ public class RoutingPlanController extends ToolbarController
return;
}
if (!isTaxiRouteChecked())
if (!isTaxiRouterType())
setStartButton();
showAltitudeChartAndRoutingDetails();
}
private void showAltitudeChartAndRoutingDetails()
{
if (isTaxiRouteChecked())
if (isTaxiRouterType())
return;
UiUtils.hide(getViewById(R.id.error));
@ -365,14 +365,14 @@ public class RoutingPlanController extends ToolbarController
}
}
private boolean isVehicleRouteChecked()
private boolean isVehicleRouterType()
{
return mRouterTypes.getCheckedRadioButtonId() == R.id.vehicle;
return RoutingController.get().isVehicleRouterType();
}
private boolean isTaxiRouteChecked()
private boolean isTaxiRouterType()
{
return mRouterTypes.getCheckedRadioButtonId() == R.id.taxi;
return RoutingController.get().isTaxiRouterType();
}
void disableToggle()
@ -394,7 +394,7 @@ public class RoutingPlanController extends ToolbarController
void showRouteAltitudeChartInternal(@NonNull ImageView altitudeChart)
{
if (isVehicleRouteChecked())
if (isVehicleRouterType())
{
UiUtils.hide(altitudeChart);
return;
@ -496,7 +496,7 @@ public class RoutingPlanController extends ToolbarController
{
Button start = (Button) getViewById(R.id.start);
if (isTaxiRouteChecked())
if (isTaxiRouterType())
{
final boolean isUberInstalled = Utils.isUberInstalled(mActivity);
start.setText(isUberInstalled ? R.string.taxi_order : R.string.install_app);