application & database fixed. View modified (cell_place)

baptiste2
Baptiste BONNEAU 2 years ago
parent 3a6adc4108
commit f0d51f3c1b

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

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

@ -1,12 +1,13 @@
package uca.baptistearthur.geocaching.converters package uca.baptistearthur.geocaching.converters
import android.os.Build
import androidx.annotation.RequiresApi
import androidx.room.TypeConverter import androidx.room.TypeConverter
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.internal.bind.util.ISO8601Utils.format
import com.google.gson.reflect.TypeToken import com.google.gson.reflect.TypeToken
import uca.baptistearthur.geocaching.model.Place import uca.baptistearthur.geocaching.model.Place
import uca.baptistearthur.geocaching.model.RoadTripEntity import uca.baptistearthur.geocaching.model.RoadTripEntity
import java.lang.String.format
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter import java.time.format.DateTimeFormatter
import java.util.* import java.util.*
@ -40,5 +41,12 @@ class Converters {
} }
fun Date.toFrenchFormat(): String { 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 android.content.Context
import androidx.room.Room import androidx.room.Room
import androidx.room.RoomDatabase import androidx.room.RoomDatabase
import androidx.room.Database
import androidx.room.TypeConverters import androidx.room.TypeConverters
import uca.baptistearthur.geocaching.converters.Converters import uca.baptistearthur.geocaching.converters.Converters
import uca.baptistearthur.geocaching.model.RoadTripEntity import uca.baptistearthur.geocaching.model.RoadTripEntity
@androidx.room.Database(entities = arrayOf(RoadTripEntity::class), version=1) @Database(entities = [RoadTripEntity::class], version=1)
@TypeConverters(Converters::class) @TypeConverters(Converters::class)
abstract class Database : RoomDatabase(){ abstract class BDD : RoomDatabase(){
abstract fun roadTripDAO(): RoadTripDAO abstract fun roadTripDAO(): RoadTripDAO
companion object{ companion object{
private var INSTANCE: Database ?= null private var INSTANCE: BDD ?= null
fun getInstance(context: Context): BDD =
fun getInstance(context: Context) =
INSTANCE ?: synchronized(this){ 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 = db
INSTANCE!!
} }
} }
} }

@ -16,7 +16,8 @@ class PlacesAdapter (val places: List<Place>) : RecyclerView.Adapter<PlacesViewH
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
override fun onBindViewHolder(holder: PlacesViewHolder, position: Int) { 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 override fun getItemCount(): Int = places.size
} }

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

@ -22,3 +22,4 @@ class RoadTripAdapter(val voyages: List<RoadTripEntity>, val navController: NavC
} }
override fun getItemCount(): Int = voyages.size override fun getItemCount(): Int = voyages.size
} }

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

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

@ -1,7 +1,7 @@
package uca.baptistearthur.geocaching.viewModels package uca.baptistearthur.geocaching.viewModels
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.asLiveData //import androidx.lifecycle.asLiveData
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import uca.baptistearthur.geocaching.data.RoadTripDAO import uca.baptistearthur.geocaching.data.RoadTripDAO
@ -9,9 +9,9 @@ import uca.baptistearthur.geocaching.model.RoadTripEntity
class RoadTripViewModel(val dao: RoadTripDAO): ViewModel() { 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){ fun insertRoadTrip(r: RoadTripEntity){
viewModelScope.launch { 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_width="match_parent"
android:layout_height="45dp" android:layout_height="45dp"
android:layout_gravity="start" android:layout_gravity="start"
android:backgroundTint="@color/white"
android:drawableStart="@drawable/right_arrow" android:drawableStart="@drawable/right_arrow"
android:drawableLeft="@drawable/right_arrow" android:drawableLeft="@drawable/right_arrow"
android:gravity="left" android:gravity="left"

@ -4,26 +4,50 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"> android:layout_marginLeft="10dp"
android:layout_margin="5dp"
<TextView android:background="@drawable/corner_radius"
android:id="@+id/txtPlaceName" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1) LAT: 49.264562 - LONG: 48.5485248" <ImageView
android:textSize="17sp" android:id="@+id/imageView"
android:layout_weight="1" android:layout_width="wrap_content"
android:layout_gravity="center_vertical" android:layout_height="wrap_content"
android:textColor="@color/main_turquoise_500" android:layout_marginRight="10dp"
/> android:layout_marginLeft="10dp"
android:layout_margin="10dp"
<Button android:src="@drawable/center" />
android:id="@+id/btnDeletePlace"
android:layout_width="50dp"
android:layout_height="wrap_content" <LinearLayout
android:layout_gravity="center" android:layout_width="match_parent"
android:text="X" android:layout_height="match_parent"
android:backgroundTint="@color/main_turquoise_200" 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> </LinearLayout>

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

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

@ -5,7 +5,7 @@
<string name="roadtrip_title">Mes RoadTrips:</string> <string name="roadtrip_title">Mes RoadTrips:</string>
<string name="add_roadtrip_button">+</string> <string name="add_roadtrip_button">+</string>
<string name="textaddNewRoadTrip">Entrez le nom du nouveau voyage</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> <string name="btnDeleteRoadTrip">Supprimer le voyage</string>
<!-- TODO: Remove or change this placeholder text --> <!-- TODO: Remove or change this placeholder text -->

Loading…
Cancel
Save