Skip to content

Commit 9ab55e7

Browse files
Okuro3499dogi
andauthored
sync: smoother auto working (fixes #8984) (#8998)
Co-authored-by: dogi <[email protected]>
1 parent dd698c1 commit 9ab55e7

File tree

3 files changed

+32
-21
lines changed

3 files changed

+32
-21
lines changed

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ android {
99
applicationId "org.ole.planet.myplanet"
1010
minSdk = 26
1111
targetSdk = 36
12-
versionCode = 3713
13-
versionName = "0.37.13"
12+
versionCode = 3714
13+
versionName = "0.37.14"
1414
ndkVersion = '26.3.11579264'
1515
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1616
vectorDrawables.useSupportLibrary = true

app/src/main/java/org/ole/planet/myplanet/service/AutoSyncWorker.kt

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import androidx.work.Worker
99
import androidx.work.WorkerParameters
1010
import dagger.hilt.android.EntryPointAccessors
1111
import java.util.Date
12+
import java.util.concurrent.ExecutorService
13+
import java.util.concurrent.Executors
1214
import org.ole.planet.myplanet.MainApplication
1315
import org.ole.planet.myplanet.callback.SuccessListener
1416
import org.ole.planet.myplanet.callback.SyncListener
@@ -26,11 +28,11 @@ class AutoSyncWorker(
2628
private val context: Context,
2729
workerParams: WorkerParameters
2830
) : Worker(context, workerParams), SyncListener, CheckVersionCallback, SuccessListener {
29-
3031
private lateinit var preferences: SharedPreferences
3132
private lateinit var syncManager: SyncManager
3233
private lateinit var uploadManager: UploadManager
3334
private lateinit var uploadToShelfService: UploadToShelfService
35+
private val backgroundExecutor: ExecutorService = Executors.newSingleThreadExecutor()
3436

3537
override fun doWork(): Result {
3638
preferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
@@ -78,22 +80,24 @@ class AutoSyncWorker(
7880
}
7981
if (!MainApplication.isSyncRunning) {
8082
MainApplication.isSyncRunning = true
81-
uploadManager.uploadExamResult(this)
82-
uploadManager.uploadFeedback(this)
83-
uploadManager.uploadAchievement()
84-
uploadManager.uploadResourceActivities("")
85-
uploadManager.uploadUserActivities(this)
86-
uploadManager.uploadCourseActivities()
87-
uploadManager.uploadSearchActivity()
88-
uploadManager.uploadRating()
89-
uploadManager.uploadResource(this)
90-
uploadManager.uploadNews()
91-
uploadManager.uploadTeams()
92-
uploadManager.uploadTeamTask()
93-
uploadManager.uploadMeetups()
94-
uploadManager.uploadCrashLog()
95-
uploadManager.uploadSubmissions()
96-
uploadManager.uploadActivities { MainApplication.isSyncRunning = false }
83+
backgroundExecutor.execute {
84+
uploadManager.uploadExamResult(this@AutoSyncWorker)
85+
uploadManager.uploadFeedback(this@AutoSyncWorker)
86+
uploadManager.uploadAchievement()
87+
uploadManager.uploadResourceActivities("")
88+
uploadManager.uploadUserActivities(this@AutoSyncWorker)
89+
uploadManager.uploadCourseActivities()
90+
uploadManager.uploadSearchActivity()
91+
uploadManager.uploadRating()
92+
uploadManager.uploadResource(this@AutoSyncWorker)
93+
uploadManager.uploadNews()
94+
uploadManager.uploadTeams()
95+
uploadManager.uploadTeamTask()
96+
uploadManager.uploadMeetups()
97+
uploadManager.uploadCrashLog()
98+
uploadManager.uploadSubmissions()
99+
uploadManager.uploadActivities { MainApplication.isSyncRunning = false }
100+
}
97101
}
98102
}
99103
}
@@ -103,6 +107,11 @@ class AutoSyncWorker(
103107
settings.edit { putLong("lastUsageUploaded", Date().time) }
104108
}
105109

110+
override fun onStopped() {
111+
super.onStopped()
112+
backgroundExecutor.shutdown()
113+
}
114+
106115
private fun isAppInForeground(context: Context): Boolean {
107116
val activityManager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
108117
val runningProcesses = activityManager.runningAppProcesses ?: return false

app/src/main/java/org/ole/planet/myplanet/service/UploadManager.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,9 +187,11 @@ class UploadManager @Inject constructor(
187187
submissionsToUpload.processInBatches { data ->
188188
try {
189189
val response: JsonObject? = if (TextUtils.isEmpty(data._id)) {
190-
apiInterface?.postDoc(UrlUtils.header, "application/json", "${UrlUtils.getUrl()}/submissions", data.serialized)?.execute()?.body()
190+
apiInterface.postDoc(UrlUtils.header, "application/json", "${UrlUtils.getUrl()}/submissions", data.serialized)
191+
.execute().body()
191192
} else {
192-
apiInterface?.putDoc(UrlUtils.header, "application/json", "${UrlUtils.getUrl()}/submissions/${data._id}", data.serialized)?.execute()?.body()
193+
apiInterface.putDoc(UrlUtils.header, "application/json", "${UrlUtils.getUrl()}/submissions/${data._id}", data.serialized)
194+
.execute().body()
193195
}
194196

195197
if (response != null && data.id != null) {

0 commit comments

Comments
 (0)