diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c6ca2650d6..6d6712c4aa 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -22,6 +22,7 @@
android:versionCode="845"
android:versionName="5.0.845">
+
diff --git a/app/src/main/java/net/bible/android/view/activity/page/MainBibleActivity.kt b/app/src/main/java/net/bible/android/view/activity/page/MainBibleActivity.kt
index 0a5c95f655..b65bda57fa 100644
--- a/app/src/main/java/net/bible/android/view/activity/page/MainBibleActivity.kt
+++ b/app/src/main/java/net/bible/android/view/activity/page/MainBibleActivity.kt
@@ -26,6 +26,8 @@ import android.content.pm.PackageManager
import android.content.res.Configuration
import android.graphics.Color
import android.media.AudioManager
+import android.net.ConnectivityManager
+import android.net.Network
import android.net.Uri
import android.os.Build
import android.os.Bundle
@@ -311,11 +313,21 @@ class MainBibleActivity : CustomTitlebarActivityBase() {
}
initialized = true
}
- syncScope.launch { startSync() }
if(intent.hasExtra("openLink")) {
val uri = Uri.parse(intent.getStringExtra("openLink"))
openLink(uri)
}
+ val connManager = getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ connManager.registerDefaultNetworkCallback(networkCallback)
+ }
+ }
+
+ var networkCallback = object: ConnectivityManager.NetworkCallback() {
+ override fun onAvailable(network: Network) {
+ super.onAvailable(network)
+ syncScope.launch { startSync() }
+ }
}
override fun fixNightMode() {} // handle this manually here
@@ -1396,7 +1408,6 @@ class MainBibleActivity : CustomTitlebarActivityBase() {
windowRepository.saveIntoDb(false)
if (force || (now - max(lastSynchronized, lastTouched) > syncInterval && CloudSync.hasChanges())) {
Log.i(TAG, "Performing periodic sync")
- CommonUtils.settings.setLong("globalLastSynchronized", now)
if(!CloudSync.signedIn) {
CloudSync.signIn(this@MainBibleActivity)
}
@@ -1406,6 +1417,12 @@ class MainBibleActivity : CustomTitlebarActivityBase() {
}
}
+ fun onEvent(event: CloudSyncEvent) {
+ if (!event.running) {
+ CommonUtils.settings.setLong("globalLastSynchronized", now)
+ }
+ }
+
private fun stopPeriodicSync() {
syncJob?.cancel()
syncJob = null
@@ -1418,10 +1435,7 @@ class MainBibleActivity : CustomTitlebarActivityBase() {
syncScope.launch { synchronize(true) }
} else {
updateActions()
- syncScope.launch {
- delay(5000) // Wait a little bit as wifi might be auto-turned on after returning from sleep
- startSync()
- }
+ syncScope.launch { startSync() }
}
}