implement the Add and Remove favorite buttons
This commit is contained in:
parent
afd0411ee9
commit
ad969698ae
|
@ -4,6 +4,7 @@ import android.content.Context
|
||||||
import com.simplemobiletools.commons.extensions.getInternalStoragePath
|
import com.simplemobiletools.commons.extensions.getInternalStoragePath
|
||||||
import com.simplemobiletools.commons.helpers.BaseConfig
|
import com.simplemobiletools.commons.helpers.BaseConfig
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class Config(context: Context) : BaseConfig(context) {
|
class Config(context: Context) : BaseConfig(context) {
|
||||||
companion object {
|
companion object {
|
||||||
|
@ -23,4 +24,20 @@ class Config(context: Context) : BaseConfig(context) {
|
||||||
return home
|
return home
|
||||||
}
|
}
|
||||||
set(homeFolder) = prefs.edit().putString(HOME_FOLDER, homeFolder).apply()
|
set(homeFolder) = prefs.edit().putString(HOME_FOLDER, homeFolder).apply()
|
||||||
|
|
||||||
|
fun addFavorite(path: String) {
|
||||||
|
val currFavorites = HashSet<String>(favorites)
|
||||||
|
currFavorites.add(path)
|
||||||
|
favorites = currFavorites
|
||||||
|
}
|
||||||
|
|
||||||
|
fun removeFavorite(path: String) {
|
||||||
|
val currFavorites = HashSet<String>(favorites)
|
||||||
|
currFavorites.remove(path)
|
||||||
|
favorites = currFavorites
|
||||||
|
}
|
||||||
|
|
||||||
|
var favorites: MutableSet<String>
|
||||||
|
get() = prefs.getStringSet(FAVORITES, HashSet<String>())
|
||||||
|
set(favorites) = prefs.edit().remove(FAVORITES).putStringSet(FAVORITES, favorites).apply()
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,3 +6,4 @@ val SCROLL_STATE = "scroll_state"
|
||||||
// shared preferences
|
// shared preferences
|
||||||
val SHOW_HIDDEN = "show_hidden"
|
val SHOW_HIDDEN = "show_hidden"
|
||||||
val HOME_FOLDER = "home_folder"
|
val HOME_FOLDER = "home_folder"
|
||||||
|
val FAVORITES = "favorites"
|
||||||
|
|
|
@ -29,6 +29,7 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
|
||||||
var latestFragment: ItemsFragment? = null
|
var latestFragment: ItemsFragment? = null
|
||||||
var mScrollStates = HashMap<String, Parcelable>()
|
var mScrollStates = HashMap<String, Parcelable>()
|
||||||
var mStoredTextColor = 0
|
var mStoredTextColor = 0
|
||||||
|
var currentPath = ""
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val STORAGE_PERMISSION = 1
|
private val STORAGE_PERMISSION = 1
|
||||||
|
@ -52,7 +53,7 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
|
||||||
if (mStoredTextColor != config.textColor) {
|
if (mStoredTextColor != config.textColor) {
|
||||||
mStoredTextColor = config.textColor
|
mStoredTextColor = config.textColor
|
||||||
breadcrumbs.setTextColor(mStoredTextColor)
|
breadcrumbs.setTextColor(mStoredTextColor)
|
||||||
openPath(getCurrenPath())
|
openPath(currentPath)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,10 +97,17 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
|
||||||
setListener(this@MainActivity)
|
setListener(this@MainActivity)
|
||||||
supportFragmentManager.beginTransaction().replace(R.id.fragment_holder, this).addToBackStack(path).commitAllowingStateLoss()
|
supportFragmentManager.beginTransaction().replace(R.id.fragment_holder, this).addToBackStack(path).commitAllowingStateLoss()
|
||||||
}
|
}
|
||||||
|
currentPath = path
|
||||||
|
invalidateOptionsMenu()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||||
menuInflater.inflate(R.menu.menu, menu)
|
menuInflater.inflate(R.menu.menu, menu)
|
||||||
|
|
||||||
|
val favorites = config.favorites
|
||||||
|
menu.findItem(R.id.add_favorite).isVisible = !favorites.contains(currentPath)
|
||||||
|
menu.findItem(R.id.remove_favorite).isVisible = favorites.contains(currentPath)
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,20 +129,20 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun addFavorite() {
|
private fun addFavorite() {
|
||||||
|
config.addFavorite(currentPath)
|
||||||
|
invalidateOptionsMenu()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun removeFavorite() {
|
private fun removeFavorite() {
|
||||||
|
config.removeFavorite(currentPath)
|
||||||
|
invalidateOptionsMenu()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setAsHome() {
|
private fun setAsHome() {
|
||||||
config.homeFolder = getCurrenPath()
|
config.homeFolder = currentPath
|
||||||
toast(R.string.home_folder_updated)
|
toast(R.string.home_folder_updated)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getCurrenPath() = (breadcrumbs.getChildAt(breadcrumbs.childCount - 1).tag as FileDirItem).path.trimEnd('/')
|
|
||||||
|
|
||||||
private fun launchAbout() {
|
private fun launchAbout() {
|
||||||
startAboutActivity(R.string.app_name, LICENSE_KOTLIN or LICENSE_MULTISELECT, BuildConfig.VERSION_NAME)
|
startAboutActivity(R.string.app_name, LICENSE_KOTLIN or LICENSE_MULTISELECT, BuildConfig.VERSION_NAME)
|
||||||
}
|
}
|
||||||
|
@ -174,7 +182,7 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
|
||||||
|
|
||||||
override fun breadcrumbClicked(id: Int) {
|
override fun breadcrumbClicked(id: Int) {
|
||||||
if (id == 0) {
|
if (id == 0) {
|
||||||
StoragePickerDialog(this@MainActivity, getCurrenPath()) {
|
StoragePickerDialog(this@MainActivity, currentPath) {
|
||||||
openPath(it)
|
openPath(it)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue