diff --git a/app/build.gradle b/app/build.gradle
index 5e94f60..bc5c889 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -34,6 +34,8 @@ dependencies {
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation "androidx.room:room-runtime:2.2.5"
+ implementation 'com.google.android.gms:play-services-maps:17.0.0'
+ implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
annotationProcessor "androidx.room:room-compiler:2.2.5"
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
diff --git a/app/src/debug/res/values/google_maps_api.xml b/app/src/debug/res/values/google_maps_api.xml
new file mode 100644
index 0000000..a7aa286
--- /dev/null
+++ b/app/src/debug/res/values/google_maps_api.xml
@@ -0,0 +1,24 @@
+
+
+ AIzaSyAAltvI3LZ9wAOuygKQybgJN5tIQhPk_Hg
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b15e7d0..0fa014a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -2,6 +2,14 @@
+
+
+
+
-
+
+
+
+
+
+
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/dao/AgencyWithPropertiesDao.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/dao/AgencyWithPropertiesDao.java
index d0bb1b9..e64d168 100644
--- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/dao/AgencyWithPropertiesDao.java
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/dao/AgencyWithPropertiesDao.java
@@ -6,11 +6,11 @@ import androidx.room.Transaction;
import java.util.List;
-import fr.romanet.vj.apps.myrealestateagency.entities.AgencyWithProperties;
+//import fr.romanet.vj.apps.myrealestateagency.entities.AgencyWithProperties;
-@Dao
-public interface AgencyWithPropertiesDao {
- @Transaction
- @Query("SELECT * FROM agency")
- List getAgenciesAndProperties();
-}
+//@Dao
+//public interface AgencyWithPropertiesDao {
+// @Transaction
+// @Query("SELECT * FROM agency")
+// List getAgenciesAndProperties();
+//}
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 1a56156..5f822cf 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
@@ -9,7 +9,7 @@ import androidx.room.TypeConverters;
import fr.romanet.vj.apps.myrealestateagency.dao.AgencyDao;
import fr.romanet.vj.apps.myrealestateagency.dao.AgencyWithAgentsDao;
-import fr.romanet.vj.apps.myrealestateagency.dao.AgencyWithPropertiesDao;
+//import fr.romanet.vj.apps.myrealestateagency.dao.AgencyWithPropertiesDao;
import fr.romanet.vj.apps.myrealestateagency.dao.PropertyDao;
import fr.romanet.vj.apps.myrealestateagency.entities.Agency;
import fr.romanet.vj.apps.myrealestateagency.entities.Agent;
@@ -24,6 +24,6 @@ public abstract class RealEstateAgencyDatabase extends RoomDatabase {
public abstract AgencyDao agencyDao();
public abstract PropertyDao propertyDao();
public abstract AgencyWithAgentsDao agencyWithAgentsDao();
- public abstract AgencyWithPropertiesDao agencyWithPropertiesDaoDao();
+// public abstract AgencyWithPropertiesDao agencyWithPropertiesDaoDao();
}
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/AgencyWithProperties.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/AgencyWithProperties.java
index 91cd30c..b8eec44 100644
--- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/AgencyWithProperties.java
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/entities/AgencyWithProperties.java
@@ -1,15 +1,15 @@
-package fr.romanet.vj.apps.myrealestateagency.entities;
+ package fr.romanet.vj.apps.myrealestateagency.entities;
import androidx.room.Embedded;
import androidx.room.Relation;
import java.util.List;
-public class AgencyWithProperties {
- public int agency_id;
- @Relation(
- parentColumn = "agency_id",
- entityColumn = "belongs_agency_id"
- )
- public List agents;
-}
+//public class AgencyWithProperties {
+// public int agency_id;
+// @Relation(
+// parentColumn = "agency_id",
+// entityColumn = "belongs_agency_id"
+// )
+// public List agents;
+//}
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/MainActivityRepository.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/MainActivityRepository.java
new file mode 100644
index 0000000..8f20d29
--- /dev/null
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/MainActivityRepository.java
@@ -0,0 +1,7 @@
+package fr.romanet.vj.apps.myrealestateagency.repository;
+
+import androidx.lifecycle.LifecycleObserver;
+
+public class MainActivityRepository implements LifecycleObserver {
+
+}
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/MapsActivityRepository.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/MapsActivityRepository.java
new file mode 100644
index 0000000..fe2ee1b
--- /dev/null
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/MapsActivityRepository.java
@@ -0,0 +1,15 @@
+package fr.romanet.vj.apps.myrealestateagency.repository;
+
+import android.content.Context;
+import android.location.Address;
+import android.location.Geocoder;
+
+import java.io.IOException;
+import java.util.List;
+
+public class MapsActivityRepository {
+ public List get_lat_long_from_address(String address, Context context) throws IOException {
+ Geocoder gc = new Geocoder(context);
+ return gc.getFromLocationName(address, 1);
+ }
+}
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/Repository/MyRealEstateAgencyRepository.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/MyRealEstateAgencyRepository.java
similarity index 87%
rename from app/src/main/java/fr/romanet/vj/apps/myrealestateagency/Repository/MyRealEstateAgencyRepository.java
rename to app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/MyRealEstateAgencyRepository.java
index afbecab..163f89f 100644
--- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/Repository/MyRealEstateAgencyRepository.java
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/repository/MyRealEstateAgencyRepository.java
@@ -1,9 +1,14 @@
-package fr.romanet.vj.apps.myrealestateagency.Repository;
+package fr.romanet.vj.apps.myrealestateagency.repository;
import android.content.Context;
+import android.location.Address;
+import android.location.Geocoder;
import androidx.room.Room;
+import java.io.IOException;
+import java.util.List;
+
import fr.romanet.vj.apps.myrealestateagency.database.RealEstateAgencyDatabase;
import fr.romanet.vj.apps.myrealestateagency.entities.Agency;
import fr.romanet.vj.apps.myrealestateagency.entities.Agent;
@@ -36,4 +41,7 @@ public final class MyRealEstateAgencyRepository {
public void addAgency(Agency agency){realEstateAgencyDatabaseDatabase.agencyDao().insertAgency(agency);}
public void addAgent(Agent agent){realEstateAgencyDatabaseDatabase.agentDao().insertAgent(agent);}
+
+
+
}
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/MainActivity.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/view/MainActivity.java
similarity index 58%
rename from app/src/main/java/fr/romanet/vj/apps/myrealestateagency/MainActivity.java
rename to app/src/main/java/fr/romanet/vj/apps/myrealestateagency/view/MainActivity.java
index 146904f..2705ef0 100644
--- a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/MainActivity.java
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/view/MainActivity.java
@@ -1,28 +1,43 @@
-package fr.romanet.vj.apps.myrealestateagency;
+package fr.romanet.vj.apps.myrealestateagency.view;
import androidx.appcompat.app.AppCompatActivity;
-import android.util.Log;
+import androidx.lifecycle.ViewModelProvider;
+
+import android.content.Intent;
import android.view.View;
-import java.util.ArrayList;
-import java.util.List;
-import android.os.AsyncTask;
import android.os.Bundle;
+import android.widget.TextView;
-import fr.romanet.vj.apps.myrealestateagency.Repository.MyRealEstateAgencyRepository;
-import fr.romanet.vj.apps.myrealestateagency.database.RealEstateAgencyDatabase;
+import fr.romanet.vj.apps.myrealestateagency.R;
+import fr.romanet.vj.apps.myrealestateagency.repository.MyRealEstateAgencyRepository;
import fr.romanet.vj.apps.myrealestateagency.entities.Agency;
-import fr.romanet.vj.apps.myrealestateagency.entities.AgencyWithAgents;
import fr.romanet.vj.apps.myrealestateagency.entities.Agent;
+import fr.romanet.vj.apps.myrealestateagency.viewmodel.MainActivityViewModel;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MyActivity";
+ // - Init ViewModel
+ MainActivityViewModel mainActivityViewModel;
+
+ // - Init widgets
+ private TextView tv1;
+
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
+
+ // - Define widget
+ tv1 = (TextView) findViewById(R.id.tv1);
+
+ // - Link the ViewModel
+ mainActivityViewModel = new ViewModelProvider(this).get(MainActivityViewModel.class);
+ getLifecycle().addObserver(mainActivityViewModel);
+ observe_counter();
}
public void insertSingleTodo(View view) {
@@ -45,4 +60,17 @@ public class MainActivity extends AppCompatActivity {
String query = "SELECT agency_id FROM agency INNER JOIN agent ON agency.agency_id = agent.agent_id WHERE agency_name =" + "AgenceOFParis" + "GROUP BY agency_name";
String query1 = "SELECT agency_id FROM agent INNER JOIN agency ON agency.agency_id = agent.agent_id WHERE agency_name =" + "AgenceOFParis" + "GROUP BY agency_name";
}
+
+ public void BTN_go_to_map(View view){
+ Intent i = new Intent(MainActivity.this, MapsActivity.class);
+ MainActivity.this.startActivity(i);
+ }
+
+ public void observe_counter(){
+ mainActivityViewModel.counter.observe(this, counter ->
+ {
+ tv1.setText(counter.toString());
+ });
+ }
+
}
\ No newline at end of file
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/view/MapsActivity.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/view/MapsActivity.java
new file mode 100644
index 0000000..1a3d523
--- /dev/null
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/view/MapsActivity.java
@@ -0,0 +1,53 @@
+package fr.romanet.vj.apps.myrealestateagency.view;
+
+import androidx.fragment.app.FragmentActivity;
+
+import android.os.Bundle;
+
+import com.google.android.gms.maps.CameraUpdateFactory;
+import com.google.android.gms.maps.GoogleMap;
+import com.google.android.gms.maps.OnMapReadyCallback;
+import com.google.android.gms.maps.SupportMapFragment;
+import com.google.android.gms.maps.model.LatLng;
+import com.google.android.gms.maps.model.MarkerOptions;
+
+import java.util.List;
+
+import fr.romanet.vj.apps.myrealestateagency.R;
+import fr.romanet.vj.apps.myrealestateagency.repository.MapsActivityRepository;
+
+public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
+
+ private GoogleMap mMap;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_maps);
+ // Obtain the SupportMapFragment and get notified when the map is ready to be used.
+ SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
+ .findFragmentById(R.id.map);
+ mapFragment.getMapAsync(this);
+ }
+
+ /**
+ * Manipulates the map once available.
+ * This callback is triggered when the map is ready to be used.
+ * This is where we can add markers or lines, add listeners or move the camera. In this case,
+ * we just add a marker near Sydney, Australia.
+ * If Google Play services is not installed on the device, the user will be prompted to install
+ * it inside the SupportMapFragment. This method will only be triggered once the user has
+ * installed Google Play services and returned to the app.
+ */
+ @Override
+ public void onMapReady(GoogleMap googleMap) {
+ mMap = googleMap;
+
+ // Add a marker in Sydney and move the camera
+ LatLng sydney = new LatLng(-34, 151);
+// mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
+ mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
+ mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
+// List ll = MapsActivityRepository.get
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/viewmodel/MainActivityViewModel.java b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/viewmodel/MainActivityViewModel.java
new file mode 100644
index 0000000..b829646
--- /dev/null
+++ b/app/src/main/java/fr/romanet/vj/apps/myrealestateagency/viewmodel/MainActivityViewModel.java
@@ -0,0 +1,40 @@
+package fr.romanet.vj.apps.myrealestateagency.viewmodel;
+
+import android.os.Handler;
+import android.os.SystemClock;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleObserver;
+import androidx.lifecycle.MutableLiveData;
+import androidx.lifecycle.OnLifecycleEvent;
+import androidx.lifecycle.ViewModel;
+
+import fr.romanet.vj.apps.myrealestateagency.view.MainActivity;
+
+public final class MainActivityViewModel extends ViewModel implements LifecycleObserver {
+
+ public enum LoadingState
+ {
+ Loading, Loaded
+ }
+
+ public MutableLiveData loadingState = new MutableLiveData<>();
+ public MutableLiveData counter = new MutableLiveData<>();
+
+ @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
+ private void start_counter_on_activity_start(){
+ counter.postValue(0);
+ for (int i = 0; i<10; i++){
+ new Handler().postDelayed(() ->
+ {
+ counter.postValue(15);
+ }, i*1000);
+// counter.postValue(i);
+// SystemClock.sleep(1000);
+ }
+
+
+ }
+
+
+}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 2c36633..ad335c2 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -4,28 +4,40 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context=".MainActivity">
+ tools:context=".view.MainActivity">
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="0.3" />
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/tv1" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_maps.xml b/app/src/main/res/layout/activity_maps.xml
new file mode 100644
index 0000000..af27bdf
--- /dev/null
+++ b/app/src/main/res/layout/activity_maps.xml
@@ -0,0 +1,9 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index de5a55d..7ac3c04 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,3 +1,4 @@
My Real Estate Agency
+ Map
\ No newline at end of file
diff --git a/app/src/release/res/values/google_maps_api.xml b/app/src/release/res/values/google_maps_api.xml
new file mode 100644
index 0000000..d81bc19
--- /dev/null
+++ b/app/src/release/res/values/google_maps_api.xml
@@ -0,0 +1,20 @@
+
+
+ YOUR_KEY_HERE
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index c8d7712..04baf1e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath "com.android.tools.build:gradle:4.1.0"
+ classpath 'com.android.tools.build:gradle:4.1.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files