[android] Added booking.com button in bottom toolbar on map

This commit is contained in:
Александр Зацепин 2019-05-30 18:54:07 +03:00 committed by yoksnod
parent 8aeed35028
commit 6275027cd4
10 changed files with 107 additions and 27 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 598 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 789 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -27,6 +27,14 @@
tools:background="#403033FF"
tools:targetApi="m"/>
<TextView
android:id="@+id/hotel_search"
style="@style/MwmTheme.Menu.Content.ListItem"
android:drawableLeft="@drawable/ic_menu_hotel_search"
android:drawableStart="@drawable/ic_menu_hotel_search"
android:text="@string/booking_button_toolbar"
tools:background="#200000FF"/>
<TextView
android:id="@+id/search"
style="@style/MwmTheme.Menu.Content.ListItem"

View file

@ -23,6 +23,13 @@
android:textColor="?attr/colorAccent"
tools:targetApi="m"/>
<TextView
android:id="@+id/hotel_search"
style="@style/MwmTheme.Menu.Content.GridItem.Text"
android:drawableTop="@drawable/ic_menu_hotel_search"
android:text="@string/booking_button_toolbar"
tools:background="#200000FF"/>
<TextView
android:id="@+id/search"
style="@style/MwmTheme.Menu.Content.GridItem.Text"

View file

@ -1004,7 +1004,20 @@ public class MwmActivity extends BaseMwmFragmentActivity
return;
String query = data.getStringExtra(DiscoveryActivity.EXTRA_FILTER_SEARCH_QUERY);
mSearchController.setQuery(TextUtils.isEmpty(query) ? getString(R.string.hotel) : query);
mSearchController.setQuery(TextUtils.isEmpty(query) ? getString(R.string.hotel) + " " : query);
}
private void runHotelCategorySearchOnMap()
{
if (mSearchController == null || mFilterController == null)
return;
mSearchController.setQuery(getActivity().getString(R.string.hotel) + " ");
runSearch();
mSearchController.refreshToolbar();
mFilterController.updateFilterButtonVisibility(true);
mFilterController.show(true, true);
}
@Override
@ -2356,7 +2369,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
}
public static class AddPlaceDelegate extends AbstractClickMenuDelegate
public static class AddPlaceDelegate extends StatisticClickMenuDelegate
{
public AddPlaceDelegate(@NonNull MwmActivity activity, @NonNull MainMenu.Item item)
{
@ -2364,9 +2377,8 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
@Override
public void onMenuItemClickInternal()
void onPostStatisticMenuItemClick()
{
Statistics.INSTANCE.trackToolbarMenu(getItem());
getActivity().closePlacePage();
if (getActivity().mIsTabletLayout)
getActivity().closeSidePanel();
@ -2390,7 +2402,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
}
public static class SettingsDelegate extends AbstractClickMenuDelegate
public static class SettingsDelegate extends StatisticClickMenuDelegate
{
public SettingsDelegate(@NonNull MwmActivity activity, @NonNull MainMenu.Item item)
{
@ -2398,15 +2410,14 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
@Override
public void onMenuItemClickInternal()
void onPostStatisticMenuItemClick()
{
Statistics.INSTANCE.trackToolbarMenu(getItem());
Intent intent = new Intent(getActivity(), SettingsActivity.class);
getActivity().closeMenu(() -> getActivity().startActivity(intent));
}
}
public static class DownloadGuidesDelegate extends AbstractClickMenuDelegate
public static class DownloadGuidesDelegate extends StatisticClickMenuDelegate
{
public DownloadGuidesDelegate(@NonNull MwmActivity activity, @NonNull MainMenu.Item item)
{
@ -2414,9 +2425,8 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
@Override
public void onMenuItemClickInternal()
void onPostStatisticMenuItemClick()
{
Statistics.INSTANCE.trackToolbarMenu(getItem());
int requestCode = BookmarkCategoriesActivity.REQ_CODE_DOWNLOAD_BOOKMARK_CATEGORY;
String catalogUrl = BookmarkManager.INSTANCE.getCatalogFrontendUrl();
getActivity().closeMenu(() -> BookmarksCatalogActivity.startForResult(getActivity(),
@ -2425,7 +2435,40 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
}
public static class DownloadMapsDelegate extends AbstractClickMenuDelegate
public static class HotelSearchDelegate extends StatisticClickMenuDelegate
{
public HotelSearchDelegate(@NonNull MwmActivity activity, @NonNull MainMenu.Item item)
{
super(activity, item);
}
@Override
void onPostStatisticMenuItemClick()
{
getActivity().closeMenu(() -> {
getActivity().runHotelCategorySearchOnMap();
});
}
}
public abstract static class StatisticClickMenuDelegate extends AbstractClickMenuDelegate
{
StatisticClickMenuDelegate(@NonNull MwmActivity activity, @NonNull MainMenu.Item item)
{
super(activity, item);
}
@Override
public void onMenuItemClickInternal()
{
Statistics.INSTANCE.trackToolbarMenu(getItem());
onPostStatisticMenuItemClick();
}
abstract void onPostStatisticMenuItemClick();
}
public static class DownloadMapsDelegate extends StatisticClickMenuDelegate
{
public DownloadMapsDelegate(@NonNull MwmActivity activity, @NonNull MainMenu.Item item)
{
@ -2433,15 +2476,14 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
@Override
public void onMenuItemClickInternal()
void onPostStatisticMenuItemClick()
{
Statistics.INSTANCE.trackToolbarMenu(getItem());
RoutingController.get().cancel();
getActivity().closeMenu(() -> getActivity().showDownloader(false));
}
}
public static class BookmarksDelegate extends AbstractClickMenuDelegate
public static class BookmarksDelegate extends StatisticClickMenuDelegate
{
public BookmarksDelegate(@NonNull MwmActivity activity, @NonNull MainMenu.Item item)
{
@ -2449,14 +2491,13 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
@Override
public void onMenuItemClickInternal()
void onPostStatisticMenuItemClick()
{
Statistics.INSTANCE.trackToolbarClick(getItem());
getActivity().closeMenu(getActivity()::showBookmarks);
}
}
public static class ShareMyLocationDelegate extends AbstractClickMenuDelegate
public static class ShareMyLocationDelegate extends StatisticClickMenuDelegate
{
public ShareMyLocationDelegate(@NonNull MwmActivity activity, @NonNull MainMenu.Item item)
{
@ -2464,14 +2505,13 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
@Override
public void onMenuItemClickInternal()
void onPostStatisticMenuItemClick()
{
Statistics.INSTANCE.trackToolbarMenu(getItem());
getActivity().closeMenu(getActivity()::shareMyLocation);
}
}
public static class DiscoveryDelegate extends AbstractClickMenuDelegate
public static class DiscoveryDelegate extends StatisticClickMenuDelegate
{
public DiscoveryDelegate(@NonNull MwmActivity activity, @NonNull MainMenu.Item item)
{
@ -2479,14 +2519,13 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
@Override
public void onMenuItemClickInternal()
void onPostStatisticMenuItemClick()
{
Statistics.INSTANCE.trackToolbarClick(getItem());
getActivity().showDiscovery();
}
}
public static class PointToPointDelegate extends AbstractClickMenuDelegate
public static class PointToPointDelegate extends StatisticClickMenuDelegate
{
public PointToPointDelegate(@NonNull MwmActivity activity, @NonNull MainMenu.Item item)
{
@ -2494,9 +2533,8 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
@Override
public void onMenuItemClickInternal()
void onPostStatisticMenuItemClick()
{
Statistics.INSTANCE.trackToolbarClick(getItem());
getActivity().startLocationToPoint(null, false);
}
}

View file

@ -15,10 +15,12 @@ import com.mapswithme.maps.routing.RoutingController;
import com.mapswithme.util.Animations;
import com.mapswithme.util.Graphics;
import com.mapswithme.util.UiUtils;
import com.mapswithme.util.statistics.StatisticValueConverter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
public class MainMenu extends BaseMenu
@ -120,7 +122,7 @@ public class MainMenu extends BaseMenu
}
};
public enum Item implements BaseMenu.Item
public enum Item implements BaseMenu.Item, StatisticValueConverter<String>
{
MENU(R.id.toggle)
{
@ -152,6 +154,23 @@ public class MainMenu extends BaseMenu
return new MwmActivity.DownloadGuidesDelegate(activity, item);
}
},
HOTEL_SEARCH(R.id.hotel_search)
{
@NonNull
@Override
public ClickMenuDelegate createClickDelegate(@NonNull MwmActivity activity,
@NonNull Item item)
{
return new MwmActivity.HotelSearchDelegate(activity, item);
}
@NonNull
@Override
public String toStatisticValue()
{
return "booking.com";
}
},
SEARCH(R.id.search)
{
@NonNull
@ -245,6 +264,13 @@ public class MainMenu extends BaseMenu
@NonNull
public abstract ClickMenuDelegate createClickDelegate(@NonNull MwmActivity activity,
@NonNull Item item);
@NonNull
@Override
public String toStatisticValue()
{
return name().toLowerCase(Locale.ENGLISH);
}
}
@Override
@ -318,6 +344,7 @@ public class MainMenu extends BaseMenu
{
mapItem(Item.ADD_PLACE);
mapItem(Item.DOWNLOAD_GUIDES);
mapItem(Item.HOTEL_SEARCH);
mapItem(Item.SEARCH);
mapItem(Item.POINT_TO_POINT);
mapItem(Item.DISCOVERY);

View file

@ -1439,7 +1439,7 @@ public enum Statistics
@NonNull
private static ParameterBuilder getToolbarParams(@NonNull MainMenu.Item button)
{
return params().add(BUTTON, button.name().toLowerCase());
return params().add(BUTTON, button.toStatisticValue());
}
public void trackPPBannerClose(@BannerState int state, boolean isCross)