98 lines
2.8 KiB
Kotlin
98 lines
2.8 KiB
Kotlin
package com.example.testes
|
|
|
|
import androidx.appcompat.app.AppCompatActivity
|
|
import android.os.Bundle
|
|
import android.util.Log
|
|
import androidx.appcompat.widget.SearchView
|
|
import com.example.testes.databinding.ActivityMainBinding
|
|
import org.json.JSONArray
|
|
import org.json.JSONException
|
|
import org.json.JSONObject
|
|
|
|
class MainActivity : AppCompatActivity() {
|
|
|
|
lateinit var binding: ActivityMainBinding
|
|
|
|
private fun imageListFromJson(json: JSONObject) {
|
|
try {
|
|
val array: JSONArray = json.getJSONArray("post")
|
|
val list = BooruImage.listFromJsonArray(array)
|
|
loadGrid(list)
|
|
//Log.i("Image", list.toString())
|
|
|
|
}
|
|
catch (e: JSONException) {
|
|
e.printStackTrace()
|
|
}
|
|
|
|
|
|
}
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
binding = ActivityMainBinding.inflate(layoutInflater)
|
|
setContentView(binding.root)
|
|
val url = "https://gelbooru.com/index.php?page=dapi&s=post&q=index&json=1&limit=18"
|
|
search("")
|
|
|
|
binding.search.setOnQueryTextListener(object :
|
|
SearchView.OnQueryTextListener {
|
|
override fun onQueryTextChange(newText: String): Boolean {
|
|
return false
|
|
}
|
|
|
|
override fun onQueryTextSubmit(query: String): Boolean {
|
|
search(query)
|
|
// task HERE
|
|
return false
|
|
}
|
|
}
|
|
)
|
|
}
|
|
|
|
private fun search(query: String?) {
|
|
if (query.isNullOrBlank() || query == "*") {
|
|
Request.getRequest(
|
|
this,
|
|
"https://gelbooru.com/index.php?page=dapi&s=post&q=index&json=1&limit=18",
|
|
::imageListFromJson
|
|
)
|
|
}
|
|
else {
|
|
val url: String = assemblePostsUrl(query)
|
|
|
|
Request.getRequest(
|
|
this,
|
|
url,
|
|
::imageListFromJson
|
|
)
|
|
}
|
|
}
|
|
|
|
private fun assemblePostsUrl(query: String): String{
|
|
return "https://gelbooru.com/index.php?page=dapi&s=post&q=index&json=1&limit=18&tags=$query"
|
|
}
|
|
|
|
private fun loadGrid(images: List<BooruImage>) {
|
|
val fragmentTransaction = supportFragmentManager.beginTransaction()
|
|
fragmentTransaction.replace(R.id.imageGridRecV, ImageGridFragment(images))
|
|
fragmentTransaction.addToBackStack(null)
|
|
fragmentTransaction.commit()
|
|
}
|
|
|
|
inner class SearchListener(
|
|
var callback: (String) -> Unit
|
|
) : SearchView.OnQueryTextListener {
|
|
|
|
override fun onQueryTextSubmit(query : String): Boolean {
|
|
callback(query)
|
|
return true
|
|
}
|
|
|
|
override fun onQueryTextChange(query : String): Boolean {
|
|
//callback(query)
|
|
return true
|
|
}
|
|
}
|
|
}
|