summaryrefslogtreecommitdiff
path: root/app/src/main/java/com/lonkaars/bingo3/WeatherActivity.java
blob: 3a5aa6ebdc0cb71b894e4ad8927c37b86c17b429 (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
69
package com.lonkaars.bingo3;

import android.os.Bundle;
import android.util.Log;
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.Response;
import com.android.volley.VolleyError;
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);
        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);
    }
}