Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorr.kuznetsov <r.kuznetsov@corp.mail.ru>2018-05-07 12:49:44 +0300
committerArsentiy Milchakov <milcars@mapswithme.com>2018-05-07 18:03:39 +0300
commitd0a762cbaa11f1a312f421d60979877e69f40687 (patch)
treeabdab9312965a000b96c8e59728e0f990400bc29 /android/src
parentd0faaca2eaad4463f5e9bd68e9345a7e1e1e998d (diff)
Review fixes
Diffstat (limited to 'android/src')
-rw-r--r--android/src/com/mapswithme/maps/widget/placepage/PlacePageButtons.java301
-rw-r--r--android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java13
2 files changed, 224 insertions, 90 deletions
diff --git a/android/src/com/mapswithme/maps/widget/placepage/PlacePageButtons.java b/android/src/com/mapswithme/maps/widget/placepage/PlacePageButtons.java
index 07ca97be19..7d2b936f29 100644
--- a/android/src/com/mapswithme/maps/widget/placepage/PlacePageButtons.java
+++ b/android/src/com/mapswithme/maps/widget/placepage/PlacePageButtons.java
@@ -3,7 +3,6 @@ package com.mapswithme.maps.widget.placepage;
import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
import android.support.annotation.StringRes;
import android.view.LayoutInflater;
import android.view.MenuItem;
@@ -12,261 +11,394 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
import com.mapswithme.maps.MwmApplication;
import com.mapswithme.maps.R;
import com.mapswithme.maps.routing.RoutingController;
import com.mapswithme.util.BottomSheetHelper;
import com.mapswithme.util.ThemeUtils;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
final class PlacePageButtons
{
- private final int MAX_BUTTONS;
+ private static final Map<Integer, PartnerItem> PARTNERS_ITEMS = new HashMap<Integer, PartnerItem>()
+ {{
+ put(PartnerItem.PARTNER1.getIndex(), PartnerItem.PARTNER1);
+ put(PartnerItem.PARTNER3.getIndex(), PartnerItem.PARTNER3);
+ }};
+
+ private final int mMaxButtons;
private final PlacePageView mPlacePage;
private final ViewGroup mFrame;
private final ItemListener mItemListener;
- private List<Item> mPrevItems;
+ private List<ButtonInterface> mPrevItems;
- enum Item
+ interface ButtonInterface
{
- BOOKING
+ @StringRes
+ int getTitle();
+
+ @DrawableRes
+ int getIcon();
+
+ @NonNull
+ ButtonType getType();
+ }
+
+ enum ButtonType
+ {
+ PARTNER1, PARTNER3, BOOKING, BOOKING_SEARCH, OPENTABLE, BACK, BOOKMARK,
+ ROUTE_FROM, ROUTE_TO, ROUTE_ADD, ROUTE_REMOVE, SHARE, MORE, CALL
+ }
+
+ private enum PartnerItem implements ButtonInterface
+ {
+ PARTNER1(1)
{
@Override
- int getTitle()
+ public int getTitle()
{
- return R.string.book_button;
+ return R.string.sponsored_partner1_action;
}
@Override
- int getIcon()
+ public int getIcon()
{
- return R.drawable.ic_booking;
+ return R.drawable.ic_24px_logo_partner1;
+ }
+
+ @NonNull
+ public ButtonType getType()
+ {
+ return ButtonType.PARTNER1;
}
},
- BOOKING_SEARCH
+ PARTNER3(3)
{
@Override
- int getTitle()
+ public int getTitle()
{
- return R.string.booking_search;
+ return R.string.sponsored_partner3_action;
}
@Override
- int getIcon()
+ public int getIcon()
{
- return R.drawable.ic_menu_search;
+ return R.drawable.ic_24px_logo_partner3;
}
- },
- OPENTABLE
+ @Override
+ @NonNull
+ public ButtonType getType()
+ {
+ return ButtonType.PARTNER3;
+ }
+ };
+
+ private final int mIndex;
+
+ PartnerItem(int index)
+ {
+ mIndex = index;
+ }
+
+ public int getIndex()
+ {
+ return mIndex;
+ }
+ }
+
+ enum Item implements ButtonInterface
+ {
+ BOOKING
{
@Override
- int getTitle()
+ public int getTitle()
{
return R.string.book_button;
}
@Override
- int getIcon()
+ public int getIcon()
{
- return R.drawable.ic_opentable;
+ return R.drawable.ic_booking;
+ }
+
+ @Override
+ @NonNull
+ public ButtonType getType()
+ {
+ return ButtonType.BOOKING;
}
},
- PARTNER1
+ BOOKING_SEARCH
{
@Override
- int getTitle()
+ public int getTitle()
{
- return R.string.sponsored_partner1_action;
+ return R.string.booking_search;
}
@Override
- int getIcon()
+ public int getIcon()
{
- return R.drawable.ic_24px_logo_partner1;
+ return R.drawable.ic_menu_search;
+ }
+
+ @NonNull
+ @Override
+ public ButtonType getType()
+ {
+ return ButtonType.BOOKING_SEARCH;
}
},
- PARTNER3
+ OPENTABLE
{
@Override
- int getTitle()
+ public int getTitle()
{
- return R.string.sponsored_partner3_action;
+ return R.string.book_button;
}
@Override
- int getIcon()
+ public int getIcon()
{
- return R.drawable.ic_24px_logo_partner3;
+ return R.drawable.ic_opentable;
+ }
+
+ @NonNull
+ @Override
+ public ButtonType getType()
+ {
+ return ButtonType.OPENTABLE;
}
},
BACK
{
@Override
- int getTitle()
+ public int getTitle()
{
return R.string.back;
}
@Override
- int getIcon()
+ public int getIcon()
{
return ThemeUtils.getResource(MwmApplication.get(), android.R.attr.homeAsUpIndicator);
}
+
+ @NonNull
+ @Override
+ public ButtonType getType()
+ {
+ return ButtonType.BACK;
+ }
},
BOOKMARK
{
@Override
- int getTitle()
+ public int getTitle()
{
return R.string.bookmark;
}
@Override
- int getIcon()
+ public int getIcon()
{
return R.drawable.ic_bookmarks_off;
}
+
+ @NonNull
+ @Override
+ public ButtonType getType()
+ {
+ return ButtonType.BOOKMARK;
+ }
},
ROUTE_FROM
{
@Override
- int getTitle()
+ public int getTitle()
{
return R.string.p2p_from_here;
}
@Override
- int getIcon()
+ public int getIcon()
{
return R.drawable.ic_route_from;
}
+
+ @NonNull
+ @Override
+ public ButtonType getType()
+ {
+ return ButtonType.ROUTE_FROM;
+ }
},
ROUTE_TO
{
@Override
- int getTitle()
+ public int getTitle()
{
return R.string.p2p_to_here;
}
@Override
- int getIcon()
+ public int getIcon()
{
return R.drawable.ic_route_to;
}
+
+ @NonNull
+ @Override
+ public ButtonType getType()
+ {
+ return ButtonType.ROUTE_TO;
+ }
},
ROUTE_ADD
{
@Override
- int getTitle()
+ public int getTitle()
{
return R.string.placepage_add_stop;
}
@Override
- int getIcon()
+ public int getIcon()
{
return R.drawable.ic_route_via;
}
+
+ @NonNull
+ @Override
+ public ButtonType getType()
+ {
+ return ButtonType.ROUTE_ADD;
+ }
},
ROUTE_REMOVE
{
@Override
- int getTitle()
+ public int getTitle()
{
return R.string.placepage_remove_stop;
}
@Override
- int getIcon()
+ public int getIcon()
{
return R.drawable.ic_route_remove;
}
+
+ @NonNull
+ @Override
+ public ButtonType getType()
+ {
+ return ButtonType.ROUTE_REMOVE;
+ }
},
SHARE
{
@Override
- int getTitle()
+ public int getTitle()
{
return R.string.share;
}
@Override
- int getIcon()
+ public int getIcon()
{
return R.drawable.ic_share;
}
+
+ @NonNull
+ @Override
+ public ButtonType getType()
+ {
+ return ButtonType.SHARE;
+ }
},
// Must not be used outside
MORE
{
@Override
- int getTitle()
+ public int getTitle()
{
return R.string.placepage_more_button;
}
@Override
- int getIcon()
+ public int getIcon()
{
return R.drawable.bs_ic_more;
}
+
+ @NonNull
+ @Override
+ public ButtonType getType()
+ {
+ return ButtonType.MORE;
+ }
},
+
CALL
{
@Override
- int getTitle()
+ public int getTitle()
{
return R.string.placepage_call_button;
}
@Override
- int getIcon()
+ public int getIcon()
{
return R.drawable.ic_place_page_phone;
}
+
+ @NonNull
+ @Override
+ public ButtonType getType()
+ {
+ return ButtonType.CALL;
+ }
};
- @StringRes int getTitle()
+ @StringRes
+ public int getTitle()
{
throw new UnsupportedOperationException("Not supported!");
}
- @DrawableRes int getIcon()
+ @DrawableRes
+ public int getIcon()
{
throw new UnsupportedOperationException("Not supported!");
}
}
- private static final Map<Integer, Item> PARTNERS_ITEMS = new HashMap<Integer, Item>()
- {{
- put(1, Item.PARTNER1);
- put(3, Item.PARTNER3);
- }};
-
interface ItemListener
{
- void onPrepareVisibleView(Item item, View frame, ImageView icon, TextView title);
- void onItemClick(Item item);
+ void onPrepareVisibleView(ButtonInterface item, View frame, ImageView icon, TextView title);
+ void onItemClick(ButtonInterface item);
}
PlacePageButtons(PlacePageView placePage, ViewGroup frame, ItemListener itemListener)
@@ -275,22 +407,23 @@ final class PlacePageButtons
mFrame = frame;
mItemListener = itemListener;
- MAX_BUTTONS = mPlacePage.getContext().getResources().getInteger(R.integer.pp_buttons_max);
+ mMaxButtons = mPlacePage.getContext().getResources().getInteger(R.integer.pp_buttons_max);
}
@NonNull
- static Item getPartnerItem(int partnerIndex)
+ static ButtonInterface getPartnerItem(int partnerIndex)
{
- if (!PARTNERS_ITEMS.containsKey(partnerIndex))
+ ButtonInterface item = PARTNERS_ITEMS.get(partnerIndex);
+ if (item == null)
throw new AssertionError("Wrong partner index: " + partnerIndex);
- return PARTNERS_ITEMS.get(partnerIndex);
+ return item;
}
- private @NonNull List<Item> collectButtons(List<Item> items)
+ private @NonNull List<ButtonInterface> collectButtons(List<ButtonInterface> items)
{
- List<Item> res = new ArrayList<>(items);
- if (res.size() > MAX_BUTTONS)
- res.add(MAX_BUTTONS - 1, Item.MORE);
+ List<ButtonInterface> res = new ArrayList<>(items);
+ if (res.size() > mMaxButtons)
+ res.add(mMaxButtons - 1, Item.MORE);
// Swap ROUTE_FROM and ROUTE_TO if the latter one was pressed out to bottomsheet
int from = res.indexOf(Item.ROUTE_FROM);
@@ -298,10 +431,10 @@ final class PlacePageButtons
{
int addStop = res.indexOf(Item.ROUTE_ADD);
int to = res.indexOf(Item.ROUTE_TO);
- if ((to > from && to >= MAX_BUTTONS) || (to > from && addStop >= MAX_BUTTONS))
+ if ((to > from && to >= mMaxButtons) || (to > from && addStop >= mMaxButtons))
Collections.swap(res, from, to);
- if (addStop >= MAX_BUTTONS)
+ if (addStop >= mMaxButtons)
{
from = res.indexOf(Item.ROUTE_FROM);
if (addStop > from)
@@ -313,14 +446,14 @@ final class PlacePageButtons
preserveRoutingButtons(res, Item.BOOKING_SEARCH);
from = res.indexOf(Item.ROUTE_FROM);
to = res.indexOf(Item.ROUTE_TO);
- if (from < MAX_BUTTONS && from > to)
+ if (from < mMaxButtons && from > to)
Collections.swap(res, to, from);
}
return res;
}
- private void preserveRoutingButtons(@NonNull List<Item> items, @NonNull Item itemToShift)
+ private void preserveRoutingButtons(@NonNull List<ButtonInterface> items, @NonNull Item itemToShift)
{
if (!RoutingController.get().isNavigating() && !RoutingController.get().isPlanning())
return;
@@ -329,14 +462,14 @@ final class PlacePageButtons
if (pos > -1)
{
items.remove(pos);
- items.add(MAX_BUTTONS, itemToShift);
+ items.add(mMaxButtons, itemToShift);
int to = items.indexOf(Item.ROUTE_TO);
if (items.indexOf(Item.ROUTE_ADD) > -1)
{
items.remove(Item.ROUTE_ADD);
items.remove(Item.ROUTE_FROM);
items.add(to + 1, Item.ROUTE_ADD);
- items.add(MAX_BUTTONS, Item.ROUTE_FROM);
+ items.add(mMaxButtons, Item.ROUTE_FROM);
}
else
{
@@ -346,12 +479,12 @@ final class PlacePageButtons
}
}
- private void showPopup(final List<Item> buttons)
+ private void showPopup(final List<ButtonInterface> buttons)
{
BottomSheetHelper.Builder bs = new BottomSheetHelper.Builder(mPlacePage.getActivity());
- for (int i = MAX_BUTTONS; i < buttons.size(); i++)
+ for (int i = mMaxButtons; i < buttons.size(); i++)
{
- Item bsItem = buttons.get(i);
+ ButtonInterface bsItem = buttons.get(i);
bs.sheet(i, bsItem.getIcon(), bsItem.getTitle());
}
@@ -368,7 +501,7 @@ final class PlacePageButtons
bs.tint().show();
}
- private View createButton(final List<Item> items, final Item current)
+ private View createButton(final List<ButtonInterface> items, final ButtonInterface current)
{
View res = LayoutInflater.from(mPlacePage.getContext()).inflate(R.layout.place_page_button, mFrame, false);
@@ -395,14 +528,14 @@ final class PlacePageButtons
return res;
}
- void setItems(List<Item> items)
+ void setItems(List<ButtonInterface> items)
{
- final List<Item> buttons = collectButtons(items);
+ final List<ButtonInterface> buttons = collectButtons(items);
if (buttons.equals(mPrevItems))
return;
mFrame.removeAllViews();
- int count = Math.min(buttons.size(), MAX_BUTTONS);
+ int count = Math.min(buttons.size(), mMaxButtons);
for (int i = 0; i < count; i++)
mFrame.addView(createButton(buttons, buttons.get(i)));
diff --git a/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java b/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java
index 8ff522f81c..ed24e5bb36 100644
--- a/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java
+++ b/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java
@@ -107,6 +107,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Locale;
+import static com.mapswithme.maps.widget.placepage.PlacePageButtons.Item.BOOKING;
import static com.mapswithme.util.statistics.Destination.EXTERNAL;
import static com.mapswithme.util.statistics.GalleryPlacement.PLACEPAGE;
import static com.mapswithme.util.statistics.Statistics.EventName.PP_HOTEL_DESCRIPTION_LAND;
@@ -448,11 +449,11 @@ public class PlacePageView extends RelativeLayout
mButtons = new PlacePageButtons(this, ppButtons, new PlacePageButtons.ItemListener()
{
@Override
- public void onPrepareVisibleView(PlacePageButtons.Item item, View frame, ImageView icon, TextView title)
+ public void onPrepareVisibleView(PlacePageButtons.ButtonInterface item, View frame, ImageView icon, TextView title)
{
int color;
- switch (item)
+ switch (item.getType())
{
case BOOKING:
frame.setBackgroundResource(R.drawable.button_booking);
@@ -495,9 +496,9 @@ public class PlacePageView extends RelativeLayout
}
@Override
- public void onItemClick(PlacePageButtons.Item item)
+ public void onItemClick(PlacePageButtons.ButtonInterface item)
{
- switch (item)
+ switch (item.getType())
{
case BOOKMARK:
if (mMapObject == null)
@@ -1591,7 +1592,7 @@ public class PlacePageView extends RelativeLayout
private void setButtons(@NonNull MapObject mapObject, boolean showBackButton, boolean showRoutingButton)
{
- List<PlacePageButtons.Item> buttons = new ArrayList<>();
+ List<PlacePageButtons.ButtonInterface> buttons = new ArrayList<>();
if (RoutingController.get().isRoutePoint(mapObject))
{
buttons.add(PlacePageButtons.Item.ROUTE_REMOVE);
@@ -1607,7 +1608,7 @@ public class PlacePageView extends RelativeLayout
switch (mSponsored.getType())
{
case Sponsored.TYPE_BOOKING:
- buttons.add(PlacePageButtons.Item.BOOKING);
+ buttons.add(BOOKING);
break;
case Sponsored.TYPE_OPENTABLE:
buttons.add(PlacePageButtons.Item.OPENTABLE);