[android] fix: Corrected interaction between menu, placepage and fading view.

This commit is contained in:
Alexander Marchuk 2016-01-27 13:53:14 +03:00 committed by Sergey Yershov
parent 7104a69837
commit ed1ac3e6d4
3 changed files with 41 additions and 11 deletions

View file

@ -24,6 +24,9 @@ import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.Toast;
import java.io.Serializable;
import java.util.Stack;
import com.mapswithme.country.ActiveCountryTree;
import com.mapswithme.country.DownloadActivity;
import com.mapswithme.country.DownloadFragment;
@ -69,15 +72,12 @@ import com.mapswithme.util.ThemeUtils;
import com.mapswithme.util.UiUtils;
import com.mapswithme.util.Utils;
import com.mapswithme.util.Yota;
import com.mapswithme.util.concurrency.UiThread;
import com.mapswithme.util.sharing.ShareOption;
import com.mapswithme.util.sharing.SharingHelper;
import com.mapswithme.util.statistics.AlohaHelper;
import com.mapswithme.util.statistics.MytargetHelper;
import com.mapswithme.util.statistics.Statistics;
import java.io.Serializable;
import java.util.Stack;
import ru.mail.android.mytarget.nativeads.NativeAppwallAd;
import ru.mail.android.mytarget.nativeads.banners.NativeAppwallBanner;
@ -129,6 +129,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
private boolean mIsFragmentContainer;
private boolean mIsFullscreen;
private boolean mIsFullscreenAnimating;
private LocationPredictor mLocationPredictor;
private FloatingSearchToolbarController mSearchController;
@ -382,9 +383,9 @@ public class MwmActivity extends BaseMwmFragmentActivity
mFadeView.setListener(new FadeView.Listener()
{
@Override
public void onTouch()
public boolean onTouch()
{
mMainMenu.close(true);
return mMainMenu.close(true);
}
});
@ -498,6 +499,9 @@ public class MwmActivity extends BaseMwmFragmentActivity
@Override
public void onItemClick(MainMenu.Item item)
{
if (mIsFullscreenAnimating)
return;
switch (item)
{
case TOGGLE:
@ -1062,6 +1066,10 @@ public class MwmActivity extends BaseMwmFragmentActivity
mIsFullscreen = isFullscreen;
if (isFullscreen)
{
if (mMainMenu.isAnimating())
return;
mIsFullscreenAnimating = true;
Animations.disappearSliding(mMainMenu.getFrame(), Animations.BOTTOM, new Runnable()
{
@Override
@ -1070,6 +1078,8 @@ public class MwmActivity extends BaseMwmFragmentActivity
final int menuHeight = mMainMenu.getFrame().getHeight();
adjustCompass(0, menuHeight);
adjustRuler(0, menuHeight);
mIsFullscreenAnimating = false;
}
});
if (showZoomButtons())
@ -1100,7 +1110,20 @@ public class MwmActivity extends BaseMwmFragmentActivity
@Override
public void onPreviewVisibilityChanged(boolean isVisible)
{
if (!isVisible)
if (isVisible)
{
if (mMainMenu.isAnimating() || mMainMenu.isOpen())
UiThread.runLater(new Runnable()
{
@Override
public void run()
{
if (mMainMenu.close(true))
mFadeView.fadeOut(false);
}
}, MainMenu.ANIMATION_DURATION * 2);
}
else
{
Framework.deactivatePopup();
mPlacePage.setMapObject(null);

View file

@ -4,7 +4,6 @@ import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.view.ViewCompat;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.FrameLayout;
@ -31,7 +30,7 @@ public class FadeView extends FrameLayout
public interface Listener
{
void onTouch();
boolean onTouch();
}
private Listener mListener;
@ -68,7 +67,10 @@ public class FadeView extends FrameLayout
public void fadeOut(boolean notify)
{
if (mListener != null && notify)
mListener.onTouch();
{
if (!mListener.onTouch())
return;
}
ObjectAnimator animation = ObjectAnimator.ofFloat(this, PROPERTY_ALPHA, FADE_ALPHA_VALUE, 0f);
animation.addListener(mFadeOutListener);

View file

@ -51,7 +51,7 @@ public class MainMenu
}
}
private static final int ANIMATION_DURATION = MwmApplication.get().getResources().getInteger(R.integer.anim_menu);
public static final int ANIMATION_DURATION = MwmApplication.get().getResources().getInteger(R.integer.anim_menu);
private static final String TAG_COLLAPSE = MwmApplication.get().getString(R.string.tag_menu_collapse);
private final int mButtonsWidth = UiUtils.dimen(R.dimen.menu_line_button_width);
@ -562,4 +562,9 @@ public class MainMenu
{
return mRouteStartButton;
}
public boolean isAnimating()
{
return mAnimating;
}
}