diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/database/RealEstateAgencyDatabase.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/database/RealEstateAgencyDatabase.java index ff34c74..2f26616 100644 --- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/database/RealEstateAgencyDatabase.java +++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/database/RealEstateAgencyDatabase.java @@ -20,12 +20,13 @@ import fr.romanet.vj.apps.myrealestateagency.dao.PropertyDao; import fr.romanet.vj.apps.myrealestateagency.entities.Agency; import fr.romanet.vj.apps.myrealestateagency.entities.Agent; import fr.romanet.vj.apps.myrealestateagency.dao.AgentDao; +import fr.romanet.vj.apps.myrealestateagency.entities.Converters; import fr.romanet.vj.apps.myrealestateagency.entities.DollarCurrency; import fr.romanet.vj.apps.myrealestateagency.entities.Modified; import fr.romanet.vj.apps.myrealestateagency.entities.Property; @Database(entities = {Agency.class, Agent.class, Property.class, DollarCurrency.class, Modified.class}, version = 2, exportSchema = false) -@TypeConverters({Property.Converters.class}) +@TypeConverters({Converters.class}) public abstract class RealEstateAgencyDatabase extends RoomDatabase { public abstract AgentDao agentDao(); diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Converters.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Converters.java new file mode 100644 index 0000000..205d3e0 --- /dev/null +++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Converters.java @@ -0,0 +1,18 @@ +package fr.romanet.vj.apps.myrealestateagency.entities; + +import androidx.room.TypeConverter; + +import java.util.Date; + +public class Converters { + + @TypeConverter + public static Date toDate(Long dateLong){ + return dateLong == null ? null: new Date(dateLong); + } + + @TypeConverter + public static Long fromDate(Date date){ + return date == null ? null : date.getTime(); + } +} \ No newline at end of file diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Modified.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Modified.java index 57126cd..3617ad6 100644 --- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Modified.java +++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Modified.java @@ -3,8 +3,9 @@ package fr.romanet.vj.apps.myrealestateagency.entities; import androidx.annotation.NonNull; import androidx.room.ColumnInfo; import androidx.room.Entity; +import androidx.room.TypeConverters; -import java.sql.Date; +import java.util.Date; @Entity(tableName = "modified", primaryKeys = {"id_agent", "date_modification"}) @@ -16,6 +17,7 @@ public class Modified { @NonNull @ColumnInfo(name = "date_modification") + @TypeConverters({Converters.class}) private Date dateModification; public Modified(@NonNull int idAgent, @NonNull Date dateModification) @@ -23,4 +25,21 @@ public class Modified { this.idAgent = idAgent; this.dateModification = dateModification; } + + @NonNull + public Date getDateModification() { + return dateModification; + } + + public void setDateModification(@NonNull Date dateModification) { + this.dateModification = dateModification; + } + + public int getIdAgent() { + return idAgent; + } + + public void setIdAgent(int idAgent) { + this.idAgent = idAgent; + } } diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Property.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Property.java index c921e20..937b914 100644 --- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Property.java +++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Property.java @@ -1,18 +1,23 @@ package fr.romanet.vj.apps.myrealestateagency.entities; +import android.location.Address; + import androidx.room.ColumnInfo; import androidx.room.Embedded; import androidx.room.Entity; import androidx.room.ForeignKey; import androidx.room.Index; import androidx.room.PrimaryKey; -import androidx.room.TypeConverter; +import java.io.IOException; import java.io.Serializable; -import java.sql.Date; +import java.util.Date; import java.text.ParseException; import java.text.SimpleDateFormat; +import fr.romanet.vj.apps.myrealestateagency.MyApp; +import fr.romanet.vj.apps.myrealestateagency.repository.MapsActivityRepository; + import static androidx.room.ForeignKey.CASCADE; @Entity(tableName = "property", @@ -100,46 +105,96 @@ public class Property implements Serializable { this.propertyType = propertyType; } - public static class Converters { - - @TypeConverter - public static Date toDate(Long dateLong){ - return dateLong == null ? null: new Date(dateLong); + public static Property[] populatePropertyTable(){ + Date date1 = null; + Date date2 = null; + Date date3 = null; + Date date4 = null; + try { + date1 = new SimpleDateFormat("yyyy-MM-dd").parse("2020-10-21"); + date2 = new SimpleDateFormat("yyyy-MM-dd").parse("2019-09-01"); + date3 = new SimpleDateFormat("yyyy-MM-dd").parse("2018-04-11"); + date4 = new SimpleDateFormat("yyyy-MM-dd").parse("2017-02-14"); + } catch (ParseException e) { + e.printStackTrace(); } - - @TypeConverter - public static Long fromDate(Date date){ - return date == null ? null : date.getTime(); + Address address1 = null; + Double longitude1 = null; + Double latitude1 = null; + Address address2 = null; + Double longitude2 = null; + Double latitude2 = null; + Address address3 = null; + Double longitude3 = null; + Double latitude3 = null; + Address address4 = null; + Double longitude4 = null; + Double latitude4 = null; + Address address5 = null; + Double longitude5 = null; + Double latitude5 = null; + Address address6 = null; + Double longitude6 = null; + Double latitude6 = null; + Address address7 = null; + Double longitude7 = null; + Double latitude7 = null; + Address address8 = null; + Double longitude8 = null; + Double latitude8 = null; + Address address9 = null; + Double longitude9 = null; + Double latitude9 = null; + try { + address1 = MapsActivityRepository.get_lat_long_from_address("3 rue du docteur audigier", MyApp.getContext()); + longitude1 = address1.getLongitude(); + latitude1 = address1.getLatitude(); + address2 = MapsActivityRepository.get_lat_long_from_address("124 Rue Saint-Dominique", MyApp.getContext()); + longitude2 = address2.getLongitude(); + latitude2 = address2.getLatitude(); + address3 = MapsActivityRepository.get_lat_long_from_address("14 Avenue de la Motte-Picquet", MyApp.getContext()); + longitude3 = address3.getLongitude(); + latitude3 = address3.getLatitude(); + address4 = MapsActivityRepository.get_lat_long_from_address("11 Avenue du Dr François Arnaud", MyApp.getContext()); + longitude4 = address4.getLongitude(); + latitude4 = address4.getLatitude(); + address5 = MapsActivityRepository.get_lat_long_from_address("45 Avenue de Gravelle", MyApp.getContext()); + longitude5 = address5.getLongitude(); + latitude5 = address5.getLatitude(); + address6 = MapsActivityRepository.get_lat_long_from_address("11 Rue Jules Vallès", MyApp.getContext()); + longitude6 = address6.getLongitude(); + latitude6 = address6.getLatitude(); + address7 = MapsActivityRepository.get_lat_long_from_address("2 Rue du Monastere", MyApp.getContext()); + longitude7 = address7.getLongitude(); + latitude7 = address7.getLatitude(); + address8 = MapsActivityRepository.get_lat_long_from_address("392 Rue Paradis", MyApp.getContext()); + longitude8 = address8.getLongitude(); + latitude8 = address8.getLatitude(); + address9 = MapsActivityRepository.get_lat_long_from_address("Rue François Taddei", MyApp.getContext()); + longitude9 = address9.getLongitude(); + latitude9 = address9.getLatitude(); + } catch (IOException e) { + e.printStackTrace(); } - } - - public static Property[] populatePropertyTable() throws ParseException { - String sDate1="30/10/2018"; - String sDate2="05/05/2018"; - String sDate3="04/12/2020"; - String sDate4="31/12/2020"; - Date date1= (Date) new SimpleDateFormat("dd/MM/yyyy").parse(sDate1); - Date date2= (Date) new SimpleDateFormat("dd/MM/yyyy").parse(sDate2); - Date date3= (Date) new SimpleDateFormat("dd/MM/yyyy").parse(sDate3); - Date date4= (Date) new SimpleDateFormat("dd/MM/yyyy").parse(sDate4); return new Property[]{ - new Property("Amazing property of Le Chesnay", "3 rue du docteur audigier", 15.8, 17.8, 1, + + new Property("Amazing property of Le Chesnay", "3 rue du docteur audigier", longitude1, latitude1, 1, new PropertyStatue(false, null, 15.8), new PropertyType("Apartment", 3, 9.8)), - new Property("Awesome house !", "124 Rue Saint-Dominique", 15.8, 17.8, 1, + new Property("Awesome house !", "124 Rue Saint-Dominique", longitude2, latitude2, 1, new PropertyStatue(true, date1, 15.8), new PropertyType("House", 3, 9.8)), - new Property("Incredible neighbourhood", "14 Avenue de la Motte-Picquet", 15.8, 17.8, 1, + new Property("Incredible neighbourhood", "14 Avenue de la Motte-Picquet", longitude3, latitude3, 1, new PropertyStatue(false, null, 15.8), new PropertyType("House", 3, 9.8)), - new Property("The place to be", "11 Avenue du Dr François Arnaud", 15.8, 17.8, 2, + new Property("The place to be", "11 Avenue du Dr François Arnaud", longitude4, latitude4, 2, new PropertyStatue(true, date2, 15.8), new PropertyType("Apartment", 3, 9.8)), - new Property("Foreigners accepted !", "45 Avenue de Gravelle", 15.8, 17.8, 2, + new Property("Foreigners accepted !", "45 Avenue de Gravelle", longitude5, latitude5, 2, new PropertyStatue(false, null, 15.8), new PropertyType("House", 3, 9.8)), - new Property("Family place", "11 Rue Jules Vallès", 15.8, 17.8, 2, + new Property("Family place", "11 Rue Jules Vallès", longitude6, latitude6, 2, new PropertyStatue(true, date3, 15.8), new PropertyType("Apartment", 3, 9.8)), - new Property("Best district in Marseille", "2 Rue du Monastere", 15.8, 17.8, 3, + new Property("Best district in Marseille", "2 Rue du Monastere", longitude7, latitude7, 3, new PropertyStatue(false, null, 15.8), new PropertyType("House", 3, 9.8)), - new Property("Apartment near the port", "392 Rue Paradis", 15.8, 17.8, 3, + new Property("Apartment near the port", "392 Rue Paradis", longitude8, latitude8, 3, new PropertyStatue(true, date4, 15.8), new PropertyType("Apartment", 3, 9.8)), - new Property("Near the sea", "Rue François Taddei", 15.8, 17.8, 3, + new Property("Near the sea", "Rue François Taddei", longitude9, latitude9, 3, new PropertyStatue(false, null, 15.8), new PropertyType("Apartment", 3, 9.8)) }; } diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/PropertyStatue.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/PropertyStatue.java index 630e75d..da87aaf 100644 --- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/PropertyStatue.java +++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/PropertyStatue.java @@ -2,10 +2,10 @@ package fr.romanet.vj.apps.myrealestateagency.entities; import androidx.annotation.Nullable; import androidx.room.ColumnInfo; -import androidx.room.Embedded; +import androidx.room.TypeConverters; import java.io.Serializable; -import java.sql.Date; +import java.util.Date; public class PropertyStatue implements Serializable { @@ -14,6 +14,7 @@ public class PropertyStatue implements Serializable { @ColumnInfo(name = "sold_date") @Nullable + @TypeConverters({Converters.class}) public Date soldDate; @ColumnInfo(name = "price") diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/view/PropertiesActivity.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/view/PropertiesActivity.java index a3329b3..4bfdaef 100644 --- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/view/PropertiesActivity.java +++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/view/PropertiesActivity.java @@ -16,6 +16,7 @@ import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.RecyclerView; +import java.io.IOException; import java.util.List; import fr.romanet.vj.apps.myrealestateagency.R; diff --git a/app/src/main/res/layout/activity_edit_property.xml b/app/src/main/res/layout/activity_edit_property.xml index 14d320e..0fd342a 100644 --- a/app/src/main/res/layout/activity_edit_property.xml +++ b/app/src/main/res/layout/activity_edit_property.xml @@ -9,6 +9,17 @@ tools:context=".view.EditPropertyActivity" > + + + app:layout_constraintStart_toStartOf="@+id/editPropertySoldDate" + app:layout_constraintTop_toBottomOf="@id/editPropertySoldDate" />