From 9f053e5171812974ffffe6981b4281051d54f313 Mon Sep 17 00:00:00 2001 From: greenart7c3 Date: Mon, 18 Nov 2024 10:52:17 -0300 Subject: [PATCH] If not profile picture only check every 15 minutes --- .../com/greenart7c3/nostrsigner/LocalPreferences.kt | 11 +++++++++++ .../java/com/greenart7c3/nostrsigner/NostrSigner.kt | 5 ++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/LocalPreferences.kt b/app/src/main/java/com/greenart7c3/nostrsigner/LocalPreferences.kt index 6396e125..e10b59dc 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/LocalPreferences.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/LocalPreferences.kt @@ -57,6 +57,7 @@ private object PrefKeys { const val SEED_WORDS2 = "seed_words" const val PROFILE_URL = "profile_url" const val LAST_METADATA_UPDATE = "last_metadata_update" + const val LAST_CHECK = "last_check" } @Immutable @@ -122,6 +123,16 @@ object LocalPreferences { }.apply() } + fun getLastCheck(context: Context, npub: String): Long { + return encryptedPreferences(context, npub).getLong(PrefKeys.LAST_CHECK, 0) + } + + fun setLastCheck(context: Context, npub: String, time: Long) { + encryptedPreferences(context, npub).edit().apply { + putLong(PrefKeys.LAST_CHECK, time) + }.apply() + } + fun getLastMetadataUpdate(context: Context, npub: String): Long { return encryptedPreferences(context, npub).getLong(PrefKeys.LAST_METADATA_UPDATE, 0) } diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/NostrSigner.kt b/app/src/main/java/com/greenart7c3/nostrsigner/NostrSigner.kt index a34dda79..0282f954 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/NostrSigner.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/NostrSigner.kt @@ -226,9 +226,12 @@ class NostrSigner : Application() { } val lastMetaData = LocalPreferences.getLastMetadataUpdate(this, account.signer.keyPair.pubKey.toNpub()) + val lastCheck = LocalPreferences.getLastCheck(this, account.signer.keyPair.pubKey.toNpub()) val oneDayAgo = TimeUtils.oneDayAgo() - if (lastMetaData == 0L || oneDayAgo > lastMetaData) { + val fifteenMinutesAgo = TimeUtils.fifteenMinutesAgo() + if ((lastMetaData == 0L || oneDayAgo > lastMetaData) && (lastCheck == 0L || fifteenMinutesAgo > lastCheck)) { Log.d("NostrSigner", "Fetching profile data for ${account.signer.keyPair.pubKey.toNpub()}") + LocalPreferences.setLastCheck(this, account.signer.keyPair.pubKey.toNpub(), TimeUtils.now()) val listener = RelayListener( account = account, onReceiveEvent = { _, _, event ->