From 749f63f1d4005b6c619710466174f0a59a575513 Mon Sep 17 00:00:00 2001 From: Len Chan Date: Sun, 31 Mar 2019 13:00:03 +0800 Subject: [PATCH 1/7] add background for action_bar of activity_media --- app/src/main/res/layout/activity_media.xml | 106 +++++++++++---------- 1 file changed, 56 insertions(+), 50 deletions(-) diff --git a/app/src/main/res/layout/activity_media.xml b/app/src/main/res/layout/activity_media.xml index c500bd78c..d546e6341 100644 --- a/app/src/main/res/layout/activity_media.xml +++ b/app/src/main/res/layout/activity_media.xml @@ -138,65 +138,71 @@ android:src="@drawable/ic_last_page" android:visibility="gone" /> - - - - - - - + android:background="@color/transparent_grey"> - - - + android:contentDescription="@string/close" + android:scaleType="fitXY" + android:src="@drawable/ic_close" + app:layout_anchorGravity="top|left" /> + + + + + + + + + Date: Sun, 31 Mar 2019 17:48:47 +0800 Subject: [PATCH 2/7] fullscrren mode by click on activity_media --- app/build.gradle | 2 +- .../mastodon/activities/MediaActivity.java | 151 ++++++++++-------- .../mastodon/helper/CustomPhotoView.java | 34 ++++ app/src/main/res/layout/activity_media.xml | 83 +++++----- .../main/res/menu/activity_media_action.xml | 21 +++ app/src/main/res/values/styles.xml | 4 + gradle.properties | 1 - 7 files changed, 185 insertions(+), 111 deletions(-) create mode 100644 app/src/main/java/fr/gouv/etalab/mastodon/helper/CustomPhotoView.java create mode 100644 app/src/main/res/menu/activity_media_action.xml diff --git a/app/build.gradle b/app/build.gradle index 538d5ff12..30f1c4354 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -55,7 +55,7 @@ ext.conscryptLibraryVersion = '2.0.0' ext.evernoteLibraryVersion = '1.2.6' ext.gsonLibraryVersion = '2.8.2' ext.guavaLibraryVersion = '24.1-android' -ext.photoViewLibraryVersion = '2.0.0' +ext.photoViewLibraryVersion = '2.1.3' ext.swipebackLibraryVersion = '1.0.3' ext.ratethisappLibraryVersion = '1.2.0' ext.uploadServiceVersion = "3.4.2" 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 a80492efa..bde6ae7ed 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 @@ -19,6 +19,7 @@ import android.Manifest; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.graphics.Bitmap; +import android.graphics.Matrix; import android.graphics.RectF; import android.net.Uri; import android.os.Build; @@ -28,6 +29,7 @@ import android.support.annotation.NonNull; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.widget.Toolbar; +import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; @@ -67,6 +69,7 @@ import fr.gouv.etalab.mastodon.client.Entities.Attachment; import fr.gouv.etalab.mastodon.client.Entities.Error; import fr.gouv.etalab.mastodon.client.HttpsConnection; import fr.gouv.etalab.mastodon.client.TLSSocketFactory; +import fr.gouv.etalab.mastodon.helper.CustomPhotoView; import fr.gouv.etalab.mastodon.helper.Helper; import fr.gouv.etalab.mastodon.interfaces.OnDownloadInterface; import fr.gouv.etalab.mastodon.webview.MastalabWebChromeClient; @@ -74,6 +77,8 @@ import fr.gouv.etalab.mastodon.webview.MastalabWebViewClient; import static fr.gouv.etalab.mastodon.helper.Helper.EXTERNAL_STORAGE_REQUEST_CODE; import static fr.gouv.etalab.mastodon.helper.Helper.THEME_BLACK; +import static fr.gouv.etalab.mastodon.helper.Helper.THEME_DARK; +import static fr.gouv.etalab.mastodon.helper.Helper.THEME_LIGHT; import static fr.gouv.etalab.mastodon.helper.Helper.changeDrawableColor; @@ -87,7 +92,7 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { private RelativeLayout loader; private ArrayList attachments; - private PhotoView imageView; + private CustomPhotoView imageView; private SimpleExoPlayerView videoView; private float downX; private int mediaPosition; @@ -96,7 +101,7 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { private String finalUrlDownload; private String preview_url; private ImageView prev, next; - private boolean isHiding; + private boolean isControlElementShown; private Bitmap downloadedImage; private File fileVideo; private TextView progress; @@ -106,6 +111,8 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { private TextView media_description; private Attachment attachment; SwipeBackLayout mSwipeBackLayout; + private float imageScale = 0; + private RelativeLayout action_bar_container; private enum actionSwipe{ RIGHT_TO_LEFT, LEFT_TO_RIGHT, @@ -125,6 +132,7 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { setTheme(R.style.TransparentBlack); super.onCreate(savedInstanceState); 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.setMaskAlpha(125); @@ -162,13 +170,12 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { } media_description = findViewById(R.id.media_description); message_ready = findViewById(R.id.message_ready); - Toolbar toolbar = findViewById(R.id.toolbar); - setSupportActionBar(toolbar); media_save = findViewById(R.id.media_save); media_share = findViewById(R.id.media_share); media_close = findViewById(R.id.media_close); progress = findViewById(R.id.loader_progress); webview_video = findViewById(R.id.webview_video); + media_save.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -221,28 +228,6 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { finish(); } }); - Handler h = new Handler(); - scheduleHidden = scheduleHiddenDescription = true; - h.postDelayed(new Runnable() { - - @Override - public void run() { - // DO DELAYED STUFF - media_close.setVisibility(View.GONE); - media_save.setVisibility(View.GONE); - media_share.setVisibility(View.GONE); - scheduleHidden = false; - } - }, 2000); - h.postDelayed(new Runnable() { - - @Override - public void run() { - // DO DELAYED STUFF - media_description.setVisibility(View.GONE); - scheduleHiddenDescription = false; - } - }, 6000); canSwipe = true; loader = findViewById(R.id.loader); imageView = findViewById(R.id.media_picture); @@ -252,9 +237,12 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { if( theme == THEME_BLACK){ changeDrawableColor(getApplicationContext(), prev, R.color.dark_icon); changeDrawableColor(getApplicationContext(), next, R.color.dark_icon); - }else { + }else if(theme == THEME_LIGHT) { changeDrawableColor(getApplicationContext(), prev, R.color.mastodonC4); changeDrawableColor(getApplicationContext(), next, R.color.mastodonC4); + }else{ + changeDrawableColor(getApplicationContext(), prev, R.color.white); + changeDrawableColor(getApplicationContext(), next, R.color.white); } prev.setOnClickListener(new View.OnClickListener() { @Override @@ -275,18 +263,29 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { imageView.setOnMatrixChangeListener(new OnMatrixChangedListener() { @Override public void onMatrixChanged(RectF rect) { + imageScale = imageView.getScale(); + Log.v("imageScale", String.valueOf(imageScale)); canSwipe = (imageView.getScale() == 1 ); mSwipeBackLayout.isDisabled(imageView.getScale() != 1 ); } }); + if( attachments != null && attachments.size() > 1){ + prev.setVisibility(View.VISIBLE); + next.setVisibility(View.VISIBLE); + } pbar_inf = findViewById(R.id.pbar_inf); setTitle(""); - isHiding = false; + //isHiding = false; setTitle(""); displayMediaAtPosition(actionSwipe.POP); } + @Override + protected void onSaveInstanceState(Bundle outState) { + outState.putFloat("scale", imageScale); + super.onSaveInstanceState(outState); + } /** @@ -297,26 +296,27 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { */ @Override public boolean dispatchTouchEvent(MotionEvent event) { + Boolean thisControllShown = isControlElementShown; + if( event.getAction() == MotionEvent.ACTION_DOWN){ + isControlElementShown = !isControlElementShown; + FullScreencall(thisControllShown); + if(thisControllShown){ + action_bar_container.setVisibility(View.GONE); + media_close.setVisibility(View.GONE); + media_save.setVisibility(View.GONE); + media_share.setVisibility(View.GONE); + }else{ + media_close.setVisibility(View.VISIBLE); + media_close.setVisibility(View.VISIBLE); + media_save.setVisibility(View.VISIBLE); + media_share.setVisibility(View.VISIBLE); + } - if( event.getAction() == MotionEvent.ACTION_DOWN && !scheduleHidden){ - scheduleHidden = true; - media_close.setVisibility(View.VISIBLE); - media_save.setVisibility(View.VISIBLE); - media_share.setVisibility(View.VISIBLE); - Handler handler = new Handler(); - handler.postDelayed(new Runnable() { - @Override - public void run() { - media_close.setVisibility(View.GONE); - media_save.setVisibility(View.GONE); - media_share.setVisibility(View.GONE); - scheduleHidden = false; - } - }, 2000); } - if( event.getAction() == MotionEvent.ACTION_DOWN && !scheduleHiddenDescription){ - scheduleHiddenDescription = true; - if( attachment != null && attachment.getDescription() != null && !attachment.getDescription().equals("null")){ + if( event.getAction() == MotionEvent.ACTION_DOWN){ + if(media_description.getVisibility() == View.VISIBLE && thisControllShown){ + media_description.setVisibility(View.GONE); + }else if(!thisControllShown && attachment != null && attachment.getDescription() != null && !attachment.getDescription().equals("null")){ media_description.setText(attachment.getDescription()); media_description.setVisibility(View.VISIBLE); imageView.setContentDescription(attachment.getDescription()); @@ -324,14 +324,6 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { media_description.setText(""); media_description.setVisibility(View.GONE); } - Handler handler = new Handler(); - handler.postDelayed(new Runnable() { - @Override - public void run() { - media_description.setVisibility(View.GONE); - scheduleHiddenDescription = false; - } - }, 6000); } if( !canSwipe || mediaPosition > attachments.size() || mediaPosition < 1 || attachments.size() <= 1) return super.dispatchTouchEvent(event); @@ -339,17 +331,14 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { case MotionEvent.ACTION_DOWN: { downX = event.getX(); //Displays navigation left/right buttons - if( attachments != null && attachments.size() > 1 && !isHiding){ - prev.setVisibility(View.VISIBLE); - next.setVisibility(View.VISIBLE); - isHiding = true; - new Handler().postDelayed(new Runnable(){ - public void run() { - prev.setVisibility(View.GONE); - next.setVisibility(View.GONE); - isHiding = false; - } - }, 2000); + if( attachments != null && attachments.size() > 1){ + if(thisControllShown){ + prev.setVisibility(View.GONE); + next.setVisibility(View.GONE); + }else{ + prev.setVisibility(View.VISIBLE); + next.setVisibility(View.VISIBLE); + } } return super.dispatchTouchEvent(event); } @@ -366,6 +355,8 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { } } } + + return super.dispatchTouchEvent(event); } @@ -561,20 +552,40 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { @Override public void onResume(){ super.onResume(); - FullScreencall(); + FullScreencall(isControlElementShown); if( player != null) { player.setPlayWhenReady(true); } } - public void FullScreencall() { + public void FullScreencall(Boolean shouldFullscreen) { if(Build.VERSION.SDK_INT < 19) { View v = this.getWindow().getDecorView(); - v.setSystemUiVisibility(View.GONE); + if(shouldFullscreen){ + v.setSystemUiVisibility(View.VISIBLE); + }else { + v.setSystemUiVisibility(View.GONE); + } } else { View decorView = getWindow().getDecorView(); - int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; - decorView.setSystemUiVisibility(uiOptions); + if(shouldFullscreen){ + decorView.setSystemUiVisibility( + View.SYSTEM_UI_FLAG_IMMERSIVE + // Set the content to appear under the system bars so that the + // content doesn't resize when the system bars hide and show. + | View.SYSTEM_UI_FLAG_LAYOUT_STABLE + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + // Hide the nav bar and status bar + | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_FULLSCREEN + | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); + }else{ + decorView.setSystemUiVisibility( + View.SYSTEM_UI_FLAG_LAYOUT_STABLE + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); + } } } diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/helper/CustomPhotoView.java b/app/src/main/java/fr/gouv/etalab/mastodon/helper/CustomPhotoView.java new file mode 100644 index 000000000..f938c2f1e --- /dev/null +++ b/app/src/main/java/fr/gouv/etalab/mastodon/helper/CustomPhotoView.java @@ -0,0 +1,34 @@ +package fr.gouv.etalab.mastodon.helper; + +import android.content.Context; +import android.graphics.Matrix; +import android.util.AttributeSet; +import android.util.Log; +import android.widget.ImageView; + +import com.github.chrisbanes.photoview.PhotoView; +import com.github.chrisbanes.photoview.PhotoViewAttacher; + +public class CustomPhotoView extends PhotoView { + private PhotoViewAttacher mAttacher; + + public CustomPhotoView(Context context) { + super(context); + } + + public CustomPhotoView(Context context, AttributeSet attr) { + super(context, attr); + } + + public CustomPhotoView(Context context, AttributeSet attr, int defStyle) { + super(context, attr, defStyle); + } + + + @Override + protected void onLayout(boolean changed, int left, int top, int right, int bottom) { + super.onLayout(changed, left, top, right, bottom); + + Log.v("layoutchanged","yes!" ); + } +} diff --git a/app/src/main/res/layout/activity_media.xml b/app/src/main/res/layout/activity_media.xml index d546e6341..21cce790b 100644 --- a/app/src/main/res/layout/activity_media.xml +++ b/app/src/main/res/layout/activity_media.xml @@ -24,7 +24,6 @@ app:isSwipeFromEdge="true" app:maskAlpha="125" app:swipeBackFactor="0.5"> - - - - - - - + android:background="@color/transparent_grey" + android:id="@+id/action_bar_container" + android:paddingTop="16dp"> + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index da3485a32..a6f91734a 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -392,4 +392,8 @@ + diff --git a/gradle.properties b/gradle.properties index aac7c9b46..77ed50d5c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,6 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. org.gradle.jvmargs=-Xmx1536m - # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects From 3544b046808f95b29e27c42ed90c1b8f715ff2c8 Mon Sep 17 00:00:00 2001 From: Len Chan Date: Sun, 31 Mar 2019 19:16:00 +0800 Subject: [PATCH 3/7] 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; } } From 1a04181f78339be419dbfdf5bd669a8bf548737b Mon Sep 17 00:00:00 2001 From: Len Chan Date: Sun, 31 Mar 2019 19:52:48 +0800 Subject: [PATCH 4/7] cleanup --- .../mastodon/activities/MediaActivity.java | 60 +++++++------------ .../mastodon/helper/CustomPhotoView.java | 34 ----------- app/src/main/res/layout/activity_media.xml | 37 ++++++------ 3 files changed, 42 insertions(+), 89 deletions(-) delete mode 100644 app/src/main/java/fr/gouv/etalab/mastodon/helper/CustomPhotoView.java 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 cea87e007..fab19b7fc 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 @@ -19,17 +19,13 @@ import android.Manifest; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.graphics.Bitmap; -import android.graphics.Matrix; import android.graphics.RectF; import android.net.Uri; import android.os.Build; import android.os.Bundle; -import android.os.Handler; import android.support.annotation.NonNull; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; -import android.support.v7.widget.Toolbar; -import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; @@ -69,7 +65,6 @@ import fr.gouv.etalab.mastodon.client.Entities.Attachment; import fr.gouv.etalab.mastodon.client.Entities.Error; import fr.gouv.etalab.mastodon.client.HttpsConnection; import fr.gouv.etalab.mastodon.client.TLSSocketFactory; -import fr.gouv.etalab.mastodon.helper.CustomPhotoView; import fr.gouv.etalab.mastodon.helper.Helper; import fr.gouv.etalab.mastodon.interfaces.OnDownloadInterface; import fr.gouv.etalab.mastodon.webview.MastalabWebChromeClient; @@ -77,7 +72,6 @@ import fr.gouv.etalab.mastodon.webview.MastalabWebViewClient; import static fr.gouv.etalab.mastodon.helper.Helper.EXTERNAL_STORAGE_REQUEST_CODE; import static fr.gouv.etalab.mastodon.helper.Helper.THEME_BLACK; -import static fr.gouv.etalab.mastodon.helper.Helper.THEME_DARK; import static fr.gouv.etalab.mastodon.helper.Helper.THEME_LIGHT; import static fr.gouv.etalab.mastodon.helper.Helper.changeDrawableColor; @@ -92,7 +86,7 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { private RelativeLayout loader; private ArrayList attachments; - private CustomPhotoView imageView; + private PhotoView imageView; private SimpleExoPlayerView videoView; private float downX; private float downY; @@ -180,7 +174,7 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { media_save.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - isSHaring = false; + isSHaring = true; if(attachment.getType().toLowerCase().equals("video") || attachment.getType().toLowerCase().equals("gifv") || attachment.getType().toLowerCase().equals("web")) { if( attachment != null ) { progress.setText("0 %"); @@ -265,7 +259,6 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { @Override public void onMatrixChanged(RectF rect) { imageScale = imageView.getScale(); - Log.v("imageScale", String.valueOf(imageScale)); canSwipe = (imageView.getScale() == 1 ); mSwipeBackLayout.isDisabled(imageView.getScale() != 1 ); } @@ -298,34 +291,6 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { @Override public boolean dispatchTouchEvent(MotionEvent event) { Boolean thisControllShown = isControlElementShown; - if( event.getAction() == MotionEvent.ACTION_DOWN){ - isControlElementShown = !isControlElementShown; - FullScreencall(thisControllShown); - if(thisControllShown){ - action_bar_container.setVisibility(View.GONE); - media_close.setVisibility(View.GONE); - media_save.setVisibility(View.GONE); - media_share.setVisibility(View.GONE); - }else{ - action_bar_container.setVisibility(View.VISIBLE); - media_close.setVisibility(View.VISIBLE); - media_save.setVisibility(View.VISIBLE); - media_share.setVisibility(View.VISIBLE); - } - - } - if( event.getAction() == MotionEvent.ACTION_DOWN){ - if(media_description.getVisibility() == View.VISIBLE && thisControllShown){ - media_description.setVisibility(View.GONE); - }else if(!thisControllShown && attachment != null && attachment.getDescription() != null && !attachment.getDescription().equals("null")){ - media_description.setText(attachment.getDescription()); - media_description.setVisibility(View.VISIBLE); - imageView.setContentDescription(attachment.getDescription()); - }else{ - media_description.setText(""); - media_description.setVisibility(View.GONE); - } - } switch(event.getAction()){ case MotionEvent.ACTION_DOWN: { downX = event.getX(); @@ -358,7 +323,28 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { if(deltaY < 0) { finish(); return true; } } else { currentAction = MediaActivity.actionSwipe.POP; + if(event.getY() > action_bar_container.getHeight()) { + isControlElementShown = !isControlElementShown; + FullScreencall(thisControllShown); + if (thisControllShown) { + action_bar_container.setVisibility(View.GONE); + } else { + action_bar_container.setVisibility(View.VISIBLE); + } + + if (media_description.getVisibility() == View.VISIBLE && thisControllShown) { + media_description.setVisibility(View.GONE); + } else if (!thisControllShown && attachment != null && attachment.getDescription() != null && !attachment.getDescription().equals("null")) { + media_description.setText(attachment.getDescription()); + media_description.setVisibility(View.VISIBLE); + imageView.setContentDescription(attachment.getDescription()); + } else { + media_description.setText(""); + media_description.setVisibility(View.GONE); + } + } } + } } diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/helper/CustomPhotoView.java b/app/src/main/java/fr/gouv/etalab/mastodon/helper/CustomPhotoView.java deleted file mode 100644 index f938c2f1e..000000000 --- a/app/src/main/java/fr/gouv/etalab/mastodon/helper/CustomPhotoView.java +++ /dev/null @@ -1,34 +0,0 @@ -package fr.gouv.etalab.mastodon.helper; - -import android.content.Context; -import android.graphics.Matrix; -import android.util.AttributeSet; -import android.util.Log; -import android.widget.ImageView; - -import com.github.chrisbanes.photoview.PhotoView; -import com.github.chrisbanes.photoview.PhotoViewAttacher; - -public class CustomPhotoView extends PhotoView { - private PhotoViewAttacher mAttacher; - - public CustomPhotoView(Context context) { - super(context); - } - - public CustomPhotoView(Context context, AttributeSet attr) { - super(context, attr); - } - - public CustomPhotoView(Context context, AttributeSet attr, int defStyle) { - super(context, attr, defStyle); - } - - - @Override - protected void onLayout(boolean changed, int left, int top, int right, int bottom) { - super.onLayout(changed, left, top, right, bottom); - - Log.v("layoutchanged","yes!" ); - } -} diff --git a/app/src/main/res/layout/activity_media.xml b/app/src/main/res/layout/activity_media.xml index 21cce790b..f0783d9cc 100644 --- a/app/src/main/res/layout/activity_media.xml +++ b/app/src/main/res/layout/activity_media.xml @@ -75,7 +75,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - - + /> + + From 73143f32364e3b7f9541f676816440ba9470ff3f Mon Sep 17 00:00:00 2001 From: Len Chan Date: Sun, 31 Mar 2019 20:22:38 +0800 Subject: [PATCH 5/7] cleanup --- .../mastodon/activities/MediaActivity.java | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 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 fab19b7fc..3e5f35d91 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 @@ -96,7 +96,7 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { private String finalUrlDownload; private String preview_url; private ImageView prev, next; - private boolean isControlElementShown; + private boolean isControlElementShown = true; private Bitmap downloadedImage; private File fileVideo; private TextView progress; @@ -323,18 +323,19 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { if(deltaY < 0) { finish(); return true; } } else { currentAction = MediaActivity.actionSwipe.POP; - if(event.getY() > action_bar_container.getHeight()) { - isControlElementShown = !isControlElementShown; - FullScreencall(thisControllShown); - if (thisControllShown) { + isControlElementShown = !isControlElementShown; + if (thisControllShown) { + if(event.getY() > action_bar_container.getHeight()) { + FullScreencall(thisControllShown); action_bar_container.setVisibility(View.GONE); - } else { - action_bar_container.setVisibility(View.VISIBLE); + if (media_description.getVisibility() == View.VISIBLE) { + media_description.setVisibility(View.GONE); + } } - - if (media_description.getVisibility() == View.VISIBLE && thisControllShown) { - media_description.setVisibility(View.GONE); - } else if (!thisControllShown && attachment != null && attachment.getDescription() != null && !attachment.getDescription().equals("null")) { + } else { + action_bar_container.setVisibility(View.VISIBLE); + FullScreencall(thisControllShown); + if (attachment != null && attachment.getDescription() != null && !attachment.getDescription().equals("null")) { media_description.setText(attachment.getDescription()); media_description.setVisibility(View.VISIBLE); imageView.setContentDescription(attachment.getDescription()); @@ -343,12 +344,15 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { media_description.setVisibility(View.GONE); } } - } + + } } + } + return super.dispatchTouchEvent(event); } @@ -544,7 +548,6 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { @Override public void onResume(){ super.onResume(); - FullScreencall(isControlElementShown); if( player != null) { player.setPlayWhenReady(true); } From f3eac9967ac7c5d376235c7077eef575796a3d43 Mon Sep 17 00:00:00 2001 From: Len Chan Date: Sun, 31 Mar 2019 20:28:00 +0800 Subject: [PATCH 6/7] cleanup --- .../etalab/mastodon/activities/MediaActivity.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 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 3e5f35d91..ad76f7b3a 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 @@ -553,13 +553,20 @@ public class MediaActivity extends BaseActivity implements OnDownloadInterface { } } + + @Override + protected void onPostResume() { + super.onPostResume(); + FullScreencall(false); + } + public void FullScreencall(Boolean shouldFullscreen) { if(Build.VERSION.SDK_INT < 19) { View v = this.getWindow().getDecorView(); if(shouldFullscreen){ - v.setSystemUiVisibility(View.VISIBLE); - }else { v.setSystemUiVisibility(View.GONE); + }else { + v.setSystemUiVisibility(View.VISIBLE); } } else { View decorView = getWindow().getDecorView(); From b6b959b6146a4529a39031676878cd565562160e Mon Sep 17 00:00:00 2001 From: Len Chan Date: Sun, 31 Mar 2019 20:52:45 +0800 Subject: [PATCH 7/7] cleanup --- .../main/res/menu/activity_media_action.xml | 21 ------------------- app/src/main/res/values/styles.xml | 4 ---- 2 files changed, 25 deletions(-) delete mode 100644 app/src/main/res/menu/activity_media_action.xml diff --git a/app/src/main/res/menu/activity_media_action.xml b/app/src/main/res/menu/activity_media_action.xml deleted file mode 100644 index 2476f4d82..000000000 --- a/app/src/main/res/menu/activity_media_action.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index a6f91734a..da3485a32 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -392,8 +392,4 @@ -