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 data = new ArrayList(); 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 adapter = new ArrayAdapter(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); } }