aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/crypto
diff options
context:
space:
mode:
authorChristoph Böhmwalder <christoph@boehmwalder.at>2017-12-26 14:35:25 +0100
committerMohamed Zenadi <zeapo@users.noreply.github.com>2017-12-26 14:35:25 +0100
commite41287cb164b734dd19dc63d88235dd75509547d (patch)
treeff5800cb95a0047c16a5c4809cffcd9e49a126bc /app/src/main/java/com/zeapo/pwdstore/crypto
parent916d63f9bec5d624350b62a1d0eaec677a6b214f (diff)
downloadHardenedPass-e41287cb164b734dd19dc63d88235dd75509547d.tar.gz
HardenedPass-e41287cb164b734dd19dc63d88235dd75509547d.zip
show age for passwords in detail view (#339)
* show age for passwords in detail view Implements #330. This fetches the latest commit where the respective password file was changed from the current HEAD and outputs the relative time since the last change on the decrypt page. * Move lastChanged logic out of PgpActivity This nicely encapsulates the lastChanged logic (and thus separates it from dependencies like git). The last changed date is now passed as a timestamp using the Intent's extra info.
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/crypto')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt22
1 files changed, 22 insertions, 0 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt
index 19b71b72..1a8a5051 100644
--- a/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt
+++ b/app/src/main/java/com/zeapo/pwdstore/crypto/PgpActivity.kt
@@ -12,6 +12,7 @@ import android.os.SystemClock
import android.preference.PreferenceManager
import android.support.v7.app.AppCompatActivity
import android.text.TextUtils
+import android.text.format.DateUtils
import android.text.method.PasswordTransformationMethod
import android.util.Log
import android.view.*
@@ -20,6 +21,7 @@ import com.zeapo.pwdstore.PasswordEntry
import com.zeapo.pwdstore.R
import com.zeapo.pwdstore.UserPreference
import com.zeapo.pwdstore.pwgenDialogFragment
+import com.zeapo.pwdstore.utils.PasswordRepository
import com.zeapo.pwdstore.utils.Totp
import kotlinx.android.synthetic.main.decrypt_layout.*
import kotlinx.android.synthetic.main.encrypt_layout.*
@@ -47,6 +49,7 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound {
private val fullPath: String by lazy { intent.getStringExtra("FILE_PATH") }
private val name: String by lazy { getName(fullPath, repoPath) }
+ private val lastChangedString: CharSequence by lazy { getLastChangedString(intent.getIntExtra("LAST_CHANGED_TIMESTAMP", -1)) }
private val relativeParentPath: String by lazy { getParentPath(fullPath, repoPath) }
private val settings: SharedPreferences by lazy { PreferenceManager.getDefaultSharedPreferences(this) }
@@ -76,6 +79,13 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound {
setContentView(R.layout.decrypt_layout)
crypto_password_category_decrypt.text = relativeParentPath
crypto_password_file.text = name
+
+ crypto_password_last_changed.text = try {
+ this.resources.getString(R.string.last_changed, lastChangedString)
+ } catch (e: RuntimeException) {
+ showToast(getString(R.string.get_last_changed_failed))
+ ""
+ }
}
"ENCRYPT" -> {
setContentView(R.layout.encrypt_layout)
@@ -514,6 +524,18 @@ class PgpActivity : AppCompatActivity(), OpenPgpServiceConnection.OnBound {
delayTask?.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR)
}
+ /**
+ * Gets a relative string describing when this shape was last changed
+ * (e.g. "one hour ago")
+ */
+ private fun getLastChangedString(timeStamp: Int): CharSequence {
+ if (timeStamp < 0) {
+ throw RuntimeException()
+ }
+
+ return DateUtils.getRelativeTimeSpanString(this, timeStamp.toLong() * 1000, true)
+ }
+
@SuppressLint("StaticFieldLeak")
inner class DelayShow(val activity: PgpActivity) : AsyncTask<Void, Int, Boolean>() {
private val pb: ProgressBar by lazy { pbLoading }