mirror of
https://github.com/SimpleMobileTools/Simple-File-Manager.git
synced 2025-06-05 22:09:15 +02:00
refresh mimetype activity list on changing sorting
This commit is contained in:
@@ -52,33 +52,12 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
|
|||||||
|
|
||||||
ensureBackgroundThread {
|
ensureBackgroundThread {
|
||||||
getProperFileDirItems { fileDirItems ->
|
getProperFileDirItems { fileDirItems ->
|
||||||
FileDirItem.sorting = config.getFolderSorting(currentMimeType)
|
|
||||||
fileDirItems.sort()
|
|
||||||
val listItems = getListItemsFromFileDirItems(fileDirItems)
|
val listItems = getListItemsFromFileDirItems(fileDirItems)
|
||||||
runOnUiThread {
|
setupAdapter(listItems)
|
||||||
ItemsAdapter(this as SimpleActivity, listItems, this, mimetypes_list, false, items_fastscroller, null) {
|
|
||||||
tryOpenPathIntent((it as ListItem).path, false)
|
|
||||||
}.apply {
|
|
||||||
mimetypes_list.adapter = this
|
|
||||||
}
|
|
||||||
|
|
||||||
if (areSystemAnimationsEnabled) {
|
|
||||||
mimetypes_list.scheduleLayoutAnimation()
|
|
||||||
}
|
|
||||||
|
|
||||||
val dateFormat = config.dateFormat
|
|
||||||
val timeFormat = getTimeFormat()
|
|
||||||
items_fastscroller.setViews(mimetypes_list) {
|
|
||||||
val listItem = getRecyclerAdapter()?.listItems?.getOrNull(it)
|
|
||||||
items_fastscroller.updateBubbleText(listItem?.getBubbleText(this, dateFormat, timeFormat) ?: "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getRecyclerAdapter() = mimetypes_list.adapter as? ItemsAdapter
|
|
||||||
|
|
||||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||||
menuInflater.inflate(R.menu.menu, menu)
|
menuInflater.inflate(R.menu.menu, menu)
|
||||||
setupSearch(menu)
|
setupSearch(menu)
|
||||||
@@ -121,9 +100,63 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
|
|||||||
R.id.reduce_column_count -> reduceColumnCount()
|
R.id.reduce_column_count -> reduceColumnCount()
|
||||||
else -> return super.onOptionsItemSelected(item)
|
else -> return super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun refreshFragment() {}
|
||||||
|
|
||||||
|
override fun deleteFiles(files: ArrayList<FileDirItem>) {}
|
||||||
|
|
||||||
|
override fun selectedPaths(paths: ArrayList<String>) {}
|
||||||
|
|
||||||
|
override fun searchQueryChanged(text: String) {}
|
||||||
|
|
||||||
|
override fun setupDateTimeFormat() {}
|
||||||
|
|
||||||
|
override fun setupFontSize() {}
|
||||||
|
|
||||||
|
override fun toggleFilenameVisibility() {
|
||||||
|
config.displayFilenames = !config.displayFilenames
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun increaseColumnCount() {}
|
||||||
|
|
||||||
|
override fun reduceColumnCount() {}
|
||||||
|
|
||||||
|
override fun finishActMode() {}
|
||||||
|
|
||||||
|
private fun setupSearch(menu: Menu) {
|
||||||
|
val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager
|
||||||
|
searchMenuItem = menu.findItem(R.id.search)
|
||||||
|
(searchMenuItem!!.actionView as SearchView).apply {
|
||||||
|
setSearchableInfo(searchManager.getSearchableInfo(componentName))
|
||||||
|
isSubmitButtonEnabled = false
|
||||||
|
queryHint = getString(R.string.search)
|
||||||
|
setOnQueryTextListener(object : SearchView.OnQueryTextListener {
|
||||||
|
override fun onQueryTextSubmit(query: String) = false
|
||||||
|
|
||||||
|
override fun onQueryTextChange(newText: String): Boolean {
|
||||||
|
if (isSearchOpen) {
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
MenuItemCompat.setOnActionExpandListener(searchMenuItem, object : MenuItemCompat.OnActionExpandListener {
|
||||||
|
override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
|
||||||
|
isSearchOpen = true
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onMenuItemActionCollapse(item: MenuItem?): Boolean {
|
||||||
|
isSearchOpen = false
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
private fun getProperFileDirItems(callback: (ArrayList<FileDirItem>) -> Unit) {
|
private fun getProperFileDirItems(callback: (ArrayList<FileDirItem>) -> Unit) {
|
||||||
val fileDirItems = ArrayList<FileDirItem>()
|
val fileDirItems = ArrayList<FileDirItem>()
|
||||||
val showHidden = config.shouldShowHidden
|
val showHidden = config.shouldShowHidden
|
||||||
@@ -187,6 +220,30 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
|
|||||||
callback(fileDirItems)
|
callback(fileDirItems)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun setupAdapter(listItems: ArrayList<ListItem>) {
|
||||||
|
FileDirItem.sorting = config.getFolderSorting(currentMimeType)
|
||||||
|
listItems.sort()
|
||||||
|
|
||||||
|
runOnUiThread {
|
||||||
|
ItemsAdapter(this as SimpleActivity, listItems, this, mimetypes_list, false, items_fastscroller, null) {
|
||||||
|
tryOpenPathIntent((it as ListItem).path, false)
|
||||||
|
}.apply {
|
||||||
|
mimetypes_list.adapter = this
|
||||||
|
}
|
||||||
|
|
||||||
|
if (areSystemAnimationsEnabled) {
|
||||||
|
mimetypes_list.scheduleLayoutAnimation()
|
||||||
|
}
|
||||||
|
|
||||||
|
val dateFormat = config.dateFormat
|
||||||
|
val timeFormat = getTimeFormat()
|
||||||
|
items_fastscroller.setViews(mimetypes_list) {
|
||||||
|
val listItem = getRecyclerAdapter()?.listItems?.getOrNull(it)
|
||||||
|
items_fastscroller.updateBubbleText(listItem?.getBubbleText(this, dateFormat, timeFormat) ?: "")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun getListItemsFromFileDirItems(fileDirItems: ArrayList<FileDirItem>): ArrayList<ListItem> {
|
private fun getListItemsFromFileDirItems(fileDirItems: ArrayList<FileDirItem>): ArrayList<ListItem> {
|
||||||
val listItems = ArrayList<ListItem>()
|
val listItems = ArrayList<ListItem>()
|
||||||
fileDirItems.forEach {
|
fileDirItems.forEach {
|
||||||
@@ -196,64 +253,17 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
|
|||||||
return listItems
|
return listItems
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupSearch(menu: Menu) {
|
private fun getRecyclerAdapter() = mimetypes_list.adapter as? ItemsAdapter
|
||||||
val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager
|
|
||||||
searchMenuItem = menu.findItem(R.id.search)
|
|
||||||
(searchMenuItem!!.actionView as SearchView).apply {
|
|
||||||
setSearchableInfo(searchManager.getSearchableInfo(componentName))
|
|
||||||
isSubmitButtonEnabled = false
|
|
||||||
queryHint = getString(R.string.search)
|
|
||||||
setOnQueryTextListener(object : SearchView.OnQueryTextListener {
|
|
||||||
override fun onQueryTextSubmit(query: String) = false
|
|
||||||
|
|
||||||
override fun onQueryTextChange(newText: String): Boolean {
|
|
||||||
if (isSearchOpen) {
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
MenuItemCompat.setOnActionExpandListener(searchMenuItem, object : MenuItemCompat.OnActionExpandListener {
|
|
||||||
override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
|
|
||||||
isSearchOpen = true
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onMenuItemActionCollapse(item: MenuItem?): Boolean {
|
|
||||||
isSearchOpen = false
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun showSortingDialog() {
|
private fun showSortingDialog() {
|
||||||
ChangeSortingDialog(this, currentMimeType) {
|
ChangeSortingDialog(this, currentMimeType) {
|
||||||
|
val listItems = getRecyclerAdapter()?.listItems
|
||||||
|
if (listItems != null) {
|
||||||
|
setupAdapter(listItems as ArrayList<ListItem>)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun refreshFragment() {}
|
|
||||||
|
|
||||||
override fun deleteFiles(files: ArrayList<FileDirItem>) {}
|
|
||||||
|
|
||||||
override fun selectedPaths(paths: ArrayList<String>) {}
|
|
||||||
|
|
||||||
override fun searchQueryChanged(text: String) {}
|
|
||||||
|
|
||||||
override fun setupDateTimeFormat() {}
|
|
||||||
|
|
||||||
override fun setupFontSize() {}
|
|
||||||
|
|
||||||
override fun toggleFilenameVisibility() {
|
|
||||||
config.displayFilenames = !config.displayFilenames
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun increaseColumnCount() {}
|
|
||||||
|
|
||||||
override fun reduceColumnCount() {}
|
|
||||||
|
|
||||||
override fun finishActMode() {}
|
|
||||||
|
|
||||||
private fun changeViewType() {
|
private fun changeViewType() {
|
||||||
ChangeViewTypeDialog(this, currentMimeType, true) { }
|
ChangeViewTypeDialog(this, currentMimeType, true) { }
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user