tweak the itemsAdapter

This commit is contained in:
tibbi
2017-03-11 12:04:09 +01:00
parent a0e4205777
commit 004d7e656c
2 changed files with 48 additions and 26 deletions

View File

@ -10,10 +10,7 @@ import android.support.v4.app.ActivityCompat
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
import com.simplemobiletools.commons.dialogs.StoragePickerDialog import com.simplemobiletools.commons.dialogs.StoragePickerDialog
import com.simplemobiletools.commons.extensions.getInternalStoragePath import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.extensions.hasWriteStoragePermission
import com.simplemobiletools.commons.extensions.storeStoragePaths
import com.simplemobiletools.commons.extensions.toast
import com.simplemobiletools.commons.helpers.LICENSE_KOTLIN import com.simplemobiletools.commons.helpers.LICENSE_KOTLIN
import com.simplemobiletools.commons.helpers.LICENSE_MULTISELECT import com.simplemobiletools.commons.helpers.LICENSE_MULTISELECT
import com.simplemobiletools.commons.models.FileDirItem import com.simplemobiletools.commons.models.FileDirItem
@ -48,6 +45,11 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
storeStoragePaths() storeStoragePaths()
} }
override fun onResume() {
super.onResume()
updateTextColors(main_screen)
}
override fun onDestroy() { override fun onDestroy() {
super.onDestroy() super.onDestroy()
config.isFirstRun = false config.isFirstRun = false
@ -78,10 +80,11 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
mScrollStates.put(latestFragment!!.mPath.trimEnd('/'), latestFragment!!.getScrollState()) mScrollStates.put(latestFragment!!.mPath.trimEnd('/'), latestFragment!!.getScrollState())
} }
latestFragment = ItemsFragment() latestFragment = ItemsFragment().apply {
latestFragment!!.arguments = bundle arguments = bundle
latestFragment!!.setListener(this@MainActivity) setListener(this@MainActivity)
supportFragmentManager.beginTransaction().replace(R.id.fragment_holder, latestFragment).addToBackStack(path).commitAllowingStateLoss() supportFragmentManager.beginTransaction().replace(R.id.fragment_holder, this).addToBackStack(path).commitAllowingStateLoss()
}
} }
override fun onCreateOptionsMenu(menu: Menu): Boolean { override fun onCreateOptionsMenu(menu: Menu): Boolean {

View File

@ -1,6 +1,7 @@
package com.simplemobiletools.filemanager.adapters package com.simplemobiletools.filemanager.adapters
import android.content.Intent import android.content.Intent
import android.graphics.drawable.Drawable
import android.net.Uri import android.net.Uri
import android.support.v7.view.ActionMode import android.support.v7.view.ActionMode
import android.support.v7.widget.RecyclerView import android.support.v7.widget.RecyclerView
@ -14,6 +15,7 @@ import com.simplemobiletools.commons.asynctasks.CopyMoveTask
import com.simplemobiletools.commons.dialogs.ConfirmationDialog import com.simplemobiletools.commons.dialogs.ConfirmationDialog
import com.simplemobiletools.commons.dialogs.PropertiesDialog import com.simplemobiletools.commons.dialogs.PropertiesDialog
import com.simplemobiletools.commons.extensions.formatSize import com.simplemobiletools.commons.extensions.formatSize
import com.simplemobiletools.commons.extensions.getColoredDrawableWithColor
import com.simplemobiletools.commons.extensions.isGif import com.simplemobiletools.commons.extensions.isGif
import com.simplemobiletools.commons.extensions.toast import com.simplemobiletools.commons.extensions.toast
import com.simplemobiletools.commons.models.FileDirItem import com.simplemobiletools.commons.models.FileDirItem
@ -35,6 +37,10 @@ class ItemsAdapter(val activity: SimpleActivity, var mItems: List<FileDirItem>,
companion object { companion object {
var actMode: ActionMode? = null var actMode: ActionMode? = null
val markedItems = HashSet<Int>() val markedItems = HashSet<Int>()
var textColor = 0
lateinit var folderDrawable: Drawable
lateinit var fileDrawable: Drawable
fun toggleItemSelection(itemView: View, select: Boolean, pos: Int = -1) { fun toggleItemSelection(itemView: View, select: Boolean, pos: Int = -1) {
itemView.item_frame.isSelected = select itemView.item_frame.isSelected = select
@ -48,6 +54,14 @@ class ItemsAdapter(val activity: SimpleActivity, var mItems: List<FileDirItem>,
} }
} }
init {
textColor = activity.config.textColor
folderDrawable = activity.resources.getColoredDrawableWithColor(com.simplemobiletools.commons.R.drawable.ic_folder, textColor)
folderDrawable.alpha = 180
fileDrawable = activity.resources.getColoredDrawableWithColor(com.simplemobiletools.commons.R.drawable.ic_file, textColor)
fileDrawable.alpha = 180
}
val multiSelectorMode = object : ModalMultiSelectorCallback(multiSelector) { val multiSelectorMode = object : ModalMultiSelectorCallback(multiSelector) {
override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean { override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
when (item.itemId) { when (item.itemId) {
@ -181,27 +195,32 @@ class ItemsAdapter(val activity: SimpleActivity, var mItems: List<FileDirItem>,
class ViewHolder(val activity: SimpleActivity, view: View, val itemClick: (FileDirItem) -> (Unit)) : SwappingHolder(view, MultiSelector()) { class ViewHolder(val activity: SimpleActivity, view: View, val itemClick: (FileDirItem) -> (Unit)) : SwappingHolder(view, MultiSelector()) {
fun bindView(multiSelectorCallback: ModalMultiSelectorCallback, multiSelector: MultiSelector, fileDirItem: FileDirItem, pos: Int): View { fun bindView(multiSelectorCallback: ModalMultiSelectorCallback, multiSelector: MultiSelector, fileDirItem: FileDirItem, pos: Int): View {
itemView.item_name.text = fileDirItem.name itemView.apply {
toggleItemSelection(itemView, markedItems.contains(pos), pos) item_name.text = fileDirItem.name
item_name.setTextColor(textColor)
item_details.setTextColor(textColor)
if (fileDirItem.isDirectory) { toggleItemSelection(this, markedItems.contains(pos), pos)
Glide.with(activity).load(R.drawable.ic_folder).diskCacheStrategy(getCacheStrategy(fileDirItem)).centerCrop().crossFade().into(itemView.item_icon)
itemView.item_details.text = getChildrenCnt(fileDirItem)
} else {
Glide.with(activity).load(fileDirItem.path).diskCacheStrategy(getCacheStrategy(fileDirItem)).error(R.drawable.ic_file).centerCrop().crossFade().into(itemView.item_icon)
itemView.item_details.text = fileDirItem.size.formatSize()
}
itemView.setOnClickListener { viewClicked(multiSelector, fileDirItem, pos) } if (fileDirItem.isDirectory) {
itemView.setOnLongClickListener { item_icon.setImageDrawable(folderDrawable)
if (!multiSelector.isSelectable) { item_details.text = getChildrenCnt(fileDirItem)
activity.startSupportActionMode(multiSelectorCallback) } else {
multiSelector.setSelected(this, true) Glide.with(activity).load(fileDirItem.path).diskCacheStrategy(getCacheStrategy(fileDirItem)).error(fileDrawable).centerCrop().crossFade().into(item_icon)
actMode?.title = multiSelector.selectedPositions.size.toString() item_details.text = fileDirItem.size.formatSize()
toggleItemSelection(itemView, true, pos) }
actMode?.invalidate()
setOnClickListener { viewClicked(multiSelector, fileDirItem, pos) }
setOnLongClickListener {
if (!multiSelector.isSelectable) {
activity.startSupportActionMode(multiSelectorCallback)
multiSelector.setSelected(this@ViewHolder, true)
actMode?.title = multiSelector.selectedPositions.size.toString()
toggleItemSelection(this, true, pos)
actMode?.invalidate()
}
true
} }
true
} }
return itemView return itemView