diff --git a/app/build.gradle b/app/build.gradle index 6eb4219..dfdc63d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -45,4 +45,6 @@ dependencies { testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + implementation 'com.google.code.gson:gson:2.8.5' + implementation 'org.jsoup:jsoup:1.12.1' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 35c9ce6..100aeb2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,8 @@ + + > { + val json = gson.fromJson(retrieveDataFromServer(), Response::class.java) + + val document = Jsoup.parseBodyFragment(json.content!!.rendered) + val htmlList = document.getElementsByTag("ul")[0].getElementsByTag("a") + + val list = ArrayList>() + + htmlList.forEach { element -> + list.add(Pair(element.text(), element.attr("href"))) + } + + return list + } + + @Throws(IOException::class) + fun retrieveDataFromServer(): String? { + var connection: HttpsURLConnection? = null + return try { + connection = (URL(ENDPOINT_URL).openConnection() as? HttpsURLConnection) + connection?.run { + // Set GET HTTP method + requestMethod = "GET" + + setRequestProperty("Accept-Encoding", "none") + + connect() + if (responseCode != HttpsURLConnection.HTTP_OK) { + throw IOException("HTTP error code: $responseCode") + } + + inputStream?.reader()?.readText() + } + } finally { + // Close Stream and disconnect HTTPS connection. + connection?.inputStream?.close() + connection?.disconnect() + } + + } +} \ No newline at end of file diff --git a/app/src/main/java/net/underdesk/circolapp/server/pojo/Content.kt b/app/src/main/java/net/underdesk/circolapp/server/pojo/Content.kt new file mode 100644 index 0000000..ee4a6f1 --- /dev/null +++ b/app/src/main/java/net/underdesk/circolapp/server/pojo/Content.kt @@ -0,0 +1,5 @@ +package net.underdesk.circolapp.server.pojo + +data class Content( + val rendered: String? = null +) diff --git a/app/src/main/java/net/underdesk/circolapp/server/pojo/Response.kt b/app/src/main/java/net/underdesk/circolapp/server/pojo/Response.kt new file mode 100644 index 0000000..c9f0c59 --- /dev/null +++ b/app/src/main/java/net/underdesk/circolapp/server/pojo/Response.kt @@ -0,0 +1,5 @@ +package net.underdesk.circolapp.server.pojo + +data class Response( + val content: Content? = null +)