Skip to content

Commit fcb0efe

Browse files
authored
Merge branch 'master' into 13464-download-function-intermittently-broken-delay-or-never-starts-3
2 parents 4cb02d4 + aeb5c93 commit fcb0efe

95 files changed

Lines changed: 3534 additions & 3085 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app/build.gradle

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,13 @@ android {
1212
applicationId "org.ole.planet.myplanet"
1313
minSdk = 26
1414
targetSdk = 36
15+
<<<<<<< 13464-download-function-intermittently-broken-delay-or-never-starts-3
1516
versionCode = 5590
1617
versionName = "0.55.90"
18+
=======
19+
versionCode = 5589
20+
versionName = "0.55.89"
21+
>>>>>>> master
1722
ndkVersion = '26.3.11579264'
1823
vectorDrawables.useSupportLibrary = true
1924
}

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,6 @@
8585
<activity
8686
android:name=".ui.resources.AddResourceActivity"
8787
android:theme="@style/AppTheme" />
88-
<activity android:name=".ui.viewer.AudioPlayerActivity"
89-
android:configChanges="orientation|screenSize" />
9088
<activity
9189
android:name=".ui.feedback.FeedbackDetailActivity"
9290
android:theme="@style/AppTheme" />
@@ -96,19 +94,9 @@
9694
android:label="@string/title_activity_dashboard"
9795
android:windowSoftInputMode="adjustResize"
9896
android:theme="@style/FullscreenTheme" />
99-
<activity android:name=".ui.viewer.PDFReaderActivity"
100-
android:configChanges="orientation|screenSize" />
10197
<activity android:name=".ui.viewer.WebViewActivity"
10298
android:configChanges="orientation|screenSize" />
103-
<activity android:name=".ui.viewer.VideoViewerActivity"
104-
android:configChanges="orientation|screenSize" />
105-
<activity android:name=".ui.viewer.ImageViewerActivity"
106-
android:configChanges="orientation|screenSize" />
107-
<activity android:name=".ui.viewer.TextFileViewerActivity"
108-
android:configChanges="orientation|screenSize" />
109-
<activity android:name=".ui.viewer.MarkdownViewerActivity"
110-
android:configChanges="orientation|screenSize" />
111-
<activity android:name=".ui.viewer.CSVViewerActivity"
99+
<activity android:name=".ui.viewer.ResourceViewerActivity"
112100
android:configChanges="orientation|screenSize" />
113101
<activity
114102
android:name=".ui.dictionary.DictionaryActivity"

app/src/main/java/org/ole/planet/myplanet/model/ChatMessage.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ data class ChatMessage(
88
companion object {
99
const val QUERY = 1
1010
const val RESPONSE = 2
11+
const val LOAD_MORE = 3
1112
const val RESPONSE_SOURCE_UNKNOWN = 0
1213
const val RESPONSE_SOURCE_SHARED_VIEW_MODEL = 1
1314
const val RESPONSE_SOURCE_NETWORK = 2

app/src/main/java/org/ole/planet/myplanet/model/RealmMyCourse.kt

Lines changed: 3 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,15 @@
11
package org.ole.planet.myplanet.model
22

33
import android.text.TextUtils
4-
import android.util.Base64
54
import com.google.gson.JsonArray
65
import com.google.gson.JsonObject
76
import io.realm.Realm
87
import io.realm.RealmList
98
import io.realm.RealmObject
109
import io.realm.annotations.Index
1110
import io.realm.annotations.PrimaryKey
12-
import org.ole.planet.myplanet.model.RealmMyLibrary.Companion.createStepResource
13-
import org.ole.planet.myplanet.model.RealmStepExam.Companion.insertCourseStepsExams
1411
import org.ole.planet.myplanet.services.SharedPrefManager
15-
import org.ole.planet.myplanet.utils.DownloadUtils.extractLinks
1612
import org.ole.planet.myplanet.utils.JsonUtils
17-
import org.ole.planet.myplanet.utils.UrlUtils
1813

1914
open class RealmMyCourse : RealmObject() {
2015
@PrimaryKey
@@ -65,62 +60,13 @@ open class RealmMyCourse : RealmObject() {
6560
private val concatenatedLinks = HashSet<String>()
6661

6762
@JvmStatic
68-
fun insertMyCourses(userId: String?, myCoursesDoc: JsonObject?, mRealm: Realm, spm: SharedPrefManager) {
69-
val id = JsonUtils.getString("_id", myCoursesDoc)
70-
var myMyCoursesDB = mRealm.where(RealmMyCourse::class.java).equalTo("id", id).findFirst()
71-
if (myMyCoursesDB == null) {
72-
myMyCoursesDB = mRealm.createObject(RealmMyCourse::class.java, id)
73-
}
74-
myMyCoursesDB?.setUserId(userId)
75-
myMyCoursesDB?.courseId = JsonUtils.getString("_id", myCoursesDoc)
76-
myMyCoursesDB?.courseRev = JsonUtils.getString("_rev", myCoursesDoc)
77-
myMyCoursesDB?.languageOfInstruction = JsonUtils.getString("languageOfInstruction", myCoursesDoc)
78-
myMyCoursesDB?.courseTitle = JsonUtils.getString("courseTitle", myCoursesDoc)
79-
myMyCoursesDB?.memberLimit = JsonUtils.getInt("memberLimit", myCoursesDoc)
80-
val description = JsonUtils.getString("description", myCoursesDoc)
81-
myMyCoursesDB?.description = description
82-
val links = extractLinks(description)
83-
val baseUrl = UrlUtils.getUrl()
63+
fun addConcatenatedLink(link: String) {
8464
synchronized(concatenatedLinks) {
85-
for (link in links) {
86-
concatenatedLinks.add("$baseUrl/$link")
87-
}
65+
concatenatedLinks.add(link)
8866
}
89-
myMyCoursesDB?.method = JsonUtils.getString("method", myCoursesDoc)
90-
myMyCoursesDB?.gradeLevel = JsonUtils.getString("gradeLevel", myCoursesDoc)
91-
myMyCoursesDB?.subjectLevel = JsonUtils.getString("subjectLevel", myCoursesDoc)
92-
myMyCoursesDB?.createdDate = JsonUtils.getLong("createdDate", myCoursesDoc)
93-
val courseStepsJsonArray = JsonUtils.getJsonArray("steps", myCoursesDoc)
94-
val stepsSize = courseStepsJsonArray.size()
95-
myMyCoursesDB?.setNumberOfSteps(stepsSize)
96-
val courseStepsList = mutableListOf<RealmCourseStep>()
97-
98-
for (i in 0 until stepsSize) {
99-
val stepElement = courseStepsJsonArray[i]
100-
val stepId = Base64.encodeToString(stepElement.toString().toByteArray(), Base64.NO_WRAP)
101-
val stepJson = stepElement.asJsonObject
102-
val step = RealmCourseStep()
103-
step.id = stepId
104-
step.stepTitle = JsonUtils.getString("stepTitle", stepJson)
105-
val stepDescription = JsonUtils.getString("description", stepJson)
106-
step.description = stepDescription
107-
val stepLinks = extractLinks(stepDescription)
108-
synchronized(concatenatedLinks) {
109-
for (stepLink in stepLinks) {
110-
concatenatedLinks.add("$baseUrl/$stepLink")
111-
}
112-
}
113-
insertCourseStepsAttachments(myMyCoursesDB?.courseId, stepId, JsonUtils.getJsonArray("resources", stepJson), mRealm, spm)
114-
insertExam(stepJson, mRealm, stepId, i + 1, myMyCoursesDB?.courseId)
115-
insertSurvey(stepJson, mRealm, stepId, i + 1, myMyCoursesDB?.courseId, myMyCoursesDB?.createdDate)
116-
step.noOfResources = JsonUtils.getJsonArray("resources", stepJson).size()
117-
step.courseId = myMyCoursesDB?.courseId
118-
courseStepsList.add(step)
119-
}
120-
myMyCoursesDB?.courseSteps = RealmList()
121-
myMyCoursesDB?.courseSteps?.addAll(courseStepsList)
12267
}
12368

69+
12470
@JvmStatic
12571
fun saveConcatenatedLinksToPrefs(spm: SharedPrefManager) {
12672
val existingJsonLinks = spm.getConcatenatedLinks()
@@ -142,49 +88,9 @@ open class RealmMyCourse : RealmObject() {
14288
}
14389

14490

145-
private fun insertExam(stepContainer: JsonObject, mRealm: Realm, stepId: String, i: Int, myCoursesID: String?) {
146-
if (stepContainer.has("exam")) {
147-
val `object` = stepContainer.getAsJsonObject("exam")
148-
`object`.addProperty("stepNumber", i)
149-
insertCourseStepsExams(myCoursesID, stepId, `object`, mRealm)
150-
}
151-
}
15291

153-
private fun insertSurvey(stepContainer: JsonObject, mRealm: Realm, stepId: String, i: Int, myCoursesID: String?, createdDate: Long?) {
154-
if (stepContainer.has("survey")) {
155-
val `object` = stepContainer.getAsJsonObject("survey")
156-
`object`.addProperty("stepNumber", i)
157-
`object`.addProperty("createdDate", createdDate)
158-
insertCourseStepsExams(myCoursesID, stepId, `object`, mRealm)
159-
}
160-
}
16192

162-
private fun insertCourseStepsAttachments(myCoursesID: String?, stepId: String?, resources: JsonArray, mRealm: Realm?, spm: SharedPrefManager) {
163-
resources.forEach { resource ->
164-
if (mRealm != null) {
165-
createStepResource(mRealm, resource.asJsonObject, myCoursesID, stepId, spm)
166-
}
167-
}
168-
}
16993

170-
@JvmStatic
171-
fun insert(mRealm: Realm, myCoursesDoc: JsonObject?, spm: SharedPrefManager) {
172-
val startedTransaction = !mRealm.isInTransaction
173-
if (startedTransaction) {
174-
mRealm.beginTransaction()
175-
}
176-
try {
177-
insertMyCourses("", myCoursesDoc, mRealm, spm)
178-
if (startedTransaction) {
179-
mRealm.commitTransaction()
180-
}
181-
} catch (e: Exception) {
182-
if (startedTransaction && mRealm.isInTransaction) {
183-
mRealm.cancelTransaction()
184-
}
185-
throw e
186-
}
187-
}
18894

18995
@JvmStatic
19096
fun serialize(course: RealmMyCourse, realm: Realm): JsonObject {

app/src/main/java/org/ole/planet/myplanet/repository/ActivitiesRepository.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ interface ActivitiesRepository {
2222
suspend fun getUnuploadedLoginActivities(): List<org.ole.planet.myplanet.model.LoginActivityData>
2323
suspend fun markActivitiesUploaded(ids: Array<String>, revMap: Map<String, com.google.gson.JsonObject?>)
2424
suspend fun recordSyncActivity(userId: String)
25+
suspend fun recordSyncUserChallengeAction(userId: String)
2526
suspend fun insertActivity(json: JsonObject)
2627
suspend fun getRecentLogin(): RealmOfflineActivity?
2728
suspend fun insertSearchActivityFromNewsLog(log: org.ole.planet.myplanet.model.RealmNewsLog)

app/src/main/java/org/ole/planet/myplanet/repository/ActivitiesRepositoryImpl.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,19 @@ class ActivitiesRepositoryImpl @Inject constructor(
235235
}
236236

237237

238+
override suspend fun recordSyncUserChallengeAction(userId: String) {
239+
executeTransaction { realm ->
240+
val action = realm.createObject(
241+
org.ole.planet.myplanet.model.RealmUserChallengeActions::class.java,
242+
UUID.randomUUID().toString()
243+
)
244+
action.userId = userId
245+
action.actionType = "sync"
246+
action.resourceId = null
247+
action.time = System.currentTimeMillis()
248+
}
249+
}
250+
238251
override suspend fun recordSyncActivity(userId: String) {
239252
val user = userRepository.get().getUserById(userId)
240253
if (user == null || user.id?.startsWith("guest") == true) {

app/src/main/java/org/ole/planet/myplanet/repository/CoursesRepository.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ interface CoursesRepository {
6060
suspend fun removeCourseFromShelf(courseId: String, userId: String)
6161
suspend fun logCourseVisit(courseId: String, title: String, userId: String)
6262
suspend fun getCurrentProgress(steps: List<RealmCourseStep?>?, userId: String?, courseId: String?): Int
63-
suspend fun getCourseProgress(userId: String?): java.util.HashMap<String?, com.google.gson.JsonObject>
63+
suspend fun getCourseProgress(userId: String?, courseIds: List<String>): java.util.HashMap<String?, com.google.gson.JsonObject>
6464
suspend fun isStepCompleted(stepId: String?, userId: String?): Boolean
6565
suspend fun hasUnfinishedSurveys(courseId: String, userId: String?): Boolean
6666
suspend fun getCourseTags(courseId: String): List<RealmTag>

0 commit comments

Comments
 (0)