Updated SharedPrefs, added class to call (easier operations).
Built MapsActivityRepository MapMarker builder (not finished) Linked 'Map' BTN from PropertiesDetailActivity to Intent MapActivity
This commit is contained in:
parent
ab89d29061
commit
0da3570ada
@ -0,0 +1,27 @@
|
||||
package fr.romanet.vj.apps.myrealestateagency;
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
|
||||
import fr.romanet.vj.apps.myrealestateagency.entities.Agency;
|
||||
import fr.romanet.vj.apps.myrealestateagency.entities.Agent;
|
||||
|
||||
import static android.content.Context.MODE_PRIVATE;
|
||||
|
||||
public class SharedPrefs {
|
||||
|
||||
private SharedPreferences sharedPreferences;
|
||||
|
||||
public int get_logged_agent_id(){
|
||||
sharedPreferences = MyApp.getContext().getSharedPreferences(Config.getSharedPreferences(), MODE_PRIVATE);
|
||||
return sharedPreferences.getInt(Config.get_selected_agency_index(), -1);
|
||||
}
|
||||
|
||||
public void set_logged_agent_id(Agent agent){
|
||||
sharedPreferences = MyApp.getContext().getSharedPreferences(Config.getSharedPreferences(), MODE_PRIVATE);
|
||||
sharedPreferences.edit()
|
||||
.putInt(Config.get_selected_agency_index(), agent.agentId)
|
||||
.apply();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -15,6 +15,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
||||
|
||||
import fr.romanet.vj.apps.myrealestateagency.Config;
|
||||
import fr.romanet.vj.apps.myrealestateagency.MyApp;
|
||||
import fr.romanet.vj.apps.myrealestateagency.SharedPrefs;
|
||||
import fr.romanet.vj.apps.myrealestateagency.adapter.AgentsAdapter.AgentViewHolder;
|
||||
import fr.romanet.vj.apps.myrealestateagency.entities.Agent;
|
||||
import fr.romanet.vj.apps.myrealestateagency.R;
|
||||
@ -33,7 +34,7 @@ public final class AgentsAdapter extends Adapter<AgentViewHolder>{
|
||||
|
||||
private final TextView agencyName;
|
||||
|
||||
SharedPreferences sharedPreferences;
|
||||
SharedPrefs sharedPrefs;
|
||||
|
||||
|
||||
public AgentViewHolder(@NonNull View itemView)
|
||||
@ -59,11 +60,9 @@ public final class AgentsAdapter extends Adapter<AgentViewHolder>{
|
||||
intent.putExtra(PropertiesActivity.AGENCY_EXTRA, agent.getAgency());
|
||||
itemView.getContext().startActivity(intent);
|
||||
|
||||
sharedPreferences = MyApp.getContext().getSharedPreferences(Config.getSharedPreferences(), MODE_PRIVATE);
|
||||
sharedPreferences.edit()
|
||||
.putInt(Config.get_selected_agency_index(), agent.agentId)
|
||||
.apply();
|
||||
|
||||
// - Store agent into shared prefs for next time (app reopen)
|
||||
sharedPrefs = new SharedPrefs();
|
||||
sharedPrefs.set_logged_agent_id(agent);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
@ -9,11 +9,16 @@ import androidx.room.Update;
|
||||
|
||||
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 PropertyDao {
|
||||
|
||||
@Query("SELECT * FROM property WHERE belongs_agency_id = :agencyId")
|
||||
List<Property> getPropertyFromAgencyList(int agencyId);
|
||||
|
||||
@Query("SELECT * FROM property")
|
||||
LiveData<List<Property>> getPropertyList();
|
||||
|
||||
|
||||
@ -1,18 +1,67 @@
|
||||
package fr.romanet.vj.apps.myrealestateagency.repository;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.location.Address;
|
||||
import android.location.Geocoder;
|
||||
|
||||
import androidx.lifecycle.LiveData;
|
||||
|
||||
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
|
||||
import com.google.android.gms.maps.model.LatLng;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import fr.romanet.vj.apps.myrealestateagency.MapMarker;
|
||||
import fr.romanet.vj.apps.myrealestateagency.MyApp;
|
||||
import fr.romanet.vj.apps.myrealestateagency.SharedPrefs;
|
||||
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.view.MapsActivity;
|
||||
|
||||
public class MapsActivityRepository {
|
||||
|
||||
public SharedPrefs sharedPrefs;
|
||||
public AgentRepository agentRepository;
|
||||
public PropertyRepository propertyRepository;
|
||||
|
||||
public static Address get_lat_long_from_address(String address, Context context) throws IOException {
|
||||
Geocoder gc = new Geocoder(context);
|
||||
return gc.getFromLocationName(address, 1).get(0);
|
||||
}
|
||||
|
||||
public List<MapMarker> get_all_map_markers_for_this_agency(Application application) throws IOException {
|
||||
sharedPrefs = new SharedPrefs();
|
||||
propertyRepository = new PropertyRepository(application);
|
||||
|
||||
int logged_agent_id;
|
||||
Agency agency;
|
||||
List<Property> propertiesFromAgency;
|
||||
List<MapMarker> mapMarkers = new ArrayList<>();
|
||||
|
||||
logged_agent_id = sharedPrefs.get_logged_agent_id();
|
||||
|
||||
Agent agent = agentRepository.getAgentById(logged_agent_id);
|
||||
agent.setAgency(agentRepository.getAgency(agent));
|
||||
|
||||
agency = agent.getAgency();
|
||||
|
||||
propertiesFromAgency = propertyRepository.getPropertyFromAgencyList(agency);
|
||||
|
||||
for (Property property: propertiesFromAgency){
|
||||
if(property.propertyStatue.statueSale){
|
||||
mapMarkers.add(new MapMarker(get_lat_long_from_address(property.address, MyApp.getContext()), property.description, BitmapDescriptorFactory.HUE_RED));
|
||||
}else{
|
||||
mapMarkers.add(new MapMarker(get_lat_long_from_address(property.address, MyApp.getContext()), property.description, BitmapDescriptorFactory.HUE_BLUE));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return mapMarkers;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -8,6 +8,7 @@ import java.util.List;
|
||||
|
||||
import fr.romanet.vj.apps.myrealestateagency.dao.PropertyDao;
|
||||
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 PropertyRepository {
|
||||
@ -21,6 +22,8 @@ public class PropertyRepository {
|
||||
allProperties = propertyDao.getPropertyList();
|
||||
}
|
||||
|
||||
public List<Property> getPropertyFromAgencyList(Agency agency){return propertyDao.getPropertyFromAgencyList(agency.agencyId); }
|
||||
|
||||
public LiveData<List<Property>> getAllProperties() {
|
||||
return allProperties;
|
||||
}
|
||||
|
||||
@ -103,9 +103,6 @@ public class MapsActivity extends FragmentActivity implements OnMapReadyCallback
|
||||
|
||||
mMap.animateCamera(cu);
|
||||
|
||||
|
||||
|
||||
// mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(latlngbnd, 30));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -124,4 +124,9 @@ public class PropertiesDetailActivity extends AppCompatActivity {
|
||||
description.setText("Description : " + property.description);
|
||||
}
|
||||
}
|
||||
|
||||
public void goto_map(View view) {
|
||||
Intent i = new Intent(PropertiesDetailActivity.this, MapsActivity.class);
|
||||
PropertiesDetailActivity.this.startActivity(i);
|
||||
}
|
||||
}
|
||||
|
||||
@ -17,6 +17,7 @@ import java.util.List;
|
||||
|
||||
import fr.romanet.vj.apps.myrealestateagency.Config;
|
||||
import fr.romanet.vj.apps.myrealestateagency.MyApp;
|
||||
import fr.romanet.vj.apps.myrealestateagency.SharedPrefs;
|
||||
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,14 +31,16 @@ public class AgentsActivityViewModel extends AndroidViewModel implements Lifecyc
|
||||
public MutableLiveData<Integer> selected_agency = new MutableLiveData<>();
|
||||
|
||||
public AgentRepository agentRepository;
|
||||
SharedPreferences sharedPreferences;
|
||||
public SharedPrefs sharedPrefs;
|
||||
|
||||
|
||||
public AgentsActivityViewModel(@NonNull Application application)
|
||||
{
|
||||
super(application);
|
||||
agentRepository = new AgentRepository(application);
|
||||
sharedPrefs = new SharedPrefs();
|
||||
agents = agentRepository.getAllAgents();
|
||||
|
||||
}
|
||||
|
||||
public void setAgents()
|
||||
@ -54,8 +57,7 @@ public class AgentsActivityViewModel extends AndroidViewModel implements Lifecyc
|
||||
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
|
||||
private void restore_shared_prefs(){
|
||||
|
||||
sharedPreferences = MyApp.getContext().getSharedPreferences(Config.getSharedPreferences(), MODE_PRIVATE);
|
||||
int stored_agent_id = sharedPreferences.getInt(Config.get_selected_agency_index(), -1);
|
||||
int stored_agent_id = sharedPrefs.get_logged_agent_id();
|
||||
// selected_agency.postValue(stored_agent_id);
|
||||
|
||||
if (stored_agent_id >= 0){
|
||||
|
||||
@ -7,6 +7,7 @@ import androidx.annotation.NonNull;
|
||||
import androidx.lifecycle.AndroidViewModel;
|
||||
import androidx.lifecycle.Lifecycle;
|
||||
import androidx.lifecycle.LifecycleObserver;
|
||||
import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
import androidx.lifecycle.OnLifecycleEvent;
|
||||
|
||||
@ -20,7 +21,10 @@ import java.util.Map;
|
||||
|
||||
import fr.romanet.vj.apps.myrealestateagency.MapMarker;
|
||||
import fr.romanet.vj.apps.myrealestateagency.MyApp;
|
||||
import fr.romanet.vj.apps.myrealestateagency.entities.Agency;
|
||||
import fr.romanet.vj.apps.myrealestateagency.entities.Property;
|
||||
import fr.romanet.vj.apps.myrealestateagency.repository.MapsActivityRepository;
|
||||
import fr.romanet.vj.apps.myrealestateagency.repository.PropertyRepository;
|
||||
import fr.romanet.vj.apps.myrealestateagency.view.MapsActivity;
|
||||
|
||||
public class MapsActivityViewModel extends AndroidViewModel implements LifecycleObserver {
|
||||
@ -31,16 +35,27 @@ public class MapsActivityViewModel extends AndroidViewModel implements Lifecycle
|
||||
|
||||
public MutableLiveData<List<MapMarker>> markers_to_display = new MutableLiveData<>();
|
||||
|
||||
private PropertyRepository propertyRepository;
|
||||
|
||||
private MapsActivityRepository mapsActivityRepository;
|
||||
|
||||
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
|
||||
private void init_map() throws IOException {
|
||||
List<MapMarker> mapMarkers = new ArrayList<MapMarker>();
|
||||
private void init_map(Application application) throws IOException {
|
||||
mapsActivityRepository = new MapsActivityRepository();
|
||||
|
||||
// LiveData<List<Property>> properties = propertyRepository.getAllProperties();
|
||||
|
||||
|
||||
|
||||
// List<MapMarker> mapMarkers = new ArrayList<MapMarker>();
|
||||
List<MapMarker> mapMarkers = mapsActivityRepository.get_all_map_markers_for_this_agency(application);
|
||||
// List<LatLng> latLngs = null;
|
||||
|
||||
mapMarkers.add(new MapMarker(MapsActivityRepository.get_lat_long_from_address("Paris, France", MyApp.getContext()), "Paris", BitmapDescriptorFactory.HUE_BLUE));
|
||||
mapMarkers.add(new MapMarker(MapsActivityRepository.get_lat_long_from_address("Villejuif, France", MyApp.getContext()), "Villejuif", BitmapDescriptorFactory.HUE_BLUE));
|
||||
mapMarkers.add(new MapMarker(MapsActivityRepository.get_lat_long_from_address("Cachan, France", MyApp.getContext()), "Cachan", BitmapDescriptorFactory.HUE_BLUE));
|
||||
mapMarkers.add(new MapMarker(MapsActivityRepository.get_lat_long_from_address("Massy, France", MyApp.getContext()), "Massy", BitmapDescriptorFactory.HUE_GREEN));
|
||||
mapMarkers.add(new MapMarker(MapsActivityRepository.get_lat_long_from_address("Ivry, France", MyApp.getContext()), "Ivry", BitmapDescriptorFactory.HUE_RED));
|
||||
// mapMarkers.add(new MapMarker(MapsActivityRepository.get_lat_long_from_address("Paris, France", MyApp.getContext()), "Paris", BitmapDescriptorFactory.HUE_BLUE));
|
||||
// mapMarkers.add(new MapMarker(MapsActivityRepository.get_lat_long_from_address("Villejuif, France", MyApp.getContext()), "Villejuif", BitmapDescriptorFactory.HUE_BLUE));
|
||||
// mapMarkers.add(new MapMarker(MapsActivityRepository.get_lat_long_from_address("Cachan, France", MyApp.getContext()), "Cachan", BitmapDescriptorFactory.HUE_BLUE));
|
||||
// mapMarkers.add(new MapMarker(MapsActivityRepository.get_lat_long_from_address("Massy, France", MyApp.getContext()), "Massy", BitmapDescriptorFactory.HUE_GREEN));
|
||||
// mapMarkers.add(new MapMarker(MapsActivityRepository.get_lat_long_from_address("Ivry, France", MyApp.getContext()), "Ivry", BitmapDescriptorFactory.HUE_RED));
|
||||
|
||||
// for (MapMarker mapMarker : mapMarkers){
|
||||
// latLngs.add(new LatLng(addr.getLatitude(), addr.getLongitude()));
|
||||
|
||||
@ -180,6 +180,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Map"
|
||||
android:onClick="goto_map"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.783"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user