Skip to content

Commit b426805

Browse files
committed
list the proper files at mimetype activity
1 parent 8fb2f56 commit b426805

File tree

4 files changed

+86
-23
lines changed

4 files changed

+86
-23
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@
5454
</intent-filter>
5555
</activity>
5656

57-
<activity android:name=".activities.MimeTypesActivity" />
57+
<activity
58+
android:name=".activities.MimeTypesActivity"
59+
android:parentActivityName=".activities.MainActivity" />
5860

5961
<activity
6062
android:name=".activities.ReadTextActivity"

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

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,18 @@ import com.simplemobiletools.commons.helpers.VIEW_TYPE_GRID
1313
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
1414
import com.simplemobiletools.commons.models.FileDirItem
1515
import com.simplemobiletools.filemanager.pro.R
16+
import com.simplemobiletools.filemanager.pro.adapters.ItemsAdapter
1617
import com.simplemobiletools.filemanager.pro.dialogs.ChangeSortingDialog
1718
import com.simplemobiletools.filemanager.pro.dialogs.ChangeViewTypeDialog
1819
import com.simplemobiletools.filemanager.pro.extensions.config
1920
import com.simplemobiletools.filemanager.pro.helpers.*
21+
import com.simplemobiletools.filemanager.pro.interfaces.ItemOperationsListener
2022
import com.simplemobiletools.filemanager.pro.models.ListItem
23+
import kotlinx.android.synthetic.main.activity_mimetypes.*
24+
import kotlinx.android.synthetic.main.items_fragment.view.*
2125
import java.util.*
2226

23-
class MimeTypesActivity : SimpleActivity() {
27+
class MimeTypesActivity : SimpleActivity(), ItemOperationsListener {
2428
private var isSearchOpen = false
2529
private var searchMenuItem: MenuItem? = null
2630
private var currentMimeType = ""
@@ -50,14 +54,30 @@ class MimeTypesActivity : SimpleActivity() {
5054
FileDirItem.sorting = config.getFolderSorting(currentMimeType)
5155
fileDirItems.sort()
5256
val listItems = getListItemsFromFileDirItems(fileDirItems)
53-
5457
runOnUiThread {
58+
ItemsAdapter(this as SimpleActivity, listItems, this, mimetypes_list, false, items_fastscroller, null) {
59+
60+
}.apply {
61+
mimetypes_list.adapter = this
62+
}
63+
64+
if (areSystemAnimationsEnabled) {
65+
mimetypes_list.scheduleLayoutAnimation()
66+
}
5567

68+
val dateFormat = config.dateFormat
69+
val timeFormat = getTimeFormat()
70+
items_fastscroller.setViews(mimetypes_list) {
71+
val listItem = getRecyclerAdapter()?.listItems?.getOrNull(it)
72+
items_fastscroller.updateBubbleText(listItem?.getBubbleText(this, dateFormat, timeFormat) ?: "")
73+
}
5674
}
5775
}
5876
}
5977
}
6078

79+
private fun getRecyclerAdapter() = mimetypes_list.adapter as? ItemsAdapter
80+
6181
override fun onCreateOptionsMenu(menu: Menu): Boolean {
6282
menuInflater.inflate(R.menu.menu, menu)
6383
setupSearch(menu)
@@ -105,6 +125,7 @@ class MimeTypesActivity : SimpleActivity() {
105125

106126
private fun getProperFileDirItems(callback: (ArrayList<FileDirItem>) -> Unit) {
107127
val fileDirItems = ArrayList<FileDirItem>()
128+
val showHidden = config.shouldShowHidden
108129
val uri = MediaStore.Files.getContentUri("external")
109130
val projection = arrayOf(
110131
MediaStore.Files.FileColumns.MIME_TYPE,
@@ -118,8 +139,12 @@ class MimeTypesActivity : SimpleActivity() {
118139
queryCursor(uri, projection) { cursor ->
119140
try {
120141
val fullMimetype = cursor.getStringValue(MediaStore.Files.FileColumns.MIME_TYPE)?.lowercase(Locale.getDefault()) ?: return@queryCursor
121-
val path = cursor.getStringValue(MediaStore.Files.FileColumns.DATA)
122142
val name = cursor.getStringValue(MediaStore.Files.FileColumns.DISPLAY_NAME)
143+
if (!showHidden && name.startsWith(".")) {
144+
return@queryCursor
145+
}
146+
147+
val path = cursor.getStringValue(MediaStore.Files.FileColumns.DATA)
123148
val size = cursor.getLongValue(MediaStore.Files.FileColumns.SIZE)
124149
val lastModified = cursor.getLongValue(MediaStore.Files.FileColumns.DATE_MODIFIED) * 1000
125150

@@ -206,13 +231,27 @@ class MimeTypesActivity : SimpleActivity() {
206231
}
207232
}
208233

209-
private fun toggleFilenameVisibility() {
234+
override fun refreshFragment() {}
235+
236+
override fun deleteFiles(files: ArrayList<FileDirItem>) {}
237+
238+
override fun selectedPaths(paths: ArrayList<String>) {}
239+
240+
override fun searchQueryChanged(text: String) {}
241+
242+
override fun setupDateTimeFormat() {}
243+
244+
override fun setupFontSize() {}
245+
246+
override fun toggleFilenameVisibility() {
210247
config.displayFilenames = !config.displayFilenames
211248
}
212249

213-
private fun increaseColumnCount() {}
250+
override fun increaseColumnCount() {}
251+
252+
override fun reduceColumnCount() {}
214253

215-
private fun reduceColumnCount() {}
254+
override fun finishActMode() {}
216255

217256
private fun changeViewType() {
218257
ChangeViewTypeDialog(this, currentMimeType, true) { }

app/src/main/kotlin/com/simplemobiletools/filemanager/pro/adapters/ItemsAdapter.kt

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,10 @@ import java.util.zip.ZipEntry
5555
import java.util.zip.ZipFile
5656
import java.util.zip.ZipOutputStream
5757

58-
class ItemsAdapter(activity: SimpleActivity, var listItems: MutableList<ListItem>, val listener: ItemOperationsListener?, recyclerView: MyRecyclerView,
59-
val isPickMultipleIntent: Boolean, fastScroller: FastScroller?, val swipeRefreshLayout: SwipeRefreshLayout, itemClick: (Any) -> Unit) :
58+
class ItemsAdapter(
59+
activity: SimpleActivity, var listItems: MutableList<ListItem>, val listener: ItemOperationsListener?, recyclerView: MyRecyclerView,
60+
val isPickMultipleIntent: Boolean, fastScroller: FastScroller?, val swipeRefreshLayout: SwipeRefreshLayout?, itemClick: (Any) -> Unit
61+
) :
6062
MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) {
6163

6264
private val TYPE_FILE_DIR = 1
@@ -136,12 +138,12 @@ class ItemsAdapter(activity: SimpleActivity, var listItems: MutableList<ListItem
136138
override fun getItemKeyPosition(key: Int) = listItems.indexOfFirst { it.path.hashCode() == key }
137139

138140
override fun onActionModeCreated() {
139-
swipeRefreshLayout.isRefreshing = false
140-
swipeRefreshLayout.isEnabled = false
141+
swipeRefreshLayout?.isRefreshing = false
142+
swipeRefreshLayout?.isEnabled = false
141143
}
142144

143145
override fun onActionModeDestroyed() {
144-
swipeRefreshLayout.isEnabled = true
146+
swipeRefreshLayout?.isEnabled = true
145147
}
146148

147149
override fun getItemViewType(position: Int): Int {
@@ -363,7 +365,8 @@ class ItemsAdapter(activity: SimpleActivity, var listItems: MutableList<ListItem
363365
RadioItem(OPEN_AS_IMAGE, res.getString(R.string.image_file)),
364366
RadioItem(OPEN_AS_AUDIO, res.getString(R.string.audio_file)),
365367
RadioItem(OPEN_AS_VIDEO, res.getString(R.string.video_file)),
366-
RadioItem(OPEN_AS_OTHER, res.getString(R.string.other_file)))
368+
RadioItem(OPEN_AS_OTHER, res.getString(R.string.other_file))
369+
)
367370

368371
RadioGroupDialog(activity, items) {
369372
activity.tryOpenPathIntent(getFirstSelectedItemPath(), false, it as Int)
@@ -389,7 +392,8 @@ class ItemsAdapter(activity: SimpleActivity, var listItems: MutableList<ListItem
389392
files.forEach { sourceFileDir ->
390393
val sourceFile = File(sourceFileDir.path)
391394
if (activity.getDoesFilePathExist(source) && activity.getIsPathDirectory(source) &&
392-
sourceFile.list()?.isEmpty() == true && sourceFile.getProperSize(true) == 0L && sourceFile.getFileCount(true) == 0) {
395+
sourceFile.list()?.isEmpty() == true && sourceFile.getProperSize(true) == 0L && sourceFile.getFileCount(true) == 0
396+
) {
393397
val sourceFolder = sourceFile.toFileDirItem(activity)
394398
activity.deleteFile(sourceFolder, true) {
395399
listener?.refreshFragment()
@@ -811,7 +815,8 @@ class ItemsAdapter(activity: SimpleActivity, var listItems: MutableList<ListItem
811815
return activity.resources.getQuantityString(R.plurals.items, children, children)
812816
}
813817

814-
private fun getOTGPublicPath(itemToLoad: String) = "${baseConfig.OTGTreeUri}/document/${baseConfig.OTGPartition}%3A${itemToLoad.substring(baseConfig.OTGPath.length).replace("/", "%2F")}"
818+
private fun getOTGPublicPath(itemToLoad: String) =
819+
"${baseConfig.OTGTreeUri}/document/${baseConfig.OTGPartition}%3A${itemToLoad.substring(baseConfig.OTGPath.length).replace("/", "%2F")}"
815820

816821
private fun getImagePathToLoad(path: String): Any {
817822
var itemToLoad = if (path.endsWith(".apk", true)) {
Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,27 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<com.simplemobiletools.commons.views.MyRecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
2+
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:app="http://schemas.android.com/apk/res-auto"
4-
android:id="@+id/mimetypes_list"
5-
android:layout_width="match_parent"
6-
android:layout_height="match_parent"
7-
android:clipToPadding="false"
8-
android:layoutAnimation="@anim/layout_animation"
9-
android:scrollbars="none"
10-
app:layoutManager="com.simplemobiletools.commons.views.MyGridLayoutManager" />
4+
android:id="@+id/mimetypes_holder"
5+
android:layout_width="wrap_content"
6+
android:layout_height="wrap_content">
7+
8+
<com.simplemobiletools.commons.views.MyRecyclerView
9+
android:id="@+id/mimetypes_list"
10+
android:layout_width="match_parent"
11+
android:layout_height="match_parent"
12+
android:clipToPadding="false"
13+
android:layoutAnimation="@anim/layout_animation"
14+
android:scrollbars="none"
15+
app:layoutManager="com.simplemobiletools.commons.views.MyGridLayoutManager" />
16+
17+
<com.simplemobiletools.commons.views.FastScroller
18+
android:id="@+id/items_fastscroller"
19+
android:layout_width="wrap_content"
20+
android:layout_height="match_parent"
21+
android:layout_alignParentEnd="true"
22+
android:paddingStart="@dimen/normal_margin">
23+
24+
<include layout="@layout/fastscroller_handle_vertical" />
25+
26+
</com.simplemobiletools.commons.views.FastScroller>
27+
</RelativeLayout>

0 commit comments

Comments
 (0)