aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/ml/docilealligator/infinityforreddit
diff options
context:
space:
mode:
authorAlex Ning <chineseperson5@gmail.com>2021-10-14 12:57:22 +0000
committerAlex Ning <chineseperson5@gmail.com>2021-10-14 12:57:22 +0000
commita8f21a94b093171c084678a03cbe7403f9b23452 (patch)
tree1b6278ea7ee194f4b4a4e1c7f40daa22a632f879 /app/src/main/java/ml/docilealligator/infinityforreddit
parentc8c3c23093bad7302acdfd587a1be2cd0290f851 (diff)
downloadinfinity-for-reddit-a8f21a94b093171c084678a03cbe7403f9b23452.tar
infinity-for-reddit-a8f21a94b093171c084678a03cbe7403f9b23452.tar.gz
infinity-for-reddit-a8f21a94b093171c084678a03cbe7403f9b23452.tar.bz2
infinity-for-reddit-a8f21a94b093171c084678a03cbe7403f9b23452.tar.lz
infinity-for-reddit-a8f21a94b093171c084678a03cbe7403f9b23452.tar.xz
infinity-for-reddit-a8f21a94b093171c084678a03cbe7403f9b23452.tar.zst
infinity-for-reddit-a8f21a94b093171c084678a03cbe7403f9b23452.zip
New option: Pinch to Zoom Video.
Diffstat (limited to 'app/src/main/java/ml/docilealligator/infinityforreddit')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewImageOrGifActivity.java4
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewVideoActivity.java25
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java1
3 files changed, 29 insertions, 1 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewImageOrGifActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewImageOrGifActivity.java
index d07e8c69..e5d5f72b 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewImageOrGifActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewImageOrGifActivity.java
@@ -292,7 +292,9 @@ public class ViewImageOrGifActivity extends AppCompatActivity implements SetAsWa
// Fixes #383
// Not having a background will cause visual glitches on some devices.
FrameLayout slidablePanel = findViewById(R.id.slidable_panel);
- slidablePanel.setBackgroundColor(getResources().getColor(android.R.color.black));
+ if (slidablePanel != null) {
+ slidablePanel.setBackgroundColor(getResources().getColor(android.R.color.black));
+ }
}
private void loadImage() {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewVideoActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewVideoActivity.java
index 5a473d29..09d9850b 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewVideoActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewVideoActivity.java
@@ -7,6 +7,7 @@ import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.content.res.Resources;
+import android.graphics.Matrix;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.media.AudioManager;
@@ -57,6 +58,7 @@ import com.google.android.exoplayer2.util.Util;
import com.google.android.exoplayer2.video.VideoListener;
import com.google.android.material.bottomappbar.BottomAppBar;
import com.google.android.material.snackbar.Snackbar;
+import com.otaliastudios.zoom.ZoomEngine;
import com.otaliastudios.zoom.ZoomSurfaceView;
import org.apache.commons.io.FilenameUtils;
@@ -69,6 +71,7 @@ import javax.inject.Named;
import app.futured.hauler.DragDirection;
import app.futured.hauler.HaulerView;
+import app.futured.hauler.LockableNestedScrollView;
import butterknife.BindView;
import butterknife.ButterKnife;
import ml.docilealligator.infinityforreddit.FetchGfycatOrRedgifsVideoLinks;
@@ -147,6 +150,8 @@ public class ViewVideoActivity extends AppCompatActivity {
TextView titleTextView;
@BindView(R.id.download_image_view_exo_playback_control_view)
ImageView downloadImageView;
+ @BindView(R.id.lockable_nested_scroll_view_view_video_activity)
+ LockableNestedScrollView nestedScrollView;
private Uri mVideoUri;
private SimpleExoPlayer player;
@@ -371,7 +376,27 @@ public class ViewVideoActivity extends AppCompatActivity {
}
});
+ if (mSharedPreferences.getBoolean(SharedPreferencesUtils.PINCH_TO_ZOOM_VIDEO, false)) {
+ zoomSurfaceView.getEngine().addListener(new ZoomEngine.Listener() {
+ @Override
+ public void onUpdate(@NonNull ZoomEngine zoomEngine, @NonNull Matrix matrix) {
+ if (zoomEngine.getZoom() < 1.00001) {
+ haulerView.setDragEnabled(true);
+ nestedScrollView.setScrollEnabled(true);
+ } else {
+ haulerView.setDragEnabled(false);
+ nestedScrollView.setScrollEnabled(false);
+ }
+ }
+ @Override
+ public void onIdle(@NonNull ZoomEngine zoomEngine) {
+
+ }
+ });
+ } else {
+ zoomSurfaceView.setZoomEnabled(false);
+ }
zoomSurfaceView.setOnClickListener(view -> {
if (playerControlView.isVisible()) {
playerControlView.hide();
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java b/app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java
index 9cc3c839..285c8d58 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java
@@ -194,6 +194,7 @@ public class SharedPreferencesUtils {
public static final String LOOP_VIDEO = "loop_video";
public static final String DEFAULT_PLAYBACK_SPEED = "default_playback_speed";
public static final String LEGACY_AUTOPLAY_VIDEO_CONTROLLER_UI = "legacy_autoplay_video_controller_ui";
+ public static final String PINCH_TO_ZOOM_VIDEO = "pinch_to_zoom_video";
public static final String DEFAULT_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit_preferences";
public static final String MAIN_PAGE_TABS_SHARED_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit.main_page_tabs";