Advertisement
Guest User

ini mas

a guest
May 24th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.18 KB | None | 0 0
  1. package com.regalnine.virtualclocking.ui.menu.fragment;
  2.  
  3. import android.annotation.SuppressLint;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.support.annotation.NonNull;
  7. import android.support.v4.app.Fragment;
  8. import android.support.v7.widget.LinearLayoutManager;
  9. import android.support.v7.widget.RecyclerView;
  10. import android.view.LayoutInflater;
  11. import android.view.Menu;
  12. import android.view.MenuItem;
  13. import android.view.View;
  14. import android.view.ViewGroup;
  15. import android.widget.LinearLayout;
  16. import android.widget.TextView;
  17. import android.widget.Toast;
  18.  
  19. import com.google.firebase.auth.FirebaseAuth;
  20. import com.google.firebase.auth.FirebaseUser;
  21. import com.google.firebase.database.DataSnapshot;
  22. import com.google.firebase.database.DatabaseError;
  23. import com.google.firebase.database.DatabaseReference;
  24. import com.google.firebase.database.FirebaseDatabase;
  25. import com.google.firebase.database.ValueEventListener;
  26. import com.regalnine.virtualclocking.R;
  27. import com.regalnine.virtualclocking.ui.menu.MainActivity;
  28. import com.regalnine.virtualclocking.ui.next.PojoNextDaysPlan;
  29. import com.regalnine.virtualclocking.ui.today.MyPlanActivity;
  30. import com.regalnine.virtualclocking.util.PrefManager;
  31.  
  32. import java.util.ArrayList;
  33. import java.util.Calendar;
  34.  
  35. import io.github.fentonmartin.aappz.util.DateZ;
  36.  
  37. /**
  38. * A simple {@link Fragment} subclass.
  39. */
  40. public class SBNextDayFragment extends Fragment {
  41.  
  42. private RecyclerView mRecyclerView;
  43. DatabaseReference mDatabase;
  44. FirebaseUser user;
  45. SBNextDayFragment.ListAdapter adapter;
  46. ArrayList<PojoNextDaysPlan> list = new ArrayList<>();
  47.  
  48. public SBNextDayFragment() {
  49. // Required empty public constructor
  50. }
  51.  
  52. @Override
  53. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  54. Bundle savedInstanceState) {
  55. // Inflate the layout for this fragment
  56. setHasOptionsMenu(true);
  57. View view = inflater.inflate(R.layout.fragment_sbnext_day, container, false);
  58. ((MainActivity) getActivity()).getSupportActionBar().setTitle("Next Days Plan");
  59.  
  60. //getAccess
  61. user = FirebaseAuth.getInstance().getCurrentUser();
  62. final String current_uid = user.getUid();
  63.  
  64. mDatabase = FirebaseDatabase.getInstance().getReference().child("user").child(current_uid);
  65. mDatabase.keepSynced(true);
  66.  
  67. mRecyclerView = view.findViewById(R.id.rc_next_day);
  68. mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
  69.  
  70.  
  71. mDatabase = FirebaseDatabase.getInstance().getReference().child("user");
  72. mDatabase.addValueEventListener(new ValueEventListener() {
  73. @Override
  74. public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  75. for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
  76.  
  77. final String id = dataSnapshot1.getKey();
  78.  
  79. mDatabase = FirebaseDatabase.getInstance().getReference().child("user").child(id).child("today");
  80. mDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
  81. @Override
  82. public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  83. list = new ArrayList<>();
  84.  
  85. for (DataSnapshot data : dataSnapshot.getChildren()) {
  86.  
  87. PojoNextDaysPlan p = data.getValue(PojoNextDaysPlan.class);
  88. list.add(p);
  89.  
  90. adapter = new ListAdapter(list);
  91. mRecyclerView.setAdapter(adapter);
  92. }
  93. }
  94.  
  95. @Override
  96. public void onCancelled(@NonNull DatabaseError databaseError) {
  97. Toast.makeText(getActivity(), "Error : " + databaseError, Toast.LENGTH_SHORT).show();
  98. }
  99. });
  100. }
  101. }
  102.  
  103. @Override
  104. public void onCancelled(@NonNull DatabaseError databaseError) {
  105. Toast.makeText(getActivity(), "Opsss.... Something is wrong", Toast.LENGTH_SHORT).show();
  106. }
  107. });
  108.  
  109. return view;
  110. }
  111.  
  112. public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ViewHolder> {
  113. private ArrayList<PojoNextDaysPlan> list;
  114.  
  115. public ListAdapter(ArrayList<PojoNextDaysPlan> data) {
  116. this.list = data;
  117. }
  118.  
  119. public class ViewHolder extends RecyclerView.ViewHolder {
  120. TextView tvToday, tvDate, tvTitle, tvTime;
  121. LinearLayout container;
  122. String dateToday, dateTomorrow, dateFirebase, isi;
  123.  
  124. public ViewHolder(View itemView) {
  125. super(itemView);
  126. this.tvToday = itemView.findViewById(R.id.tv_next_day);
  127. this.tvDate = itemView.findViewById(R.id.tv_next_day_date);
  128. this.tvTitle = itemView.findViewById(R.id.tv_next_day_title);
  129. this.tvTime = itemView.findViewById(R.id.tv_next_day_time);
  130. this.container = itemView.findViewById(R.id.row_item_next_day);
  131. }
  132. }
  133.  
  134. @Override
  135. public void onBindViewHolder(ListAdapter.ViewHolder holder, @SuppressLint("RecyclerView") final int position) {
  136.  
  137. final String total_today = String.valueOf(list.size());
  138. new PrefManager(getContext()).setTotalToday(total_today);
  139.  
  140. holder.tvDate.setText(list.get(position).getDate());
  141. holder.tvTitle.setText(list.get(position).getPlan_title());
  142. holder.tvTime.setText(list.get(position).getStart_time());
  143.  
  144. final Calendar c = Calendar.getInstance();
  145. int date = c.get(Calendar.DAY_OF_MONTH);
  146. int mount = c.get(Calendar.MONTH);
  147. int year = c.get(Calendar.YEAR);
  148.  
  149. holder.dateFirebase = list.get(position).getDate();
  150. holder.dateToday = date + "/" + (mount+1) + "/" + year;
  151. holder.dateTomorrow = (date+1) + "/" + (mount+1) + "/" + year;
  152.  
  153. if (holder.dateToday == holder.dateFirebase){
  154.  
  155. holder.isi = "Today";
  156.  
  157. } else if (holder.dateTomorrow == holder.dateFirebase){
  158.  
  159. holder.isi = "Tomorrow";
  160.  
  161. } else {
  162.  
  163. holder.isi = "iseh sui";
  164.  
  165. }
  166.  
  167. holder.tvToday.setText(holder.isi);
  168.  
  169. holder.container.setOnClickListener(new View.OnClickListener() {
  170. @Override
  171. public void onClick(View v) {
  172. Intent i = new Intent(getActivity(), MyPlanActivity.class);
  173. i.putExtra("today", list.get(position).getProject());
  174. i.putExtra("date_plan", list.get(position).getDate());
  175. i.putExtra("title", list.get(position).getPlan_title());
  176. i.putExtra("start_time", list.get(position).getStart_time());
  177. i.putExtra("end_time", list.get(position).getEnd_time());
  178. i.putExtra("description", list.get(position).getDescription());
  179. i.putExtra("project", list.get(position).getProject());
  180. i.putExtra("uid", list.get(position).getUid());
  181. startActivity(i);
  182. Toast.makeText(getActivity(), "Item " + (position + 1) + " is clicked.", Toast.LENGTH_SHORT).show();
  183. }
  184. });
  185.  
  186. }
  187.  
  188. @Override
  189. public ListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  190.  
  191. View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_item_next_day, parent, false);
  192. SBNextDayFragment.ListAdapter.ViewHolder viewHolder = new ListAdapter.ViewHolder(view);
  193. return viewHolder;
  194.  
  195. }
  196.  
  197. @Override
  198. public int getItemCount() {
  199. return list.size();
  200. }
  201. }
  202.  
  203. @Override
  204. public void onPrepareOptionsMenu(Menu menu) {
  205. MenuItem item = menu.findItem(R.id.logout);
  206. if (item != null)
  207. item.setVisible(false);
  208. }
  209. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement