diff options
author | Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com> | 2024-09-18 17:01:23 +0000 |
---|---|---|
committer | Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com> | 2024-09-18 17:01:23 +0000 |
commit | 3552a9a490c64eec8e56f55fef2b359bcdabe5d1 (patch) | |
tree | f0d00bb16734ffda1fe550cf9977120e7652318f /app/src/main/java/ml | |
parent | 4aa37adf43c5c6baeab12e4bc69bb907500eba44 (diff) | |
download | infinity-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')
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; |