From a7dc63d6c9ff3d027f71cbb678620f670f093c5b Mon Sep 17 00:00:00 2001
From: BGbaderguet <48762010+BGbaderguet@users.noreply.github.com>
Date: Wed, 30 Dec 2020 19:20:37 +0100
Subject: [PATCH] Adding the list of properties in the second screen
---
app/src/main/AndroidManifest.xml | 5 ++
.../adapter/AgentsAdapter.java | 15 +++-
.../adapter/PropertiesAdapter.java | 68 +++++++++++++++++++
.../myrealestateagency/dao/AgencyDao.java | 9 ++-
.../apps/myrealestateagency/dao/AgentDao.java | 6 +-
.../myrealestateagency/dao/PropertyDao.java | 4 ++
.../database/RealEstateAgencyDatabase.java | 1 +
.../myrealestateagency/entities/Agency.java | 4 +-
.../myrealestateagency/entities/Agent.java | 13 +++-
.../myrealestateagency/entities/Property.java | 8 +++
.../repository/AgencyRepository.java | 33 +++++++++
.../repository/AgentRepository.java | 5 +-
.../view/PropertiesActivity.java | 58 ++++++++++++++++
.../viewmodel/AgentsActivityViewModel.java | 5 +-
.../PropertiesActivityViewModel.java | 32 +++++++++
.../PropertiesActivityViewModelFactory.java | 25 +++++++
app/src/main/res/drawable/ic_agency_add.xml | 7 ++
.../main/res/layout/activity_properties.xml | 31 +++++++++
.../main/res/layout/viewholder_properties.xml | 40 +++++++++++
app/src/main/res/values-night/themes.xml | 2 -
app/src/main/res/values/colors.xml | 1 -
app/src/main/res/values/themes.xml | 1 -
22 files changed, 357 insertions(+), 16 deletions(-)
create mode 100644 app/src/main/java/fr/romanet/vj/apps/myrealestateagency/adapter/PropertiesAdapter.java
create mode 100644 app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/AgencyRepository.java
create mode 100644 app/src/main/java/fr/romanet/vj/apps/myrealestateagency/view/PropertiesActivity.java
create mode 100644 app/src/main/java/fr/romanet/vj/apps/myrealestateagency/viewmodel/PropertiesActivityViewModel.java
create mode 100644 app/src/main/java/fr/romanet/vj/apps/myrealestateagency/viewmodel/PropertiesActivityViewModelFactory.java
create mode 100644 app/src/main/res/drawable/ic_agency_add.xml
create mode 100644 app/src/main/res/layout/activity_properties.xml
create mode 100644 app/src/main/res/layout/viewholder_properties.xml
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 36bf4ee..b2e9655 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -19,6 +19,11 @@
android:supportsRtl="true"
android:theme="@style/Theme.MyRealEstateAgency">
+
+
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/adapter/AgentsAdapter.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/adapter/AgentsAdapter.java
index 5d1fde4..6716088 100644
--- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/adapter/AgentsAdapter.java
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/adapter/AgentsAdapter.java
@@ -2,6 +2,7 @@ package fr.romanet.vj.apps.myrealestateagency.adapter;
import java.util.List;
+import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -13,6 +14,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import fr.romanet.vj.apps.myrealestateagency.adapter.AgentsAdapter.AgentViewHolder;
import fr.romanet.vj.apps.myrealestateagency.entities.Agent;
import fr.romanet.vj.apps.myrealestateagency.R;
+import fr.romanet.vj.apps.myrealestateagency.view.PropertiesActivity;
public final class AgentsAdapter extends Adapter{
@@ -36,7 +38,18 @@ public final class AgentsAdapter extends Adapter{
{
agentFirstName.setText("First name : " + agent.agentFirstName);
agentLastName.setText("Last name : " + agent.agentLastName);
- agencyName.setText("Agency : " + agent.nameOfAgency);
+ agencyName.setText("Agency : " + agent.getAgency().agencyName);
+
+ itemView.setOnClickListener(new View.OnClickListener()
+ {
+ @Override
+ public void onClick(View v)
+ {
+ final Intent intent = new Intent(itemView.getContext(), PropertiesActivity.class);
+ intent.putExtra(PropertiesActivity.AGENCY_EXTRA, agent.getAgency());
+ itemView.getContext().startActivity(intent);
+ }
+ });
}
}
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/adapter/PropertiesAdapter.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/adapter/PropertiesAdapter.java
new file mode 100644
index 0000000..b9c87b7
--- /dev/null
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/adapter/PropertiesAdapter.java
@@ -0,0 +1,68 @@
+package fr.romanet.vj.apps.myrealestateagency.adapter;
+
+import java.util.List;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView.Adapter;
+import androidx.recyclerview.widget.RecyclerView.ViewHolder;
+import fr.romanet.vj.apps.myrealestateagency.adapter.PropertiesAdapter.PropertiesViewHolder;
+import fr.romanet.vj.apps.myrealestateagency.R;
+import fr.romanet.vj.apps.myrealestateagency.entities.Property;
+
+public class PropertiesAdapter extends Adapter {
+
+ public static final class PropertiesViewHolder extends ViewHolder {
+
+ private final TextView agencyAddress;
+
+ private final TextView agencyDescription;
+
+ private final TextView agencyPrice;
+
+ public PropertiesViewHolder(@NonNull View itemView)
+ {
+ super(itemView);
+ agencyAddress = itemView.findViewById(R.id.propertyAddress);
+ agencyDescription = itemView.findViewById(R.id.propertyDescription);
+ agencyPrice = itemView.findViewById(R.id.propertyPrice);
+ }
+
+ public void update(final Property property)
+ {
+ agencyAddress.setText("Address : " + property.address);
+ agencyDescription.setText("Description : " + property.description);
+ agencyPrice.setText("Price : ");
+ }
+ }
+ private final List properties;
+
+ public PropertiesAdapter(List properties)
+ {
+ this.properties = properties;
+ }
+
+ @NonNull
+ @Override
+ public PropertiesAdapter.PropertiesViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
+ {
+ final View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.viewholder_properties, parent, false);
+ return new PropertiesAdapter.PropertiesViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull PropertiesAdapter.PropertiesViewHolder holder, int position)
+ {
+ holder.update(properties.get(position));
+ }
+
+ @Override
+ public int getItemCount()
+ {
+ return properties.size();
+ }
+}
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/dao/AgencyDao.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/dao/AgencyDao.java
index a63915c..e86bbae 100644
--- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/dao/AgencyDao.java
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/dao/AgencyDao.java
@@ -1,5 +1,6 @@
package fr.romanet.vj.apps.myrealestateagency.dao;
+import androidx.lifecycle.LiveData;
import androidx.room.Dao;
import androidx.room.Insert;
import androidx.room.Query;
@@ -7,16 +8,22 @@ import androidx.room.Query;
import java.util.List;
import fr.romanet.vj.apps.myrealestateagency.entities.Agency;
+import fr.romanet.vj.apps.myrealestateagency.entities.Agent;
+import fr.romanet.vj.apps.myrealestateagency.entities.Property;
@Dao
public interface AgencyDao {
@Query("SELECT * FROM agency")
- List getAgencyList();
+ LiveData> getAgencyList();
@Insert
void insertAgency(Agency agency);
@Insert
void insertPreData(Agency[] agencies);
+
+ @Query("SELECT property_id, description, address, longitude, latitude, belongs_agency_id, statue_sale, sold_date, price, type_description, number_rooms, surface_area " +
+ "FROM property INNER JOIN agency ON agency.agency_id = property.belongs_agency_id WHERE agency.agency_id = :idAgency")
+ LiveData> getPropertiesList(int idAgency);
}
\ No newline at end of file
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/dao/AgentDao.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/dao/AgentDao.java
index 360852f..d495ed4 100644
--- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/dao/AgentDao.java
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/dao/AgentDao.java
@@ -4,9 +4,11 @@ import androidx.lifecycle.LiveData;
import androidx.room.Dao;
import androidx.room.Insert;
import androidx.room.Query;
+import androidx.room.RoomWarnings;
import java.util.List;
+import fr.romanet.vj.apps.myrealestateagency.entities.Agency;
import fr.romanet.vj.apps.myrealestateagency.entities.Agent;
@Dao
@@ -15,8 +17,8 @@ public interface AgentDao {
@Query("SELECT * FROM agent")
LiveData> getAgentList();
- @Query("SELECT agency_name FROM agency INNER JOIN agent ON agent.agency_employer_id = agency.agency_id WHERE agent.agent_id = :idAgent")
- String getAgencyName(int idAgent);
+ @Query("SELECT agency_id, agency_name FROM agency INNER JOIN agent ON agent.agency_employer_id = agency.agency_id WHERE agent.agent_id = :idAgent")
+ Agency getAgency(int idAgent);
@Insert
void insertAgent(Agent agent);
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/dao/PropertyDao.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/dao/PropertyDao.java
index 52cdc4f..bf70506 100644
--- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/dao/PropertyDao.java
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/dao/PropertyDao.java
@@ -6,6 +6,7 @@ import androidx.room.Query;
import java.util.List;
+import fr.romanet.vj.apps.myrealestateagency.entities.Agent;
import fr.romanet.vj.apps.myrealestateagency.entities.Property;
@Dao
@@ -15,4 +16,7 @@ public interface PropertyDao {
@Insert
void insertProperty(Property property);
+
+ @Insert
+ void insertPreProperties(Property[] properties);
}
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 f242c88..1feb352 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
@@ -55,6 +55,7 @@ public abstract class RealEstateAgencyDatabase extends RoomDatabase {
public void run() {
getInstance(context).agencyDao().insertPreData(Agency.populateAgencyTable());
getInstance(context).agentDao().insertPreAgents(Agent.populateAgentsTable());
+ getInstance(context).propertyDao().insertPreProperties(Property.populatePropertyTable());
}
});
}
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Agency.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Agency.java
index 9785c09..c3afb15 100644
--- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Agency.java
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Agency.java
@@ -5,11 +5,13 @@ import androidx.room.Entity;
import androidx.room.Index;
import androidx.room.PrimaryKey;
+import java.io.Serializable;
+
//Parent class of agent (indeed, zero or many agents can work in an agency)
@Entity(tableName = "agency",
indices = {@Index("agency_id"),
@Index(value = {"agency_name"}, unique = true)})
-public class Agency {
+public class Agency implements Serializable {
@ColumnInfo(name = "agency_id")
@PrimaryKey(autoGenerate = true)
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Agent.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Agent.java
index 2fc327f..f9e1d9d 100644
--- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Agent.java
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/Agent.java
@@ -7,6 +7,8 @@ import androidx.room.Ignore;
import androidx.room.Index;
import androidx.room.PrimaryKey;
+import fr.romanet.vj.apps.myrealestateagency.database.RealEstateAgencyDatabase;
+
import static androidx.room.ForeignKey.CASCADE;
//Child class of Agency (indeed, an agent work only in one agency)
@@ -32,7 +34,7 @@ public class Agent {
public int agencyEmployerId;
@Ignore
- public String nameOfAgency;
+ public Agency agency;
public Agent(String agentFirstName, String agentLastName, int agencyEmployerId)
{
@@ -47,9 +49,14 @@ public class Agent {
return agentFirstName;
}
- public void setNameOfAgency(String nameOfAgency)
+ public void setAgency(Agency agency)
{
- this.nameOfAgency = nameOfAgency;
+ this.agency = agency;
+ }
+
+ public Agency getAgency()
+ {
+ return this.agency;
}
public int getAgencyEmployerId() {return agencyEmployerId;}
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 1d3a6db..2e01ab5 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
@@ -67,4 +67,12 @@ public class Property {
return date == null ? null : date.getTime();
}
}
+
+ public static Property[] populatePropertyTable() {
+ return new Property[]{
+ new Property("Amazing property in the best district of Paris", "15 rue Champs-Elysée", 15.8, 17.8, 1),
+ new Property("Best appartment in Velizy-Villacoublay", "Rue de Villacoublay, 78140 Vélizy-Villacoublay", 19.8, 20.8, 1),
+ new Property("Amazing property in the best district of Marseille", "15 rue de Marseille", 15.8, 17.8, 1),
+ };
+ }
}
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/AgencyRepository.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/AgencyRepository.java
new file mode 100644
index 0000000..1d58269
--- /dev/null
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/AgencyRepository.java
@@ -0,0 +1,33 @@
+package fr.romanet.vj.apps.myrealestateagency.repository;
+
+import android.app.Application;
+
+import androidx.lifecycle.LiveData;
+
+import java.util.List;
+
+import fr.romanet.vj.apps.myrealestateagency.dao.AgencyDao;
+import fr.romanet.vj.apps.myrealestateagency.database.RealEstateAgencyDatabase;
+import fr.romanet.vj.apps.myrealestateagency.entities.Agency;
+import fr.romanet.vj.apps.myrealestateagency.entities.Property;
+
+public class AgencyRepository {
+
+ public AgencyDao agencyDao;
+ public LiveData> allAgencies;
+
+ public AgencyRepository(Application application) {
+ RealEstateAgencyDatabase realEstateAgencyDatabase = RealEstateAgencyDatabase.getInstance(application);
+ agencyDao = realEstateAgencyDatabase.agencyDao();
+ allAgencies = agencyDao.getAgencyList();
+ }
+
+ public LiveData> getAllAgencies() {
+ return allAgencies;
+ }
+
+ public LiveData> getProperties(Agency agency)
+ {
+ return agencyDao.getPropertiesList(agency.agencyId);
+ }
+}
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/AgentRepository.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/AgentRepository.java
index 2039535..82b2868 100644
--- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/AgentRepository.java
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/AgentRepository.java
@@ -8,6 +8,7 @@ import java.util.List;
import fr.romanet.vj.apps.myrealestateagency.dao.AgentDao;
import fr.romanet.vj.apps.myrealestateagency.database.RealEstateAgencyDatabase;
+import fr.romanet.vj.apps.myrealestateagency.entities.Agency;
import fr.romanet.vj.apps.myrealestateagency.entities.Agent;
public class AgentRepository {
@@ -25,8 +26,8 @@ public class AgentRepository {
return allAgents;
}
- public String getAgencyName(Agent agent)
+ public Agency getAgency(Agent agent)
{
- return agentDao.getAgencyName(agent.agentId);
+ return agentDao.getAgency(agent.agentId);
}
}
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
new file mode 100644
index 0000000..7f4f74c
--- /dev/null
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/view/PropertiesActivity.java
@@ -0,0 +1,58 @@
+package fr.romanet.vj.apps.myrealestateagency.view;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.SavedStateViewModelFactory;
+import androidx.lifecycle.ViewModelProvider;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.List;
+
+import fr.romanet.vj.apps.myrealestateagency.R;
+import fr.romanet.vj.apps.myrealestateagency.adapter.AgentsAdapter;
+import fr.romanet.vj.apps.myrealestateagency.adapter.PropertiesAdapter;
+import fr.romanet.vj.apps.myrealestateagency.entities.Agency;
+import fr.romanet.vj.apps.myrealestateagency.entities.Agent;
+import fr.romanet.vj.apps.myrealestateagency.entities.Property;
+import fr.romanet.vj.apps.myrealestateagency.viewmodel.PropertiesActivityViewModel;
+import fr.romanet.vj.apps.myrealestateagency.viewmodel.PropertiesActivityViewModelFactory;
+
+public class PropertiesActivity extends AppCompatActivity {
+
+ public static final String AGENCY_EXTRA = "agencyExtra";
+
+ private Bundle extras;
+
+ private PropertiesActivityViewModel viewModel;
+
+ private RecyclerView recyclerView;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_properties);
+ recyclerView = findViewById(R.id.recyclerViewProperties);
+ recyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ Agency agency = (Agency) getIntent().getSerializableExtra("agencyExtra");
+ viewModel = new ViewModelProvider(this, new PropertiesActivityViewModelFactory(this.getApplication(), agency)).get(PropertiesActivityViewModel.class);
+ observeProperties();
+ }
+
+ private void observeProperties()
+ {
+ viewModel.properties.observe(this, new Observer>()
+ {
+ @Override
+ public void onChanged(List properties)
+ {
+ final PropertiesAdapter propertiesAdapter = new PropertiesAdapter(properties);
+ recyclerView.setAdapter(propertiesAdapter);
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/viewmodel/AgentsActivityViewModel.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/viewmodel/AgentsActivityViewModel.java
index f788b21..1aa635c 100644
--- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/viewmodel/AgentsActivityViewModel.java
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/viewmodel/AgentsActivityViewModel.java
@@ -9,6 +9,7 @@ import androidx.lifecycle.MutableLiveData;
import java.util.List;
+import fr.romanet.vj.apps.myrealestateagency.entities.Agency;
import fr.romanet.vj.apps.myrealestateagency.entities.Agent;
import fr.romanet.vj.apps.myrealestateagency.repository.AgentRepository;
@@ -30,8 +31,8 @@ public class AgentsActivityViewModel extends AndroidViewModel {
for(int i = 0; i < currentList.size(); i++)
{
Agent currentAgent = currentList.get(i);
- String nameOfAgency = agentRepository.getAgencyName(currentList.get(i));
- currentAgent.setNameOfAgency(nameOfAgency);
+ Agency agency = agentRepository.getAgency(currentList.get(i));
+ currentAgent.setAgency(agency);
}
}
}
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/viewmodel/PropertiesActivityViewModel.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/viewmodel/PropertiesActivityViewModel.java
new file mode 100644
index 0000000..9754b00
--- /dev/null
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/viewmodel/PropertiesActivityViewModel.java
@@ -0,0 +1,32 @@
+package fr.romanet.vj.apps.myrealestateagency.viewmodel;
+
+import android.app.Application;
+
+import androidx.lifecycle.AndroidViewModel;
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
+import androidx.lifecycle.SavedStateHandle;
+import androidx.lifecycle.ViewModel;
+import androidx.lifecycle.ViewModelProvider;
+
+import java.util.List;
+
+import fr.romanet.vj.apps.myrealestateagency.entities.Agency;
+import fr.romanet.vj.apps.myrealestateagency.entities.Property;
+import fr.romanet.vj.apps.myrealestateagency.repository.AgencyRepository;
+import fr.romanet.vj.apps.myrealestateagency.view.PropertiesActivity;
+
+public class PropertiesActivityViewModel extends AndroidViewModel {
+
+ public AgencyRepository agencyRepository;
+ public LiveData> properties = new MutableLiveData<>();
+
+ public PropertiesActivityViewModel(Application application, Agency agency)
+ {
+ super(application);
+ agencyRepository = new AgencyRepository(application);
+ properties = agencyRepository.getProperties(agency);
+ }
+}
+
+
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/viewmodel/PropertiesActivityViewModelFactory.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/viewmodel/PropertiesActivityViewModelFactory.java
new file mode 100644
index 0000000..976e568
--- /dev/null
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/viewmodel/PropertiesActivityViewModelFactory.java
@@ -0,0 +1,25 @@
+package fr.romanet.vj.apps.myrealestateagency.viewmodel;
+
+import android.app.Application;
+
+import androidx.lifecycle.ViewModel;
+import androidx.lifecycle.ViewModelProvider;
+
+import fr.romanet.vj.apps.myrealestateagency.entities.Agency;
+
+public class PropertiesActivityViewModelFactory implements ViewModelProvider.Factory {
+ private Application mApplication;
+ private Agency mParam;
+
+
+ public PropertiesActivityViewModelFactory(Application application, Agency param) {
+ mApplication = application;
+ mParam = param;
+ }
+
+
+ @Override
+ public T create(Class modelClass) {
+ return (T) new PropertiesActivityViewModel(mApplication, mParam);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_agency_add.xml b/app/src/main/res/drawable/ic_agency_add.xml
new file mode 100644
index 0000000..c9a6a8d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_agency_add.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_properties.xml b/app/src/main/res/layout/activity_properties.xml
new file mode 100644
index 0000000..91e5a9d
--- /dev/null
+++ b/app/src/main/res/layout/activity_properties.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/viewholder_properties.xml b/app/src/main/res/layout/viewholder_properties.xml
new file mode 100644
index 0000000..1a40f78
--- /dev/null
+++ b/app/src/main/res/layout/viewholder_properties.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml
index 8f6b03e..70d7098 100644
--- a/app/src/main/res/values-night/themes.xml
+++ b/app/src/main/res/values-night/themes.xml
@@ -4,11 +4,9 @@
- @color/purple_200
- @color/purple_700
- - @color/black
- @color/teal_200
- @color/teal_200
- - @color/black
- ?attr/colorPrimaryVariant
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index f8c6127..19b1102 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -5,6 +5,5 @@
#FF3700B3
#FF03DAC5
#FF018786
- #FF000000
#FFFFFFFF
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index dfa6ff3..8aa3541 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -8,7 +8,6 @@
- @color/teal_200
- @color/teal_700
- - @color/black
- ?attr/colorPrimaryVariant