From 22dcbdd8dbe4b021b18a7263cd2bf97a4c18598a Mon Sep 17 00:00:00 2001 From: Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com> Date: Tue, 19 Mar 2024 18:38:11 -0400 Subject: Version 7.1.0-beta1. Submit gallery posts with text content (without embedded images). --- .../infinityforreddit/RedditGalleryPayload.java | 4 +- .../activities/PostGalleryActivity.java | 46 ++- .../activities/PostImageActivity.java | 3 + .../activities/PostLinkActivity.java | 1 + .../activities/PostPollActivity.java | 3 + .../activities/PostTextActivity.java | 2 +- .../activities/PostVideoActivity.java | 3 + app/src/main/res/layout/activity_post_gallery.xml | 369 +++++++++++---------- app/src/main/res/layout/activity_post_image.xml | 2 +- app/src/main/res/layout/activity_post_link.xml | 2 +- app/src/main/res/layout/activity_post_poll.xml | 2 +- app/src/main/res/layout/activity_post_video.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 13 files changed, 256 insertions(+), 185 deletions(-) diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/RedditGalleryPayload.java b/app/src/main/java/ml/docilealligator/infinityforreddit/RedditGalleryPayload.java index bd3365c3..6106d09f 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/RedditGalleryPayload.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/RedditGalleryPayload.java @@ -17,6 +17,7 @@ public class RedditGalleryPayload { @SerializedName("show_error_list") public boolean showErrorList = true; public String title; + public String text; @SerializedName("spoiler") public boolean isSpoiler; @SerializedName("nsfw") @@ -36,11 +37,12 @@ public class RedditGalleryPayload { public String flairText; public ArrayList items; - public RedditGalleryPayload(String subredditName, String submitType, String title, + public RedditGalleryPayload(String subredditName, String submitType, String title, String text, boolean isSpoiler, boolean isNSFW, boolean sendReplies, Flair flair, ArrayList items) { this.subredditName = subredditName; this.submitType = submitType; this.title = title; + this.text = text; this.isSpoiler = isSpoiler; this.isNSFW = isNSFW; this.sendReplies = sendReplies; diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostGalleryActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostGalleryActivity.java index b27615ef..0123faf7 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostGalleryActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostGalleryActivity.java @@ -22,6 +22,7 @@ import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.core.content.FileProvider; import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; @@ -53,12 +54,14 @@ import ml.docilealligator.infinityforreddit.R; import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase; import ml.docilealligator.infinityforreddit.RedditGalleryPayload; import ml.docilealligator.infinityforreddit.account.Account; +import ml.docilealligator.infinityforreddit.adapters.MarkdownBottomBarRecyclerViewAdapter; import ml.docilealligator.infinityforreddit.adapters.RedditGallerySubmissionRecyclerViewAdapter; import ml.docilealligator.infinityforreddit.asynctasks.LoadSubredditIcon; import ml.docilealligator.infinityforreddit.bottomsheetfragments.AccountChooserBottomSheetFragment; import ml.docilealligator.infinityforreddit.bottomsheetfragments.FlairBottomSheetFragment; import ml.docilealligator.infinityforreddit.bottomsheetfragments.SelectOrCaptureImageBottomSheetFragment; import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper; +import ml.docilealligator.infinityforreddit.customviews.LinearLayoutManagerBugFixed; import ml.docilealligator.infinityforreddit.databinding.ActivityPostGalleryBinding; import ml.docilealligator.infinityforreddit.events.SubmitGalleryPostEvent; import ml.docilealligator.infinityforreddit.events.SwitchAccountEvent; @@ -338,6 +341,25 @@ public class PostGalleryActivity extends BaseActivity implements FlairBottomShee binding.receivePostReplyNotificationsLinearLayoutPostGalleryActivity.setOnClickListener(view -> { binding.receivePostReplyNotificationsSwitchMaterialPostGalleryActivity.performClick(); }); + + MarkdownBottomBarRecyclerViewAdapter adapter = new MarkdownBottomBarRecyclerViewAdapter( + mCustomThemeWrapper, + new MarkdownBottomBarRecyclerViewAdapter.ItemClickListener() { + @Override + public void onClick(int item) { + MarkdownBottomBarRecyclerViewAdapter.bindEditTextWithItemClickListener( + PostGalleryActivity.this, binding.postContentEditTextPostGalleryActivity, item); + } + + @Override + public void onUploadImage() { + + } + }); + + binding.markdownBottomBarRecyclerViewPostGalleryActivity.setLayoutManager(new LinearLayoutManagerBugFixed(this, + LinearLayoutManager.HORIZONTAL, false)); + binding.markdownBottomBarRecyclerViewPostGalleryActivity.setAdapter(adapter); } private void loadCurrentAccount() { @@ -399,6 +421,8 @@ public class PostGalleryActivity extends BaseActivity implements FlairBottomShee binding.nsfwCustomTextViewPostGalleryActivity.setTextColor(primaryTextColor); binding.postTitleEditTextPostGalleryActivity.setTextColor(primaryTextColor); binding.postTitleEditTextPostGalleryActivity.setHintTextColor(secondaryTextColor); + binding.postContentEditTextPostGalleryActivity.setTextColor(primaryTextColor); + binding.postContentEditTextPostGalleryActivity.setHintTextColor(secondaryTextColor); if (typeface != null) { binding.subredditNameTextViewPostGalleryActivity.setTypeface(typeface); binding.rulesButtonPostGalleryActivity.setTypeface(typeface); @@ -408,6 +432,9 @@ public class PostGalleryActivity extends BaseActivity implements FlairBottomShee binding.nsfwCustomTextViewPostGalleryActivity.setTypeface(typeface); binding.postTitleEditTextPostGalleryActivity.setTypeface(typeface); } + if (contentTypeface != null) { + binding.postContentEditTextPostGalleryActivity.setTypeface(contentTypeface); + } } public void selectImage() { @@ -462,7 +489,7 @@ public class PostGalleryActivity extends BaseActivity implements FlairBottomShee } private void displaySubredditIcon() { - if (iconUrl != null && !iconUrl.equals("")) { + if (iconUrl != null && !iconUrl.isEmpty()) { mGlide.load(iconUrl) .apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0))) .error(mGlide.load(R.drawable.subreddit_default_icon) @@ -515,7 +542,9 @@ public class PostGalleryActivity extends BaseActivity implements FlairBottomShee return true; } else { redditGalleryImageInfoList = adapter.getRedditGalleryImageInfoList(); - if (!binding.postTitleEditTextPostGalleryActivity.getText().toString().equals("") || redditGalleryImageInfoList != null) { + if (!binding.postTitleEditTextPostGalleryActivity.getText().toString().isEmpty() + || !binding.postContentEditTextPostGalleryActivity.getText().toString().isEmpty() + || redditGalleryImageInfoList != null) { promptAlertDialog(R.string.discard, R.string.discard_detail); return true; } @@ -528,7 +557,7 @@ public class PostGalleryActivity extends BaseActivity implements FlairBottomShee return true; } - if (binding.postTitleEditTextPostGalleryActivity.getText() == null || binding.postTitleEditTextPostGalleryActivity.getText().toString().equals("")) { + if (binding.postTitleEditTextPostGalleryActivity.getText() == null || binding.postTitleEditTextPostGalleryActivity.getText().toString().isEmpty()) { Snackbar.make(binding.coordinatorLayoutPostGalleryActivity, R.string.title_required, Snackbar.LENGTH_SHORT).show(); return true; } @@ -567,8 +596,9 @@ public class PostGalleryActivity extends BaseActivity implements FlairBottomShee items.add(i.payload); } RedditGalleryPayload payload = new RedditGalleryPayload(subredditName, subredditIsUser ? "profile" : "subreddit", - binding.postTitleEditTextPostGalleryActivity.getText().toString(), isSpoiler, isNSFW, binding.receivePostReplyNotificationsSwitchMaterialPostGalleryActivity.isChecked(), - flair, items); + binding.postTitleEditTextPostGalleryActivity.getText().toString(), + binding.postContentEditTextPostGalleryActivity.getText().toString(), isSpoiler, isNSFW, + binding.receivePostReplyNotificationsSwitchMaterialPostGalleryActivity.isChecked(), flair, items); intent.putExtra(SubmitPostService.EXTRA_REDDIT_GALLERY_PAYLOAD, new Gson().toJson(payload)); ContextCompat.startForegroundService(this, intent); @@ -585,7 +615,9 @@ public class PostGalleryActivity extends BaseActivity implements FlairBottomShee promptAlertDialog(R.string.exit_when_submit, R.string.exit_when_submit_post_detail); } else { redditGalleryImageInfoList = adapter.getRedditGalleryImageInfoList(); - if (!binding.postTitleEditTextPostGalleryActivity.getText().toString().equals("") || redditGalleryImageInfoList != null) { + if (!binding.postTitleEditTextPostGalleryActivity.getText().toString().isEmpty() + || !binding.postContentEditTextPostGalleryActivity.getText().toString().isEmpty() + || redditGalleryImageInfoList != null) { promptAlertDialog(R.string.discard, R.string.discard_detail); } else { finish(); @@ -702,7 +734,7 @@ public class PostGalleryActivity extends BaseActivity implements FlairBottomShee } else { mMemu.findItem(R.id.action_send_post_gallery_activity).setEnabled(true); mMemu.findItem(R.id.action_send_post_gallery_activity).getIcon().setAlpha(255); - if (submitGalleryPostEvent.errorMessage == null || submitGalleryPostEvent.errorMessage.equals("")) { + if (submitGalleryPostEvent.errorMessage == null || submitGalleryPostEvent.errorMessage.isEmpty()) { Snackbar.make(binding.coordinatorLayoutPostGalleryActivity, R.string.post_failed, Snackbar.LENGTH_SHORT).show(); } else { Snackbar.make(binding.coordinatorLayoutPostGalleryActivity, submitGalleryPostEvent.errorMessage.substring(0, 1).toUpperCase() diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostImageActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostImageActivity.java index 05169fe4..f821fafa 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostImageActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostImageActivity.java @@ -426,6 +426,9 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF binding.postTitleEditTextPostImageActivity.setTypeface(typeface); binding.selectAgainTextViewPostImageActivity.setTypeface(typeface); } + if (contentTypeface != null) { + binding.postContentEditTextPostImageActivity.setTypeface(contentTypeface); + } } private void loadImage() { diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostLinkActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostLinkActivity.java index 123b27e9..85ef693b 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostLinkActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostLinkActivity.java @@ -430,6 +430,7 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr binding.suggestTitleButtonPostLinkActivity.setTypeface(typeface); } if (contentTypeface != null) { + binding.postContentEditTextPostLinkActivity.setTypeface(contentTypeface); binding.postLinkEditTextPostLinkActivity.setTypeface(contentTypeface); } } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostPollActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostPollActivity.java index 91939e61..3a9905e8 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostPollActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostPollActivity.java @@ -460,6 +460,9 @@ public class PostPollActivity extends BaseActivity implements FlairBottomSheetFr binding.option5TextInputLayoutEditTextPostPollActivity.setTypeface(typeface); binding.option6TextInputLayoutEditTextPostPollActivity.setTypeface(typeface); } + if (contentTypeface != null) { + binding.postContentEditTextPostPollActivity.setTypeface(contentTypeface); + } } public void setCursorDrawableColor(EditText editText, int color) { diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostTextActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostTextActivity.java index 26ee62f7..c97820c1 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostTextActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostTextActivity.java @@ -410,7 +410,7 @@ public class PostTextActivity extends BaseActivity implements FlairBottomSheetFr binding.postTitleEditTextPostTextActivity.setTypeface(typeface); } if (contentTypeface != null) { - binding.postTextContentEditTextPostTextActivity.setTypeface(typeface); + binding.postTextContentEditTextPostTextActivity.setTypeface(contentTypeface); } } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostVideoActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostVideoActivity.java index ca351860..5c1cef68 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostVideoActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostVideoActivity.java @@ -442,6 +442,9 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF binding.postTitleEditTextPostVideoActivity.setTypeface(typeface); binding.selectAgainTextViewPostVideoActivity.setTypeface(typeface); } + if (contentTypeface != null) { + binding.postContentEditTextPostVideoActivity.setTypeface(contentTypeface); + } } private void loadVideo() { diff --git a/app/src/main/res/layout/activity_post_gallery.xml b/app/src/main/res/layout/activity_post_gallery.xml index acd64fe3..650a2e59 100644 --- a/app/src/main/res/layout/activity_post_gallery.xml +++ b/app/src/main/res/layout/activity_post_gallery.xml @@ -23,198 +23,225 @@ - - + android:layout_height="0dp" + android:layout_weight="1"> - - - - - - + android:layout_height="match_parent" + android:orientation="vertical"> - - - - - - - + + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + - - + android:textSize="?attr/title_font_18" + android:fontFamily="?attr/title_font_family" /> - - - - - + + + android:paddingTop="16dp" + android:paddingStart="8dp" + android:paddingEnd="8dp" + app:layoutManager="androidx.recyclerview.widget.GridLayoutManager" + app:spanCount="2" /> - + - - - - - + - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_post_image.xml b/app/src/main/res/layout/activity_post_image.xml index b249f9bc..c2c223cf 100644 --- a/app/src/main/res/layout/activity_post_image.xml +++ b/app/src/main/res/layout/activity_post_image.xml @@ -212,7 +212,7 @@ -- cgit v1.2.3