application & database fixed. View modified (cell_place)

baptiste2
Baptiste BONNEAU 2 years ago
parent 3a6adc4108
commit f0d51f3c1b

@ -13,6 +13,7 @@
tools:ignore="ScopedStorage" />
<application
android:name=".application.RTApplication"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
@ -21,6 +22,7 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Geocaching"
android:enableOnBackInvokedCallback="true"
tools:targetApi="31">
<activity
android:name=".ui.activity.MainWindow"

@ -1,24 +1,10 @@
package uca.baptistearthur.geocaching.application
import android.app.Application
import uca.baptistearthur.geocaching.data.Database
import uca.baptistearthur.geocaching.data.BDD
class RTApplication: Application() {
// val db: Database by lazy {
// Database.getInstance(this)
// }
//
// lateinit var db: Database
//
// override fun onCreate() {
// super.onCreate()
//
// // Initialiser la propriété db ici
// db = Database.getInstance(this) as Database
// }
val db: BDD by lazy { BDD.getInstance(this) }
}

@ -1,12 +1,13 @@
package uca.baptistearthur.geocaching.converters
import android.os.Build
import androidx.annotation.RequiresApi
import androidx.room.TypeConverter
import com.google.gson.Gson
import com.google.gson.internal.bind.util.ISO8601Utils.format
import com.google.gson.reflect.TypeToken
import uca.baptistearthur.geocaching.model.Place
import uca.baptistearthur.geocaching.model.RoadTripEntity
import java.lang.String.format
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import java.util.*
@ -40,5 +41,12 @@ class Converters {
}
fun Date.toFrenchFormat(): String {
return "${this.day}/${this.month}/${this.year} - ${this.hours}h${this.minutes}"
val day: String = if(this.date < 10) "0${this.date}" else "${this.date}"
val month: String = if(this.month < 10) "0${this.month}" else "${this.month}"
val year = "${this.year + 1900}"
val hours: String = if(this.hours < 10) "0${this.hours}" else "${this.hours}"
val minutes: String = if(this.minutes < 10) "0${this.minutes}" else "${this.minutes}"
return "$day/$month/$year - ${hours}h$minutes"
}

@ -3,24 +3,29 @@ package uca.baptistearthur.geocaching.data
import android.content.Context
import androidx.room.Room
import androidx.room.RoomDatabase
import androidx.room.Database
import androidx.room.TypeConverters
import uca.baptistearthur.geocaching.converters.Converters
import uca.baptistearthur.geocaching.model.RoadTripEntity
@androidx.room.Database(entities = arrayOf(RoadTripEntity::class), version=1)
@Database(entities = [RoadTripEntity::class], version=1)
@TypeConverters(Converters::class)
abstract class Database : RoomDatabase(){
abstract class BDD : RoomDatabase(){
abstract fun roadTripDAO(): RoadTripDAO
companion object{
private var INSTANCE: Database ?= null
fun getInstance(context: Context) =
private var INSTANCE: BDD ?= null
fun getInstance(context: Context): BDD =
INSTANCE ?: synchronized(this){
val db = Room.databaseBuilder(context, Database::class.java, "roadTripDB").build()
val db = Room.databaseBuilder(context, BDD::class.java, "roadTripDB").build()
INSTANCE = db
INSTANCE!!
}
}
}

@ -16,7 +16,8 @@ class PlacesAdapter (val places: List<Place>) : RecyclerView.Adapter<PlacesViewH
@SuppressLint("SetTextI18n")
override fun onBindViewHolder(holder: PlacesViewHolder, position: Int) {
holder.placeText.text = "" + (position+1) + ") LAT: " + places[position].latitude + " - LONG: " + places[position].longitude
holder.placeName.text = "Ici sera le nom"
holder.placeAddress.text = "Ici sera l'adresse"
}
override fun getItemCount(): Int = places.size
}

@ -8,7 +8,7 @@ import uca.baptistearthur.geocaching.R
class PlacesViewHolder(val cellule: View): ViewHolder(cellule) {
var placeDeleteButton: Button = cellule.findViewById(R.id.btnDeletePlace)
var placeText: TextView = cellule.findViewById(R.id.txtPlaceName)
var placeName: TextView = cellule.findViewById(R.id.txtPlaceName)
var placeAddress: TextView = cellule.findViewById(R.id.txtPlaceAddress)
}

@ -21,4 +21,5 @@ class RoadTripAdapter(val voyages: List<RoadTripEntity>, val navController: NavC
holder.clickedRoadTrip = voyages[position]
}
override fun getItemCount(): Int = voyages.size
}
}

@ -21,6 +21,7 @@ class MainWindow: AppCompatActivity() {
// RoadTripViewModelFactory((this.application as RTApplication).db.roadTripDAO())
// }
@SuppressLint("MissingInflatedId")
override fun onCreate(savedInstanceState: Bundle?) {

@ -8,13 +8,18 @@ import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.EditText
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import uca.baptistearthur.geocaching.R
import uca.baptistearthur.geocaching.application.RTApplication
import uca.baptistearthur.geocaching.data.Stub
import uca.baptistearthur.geocaching.model.RoadTripEntity
import uca.baptistearthur.geocaching.recyclerview.RoadTripAdapter
import uca.baptistearthur.geocaching.ui.activity.MainWindow
import uca.baptistearthur.geocaching.viewModels.RoadTripViewModel
import uca.baptistearthur.geocaching.viewModels.RoadTripViewModelFactory
import java.util.*
// TODO: Rename parameter arguments, choose names that match
@ -31,8 +36,12 @@ class RoadTripFragment : Fragment() {
// TODO: Rename and change types of parameters
private var param1: String? = null
private var param2: String? = null
private var model = Stub().load()
private var roadTripRecyclerView : RecyclerView? = null
private var model = Stub().load()
// private val roadTripViewModel: RoadTripViewModel by viewModels<RoadTripViewModel> {
// RoadTripViewModelFactory((MainWindow().application as RTApplication).db.roadTripDAO()) // MainWindow().application ????? bof bof
// }
override fun onCreate(savedInstanceState: Bundle?) {

@ -1,7 +1,7 @@
package uca.baptistearthur.geocaching.viewModels
import androidx.lifecycle.ViewModel
import androidx.lifecycle.asLiveData
//import androidx.lifecycle.asLiveData
import androidx.lifecycle.viewModelScope
import kotlinx.coroutines.launch
import uca.baptistearthur.geocaching.data.RoadTripDAO
@ -9,9 +9,9 @@ import uca.baptistearthur.geocaching.model.RoadTripEntity
class RoadTripViewModel(val dao: RoadTripDAO): ViewModel() {
fun getRoadTripById(id: Int) = dao.getRoadTripById(id).asLiveData()
fun getRoadTripById(id: Int) = dao.getRoadTripById(id)//.asLiveData()
fun getAllRoadTrips() = dao.getAllRoadTrips().asLiveData()
fun getAllRoadTrips() = dao.getAllRoadTrips()//.asLiveData()
fun insertRoadTrip(r: RoadTripEntity){
viewModelScope.launch {

@ -0,0 +1,20 @@
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid
android:color="@color/gray" >
</solid>
<padding
android:left="5dp"
android:top="5dp"
android:right="5dp"
android:bottom="5dp" >
</padding>
<corners
android:radius="11dp" >
</corners>
</shape>

@ -6,7 +6,6 @@
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_gravity="start"
android:backgroundTint="@color/white"
android:drawableStart="@drawable/right_arrow"
android:drawableLeft="@drawable/right_arrow"
android:gravity="left"

@ -4,26 +4,50 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp">
<TextView
android:id="@+id/txtPlaceName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1) LAT: 49.264562 - LONG: 48.5485248"
android:textSize="17sp"
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:textColor="@color/main_turquoise_500"
/>
<Button
android:id="@+id/btnDeletePlace"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="X"
android:backgroundTint="@color/main_turquoise_200"
/>
android:layout_marginLeft="10dp"
android:layout_margin="5dp"
android:background="@drawable/corner_radius"
>
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_margin="10dp"
android:src="@drawable/center" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/txtPlaceName"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="TMP/ ici c'est le nom"
android:layout_weight="1"
android:textSize="17dp"
android:textColor="@color/black"
/>
<TextView
android:id="@+id/txtPlaceAddress"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="TMP/ ici c'est l'adresse"
android:layout_weight="1"
android:textSize="13dp"
/>
</LinearLayout>
</LinearLayout>

@ -37,7 +37,9 @@
android:layout_height="match_parent"
android:clickable="true"
android:focusable="true"
android:layout_weight="1"/>
android:layout_weight="1"
android:background="@drawable/corner_radius"
android:layout_margin="5dp"/>
<TextView
android:layout_width="match_parent"

@ -10,6 +10,7 @@
<color name="green">#FF3D7D3C</color>
<color name="green_variant">#FF659964</color>
<color name="gray">#ececec</color>
<color name="main_turquoise_700">#2f3e46</color>
<color name="main_turquoise_500">#354f52</color>
<color name="main_turquoise_200">#52796f</color>

@ -5,7 +5,7 @@
<string name="roadtrip_title">Mes RoadTrips:</string>
<string name="add_roadtrip_button">+</string>
<string name="textaddNewRoadTrip">Entrez le nom du nouveau voyage</string>
<string name="placesList">Vos lieux à visiter:</string>
<string name="placesList">Lieux à visiter sur votre chemin:</string>
<string name="btnDeleteRoadTrip">Supprimer le voyage</string>
<!-- TODO: Remove or change this placeholder text -->

Loading…
Cancel
Save