mirror of
				https://github.com/SimpleMobileTools/Simple-File-Manager.git
				synced 2025-06-05 22:09:15 +02:00 
			
		
		
		
	implement the Add and Remove favorite buttons
This commit is contained in:
		| @@ -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 { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user