diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/ItemsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/ItemsFragment.kt index 528dde370..960b3ccde 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/ItemsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/ItemsFragment.kt @@ -125,7 +125,7 @@ class ItemsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerF breadcrumbs.updateFontSize(context!!.getTextSize()) } - ItemsAdapter(activity as SimpleActivity, storedItems, this@ItemsFragment, items_list, isPickMultipleIntent, items_fastscroller, + ItemsAdapter(activity as SimpleActivity, storedItems, this, items_list, isPickMultipleIntent, items_fastscroller, items_swipe_refresh) { if ((it as? ListItem)?.isSectionTitle == true) { openDirectory(it.mPath) diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/RecentsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/RecentsFragment.kt index c2f899f17..1dacd19eb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/RecentsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/fragments/RecentsFragment.kt @@ -3,32 +3,65 @@ package com.simplemobiletools.filemanager.pro.fragments import android.content.Context import android.provider.MediaStore import android.util.AttributeSet -import com.simplemobiletools.commons.extensions.getIntValue +import com.simplemobiletools.commons.extensions.getLongValue import com.simplemobiletools.commons.extensions.getStringValue +import com.simplemobiletools.commons.helpers.ensureBackgroundThread import com.simplemobiletools.commons.models.FileDirItem import com.simplemobiletools.filemanager.pro.activities.SimpleActivity +import com.simplemobiletools.filemanager.pro.adapters.ItemsAdapter +import com.simplemobiletools.filemanager.pro.extensions.tryOpenPathIntent import com.simplemobiletools.filemanager.pro.interfaces.ItemOperationsListener +import com.simplemobiletools.filemanager.pro.models.ListItem +import kotlinx.android.synthetic.main.recents_fragment.view.* import java.util.* class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet), ItemOperationsListener { - override fun setupFragment(activity: SimpleActivity) {} + private var activity: SimpleActivity? = null + + override fun setupFragment(activity: SimpleActivity) { + this.activity = activity + ensureBackgroundThread { + getRecents { recents -> + ItemsAdapter(activity, recents, this, recents_list, false, null, recents_swipe_refresh) { + activity.tryOpenPathIntent((it as FileDirItem).path, false) + }.apply { + recents_list.adapter = this + } + } + } + } override fun setupColors(textColor: Int, adjustedPrimaryColor: Int) {} - private fun getRecents() { + private fun getRecents(callback: (recents: ArrayList) -> Unit) { val uri = MediaStore.Files.getContentUri("external") - val projection = arrayOf(MediaStore.Files.FileColumns.DATA, MediaStore.Files.FileColumns.DATE_MODIFIED) - val sortOrder = "${MediaStore.Files.FileColumns.DATE_MODIFIED} DESC LIMIT 20" + val projection = arrayOf( + MediaStore.Files.FileColumns.DATA, + MediaStore.Files.FileColumns.DISPLAY_NAME, + MediaStore.Files.FileColumns.DATE_MODIFIED, + MediaStore.Files.FileColumns.SIZE + ) + + val sortOrder = "${MediaStore.Files.FileColumns.DATE_MODIFIED} DESC LIMIT 50" val cursor = context?.contentResolver?.query(uri, projection, null, null, sortOrder) + val listItems = arrayListOf() cursor?.use { if (cursor.moveToFirst()) { do { val path = cursor.getStringValue(MediaStore.Files.FileColumns.DATA) - val modified = cursor.getIntValue(MediaStore.Files.FileColumns.DATE_MODIFIED) + val name = cursor.getStringValue(MediaStore.Files.FileColumns.DISPLAY_NAME) + val size = cursor.getLongValue(MediaStore.Files.FileColumns.SIZE) + val modified = cursor.getLongValue(MediaStore.Files.FileColumns.DATE_MODIFIED) * 1000 + val fileDirItem = ListItem(path, name, false, 0, size, modified, false) + listItems.add(fileDirItem) } while (cursor.moveToNext()) } } + + activity?.runOnUiThread { + callback(listItems) + } } override fun refreshItems() {} diff --git a/app/src/main/res/layout/recents_fragment.xml b/app/src/main/res/layout/recents_fragment.xml index 4abd82114..a71d17dce 100644 --- a/app/src/main/res/layout/recents_fragment.xml +++ b/app/src/main/res/layout/recents_fragment.xml @@ -19,13 +19,18 @@ android:textStyle="italic" android:visibility="gone" /> - + android:layout_height="wrap_content"> + +