package com.example.victor.miscompaneros;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.telephony.PhoneNumberUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStreamWriter;
import java.io.Serializable;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.PosixFilePermissions;
import java.time.LocalDate;
import java.time.Period;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public class editarcontacto
extends AppCompatActivity
implements Serializable{
TextView campo1, campo2, campo3, campo4, campo5, campo6, campo7, campo8, advertencia1;
String nombre, papellido, sapellido, direccion, poblacion
; private static final int PICK_IMAGE = 100;
Uri imageUri;
ImageView foto_gallery;
LocalDate fechanacimiento;
TableLayout lista;
static int contGlobal=0;
TableRow tabla2, tabla3, tabla4, tabla5, tabla6, tabla7, tabla8, tabla9;
int filas = 0, columnas = 0;
//static ArrayList<Contacto> contactos = new ArrayList<Contacto>();
final List<Contacto> contactos = new ArrayList<>();
int i = 0;
/*String ruta ="/home/miscompaneros/contactos.txt";
File archivo = new File(this.getExternalFilesDir("hola"));*/
//File archivo = new File(this.getExternalFilesDir(null),"hola");
@Override
@TargetApi(Build.VERSION_CODES.P)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.editarcontacto);
//se asigna el campo de texto a la id que deseamos
campo1 = (TextView) findViewById(R.id.campo1);
campo2 = (TextView) findViewById(R.id.campo2);
campo3 = (TextView) findViewById(R.id.campo3);
campo4 = (TextView) findViewById(R.id.campo4);
campo5 = (TextView) findViewById(R.id.campo5);
campo6 = (TextView) findViewById(R.id.campo6);
campo7 = (TextView) findViewById(R.id.campo7);
campo8 = (TextView) findViewById(R.id.textView2);
foto_gallery = (ImageView) findViewById(R.id.imageView);
boton1
= (Button) findViewById
(R.
id.
button7); lista = (TableLayout) findViewById(R.id.lista);
//definimos las tablas
tabla2 = (TableRow) findViewById(R.id.tabla2);
/*tabla3= (TableRow) findViewById(R.id.tabla3);
tabla4= (TableRow) findViewById(R.id.tabla4);
tabla5= (TableRow) findViewById(R.id.tabla5);
tabla6= (TableRow) findViewById(R.id.tabla6);
tabla7= (TableRow) findViewById(R.id.tabla7);
tabla8= (TableRow) findViewById(R.id.tabla8);
tabla9= (TableRow) findViewById(R.id.tabla9);
*/
advertencia1 = (TextView) findViewById(R.id.textView3);
//if (contactos.size()>=1) {
//cargardatosentabla();
//}
foto_gallery.
setOnClickListener(new View.
OnClickListener() { @Override
public void onClick
(View v
) { openGallery();
}
});
Intent intent = getIntent();
//Le llega la accion que debe tomar
Bundle extras = intent.getExtras();
int dato = extras.getInt("DATO");
if (dato == 1) {
campo8.setText("AÑADIR CONTACTO");
boton1.setText("Añadir");
}
}
/*private void cargardatosentabla() {
TextView textview1 = (TextView) findViewById(R.id.textView10);
TextView textview2 = (TextView) findViewById(R.id.textView11);
TextView textview3 = (TextView) findViewById(R.id.textView12);
TextView textview4 = (TextView) findViewById(R.id.textView13);
for (int cont=0;cont<contactos.size();cont++)
{
String n = contactos.get(i).getNombre();
String apellido1 = contactos.get(i).getPapellido();
String apellido2 = contactos.get(i).getSapellido();
String apellidos = apellido1 + " " + apellido2;
Integer telefono = contactos.get(i).getTelefono();
String poblacion = contactos.get(i).getPoblacion();
//LocalDate f = contactos.get(i).getFechanacimiento();
//añadimos los atributos a sus respectivo texto
textview1.setText(n);
textview2.setText(apellidos);
textview3.setText(String.valueOf(telefono));
textview4.setText(poblacion);
}
}*/
public void metodo_iniciar
(View view
) {
Intent intent = new Intent(getApplicationContext(), menucontactos.class);
intent.putExtra("DATO", 1);
startActivity(intent);
finish();
}
@TargetApi(Build.VERSION_CODES.P)
setContentView(R.layout.menucontactos);
//fila1
TextView textview1 = (TextView) findViewById(R.id.textView10);
TextView textview2 = (TextView) findViewById(R.id.textView11);
TextView textview3 = (TextView) findViewById(R.id.textView12);
TextView textview4 = (TextView) findViewById(R.id.textView13);
//fila2
TextView textview20 = (TextView) findViewById(R.id.textView20);
TextView textview21 = (TextView) findViewById(R.id.textView21);
TextView textview22 = (TextView) findViewById(R.id.textView22);
TextView textview23 = (TextView) findViewById(R.id.textView23);
//se añade el contacto
nombre = campo1.getText().toString();
papellido = campo2.getText().toString();
sapellido = campo3.getText().toString();
direccion = campo4.getText().toString();
poblacion = campo6.getText().toString();
try {
telefono
= Integer.
parseInt(campo5.
getText().
toString());
advertencia1.setText("INTRODUZCA UN TELEFONO CORRECTO");
advertencia1.
setVisibility(View.
VISIBLE); }
try {
fechanacimiento = LocalDate.parse(campo7.getText().toString());
//convertimos la fecha tipo date en local date
//fechanacimiento = fechanacimiento.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate fechaactual = LocalDate.now();
LocalDate birthday = LocalDate.of(fechaactual.getYear(), fechanacimiento.getMonthValue(), fechanacimiento.getDayOfMonth());
if (fechaactual.isAfter(birthday))
birthday = birthday.plusYears(1);
Period diff = Period.between(fechaactual, birthday);
Contacto contacto = new Contacto(nombre, papellido, sapellido, direccion, poblacion, R.drawable.agenda, telefono, fechanacimiento);
contactos.add(contacto);
// se añade el array a la tabla del menu superior
do {
String n
= contactos.
get(i
).
getNombre(); String apellido1
= contactos.
get(i
).
getPapellido(); String apellido2
= contactos.
get(i
).
getSapellido(); String apellidos
= apellido1
+ " " + apellido2
; Integer telefono
= contactos.
get(i
).
getTelefono(); String poblacion
= contactos.
get(i
).
getPoblacion(); //LocalDate f = contactos.get(i).getFechanacimiento();
//añadimos los atributos a sus respectivo texto
switch(i) {
case 0: textview1.setText(n);
textview2.setText(apellidos);
textview3.
setText(String.
valueOf(telefono
)); textview4.setText(poblacion);
button1.
setVisibility(View.
VISIBLE); break;
case 1:
textview20.setText(n);
textview21.setText(apellidos);
textview22.
setText(String.
valueOf(telefono
)); textview23.setText(poblacion);
button2.
setVisibility(View.
VISIBLE); break;
}
//convertimos fecha en string para poder añadirla al texto
//String fechatexto = contactos.get(i).convertirfecha(contactos.get(i).getFechanacimiento());
//textofecha.setText(fechatexto);
//escribirDatosContactos();
i++;
} while (i < (contactos.size() - 1));
//Guarda estado de actividad antes de cerrarla
escribirDatosContactos(contactos);
Logger.getLogger(editarcontacto.class.getName()).log(Level.SEVERE, null, e);
//e.printStackTrace();
advertencia1.setText("INTRODUZCA UNA FECHA CORRECTA");
advertencia1.
setVisibility(View.
VISIBLE); }
//cerramos esta actividad
finish();
//iniciamos la actividad desde menucontactos
Intent intent = new Intent(getApplicationContext(), menucontactos.class);
intent.putExtra("DATO",1);
startActivity(intent);
leerFichContactos(contactos);
}
private void openGallery() {
Intent gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(gallery, PICK_IMAGE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK && requestCode == PICK_IMAGE) {
imageUri = data.getData();
foto_gallery.setImageURI(imageUri);
}
}
/*@RequiresApi(api = Build.VERSION_CODES.KITKAT)
static void leerFichContactos(File archivo) throws IOException, ClassNotFoundException {
if(archivo.exists()) {
FileInputStream fileIn = new FileInputStream(archivo);
ObjectInputStream objectIn = new ObjectInputStream(fileIn);
contactos = (ArrayList<Contacto>) objectIn.readObject();
objectIn.close();
ObjectInputStream leyendoFichero = new ObjectInputStream(new FileInputStream("ruta"));
contactos = (ArrayList<Contacto>) leyendoFichero.readObject();
leyendoFichero.close();
}
}*/
@RequiresApi(api = Build.VERSION_CODES.N)
private String leerFichContactos
(List contactos
) { final StringBuilder sb = new StringBuilder();
bR.lines().forEach(texto -> sb.append(texto+"\n"));
return sb.toString();
}
/*@RequiresApi(api = Build.VERSION_CODES.KITKAT)
static void escribirDatosContactos(File archivo) throws IOException {
if(!archivo.exists()) {
archivo.getParentFile().mkdirs();
archivo.createNewFile();
}
else{
FileOutputStream fout=new FileOutputStream("/home/miscompaneros/contactos.txt");
ObjectOutputStream out= new ObjectOutputStream(fout);
out.writeObject(contactos);
out.close();
}
}*/
@RequiresApi(api = Build.VERSION_CODES.O)
private void escribirDatosContactos
(List contactos
) {
final Path dir
= Paths.
get(Environment.
getExternalStoragePublicDirectory("/Contactos").
toString()); if (!Files.exists(dir)) {
try {
Files.createDirectory(dir);
e.printStackTrace();
}
}
final Path dir2
= Paths.
get(Environment.
getExternalStoragePublicDirectory("/Contactos/contactos.txt").
toString()); contactos.forEach(contacto -> {
try {
b.write((contacto.toString() + "\n").getBytes());
e.printStackTrace();
}
});
ex.printStackTrace();
}
}).start();
}
}