Commit graph

1661 commits

Author SHA1 Message Date
Harsh Shandilya
2fbad7ef6b
refactor: use a ViewModel to pass around decryption passphrase 2023-01-19 17:01:47 +05:30
Harsh Shandilya
ed5385a0d8
fix: remove deprecated method 2023-01-12 10:59:32 +05:30
Harsh Shandilya
7eb3e4e397
fix: add ProGuard rules for LeakCanary's reflective uses 2023-01-05 00:41:43 +05:30
Harsh Shandilya
f486a40ee7
chore: reword confusing comments 2022-12-31 19:39:28 +05:30
Harsh Shandilya
4df55fef61
chore: add inherited deprecation annotation 2022-12-31 13:03:19 +05:30
Harsh Shandilya
6c575a59bb
fix: remove unnecessary log statement 2022-12-31 13:02:33 +05:30
Harsh Shandilya
baf1fdd891
fix(lint): adjust TrustAllX509TrustManager regexp 2022-12-22 11:30:31 +05:30
Harsh Shandilya
26c8769349
chore: refresh Lint baseline 2022-12-19 17:48:24 +05:30
Harsh Shandilya
8cfe6ec84c
refactor: merge format-common-impl into format-common
Also converts the format-common module into an Android library since
UriTotpFinder requires the Android SDK.
2022-12-19 16:47:17 +05:30
Harsh Shandilya
89b47f6ae8
fix(autofill): fall back to remote views when inline presentations are unavailable
Fixes #2290
2022-12-12 21:40:25 +05:30
Harsh Shandilya
395bd39285
Sync localisations from Crowdin (#2295)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
2022-12-11 00:29:54 +00:00
Harsh Shandilya
2d3d6707e8
chore(deps): upgrade ktfmt to 0.42 2022-12-09 18:22:25 +05:30
Harsh Shandilya
8a0e987743
chore: fix issues flagged by Lint 2022-12-08 20:01:02 +05:30
Harsh Shandilya
9156a81ad7
feat(leakcanary): migrate to manual initialization 2022-12-03 18:07:47 +05:30
Harsh Shandilya
8e3b4422a9
feat(app): add implementations for SentryLeakUploader 2022-12-03 17:46:14 +05:30
Harsh Shandilya
d4dd147c25
refactor: break out overly long method 2022-11-27 13:28:46 +05:30
Harsh Shandilya
56a25dcd32
refactor: replace branch preference value with repository-based helper 2022-11-27 13:28:46 +05:30
Harsh Shandilya
74711fcc78
refactor: remove branch input for cloning 2022-11-27 13:28:46 +05:30
Harsh Shandilya
014c7a62c0
chore: use asLog extension instead of duplicating 2022-11-27 13:28:45 +05:30
Harsh Shandilya
8bb61eca2d
refactor: make ResetToRemoteOperation actually work and use its own remoteBranch input 2022-11-27 13:28:45 +05:30
Harsh Shandilya
e8aabaf752
feat: add a helper to PasswordRepository to retrieve the current branch 2022-11-27 13:28:45 +05:30
Harsh Shandilya
2a3f78d43e
feat: add TextInputDialog for generic text input dialogs 2022-11-27 13:28:45 +05:30
Harsh Shandilya
2decedbf4b
feat: remove Beagle
It breaks WhatTheStack and doesn't offer anything particularly useful
2022-11-27 12:43:36 +05:30
Harsh Shandilya
c89e9250c2
fix: correctly handle default auth mode 2022-11-26 19:25:49 +05:30
renovate[bot]
2a6fe4f159
fix(deps): update dependency io.gitlab.arturbosch.detekt:detekt-gradle-plugin to v1.22.0 (#2262)
* fix(deps): update dependency io.gitlab.arturbosch.detekt:detekt-gradle-plugin to v1.22.0

* chore: sync detekt config with 0.22.0 changes

* chore: fix Detekt warning

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2022-11-21 12:13:33 +05:30
Harsh Shandilya
a981b6b9f7
chore: inject VM with Lifecycle-ViewModel-Compose integration 2022-11-18 14:24:07 +05:30
Harsh Shandilya
11f192532f
feat: make key import update key list 2022-11-18 14:23:10 +05:30
Harsh Shandilya
84b9839635
feat: move key import to key manager UI 2022-11-18 12:31:19 +05:30
Harsh Shandilya
10b502fb0a
refactor: extract deletion confirmation dialog to its own method 2022-11-18 12:19:46 +05:30
Harsh Shandilya
6fa8b188e6
feat: add a confirmation dialog for key deletion
Fixes #2257
2022-11-18 11:21:53 +05:30
Harsh Shandilya
35a6e3b8ff
fix: add an explicit delete button to PGP key list items 2022-11-18 11:15:38 +05:30
Harsh Shandilya
6a4c0a223f
fix(app): enable Hilt processing for folder selection screens
Fixes #2255
Fixes PASSWORD-STORE-GOOGLE-PLAY-11
2022-11-17 19:21:51 +05:30
Harsh Shandilya
b83cd841e8
feat: remove Beagle's logger integration
Fixes Sentry issue PASSWORD-STORE-GOOGLE-PLAY-14
2022-11-16 04:02:09 +05:30
Harsh Shandilya
4891b980c4
fix: make itemDetails nullable 2022-11-12 23:56:12 +05:30
Harsh Shandilya
c407d04ec7
Sync localisations from Crowdin (#2228)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
2022-11-06 00:31:18 +00:00
Harsh Shandilya
f870dd4913
Sync localisations from Crowdin (#2219)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
2022-10-30 00:31:27 +00:00
Harsh Shandilya
53a5af5f40
refactor: flip PGPainless feature flag
It's always enabled now
2022-10-29 15:15:41 +05:30
Harsh Shandilya
4c3abe60a6
feat(sentry): add profiling sample rate config 2022-10-29 15:15:41 +05:30
Harsh Shandilya
baabe5ba52
refactor: add invalid .gpg-id file contents to errors 2022-10-29 15:15:41 +05:30
Harsh Shandilya
99bfccf945
refactor: remove unnecessary LaunchActivity injection 2022-10-29 15:15:41 +05:30
Harsh Shandilya
505c2fa705
refactor(format-common): add a getter to PasswordEntry for current OTP value 2022-10-29 05:34:09 +05:30
Harsh Shandilya
e8d9a77539
chore: sync Crowdin localisations 2022-10-29 05:07:24 +05:30
Harsh Shandilya
4e178883f7
chore: extract hard-coded preference strings 2022-10-29 05:07:24 +05:30
Harsh Shandilya
538ddbfd95
feat(app): wire in ASCII armor toggle 2022-10-29 04:37:04 +05:30
Harsh Shandilya
633cbe2714
feat(crypto-common): support passing arbitrary crypto options 2022-10-29 04:36:00 +05:30
Harsh Shandilya
390286f95f
feat: add a no-op ASCII armor toggle 2022-10-29 04:16:08 +05:30
Harsh Shandilya
bb960ccb76
refactor: move UriTotpFinderTest to format-common-impl 2022-10-25 23:57:46 +05:30
Harsh Shandilya
0c939a2929
refactor(deps): switch to Compose BOM 2022-10-25 18:28:45 +05:30
Harsh Shandilya
0d35cfaa0b
fix: lower log priority in SshjConfig 2022-10-24 15:46:26 +05:30
Harsh Shandilya
28394c4bbb
fix: remove useless logging line 2022-10-24 15:46:26 +05:30
Harsh Shandilya
2762c17578
feat: setup Beagle for debugging 2022-10-24 15:46:26 +05:30
Harsh Shandilya
816aca5ba1
refactor: use generated accessors for flavor dependencies 2022-10-24 14:51:33 +05:30
Harsh Shandilya
edc110dcc1
chore(gradle): add missing suppressions and license headers 2022-10-24 14:46:38 +05:30
Harsh Shandilya
cdf0f30c61
Refactor format-common module (#2196)
* fix: touch up `PasswordEntryTest` KDoc

* feat: add format-common-impl module

* refactor: switch app to format-common-impl

* refactor: move `format-common` tests to `format-common-impl`

* feat: add a test for Steam OTP
2022-10-21 21:36:27 +05:30
Harsh Shandilya
9f5062986d
Revert "chore: remove unnecessary CryptoHandlerModule"
This is used in #2170 so let's avoid the unnecessary conflict.

This reverts commit f5bf45037a.
2022-10-10 14:45:07 +05:30
Harsh Shandilya
f5bf45037a
chore: remove unnecessary CryptoHandlerModule 2022-10-10 14:24:49 +05:30
Harsh Shandilya
eb5e9bdffa
refactor(app): switch logExecutionTime to kotlin.time.measureTime 2022-10-09 20:05:40 +05:30
Harsh Shandilya
c866bb9fb1
feat(app): support toggling read-only status in DecryptScreen 2022-10-09 18:11:04 +05:30
Harsh Shandilya
224d956e28
feat(app): refactor CopyButton and add missing spacing 2022-10-08 18:35:16 +05:30
Harsh Shandilya
5dd7c91038
feat(app): add username to DecryptScreen 2022-10-08 18:28:27 +05:30
Harsh Shandilya
9bdbd55204
feat(ui-compose): add a PasswordField composable and switch decrypt screen to it 2022-10-08 18:28:04 +05:30
Harsh Shandilya
6615992332
refactor: simplify PasswordDialog emissions 2022-10-07 20:25:19 +05:30
Harsh Shandilya
6dcffc04d2
fix: protect PasswordDialog window 2022-10-07 19:56:11 +05:30
Harsh Shandilya
d68958c3e1
refactor: switch DecryptActivity to DispatcherProvider 2022-10-07 19:45:54 +05:30
Harsh Shandilya
b313c4216e
fix(app): ensure decryption errors are captured by UI 2022-10-07 19:41:14 +05:30
Harsh Shandilya
f778eab94e
fix: remove stale comment 2022-10-07 19:29:49 +05:30
Harsh Shandilya
f2ab436c54
feat(app): make DecryptScreen properly standalone 2022-10-07 19:11:06 +05:30
Harsh Shandilya
cb373db35d
feat(app): start working on a Compose-backed decrypt screen 2022-10-07 18:55:35 +05:30
Harsh Shandilya
8ba910edf4
chore(deps): upgrade AndroidX dependencies 2022-10-05 23:39:50 +05:30
Harsh Shandilya
1e033792d6
Refactor navigation and search code (#2134) 2022-09-20 20:50:31 +00:00
Aditya Wasan
244fd92f8b
Use GENERAL_SHOW_TIME for decryption screen timeout (#2107)
* feat(app): use `GENERAL_SHOW_TIME` for decryption screen as well

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* feat: update timeout to 60 seconds

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* refactor(app): use constant instead of using a magic number

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>

* Add changelog entry

Signed-off-by: Aditya Wasan <adityawasan55@gmail.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2022-09-07 21:49:08 +00:00
Harsh Shandilya
42ecba8dee
fix(lint): resolve and suppress lints to fix canary builds 2022-09-05 15:36:29 +05:30
Harsh Shandilya
a828846345
Upgrade ktfmt and setup automatic updates (#2103) 2022-09-02 16:34:02 +00:00
Harsh Shandilya
d640c39725
Fix reported Lint issues (#2101) 2022-09-01 06:34:20 +00:00
Harsh Shandilya
8908f88ddc
Remove unnecessary RequiresApi annotation (#2100) 2022-09-01 05:11:39 +00:00
github-actions[bot]
c8a74f7ff1
Sync localisations from Crowdin (#2091)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2022-08-27 05:07:14 +00:00
Harsh Shandilya
8129495608
Implement support for .gpg-id (#2080) 2022-08-24 17:14:02 +00:00
renovate[bot]
91ff5aebac
fix(deps): update dependency com.hierynomus:sshj to v0.34.0 (#2053)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2022-08-10 11:39:35 +00:00
github-actions[bot]
a584e9416d
Sync localisations from Crowdin (#2049)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2022-08-06 06:33:12 +00:00
Harsh Shandilya
977723c661
Update app icon and add a monochrome layer (#2045)
* app: check-in updated app icon

* app: add a monochrome icon
2022-08-04 20:19:35 +00:00
github-actions[bot]
01f4b39318
Sync localisations from Crowdin (#2039)
strings: sync with crowdin

Co-authored-by: GitHub Actions <noreply@github.com>
2022-07-30 05:22:05 +00:00
Harsh Shandilya
140175823f
Fix some StrictMode violations and start logging them (#2031) 2022-07-24 11:46:22 +00:00
Harsh Shandilya
9c5e9c8e43
Improvements to key list activity (#2030) 2022-07-23 13:45:36 +00:00
Harsh Shandilya
6d0bff144c
Begin cleaning up Detekt warnings (#2027) 2022-07-22 21:45:29 +00:00
Harsh Shandilya
ade73fd5bc
Compile against SDK 33 (#2023)
* Compile against SDK 33

* autofill-parser: fix warnings for SDK 33 upgrade

* app: fix warnings for SDK 33 upgrade

* Mark all clipboard content as sensitive from crypto activities

* Skip Snackbar on Android 13 and above

* detekt: raise `TooManyFunctions` limit to 15
2022-07-20 01:29:12 +05:30
Harsh Shandilya
fc81ee83d9
Misc cleanups and bugfixes (#2019)
* Fix decrypt activity items being editable

* Remove unused resources and re-roll lint baseline

* Make lint mark all warnings as errors
2022-07-18 20:47:06 +00:00
Harsh Shandilya
018939f815
Add key manager UI 2022-07-18 23:04:59 +05:30
Harsh Shandilya
e1e5d13a6a
Mark key import dialogs as non-cancellable 2022-07-17 22:38:27 +05:30
Harsh Shandilya
4ed98c9fda
Refactor key import flow and implement support for replacing 2022-07-17 22:38:27 +05:30
Harsh Shandilya
6ceedc049c
PGPKeyImportActivity: close key stream after use 2022-07-17 13:56:43 +05:30
Harsh Shandilya
a15ff1b137
Switch SettingsActivity to use Material3 Switch (#2006) 2022-07-15 21:55:42 +00:00
Harsh Shandilya
a1f838151e
Remove unnecessary V2 suffix 2022-07-15 14:53:52 +05:30
Harsh Shandilya
bcf33e90a5
Remove OpenKeychain code and leave TODOs for missing functionality 2022-07-15 14:53:52 +05:30
Harsh Shandilya
a6bcdd1d9d
Remove PGPainless feature flag 2022-07-15 13:50:18 +05:30
Harsh Shandilya
549ee790d3
all: re-do package structure yet again 2022-07-15 01:13:47 +05:30
Harsh Shandilya
010c6e227c
Change app package name to app.passwordstore 2022-07-15 00:54:04 +05:30
Harsh Shandilya
84180c1650 app: turn off crashing lint 2022-07-09 10:30:17 +00:00
Harsh Shandilya
bea80163ce
ui-compose: import Manrope font 2022-07-07 11:28:59 +05:30
Harsh Shandilya
58342ca426
Fix suspicious indentation in Migrations.kt (#1956) 2022-06-14 08:23:25 +00:00
Harsh Shandilya
426fc924fb
Upgrade ktfmt (#1942)
* build-logic: upgrade ktfmt

* all: reformat
2022-06-09 13:51:29 +05:30
Harsh Shandilya
c319909582
Remove SourceCode Pro typeface (#1938) 2022-06-07 07:36:28 +00:00
Harsh Shandilya
bda515d1ec
Remove unused dependencies (#1930)
gradle: remove unused instrumentation testing deps
2022-05-29 14:29:36 +00:00
Harsh Shandilya
184391599b
Fix ClipboardService crash (#1928)
* Fix clipboard service crash on API 31

* all: use ints directly for SDK version checks

I much prefer it this way
2022-05-27 20:18:39 +00:00
Harsh Shandilya
88151f4bdd
Simplify BouncyCastle workaround and upgrade Fragment (#1926)
* Simplify bouncycastle workaround

* Upgrade fragment-ktx to 1.5.x
2022-05-27 07:30:10 +00:00
Harsh Shandilya
5f4bc7fafd
Allow disabling pull-to-sync operation (#1922) 2022-05-24 10:47:35 +00:00
Harsh Shandilya
37b80d5d19
Upgrade to AGP 7.2.0 (#1920) 2022-05-19 07:23:59 +00:00
github-actions[bot]
c9f6d27475
strings: sync with crowdin (#1901)
Co-authored-by: GitHub Actions <noreply@github.com>
2022-05-07 02:10:42 +00:00
Harsh Shandilya
41213da780
Upgrade to ktfmt 0.37 (#1897) 2022-05-05 03:17:15 +00:00
Harsh Shandilya
c555609f16
Misc cleanups (#1891) 2022-05-02 20:18:16 +00:00
Harsh Shandilya
d4a4ac06ed
crypto-pgpainless: prepare for error handling (#1877) 2022-04-27 17:02:36 +00:00
Harsh Shandilya
b8b0693642
Revert "app: address Overdraw lint" (#1876) 2022-04-26 14:37:10 +00:00
Harsh Shandilya
aaf6ceb8ec
all: reformat with ktfmt 0.36 2022-04-25 10:47:02 +05:30
Harsh Shandilya
62902ca80b
Reorganize crypto-common code and fix a couple minor bugs (#1868) 2022-04-24 15:55:34 +00:00
Harsh Shandilya
599abd37e8
app: address SetTextI18n lint 2022-04-24 16:47:52 +05:30
Harsh Shandilya
5bad2a7256
app: address LabelFor lint 2022-04-24 16:47:51 +05:30
Harsh Shandilya
f1556242fa
app: address ContentDescription lint 2022-04-24 16:47:51 +05:30
Harsh Shandilya
901845e745
app: address Autofill lint 2022-04-24 16:47:51 +05:30
Harsh Shandilya
975c9f5dfc
app: address MissingQuantity lint 2022-04-24 16:47:51 +05:30
Harsh Shandilya
4775d44292
app: address Overdraw lint 2022-04-24 16:47:51 +05:30
Harsh Shandilya
ecba50cbae
app: address TrustAllX509TrustManager lint 2022-04-24 16:47:51 +05:30
Harsh Shandilya
759c3b2e1a
app: address Deprecated lint 2022-04-24 16:47:50 +05:30
Harsh Shandilya
13e859baca
app: address VectorRaster lint 2022-04-24 16:47:50 +05:30
Harsh Shandilya
95f16cbf5a
app: address InlinedApi lint 2022-04-24 16:47:50 +05:30
Harsh Shandilya
9cae158e34
app: address UnusedResources lint 2022-04-24 16:47:50 +05:30
Harsh Shandilya
81b439b5f0
app: setup Lint baseline 2022-04-24 16:47:50 +05:30
Harsh Shandilya
493e869022
Remove support for external storage and raise target SDK to 31 (#1863) 2022-04-21 23:34:14 +05:30
renovate[bot]
18cff9c144
chore(deps): update dependency org.pgpainless:pgpainless-core to v1.2.0 (#1832)
* chore(deps): update dependency org.pgpainless:pgpainless-core to v1.2.0

* gradle: bump bouncycastle to 1.71

* Transparently update older BC versions

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2022-04-09 13:49:31 +00:00
Harsh Shandilya
0d5d5af674
Use full canonical path for classes in manifest (#1823)
* app: switch to full class names in manifest

* CONTRIBUTING: document configuration cache failures
2022-04-06 12:35:59 +00:00
Harsh Shandilya
2320201f89
Migrate namespaces to Gradle (#1805)
* ui-compose: update Gradle configuration

* gradle: fix namespace for a couple astray Compose dependencies

* all: switch to Gradle namespace property

Mirrors a similar change from AndroidX dcfa035a96
2022-03-27 12:37:18 +00:00
Harsh Shandilya
6fc1fafe99
Misc PGP v2 fixes (#1784)
* Don't throw in PGPKeyImportActivity when no file is selected

* PGPSettings: mark import option as dependent on V2 backend pref
2022-03-13 13:07:29 +00:00
Harsh Shandilya
861ca58a58
Configure Sentry with more information (#1782)
* build-logic: remove error path in Sentry plugin

* gradle: fix UnstableApiUsage warning

* build-logic: configure Sentry Gradle Plugin

* app: set traces sample-rate to 1.0

* sentry-stub: init

* app: populate Sentry user field with feature flags
2022-03-13 12:11:01 +00:00
c-steindl
20725219bd
Fix typo in german translation (#1781) 2022-03-12 11:50:23 +00:00
Harsh Shandilya
186b8352b5
Fix TOTP field flashing on each update (#1779)
* Fix TOTP field flashing on each update

* Add missing changelog entry
2022-03-11 10:54:51 +05:30
Harsh Shandilya
2f034bc237
Show remaining time in TOTP field (#1766)
* Pass down remaining time for TOTPs to UI layer

* format-common: switch TOTP flow to use co-operative cancelation

* format-common: add a regression test for OTP duration calculation

* Abstract out labels

* Switch to launchIn
2022-03-10 20:22:39 +00:00
Harsh Shandilya
47ec6059bd
app: turn off StrictMode (#1761) 2022-03-02 21:38:00 +05:30
Harsh Shandilya
778834d5e4
Upgrade ktfmt to 0.33 (#1753)
* build: upgrade ktfmt to 0.33

* all: reformat with ktfmt 0.33
2022-02-26 01:58:20 +05:30
Harsh Shandilya
d8b5880215
Fix Autofill ANR when entry has no TOTP (#1746) 2022-02-24 07:50:17 +00:00
Harsh Shandilya
acc448ce74
Use explicit Gradle tasks to handle build artifact collection (#1745) 2022-02-23 14:25:03 +05:30
Harsh Shandilya
82e3ba6ce5
Add CI job to assemble release APKs and fix build (#1742) 2022-02-21 15:12:56 +00:00
Harsh Shandilya
e343c66d8b
Cleanup R8 rules (#1739) 2022-02-21 13:15:59 +00:00
Harsh Shandilya
3d0006d610
Introduce Sentry for error reporting (#1737) 2022-02-20 19:01:19 +05:30
renovate[bot]
cca04dd40a
chore(deps): update dependency com.diffplug.spotless:spotless-plugin-gradle to v6.2.2 (#1718)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
2022-02-09 10:32:04 +00:00
Harsh Shandilya
664e1fbba0
Begin rework for configuration cache compatibility (#1709) 2022-02-05 01:57:41 +05:30
Harsh Shandilya
2b293e5805
Port build to Gradle 7.4-rc-2 (#1707) 2022-02-04 13:59:36 +00:00
Harsh Shandilya
cf111f1978
Refactor PasswordEntry TOTP calculation into a cold flow (#1702) 2022-02-01 19:21:01 +05:30
Harsh Shandilya
2d607c78e7
Unwind PasswordRepository's confusing control flow (#1686)
* Cleanup PasswordRepository

* Tear out nonsensical logic for getRepository
2022-01-27 09:22:15 +05:30
Harsh Shandilya
d89d500319
Move Compose code to ui-compose module (#1687) 2022-01-26 17:11:04 +00:00
Harsh Shandilya
6c7a066ea6
Add the ability to run garbage collection on the internal Git repository (#1683) 2022-01-25 13:12:23 +05:30
Harsh Shandilya
dba86c2a53
app: make Autofill intents mutable (#1682)
Fixes: b8ce4f314538 ("app: add `PendingIntent.FLAG_IMMUTABLE` flag where required")
2022-01-24 03:37:49 +00:00
Harsh Shandilya
d838b7da59
all: upgrade to AGP 7.1.0-rc01 (#1678) 2022-01-24 08:16:58 +05:30