import
android.os.Bundle;
import
android.util.Log;
import
android.view.View;
import
android.widget.AdapterView;
import
android.widget.AdapterView.OnItemSelectedListener;
import
android.widget.ArrayAdapter;
import
android.widget.Spinner;
import
android.widget.TextView;
import
androidx.appcompat.app.AppCompatActivity;
import
com.loopj.android.http.AsyncHttpClient;
import
com.loopj.android.http.JsonHttpResponseHandler;
import
org.json.JSONException;
import
org.json.JSONObject;
import
java.io.IOException;
import
cz.msebera.android.httpclient.Header;
public
class
MainActivity
extends
AppCompatActivity {
TextView mPriceTextView;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPriceTextView = (TextView) findViewById(R.id.priceLabel);
Spinner spinner = (Spinner) findViewById(R.id.currency_spinner);
final
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this
,
R.array.currency_array, R.layout.spinner_item);
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(
new
OnItemSelectedListener() {
@Override
public
void
onItemSelected(AdapterView<?> adapterView, View view,
int
i,
long
l) {
String publicKey =
"cd9ebbd0c5c20340b9d638e409f41fb1"
;
String finalUrl = BASE_URL + publicKey +
"&TARGET="
+ adapterView.getItemAtPosition(i) +
"&symbols=BTC"
;
Log.d(
"Clima"
,
"Request fail! Status code: "
+ finalUrl);
try
{
letsDoSomeNetworking(finalUrl);
}
catch
(IOException e) {
e.printStackTrace();
}
catch
(JSONException e) {
e.printStackTrace();
}
}
@Override
public
void
onNothingSelected(AdapterView<?> adapterView) {
}
});
}
private
void
letsDoSomeNetworking(String url)
throws
IOException, JSONException {
AsyncHttpClient client =
new
AsyncHttpClient();
client.get(url,
new
JsonHttpResponseHandler() {
@Override
public
void
onSuccess(
int
statusCode, Header[] headers, JSONObject response) {
Log.d(
"Clima"
,
"JSON: "
+ response.toString());
try
{
JSONObject price = response.getJSONObject(
"rates"
);
String object = price.getString(
"BTC"
);
mPriceTextView.setText(object);
}
catch
(JSONException E) {
E.printStackTrace();
}
}
@Override
public
void
onFailure(
int
statusCode, Header[] headers, Throwable e, JSONObject response) {
Log.d(
"Clima"
,
"Request fail! Status code: "
+ statusCode);
Log.d(
"Clima"
,
"Fail response: "
+ response);
Log.e(
"ERROR"
, e.toString());
}
});
}
}