From bd794b2f8f08254d9391c91a8c10af1d18bd8e21 Mon Sep 17 00:00:00 2001 From: greenart7c3 Date: Mon, 8 Sep 2025 14:59:37 -0300 Subject: [PATCH] Create a update for fixing the incorrect permissions --- .../java/com/greenart7c3/nostrsigner/Amber.kt | 22 +++++++++++++++++++ .../nostrsigner/database/ApplicationDao.kt | 4 ++++ 2 files changed, 26 insertions(+) diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/Amber.kt b/app/src/main/java/com/greenart7c3/nostrsigner/Amber.kt index 464a0c7a..8fc45548 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/Amber.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/Amber.kt @@ -25,6 +25,7 @@ import com.greenart7c3.nostrsigner.service.ClearLogsWorker import com.greenart7c3.nostrsigner.service.ConnectivityService import com.greenart7c3.nostrsigner.service.NotificationSubscription import com.greenart7c3.nostrsigner.service.ProfileSubscription +import com.greenart7c3.nostrsigner.ui.RememberType import com.vitorpamplona.quartz.nip01Core.hints.EventHintBundle import com.vitorpamplona.quartz.nip01Core.relay.client.NostrClient import com.vitorpamplona.quartz.nip01Core.relay.client.accessories.RelayAuthenticator @@ -226,6 +227,7 @@ class Amber : Application(), LifecycleObserver { LocalPreferences.migrateTorSettings(this@Amber) settings = LocalPreferences.loadSettingsFromEncryptedStorage() LocalPreferences.reloadApp() + fixRejectedPermissions() isStartingApp.value = false checkForNewRelaysAndUpdateAllFilters(true) @@ -265,6 +267,26 @@ class Amber : Application(), LifecycleObserver { } } + suspend fun fixRejectedPermissions() { + LocalPreferences.allSavedAccounts(this).forEach { account -> + val permissions = getDatabase(account.npub).applicationDao().getAllRejectedPermissions() + val localPermissions = + permissions.map { + val isAcceptable = it.acceptable + val acceptUntil = if (isAcceptable) Long.MAX_VALUE / 1000 else 0L + val rejectUntil = if (!isAcceptable) Long.MAX_VALUE / 1000 else 0L + + it.copy( + acceptable = it.acceptable, + acceptUntil = acceptUntil, + rejectUntil = rejectUntil, + rememberType = RememberType.ALWAYS.screenCode, + ) + } + getDatabase(account.npub).applicationDao().insertPermissions(localPermissions) + } + } + fun startService() { try { Log.d(TAG, "Starting ConnectivityService") diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/database/ApplicationDao.kt b/app/src/main/java/com/greenart7c3/nostrsigner/database/ApplicationDao.kt index bf9aa1b2..2c5042a9 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/database/ApplicationDao.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/database/ApplicationDao.kt @@ -75,6 +75,10 @@ interface ApplicationDao { @Transaction fun getAllApplications(): List + @Query("SELECT * FROM applicationPermission WHERE acceptable = 0 AND rejectUntil = 0") + @Transaction + fun getAllRejectedPermissions(): List + @Query("SELECT * FROM applicationPermission WHERE pkKey = :key AND type = :type AND kind = :kind") fun getPermission( key: String,