diff --git a/app/src/main/java/com/example/ca_contest/CountrySelectorActivity.kt b/app/src/main/java/com/example/ca_contest/CountrySelectorActivity.kt index 231228d..60f12fc 100644 --- a/app/src/main/java/com/example/ca_contest/CountrySelectorActivity.kt +++ b/app/src/main/java/com/example/ca_contest/CountrySelectorActivity.kt @@ -23,9 +23,12 @@ import retrofit2.Callback import retrofit2.Response import kotlin.collections.ArrayList - class CountrySelectorActivity : AppCompatActivity() { + companion object { + const val PROGRESS_BAR_TITLE = "Récupération des pays..." + } + private var data: ArrayList = ArrayList() override fun onCreate(savedInstanceState: Bundle?) { @@ -35,7 +38,7 @@ class CountrySelectorActivity : AppCompatActivity() { // Progress Bar val progressDialog = ProgressDialog(this) - progressDialog.setTitle("Récupération des pays...") + progressDialog.setTitle(PROGRESS_BAR_TITLE) progressDialog.setCancelable(false) progressDialog.show() diff --git a/app/src/main/java/com/example/ca_contest/MainActivity.kt b/app/src/main/java/com/example/ca_contest/MainActivity.kt index 20aa4b6..170a624 100644 --- a/app/src/main/java/com/example/ca_contest/MainActivity.kt +++ b/app/src/main/java/com/example/ca_contest/MainActivity.kt @@ -12,20 +12,20 @@ import com.example.ca_contest.dao.AppDatabaseHelper import java.util.* class MainActivity : AppCompatActivity() { - private lateinit var countryAdapter: HomepageCountryAdapter - // private lateinit var imageView: ImageView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) + // Initialize RecyclerView val recycler = findViewById(R.id.list_country) recycler.setHasFixedSize(true) val layoutManager = LinearLayoutManager(this) recycler.layoutManager = layoutManager + // Fetch Items in Database val adapter = HomepageCountryAdapter( AppDatabaseHelper .getDatabase(this) diff --git a/app/src/main/java/com/example/ca_contest/adapters/CountryAdapter.kt b/app/src/main/java/com/example/ca_contest/adapters/CountryAdapter.kt index 1c3d458..d9ca0a9 100644 --- a/app/src/main/java/com/example/ca_contest/adapters/CountryAdapter.kt +++ b/app/src/main/java/com/example/ca_contest/adapters/CountryAdapter.kt @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView import com.example.ca_contest.api.Country import com.squareup.picasso.Picasso +// Adapter for the CountrySelector class CountryAdapter(list: ArrayList) : RecyclerView.Adapter() { private var list: ArrayList = ArrayList() diff --git a/app/src/main/java/com/example/ca_contest/adapters/HomepageCountryAdapter.kt b/app/src/main/java/com/example/ca_contest/adapters/HomepageCountryAdapter.kt index ab6fcc5..a13663a 100644 --- a/app/src/main/java/com/example/ca_contest/adapters/HomepageCountryAdapter.kt +++ b/app/src/main/java/com/example/ca_contest/adapters/HomepageCountryAdapter.kt @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView import com.example.ca_contest.dao.Country import com.squareup.picasso.Picasso +// Adapter for the homepage class HomepageCountryAdapter(list: List) : RecyclerView.Adapter() { private var list: List = ArrayList() diff --git a/app/src/main/java/com/example/ca_contest/api/ApiClient.kt b/app/src/main/java/com/example/ca_contest/api/ApiClient.kt index 3351896..91b6edc 100644 --- a/app/src/main/java/com/example/ca_contest/api/ApiClient.kt +++ b/app/src/main/java/com/example/ca_contest/api/ApiClient.kt @@ -6,6 +6,7 @@ import okhttp3.logging.HttpLoggingInterceptor import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory +// API Client object ApiClient { var BASE_URL:String="https://restcountries.eu/" diff --git a/app/src/main/java/com/example/ca_contest/api/ApiInterface.kt b/app/src/main/java/com/example/ca_contest/api/ApiInterface.kt index 752acb1..00a46cb 100644 --- a/app/src/main/java/com/example/ca_contest/api/ApiInterface.kt +++ b/app/src/main/java/com/example/ca_contest/api/ApiInterface.kt @@ -3,6 +3,7 @@ package com.example.ca_contest.api import retrofit2.Call import retrofit2.http.GET +// functions to get the differents elements interface ApiInterface { @GET("rest/v2/all") diff --git a/app/src/main/java/com/example/ca_contest/api/Country.kt b/app/src/main/java/com/example/ca_contest/api/Country.kt index 5e27dc0..aec25f1 100644 --- a/app/src/main/java/com/example/ca_contest/api/Country.kt +++ b/app/src/main/java/com/example/ca_contest/api/Country.kt @@ -3,6 +3,7 @@ package com.example.ca_contest.api import com.google.gson.annotations.Expose import com.google.gson.annotations.SerializedName +// Model for The API data class Country( @Expose @SerializedName("name") diff --git a/app/src/main/java/com/example/ca_contest/dao/AppDatabase.kt b/app/src/main/java/com/example/ca_contest/dao/AppDatabase.kt index a43fc21..4ad4520 100644 --- a/app/src/main/java/com/example/ca_contest/dao/AppDatabase.kt +++ b/app/src/main/java/com/example/ca_contest/dao/AppDatabase.kt @@ -5,6 +5,7 @@ import androidx.room.Database import androidx.room.RoomDatabase import androidx.room.TypeConverters +// Database Manager @Database(entities = [Country::class], version = 1) @TypeConverters(Converters::class) abstract class AppDatabase : RoomDatabase() diff --git a/app/src/main/java/com/example/ca_contest/dao/AppDatabaseHelper.kt b/app/src/main/java/com/example/ca_contest/dao/AppDatabaseHelper.kt index 475bc4b..8ec635d 100644 --- a/app/src/main/java/com/example/ca_contest/dao/AppDatabaseHelper.kt +++ b/app/src/main/java/com/example/ca_contest/dao/AppDatabaseHelper.kt @@ -3,6 +3,7 @@ package com.example.ca_contest.dao import android.content.Context import androidx.room.Room +// Helper for the Database System class AppDatabaseHelper(context: Context) { // Bloc de code "static" : diff --git a/app/src/main/java/com/example/ca_contest/dao/Country.kt b/app/src/main/java/com/example/ca_contest/dao/Country.kt index 237fd7c..db29b06 100644 --- a/app/src/main/java/com/example/ca_contest/dao/Country.kt +++ b/app/src/main/java/com/example/ca_contest/dao/Country.kt @@ -4,6 +4,7 @@ import androidx.room.Entity import androidx.room.PrimaryKey import java.util.Date +// Model for the country @Entity(tableName = "country") class Country( @PrimaryKey(autoGenerate = true) diff --git a/app/src/main/java/com/example/ca_contest/dao/CountryDAO.kt b/app/src/main/java/com/example/ca_contest/dao/CountryDAO.kt index c7c7a1b..32ecd38 100644 --- a/app/src/main/java/com/example/ca_contest/dao/CountryDAO.kt +++ b/app/src/main/java/com/example/ca_contest/dao/CountryDAO.kt @@ -2,9 +2,10 @@ package com.example.ca_contest.dao import androidx.room.* +// DAO for the Country @Dao abstract class CountryDAO { - @Query("SELECT * FROM country") + @Query("SELECT * FROM country ORDER BY date ASC") abstract fun getListCountry(): List @Insert abstract fun insert(vararg country: Country) diff --git a/app/src/main/java/com/example/ca_contest/libs/Converters.kt b/app/src/main/java/com/example/ca_contest/libs/Converters.kt index 7db5b69..6eeb346 100644 --- a/app/src/main/java/com/example/ca_contest/libs/Converters.kt +++ b/app/src/main/java/com/example/ca_contest/libs/Converters.kt @@ -3,6 +3,7 @@ package com.example.ca_contest.libs import androidx.room.TypeConverter import java.util.* +// Convert from and to a Java Date Object to a SQL Date class Converters { @TypeConverter fun fromTimestamp(value: Long?): Date? {