blob: e991383a444e0710343a88fa3de2bfa96388d748 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
package com.lonkaars.bingo3;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import com.google.android.material.appbar.MaterialToolbar;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
public class WeatherActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.weather);
MaterialToolbar toolbar = findViewById(R.id.topAppBar);
toolbar.setNavigationOnClickListener(v -> {
finish();
});
}
public void fetch_weather_data(View view) {
findViewById(R.id.loader).setVisibility(View.VISIBLE);
ListView list = findViewById(R.id.forecast_list);
RequestQueue queue = Volley.newRequestQueue(this);
// temporary workaround for expired SSL certificates
String url = "https://media.pipeframe.xyz/wttr.json";
// String url = "https://wttr.in/?format=j1";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
(Request.Method.GET, url, null, response -> {
findViewById(R.id.loader).setVisibility(View.INVISIBLE);
ArrayList<String> data = new ArrayList<String>();
try {
JSONArray forecast = response.getJSONArray("weather");
for (int i = 0; i < forecast.length(); i++) {
JSONObject rec = forecast.getJSONObject(i);
data.add(String.format("%s: %s°C", rec.getString("date"), rec.getString("avgtempC")));
}
} catch (Exception e) {
Toast.makeText(WeatherActivity.this, "foutje!", Toast.LENGTH_SHORT).show();
return;
}
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(WeatherActivity.this,
android.R.layout.simple_list_item_1, data);
list.setAdapter(adapter);
}, error -> {
findViewById(R.id.loader).setVisibility(View.INVISIBLE);
Toast.makeText(WeatherActivity.this, "foutje!", Toast.LENGTH_SHORT).show();
});
queue.add(jsonObjectRequest);
}
}
|