From 3544b046808f95b29e27c42ed90c1b8f715ff2c8 Mon Sep 17 00:00:00 2001 From: Len Chan Date: Sun, 31 Mar 2019 19:16:00 +0800 Subject: [PATCH] scroll up and down can dismiss media activity --- .../mastodon/activities/MediaActivity.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/MediaActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/MediaActivity.java index bde6ae7ed..cea87e007 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/MediaActivity.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/MediaActivity.java @@ -95,6 +95,7 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { private CustomPhotoView imageView; private SimpleExoPlayerView videoView; private float downX; + private float downY; private int mediaPosition; MediaActivity.actionSwipe currentAction; static final int MIN_DISTANCE = 100; @@ -134,7 +135,7 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { setContentView(R.layout.activity_media); action_bar_container = (RelativeLayout) findViewById(R.id.action_bar_container); mSwipeBackLayout = new SwipeBackLayout(MediaActivity.this); - mSwipeBackLayout.setDirectionMode(SwipeBackLayout.FROM_BOTTOM); + mSwipeBackLayout.setDirectionMode(SwipeBackLayout.FROM_TOP); mSwipeBackLayout.setMaskAlpha(125); mSwipeBackLayout.setSwipeBackFactor(0.5f); mSwipeBackLayout.setSwipeBackListener(new SwipeBackLayout.OnSwipeBackListener() { @@ -306,7 +307,7 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { media_save.setVisibility(View.GONE); media_share.setVisibility(View.GONE); }else{ - media_close.setVisibility(View.VISIBLE); + action_bar_container.setVisibility(View.VISIBLE); media_close.setVisibility(View.VISIBLE); media_save.setVisibility(View.VISIBLE); media_share.setVisibility(View.VISIBLE); @@ -325,11 +326,10 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { media_description.setVisibility(View.GONE); } } - if( !canSwipe || mediaPosition > attachments.size() || mediaPosition < 1 || attachments.size() <= 1) - return super.dispatchTouchEvent(event); switch(event.getAction()){ case MotionEvent.ACTION_DOWN: { downX = event.getX(); + downY = event.getY(); //Displays navigation left/right buttons if( attachments != null && attachments.size() > 1){ if(thisControllShown){ @@ -345,12 +345,18 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { case MotionEvent.ACTION_UP: { float upX = event.getX(); float deltaX = downX - upX; + float upY = event.getY(); + float deltaY = downY - upY; // swipe horizontal - if( downX > MIN_DISTANCE & (Math.abs(deltaX) > MIN_DISTANCE ) ){ + if( !canSwipe || mediaPosition > attachments.size() || mediaPosition < 1 || attachments.size() <= 1) + return super.dispatchTouchEvent(event); if(deltaX < 0) { switchOnSwipe(MediaActivity.actionSwipe.LEFT_TO_RIGHT); return true; } if(deltaX > 0) { switchOnSwipe(MediaActivity.actionSwipe.RIGHT_TO_LEFT); return true; } - }else{ + }else if(downY > MIN_DISTANCE & (Math.abs(deltaY) > MIN_DISTANCE ) ){ + if(deltaY > 0) { finish(); return true; } + if(deltaY < 0) { finish(); return true; } + } else { currentAction = MediaActivity.actionSwipe.POP; } }