summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlonkaars <loek@pipeframe.xyz>2024-02-13 18:04:15 +0100
committerlonkaars <loek@pipeframe.xyz>2024-02-13 18:04:15 +0100
commitd80cc5297c1f155e05ba56cfa301ff95a12eb9fd (patch)
tree6b9fdb1fdf21242ed8ec2adfc92e7666cefef0c5
parentbf4decf024fa1bf9f3879c665c8fc2f5405ece4b (diff)
eindopdracht klaar
-rw-r--r--app/build.gradle.kts1
-rw-r--r--app/src/main/AndroidManifest.xml2
-rw-r--r--app/src/main/java/com/lonkaars/bingo3/WeatherActivity.java48
-rw-r--r--app/src/main/res/layout/weather.xml17
4 files changed, 66 insertions, 2 deletions
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index b330a7d..2a6c7de 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -64,6 +64,7 @@ dependencies {
implementation("androidx.compose.ui:ui-graphics")
implementation("androidx.compose.ui:ui-tooling-preview")
implementation("androidx.compose.material3:material3")
+ implementation("com.android.volley:volley:1.2.1")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0cc7f54..e9de882 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -2,6 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
+ <uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
@@ -23,5 +24,4 @@
<activity android:name=".OrientationActivity"/>
<activity android:name=".WeatherActivity"/>
</application>
-
</manifest> \ No newline at end of file
diff --git a/app/src/main/java/com/lonkaars/bingo3/WeatherActivity.java b/app/src/main/java/com/lonkaars/bingo3/WeatherActivity.java
index 46c965c..3a5aa6e 100644
--- a/app/src/main/java/com/lonkaars/bingo3/WeatherActivity.java
+++ b/app/src/main/java/com/lonkaars/bingo3/WeatherActivity.java
@@ -1,12 +1,27 @@
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) {
@@ -18,4 +33,37 @@ public class WeatherActivity extends AppCompatActivity {
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);
+ }
} \ No newline at end of file
diff --git a/app/src/main/res/layout/weather.xml b/app/src/main/res/layout/weather.xml
index 99d36df..9f6d589 100644
--- a/app/src/main/res/layout/weather.xml
+++ b/app/src/main/res/layout/weather.xml
@@ -46,18 +46,33 @@
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="wrap_content"
+ android:onClick="fetch_weather_data"
android:text="pak dat zonnetje"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
+ <ProgressBar
+ android:id="@+id/loader"
+ style="?android:attr/progressBarStyle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="32dp"
+ android:visibility="invisible"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/button" />
+
<ListView
+ android:id="@+id/forecast_list"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="32dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/button" />
+ app:layout_constraintTop_toBottomOf="@+id/button" >
+
+ </ListView>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file