diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 73c2c09f84..958dfc7183 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -25,8 +25,8 @@ configurations.configureEach { exclude(module = "commons-logging") } -val canonicalVersionCode = 434 -val canonicalVersionName = "1.30.1" +val canonicalVersionCode = 435 +val canonicalVersionName = "1.30.2" val postFixSize = 10 val abiPostFix = mapOf( diff --git a/app/src/main/java/org/thoughtcrime/securesms/pro/FetchProDetailsWorker.kt b/app/src/main/java/org/thoughtcrime/securesms/pro/FetchProDetailsWorker.kt index 9817861b3b..2e0f64debb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/pro/FetchProDetailsWorker.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/pro/FetchProDetailsWorker.kt @@ -22,6 +22,7 @@ import org.session.libsession.snode.SnodeClock import org.session.libsession.utilities.ConfigFactoryProtocol import org.session.libsession.utilities.withMutableUserConfigs import org.session.libsession.utilities.withUserConfigs +import org.session.libsession.utilities.TextSecurePreferences import org.session.libsignal.exceptions.NonRetryableException import org.session.libsignal.utilities.Log import org.thoughtcrime.securesms.auth.LoginStateRepository @@ -50,8 +51,14 @@ class FetchProDetailsWorker @AssistedInject constructor( private val loginStateRepository: LoginStateRepository, private val snodeClock: SnodeClock, private val configFactory: ConfigFactoryProtocol, + private val prefs: TextSecurePreferences, ) : CoroutineWorker(context, params) { override suspend fun doWork(): Result { + if (!prefs.forcePostPro()) { + Log.d(TAG, "Pro details fetch skipped because pro is not enabled") + return Result.success() + } + val proMasterKey = requireNotNull(loginStateRepository.peekLoginState()?.seeded?.proMasterPrivateKey) { "User must be logged in to fetch pro details" diff --git a/app/src/main/java/org/thoughtcrime/securesms/pro/ProDetailsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/pro/ProDetailsRepository.kt index c674d04cbc..97a52d7844 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/pro/ProDetailsRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/pro/ProDetailsRepository.kt @@ -12,6 +12,7 @@ import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onStart import kotlinx.coroutines.flow.stateIn import org.session.libsession.snode.SnodeClock +import org.session.libsession.utilities.TextSecurePreferences import org.session.libsignal.utilities.Log import org.thoughtcrime.securesms.auth.LoginStateRepository import org.thoughtcrime.securesms.debugmenu.DebugLogGroup @@ -29,6 +30,7 @@ class ProDetailsRepository @Inject constructor( private val snodeClock: SnodeClock, @ManagerScope scope: CoroutineScope, loginStateRepository: LoginStateRepository, + private val prefs: TextSecurePreferences, ) { sealed interface LoadState { val lastUpdated: Pair? @@ -83,6 +85,11 @@ class ProDetailsRepository @Inject constructor( * made regardless of the freshness of the last update. */ fun requestRefresh(force: Boolean = false) { + if (!prefs.forcePostPro()) { + Log.d(DebugLogGroup.PRO_DATA.label, "Pro hasn't been enabled, skipping refresh") + return + } + val currentState = loadState.value if (!force && (currentState is LoadState.Loading || currentState is LoadState.Loaded) && currentState.lastUpdated?.second?.plusSeconds(MIN_UPDATE_INTERVAL_SECONDS)