@@ -14,12 +14,14 @@ import com.simplemobiletools.commons.helpers.ensureBackgroundThread
1414import com.simplemobiletools.commons.helpers.isOreoPlus
1515import com.simplemobiletools.commons.models.FileDirItem
1616import com.simplemobiletools.commons.views.MyGridLayoutManager
17+ import com.simplemobiletools.commons.views.MyRecyclerView
1718import com.simplemobiletools.filemanager.pro.R
1819import com.simplemobiletools.filemanager.pro.activities.MainActivity
1920import com.simplemobiletools.filemanager.pro.activities.SimpleActivity
2021import com.simplemobiletools.filemanager.pro.adapters.ItemsAdapter
2122import com.simplemobiletools.filemanager.pro.extensions.config
2223import com.simplemobiletools.filemanager.pro.extensions.isPathOnRoot
24+ import com.simplemobiletools.filemanager.pro.helpers.MAX_COLUMN_COUNT
2325import com.simplemobiletools.filemanager.pro.helpers.RootHelpers
2426import com.simplemobiletools.filemanager.pro.interfaces.ItemOperationsListener
2527import com.simplemobiletools.filemanager.pro.models.ListItem
@@ -30,6 +32,7 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
3032 private val RECENTS_LIMIT = 50
3133 private var filesIgnoringSearch = ArrayList <ListItem >()
3234 private var lastSearchedText = " "
35+ private var zoomListener: MyRecyclerView .MyZoomListener ? = null
3336
3437 override fun setupFragment (activity : SimpleActivity ) {
3538 if (this .activity == null ) {
@@ -64,6 +67,7 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
6467 ItemsAdapter (activity as SimpleActivity , recents, this , recents_list, isPickMultipleIntent, recents_swipe_refresh, false ) {
6568 clickedPath((it as FileDirItem ).path)
6669 }.apply {
70+ setupZoomListener(zoomListener)
6771 recents_list.adapter = this
6872 }
6973
@@ -95,6 +99,7 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
9599
96100 val oldItems = (recents_list.adapter as ? ItemsAdapter )?.listItems?.toMutableList() as ArrayList <ListItem >
97101 recents_list.adapter = null
102+ initZoomListener()
98103 addItems(oldItems, true )
99104 }
100105
@@ -116,6 +121,30 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
116121 private fun setupListLayoutManager () {
117122 val layoutManager = recents_list.layoutManager as MyGridLayoutManager
118123 layoutManager.spanCount = 1
124+ zoomListener = null
125+ }
126+
127+ private fun initZoomListener () {
128+ if (context?.config?.getFolderViewType(currentPath) == VIEW_TYPE_GRID ) {
129+ val layoutManager = recents_list.layoutManager as MyGridLayoutManager
130+ zoomListener = object : MyRecyclerView .MyZoomListener {
131+ override fun zoomIn () {
132+ if (layoutManager.spanCount > 1 ) {
133+ reduceColumnCount()
134+ getRecyclerAdapter()?.finishActMode()
135+ }
136+ }
137+
138+ override fun zoomOut () {
139+ if (layoutManager.spanCount < MAX_COLUMN_COUNT ) {
140+ increaseColumnCount()
141+ getRecyclerAdapter()?.finishActMode()
142+ }
143+ }
144+ }
145+ } else {
146+ zoomListener = null
147+ }
119148 }
120149
121150 private fun getRecents (callback : (recents: ArrayList <ListItem >) -> Unit ) {
@@ -176,17 +205,17 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
176205 getRecyclerAdapter()?.updateDisplayFilenamesInGrid()
177206 }
178207
179- override fun increaseColumnCount () {
208+ private fun increaseColumnCount () {
180209 if (currentViewType == VIEW_TYPE_GRID ) {
181210 context!! .config.fileColumnCnt + = 1
182- columnCountChanged ()
211+ (activity as ? MainActivity )?.updateFragmentColumnCounts ()
183212 }
184213 }
185214
186- override fun reduceColumnCount () {
215+ private fun reduceColumnCount () {
187216 if (currentViewType == VIEW_TYPE_GRID ) {
188217 context!! .config.fileColumnCnt - = 1
189- columnCountChanged ()
218+ (activity as ? MainActivity )?.updateFragmentColumnCounts ()
190219 }
191220 }
192221
0 commit comments