diff options
| author | Christoph Böhmwalder <christoph@boehmwalder.at> | 2017-12-26 14:35:25 +0100 |
|---|---|---|
| committer | Mohamed Zenadi <zeapo@users.noreply.github.com> | 2017-12-26 14:35:25 +0100 |
| commit | e41287cb164b734dd19dc63d88235dd75509547d (patch) | |
| tree | ff5800cb95a0047c16a5c4809cffcd9e49a126bc /app/src/main/java/com/zeapo/pwdstore/crypto | |
| parent | 916d63f9bec5d624350b62a1d0eaec677a6b214f (diff) | |
| download | HardenedPass-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.kt | 22 |
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 } |
