mirror of
https://github.com/oxen-io/session-android.git
synced 2025-04-01 06:02:14 +00:00
Linking Version util to the app
This commit is contained in:
parent
35a9f9fbbe
commit
d3990572a0
app/src/main/java/org/thoughtcrime/securesms
@ -86,6 +86,7 @@ import org.thoughtcrime.securesms.sskenvironment.ProfileManager;
|
|||||||
import org.thoughtcrime.securesms.sskenvironment.ReadReceiptManager;
|
import org.thoughtcrime.securesms.sskenvironment.ReadReceiptManager;
|
||||||
import org.thoughtcrime.securesms.sskenvironment.TypingStatusRepository;
|
import org.thoughtcrime.securesms.sskenvironment.TypingStatusRepository;
|
||||||
import org.thoughtcrime.securesms.util.Broadcaster;
|
import org.thoughtcrime.securesms.util.Broadcaster;
|
||||||
|
import org.thoughtcrime.securesms.util.VersionUtil;
|
||||||
import org.thoughtcrime.securesms.util.dynamiclanguage.LocaleParseHelper;
|
import org.thoughtcrime.securesms.util.dynamiclanguage.LocaleParseHelper;
|
||||||
import org.thoughtcrime.securesms.webrtc.CallMessageProcessor;
|
import org.thoughtcrime.securesms.webrtc.CallMessageProcessor;
|
||||||
import org.webrtc.PeerConnectionFactory;
|
import org.webrtc.PeerConnectionFactory;
|
||||||
@ -142,6 +143,7 @@ public class ApplicationContext extends Application implements DefaultLifecycleO
|
|||||||
private HandlerThread conversationListHandlerThread;
|
private HandlerThread conversationListHandlerThread;
|
||||||
private Handler conversationListHandler;
|
private Handler conversationListHandler;
|
||||||
private PersistentLogger persistentLogger;
|
private PersistentLogger persistentLogger;
|
||||||
|
private VersionUtil versionUtil;
|
||||||
|
|
||||||
@Inject LokiAPIDatabase lokiAPIDatabase;
|
@Inject LokiAPIDatabase lokiAPIDatabase;
|
||||||
@Inject public Storage storage;
|
@Inject public Storage storage;
|
||||||
@ -248,6 +250,7 @@ public class ApplicationContext extends Application implements DefaultLifecycleO
|
|||||||
resubmitProfilePictureIfNeeded();
|
resubmitProfilePictureIfNeeded();
|
||||||
loadEmojiSearchIndexIfNeeded();
|
loadEmojiSearchIndexIfNeeded();
|
||||||
EmojiSource.refresh();
|
EmojiSource.refresh();
|
||||||
|
versionUtil = new VersionUtil(this, textSecurePreferences);
|
||||||
|
|
||||||
NetworkConstraint networkConstraint = new NetworkConstraint.Factory(this).create();
|
NetworkConstraint networkConstraint = new NetworkConstraint.Factory(this).create();
|
||||||
HTTP.INSTANCE.setConnectedToNetwork(networkConstraint::isMet);
|
HTTP.INSTANCE.setConnectedToNetwork(networkConstraint::isMet);
|
||||||
@ -274,6 +277,10 @@ public class ApplicationContext extends Application implements DefaultLifecycleO
|
|||||||
|
|
||||||
OpenGroupManager.INSTANCE.startPolling();
|
OpenGroupManager.INSTANCE.startPolling();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// try to fetch last version now and start the version polling
|
||||||
|
versionUtil.fetchVersionData();
|
||||||
|
versionUtil.startTimedVersionCheck();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -286,12 +293,14 @@ public class ApplicationContext extends Application implements DefaultLifecycleO
|
|||||||
poller.stopIfNeeded();
|
poller.stopIfNeeded();
|
||||||
}
|
}
|
||||||
ClosedGroupPollerV2.getShared().stopAll();
|
ClosedGroupPollerV2.getShared().stopAll();
|
||||||
|
versionUtil.stopTimedVersionCheck();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTerminate() {
|
public void onTerminate() {
|
||||||
stopKovenant(); // Loki
|
stopKovenant(); // Loki
|
||||||
OpenGroupManager.INSTANCE.stopPolling();
|
OpenGroupManager.INSTANCE.stopPolling();
|
||||||
|
versionUtil.clear();
|
||||||
super.onTerminate();
|
super.onTerminate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,12 @@ package org.thoughtcrime.securesms.util
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
|
import android.util.Log
|
||||||
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.Job
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
import org.session.libsession.messaging.file_server.FileServerApi
|
||||||
import org.session.libsession.utilities.TextSecurePreferences
|
import org.session.libsession.utilities.TextSecurePreferences
|
||||||
|
|
||||||
class VersionUtil(
|
class VersionUtil(
|
||||||
@ -13,6 +19,9 @@ class VersionUtil(
|
|||||||
private val handler = Handler(Looper.getMainLooper())
|
private val handler = Handler(Looper.getMainLooper())
|
||||||
private val runnable: Runnable
|
private val runnable: Runnable
|
||||||
|
|
||||||
|
private val scope = CoroutineScope(Dispatchers.Default)
|
||||||
|
private var job: Job? = null
|
||||||
|
|
||||||
init {
|
init {
|
||||||
runnable = Runnable {
|
runnable = Runnable {
|
||||||
// Task to be executed every 4 hours
|
// Task to be executed every 4 hours
|
||||||
@ -31,11 +40,28 @@ class VersionUtil(
|
|||||||
handler.removeCallbacks(runnable)
|
handler.removeCallbacks(runnable)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun fetchVersionData() {
|
fun clear() {
|
||||||
|
job?.cancel()
|
||||||
|
stopTimedVersionCheck()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun fetchVersionData() {
|
||||||
|
Log.d("", "***** Trying to fetch version. Last check: ${prefs.getLastVersionCheck()}")
|
||||||
// only perform this if at least 4h has elapsed since th last successful check
|
// only perform this if at least 4h has elapsed since th last successful check
|
||||||
if(prefs.getLastVersionCheck() < FOUR_HOURS) return
|
if(prefs.getLastVersionCheck() < FOUR_HOURS) return
|
||||||
|
|
||||||
|
job = scope.launch {
|
||||||
|
try {
|
||||||
|
// perform the version check
|
||||||
|
Log.d("", "***** Fetching last version")
|
||||||
|
val clientVersion = FileServerApi.getClientVersion()
|
||||||
|
Log.d("", "***** Got version: $clientVersion")
|
||||||
|
prefs.setLastVersionCheck()
|
||||||
|
} catch (e: Exception) {
|
||||||
|
// we can silently ignore the error
|
||||||
|
Log.e("", "***** Error fetching version", e)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user