Continue implementing PostOptionsBottomSheetFragment.

This commit is contained in:
Docile-Alligator
2024-09-11 14:01:22 -04:00
parent 747f5f1a23
commit 707aec6b2d
2 changed files with 105 additions and 2 deletions

View File

@ -1,13 +1,26 @@
package ml.docilealligator.infinityforreddit.bottomsheetfragments;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.IntDef;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import ml.docilealligator.infinityforreddit.R;
import ml.docilealligator.infinityforreddit.account.Account;
import ml.docilealligator.infinityforreddit.activities.BaseActivity;
import ml.docilealligator.infinityforreddit.activities.CommentActivity;
import ml.docilealligator.infinityforreddit.activities.PostFilterPreferenceActivity;
import ml.docilealligator.infinityforreddit.activities.ReportActivity;
import ml.docilealligator.infinityforreddit.activities.SubmitCrosspostActivity;
import ml.docilealligator.infinityforreddit.customviews.LandscapeExpandedRoundedBottomSheetDialogFragment;
import ml.docilealligator.infinityforreddit.databinding.FragmentPostOptionsBottomSheetBinding;
import ml.docilealligator.infinityforreddit.post.Post;
@ -21,6 +34,7 @@ public class PostOptionsBottomSheetFragment extends LandscapeExpandedRoundedBott
private static final String EXTRA_POST = "EP";
private BaseActivity mBaseActivity;
private Post mPost;
private FragmentPostOptionsBottomSheetBinding binding;
@ -58,6 +72,96 @@ public class PostOptionsBottomSheetFragment extends LandscapeExpandedRoundedBott
Bundle savedInstanceState) {
// Inflate the layout for this fragment
binding = FragmentPostOptionsBottomSheetBinding.inflate(inflater, container, false);
if (mPost != null) {
switch (mPost.getPostType()) {
case Post.IMAGE_TYPE:
break;
case Post.GIF_TYPE:
break;
case Post.VIDEO_TYPE:
break;
case Post.GALLERY_TYPE:
break;
}
binding.addToPostFilterTextViewPostOptionsBottomSheetFragment.setOnClickListener(view -> {
Intent intent = new Intent(mBaseActivity, PostFilterPreferenceActivity.class);
intent.putExtra(PostFilterPreferenceActivity.EXTRA_POST, mPost);
startActivity(intent);
dismiss();
});
if (mBaseActivity.accountName.equals(Account.ANONYMOUS_ACCOUNT)) {
binding.commentTextViewPostOptionsBottomSheetFragment.setVisibility(View.GONE);
binding.hidePostTextViewPostOptionsBottomSheetFragment.setVisibility(View.GONE);
binding.crosspostTextViewPostOptionsBottomSheetFragment.setVisibility(View.GONE);
binding.reportTextViewPostOptionsBottomSheetFragment.setVisibility(View.GONE);
} else {
binding.commentTextViewPostOptionsBottomSheetFragment.setOnClickListener(view -> {
Intent intent = new Intent(mBaseActivity, CommentActivity.class);
intent.putExtra(CommentActivity.EXTRA_PARENT_FULLNAME_KEY, mPost.getFullName());
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_TITLE_KEY, mPost.getTitle());
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_BODY_MARKDOWN_KEY, mPost.getSelfText());
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_BODY_KEY, mPost.getSelfTextPlain());
intent.putExtra(CommentActivity.EXTRA_SUBREDDIT_NAME_KEY, mPost.getSubredditName());
intent.putExtra(CommentActivity.EXTRA_IS_REPLYING_KEY, false);
intent.putExtra(CommentActivity.EXTRA_PARENT_DEPTH_KEY, 0);
mBaseActivity.startActivity(intent);
dismiss();
});
if (mPost.isHidden()) {
binding.hidePostTextViewPostOptionsBottomSheetFragment.setText(R.string.action_unhide_post);
} else {
binding.hidePostTextViewPostOptionsBottomSheetFragment.setText(R.string.action_hide_post);
}
binding.hidePostTextViewPostOptionsBottomSheetFragment.setOnClickListener(view -> {
if (mBaseActivity instanceof PostOptionsCallback) {
((PostOptionsCallback) mBaseActivity).onOptionClicked(mPost, mPost.isHidden() ? POST_OPTION.UNHIDE_POST : POST_OPTION.HIDE_POST);
}
dismiss();
});
binding.crosspostTextViewPostOptionsBottomSheetFragment.setOnClickListener(view -> {
Intent submitCrosspostIntent = new Intent(mBaseActivity, SubmitCrosspostActivity.class);
submitCrosspostIntent.putExtra(SubmitCrosspostActivity.EXTRA_POST, mPost);
startActivity(submitCrosspostIntent);
dismiss();
});
binding.reportTextViewPostOptionsBottomSheetFragment.setOnClickListener(view -> {
Intent intent = new Intent(mBaseActivity, ReportActivity.class);
intent.putExtra(ReportActivity.EXTRA_SUBREDDIT_NAME, mPost.getSubredditName());
intent.putExtra(ReportActivity.EXTRA_THING_FULLNAME, mPost.getFullName());
startActivity(intent);
});
}
}
return binding.getRoot();
}
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
mBaseActivity = (BaseActivity) context;
}
public interface PostOptionsCallback {
void onOptionClicked(Post post, @POST_OPTION int option);
}
@IntDef({POST_OPTION.HIDE_POST, POST_OPTION.UNHIDE_POST})
@Retention(RetentionPolicy.SOURCE)
public @interface POST_OPTION {
int HIDE_POST = 0;
int UNHIDE_POST = 1;
int DOWNLOAD_MEDIA = 2;
}
}

View File

@ -32,7 +32,7 @@
app:drawableTint="?attr/primaryTextColor" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/at_to_post_filter_text_view_post_options_bottom_sheet_fragment"
android:id="@+id/add_to_post_filter_text_view_post_options_bottom_sheet_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
@ -66,7 +66,6 @@
android:paddingTop="16dp"
android:paddingEnd="32dp"
android:paddingBottom="16dp"
android:text="@string/action_hide_post"
android:textColor="?attr/primaryTextColor"
android:textSize="?attr/font_default"
app:drawableTint="?attr/primaryTextColor" />