diff --git a/app/build.gradle b/app/build.gradle index 6141f7a..dc8b799 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,10 +46,13 @@ 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' +// implementation 'androidx.recyclerview:recyclerview:1.1.0' +// implementation 'com.google.android.material:material:1.3.0' +// implementation 'androidx.preference:preference:1.1.1' +// implementation 'androidx.navigation:navigation-fragment-ktx:2.2.2' +// implementation 'androidx.navigation:navigation-ui-ktx:2.2.2' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' @@ -57,6 +70,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 2688741..21da455 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,7 @@ + + android:name=".CountrySelectorActivity"> 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..231228d 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 @@ -70,5 +72,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..20aa4b6 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?) { + private lateinit var countryAdapter: HomepageCountryAdapter + // private lateinit var imageView: ImageView + override fun onCreate(savedInstanceState: Bundle?) + { super.onCreate(savedInstanceState) + setContentView(R.layout.activity_main) - var btn = findViewById