Add to form a field to put a name of route and list all markers with coordinate and address

This commit is contained in:
clement
2024-07-09 10:41:43 +02:00
parent f7a8720669
commit 1e7b729e4f
4 changed files with 63 additions and 11 deletions

View File

@@ -28,6 +28,7 @@
</activity> </activity>
<activity <activity
android:name=".ValidateMarker" android:name=".ValidateMarker"
android:label="Ajouter une ligne"
android:parentActivityName=".MainActivity" android:parentActivityName=".MainActivity"
android:theme="@style/Theme.AppCompat"/> android:theme="@style/Theme.AppCompat"/>
</application> </application>

View File

@@ -1,6 +1,7 @@
package com.example.busroute package com.example.busroute
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.AlertDialog
import android.content.ContentValues import android.content.ContentValues
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
@@ -65,7 +66,7 @@ class MainActivity : ComponentActivity() {
isLocationPermissionGranted() isLocationPermissionGranted()
val geocoder = Geocoder(this, Locale.getDefault())
locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager
@@ -112,6 +113,11 @@ class MainActivity : ComponentActivity() {
stringList.add(it.toString()) stringList.add(it.toString())
//val newRowId = db?.insert(StopContract.StopEntry.TABLE_NAME, null, values) //val newRowId = db?.insert(StopContract.StopEntry.TABLE_NAME, null, values)
} }
if(busStopList.size < 1){
val alert = AlertDialog.Builder(this).setTitle("Aucun point !").setMessage("Il faut au moins 1 point pour continuer !")
alert.show()
return@setOnClickListener
}
val intent = Intent(saveMarkButton.context, ValidateMarker::class.java) val intent = Intent(saveMarkButton.context, ValidateMarker::class.java)
intent.putExtra(ValidateMarker.MARKERS, stringList) intent.putExtra(ValidateMarker.MARKERS, stringList)
startActivity(intent) startActivity(intent)
@@ -182,8 +188,6 @@ class MainActivity : ComponentActivity() {
Log.i("Position", "$latitude $longitude") Log.i("Position", "$latitude $longitude")
Log.i("Accuracy Chosen", "${location.provider}") Log.i("Accuracy Chosen", "${location.provider}")
var geoResults: MutableList<Address>? = geocoder.getFromLocation(latitude, longitude, 1)
Log.i("Location", geoResults.toString())
} }
} }
locationOverlay.enableMyLocation() locationOverlay.enableMyLocation()

View File

@@ -1,15 +1,22 @@
package com.example.busroute package com.example.busroute
import android.content.ContentValues import android.content.ContentValues
import android.location.Address
import android.location.Geocoder
import android.os.Bundle import android.os.Bundle
import android.os.PersistableBundle import android.os.PersistableBundle
import android.util.Log import android.util.Log
import android.widget.ScrollView
import android.widget.TableLayout import android.widget.TableLayout
import android.widget.TextView import android.widget.TextView
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.children import androidx.core.view.children
import java.math.BigDecimal
import java.math.RoundingMode
import java.util.ArrayList import java.util.ArrayList
import java.util.Locale
import kotlin.math.roundToLong
class ValidateMarker: AppCompatActivity() { class ValidateMarker: AppCompatActivity() {
@@ -19,12 +26,26 @@ class ValidateMarker: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
val geocoder = Geocoder(this, Locale.getDefault())
setContentView(R.layout.marker_form) setContentView(R.layout.marker_form)
val table = findViewById<TableLayout>(R.id.table) val table = findViewById<TableLayout>(R.id.table)
val markers: ArrayList<String>? = intent.extras?.getStringArrayList(MARKERS) val markers: ArrayList<String>? = intent.extras?.getStringArrayList(MARKERS)
markers!!.forEach{ markers!!.forEach{
val latitude = it.split(" | ")[0].toDouble()
val longitude = it.split(" | ")[1].toDouble()
val geoResults: MutableList<Address>? = geocoder.getFromLocation(latitude, longitude, 1)
lateinit var address:String
if (geoResults != null) {
if(geoResults.size > 0){
address = geoResults[0].getAddressLine(0)
}
}
val text = TextView(this) val text = TextView(this)
text.text = it var newText = it
if(!address.isNullOrEmpty()){
newText += "\r${address}\n"
}
text.text = newText
table.addView(text) table.addView(text)
} }
} }

View File

@@ -1,11 +1,37 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<TableLayout <TableLayout
android:id="@+id/table" android:layout_width="200dp"
android:layout_width="match_parent" android:layout_height="wrap_content">
android:layout_height="match_parent" <TextView
android:clipToPadding="false" android:layout_width="wrap_content"
android:padding="16dp" /> android:layout_height="wrap_content"
</GridLayout> android:textSize="20dp"
android:textStyle="bold"
android:text="Merci de vérifier les informations"/>
<TextView
android:layout_width="wrap_content"
android:layout_marginTop="20dp"
android:text="Entrez un nom pour la ligne (80 caractères max)"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/route_name"
android:maxLength="80"/>
<Button
android:layout_width="wrap_content"
android:id="@+id/validate_form"
android:layout_height="wrap_content"
android:text="Valider"/>
</TableLayout>
<ScrollView>
<TableLayout
android:id="@+id/table"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:padding="16dp" />
</ScrollView>
</TableLayout>