mirror of
https://github.com/SimpleMobileTools/Simple-File-Manager.git
synced 2025-06-05 22:09:15 +02:00
adding Search at the mimetype activity
This commit is contained in:
@@ -32,6 +32,7 @@ import java.util.*
|
||||
class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
|
||||
private var isSearchOpen = false
|
||||
private var currentMimeType = ""
|
||||
private var lastSearchedText = ""
|
||||
private var searchMenuItem: MenuItem? = null
|
||||
private var zoomListener: MyRecyclerView.MyZoomListener? = null
|
||||
private var storedItems = ArrayList<ListItem>()
|
||||
@@ -124,7 +125,44 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
|
||||
|
||||
override fun selectedPaths(paths: ArrayList<String>) {}
|
||||
|
||||
override fun searchQueryChanged(text: String) {}
|
||||
override fun searchQueryChanged(text: String) {
|
||||
val searchText = text.trim()
|
||||
lastSearchedText = searchText
|
||||
when {
|
||||
searchText.isEmpty() -> {
|
||||
mimetypes_list.beVisible()
|
||||
getRecyclerAdapter()?.updateItems(storedItems)
|
||||
mimetypes_placeholder.beGone()
|
||||
mimetypes_placeholder_2.beGone()
|
||||
}
|
||||
searchText.length == 1 -> {
|
||||
mimetypes_list.beGone()
|
||||
mimetypes_placeholder.beVisible()
|
||||
mimetypes_placeholder_2.beVisible()
|
||||
}
|
||||
else -> {
|
||||
ensureBackgroundThread {
|
||||
if (lastSearchedText != searchText) {
|
||||
return@ensureBackgroundThread
|
||||
}
|
||||
|
||||
val listItems = storedItems.filter { it.name.contains(searchText, true) } as ArrayList<ListItem>
|
||||
|
||||
runOnUiThread {
|
||||
getRecyclerAdapter()?.updateItems(listItems, text)
|
||||
mimetypes_list.beVisibleIf(listItems.isNotEmpty())
|
||||
mimetypes_placeholder.beVisibleIf(listItems.isEmpty())
|
||||
mimetypes_placeholder_2.beGone()
|
||||
|
||||
mimetypes_list.onGlobalLayout {
|
||||
items_fastscroller.setScrollToY(mimetypes_list.computeVerticalScrollOffset())
|
||||
calculateContentHeight(listItems)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun setupDateTimeFormat() {}
|
||||
|
||||
@@ -163,6 +201,7 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
|
||||
|
||||
override fun onQueryTextChange(newText: String): Boolean {
|
||||
if (isSearchOpen) {
|
||||
searchQueryChanged(newText)
|
||||
}
|
||||
return true
|
||||
}
|
||||
@@ -172,16 +211,32 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
|
||||
MenuItemCompat.setOnActionExpandListener(searchMenuItem, object : MenuItemCompat.OnActionExpandListener {
|
||||
override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
|
||||
isSearchOpen = true
|
||||
searchOpened()
|
||||
return true
|
||||
}
|
||||
|
||||
override fun onMenuItemActionCollapse(item: MenuItem?): Boolean {
|
||||
isSearchOpen = false
|
||||
searchClosed()
|
||||
return true
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fun searchOpened() {
|
||||
isSearchOpen = true
|
||||
lastSearchedText = ""
|
||||
}
|
||||
|
||||
fun searchClosed() {
|
||||
isSearchOpen = false
|
||||
lastSearchedText = ""
|
||||
|
||||
mimetypes_list.beVisible()
|
||||
mimetypes_placeholder.beGone()
|
||||
mimetypes_placeholder_2.beGone()
|
||||
}
|
||||
|
||||
private fun getProperFileDirItems(callback: (ArrayList<FileDirItem>) -> Unit) {
|
||||
val fileDirItems = ArrayList<FileDirItem>()
|
||||
val showHidden = config.shouldShowHidden
|
||||
|
@@ -28,7 +28,8 @@ import java.io.File
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet), ItemOperationsListener, Breadcrumbs.BreadcrumbsListener {
|
||||
class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet), ItemOperationsListener,
|
||||
Breadcrumbs.BreadcrumbsListener {
|
||||
private var showHidden = false
|
||||
private var skipItemUpdating = false
|
||||
private var isSearchOpen = false
|
||||
@@ -118,8 +119,10 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF
|
||||
breadcrumbs.updateFontSize(context!!.getTextSize())
|
||||
}
|
||||
|
||||
ItemsAdapter(activity as SimpleActivity, storedItems, this, items_list, isPickMultipleIntent, items_fastscroller,
|
||||
items_swipe_refresh) {
|
||||
ItemsAdapter(
|
||||
activity as SimpleActivity, storedItems, this, items_list, isPickMultipleIntent, items_fastscroller,
|
||||
items_swipe_refresh
|
||||
) {
|
||||
if ((it as? ListItem)?.isSectionTitle == true) {
|
||||
openDirectory(it.mPath)
|
||||
searchClosed()
|
||||
@@ -264,24 +267,24 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF
|
||||
override fun searchQueryChanged(text: String) {
|
||||
val searchText = text.trim()
|
||||
lastSearchedText = searchText
|
||||
ensureBackgroundThread {
|
||||
if (context == null) {
|
||||
return@ensureBackgroundThread
|
||||
}
|
||||
if (context == null) {
|
||||
return
|
||||
}
|
||||
|
||||
when {
|
||||
searchText.isEmpty() -> activity?.runOnUiThread {
|
||||
items_list.beVisible()
|
||||
getRecyclerAdapter()?.updateItems(storedItems)
|
||||
items_placeholder.beGone()
|
||||
items_placeholder_2.beGone()
|
||||
}
|
||||
searchText.length == 1 -> activity?.runOnUiThread {
|
||||
items_list.beGone()
|
||||
items_placeholder.beVisible()
|
||||
items_placeholder_2.beVisible()
|
||||
}
|
||||
else -> {
|
||||
when {
|
||||
searchText.isEmpty() -> {
|
||||
items_list.beVisible()
|
||||
getRecyclerAdapter()?.updateItems(storedItems)
|
||||
items_placeholder.beGone()
|
||||
items_placeholder_2.beGone()
|
||||
}
|
||||
searchText.length == 1 -> {
|
||||
items_list.beGone()
|
||||
items_placeholder.beVisible()
|
||||
items_placeholder_2.beVisible()
|
||||
}
|
||||
else -> {
|
||||
ensureBackgroundThread {
|
||||
val files = searchFiles(searchText, currentPath)
|
||||
files.sortBy { it.getParentPath() }
|
||||
|
||||
|
@@ -5,6 +5,36 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/mimetypes_placeholder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:alpha="0.8"
|
||||
android:gravity="center"
|
||||
android:paddingStart="@dimen/activity_margin"
|
||||
android:paddingTop="@dimen/activity_margin"
|
||||
android:paddingEnd="@dimen/activity_margin"
|
||||
android:text="@string/no_items_found"
|
||||
android:textSize="@dimen/bigger_text_size"
|
||||
android:textStyle="italic"
|
||||
android:visibility="gone" />
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/mimetypes_placeholder_2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/mimetypes_placeholder"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:alpha="0.8"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:gravity="center"
|
||||
android:padding="@dimen/activity_margin"
|
||||
android:text="@string/type_2_characters"
|
||||
android:textSize="@dimen/bigger_text_size"
|
||||
android:textStyle="italic"
|
||||
android:visibility="gone" />
|
||||
|
||||
<com.simplemobiletools.commons.views.MyRecyclerView
|
||||
android:id="@+id/mimetypes_list"
|
||||
android:layout_width="match_parent"
|
||||
|
Reference in New Issue
Block a user