Advertisement
Guest User

Untitled

a guest
Jul 7th, 2018
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 17.55 KB | None | 0 0
  1. public class PrincipalActivity extends AppCompatActivity implements View.OnClickListener {
  2.  
  3.     String lastEvent = null;
  4.     String nowTime = "";
  5.  
  6.     private FloatingActionButton fab;
  7.     private DatabaseReference fabChecker;
  8.  
  9.     private String day, month;
  10.  
  11.     private DatabaseReference mDatabase;
  12.     private DatabaseReference dataBase;
  13.     private DatabaseReference root;
  14.     private DatabaseReference userDb;
  15.  
  16.     private FirebaseAuth mAuth;
  17.  
  18.     private RecyclerView mEventList;
  19.  
  20.     private FirebaseRecyclerAdapter<Event, EventViewHolder> firebaseRecyclerAdapter;
  21.     private FirebaseRecyclerOptions<Event> options;
  22.  
  23.     private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
  24.             = new BottomNavigationView.OnNavigationItemSelectedListener() {
  25.  
  26.         @Override
  27.         public boolean onNavigationItemSelected(@NonNull MenuItem item) {
  28.             BottomNavigationView bottomNavigationView = findViewById(R.id.navigation);
  29.             switch (item.getItemId()) {
  30.                 case R.id.nav_home:
  31.                     break;
  32.                 case R.id.nav_profile:
  33.                     startActivity(new Intent(PrincipalActivity.this, ProfileActivity.class));
  34.                     break;
  35.             }
  36.             return false;
  37.         }
  38.     };
  39.  
  40.     @Override
  41.     protected void onCreate(Bundle savedInstanceState) {
  42.         super.onCreate(savedInstanceState);
  43.         setContentView(R.layout.activity_principal);
  44.  
  45.         BottomNavigationView bottomNavigationView = findViewById(R.id.navigation);
  46.         bottomNavigationView.getMenu().findItem(R.id.nav_home).setChecked(true);
  47.         bottomNavigationView.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
  48.  
  49.         mAuth = FirebaseAuth.getInstance();
  50.         if (mAuth.getCurrentUser() == null) {
  51.             finish();
  52.             startActivity(new Intent(this, HomeScreenActivity.class));
  53.         }
  54.  
  55.         Calendar c =  Calendar.getInstance();
  56.         if(c.get(Calendar.DAY_OF_MONTH) < 10){
  57.             day = "0" + String.valueOf(c.get(Calendar.DAY_OF_MONTH));
  58.         }
  59.  
  60.         if (c.get(Calendar.MONTH) + 1 < 10){
  61.             month = "0" + String.valueOf(c.get(Calendar.MONTH) + 1);
  62.         }
  63.  
  64.         nowTime = String.valueOf(c.get(Calendar.YEAR)) + month  + day;
  65.  
  66.         mEventList = (RecyclerView) findViewById(R.id.event_list);
  67.         mEventList.setHasFixedSize(true);
  68.         mEventList.setLayoutManager(new LinearLayoutManager(this));
  69.  
  70.         fab = findViewById(R.id.fab);
  71.         fab.setOnClickListener(this);
  72.         fab.setVisibility(View.GONE);
  73.  
  74.         Toolbar toolbar = findViewById(R.id.toolbar);
  75.         setSupportActionBar(toolbar);
  76.         getSupportActionBar().setTitle("");
  77.  
  78.         userDb = FirebaseDatabase.getInstance().getReference().child("Usuarios").child(mAuth.getCurrentUser().getUid().toString());
  79.  
  80.         fabChecker = FirebaseDatabase.getInstance().getReference().child("Premiums");
  81.         fabChecker.addValueEventListener(new ValueEventListener() {
  82.             @Override
  83.             public void onDataChange(DataSnapshot dataSnapshot) {
  84.                 if (dataSnapshot.child(mAuth.getCurrentUser().getUid()).exists()) {
  85.                     String isPremium = dataSnapshot.child(mAuth.getCurrentUser().getUid().toString().trim()).getValue().toString();
  86.                     if (isPremium.equals("requested")) {
  87.                         fab.setVisibility(View.GONE);
  88.                     } else if (isPremium.equals("true")) {
  89.                         fab.setVisibility(View.VISIBLE);
  90.                     }
  91.                 } else {
  92.                     fab.setVisibility(View.GONE);
  93.                 }
  94.             }
  95.  
  96.             @Override
  97.             public void onCancelled(DatabaseError databaseError) {
  98.  
  99.             }
  100.         });
  101.  
  102.         mDatabase = FirebaseDatabase.getInstance().getReference().child("Eventos");
  103.         Intent intent = getIntent();
  104.         Bundle extras = intent.getExtras();
  105.         if (extras != null) {
  106.             if (extras.containsKey("lastEvent")) {
  107.                 String key = extras.getString("lastEvent", null);
  108.  
  109.                 StorageReference storageReference = FirebaseStorage.getInstance().getReference().child("Eventos").child(key);
  110.                 storageReference.delete();
  111.                 mDatabase.child(key).removeValue();
  112.             }
  113.         }
  114.  
  115.         dataBase = FirebaseDatabase.getInstance()
  116.                 .getReference().child("Usuarios").child(mAuth.getCurrentUser().getUid().toString()).child("Asistir");
  117.  
  118.         root = FirebaseDatabase.getInstance().getReference().child("Notifications").child(mAuth.getCurrentUser().getUid().toString());
  119.         root.removeValue();
  120.     }
  121.  
  122.     @Override
  123.     public void onBackPressed() {
  124.         //TODO:
  125.     }
  126.  
  127.     public void searchBtn(View view) {
  128.         startActivity(new Intent(PrincipalActivity.this, SearchActivity.class));
  129.     }
  130.  
  131.     public void msgBtn(View view) {
  132.         startActivity(new Intent(PrincipalActivity.this, MessagesActivity.class));
  133.     }
  134.  
  135.     @Override
  136.     protected void onStart() {
  137.         super.onStart();
  138.  
  139.         SharedPreferences settings = getSharedPreferences("opciones", MODE_PRIVATE);
  140.  
  141.         DatabaseReference userDb = FirebaseDatabase.getInstance().getReference().child("Usuarios").child(mAuth.getCurrentUser().getUid().toString());
  142.         if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED && settings.getBoolean("showLoc", false)) {
  143.  
  144.         }
  145.  
  146.         final DatabaseReference rootDb = FirebaseDatabase.getInstance().getReference();
  147.         rootDb.addListenerForSingleValueEvent(new ValueEventListener() {
  148.             @Override
  149.             public void onDataChange(DataSnapshot dataSnapshot) {
  150.                 String mantenimiento = dataSnapshot.child("mantenimiento").getValue().toString();
  151.                 if(mantenimiento.equals("true")){
  152.                     rootDb.child("Usuarios").child(mAuth.getCurrentUser().getUid().toString()).child("device_token").removeValue();
  153.                     mAuth.signOut();
  154.                     finishAffinity();
  155.                     startActivity(new Intent(PrincipalActivity.this, HomeScreenActivity.class));
  156.                     Toast.makeText(getApplicationContext(), "Tu sesión expiró.", Toast.LENGTH_SHORT).show();
  157.                 }
  158.             }
  159.  
  160.             @Override
  161.             public void onCancelled(DatabaseError databaseError) {
  162.  
  163.             }
  164.         });
  165.  
  166.         Query searchQuery = mDatabase.orderByChild("timeStamp");
  167.  
  168.         options = new FirebaseRecyclerOptions.Builder<Event>()
  169.                 .setQuery(searchQuery, Event.class)
  170.                 .build();
  171.  
  172.         firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Event, EventViewHolder>(options) {
  173.             @Override
  174.             protected void onBindViewHolder(final EventViewHolder viewHolder, int position, final Event model) {
  175.                 final String id = getRef(viewHolder.getAdapterPosition()).getKey().toString().trim();
  176.  
  177.                 viewHolder.setTitle(model.getTitle());
  178.                 viewHolder.setDateWords(model.getDateWords());
  179.                 viewHolder.setDesc(model.getDesc());
  180.  
  181.                 final boolean asiste;
  182.                 final boolean[] creator = new boolean[1];
  183.  
  184.                 mDatabase.child(id).addValueEventListener(new ValueEventListener() {
  185.                     @Override
  186.                     public void onDataChange(DataSnapshot dataSnapshot) {
  187.                         if(dataSnapshot.child("banner").exists()){
  188.                             String bannerValue = dataSnapshot.child("banner").getValue().toString();
  189.                             ImageView bannerView = viewHolder.itemView.findViewById(R.id.bannerFoto);
  190.  
  191.                             SharedPreferences settings = getSharedPreferences("opciones" ,MODE_PRIVATE);
  192.                             if(settings.getBoolean("save3G", false)){
  193.                                 Glide.with(getApplicationContext()).load(R.drawable.event_placeholder).into(bannerView);
  194.                             } else {
  195.                                 Glide.with(getApplicationContext()).load(bannerValue).into(bannerView);
  196.                             }
  197.                         }
  198.  
  199.                         if(dataSnapshot.child("creatorUid").exists()){
  200.                             if(dataSnapshot.child("creatorUid").getValue().toString().equals(mAuth.getCurrentUser().getUid().toString())){
  201.                                 creator[0] = true;
  202.                             } else {
  203.                                 creator[0] = false;
  204.                             }
  205.                         }
  206.                     }
  207.  
  208.                     @Override
  209.                     public void onCancelled(DatabaseError databaseError) {
  210.  
  211.                     }
  212.                 });
  213.  
  214.                 dataBase.addValueEventListener(new ValueEventListener() {
  215.                     @Override
  216.                     public void onDataChange(DataSnapshot dataSnapshot) {
  217.                         if(!dataSnapshot.child(id).exists()){
  218.                             //No existe => Funcion para asistir al evento
  219.                             viewHolder.asistBtn.setVisibility(View.VISIBLE);
  220.                             viewHolder.unAsistBtn.setVisibility(View.GONE);
  221.                         } else {
  222.                             //Existe
  223.                             viewHolder.asistBtn.setVisibility(View.GONE);
  224.                             viewHolder.unAsistBtn.setVisibility(View.VISIBLE);
  225.                         }
  226.                     }
  227.  
  228.                     @Override
  229.                     public void onCancelled(DatabaseError databaseError) {
  230.  
  231.                     }
  232.                 });
  233.  
  234.                 viewHolder.mView.setOnClickListener(new View.OnClickListener() {
  235.                     @Override
  236.                     public void onClick(View view) {
  237.  
  238.                         mDatabase.child(id).addValueEventListener(new ValueEventListener() {
  239.                             @Override
  240.                             public void onDataChange(DataSnapshot dataSnapshot) {
  241.                                 String eventTime = dataSnapshot.child("timeStamp").getValue().toString();
  242.                                 if(Integer.parseInt(nowTime) > Integer.parseInt(eventTime)){
  243.                                     Intent intent = new Intent(PrincipalActivity.this, TestingActivity.class);
  244.                                     intent.putExtra("eventKey", id);
  245.                                     startActivity(intent);
  246.                                     finish();
  247.                                 } else {
  248.                                     Intent intent = new Intent(PrincipalActivity.this, EventSingleActivity.class);
  249.                                     intent.putExtra("eventKey", id);
  250.                                     startActivity(intent);
  251.                                 }
  252.                             }
  253.  
  254.                             @Override
  255.                             public void onCancelled(DatabaseError databaseError) {
  256.  
  257.                             }
  258.                         });
  259.                     }
  260.                 });
  261.  
  262.                 viewHolder.asistBtn.setOnClickListener(new View.OnClickListener() {
  263.                     @Override
  264.                     public void onClick(View view) {
  265.                         viewHolder.asistBtn.setVisibility(View.GONE);
  266.                         viewHolder.unAsistBtn.setVisibility(View.VISIBLE);
  267.  
  268.                         dataBase.child(id).child("id").setValue(id);
  269.                         mDatabase.child(id).child("asist").child(mAuth.getCurrentUser().getUid()).child("id").setValue(mAuth.getCurrentUser().getUid());
  270.                     }
  271.                 });
  272.  
  273.                 viewHolder.mView.setOnLongClickListener(new View.OnLongClickListener() {
  274.                     @Override
  275.                     public boolean onLongClick(View view) {
  276.                         options(creator[0], id, model.getTitle());
  277.                         //startActivity(new Intent(PrincipalActivity.this, TestingActivity.class));
  278.                         return false;
  279.                     }
  280.                 });
  281.  
  282.                 viewHolder.unAsistBtn.setOnClickListener(new View.OnClickListener() {
  283.                     @Override
  284.                     public void onClick(View view) {
  285.                         viewHolder.asistBtn.setVisibility(View.VISIBLE);
  286.                         viewHolder.unAsistBtn.setVisibility(View.GONE);
  287.  
  288.                         dataBase.child(id).removeValue();
  289.                         mDatabase.child(id).child("asist").child(mAuth.getCurrentUser().getUid()).child("id").removeValue();
  290.                     }
  291.                 });
  292.             }
  293.  
  294.             @NonNull
  295.             @Override
  296.             public EventViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  297.                 View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.event_row, parent, false);
  298.                 return new EventViewHolder(view);
  299.             }
  300.         };
  301.  
  302.         firebaseRecyclerAdapter.startListening();
  303.         mEventList.setAdapter(firebaseRecyclerAdapter);
  304.     }
  305.  
  306.     private void options (boolean creator, final String eventKey, final String eventTitle){
  307.         if(creator) {
  308.             CharSequence options[] = new CharSequence[]{"Editar evento", "Compartir"};
  309.             AlertDialog.Builder myAlertDialog = new AlertDialog.Builder(PrincipalActivity.this);
  310.             myAlertDialog.setItems(options, new DialogInterface.OnClickListener() {
  311.                 @Override
  312.                 public void onClick(DialogInterface dialogInterface, int i) {
  313.                     if (i == 0) {
  314.  
  315.                         Intent intent = new Intent(getApplicationContext(), EventConfigActivity.class);
  316.                         intent.putExtra("eventKey", eventKey);
  317.                         startActivity(intent);
  318.  
  319.                     } else if(i == 1) {
  320.  
  321.                         Intent intent = new Intent(getApplicationContext(), SendEventActivity.class);
  322.                         intent.putExtra("eventKey", eventKey);
  323.                         intent.putExtra("eventName", eventTitle);
  324.                         startActivity(intent);
  325.  
  326.                     }
  327.                 }
  328.             });
  329.             myAlertDialog.show();
  330.         } else if (!creator){
  331.             CharSequence options[] = new CharSequence[]{"Compartir"};
  332.             AlertDialog.Builder myAlertDialog = new AlertDialog.Builder(PrincipalActivity.this);
  333.             myAlertDialog.setItems(options, new DialogInterface.OnClickListener() {
  334.                 @Override
  335.                 public void onClick(DialogInterface dialogInterface, int i) {
  336.                     if (i == 0) {
  337.  
  338.                         Intent intent = new Intent(getApplicationContext(), SendEventActivity.class);
  339.                         intent.putExtra("eventKey", eventKey);
  340.                         intent.putExtra("eventName", eventTitle);
  341.                         startActivity(intent);
  342.  
  343.                     }
  344.                 }
  345.             });
  346.             myAlertDialog.show();
  347.         }
  348.     }
  349.  
  350.     @Override
  351.     public void onClick(View view) {
  352.         Evento(view.getId());
  353.     }
  354.  
  355.     public void Evento (int opc) {
  356.         switch (opc) {
  357.             case R.id.fab:
  358.                 userDb.addValueEventListener(new ValueEventListener() {
  359.                     @Override
  360.                     public void onDataChange(DataSnapshot dataSnapshot) {
  361.                         if(dataSnapshot.child("phone").exists()){
  362.  
  363.                             startActivity(new Intent(PrincipalActivity.this, NewEventActivity.class));
  364.                             finish();
  365.  
  366.                         } else {
  367.  
  368.                             Toast.makeText(getApplicationContext(), "Debes ingresar un número de teléfono válido!", Toast.LENGTH_SHORT).show();
  369.  
  370.                         }
  371.                     }
  372.  
  373.                     @Override
  374.                     public void onCancelled(DatabaseError databaseError) {
  375.  
  376.                     }
  377.                 });
  378.                 break;
  379.         }
  380.     }
  381.  
  382.     public void onRequestPermissionsResult(int requestCode,
  383.                                            String permissions[], int[] grantResults) {
  384.         switch (requestCode) {
  385.             case 1: {
  386.                 if (grantResults.length > 0
  387.                         && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  388.  
  389.                 } else {
  390.                 }
  391.                 return;
  392.             }
  393.         }
  394.     }
  395.  
  396.     public static class EventViewHolder extends RecyclerView.ViewHolder {
  397.         View mView;
  398.         ImageButton asistBtn = itemView.findViewById(R.id.asistBtn);
  399.         ImageButton unAsistBtn = itemView.findViewById(R.id.unAsistBtn);
  400.  
  401.         public EventViewHolder(View itemView) {
  402.             super(itemView);
  403.             mView = itemView;
  404.         }
  405.  
  406.         public void setTitle(String title) {
  407.             TextView textView =itemView.findViewById(R.id.eventName);
  408.             textView.setText(title);
  409.         }
  410.  
  411.         public void setDateWords(String dateWords){
  412.             TextView textView = itemView.findViewById(R.id.eventDate);
  413.             textView.setText(dateWords.toString().trim());
  414.         }
  415.  
  416.         public void setDesc (String desc) {
  417.             TextView textView = itemView.findViewById(R.id.eventDesc);
  418.             textView.setText(desc);
  419.         }
  420.     }
  421.  
  422.     public void testBtn (View view) {
  423.  
  424.     }
  425. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement