diff --git a/app/build.gradle b/app/build.gradle index 76f07ce..6141f7a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,7 +38,25 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.google.android.material:material:1.2.1' 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' testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' -} \ No newline at end of file + + // Retrofit + implementation 'com.google.code.gson:gson:2.8.4' + implementation 'com.squareup.retrofit2:retrofit:2.3.0' + implementation 'com.squareup.retrofit2:converter-gson:2.3.0' + implementation 'com.squareup.okhttp3:logging-interceptor:3.8.0' + implementation "com.android.support:cardview-v7:29.1.1" + implementation 'com.android.support:recyclerview-v7:29.1.1' + implementation 'com.squareup.picasso:picasso:2.71828' + + //Picasso + implementation 'com.squareup.picasso:picasso:2.71828' + implementation 'com.squareup.okhttp:okhttp:2.2.0' + implementation 'com.squareup.okhttp:okhttp-urlconnection:2.2.0' +} + +apply plugin: 'kotlin-android-extensions' \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3235640..2688741 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,14 +1,19 @@ - + + diff --git a/app/src/main/java/com/example/ca_contest/CountrySelectorActivity.kt b/app/src/main/java/com/example/ca_contest/CountrySelectorActivity.kt new file mode 100644 index 0000000..139c2cb --- /dev/null +++ b/app/src/main/java/com/example/ca_contest/CountrySelectorActivity.kt @@ -0,0 +1,74 @@ +package com.example.ca_contest + +import com.example.ca_contest.adapters.CountryAdapter +import android.app.ProgressDialog +import android.content.Intent +import android.os.Bundle +import android.view.KeyEvent +import android.view.View +import android.widget.Button +import android.widget.EditText +import android.widget.TextView +import android.widget.Toast +import androidx.appcompat.app.AppCompatActivity +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.example.ca_contest.api.ApiClient +import com.example.ca_contest.api.Country +import kotlinx.android.synthetic.main.activity_country_selector.* +import retrofit2.Call +import retrofit2.Callback +import retrofit2.Response +import kotlin.collections.ArrayList + + +class CountrySelectorActivity : AppCompatActivity() { + + private var data: ArrayList = ArrayList() + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + setContentView(R.layout.activity_country_selector) + + // Progress Bar + val progressDialog = ProgressDialog(this) + progressDialog.setTitle("Récupération des pays...") + progressDialog.setCancelable(false) + progressDialog.show() + + // Initialize Recycler + val recycler = findViewById(R.id.list) + recycler.setHasFixedSize(true) + + val layoutManager = LinearLayoutManager(this) + recycler.layoutManager = layoutManager + + val adapter = CountryAdapter(data) + recycler.adapter = adapter + + // Fetch Countries + ApiClient.getClient.getCountries().enqueue(object : Callback> { + override fun onResponse(call: Call>?, response: Response>?) { + progressDialog.dismiss() + data.addAll(response!!.body()!!) + adapter.update(data.clone() as ArrayList) + recycler.adapter?.notifyDataSetChanged() + } + + override fun onFailure(call: Call>?, t: Throwable?) { + progressDialog.dismiss() + } + }) + + + // Input Text and Button + val textView = findViewById(R.id.text) + var btn = findViewById