aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/ml
diff options
context:
space:
mode:
authorDocile-Alligator <25734209+Docile-Alligator@users.noreply.github.com>2024-09-18 17:01:23 +0000
committerDocile-Alligator <25734209+Docile-Alligator@users.noreply.github.com>2024-09-18 17:01:23 +0000
commit3552a9a490c64eec8e56f55fef2b359bcdabe5d1 (patch)
treef0d00bb16734ffda1fe550cf9977120e7652318f /app/src/main/java/ml
parent4aa37adf43c5c6baeab12e4bc69bb907500eba44 (diff)
downloadinfinity-for-reddit-3552a9a490c64eec8e56f55fef2b359bcdabe5d1.tar
infinity-for-reddit-3552a9a490c64eec8e56f55fef2b359bcdabe5d1.tar.gz
infinity-for-reddit-3552a9a490c64eec8e56f55fef2b359bcdabe5d1.tar.bz2
infinity-for-reddit-3552a9a490c64eec8e56f55fef2b359bcdabe5d1.tar.lz
infinity-for-reddit-3552a9a490c64eec8e56f55fef2b359bcdabe5d1.tar.xz
infinity-for-reddit-3552a9a490c64eec8e56f55fef2b359bcdabe5d1.tar.zst
infinity-for-reddit-3552a9a490c64eec8e56f55fef2b359bcdabe5d1.zip
Add an option to download all media in a gallery in ViewRedditGalleryActivity.
Diffstat (limited to 'app/src/main/java/ml')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewRedditGalleryActivity.java31
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/adapters/HistoryPostRecyclerViewAdapter.java4
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java4
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java4
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryVideoFragment.java2
5 files changed, 29 insertions, 16 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewRedditGalleryActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewRedditGalleryActivity.java
index 14005615..2dfe1ddc 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewRedditGalleryActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewRedditGalleryActivity.java
@@ -5,6 +5,9 @@ import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM;
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_NO;
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES;
+import android.app.job.JobInfo;
+import android.app.job.JobScheduler;
+import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.graphics.Typeface;
@@ -49,14 +52,13 @@ import ml.docilealligator.infinityforreddit.font.TitleFontStyle;
import ml.docilealligator.infinityforreddit.fragments.ViewRedditGalleryImageOrGifFragment;
import ml.docilealligator.infinityforreddit.fragments.ViewRedditGalleryVideoFragment;
import ml.docilealligator.infinityforreddit.post.Post;
+import ml.docilealligator.infinityforreddit.services.DownloadMediaService;
import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils;
import ml.docilealligator.infinityforreddit.utils.Utils;
public class ViewRedditGalleryActivity extends AppCompatActivity implements SetAsWallpaperCallback, CustomFontReceiver {
- public static final String EXTRA_REDDIT_GALLERY = "ERG";
- public static final String EXTRA_SUBREDDIT_NAME = "ESN";
- public static final String EXTRA_IS_NSFW = "EIN";
+ public static final String EXTRA_POST = "EP";
public static final String EXTRA_GALLERY_ITEM_INDEX = "EGII";
@Inject
@@ -66,6 +68,7 @@ public class ViewRedditGalleryActivity extends AppCompatActivity implements SetA
Executor executor;
public Typeface typeface;
private SectionsPagerAdapter sectionsPagerAdapter;
+ private Post post;
private ArrayList<Post.Gallery> gallery;
private String subredditName;
private boolean isNsfw;
@@ -144,13 +147,18 @@ public class ViewRedditGalleryActivity extends AppCompatActivity implements SetA
getSupportActionBar().hide();
}
- gallery = getIntent().getParcelableArrayListExtra(EXTRA_REDDIT_GALLERY);
+ post = getIntent().getParcelableExtra(EXTRA_POST);
+ if (post == null) {
+ finish();
+ return;
+ }
+ gallery = post.getGallery();
if (gallery == null || gallery.isEmpty()) {
finish();
return;
}
- subredditName = getIntent().getStringExtra(EXTRA_SUBREDDIT_NAME);
- isNsfw = getIntent().getBooleanExtra(EXTRA_IS_NSFW, false);
+ subredditName = post.getSubredditName();
+ isNsfw = post.isNSFW();
if (sharedPreferences.getBoolean(SharedPreferencesUtils.SWIPE_VERTICALLY_TO_GO_BACK_FROM_MEDIA, true)) {
binding.getRoot().setOnDragDismissedListener(dragDirection -> {
@@ -201,6 +209,10 @@ public class ViewRedditGalleryActivity extends AppCompatActivity implements SetA
@Override
public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.view_reddit_gallery_activity, menu);
+ for (int i = 0; i < menu.size(); i++) {
+ Utils.setTitleWithCustomFontToMenuItem(typeface, menu.getItem(i), null);
+ }
return true;
}
@@ -209,6 +221,13 @@ public class ViewRedditGalleryActivity extends AppCompatActivity implements SetA
if (item.getItemId() == android.R.id.home) {
finish();
return true;
+ } else if (item.getItemId() == R.id.action_download_all_gallery_media_view_reddit_gallery_activity) {
+ //TODO: contentEstimatedBytes
+ JobInfo jobInfo = DownloadMediaService.constructGalleryDownloadAllImagesJobInfo(this, 5000000, post);
+ ((JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE)).schedule(jobInfo);
+
+ Toast.makeText(this, R.string.download_started, Toast.LENGTH_SHORT).show();
+ return true;
}
return false;
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/HistoryPostRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/HistoryPostRecyclerViewAdapter.java
index a7e01054..8b6ca8d1 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/HistoryPostRecyclerViewAdapter.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/HistoryPostRecyclerViewAdapter.java
@@ -2537,9 +2537,7 @@ public class HistoryPostRecyclerViewAdapter extends PagingDataAdapter<Post, Recy
mActivity.startActivity(intent);
} else if (post.getPostType() == Post.GALLERY_TYPE) {
Intent intent = new Intent(mActivity, ViewRedditGalleryActivity.class);
- intent.putParcelableArrayListExtra(ViewRedditGalleryActivity.EXTRA_REDDIT_GALLERY, post.getGallery());
- intent.putExtra(ViewRedditGalleryActivity.EXTRA_SUBREDDIT_NAME, post.getSubredditName());
- intent.putExtra(ViewRedditGalleryActivity.EXTRA_IS_NSFW, post.isNSFW());
+ intent.putExtra(ViewRedditGalleryActivity.EXTRA_POST, post);
intent.putExtra(ViewRedditGalleryActivity.EXTRA_GALLERY_ITEM_INDEX, galleryItemIndex);
mActivity.startActivity(intent);
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java
index bb704648..9b94485f 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java
@@ -1112,9 +1112,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
mActivity.startActivity(intent);
} else if (post.getPostType() == Post.GALLERY_TYPE) {
Intent intent = new Intent(mActivity, ViewRedditGalleryActivity.class);
- intent.putParcelableArrayListExtra(ViewRedditGalleryActivity.EXTRA_REDDIT_GALLERY, post.getGallery());
- intent.putExtra(ViewRedditGalleryActivity.EXTRA_SUBREDDIT_NAME, post.getSubredditName());
- intent.putExtra(ViewRedditGalleryActivity.EXTRA_IS_NSFW, post.isNSFW());
+ intent.putExtra(ViewRedditGalleryActivity.EXTRA_POST, post);
intent.putExtra(ViewRedditGalleryActivity.EXTRA_GALLERY_ITEM_INDEX, galleryItemIndex);
mActivity.startActivity(intent);
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java
index 6e88ad4b..dde14a7e 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java
@@ -2665,9 +2665,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
mActivity.startActivity(intent);
} else if (post.getPostType() == Post.GALLERY_TYPE) {
Intent intent = new Intent(mActivity, ViewRedditGalleryActivity.class);
- intent.putParcelableArrayListExtra(ViewRedditGalleryActivity.EXTRA_REDDIT_GALLERY, post.getGallery());
- intent.putExtra(ViewRedditGalleryActivity.EXTRA_SUBREDDIT_NAME, post.getSubredditName());
- intent.putExtra(ViewRedditGalleryActivity.EXTRA_IS_NSFW, post.isNSFW());
+ intent.putExtra(ViewRedditGalleryActivity.EXTRA_POST, post);
intent.putExtra(ViewRedditGalleryActivity.EXTRA_GALLERY_ITEM_INDEX, galleryItemIndex);
mActivity.startActivity(intent);
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryVideoFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryVideoFragment.java
index e8b1c679..a272e1ef 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryVideoFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewRedditGalleryVideoFragment.java
@@ -214,7 +214,7 @@ public class ViewRedditGalleryVideoFragment extends Fragment {
requestPermissionAndDownload();
return true;
} else if (item.getItemId() == R.id.action_playback_speed_view_reddit_gallery_video_fragment) {
-
+ changePlaybackSpeed();
return true;
}
return false;