diff options
| author | Fabian Henneke <FabianHenneke@users.noreply.github.com> | 2020-08-06 10:58:20 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-06 14:28:20 +0530 |
| commit | 3dace243e4b0fe1378e2d81c46fb70cb236e6ae5 (patch) | |
| tree | a52739e2532e54337adb04468ca66ddd0bd6764d /app/src/main/java/com/zeapo/pwdstore/SearchableRepositoryViewModel.kt | |
| parent | 14c44bf584cb7d13ada46b264419efca923ed65c (diff) | |
| download | HardenedPass-3dace243e4b0fe1378e2d81c46fb70cb236e6ae5.tar.gz HardenedPass-3dace243e4b0fe1378e2d81c46fb70cb236e6ae5.zip | |
Refactor uses of applicationContext and startActivityForResult (#997)
* Refactor uses of applicationContext and startActivityForResult
This commit applies three types of refactoring:
1. Remove context argument from PasswordRepository companion functions
by relying on Application.instance.
2. Introduce a sharedPrefs extension function on Context that returns
the default SharedPreferences for the applicationContext.
3. Use OpenDocument() and OpenDocumentTree() contracts.
* Drop toPasswordItem argument
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/SearchableRepositoryViewModel.kt')
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/SearchableRepositoryViewModel.kt | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/SearchableRepositoryViewModel.kt b/app/src/main/java/com/zeapo/pwdstore/SearchableRepositoryViewModel.kt index 4d713afa..f1728d6d 100644 --- a/app/src/main/java/com/zeapo/pwdstore/SearchableRepositoryViewModel.kt +++ b/app/src/main/java/com/zeapo/pwdstore/SearchableRepositoryViewModel.kt @@ -5,7 +5,6 @@ package com.zeapo.pwdstore import android.app.Application -import android.content.Context import android.os.Parcelable import android.view.LayoutInflater import android.view.View @@ -31,6 +30,7 @@ import com.zeapo.pwdstore.autofill.oreo.DirectoryStructure import com.zeapo.pwdstore.utils.PasswordItem import com.zeapo.pwdstore.utils.PasswordRepository import com.zeapo.pwdstore.utils.PreferenceKeys +import com.zeapo.pwdstore.utils.sharedPrefs import java.io.File import java.text.Collator import java.util.Locale @@ -50,10 +50,10 @@ import kotlinx.coroutines.flow.toList import kotlinx.coroutines.yield import me.zhanghai.android.fastscroll.PopupTextProvider -private fun File.toPasswordItem(root: File) = if (isFile) - PasswordItem.newPassword(name, this, root) +private fun File.toPasswordItem() = if (isFile) + PasswordItem.newPassword(name, this, PasswordRepository.getRepositoryDirectory()) else - PasswordItem.newCategory(name, this, root) + PasswordItem.newCategory(name, this, PasswordRepository.getRepositoryDirectory()) private fun PasswordItem.fuzzyMatch(filter: String): Int { var i = 0 @@ -138,8 +138,8 @@ class SearchableRepositoryViewModel(application: Application) : AndroidViewModel } private val root - get() = PasswordRepository.getRepositoryDirectory(getApplication()) - private val settings = PreferenceManager.getDefaultSharedPreferences(getApplication()) + get() = PasswordRepository.getRepositoryDirectory() + private val settings by lazy { application.sharedPrefs } private val showHiddenDirs get() = settings.getBoolean(PreferenceKeys.SHOW_HIDDEN_FOLDERS, false) private val defaultSearchMode @@ -216,7 +216,7 @@ class SearchableRepositoryViewModel(application: Application) : AndroidViewModel val passwordList = when (filterModeToUse) { FilterMode.NoFilter -> { prefilteredResultFlow - .map { it.toPasswordItem(root) } + .map { it.toPasswordItem() } .toList() .sortedWith(itemComparator) } @@ -228,7 +228,7 @@ class SearchableRepositoryViewModel(application: Application) : AndroidViewModel .filter { absoluteFile -> regex.containsMatchIn(absoluteFile.relativeTo(root).path) } - .map { it.toPasswordItem(root) } + .map { it.toPasswordItem() } .toList() .sortedWith(itemComparator) } else { @@ -238,7 +238,7 @@ class SearchableRepositoryViewModel(application: Application) : AndroidViewModel FilterMode.Fuzzy -> { prefilteredResultFlow .map { - val item = it.toPasswordItem(root) + val item = it.toPasswordItem() Pair(item.fuzzyMatch(searchAction.filter), item) } .filter { it.first > 0 } @@ -443,10 +443,7 @@ open class SearchableRepositoryAdapter<T : RecyclerView.ViewHolder>( private val selectedFiles get() = requireSelectionTracker().selection.map { File(it) } - fun getSelectedItems(context: Context): List<PasswordItem> { - val root = PasswordRepository.getRepositoryDirectory(context) - return selectedFiles.map { it.toPasswordItem(root) } - } + fun getSelectedItems() = selectedFiles.map { it.toPasswordItem() } fun getPositionForFile(file: File) = itemKeyProvider.getPosition(file.absolutePath) |
