diff options
| author | Diogenes Molinares <amolinares19@gmail.com> | 2020-08-20 13:53:34 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-20 17:23:34 +0530 |
| commit | cfb42f02f5ce7cb9c58e757007e7258e9db0559f (patch) | |
| tree | 620175e2069ebd335fae273615c0c85c2762fc29 /app/src/main/java/com/zeapo/pwdstore/utils | |
| parent | 152d86ec3a951bd6cb797128094d933d2c3a5697 (diff) | |
| download | HardenedPass-cfb42f02f5ce7cb9c58e757007e7258e9db0559f.tar.gz HardenedPass-cfb42f02f5ce7cb9c58e757007e7258e9db0559f.zip | |
Sort by recently used (#1031)
* Sort passwords by recently used
* reformat
* modified CHANGELOG.md
* restore format CHANGELOG.md
* added new sharedPreferences file to manage recent password history
* associate timestamp when rename category
* associate timestamp when rename password
* reformat
* Update CHANGELOG.md
Co-authored-by: Fabian Henneke <FabianHenneke@users.noreply.github.com>
* Update app/src/main/java/com/zeapo/pwdstore/PasswordFragment.kt
Co-authored-by: Fabian Henneke <FabianHenneke@users.noreply.github.com>
* Update app/src/main/java/com/zeapo/pwdstore/PasswordFragment.kt
Co-authored-by: Fabian Henneke <FabianHenneke@users.noreply.github.com>
* use kotlin edit extension
* Add changelog entry correctly
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Save paths as Base64 hashes
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
* Missed it
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Fabian Henneke <FabianHenneke@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/utils')
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt | 5 | ||||
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.kt | 13 |
2 files changed, 18 insertions, 0 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt b/app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt index 96bf1b7e..561b8d99 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt +++ b/app/src/main/java/com/zeapo/pwdstore/utils/Extensions.kt @@ -9,6 +9,7 @@ import android.content.Context import android.content.Intent import android.content.SharedPreferences import android.os.Build +import android.util.Base64 import android.util.TypedValue import android.view.View import android.view.autofill.AutofillManager @@ -42,6 +43,10 @@ fun String.splitLines(): Array<String> { return split("\n".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray() } +fun String.base64(): String { + return Base64.encodeToString(encodeToByteArray(), Base64.NO_WRAP) +} + val Context.clipboard get() = getSystemService<ClipboardManager>() fun FragmentActivity.snackbar( diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.kt b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.kt index 8a49f0e3..45453d4f 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.kt +++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.kt @@ -4,6 +4,7 @@ */ package com.zeapo.pwdstore.utils +import android.content.Context import android.content.SharedPreferences import androidx.core.content.edit import com.zeapo.pwdstore.Application @@ -31,6 +32,18 @@ open class PasswordRepository protected constructor() { p1.name.compareTo(p2.name, ignoreCase = true) }), + RECENTLY_USED(Comparator { p1: PasswordItem, p2: PasswordItem -> + val recentHistory = Application.instance.getSharedPreferences("recent_password_history", Context.MODE_PRIVATE) + val timeP1 = recentHistory.getString(p1.file.absolutePath.base64()) + val timeP2 = recentHistory.getString(p2.file.absolutePath.base64()) + when { + timeP1 != null && timeP2 != null -> timeP2.compareTo(timeP1) + timeP1 != null && timeP2 == null -> return@Comparator -1 + timeP1 == null && timeP2 != null -> return@Comparator 1 + else -> p1.name.compareTo(p2.name, ignoreCase = true) + } + }), + FILE_FIRST(Comparator { p1: PasswordItem, p2: PasswordItem -> (p2.type + p1.name).compareTo(p1.type + p2.name, ignoreCase = true) }); |
