Actions sur page d'accueil

Signed-off-by: Avior <florian.bouillon@delta-wings.net>
This commit is contained in:
Florian Bouillon 2021-02-19 18:51:02 +01:00
parent f02b529405
commit 7e30aa80b4
Signed by: Florian Bouillon
GPG Key ID: 50BD648F12C86AB6
13 changed files with 93 additions and 44 deletions

5
README.md Normal file
View File

@ -0,0 +1,5 @@
Membres sur le projet:
- Florian BOUILLON
- Camille NAULET
GROUPE 4

View File

@ -11,13 +11,14 @@
android:supportsRtl="true"
android:theme="@style/Theme.CA_Contest"
android:usesCleartextTraffic="true">
<activity android:name=".CalendarActivity"></activity>
<activity android:name=".CalendarActivity"
android:theme="@style/Theme.CA_Contest.NoActionBar"
/>
<activity
android:name=".CountrySelectorActivity"
android:label="@string/title_activity_country_selector"
android:theme="@style/Theme.CA_Contest.NoActionBar" />
<activity android:name=".CountrySelectorActivity"></activity>
<activity android:name=".MainActivity">
<activity android:name=".MainActivity" android:theme="@style/Theme.CA_Contest.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

View File

@ -1,13 +1,16 @@
package com.example.ca_contest
import android.app.DatePickerDialog
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.Button
import android.widget.DatePicker
import android.widget.Toast
import com.example.ca_contest.api.Country
import com.example.ca_contest.dao.AppDatabaseHelper
import com.example.ca_contest.dao.Country
import java.text.SimpleDateFormat
import java.util.*
@ -19,23 +22,34 @@ class CalendarActivity : AppCompatActivity() {
val name=intent.getStringExtra("name")
val capital=intent.getStringExtra("capital")
val region=intent.getStringExtra("region")
val code = intent.getStringExtra("code")
var date = Date(0)
val datePicker = findViewById<DatePicker>(R.id.date)
val today = Calendar.getInstance()
datePicker.init(today.get(Calendar.YEAR), today.get(Calendar.MONTH),
datePicker.init(
today.get(Calendar.YEAR),
today.get(Calendar.MONTH),
today.get(Calendar.DAY_OF_MONTH)
) { view, year, month, day ->
val month = month + 1
) { _, year, month, day ->
date = Date(year, month, day)
}
fun addDate(view: View) {
// val listCountry: List<Country> = AppDatabaseHelper
// .getDatabase(this)
// .countryDAO()
// .insert()
val validateur = findViewById<Button>(R.id.add_date)
validateur.setOnClickListener {
AppDatabaseHelper
.getDatabase(this)
.countryDAO()
.insert(Country(
country = name,
capitalCity = capital,
continent = region,
code = code,
date = date
))
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
}
}
}

View File

@ -40,4 +40,8 @@ class MainActivity : AppCompatActivity() {
startActivity(intent)
}
override fun onBackPressed() {
this.finishAffinity()
}
}

View File

@ -69,6 +69,7 @@ class CountryAdapter(list: ArrayList<Country>) : RecyclerView.Adapter<CountryAda
.putExtra("name", list[adapterPosition].name)
.putExtra("capital", list[adapterPosition].capital)
.putExtra("region", list[adapterPosition].region)
.putExtra("code", list[adapterPosition].alpha2Code)
)
}
}

View File

@ -1,15 +1,17 @@
package com.example.ca_contest.adapters
import android.content.Context
import com.example.ca_contest.R
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import android.widget.Toast
import androidx.recyclerview.widget.RecyclerView
import com.example.ca_contest.dao.AppDatabaseHelper
import com.example.ca_contest.dao.Country
import com.squareup.picasso.Picasso
import java.text.DateFormat
// Adapter for the homepage
class HomepageCountryAdapter(list: List<Country>) : RecyclerView.Adapter<HomepageCountryAdapter.CountryViewHolder>() {
@ -30,12 +32,22 @@ class HomepageCountryAdapter(list: List<Country>) : RecyclerView.Adapter<Homepag
// Bind each items
override fun onBindViewHolder(holder: CountryViewHolder, position: Int) {
holder.name?.text = list[position].country
holder.capital?.text = "Capital : " + list[position].capitalCity
holder.date?.text = list[position].date.toString()
holder.capital?.text = "Capital : " + list[position].capitalCity
holder.date?.text = DateFormat.getDateInstance(DateFormat.MEDIUM).format(list[position].date)
holder.region?.text = "Continent : " + list[position].continent
Picasso.get()
.load("http://www.geognos.com/api/en/countries/flag/" + list[position].code + ".png")
.into(holder.image!!)
holder.button.setOnClickListener {
AppDatabaseHelper
.getDatabase(holder.context)
.countryDAO()
.delete(list[position].countryId)
val newList = ArrayList(list)
newList.removeAt(position)
list = newList
this.notifyItemRemoved(position)
}
}
// Update the list
@ -53,6 +65,8 @@ class HomepageCountryAdapter(list: List<Country>) : RecyclerView.Adapter<Homepag
var region: TextView? = null
var date: TextView? = null
var image: ImageView? = null
var button: ImageView
var context: Context
init {
name = itemView.findViewById(R.id.country)
@ -60,6 +74,8 @@ class HomepageCountryAdapter(list: List<Country>) : RecyclerView.Adapter<Homepag
capital = itemView.findViewById(R.id.capital)
region = itemView.findViewById(R.id.continent)
image = itemView.findViewById(R.id.image)
button = itemView.findViewById(R.id.delete)
context = itemView.context
}
}

View File

@ -11,6 +11,6 @@ abstract class CountryDAO {
abstract fun insert(vararg country: Country)
@Update
abstract fun update(vararg country: Country)
@Delete
abstract fun delete(vararg country: Country)
@Query("DELETE FROM country WHERE countryId = :id")
abstract fun delete(id: Long)
}

View File

@ -8,31 +8,32 @@
android:gravity = "center"
tools:context=".CalendarActivity">
<include layout="@layout/toolbar"/>
<include
android:id="@+id/include2"
layout="@layout/toolbar" />
<DatePicker
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:calendarTextColor="@color/purple_200"
android:datePickerMode="calendar"
app:layout_constraintTop_toBottomOf="@id/toolbar"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:calendarTextColor="@color/purple_200">
</DatePicker>
app:layout_constraintTop_toBottomOf="@+id/include2"></DatePicker>
<Button
android:id="@+id/add_date"
android:layout_width="0dp"
android:layout_height="50dp"
android:background="@color/purple_200"
android:onClick="addDate"
android:background="@color/validation"
android:text="Valider"
android:textColor="@android:color/white"
app:backgroundTint="@color/validation"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"/>
app:layout_constraintRight_toRightOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -6,19 +6,23 @@
android:layout_height="match_parent"
tools:context=".CountrySelectorActivity">
<include
android:id="@+id/include"
layout="@layout/toolbar" />
<EditText
android:id="@+id/text"
android:layout_width="0dp"
android:layout_height="70dp"
android:background="#eee"
android:hint="Nom du pays"
android:paddingLeft="16px"
android:inputType="textCapSentences"
android:maxLines="1"
android:paddingLeft="16px"
android:textColor="@android:color/black"
app:layout_constraintEnd_toStartOf="@+id/validate"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toBottomOf="@+id/include" />
<Button
android:id="@+id/validate"
@ -30,7 +34,7 @@
app:backgroundTint="@color/button"
app:layout_constraintBottom_toTopOf="@+id/list"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toBottomOf="@+id/include" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/list"

View File

@ -6,6 +6,10 @@
android:layout_height="match_parent"
tools:context=".MainActivity">
<include
android:id="@+id/include"
layout="@layout/toolbar" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/list_country"
android:layout_width="match_parent"
@ -15,7 +19,7 @@
app:layout_constraintBottom_toTopOf="@+id/bouton_retour"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toBottomOf="@+id/include" />
<Button
android:id="@+id/bouton_retour"

View File

@ -1,18 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.appcompat.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#123459"
android:id="@+id/toolbar">
android:background="@color/colorPrimary">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="World Visit"
android:textSize="23sp"
android:textColor="@color/white">
</TextView>
android:textColor="@color/white"
android:textSize="23sp"></TextView>
</android.support.v7.widget.Toolbar>
</androidx.appcompat.widget.Toolbar>

View File

@ -7,6 +7,7 @@
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="colorPrimary">#123459</color>
<color name="button">#CD4E61</color>
<color name="validation">#2ECB60</color>
</resources>

View File

@ -2,15 +2,15 @@
<!-- Base application theme. -->
<style name="Theme.CA_Contest" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorPrimary">@color/button</item>
<item name="colorPrimaryVariant">@color/button</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<item name="colorSecondary">@color/button</item>
<item name="colorSecondaryVariant">@color/button</item>
<item name="colorOnSecondary">@color/white</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<item name="android:statusBarColor" tools:targetApi="l">#0d253c</item>
<!-- Customize your theme here. -->
</style>