diff --git a/app/build.gradle b/app/build.gradle index 7000c06..82ad5f8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,6 +1,8 @@ plugins { id 'com.android.application' id 'kotlin-android' + id 'kotlin-android-extensions' + id 'kotlin-kapt' } android { @@ -14,6 +16,14 @@ android { versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + + javaCompileOptions { + annotationProcessorOptions { + arguments = + ["room.schemaLocation": "$projectDir/schemas".toString()] + } + } + } buildTypes { @@ -36,7 +46,7 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.3.2' implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'com.google.android.material:material:1.2.1' + implementation 'com.google.android.material:material:1.3.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation 'androidx.navigation:navigation-fragment-ktx:2.2.2' implementation 'androidx.navigation:navigation-ui-ktx:2.2.2' @@ -58,6 +68,12 @@ dependencies { implementation 'com.squareup.picasso:picasso:2.71828' implementation 'com.squareup.okhttp:okhttp:2.2.0' implementation 'com.squareup.okhttp:okhttp-urlconnection:2.2.0' + + // Database + implementation 'androidx.room:room-runtime:2.2.6' + implementation 'androidx.room:room-runtime:2.2.6' + kapt 'androidx.room:room-compiler:2.2.6' + } -apply plugin: 'kotlin-android-extensions' \ No newline at end of file +apply plugin: 'kotlin-android-extensions' diff --git a/app/schemas/com.example.ca_contest.dao.AppDatabase/1.json b/app/schemas/com.example.ca_contest.dao.AppDatabase/1.json new file mode 100644 index 0000000..3122f40 --- /dev/null +++ b/app/schemas/com.example.ca_contest.dao.AppDatabase/1.json @@ -0,0 +1,64 @@ +{ + "formatVersion": 1, + "database": { + "version": 1, + "identityHash": "8bdf84f071ba217eb3653e01500bac94", + "entities": [ + { + "tableName": "country", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`countryId` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `country` TEXT, `capitalCity` TEXT, `continent` TEXT, `code` TEXT, `date` INTEGER)", + "fields": [ + { + "fieldPath": "countryId", + "columnName": "countryId", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "country", + "columnName": "country", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "capitalCity", + "columnName": "capitalCity", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "continent", + "columnName": "continent", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "code", + "columnName": "code", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "date", + "columnName": "date", + "affinity": "INTEGER", + "notNull": false + } + ], + "primaryKey": { + "columnNames": [ + "countryId" + ], + "autoGenerate": true + }, + "indices": [], + "foreignKeys": [] + } + ], + "views": [], + "setupQueries": [ + "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", + "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '8bdf84f071ba217eb3653e01500bac94')" + ] + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ed5079a..c96dcf3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,9 +1,8 @@ - - - + + + 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 139c2cb..60f12fc 100644 --- a/app/src/main/java/com/example/ca_contest/CountrySelectorActivity.kt +++ b/app/src/main/java/com/example/ca_contest/CountrySelectorActivity.kt @@ -5,11 +5,13 @@ import android.app.ProgressDialog import android.content.Intent import android.os.Bundle import android.view.KeyEvent +import android.view.MenuItem import android.view.View import android.widget.Button import android.widget.EditText import android.widget.TextView import android.widget.Toast +import androidx.appcompat.app.ActionBar import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -21,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?) { @@ -33,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() @@ -70,5 +75,4 @@ class CountrySelectorActivity : AppCompatActivity() { recycler.adapter?.notifyDataSetChanged() } } - } \ No newline at end of file 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 8dc40d6..170a624 100644 --- a/app/src/main/java/com/example/ca_contest/MainActivity.kt +++ b/app/src/main/java/com/example/ca_contest/MainActivity.kt @@ -1,19 +1,43 @@ package com.example.ca_contest import android.content.Intent -import androidx.appcompat.app.AppCompatActivity import android.os.Bundle -import android.widget.Button +import android.view.View +import androidx.appcompat.app.ActionBar +import androidx.appcompat.app.AppCompatActivity +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.example.ca_contest.adapters.HomepageCountryAdapter +import com.example.ca_contest.dao.AppDatabaseHelper +import java.util.* class MainActivity : AppCompatActivity() { - override fun onCreate(savedInstanceState: Bundle?) { + override fun onCreate(savedInstanceState: Bundle?) + { super.onCreate(savedInstanceState) + setContentView(R.layout.activity_main) - var btn = findViewById