Skip to content

Commit e000962

Browse files
committed
refresh mimetype activity list on changing sorting
1 parent c249b33 commit e000962

File tree

1 file changed

+84
-74
lines changed

1 file changed

+84
-74
lines changed

app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MimeTypesActivity.kt

Lines changed: 84 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -52,33 +52,12 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
5252

5353
ensureBackgroundThread {
5454
getProperFileDirItems { fileDirItems ->
55-
FileDirItem.sorting = config.getFolderSorting(currentMimeType)
56-
fileDirItems.sort()
5755
val listItems = getListItemsFromFileDirItems(fileDirItems)
58-
runOnUiThread {
59-
ItemsAdapter(this as SimpleActivity, listItems, this, mimetypes_list, false, items_fastscroller, null) {
60-
tryOpenPathIntent((it as ListItem).path, false)
61-
}.apply {
62-
mimetypes_list.adapter = this
63-
}
64-
65-
if (areSystemAnimationsEnabled) {
66-
mimetypes_list.scheduleLayoutAnimation()
67-
}
68-
69-
val dateFormat = config.dateFormat
70-
val timeFormat = getTimeFormat()
71-
items_fastscroller.setViews(mimetypes_list) {
72-
val listItem = getRecyclerAdapter()?.listItems?.getOrNull(it)
73-
items_fastscroller.updateBubbleText(listItem?.getBubbleText(this, dateFormat, timeFormat) ?: "")
74-
}
75-
}
56+
setupAdapter(listItems)
7657
}
7758
}
7859
}
7960

80-
private fun getRecyclerAdapter() = mimetypes_list.adapter as? ItemsAdapter
81-
8261
override fun onCreateOptionsMenu(menu: Menu): Boolean {
8362
menuInflater.inflate(R.menu.menu, menu)
8463
setupSearch(menu)
@@ -121,9 +100,63 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
121100
R.id.reduce_column_count -> reduceColumnCount()
122101
else -> return super.onOptionsItemSelected(item)
123102
}
103+
124104
return true
125105
}
126106

107+
override fun refreshFragment() {}
108+
109+
override fun deleteFiles(files: ArrayList<FileDirItem>) {}
110+
111+
override fun selectedPaths(paths: ArrayList<String>) {}
112+
113+
override fun searchQueryChanged(text: String) {}
114+
115+
override fun setupDateTimeFormat() {}
116+
117+
override fun setupFontSize() {}
118+
119+
override fun toggleFilenameVisibility() {
120+
config.displayFilenames = !config.displayFilenames
121+
}
122+
123+
override fun increaseColumnCount() {}
124+
125+
override fun reduceColumnCount() {}
126+
127+
override fun finishActMode() {}
128+
129+
private fun setupSearch(menu: Menu) {
130+
val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager
131+
searchMenuItem = menu.findItem(R.id.search)
132+
(searchMenuItem!!.actionView as SearchView).apply {
133+
setSearchableInfo(searchManager.getSearchableInfo(componentName))
134+
isSubmitButtonEnabled = false
135+
queryHint = getString(R.string.search)
136+
setOnQueryTextListener(object : SearchView.OnQueryTextListener {
137+
override fun onQueryTextSubmit(query: String) = false
138+
139+
override fun onQueryTextChange(newText: String): Boolean {
140+
if (isSearchOpen) {
141+
}
142+
return true
143+
}
144+
})
145+
}
146+
147+
MenuItemCompat.setOnActionExpandListener(searchMenuItem, object : MenuItemCompat.OnActionExpandListener {
148+
override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
149+
isSearchOpen = true
150+
return true
151+
}
152+
153+
override fun onMenuItemActionCollapse(item: MenuItem?): Boolean {
154+
isSearchOpen = false
155+
return true
156+
}
157+
})
158+
}
159+
127160
private fun getProperFileDirItems(callback: (ArrayList<FileDirItem>) -> Unit) {
128161
val fileDirItems = ArrayList<FileDirItem>()
129162
val showHidden = config.shouldShowHidden
@@ -187,6 +220,30 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
187220
callback(fileDirItems)
188221
}
189222

223+
private fun setupAdapter(listItems: ArrayList<ListItem>) {
224+
FileDirItem.sorting = config.getFolderSorting(currentMimeType)
225+
listItems.sort()
226+
227+
runOnUiThread {
228+
ItemsAdapter(this as SimpleActivity, listItems, this, mimetypes_list, false, items_fastscroller, null) {
229+
tryOpenPathIntent((it as ListItem).path, false)
230+
}.apply {
231+
mimetypes_list.adapter = this
232+
}
233+
234+
if (areSystemAnimationsEnabled) {
235+
mimetypes_list.scheduleLayoutAnimation()
236+
}
237+
238+
val dateFormat = config.dateFormat
239+
val timeFormat = getTimeFormat()
240+
items_fastscroller.setViews(mimetypes_list) {
241+
val listItem = getRecyclerAdapter()?.listItems?.getOrNull(it)
242+
items_fastscroller.updateBubbleText(listItem?.getBubbleText(this, dateFormat, timeFormat) ?: "")
243+
}
244+
}
245+
}
246+
190247
private fun getListItemsFromFileDirItems(fileDirItems: ArrayList<FileDirItem>): ArrayList<ListItem> {
191248
val listItems = ArrayList<ListItem>()
192249
fileDirItems.forEach {
@@ -196,64 +253,17 @@ class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
196253
return listItems
197254
}
198255

199-
private fun setupSearch(menu: Menu) {
200-
val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager
201-
searchMenuItem = menu.findItem(R.id.search)
202-
(searchMenuItem!!.actionView as SearchView).apply {
203-
setSearchableInfo(searchManager.getSearchableInfo(componentName))
204-
isSubmitButtonEnabled = false
205-
queryHint = getString(R.string.search)
206-
setOnQueryTextListener(object : SearchView.OnQueryTextListener {
207-
override fun onQueryTextSubmit(query: String) = false
208-
209-
override fun onQueryTextChange(newText: String): Boolean {
210-
if (isSearchOpen) {
211-
}
212-
return true
213-
}
214-
})
215-
}
216-
217-
MenuItemCompat.setOnActionExpandListener(searchMenuItem, object : MenuItemCompat.OnActionExpandListener {
218-
override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
219-
isSearchOpen = true
220-
return true
221-
}
222-
223-
override fun onMenuItemActionCollapse(item: MenuItem?): Boolean {
224-
isSearchOpen = false
225-
return true
226-
}
227-
})
228-
}
256+
private fun getRecyclerAdapter() = mimetypes_list.adapter as? ItemsAdapter
229257

230258
private fun showSortingDialog() {
231259
ChangeSortingDialog(this, currentMimeType) {
260+
val listItems = getRecyclerAdapter()?.listItems
261+
if (listItems != null) {
262+
setupAdapter(listItems as ArrayList<ListItem>)
263+
}
232264
}
233265
}
234266

235-
override fun refreshFragment() {}
236-
237-
override fun deleteFiles(files: ArrayList<FileDirItem>) {}
238-
239-
override fun selectedPaths(paths: ArrayList<String>) {}
240-
241-
override fun searchQueryChanged(text: String) {}
242-
243-
override fun setupDateTimeFormat() {}
244-
245-
override fun setupFontSize() {}
246-
247-
override fun toggleFilenameVisibility() {
248-
config.displayFilenames = !config.displayFilenames
249-
}
250-
251-
override fun increaseColumnCount() {}
252-
253-
override fun reduceColumnCount() {}
254-
255-
override fun finishActMode() {}
256-
257267
private fun changeViewType() {
258268
ChangeViewTypeDialog(this, currentMimeType, true) { }
259269
}

0 commit comments

Comments
 (0)