Implement Searches
This commit is contained in:
		
							parent
							
								
									3ad0d9cec0
								
							
						
					
					
						commit
						b0a05c50ae
					
				| 
						 | 
					@ -1,17 +0,0 @@
 | 
				
			||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					 | 
				
			||||||
<project version="4">
 | 
					 | 
				
			||||||
  <component name="deploymentTargetDropDown">
 | 
					 | 
				
			||||||
    <runningDeviceTargetSelectedWithDropDown>
 | 
					 | 
				
			||||||
      <Target>
 | 
					 | 
				
			||||||
        <type value="RUNNING_DEVICE_TARGET" />
 | 
					 | 
				
			||||||
        <deviceKey>
 | 
					 | 
				
			||||||
          <Key>
 | 
					 | 
				
			||||||
            <type value="VIRTUAL_DEVICE_PATH" />
 | 
					 | 
				
			||||||
            <value value="$USER_HOME$/.android/avd/Pixel_3a_XL_API_30.avd" />
 | 
					 | 
				
			||||||
          </Key>
 | 
					 | 
				
			||||||
        </deviceKey>
 | 
					 | 
				
			||||||
      </Target>
 | 
					 | 
				
			||||||
    </runningDeviceTargetSelectedWithDropDown>
 | 
					 | 
				
			||||||
    <timeTargetWasSelectedWithDropDown value="2022-02-18T22:16:54.747155Z" />
 | 
					 | 
				
			||||||
  </component>
 | 
					 | 
				
			||||||
</project>
 | 
					 | 
				
			||||||
| 
						 | 
					@ -17,9 +17,11 @@
 | 
				
			||||||
            android:exported="true">
 | 
					            android:exported="true">
 | 
				
			||||||
            <intent-filter>
 | 
					            <intent-filter>
 | 
				
			||||||
                <action android:name="android.intent.action.MAIN" />
 | 
					                <action android:name="android.intent.action.MAIN" />
 | 
				
			||||||
 | 
					                <action android:name="android.intent.action.SEARCH" />
 | 
				
			||||||
                <category android:name="android.intent.category.LAUNCHER" />
 | 
					                <category android:name="android.intent.category.LAUNCHER" />
 | 
				
			||||||
            </intent-filter>
 | 
					            </intent-filter>
 | 
				
			||||||
 | 
					            <meta-data android:name="android.app.searchable"
 | 
				
			||||||
 | 
					                       android:resource="@xml/searchable"/>
 | 
				
			||||||
        </activity>
 | 
					        </activity>
 | 
				
			||||||
    </application>
 | 
					    </application>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,11 @@
 | 
				
			||||||
package com.example.testes
 | 
					package com.example.testes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import android.app.SearchManager
 | 
				
			||||||
import androidx.appcompat.app.AppCompatActivity
 | 
					import androidx.appcompat.app.AppCompatActivity
 | 
				
			||||||
import android.os.Bundle
 | 
					import android.os.Bundle
 | 
				
			||||||
import android.util.Log
 | 
					import android.util.Log
 | 
				
			||||||
import android.widget.TextView
 | 
					import android.widget.TextView
 | 
				
			||||||
 | 
					import androidx.appcompat.widget.SearchView
 | 
				
			||||||
import androidx.fragment.app.Fragment
 | 
					import androidx.fragment.app.Fragment
 | 
				
			||||||
import com.example.testes.databinding.ActivityMainBinding
 | 
					import com.example.testes.databinding.ActivityMainBinding
 | 
				
			||||||
import org.json.JSONArray
 | 
					import org.json.JSONArray
 | 
				
			||||||
| 
						 | 
					@ -12,7 +14,6 @@ import org.json.JSONObject
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class MainActivity : AppCompatActivity() {
 | 
					class MainActivity : AppCompatActivity() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private val url = "https://gelbooru.com/index.php?page=dapi&s=post&q=index&json=1&limit=18"
 | 
					 | 
				
			||||||
    lateinit var binding: ActivityMainBinding
 | 
					    lateinit var binding: ActivityMainBinding
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private fun imageListFromJson(json: JSONObject) {
 | 
					    private fun imageListFromJson(json: JSONObject) {
 | 
				
			||||||
| 
						 | 
					@ -34,17 +35,55 @@ class MainActivity : AppCompatActivity() {
 | 
				
			||||||
        super.onCreate(savedInstanceState)
 | 
					        super.onCreate(savedInstanceState)
 | 
				
			||||||
        binding = ActivityMainBinding.inflate(layoutInflater)
 | 
					        binding = ActivityMainBinding.inflate(layoutInflater)
 | 
				
			||||||
        setContentView(binding.root)
 | 
					        setContentView(binding.root)
 | 
				
			||||||
 | 
					        val url = "https://gelbooru.com/index.php?page=dapi&s=post&q=index&json=1&limit=18"
 | 
				
			||||||
 | 
					        search(assemblePostsUrl("izumi_konata"))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        binding.search.setOnQueryTextListener(object :
 | 
				
			||||||
 | 
					            android.widget.SearchView.OnQueryTextListener {
 | 
				
			||||||
 | 
					                override fun onQueryTextChange(newText: String): Boolean {
 | 
				
			||||||
 | 
					                    return false
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                override fun onQueryTextSubmit(query: String): Boolean {
 | 
				
			||||||
 | 
					                    search(assemblePostsUrl(query))
 | 
				
			||||||
 | 
					                    // task HERE
 | 
				
			||||||
 | 
					                    return false
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private fun search(url: String) {
 | 
				
			||||||
        Request.getRequest(
 | 
					        Request.getRequest(
 | 
				
			||||||
            this,
 | 
					            this,
 | 
				
			||||||
            url,
 | 
					            url,
 | 
				
			||||||
            ::imageListFromJson
 | 
					            ::imageListFromJson
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					        Log.i("ocko", url)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    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>) {
 | 
					    private fun loadGrid(images: List<BooruImage>) {
 | 
				
			||||||
        val fragmentTransaction = supportFragmentManager.beginTransaction()
 | 
					        val fragmentTransaction = supportFragmentManager.beginTransaction()
 | 
				
			||||||
        fragmentTransaction.add(R.id.imageGridRecV, ImageGridFragment(images))
 | 
					        fragmentTransaction.replace(R.id.imageGridRecV, ImageGridFragment(images))
 | 
				
			||||||
        fragmentTransaction.commit()
 | 
					        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
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,9 +6,45 @@
 | 
				
			||||||
    android:layout_height="match_parent"
 | 
					    android:layout_height="match_parent"
 | 
				
			||||||
    tools:context=".MainActivity">
 | 
					    tools:context=".MainActivity">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <Toolbar
 | 
				
			||||||
 | 
					        android:id="@+id/mainToolbar"
 | 
				
			||||||
 | 
					        android:layout_width="match_parent"
 | 
				
			||||||
 | 
					        android:layout_height="wrap_content"
 | 
				
			||||||
 | 
					        app:layout_constraintTop_toTopOf="parent"
 | 
				
			||||||
 | 
					        app:layout_constraintStart_toStartOf="parent"
 | 
				
			||||||
 | 
					        app:layout_constraintEnd_toEndOf="parent"
 | 
				
			||||||
 | 
					        android:background="@color/design_default_color_primary"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <androidx.cardview.widget.CardView
 | 
				
			||||||
 | 
					            android:layout_width="match_parent"
 | 
				
			||||||
 | 
					            android:layout_height="wrap_content"
 | 
				
			||||||
 | 
					            android:layout_margin="7.5dp"
 | 
				
			||||||
 | 
					            app:cardCornerRadius="7.5dp"
 | 
				
			||||||
 | 
					            tools:layout_editor_absoluteX="16dp"
 | 
				
			||||||
 | 
					            tools:layout_editor_absoluteY="8dp">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <SearchView
 | 
				
			||||||
 | 
					                android:id="@+id/search"
 | 
				
			||||||
 | 
					                android:layout_width="match_parent"
 | 
				
			||||||
 | 
					                android:layout_height="match_parent"
 | 
				
			||||||
 | 
					                android:iconifiedByDefault="false"
 | 
				
			||||||
 | 
					                android:queryBackground="@android:color/transparent"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        </androidx.cardview.widget.CardView>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    </Toolbar>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <FrameLayout
 | 
					    <FrameLayout
 | 
				
			||||||
        android:id="@+id/imageGridRecV"
 | 
					        android:id="@+id/imageGridRecV"
 | 
				
			||||||
        android:layout_width="match_parent"
 | 
					        android:layout_width="match_parent"
 | 
				
			||||||
        android:layout_height="match_parent" />
 | 
					        android:layout_height="wrap_content"
 | 
				
			||||||
 | 
					        app:layout_constraintTop_toBottomOf="@id/mainToolbar"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</androidx.constraintlayout.widget.ConstraintLayout>
 | 
					</androidx.constraintlayout.widget.ConstraintLayout>
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
<resources>
 | 
					<resources>
 | 
				
			||||||
    <string name="app_name">Testes</string>
 | 
					    <string name="app_name">Boorujelly</string>
 | 
				
			||||||
    <!-- TODO: Remove or change this placeholder text -->
 | 
					    <!-- TODO: Remove or change this placeholder text -->
 | 
				
			||||||
    <string name="hello_blank_fragment">Hello blank fragment</string>
 | 
					    <string name="hello_blank_fragment">Hello blank fragment</string>
 | 
				
			||||||
 | 
					    <string name="search_hint">Search</string>
 | 
				
			||||||
</resources>
 | 
					</resources>
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<searchable xmlns:android="http://schemas.android.com/apk/res/android"
 | 
				
			||||||
 | 
					    android:hint="@string/search_hint"
 | 
				
			||||||
 | 
					    android:label="@string/app_name"
 | 
				
			||||||
 | 
					    >
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</searchable>
 | 
				
			||||||
		Loading…
	
		Reference in New Issue