mirror of
https://github.com/oxen-io/session-android.git
synced 2025-08-12 15:07:57 +00:00
implementation of polling limit on open groups
This commit is contained in:
@@ -4,6 +4,7 @@ import android.content.Context
|
||||
import android.net.Uri
|
||||
import okhttp3.HttpUrl
|
||||
import org.session.libsession.database.StorageProtocol
|
||||
import org.session.libsession.messaging.MessagingModuleConfiguration
|
||||
import org.session.libsession.messaging.jobs.AttachmentUploadJob
|
||||
import org.session.libsession.messaging.jobs.Job
|
||||
import org.session.libsession.messaging.jobs.JobQueue
|
||||
@@ -301,6 +302,8 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
|
||||
}
|
||||
|
||||
override fun getLastMessageServerId(room: String, server: String): Long? {
|
||||
// return null if limit is set on open groups polling
|
||||
if (TextSecurePreferences.isOpenGroupPollingLimit(context)) return null
|
||||
return DatabaseFactory.getLokiAPIDatabase(context).getLastMessageServerID(room, server)
|
||||
}
|
||||
|
||||
@@ -325,6 +328,8 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context,
|
||||
}
|
||||
|
||||
override fun getLastDeletionServerId(room: String, server: String): Long? {
|
||||
// return null if limit is set on open groups polling
|
||||
if (TextSecurePreferences.isOpenGroupPollingLimit(context)) return null
|
||||
return DatabaseFactory.getLokiAPIDatabase(context).getLastDeletionServerID(room, server)
|
||||
}
|
||||
|
||||
|
@@ -32,6 +32,7 @@ import org.session.libsession.messaging.jobs.JobQueue
|
||||
import org.session.libsession.messaging.mentions.MentionsManager
|
||||
import org.session.libsession.messaging.open_groups.OpenGroupAPI
|
||||
import org.session.libsession.messaging.sending_receiving.MessageSender
|
||||
import org.session.libsession.messaging.sending_receiving.pollers.OpenGroupPollerV2
|
||||
import org.session.libsession.utilities.*
|
||||
import org.session.libsignal.utilities.toHexString
|
||||
import org.session.libsignal.utilities.ThreadUtils
|
||||
@@ -66,6 +67,8 @@ class HomeActivity : PassphraseRequiredActionBarActivity(),
|
||||
// region Lifecycle
|
||||
override fun onCreate(savedInstanceState: Bundle?, isReady: Boolean) {
|
||||
super.onCreate(savedInstanceState, isReady)
|
||||
// Check when Session was last opened
|
||||
setPollingLimit();
|
||||
// Double check that the long poller is up
|
||||
(applicationContext as ApplicationContext).startPollingIfNeeded()
|
||||
// Set content view
|
||||
@@ -194,6 +197,15 @@ class HomeActivity : PassphraseRequiredActionBarActivity(),
|
||||
super.onDestroy()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
fun setPollingLimit() {
|
||||
val lastTimeSessionOpened = TextSecurePreferences.getLastTimeSessionOpened(this)
|
||||
val timeSinceLastTimeOpen = System.currentTimeMillis() - lastTimeSessionOpened
|
||||
|
||||
// activate polling limit on open groups if the app hasn't been opened for more than the duration set in MAX_INACTIVITY_PERIOD
|
||||
TextSecurePreferences.setOpenGroupPollingLimit(this, timeSinceLastTimeOpen > OpenGroupPollerV2.maxInactivityPeriod)
|
||||
TextSecurePreferences.setLastTimeSessionOpened(this)
|
||||
}
|
||||
// endregion
|
||||
|
||||
// region Updating
|
||||
|
Reference in New Issue
Block a user