[android] Fixed disabling traffic mode

This commit is contained in:
Dmitry Donskoy 2018-06-29 17:52:15 +03:00 committed by Aleksandr Zatsepin
parent fbfaceb74a
commit a6c7bcc83f
13 changed files with 85 additions and 52 deletions

View file

@ -1,4 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/coordinator"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:placePage="http://schemas.android.com/apk/res-auto"
@ -83,3 +88,4 @@
placePage:docked="true"
tools:ignore="UnknownIdInLayout"/>
</RelativeLayout>
</android.support.design.widget.CoordinatorLayout>

View file

@ -1,4 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/coordinator"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:placePage="http://schemas.android.com/apk/res-auto"
@ -96,3 +101,4 @@
android:visibility="gone"
tools:visibility="visible"/>
</RelativeLayout>
</android.support.design.widget.CoordinatorLayout>

View file

@ -1,4 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/coordinator"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:placePage="http://schemas.android.com/apk/res-auto"
@ -76,3 +81,4 @@
android:layout_alignParentBottom="true"
placePage:animationType="bottom"/>
</RelativeLayout>
</android.support.design.widget.CoordinatorLayout>

View file

@ -62,6 +62,7 @@ import com.mapswithme.maps.editor.ReportFragment;
import com.mapswithme.maps.gallery.Items;
import com.mapswithme.maps.location.CompassData;
import com.mapswithme.maps.location.LocationHelper;
import com.mapswithme.maps.maplayer.subway.SubwayManager;
import com.mapswithme.maps.routing.NavigationController;
import com.mapswithme.maps.routing.RoutePointInfo;
import com.mapswithme.maps.routing.RoutingBottomMenuListener;
@ -83,11 +84,11 @@ import com.mapswithme.maps.settings.StoragePathManager;
import com.mapswithme.maps.settings.UnitLocale;
import com.mapswithme.maps.sound.TtsPlayer;
import com.mapswithme.maps.maplayer.Mode;
import com.mapswithme.maps.maplayer.subway.OnSubwayModeSelectListener;
import com.mapswithme.maps.maplayer.subway.OnSubwayLayerToggleListener;
import com.mapswithme.maps.taxi.TaxiInfo;
import com.mapswithme.maps.taxi.TaxiManager;
import com.mapswithme.maps.maplayer.traffic.TrafficManager;
import com.mapswithme.maps.maplayer.traffic.widget.OnTrafficModeSelectListener;
import com.mapswithme.maps.maplayer.traffic.OnTrafficLayerToggleListener;
import com.mapswithme.maps.maplayer.traffic.widget.TrafficButton;
import com.mapswithme.maps.widget.FadeView;
import com.mapswithme.maps.widget.menu.BaseMenu;
@ -137,8 +138,8 @@ public class MwmActivity extends BaseMwmFragmentActivity
BookmarkManager.BookmarksLoadingListener,
DiscoveryFragment.DiscoveryListener,
FloatingSearchToolbarController.SearchToolbarListener,
OnTrafficModeSelectListener,
OnSubwayModeSelectListener
OnTrafficLayerToggleListener,
OnSubwayLayerToggleListener
{
private static final Logger LOGGER = LoggerFactory.INSTANCE.getLogger(LoggerFactory.Type.MISC);
private static final String TAG = MwmActivity.class.getSimpleName();
@ -226,18 +227,19 @@ public class MwmActivity extends BaseMwmFragmentActivity
private final OnClickListener mOnMyPositionClickListener = new CurrentPositionClickListener();
@Override
public void onSubwayModeSelected()
public void onSubwayLayerSelected()
{
mToggleMapLayerController.toggleMode(Mode.SUBWAY);
}
@Override
public void onTrafficModeSelected()
public void onTrafficLayerSelected()
{
mToggleMapLayerController.toggleMode(Mode.TRAFFIC);
}
public void resetSubwayLayer()
@Override
public void onSubwayLayerDeleted()
{
mToggleMapLayerController.turnOff(Mode.SUBWAY);
}
@ -2241,6 +2243,12 @@ public class MwmActivity extends BaseMwmFragmentActivity
mNavigationController.resetSearchWheel();
}
@Override
public boolean isSubwayEnabled()
{
return SubwayManager.from(this).isEnabled();
}
private void updateSearchBar()
{
if (!TextUtils.isEmpty(SearchEngine.INSTANCE.getQuery()))

View file

@ -192,17 +192,17 @@ public class MapLayerCompositeController implements MapLayerController
public void turnOn(@NonNull Mode mode)
{
ControllerAndMode entry = findModeMapLayerController(mode);
entry.mMode.setEnabled(mActivity, true);
entry.mController.turnOn();
entry.mController.showImmediately();
entry.mMode.setEnabled(mActivity, true);
}
public void turnOff(@NonNull Mode mode)
{
ControllerAndMode entry = findModeMapLayerController(mode);
entry.mMode.setEnabled(mActivity, false);
entry.mController.turnOff();
entry.mController.hideImmediately();
entry.mMode.setEnabled(mActivity, false);
}
@NonNull

View file

@ -2,9 +2,11 @@ package com.mapswithme.maps.maplayer;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.BottomSheetBehavior;
import android.support.design.widget.BottomSheetDialog;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
@ -20,10 +22,10 @@ import android.widget.ImageButton;
import android.widget.TextView;
import com.mapswithme.maps.R;
import com.mapswithme.maps.maplayer.subway.OnSubwayModeSelectListener;
import com.mapswithme.maps.maplayer.subway.OnSubwayLayerToggleListener;
import com.mapswithme.maps.widget.recycler.SpanningLinearLayoutManager;
import com.mapswithme.maps.bookmarks.OnItemClickListener;
import com.mapswithme.maps.maplayer.traffic.widget.OnTrafficModeSelectListener;
import com.mapswithme.maps.maplayer.traffic.OnTrafficLayerToggleListener;
import java.util.Arrays;
import java.util.List;
@ -42,11 +44,20 @@ public class ToggleMapLayerDialog extends DialogFragment
BottomSheetDialog dialog = new BottomSheetDialog(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View root = inflater.inflate(R.layout.fragment_toggle_map_layer, null, false);
dialog.setOnShowListener(this::onShow);
dialog.setContentView(root);
initChildren(root);
return dialog;
}
private void onShow(@NonNull DialogInterface dialogInterface)
{
BottomSheetDialog dialog = (BottomSheetDialog) dialogInterface;
View bottomSheet = dialog.findViewById(android.support.design.R.id.design_bottom_sheet);
BottomSheetBehavior bottomSheetBehavior = BottomSheetBehavior.from(bottomSheet);
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}
private void initChildren(@NonNull View root)
{
initCloseBtn(root);
@ -95,7 +106,6 @@ public class ToggleMapLayerDialog extends DialogFragment
fm.beginTransaction().remove(oldInstance).commit();
frag.show(fm, tag);
fm.executePendingTransactions();
}
private static class ModeAdapter extends RecyclerView.Adapter<ModeHolder>
@ -194,8 +204,8 @@ public class ToggleMapLayerDialog extends DialogFragment
@Override
void onItemClickInternal(@NonNull View v, @NonNull BottomSheetItem item)
{
OnSubwayModeSelectListener listener = (OnSubwayModeSelectListener) getActivity();
listener.onSubwayModeSelected();
OnSubwayLayerToggleListener listener = (OnSubwayLayerToggleListener) getActivity();
listener.onSubwayLayerSelected();
}
}
@ -204,8 +214,8 @@ public class ToggleMapLayerDialog extends DialogFragment
@Override
void onItemClickInternal(@NonNull View v, @NonNull BottomSheetItem item)
{
OnTrafficModeSelectListener listener = (OnTrafficModeSelectListener) getActivity();
listener.onTrafficModeSelected();
OnTrafficLayerToggleListener listener = (OnTrafficLayerToggleListener) getActivity();
listener.onTrafficLayerSelected();
}
}
}

View file

@ -0,0 +1,8 @@
package com.mapswithme.maps.maplayer.subway;
public interface OnSubwayLayerToggleListener
{
void onSubwayLayerSelected();
void onSubwayLayerDeleted();
}

View file

@ -1,6 +0,0 @@
package com.mapswithme.maps.maplayer.subway;
public interface OnSubwayModeSelectListener
{
void onSubwayModeSelected();
}

View file

@ -0,0 +1,6 @@
package com.mapswithme.maps.maplayer.traffic;
public interface OnTrafficLayerToggleListener
{
void onTrafficLayerSelected();
}

View file

@ -1,6 +0,0 @@
package com.mapswithme.maps.maplayer.traffic.widget;
public interface OnTrafficModeSelectListener
{
void onTrafficModeSelected();
}

View file

@ -79,6 +79,7 @@ public class RoutingController implements TaxiManager.TaxiListener
void onAddedStop();
void onRemovedStop();
void onBuiltRoute();
boolean isSubwayEnabled();
/**
* @param progress progress to be displayed.
@ -428,16 +429,14 @@ public class RoutingController implements TaxiManager.TaxiListener
}
if (startPoint != null && endPoint != null)
mLastRouterType = Framework.nativeGetBestRouter(startPoint.getLat(),
startPoint.getLon(),
endPoint.getLat(),
endPoint.getLon());
mLastRouterType = Framework.nativeGetBestRouter(startPoint.getLat(), startPoint.getLon(),
endPoint.getLat(), endPoint.getLon());
}
private boolean isSubwayEnabled()
{
FragmentActivity activity = mContainer == null ? null : mContainer.getActivity();
return activity != null && SubwayManager.from(activity).isEnabled();
return activity != null && mContainer.isSubwayEnabled();
}
public void prepare(final @Nullable MapObject startPoint, final @Nullable MapObject endPoint,

View file

@ -13,9 +13,9 @@ import android.widget.RadioButton;
import android.widget.RadioGroup;
import com.mapswithme.maps.Framework;
import com.mapswithme.maps.MwmActivity;
import com.mapswithme.maps.MwmApplication;
import com.mapswithme.maps.R;
import com.mapswithme.maps.maplayer.subway.OnSubwayLayerToggleListener;
import com.mapswithme.maps.taxi.TaxiInfo;
import com.mapswithme.maps.taxi.TaxiManager;
import com.mapswithme.maps.widget.RoutingToolbarButton;
@ -47,6 +47,9 @@ public class RoutingPlanController extends ToolbarController
int mFrameHeight;
@NonNull
private final OnSubwayLayerToggleListener mSubwayLayerToggleListener;
private RadioButton setupRouterButton(@IdRes int buttonId, final @DrawableRes int iconRes, View.OnClickListener clickListener)
{
CompoundButton.OnCheckedChangeListener listener = new CompoundButton.OnCheckedChangeListener()
@ -88,13 +91,7 @@ public class RoutingPlanController extends ToolbarController
mProgressTaxi = (WheelProgressView) progressFrame.findViewById(R.id.progress_taxi);
mRoutingBottomMenuController = RoutingBottomMenuController.newInstance(mActivity, mFrame, listener);
}
@NonNull
@Override
protected MwmActivity getActivity()
{
return (MwmActivity) super.getActivity();
mSubwayLayerToggleListener = (OnSubwayLayerToggleListener) activity;
}
private void setupRouterButtons()
@ -118,7 +115,7 @@ public class RoutingPlanController extends ToolbarController
AlohaHelper.logClick(AlohaHelper.ROUTING_TAXI_SET);
Statistics.INSTANCE.trackEvent(Statistics.EventName.ROUTING_TAXI_SET);
RoutingController.get().setRouterType(Framework.ROUTER_TYPE_TAXI);
getActivity().resetSubwayLayer();
getSubwayListener().onSubwayLayerDeleted();
}
private void onBicycleModeSelected(@NonNull View v)
@ -126,7 +123,7 @@ public class RoutingPlanController extends ToolbarController
AlohaHelper.logClick(AlohaHelper.ROUTING_BICYCLE_SET);
Statistics.INSTANCE.trackEvent(Statistics.EventName.ROUTING_BICYCLE_SET);
RoutingController.get().setRouterType(Framework.ROUTER_TYPE_BICYCLE);
getActivity().resetSubwayLayer();
getSubwayListener().onSubwayLayerDeleted();
}
private void onPedestrianModeSelected(@NonNull View v)
@ -134,7 +131,7 @@ public class RoutingPlanController extends ToolbarController
AlohaHelper.logClick(AlohaHelper.ROUTING_PEDESTRIAN_SET);
Statistics.INSTANCE.trackEvent(Statistics.EventName.ROUTING_PEDESTRIAN_SET);
RoutingController.get().setRouterType(Framework.ROUTER_TYPE_PEDESTRIAN);
getActivity().resetSubwayLayer();
getSubwayListener().onSubwayLayerDeleted();
}
private void onVehicleModeSelected(@NonNull View v)
@ -142,7 +139,7 @@ public class RoutingPlanController extends ToolbarController
AlohaHelper.logClick(AlohaHelper.ROUTING_VEHICLE_SET);
Statistics.INSTANCE.trackEvent(Statistics.EventName.ROUTING_VEHICLE_SET);
RoutingController.get().setRouterType(Framework.ROUTER_TYPE_VEHICLE);
getActivity().resetSubwayLayer();
getSubwayListener().onSubwayLayerDeleted();
}
@Override
@ -153,6 +150,12 @@ public class RoutingPlanController extends ToolbarController
RoutingController.get().cancel();
}
@NonNull
private OnSubwayLayerToggleListener getSubwayListener()
{
return mSubwayLayerToggleListener;
}
boolean checkFrameHeight()
{
if (mFrameHeight > 0)

View file

@ -2,7 +2,6 @@ package com.mapswithme.maps.widget;
import android.app.Activity;
import android.support.annotation.IdRes;
import android.support.annotation.NonNull;
import android.support.annotation.StringRes;
import android.support.v7.widget.Toolbar;
import android.view.View;
@ -76,12 +75,6 @@ public class ToolbarController
return this;
}
@NonNull
protected Activity getActivity()
{
return mActivity;
}
public Toolbar getToolbar()
{
return mToolbar;