diff options
author | Harsh Shandilya <me@msfjarvis.dev> | 2023-06-04 02:18:13 +0530 |
---|---|---|
committer | Harsh Shandilya <me@msfjarvis.dev> | 2023-06-04 02:24:23 +0530 |
commit | 0669f8a062e9a8743173e755e32efd136438cad6 (patch) | |
tree | 3a93417bc56c83287379d715248a1ef72854e8a0 | |
parent | 469700f62703a9e81ea711ebe7af6f9c9a8e21fe (diff) |
fix: replace `Stack` with `ArrayDeque` in `SearchableRepositoryViewModel`
-rw-r--r-- | app/lint-baseline.xml | 11 | ||||
-rw-r--r-- | app/src/main/java/app/passwordstore/util/viewmodel/SearchableRepositoryViewModel.kt | 7 |
2 files changed, 3 insertions, 15 deletions
diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml index f6232d8e..de1f0a60 100644 --- a/app/lint-baseline.xml +++ b/app/lint-baseline.xml @@ -83,17 +83,6 @@ <issue id="DenyListedApi" - message="For a stack use ArrayDeque which is more efficient internally." - errorLine1=" private val navigationStack = Stack<NavigationStackEntry>()" - errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> - <location - file="src/main/java/app/passwordstore/util/viewmodel/SearchableRepositoryViewModel.kt" - line="297" - column="33"/> - </issue> - - <issue - id="DenyListedApi" message="Use the structured concurrent CoroutineScope#launch and Flow#collect APIs instead of reactive Flow#onEach and Flow#launchIn. Suspend calls like Flow#collect can be refactored into standalone suspend funs and mixed in with regular control flow in a suspend context, but calls that invoke CoroutineScope#launch and Flow#collect at the same time hide the suspend context, encouraging the developer to continue working in the reactive domain." errorLine1=" model.searchResult" errorLine2=" ^"> diff --git a/app/src/main/java/app/passwordstore/util/viewmodel/SearchableRepositoryViewModel.kt b/app/src/main/java/app/passwordstore/util/viewmodel/SearchableRepositoryViewModel.kt index edb82cc0..4dae1d6b 100644 --- a/app/src/main/java/app/passwordstore/util/viewmodel/SearchableRepositoryViewModel.kt +++ b/app/src/main/java/app/passwordstore/util/viewmodel/SearchableRepositoryViewModel.kt @@ -35,7 +35,6 @@ import dagger.hilt.android.lifecycle.HiltViewModel import java.io.File import java.text.Collator import java.util.Locale -import java.util.Stack import javax.inject.Inject import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -294,7 +293,7 @@ constructor( data class NavigationStackEntry(val dir: File, val recyclerViewState: Parcelable?) - private val navigationStack = Stack<NavigationStackEntry>() + private val navigationStack = ArrayDeque<NavigationStackEntry>() fun navigateTo( newDirectory: File = root, @@ -305,7 +304,7 @@ constructor( if (!newDirectory.exists()) return require(newDirectory.isDirectory) { "Can only navigate to a directory" } if (pushPreviousLocation) { - navigationStack.push(NavigationStackEntry(_currentDir.value, recyclerViewState)) + navigationStack.addFirst(NavigationStackEntry(_currentDir.value, recyclerViewState)) } searchActionFlow.update { makeSearchAction( @@ -330,7 +329,7 @@ constructor( */ fun navigateBack(): Parcelable? { if (!canNavigateBack) return null - val (oldDir, oldRecyclerViewState) = navigationStack.pop() + val (oldDir, oldRecyclerViewState) = navigationStack.removeFirst() navigateTo(oldDir, pushPreviousLocation = false) return oldRecyclerViewState } |