1
1
package com .example .nobulijava .adapters ;
2
2
3
3
import android .app .Activity ;
4
- import android .content .Context ;
5
4
import android .content .DialogInterface ;
6
5
import android .content .Intent ;
7
6
import android .net .Uri ;
18
17
19
18
import com .bumptech .glide .Glide ;
20
19
import com .example .nobulijava .R ;
21
- import com .example .nobulijava .activity .AdminDashboardActivity ;
22
20
import com .example .nobulijava .activity .AdminNewsEditActivity ;
23
- import com .example .nobulijava .activity .AdminNewsListActivity ;
24
- import com .example .nobulijava .activity .AdminQuizEditActivity ;
25
21
import com .example .nobulijava .activity .LoginActivity ;
26
- import com .example .nobulijava .activity .UserDashboardActivity ;
27
22
import com .example .nobulijava .activity .UserNewsDetailsActivity ;
28
23
import com .example .nobulijava .model .NewsObj ;
29
24
import com .example .nobulijava .model .UserObj ;
25
+ import com .example .nobulijava .utils .DateTimeCalculator ;
30
26
import com .google .android .gms .tasks .OnSuccessListener ;
31
27
import com .google .firebase .auth .FirebaseUser ;
32
28
import com .google .firebase .database .DataSnapshot ;
37
33
import com .google .firebase .storage .FirebaseStorage ;
38
34
import com .google .firebase .storage .StorageReference ;
39
35
36
+ import java .time .LocalDate ;
37
+ import java .time .LocalTime ;
38
+ import java .time .Year ;
39
+ import java .time .YearMonth ;
40
+ import java .time .format .DateTimeFormatter ;
41
+ import java .time .temporal .ChronoUnit ;
40
42
import java .util .ArrayList ;
41
43
42
- public class NewsAdapter extends RecyclerView .Adapter <NewsAdapter .NewsViewHolder >{
44
+ import com .example .nobulijava .utils .DateTimeCalculator ;
45
+
46
+ public class NewsAdapter extends RecyclerView .Adapter <NewsAdapter .NewsViewHolder > {
43
47
private ArrayList <NewsObj > newsDataSet ;
44
48
private DatabaseReference mDatabase = FirebaseDatabase .getInstance ().getReference ();
45
49
private final Activity context ;
@@ -67,15 +71,16 @@ public int getItemCount() {
67
71
return newsDataSet .size ();
68
72
}
69
73
70
- public class NewsViewHolder extends RecyclerView .ViewHolder {
74
+ public class NewsViewHolder extends RecyclerView .ViewHolder {
71
75
private final TextView textViewTitle ;
72
76
private final TextView textViewContent ;
73
77
private final TextView textViewDatePosted ;
74
78
private final ImageView imageViewNews ;
75
79
76
80
String FOLDER_NAME = "news_image" ;
77
81
FirebaseStorage storage = FirebaseStorage .getInstance ();
78
- Uri uriSelectedImage ;
82
+ FirebaseUser firebaseCurrentUser = LoginActivity .mAuth .getCurrentUser ();
83
+ UserObj currentUserObj ;
79
84
80
85
public NewsViewHolder (@ NonNull View itemView ) {
81
86
super (itemView );
@@ -85,12 +90,11 @@ public NewsViewHolder(@NonNull View itemView) {
85
90
textViewDatePosted = (TextView ) itemView .findViewById (R .id .textView_newsList_datePosted );
86
91
imageViewNews = (ImageView ) itemView .findViewById (R .id .imageView_newsList_image );
87
92
88
- FirebaseUser currentUser = LoginActivity .mAuth .getCurrentUser ();
89
- mDatabase .child ("User" ).child (currentUser .getUid ()).addValueEventListener (new ValueEventListener () {
93
+ mDatabase .child ("User" ).child (firebaseCurrentUser .getUid ()).addValueEventListener (new ValueEventListener () {
90
94
@ Override
91
95
public void onDataChange (@ NonNull DataSnapshot dataSnapshot ) {
92
- UserObj user = dataSnapshot .getValue (UserObj .class );
93
- if (user .getIsAdmin ()) {
96
+ currentUserObj = dataSnapshot .getValue (UserObj .class );
97
+ if (currentUserObj .getIsAdmin ()) {
94
98
itemView .setOnClickListener (new View .OnClickListener () {
95
99
@ Override
96
100
public void onClick (View v ) {
@@ -156,22 +160,49 @@ public void onCancelled(@NonNull DatabaseError error) {
156
160
157
161
}
158
162
159
- public void bind (NewsObj newsObj , Integer position ){
163
+ public void bind (NewsObj newsObj , Integer position ) {
160
164
textViewTitle .setText (newsObj .getTitle ());
161
- if (newsObj .getContent ().length () > 105 ){
165
+ if (newsObj .getContent ().length () > 105 ) {
162
166
textViewContent .setText (newsObj .getContent ().substring (0 , 105 ) + "..." );
163
- } else {
167
+ } else {
164
168
textViewContent .setText (newsObj .getContent ());
165
169
}
166
- textViewDatePosted .setText (newsObj .getDatePosted ());
167
170
168
- StorageReference gsReference = storage .getReferenceFromUrl ("gs://nobulibot-ysta.appspot.com/" + FOLDER_NAME + "/" + newsObj .getNewsID ());
169
- gsReference .getDownloadUrl ().addOnSuccessListener (new OnSuccessListener <Uri >() {
171
+ mDatabase .child ("User" ).child (firebaseCurrentUser .getUid ()).addValueEventListener (new ValueEventListener () {
170
172
@ Override
171
- public void onSuccess (Uri uri ) {
172
- Glide .with (context ).load (uri ).into (imageViewNews );
173
+ public void onDataChange (@ NonNull DataSnapshot dataSnapshot ) {
174
+ currentUserObj = dataSnapshot .getValue (UserObj .class );
175
+ if (currentUserObj .getIsAdmin ()) {
176
+ textViewDatePosted .setText (newsObj .getDatePosted ());
177
+ } else {
178
+ String [] simpleDurationDetails = DateTimeCalculator .simpleDuration (newsObj .getDatePosted ());
179
+ String toPrint = "" ;
180
+ for (String string : simpleDurationDetails ){
181
+ toPrint += " " + string ;
182
+ }
183
+ textViewDatePosted .setText (toPrint + " Ago" );
184
+
185
+ System .out .println ("Simple duration: " + toPrint );
186
+
187
+ }
188
+ }
189
+
190
+ @ Override
191
+ public void onCancelled (@ NonNull DatabaseError error ) {
192
+
173
193
}
174
194
});
195
+
196
+
197
+ StorageReference gsReference = storage .getReferenceFromUrl ("gs://nobulibot-ysta.appspot.com/" + FOLDER_NAME + "/" + newsObj .getNewsID ());
198
+ gsReference .getDownloadUrl ().
199
+
200
+ addOnSuccessListener (new OnSuccessListener <Uri >() {
201
+ @ Override
202
+ public void onSuccess (Uri uri ) {
203
+ Glide .with (context ).load (uri ).into (imageViewNews );
204
+ }
205
+ });
175
206
}
176
207
}
177
208
}
0 commit comments