Skip to content

Commit 707aec6

Browse files
Continue implementing PostOptionsBottomSheetFragment.
1 parent 747f5f1 commit 707aec6

File tree

2 files changed

+105
-2
lines changed

2 files changed

+105
-2
lines changed

app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/PostOptionsBottomSheetFragment.java

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,26 @@
11
package ml.docilealligator.infinityforreddit.bottomsheetfragments;
22

3+
import android.content.Context;
4+
import android.content.Intent;
35
import android.os.Bundle;
46
import android.view.LayoutInflater;
57
import android.view.View;
68
import android.view.ViewGroup;
79

10+
import androidx.annotation.IntDef;
811
import androidx.annotation.NonNull;
912
import androidx.fragment.app.Fragment;
1013

14+
import java.lang.annotation.Retention;
15+
import java.lang.annotation.RetentionPolicy;
16+
17+
import ml.docilealligator.infinityforreddit.R;
18+
import ml.docilealligator.infinityforreddit.account.Account;
19+
import ml.docilealligator.infinityforreddit.activities.BaseActivity;
20+
import ml.docilealligator.infinityforreddit.activities.CommentActivity;
21+
import ml.docilealligator.infinityforreddit.activities.PostFilterPreferenceActivity;
22+
import ml.docilealligator.infinityforreddit.activities.ReportActivity;
23+
import ml.docilealligator.infinityforreddit.activities.SubmitCrosspostActivity;
1124
import ml.docilealligator.infinityforreddit.customviews.LandscapeExpandedRoundedBottomSheetDialogFragment;
1225
import ml.docilealligator.infinityforreddit.databinding.FragmentPostOptionsBottomSheetBinding;
1326
import ml.docilealligator.infinityforreddit.post.Post;
@@ -21,6 +34,7 @@ public class PostOptionsBottomSheetFragment extends LandscapeExpandedRoundedBott
2134

2235
private static final String EXTRA_POST = "EP";
2336

37+
private BaseActivity mBaseActivity;
2438
private Post mPost;
2539
private FragmentPostOptionsBottomSheetBinding binding;
2640

@@ -58,6 +72,96 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
5872
Bundle savedInstanceState) {
5973
// Inflate the layout for this fragment
6074
binding = FragmentPostOptionsBottomSheetBinding.inflate(inflater, container, false);
75+
76+
if (mPost != null) {
77+
switch (mPost.getPostType()) {
78+
case Post.IMAGE_TYPE:
79+
break;
80+
case Post.GIF_TYPE:
81+
break;
82+
case Post.VIDEO_TYPE:
83+
break;
84+
case Post.GALLERY_TYPE:
85+
break;
86+
}
87+
88+
binding.addToPostFilterTextViewPostOptionsBottomSheetFragment.setOnClickListener(view -> {
89+
Intent intent = new Intent(mBaseActivity, PostFilterPreferenceActivity.class);
90+
intent.putExtra(PostFilterPreferenceActivity.EXTRA_POST, mPost);
91+
startActivity(intent);
92+
93+
dismiss();
94+
});
95+
96+
if (mBaseActivity.accountName.equals(Account.ANONYMOUS_ACCOUNT)) {
97+
binding.commentTextViewPostOptionsBottomSheetFragment.setVisibility(View.GONE);
98+
binding.hidePostTextViewPostOptionsBottomSheetFragment.setVisibility(View.GONE);
99+
binding.crosspostTextViewPostOptionsBottomSheetFragment.setVisibility(View.GONE);
100+
binding.reportTextViewPostOptionsBottomSheetFragment.setVisibility(View.GONE);
101+
} else {
102+
binding.commentTextViewPostOptionsBottomSheetFragment.setOnClickListener(view -> {
103+
Intent intent = new Intent(mBaseActivity, CommentActivity.class);
104+
intent.putExtra(CommentActivity.EXTRA_PARENT_FULLNAME_KEY, mPost.getFullName());
105+
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_TITLE_KEY, mPost.getTitle());
106+
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_BODY_MARKDOWN_KEY, mPost.getSelfText());
107+
intent.putExtra(CommentActivity.EXTRA_COMMENT_PARENT_BODY_KEY, mPost.getSelfTextPlain());
108+
intent.putExtra(CommentActivity.EXTRA_SUBREDDIT_NAME_KEY, mPost.getSubredditName());
109+
intent.putExtra(CommentActivity.EXTRA_IS_REPLYING_KEY, false);
110+
intent.putExtra(CommentActivity.EXTRA_PARENT_DEPTH_KEY, 0);
111+
mBaseActivity.startActivity(intent);
112+
113+
dismiss();
114+
});
115+
116+
if (mPost.isHidden()) {
117+
binding.hidePostTextViewPostOptionsBottomSheetFragment.setText(R.string.action_unhide_post);
118+
} else {
119+
binding.hidePostTextViewPostOptionsBottomSheetFragment.setText(R.string.action_hide_post);
120+
}
121+
122+
binding.hidePostTextViewPostOptionsBottomSheetFragment.setOnClickListener(view -> {
123+
if (mBaseActivity instanceof PostOptionsCallback) {
124+
((PostOptionsCallback) mBaseActivity).onOptionClicked(mPost, mPost.isHidden() ? POST_OPTION.UNHIDE_POST : POST_OPTION.HIDE_POST);
125+
}
126+
127+
dismiss();
128+
});
129+
130+
binding.crosspostTextViewPostOptionsBottomSheetFragment.setOnClickListener(view -> {
131+
Intent submitCrosspostIntent = new Intent(mBaseActivity, SubmitCrosspostActivity.class);
132+
submitCrosspostIntent.putExtra(SubmitCrosspostActivity.EXTRA_POST, mPost);
133+
startActivity(submitCrosspostIntent);
134+
135+
dismiss();
136+
});
137+
138+
binding.reportTextViewPostOptionsBottomSheetFragment.setOnClickListener(view -> {
139+
Intent intent = new Intent(mBaseActivity, ReportActivity.class);
140+
intent.putExtra(ReportActivity.EXTRA_SUBREDDIT_NAME, mPost.getSubredditName());
141+
intent.putExtra(ReportActivity.EXTRA_THING_FULLNAME, mPost.getFullName());
142+
startActivity(intent);
143+
});
144+
}
145+
}
146+
61147
return binding.getRoot();
62148
}
149+
150+
@Override
151+
public void onAttach(@NonNull Context context) {
152+
super.onAttach(context);
153+
mBaseActivity = (BaseActivity) context;
154+
}
155+
156+
public interface PostOptionsCallback {
157+
void onOptionClicked(Post post, @POST_OPTION int option);
158+
}
159+
160+
@IntDef({POST_OPTION.HIDE_POST, POST_OPTION.UNHIDE_POST})
161+
@Retention(RetentionPolicy.SOURCE)
162+
public @interface POST_OPTION {
163+
int HIDE_POST = 0;
164+
int UNHIDE_POST = 1;
165+
int DOWNLOAD_MEDIA = 2;
166+
}
63167
}

app/src/main/res/layout/fragment_post_options_bottom_sheet.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
app:drawableTint="?attr/primaryTextColor" />
3333

3434
<androidx.appcompat.widget.AppCompatTextView
35-
android:id="@+id/at_to_post_filter_text_view_post_options_bottom_sheet_fragment"
35+
android:id="@+id/add_to_post_filter_text_view_post_options_bottom_sheet_fragment"
3636
android:layout_width="match_parent"
3737
android:layout_height="wrap_content"
3838
android:gravity="center_vertical"
@@ -66,7 +66,6 @@
6666
android:paddingTop="16dp"
6767
android:paddingEnd="32dp"
6868
android:paddingBottom="16dp"
69-
android:text="@string/action_hide_post"
7069
android:textColor="?attr/primaryTextColor"
7170
android:textSize="?attr/font_default"
7271
app:drawableTint="?attr/primaryTextColor" />

0 commit comments

Comments
 (0)