From c77d5e8deb22d18fc476c7f3809ce117fd602dc6 Mon Sep 17 00:00:00 2001
From: BGbaderguet <48762010+BGbaderguet@users.noreply.github.com>
Date: Mon, 4 Jan 2021 15:41:56 +0100
Subject: [PATCH] Populating the database
---
.../database/RealEstateAgencyDatabase.java | 3 +-
.../entities/Converters.java | 18 +++
.../myrealestateagency/entities/Modified.java | 21 +++-
.../myrealestateagency/entities/Property.java | 117 +++++++++++++-----
.../entities/PropertyStatue.java | 5 +-
.../view/PropertiesActivity.java | 1 +
.../res/layout/activity_edit_property.xml | 100 +++++++++------
7 files changed, 191 insertions(+), 74 deletions(-)
create mode 100644 app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Converters.java
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" />
-
-
+ app:layout_constraintVertical_bias="0.59" />
+ android:layout_width="84dp"
+ android:layout_height="33dp"
+ android:layout_marginTop="20dp"
+ android:text="@string/statueSale"
+ app:layout_constraintEnd_toStartOf="@+id/editPropertyStatueSale"
+ app:layout_constraintHorizontal_bias="0.021"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/textView4" />
+
+
+
+
\ No newline at end of file