1package uo269509.favoritepath.activity;
3import android.Manifest;
4import android.content.Intent;
5import android.content.pm.PackageManager;
6import android.os.Bundle;
7import android.os.Handler;
8import android.os.Looper;
9import android.view.View;
10import android.widget.ImageView;
11import android.widget.TextView;
12import android.widget.Toast;
14import androidx.appcompat.app.ActionBarDrawerToggle;
15import androidx.appcompat.app.AlertDialog;
16import androidx.appcompat.app.AppCompatActivity;
17import androidx.appcompat.widget.Toolbar;
18import androidx.core.app.ActivityCompat;
19import androidx.core.content.ContextCompat;
20import androidx.core.view.GravityCompat;
21import androidx.drawerlayout.widget.DrawerLayout;
22import androidx.fragment.app.Fragment;
23import androidx.fragment.app.FragmentManager;
24import androidx.fragment.app.FragmentTransaction;
26import com.google.android.material.navigation.NavigationView;
27import com.google.firebase.auth.FirebaseAuth;
28import com.google.firebase.firestore.FirebaseFirestore;
29import com.squareup.picasso.Picasso;
31import java.util.concurrent.Executor;
32import java.util.concurrent.Executors;
34import uo269509.favoritepath.R;
35import uo269509.favoritepath.ui.AmigosFragment;
36import uo269509.favoritepath.ui.AyudaFragment;
37import uo269509.favoritepath.ui.ColeccionesFragment;
38import uo269509.favoritepath.ui.InicioFragment;
39import uo269509.favoritepath.ui.PerfilFragment;
40import uo269509.favoritepath.ui.SolicitudesFragment;
44 private static final int REQUEST_STORAGE_PERMISSION = 1;
45 DrawerLayout drawerLayout;
46 NavigationView navigationView;
48 private FirebaseAuth mAuth;
49 private FirebaseFirestore db;
51 TextView descripcionView;
61 super.onRequestPermissionsResult(requestCode, permissions, grantResults);
62 if (requestCode == REQUEST_STORAGE_PERMISSION) {
63 if (grantResults[0] == PackageManager.PERMISSION_DENIED) {
64 Toast.makeText(
this,
"No se ha podido abrir las colecciones, por favor, " +
65 "acepte los permisos necesarios.",Toast.LENGTH_SHORT).show();
77 Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.frameLayout);
81 super.onBackPressed();
84 super.onBackPressed();
94 protected void onCreate(Bundle savedInstanceState) {
95 super.onCreate(savedInstanceState);
96 setContentView(R.layout.activity_main);
105 private void navigation(){
106 navigationView.setNavigationItemSelectedListener(item -> {
108 switch (item.getItemId()) {
110 cargarFragment(new PerfilFragment());
111 toolbar.setTitle(R.string.menu_perfil);
112 drawerLayout.closeDrawer(GravityCompat.START);
116 drawerLayout.closeDrawer(GravityCompat.START);
119 cargarFragment(new AmigosFragment());
120 toolbar.setTitle(R.string.listado_amigos);
121 drawerLayout.closeDrawer(GravityCompat.START);
124 cargarFragment(new SolicitudesFragment());
125 toolbar.setTitle(R.string.listado_solicitudes);
126 drawerLayout.closeDrawer(GravityCompat.START);
129 cargarFragment(new AyudaFragment());
130 toolbar.setTitle(R.string.menu_ayuda);
131 drawerLayout.closeDrawer(GravityCompat.START);
134 Toast.makeText(this,
"Seleccione una opción válida",Toast.LENGTH_SHORT).show();
147 startActivity(intent);
155 FragmentManager fragmentManager = getSupportFragmentManager();
156 FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
157 fragmentTransaction.replace(R.id.frameLayout, fragment);
158 fragmentTransaction.commit();
164 private void initialize(){
165 drawerLayout = findViewById(R.id.drawer_layout);
166 navigationView = findViewById(R.id.nav_view);
167 toolbar = findViewById(R.id.toolbar);
168 ActionBarDrawerToggle toogle =
new ActionBarDrawerToggle(
this, drawerLayout,toolbar,R.string.open, R.string.close);
169 drawerLayout.addDrawerListener(toogle);
172 toolbar.setTitle(R.string.app_name);
173 mAuth = FirebaseAuth.getInstance();
174 if(mAuth.getCurrentUser().getPhotoUrl() !=
null)
175 Picasso.get().load(mAuth.getCurrentUser().getPhotoUrl()).into((ImageView) navigationView.getHeaderView(0).findViewById(R.id.imagenPerfil));
176 db = FirebaseFirestore.getInstance();
183 final Executor EXECUTOR = Executors.newSingleThreadExecutor();
184 final Handler HANDLER =
new Handler(Looper.getMainLooper());
185 EXECUTOR.execute(() -> {
187 mAuth = FirebaseAuth.getInstance();
188 db = FirebaseFirestore.getInstance();
191 db.collection(
"usuarios").document(mAuth.getCurrentUser().getEmail()).get().addOnSuccessListener(
192 documentSnapshot -> {
193 if(documentSnapshot.exists()){
194 nombreView = findViewById(R.id.nombreUsuario);
195 descripcionView = findViewById(R.id.descripcionUsuario);
196 nombreView.setText((String) documentSnapshot.get(
"nombre"));
197 descripcionView.setText((String) documentSnapshot.get(
"descripcion"));
211 toolbar.setTitle(R.string.listado_colecciones);
212 drawerLayout.closeDrawer(GravityCompat.START);
219 private void checkPermisos() {
220 if (ContextCompat.checkSelfPermission(
this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED
221 || ContextCompat.checkSelfPermission(
this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
222 new AlertDialog.Builder(
this)
223 .setTitle(
"Permiso requerido")
224 .setMessage(
"La aplicación necesita ciertos permisos para poder usar sus colecciones.")
225 .setPositiveButton(
"Aceptar", (dialogInterface, i) -> {
227 new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION},
228 REQUEST_STORAGE_PERMISSION);
void actualizarNavHeader()
void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
void onCreate(Bundle savedInstanceState)
void cargarFragment(Fragment fragment)