diff --git a/android/res/layout-land/place_page.xml b/android/res/layout-land/place_page.xml
index 709ae440b3..962456318a 100644
--- a/android/res/layout-land/place_page.xml
+++ b/android/res/layout-land/place_page.xml
@@ -29,7 +29,7 @@
+ android:textSize="@dimen/place_page_subtitle"
+ android:visibility="gone"/>
diff --git a/android/res/layout-sw600dp/details_place_page.xml b/android/res/layout-sw600dp/details_place_page.xml
index 6d0fd45e91..66406534bb 100644
--- a/android/res/layout-sw600dp/details_place_page.xml
+++ b/android/res/layout-sw600dp/details_place_page.xml
@@ -193,8 +193,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/ll__details_left"
- android:paddingTop="@dimen/margin_medium_and_half"
- android:visibility="invisible">
+ android:visibility="invisible"
+ android:paddingTop="@dimen/margin_medium_and_half">
+ android:paddingBottom="@dimen/margin_medium_and_half"
+ android:paddingLeft="@dimen/margin_medium_and_half"
+ android:paddingRight="@dimen/margin_medium_and_half">
+
+
+ android:paddingTop="@dimen/margin_medium_and_half">
.99f)
+ mDetails.setVisibility(View.INVISIBLE);
}
});
}
animator.setDuration(SHORT_ANIM_DURATION);
animator.setInterpolator(new AccelerateInterpolator());
animator.start();
-
- mIsPreviewVisible = show;
- if (mVisibilityChangedListener != null)
- mVisibilityChangedListener.onPreviewVisibilityChanged(mIsPreviewVisible);
}
- @Override
- protected void showPlacePage(final boolean show)
+ protected void showDetails(final State currentState)
{
mPlacePage.setVisibility(View.VISIBLE);
+ mPreview.setVisibility(View.VISIBLE);
mDetails.setVisibility(View.VISIBLE);
- if (mIsPlacePageVisible == show)
- return; // if state is already same as we need
ValueAnimator animator;
- final float animHeight = mDetails.getHeight();
- if (show)
- {
- animator = ValueAnimator.ofFloat(animHeight, 0f);
- animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
- {
- @Override
- public void onAnimationUpdate(ValueAnimator animation)
- {
- ViewHelper.setTranslationY(mDetails, (Float) animation.getAnimatedValue());
- ViewHelper.setTranslationY(mPreview, (Float) animation.getAnimatedValue() - animHeight);
- }
- });
- }
+ final float bookmarkHeight = mBookmarkDetails.getHeight();
+ final float detailsHeight = mDetails.getHeight();
+ if (currentState == State.PREVIEW)
+ animator = ValueAnimator.ofFloat(detailsHeight, bookmarkHeight);
else
+ animator = ValueAnimator.ofFloat(0f, bookmarkHeight);
+ animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
{
- animator = ValueAnimator.ofFloat(0, animHeight);
- animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
+ @Override
+ public void onAnimationUpdate(ValueAnimator animation)
{
- @Override
- public void onAnimationUpdate(ValueAnimator animation)
- {
- ViewHelper.setTranslationY(mDetails, (Float) animation.getAnimatedValue());
- ViewHelper.setTranslationY(mPreview, (Float) animation.getAnimatedValue() - animHeight);
+ ViewHelper.setTranslationY(mPreview, (Float) animation.getAnimatedValue() - detailsHeight);
+ ViewHelper.setTranslationY(mDetails, (Float) animation.getAnimatedValue());
+ }
+ });
+
+ animator.setDuration(SHORT_ANIM_DURATION);
+ animator.setInterpolator(new AccelerateInterpolator());
+ animator.start();
+ }
+
+ void showBookmark(final State currentState)
+ {
+ mPlacePage.setVisibility(View.VISIBLE);
+ mPreview.setVisibility(View.VISIBLE);
+ mDetails.setVisibility(View.VISIBLE);
+ mBookmarkDetails.setVisibility(View.VISIBLE);
+
+ ValueAnimator animator;
+ final float bookmarkHeight = mBookmarkDetails.getHeight();
+ final float detailsHeight = mDetails.getHeight();
+
+ if (currentState == State.DETAILS)
+ animator = ValueAnimator.ofFloat(bookmarkHeight, 0f);
+ else
+ animator = ValueAnimator.ofFloat(detailsHeight, 0f);
+ animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
+ {
+ @Override
+ public void onAnimationUpdate(ValueAnimator animation)
+ {
+ ViewHelper.setTranslationY(mPreview, (Float) animation.getAnimatedValue() - detailsHeight);
+ ViewHelper.setTranslationY(mDetails, (Float) animation.getAnimatedValue());
+ }
+ });
- if (1f - animation.getAnimatedFraction() < 0.01)
- {
- mDetails.setVisibility(View.INVISIBLE);
- ViewHelper.setTranslationY(mPreview, 0f);
- }
- }
- });
- }
animator.setDuration(SHORT_ANIM_DURATION);
animator.setInterpolator(new AccelerateInterpolator());
animator.start();
-
- mIsPlacePageVisible = show;
- if (mVisibilityChangedListener != null)
- mVisibilityChangedListener.onPlacePageVisibilityChanged(mIsPlacePageVisible);
}
- @Override
protected void hidePlacePage()
{
final float animHeight = mPlacePage.getHeight() - mPreview.getTop() - ViewHelper.getTranslationY(mPreview);
- final ValueAnimator animator = ValueAnimator.ofFloat(0, animHeight);
+ final ValueAnimator animator = ValueAnimator.ofFloat(0f, animHeight);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
{
@Override
@@ -220,13 +237,13 @@ public class BottomPlacePageAnimationController extends BasePlacePageAnimationCo
{
ViewHelper.setTranslationY(mPlacePage, (Float) animation.getAnimatedValue());
- if (1f - animation.getAnimatedFraction() < 0.01)
+ if (animation.getAnimatedFraction() > .99f)
{
mIsPlacePageVisible = false;
mIsPreviewVisible = false;
mPlacePage.setVisibility(View.INVISIBLE);
- ViewHelper.setTranslationY(mPlacePage, 0f);
+ ViewHelper.setTranslationY(mPlacePage, 0);
if (mVisibilityChangedListener != null)
{
mVisibilityChangedListener.onPreviewVisibilityChanged(false);
@@ -235,7 +252,7 @@ public class BottomPlacePageAnimationController extends BasePlacePageAnimationCo
}
}
});
- animator.setDuration(LONG_ANIM_DURATION);
+ animator.setDuration(SHORT_ANIM_DURATION);
animator.setInterpolator(new AccelerateInterpolator());
animator.start();
}
diff --git a/android/src/com/mapswithme/maps/widget/placepage/LeftFloatPlacePageAnimationController.java b/android/src/com/mapswithme/maps/widget/placepage/LeftFloatPlacePageAnimationController.java
index c08c48a561..32748d4882 100644
--- a/android/src/com/mapswithme/maps/widget/placepage/LeftFloatPlacePageAnimationController.java
+++ b/android/src/com/mapswithme/maps/widget/placepage/LeftFloatPlacePageAnimationController.java
@@ -86,16 +86,28 @@ public class LeftFloatPlacePageAnimationController extends BasePlacePageAnimatio
}
@Override
- protected void showPlacePage(final boolean show)
+ void setState(State currentState, State newState)
{
- if (mIsPlacePageVisible == show)
- return; // if state is already same as we need
+ switch (newState)
+ {
+ case HIDDEN:
+ hidePlacePage();
+ break;
+ case BOOKMARK:
+ case DETAILS:
+ case PREVIEW:
+ showPlacePage(currentState, newState);
+ break;
+ }
+ }
+ protected void showPlacePage(final State currentState, final State newState)
+ {
mPlacePage.setVisibility(View.VISIBLE);
- ValueAnimator animator;
- if (show)
+ mBookmarkDetails.setVisibility(newState == State.BOOKMARK ? View.VISIBLE : View.GONE);
+ if (currentState == State.HIDDEN)
{
- animator = ValueAnimator.ofFloat(mPlacePage.getHeight(), 0f);
+ ValueAnimator animator = ValueAnimator.ofFloat(mPlacePage.getHeight(), 0f);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
{
@Override
@@ -104,46 +116,37 @@ public class LeftFloatPlacePageAnimationController extends BasePlacePageAnimatio
ViewHelper.setTranslationY(mPlacePage, (Float) animation.getAnimatedValue());
}
});
- }
- else
- {
- animator = ValueAnimator.ofFloat(0, mPlacePage.getHeight());
- animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
- {
- @Override
- public void onAnimationUpdate(ValueAnimator animation)
- {
- ViewHelper.setTranslationY(mPlacePage, (Float) animation.getAnimatedValue());
- if (1f - animation.getAnimatedFraction() < 0.01)
- {
- mPlacePage.setVisibility(View.INVISIBLE);
- mPlacePage.setMapObject(null);
- }
- }
- });
- }
- animator.setDuration(LONG_ANIM_DURATION);
- animator.setInterpolator(new AccelerateInterpolator());
- animator.start();
-
- mIsPlacePageVisible = show;
- if (mVisibilityChangedListener != null)
- {
- mVisibilityChangedListener.onPreviewVisibilityChanged(mIsPlacePageVisible);
- mVisibilityChangedListener.onPlacePageVisibilityChanged(mIsPlacePageVisible);
+ animator.setDuration(SHORT_ANIM_DURATION);
+ animator.setInterpolator(new AccelerateInterpolator());
+ animator.start();
}
+ mVisibilityChangedListener.onPlacePageVisibilityChanged(true);
+ mVisibilityChangedListener.onPreviewVisibilityChanged(true);
}
- @Override
- protected void showPreview(final boolean show)
- {
- showPlacePage(show);
- }
-
- @Override
protected void hidePlacePage()
{
- showPlacePage(false);
+ ValueAnimator animator;
+ animator = ValueAnimator.ofFloat(0, mPlacePage.getHeight());
+ animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
+ {
+ @Override
+ public void onAnimationUpdate(ValueAnimator animation)
+ {
+ ViewHelper.setTranslationY(mPlacePage, (Float) animation.getAnimatedValue());
+
+ if (animation.getAnimatedFraction() > 0.99f)
+ {
+ mPlacePage.setVisibility(View.INVISIBLE);
+ mVisibilityChangedListener.onPlacePageVisibilityChanged(false);
+ mVisibilityChangedListener.onPreviewVisibilityChanged(false);
+ }
+ }
+ });
+
+ animator.setDuration(SHORT_ANIM_DURATION);
+ animator.setInterpolator(new AccelerateInterpolator());
+ animator.start();
}
}
diff --git a/android/src/com/mapswithme/maps/widget/placepage/LeftFullAnimationController.java b/android/src/com/mapswithme/maps/widget/placepage/LeftFullAnimationController.java
index 887df9c72d..f1bf9be0af 100644
--- a/android/src/com/mapswithme/maps/widget/placepage/LeftFullAnimationController.java
+++ b/android/src/com/mapswithme/maps/widget/placepage/LeftFullAnimationController.java
@@ -5,11 +5,11 @@ import android.support.v4.view.GestureDetectorCompat;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
-import android.view.animation.Animation;
-import android.view.animation.TranslateAnimation;
+import android.view.animation.AccelerateInterpolator;
import com.mapswithme.maps.widget.placepage.PlacePageView.State;
-import com.mapswithme.util.UiUtils;
+import com.nineoldandroids.animation.ValueAnimator;
+import com.nineoldandroids.view.ViewHelper;
public class LeftFullAnimationController extends BasePlacePageAnimationController
{
@@ -81,50 +81,69 @@ public class LeftFullAnimationController extends BasePlacePageAnimationControlle
});
}
+
@Override
- protected void showPreview(final boolean show)
+ void setState(State currentState, State newState)
{
- showPlacePage(show);
+ switch (newState)
+ {
+ case HIDDEN:
+ hidePlacePage();
+ break;
+ case BOOKMARK:
+ case DETAILS:
+ case PREVIEW:
+ showPlacePage(currentState, newState);
+ break;
+ }
}
- @Override
- protected void showPlacePage(final boolean show)
+ protected void showPlacePage(final State currentState, final State newState)
{
- if (mIsPlacePageVisible == show)
- return;
-
- TranslateAnimation slide;
- if (show)
+ mPlacePage.setVisibility(View.VISIBLE);
+ mBookmarkDetails.setVisibility(newState == State.BOOKMARK ? View.VISIBLE : View.GONE);
+ if (currentState == State.HIDDEN)
{
- slide = UiUtils.generateRelativeSlideAnimation(-1, 0, 0, 0);
- }
- else
- {
- slide = UiUtils.generateRelativeSlideAnimation(0, -1, 0, 0);
- slide.setAnimationListener(new UiUtils.SimpleAnimationListener()
+ ValueAnimator animator = ValueAnimator.ofFloat(-mPlacePage.getWidth(), 0f);
+ animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
{
@Override
- public void onAnimationEnd(Animation animation)
+ public void onAnimationUpdate(ValueAnimator animation)
{
- mIsPlacePageVisible = false;
- mIsPreviewVisible = false;
- mPlacePage.setVisibility(View.GONE);
+ ViewHelper.setTranslationX(mPlacePage, (Float) animation.getAnimatedValue());
}
});
+
+ animator.setDuration(SHORT_ANIM_DURATION);
+ animator.setInterpolator(new AccelerateInterpolator());
+ animator.start();
}
- slide.setDuration(LONG_ANIM_DURATION);
- mPlacePage.startAnimation(slide);
- mPlacePage.setVisibility(View.VISIBLE);
- if (mVisibilityChangedListener != null)
- {
- mVisibilityChangedListener.onPlacePageVisibilityChanged(true);
- mIsPlacePageVisible = true;
- }
+ mVisibilityChangedListener.onPlacePageVisibilityChanged(true);
+ mVisibilityChangedListener.onPreviewVisibilityChanged(true);
}
- @Override
protected void hidePlacePage()
{
- showPlacePage(false);
+ ValueAnimator animator;
+ animator = ValueAnimator.ofFloat(0f, -mPlacePage.getWidth());
+ animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
+ {
+ @Override
+ public void onAnimationUpdate(ValueAnimator animation)
+ {
+ ViewHelper.setTranslationX(mPlacePage, (Float) animation.getAnimatedValue());
+
+ if (animation.getAnimatedFraction() > 0.99f)
+ {
+ mPlacePage.setVisibility(View.INVISIBLE);
+ mVisibilityChangedListener.onPlacePageVisibilityChanged(false);
+ mVisibilityChangedListener.onPreviewVisibilityChanged(false);
+ }
+ }
+ });
+
+ animator.setDuration(SHORT_ANIM_DURATION);
+ animator.setInterpolator(new AccelerateInterpolator());
+ animator.start();
}
}
diff --git a/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java b/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java
index 42a094209e..6e972e475a 100644
--- a/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java
+++ b/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java
@@ -68,7 +68,6 @@ public class PlacePageView extends LinearLayout implements View.OnClickListener,
private TextView mTvSchedule;
private LinearLayout mLlWifi;
// Bookmark
- private RelativeLayout mRlBookmarkDetails;
private ImageView mIvColor;
private EditText mEtBookmarkName;
private EditText mEtBookmarkNotes;
@@ -89,8 +88,9 @@ public class PlacePageView extends LinearLayout implements View.OnClickListener,
public static enum State
{
HIDDEN,
- PREVIEW_ONLY,
- FULL_PLACEPAGE
+ PREVIEW,
+ BOOKMARK,
+ DETAILS
}
public PlacePageView(Context context)
@@ -150,7 +150,6 @@ public class PlacePageView extends LinearLayout implements View.OnClickListener,
mIvColor = (ImageView) mPpDetails.findViewById(R.id.iv__bookmark_color);
mIvColor.setOnClickListener(this);
- mRlBookmarkDetails = (RelativeLayout) mPpDetails.findViewById(R.id.rl__bookmark_details);
mEtBookmarkName = (EditText) mPpDetails.findViewById(R.id.et__bookmark_name);
mEtBookmarkName.setOnEditorActionListener(this);
mEtBookmarkNotes = (EditText) mPpDetails.findViewById(R.id.et__bookmark_notes);
@@ -177,9 +176,6 @@ public class PlacePageView extends LinearLayout implements View.OnClickListener,
case 0:
mAnimationController = new BottomPlacePageAnimationController(this);
break;
- case 1:
- mAnimationController = new TopPlacePageAnimationController(this);
- break;
case 2:
mAnimationController = new LeftFloatPlacePageAnimationController(this);
break;
@@ -208,22 +204,12 @@ public class PlacePageView extends LinearLayout implements View.OnClickListener,
public void setState(State state)
{
+ if (mMapObject != null && mMapObject.getType() == MapObjectType.BOOKMARK && state == State.DETAILS)
+ state = State.BOOKMARK;
+
if (mCurrentState != state)
{
- // Do some transitions
- if (mCurrentState == State.HIDDEN && state == State.PREVIEW_ONLY)
- mAnimationController.showPreview(true);
- else if (mCurrentState == State.PREVIEW_ONLY && state == State.FULL_PLACEPAGE)
- mAnimationController.showPlacePage(true);
- else if (mCurrentState == State.PREVIEW_ONLY && state == State.HIDDEN)
- mAnimationController.showPreview(false);
- else if (mCurrentState == State.FULL_PLACEPAGE && state == State.PREVIEW_ONLY)
- mAnimationController.showPlacePage(false);
- else if (mCurrentState == State.FULL_PLACEPAGE && state == State.HIDDEN)
- mAnimationController.hidePlacePage();
- else
- return;
-
+ mAnimationController.setState(mCurrentState, state);
mCurrentState = state;
}
}
@@ -258,39 +244,27 @@ public class PlacePageView extends LinearLayout implements View.OnClickListener,
{
mMapObject.setDefaultIfEmpty(getResources());
+ refreshPreview();
+ refreshDetails();
switch (mMapObject.getType())
{
- case POI:
- refreshPreview();
- refreshDetails();
- refreshDistanceToObject(LocationHelper.INSTANCE.getLastLocation());
- refreshBookmarkDetails(false);
- refreshButtons(false);
- break;
case BOOKMARK:
- refreshPreview();
- refreshDetails();
refreshDistanceToObject(LocationHelper.INSTANCE.getLastLocation());
refreshBookmarkDetails(true);
refreshButtons(false);
break;
+ case POI:
case ADDITIONAL_LAYER:
- refreshPreview();
- refreshDetails();
refreshDistanceToObject(LocationHelper.INSTANCE.getLastLocation());
refreshBookmarkDetails(false);
refreshButtons(false);
break;
case API_POINT:
- refreshPreview();
- refreshDetails();
refreshDistanceToObject(LocationHelper.INSTANCE.getLastLocation());
refreshBookmarkDetails(false);
- refreshButtons(false);
+ refreshButtons(true);
break;
case MY_POSITION:
- refreshPreview();
- refreshDetails();
refreshMyPosition(LocationHelper.INSTANCE.getLastLocation());
refreshBookmarkDetails(false);
refreshButtons(false);
@@ -304,16 +278,13 @@ public class PlacePageView extends LinearLayout implements View.OnClickListener,
if (isBookmark)
{
final Bookmark bookmark = (Bookmark) mMapObject;
- mRlBookmarkDetails.setVisibility(View.VISIBLE);
mEtBookmarkName.setText(bookmark.getName());
mEtBookmarkNotes.setText(bookmark.getBookmarkDescription());
+ mTvBookmarkGroup.setText(bookmark.getCategoryName(getContext()));
mIvBookmark.setImageResource(R.drawable.ic_bookmark_on);
}
else
- {
- mRlBookmarkDetails.setVisibility(View.GONE);
mIvBookmark.setImageResource(R.drawable.ic_bookmark_off);
- }
}
private void refreshPreview()
@@ -329,9 +300,9 @@ public class PlacePageView extends LinearLayout implements View.OnClickListener,
refreshLatLon();
refreshMetadataOrHide(Metadata.MetadataType.FMD_URL, mLlWebsite, mTvWebsite);
refreshMetadataOrHide(Metadata.MetadataType.FMD_PHONE_NUMBER, mLlPhone, mTvPhone);
+ // TODO parse schedule (natively?)
refreshMetadataOrHide(Metadata.MetadataType.FMD_OPEN_HOURS, mLlSchedule, mTvSchedule);
refreshMetadataOrHide(Metadata.MetadataType.FMD_INTERNET, mLlWifi, null);
- // TODO refresh full details
}
private void refreshButtons(boolean showBackButton)
@@ -446,7 +417,8 @@ public class PlacePageView extends LinearLayout implements View.OnClickListener,
{
setMapObject(null);
- mAnimationController.hidePlacePage();
+ // FIXME
+// mAnimationController.hidePlacePage();
}
}
@@ -506,6 +478,7 @@ public class PlacePageView extends LinearLayout implements View.OnClickListener,
BookmarkManager.INSTANCE.deleteBookmark((Bookmark) mMapObject);
setMapObject(p);
+ setState(State.DETAILS);
}
else
{
@@ -513,6 +486,7 @@ public class PlacePageView extends LinearLayout implements View.OnClickListener,
final Bookmark newBmk = BookmarkManager.INSTANCE.getBookmark(BookmarkManager.INSTANCE.addNewBookmark(
mMapObject.getName(), mMapObject.getLat(), mMapObject.getLon()));
setMapObject(newBmk);
+ setState(State.BOOKMARK);
}
Framework.invalidate();
break;
diff --git a/android/src/com/mapswithme/maps/widget/placepage/TopPlacePageAnimationController.java b/android/src/com/mapswithme/maps/widget/placepage/TopPlacePageAnimationController.java
deleted file mode 100644
index 9c067a134a..0000000000
--- a/android/src/com/mapswithme/maps/widget/placepage/TopPlacePageAnimationController.java
+++ /dev/null
@@ -1,199 +0,0 @@
-package com.mapswithme.maps.widget.placepage;
-
-import android.support.annotation.NonNull;
-import android.support.v4.view.GestureDetectorCompat;
-import android.view.GestureDetector;
-import android.view.MotionEvent;
-import android.view.animation.Animation;
-import android.view.animation.TranslateAnimation;
-
-import com.mapswithme.maps.Framework;
-import com.mapswithme.maps.widget.placepage.PlacePageView.State;
-import com.mapswithme.util.UiUtils;
-
-public class TopPlacePageAnimationController extends BasePlacePageAnimationController
-{
- public TopPlacePageAnimationController(@NonNull PlacePageView placePage)
- {
- super(placePage);
- }
-
- @Override
- boolean onInterceptTouchEvent(MotionEvent event)
- {
- switch (event.getAction())
- {
- case MotionEvent.ACTION_DOWN:
- mIsGestureHandled = false;
- mDownCoord = event.getRawY();
- break;
- case MotionEvent.ACTION_MOVE:
- if (Math.abs(mDownCoord - event.getRawY()) > mTouchSlop)
- return true;
- break;
- }
-
- return false;
- }
-
- @Override
- protected void initGestureDetector()
- {
- // Gestures
- mGestureDetector = new GestureDetectorCompat(mPlacePage.getContext(), new GestureDetector.SimpleOnGestureListener()
- {
- private static final int Y_MIN = 1;
- private static final int Y_MAX = 100;
- private static final int X_TO_Y_SCROLL_RATIO = 2;
-
- @Override
- public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
- {
- final boolean isVertical = Math.abs(distanceY) > X_TO_Y_SCROLL_RATIO * Math.abs(distanceX);
- final boolean isInRange = Math.abs(distanceY) > Y_MIN && Math.abs(distanceY) < Y_MAX;
-
- if (isVertical && isInRange)
- {
- if (!mIsGestureHandled)
- {
- if (distanceY > 0)
- {
- if (mPlacePage.getState() == State.FULL_PLACEPAGE)
- mPlacePage.setState(State.PREVIEW_ONLY);
- else
- {
- mPlacePage.setState(State.HIDDEN);
- Framework.deactivatePopup();
- }
- }
- else
- mPlacePage.setState(State.FULL_PLACEPAGE);
-
- mIsGestureHandled = true;
- }
-
- return true;
- }
-
- return false;
- }
-
- @Override
- public boolean onSingleTapConfirmed(MotionEvent e)
- {
- if (mPlacePage.getState() == State.FULL_PLACEPAGE)
- mPlacePage.setState(State.PREVIEW_ONLY);
- else
- mPlacePage.setState(State.FULL_PLACEPAGE);
-
- return true;
- }
- });
- }
-
- @Override
- protected void showPlacePage(final boolean show)
- {
- if (mIsPlacePageVisible == show)
- return; // if state is already same as we need
-
- TranslateAnimation slide;
- if (show) // slide up
- {
- slide = UiUtils.generateRelativeSlideAnimation(0, 0, -1, 0);
- slide.setDuration(SHORT_ANIM_DURATION);
- UiUtils.show(mDetails);
- if (mVisibilityChangedListener != null)
- mVisibilityChangedListener.onPlacePageVisibilityChanged(show);
- }
- else // slide down
- {
- slide = UiUtils.generateRelativeSlideAnimation(0, 0, 0, -1);
-
- slide.setDuration(SHORT_ANIM_DURATION);
- slide.setFillEnabled(true);
- slide.setFillBefore(true);
- slide.setAnimationListener(new UiUtils.SimpleAnimationListener()
- {
- @Override
- public void onAnimationEnd(Animation animation)
- {
- UiUtils.hide(mDetails);
-
- if (mVisibilityChangedListener != null)
- mVisibilityChangedListener.onPlacePageVisibilityChanged(show);
- }
- });
- }
- mDetails.startAnimation(slide);
-
- mIsPlacePageVisible = show;
- }
-
- @Override
- protected void showPreview(final boolean show)
- {
- if (mIsPreviewVisible == show)
- return;
-
- TranslateAnimation slide;
- if (show)
- {
- slide = UiUtils.generateRelativeSlideAnimation(0, 0, -1, 0);
- UiUtils.show(mPreview);
- slide.setAnimationListener(new UiUtils.SimpleAnimationListener()
- {
- @Override
- public void onAnimationEnd(Animation animation)
- {
- if (mVisibilityChangedListener != null)
- mVisibilityChangedListener.onPreviewVisibilityChanged(show);
- }
- });
- }
- else
- {
- slide = UiUtils.generateRelativeSlideAnimation(0, 0, 0, -1);
- slide.setAnimationListener(new UiUtils.SimpleAnimationListener()
- {
- @Override
- public void onAnimationEnd(Animation animation)
- {
- UiUtils.hide(mPreview);
- if (mVisibilityChangedListener != null)
- mVisibilityChangedListener.onPreviewVisibilityChanged(show);
- }
- });
- }
- slide.setDuration(SHORT_ANIM_DURATION);
- mPreview.startAnimation(slide);
- mIsPreviewVisible = show;
- }
-
- @Override
- protected void hidePlacePage()
- {
- final TranslateAnimation slideDown = UiUtils.generateRelativeSlideAnimation(0, 0, 0, -1);
- slideDown.setDuration(LONG_ANIM_DURATION);
-
- slideDown.setAnimationListener(new UiUtils.SimpleAnimationListener()
- {
- @Override
- public void onAnimationEnd(Animation animation)
- {
- mIsPlacePageVisible = false;
- mIsPreviewVisible = false;
-
- UiUtils.hide(mPreview);
- UiUtils.hide(mDetails);
- if (mVisibilityChangedListener != null)
- {
- mVisibilityChangedListener.onPreviewVisibilityChanged(false);
- mVisibilityChangedListener.onPlacePageVisibilityChanged(false);
- }
- }
- });
-
- mPlacePage.startAnimation(slideDown);
- }
-}