diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt index 1abed8748..e69ac7119 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt @@ -436,7 +436,7 @@ open class Storage(context: Context, helper: SQLCipherOpenHelper, private val co } override fun isCheckingCommunityRequests(): Boolean { - return configFactory.user?.getBlocksCommunityMessageRequests() != true + return configFactory.user?.getCommunityMessageRequests() != true } fun notifyUpdates(forConfigObject: ConfigBase) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt index 72bd098f4..76349ec4a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt @@ -71,8 +71,8 @@ import org.thoughtcrime.securesms.onboarding.SeedActivity import org.thoughtcrime.securesms.onboarding.SeedReminderViewDelegate import org.thoughtcrime.securesms.permissions.Permissions import org.thoughtcrime.securesms.preferences.SettingsActivity -import org.thoughtcrime.securesms.showSessionDialog import org.thoughtcrime.securesms.showMuteDialog +import org.thoughtcrime.securesms.showSessionDialog import org.thoughtcrime.securesms.util.ConfigurationMessageUtilities import org.thoughtcrime.securesms.util.DateUtils import org.thoughtcrime.securesms.util.IP2Country @@ -298,12 +298,17 @@ class HomeActivity : PassphraseRequiredActionBarActivity(), } EventBus.getDefault().register(this@HomeActivity) if (intent.hasExtra(FROM_ONBOARDING) - && intent.getBooleanExtra(FROM_ONBOARDING, false) - && !(getSystemService(NOTIFICATION_SERVICE) as NotificationManager).areNotificationsEnabled() - ) { - Permissions.with(this) - .request(Manifest.permission.POST_NOTIFICATIONS) - .execute() + && intent.getBooleanExtra(FROM_ONBOARDING, false)) { + if (!(getSystemService(NOTIFICATION_SERVICE) as NotificationManager).areNotificationsEnabled()) { + Permissions.with(this) + .request(Manifest.permission.POST_NOTIFICATIONS) + .execute() + } + configFactory.user?.let { user -> + if (!user.isBlockCommunityMessageRequestsSet()) { + user.setCommunityMessageRequests(false) + } + } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/PrivacySettingsPreferenceFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/preferences/PrivacySettingsPreferenceFragment.kt index e73cab4e0..9127b81ef 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/PrivacySettingsPreferenceFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/PrivacySettingsPreferenceFragment.kt @@ -47,14 +47,14 @@ class PrivacySettingsPreferenceFragment : ListSummaryPreferenceFragment() { override fun getBoolean(key: String?, defValue: Boolean): Boolean { if (key == TextSecurePreferences.ALLOW_MESSAGE_REQUESTS) { - return !user.getBlocksCommunityMessageRequests() + return user.getCommunityMessageRequests() } return super.getBoolean(key, defValue) } override fun putBoolean(key: String?, value: Boolean) { if (key == TextSecurePreferences.ALLOW_MESSAGE_REQUESTS) { - user.setBlocksCommunityMessageRequests(!value) + user.setCommunityMessageRequests(value) return } super.putBoolean(key, value) diff --git a/libsession-util/src/main/cpp/user_profile.cpp b/libsession-util/src/main/cpp/user_profile.cpp index 57a0f6ded..5b3980e63 100644 --- a/libsession-util/src/main/cpp/user_profile.cpp +++ b/libsession-util/src/main/cpp/user_profile.cpp @@ -98,7 +98,7 @@ Java_network_loki_messenger_libsession_1util_UserProfile_getNtsPriority(JNIEnv * } extern "C" JNIEXPORT jboolean JNICALL -Java_network_loki_messenger_libsession_1util_UserProfile_getBlocksCommunityMessageRequests( +Java_network_loki_messenger_libsession_1util_UserProfile_getCommunityMessageRequests( JNIEnv *env, jobject thiz) { std::lock_guard lock{util::util_mutex_}; auto profile = ptrToProfile(env, thiz); @@ -111,9 +111,17 @@ Java_network_loki_messenger_libsession_1util_UserProfile_getBlocksCommunityMessa extern "C" JNIEXPORT void JNICALL -Java_network_loki_messenger_libsession_1util_UserProfile_setBlocksCommunityMessageRequests( +Java_network_loki_messenger_libsession_1util_UserProfile_setCommunityMessageRequests( JNIEnv *env, jobject thiz, jboolean blocks) { std::lock_guard lock{util::util_mutex_}; auto profile = ptrToProfile(env, thiz); profile->set_blinded_msgreqs(std::optional{(bool)blocks}); +} +extern "C" +JNIEXPORT jboolean JNICALL +Java_network_loki_messenger_libsession_1util_UserProfile_isBlockCommunityMessageRequestsSet( + JNIEnv *env, jobject thiz) { + std::lock_guard lock{util::util_mutex_}; + auto profile = ptrToProfile(env, thiz); + return profile->get_blinded_msgreqs().has_value(); } \ No newline at end of file diff --git a/libsession-util/src/main/java/network/loki/messenger/libsession_util/Config.kt b/libsession-util/src/main/java/network/loki/messenger/libsession_util/Config.kt index 5e93985db..7dc41d7fd 100644 --- a/libsession-util/src/main/java/network/loki/messenger/libsession_util/Config.kt +++ b/libsession-util/src/main/java/network/loki/messenger/libsession_util/Config.kt @@ -126,8 +126,9 @@ class UserProfile(pointer: Long) : ConfigBase(pointer) { external fun setPic(userPic: UserPic) external fun setNtsPriority(priority: Int) external fun getNtsPriority(): Int - external fun getBlocksCommunityMessageRequests(): Boolean - external fun setBlocksCommunityMessageRequests(blocks: Boolean) + external fun getCommunityMessageRequests(): Boolean + external fun setCommunityMessageRequests(blocks: Boolean) + external fun isBlockCommunityMessageRequestsSet(): Boolean } class ConversationVolatileConfig(pointer: Long): ConfigBase(pointer) { diff --git a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageSender.kt b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageSender.kt index 550ebbd6c..9add39d09 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageSender.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/MessageSender.kt @@ -247,7 +247,7 @@ object MessageSender { } configFactory.user?.let { user -> if (message is VisibleMessage) { - message.blocksMessageRequests = user.getBlocksCommunityMessageRequests() + message.blocksMessageRequests = user.getCommunityMessageRequests() } } val userEdKeyPair = MessagingModuleConfiguration.shared.getUserED25519KeyPair()!!