1
1
package ml .docilealligator .infinityforreddit .bottomsheetfragments ;
2
2
3
+ import android .content .Context ;
4
+ import android .content .Intent ;
3
5
import android .os .Bundle ;
4
6
import android .view .LayoutInflater ;
5
7
import android .view .View ;
6
8
import android .view .ViewGroup ;
7
9
10
+ import androidx .annotation .IntDef ;
8
11
import androidx .annotation .NonNull ;
9
12
import androidx .fragment .app .Fragment ;
10
13
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 ;
11
24
import ml .docilealligator .infinityforreddit .customviews .LandscapeExpandedRoundedBottomSheetDialogFragment ;
12
25
import ml .docilealligator .infinityforreddit .databinding .FragmentPostOptionsBottomSheetBinding ;
13
26
import ml .docilealligator .infinityforreddit .post .Post ;
@@ -21,6 +34,7 @@ public class PostOptionsBottomSheetFragment extends LandscapeExpandedRoundedBott
21
34
22
35
private static final String EXTRA_POST = "EP" ;
23
36
37
+ private BaseActivity mBaseActivity ;
24
38
private Post mPost ;
25
39
private FragmentPostOptionsBottomSheetBinding binding ;
26
40
@@ -58,6 +72,96 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
58
72
Bundle savedInstanceState ) {
59
73
// Inflate the layout for this fragment
60
74
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
+
61
147
return binding .getRoot ();
62
148
}
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
+ }
63
167
}
0 commit comments