Skip to content

Commit 1295b5b

Browse files
fix: mapping error
1 parent 8b028e5 commit 1295b5b

File tree

15 files changed

+5
-151
lines changed

15 files changed

+5
-151
lines changed
Lines changed: 0 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package org.openedx.core.extension
22

3-
import android.os.Parcelable
43
import android.util.Patterns
5-
import kotlinx.parcelize.Parcelize
64
import org.jsoup.Jsoup
75
import org.jsoup.nodes.Document
86
import org.jsoup.select.Elements
@@ -36,84 +34,10 @@ object TextConverter : KoinComponent {
3634
return LinkedText(text, linksMap.toMap())
3735
}
3836

39-
fun textToLinkedImageText(html: String): LinkedImageText {
40-
val doc: Document =
41-
Jsoup.parse(html)
42-
val links: Elements = doc.select("a[href]")
43-
var text = doc.text()
44-
val headers = getHeaders(doc)
45-
val linksMap = mutableMapOf<String, String>()
46-
for (link in links) {
47-
if (isLinkValid(link.attr("href"))) {
48-
val linkText = if (link.hasText()) link.text() else link.attr("href")
49-
linksMap[linkText] = link.attr("href")
50-
} else {
51-
val resultLink =
52-
if (link.attr("href").isNotEmpty() && link.attr("href")[0] == '/') {
53-
link.attr("href").substring(1)
54-
} else {
55-
link.attr("href")
56-
}
57-
if (resultLink.isNotEmpty() && isLinkValid(config.getApiHostURL() + resultLink)) {
58-
linksMap[link.text()] = config.getApiHostURL() + resultLink
59-
}
60-
}
61-
}
62-
text = setSpacesForHeaders(text, headers)
63-
return LinkedImageText(
64-
text,
65-
linksMap.toMap(),
66-
getImageLinks(doc),
67-
headers
68-
)
69-
}
70-
7137
fun isLinkValid(link: String) = Patterns.WEB_URL.matcher(link.lowercase()).matches()
72-
73-
@Suppress("MagicNumber")
74-
private fun getHeaders(document: Document): List<String> {
75-
val headersList = mutableListOf<String>()
76-
for (index in 1..6) {
77-
if (document.select("h$index").hasText()) {
78-
headersList.add(document.select("h$index").text())
79-
}
80-
}
81-
return headersList.toList()
82-
}
83-
84-
private fun setSpacesForHeaders(text: String, headers: List<String>): String {
85-
var result = text
86-
headers.forEach {
87-
val startIndex = text.indexOf(it)
88-
val endIndex = startIndex + it.length + 1
89-
result = text.replaceRange(startIndex, endIndex, it + "\n")
90-
}
91-
return result
92-
}
93-
94-
private fun getImageLinks(document: Document): Map<String, String> {
95-
val imageLinks = mutableMapOf<String, String>()
96-
val elements = document.getElementsByTag("img")
97-
for (element in elements) {
98-
if (element.hasAttr("alt")) {
99-
imageLinks[element.attr("alt")] = element.attr("src")
100-
} else {
101-
imageLinks[element.attr("src")] = element.attr("src")
102-
}
103-
}
104-
return imageLinks.toMap()
105-
}
10638
}
10739

10840
data class LinkedText(
10941
val text: String,
11042
val links: Map<String, String>
11143
)
112-
113-
@Parcelize
114-
data class LinkedImageText(
115-
val text: String,
116-
val links: Map<String, String>,
117-
val imageLinks: Map<String, String>,
118-
val headers: List<String>
119-
) : Parcelable

discussion/src/main/java/org/openedx/discussion/data/model/response/CommentsResponse.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package org.openedx.discussion.data.model.response
33
import com.google.gson.annotations.SerializedName
44
import org.openedx.core.data.model.Pagination
55
import org.openedx.core.data.model.ProfileImage
6-
import org.openedx.core.extension.TextConverter
76
import org.openedx.discussion.domain.model.CommentsData
87
import org.openedx.discussion.domain.model.DiscussionComment
98

@@ -78,7 +77,6 @@ data class CommentResult(
7877
updatedAt,
7978
rawBody,
8079
renderedBody,
81-
TextConverter.textToLinkedImageText(renderedBody),
8280
abuseFlagged,
8381
voted,
8482
voteCount,

discussion/src/main/java/org/openedx/discussion/data/model/response/ThreadsResponse.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package org.openedx.discussion.data.model.response
33
import com.google.gson.annotations.SerializedName
44
import org.openedx.core.data.model.Pagination
55
import org.openedx.core.data.model.ProfileImage
6-
import org.openedx.core.extension.TextConverter
76
import org.openedx.discussion.domain.model.DiscussionType
87
import org.openedx.discussion.domain.model.ThreadsData
98

@@ -104,7 +103,6 @@ data class ThreadsResponse(
104103
updatedAt,
105104
rawBody,
106105
renderedBody,
107-
TextConverter.textToLinkedImageText(renderedBody),
108106
abuseFlagged,
109107
voted,
110108
voteCount,

discussion/src/main/java/org/openedx/discussion/domain/model/DiscussionComment.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package org.openedx.discussion.domain.model
33
import android.os.Parcelable
44
import kotlinx.parcelize.Parcelize
55
import org.openedx.core.domain.model.ProfileImage
6-
import org.openedx.core.extension.LinkedImageText
76

87
@Parcelize
98
data class DiscussionComment(
@@ -14,7 +13,6 @@ data class DiscussionComment(
1413
val updatedAt: String,
1514
val rawBody: String,
1615
val renderedBody: String,
17-
val parsedRenderedBody: LinkedImageText,
1816
val abuseFlagged: Boolean,
1917
val voted: Boolean,
2018
val voteCount: Int,

discussion/src/main/java/org/openedx/discussion/domain/model/Thread.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package org.openedx.discussion.domain.model
33
import android.os.Parcelable
44
import kotlinx.parcelize.Parcelize
55
import org.openedx.core.domain.model.ProfileImage
6-
import org.openedx.core.extension.LinkedImageText
76
import org.openedx.discussion.R
87

98
@Parcelize
@@ -15,7 +14,6 @@ data class Thread(
1514
val updatedAt: String,
1615
val rawBody: String,
1716
val renderedBody: String,
18-
val parsedRenderedBody: LinkedImageText,
1917
val abuseFlagged: Boolean,
2018
val voted: Boolean,
2119
val voteCount: Int,

discussion/src/main/java/org/openedx/discussion/presentation/comments/DiscussionCommentsFragment.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ import org.koin.android.ext.android.inject
7272
import org.koin.androidx.viewmodel.ext.android.viewModel
7373
import org.koin.core.parameter.parametersOf
7474
import org.openedx.core.domain.model.ProfileImage
75-
import org.openedx.core.extension.TextConverter
7675
import org.openedx.core.ui.BackBtn
7776
import org.openedx.core.ui.HandleUIMessage
7877
import org.openedx.core.ui.displayCutoutForLandscape
@@ -550,7 +549,6 @@ private val mockThread = org.openedx.discussion.domain.model.Thread(
550549
"",
551550
"",
552551
"",
553-
TextConverter.textToLinkedImageText(""),
554552
false,
555553
true,
556554
20,
@@ -585,7 +583,6 @@ private val mockComment = DiscussionComment(
585583
"",
586584
"",
587585
"",
588-
TextConverter.textToLinkedImageText(""),
589586
false,
590587
true,
591588
20,

discussion/src/main/java/org/openedx/discussion/presentation/responses/DiscussionResponsesFragment.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ import org.koin.android.ext.android.inject
7676
import org.koin.androidx.viewmodel.ext.android.viewModel
7777
import org.koin.core.parameter.parametersOf
7878
import org.openedx.core.domain.model.ProfileImage
79-
import org.openedx.core.extension.TextConverter
8079
import org.openedx.core.ui.BackBtn
8180
import org.openedx.core.ui.HandleUIMessage
8281
import org.openedx.core.ui.displayCutoutForLandscape
@@ -86,6 +85,7 @@ import org.openedx.core.ui.theme.OpenEdXTheme
8685
import org.openedx.core.ui.theme.appColors
8786
import org.openedx.core.ui.theme.appShapes
8887
import org.openedx.core.ui.theme.appTypography
88+
import org.openedx.discussion.R
8989
import org.openedx.discussion.domain.model.DiscussionComment
9090
import org.openedx.discussion.presentation.DiscussionRouter
9191
import org.openedx.discussion.presentation.comments.DiscussionCommentsFragment
@@ -218,7 +218,7 @@ private fun DiscussionResponsesScreen(
218218
val focusManager = LocalFocusManager.current
219219

220220
val firstVisibleIndex = remember {
221-
mutableStateOf(scrollState.firstVisibleItemIndex)
221+
mutableIntStateOf(scrollState.firstVisibleItemIndex)
222222
}
223223
val pullRefreshState =
224224
rememberPullRefreshState(refreshing = refreshing, onRefresh = { onSwipeRefresh() })
@@ -363,7 +363,7 @@ private fun DiscussionResponsesScreen(
363363
.padding(horizontal = paddingContent)
364364
.padding(top = 24.dp, bottom = 8.dp),
365365
text = pluralStringResource(
366-
id = org.openedx.discussion.R.plurals.discussion_comments,
366+
id = R.plurals.discussion_comments,
367367
uiState.mainComment.childCount,
368368
uiState.mainComment.childCount
369369
),
@@ -462,7 +462,7 @@ private fun DiscussionResponsesScreen(
462462
placeholder = {
463463
Text(
464464
text = stringResource(
465-
id = org.openedx.discussion.R.string.discussion_add_comment
465+
id = R.string.discussion_add_comment
466466
),
467467
color = MaterialTheme.appColors.textFieldHint,
468468
style = MaterialTheme.appTypography.labelLarge,
@@ -493,7 +493,7 @@ private fun DiscussionResponsesScreen(
493493
Icon(
494494
modifier = Modifier.padding(7.dp),
495495
painter = painterResource(
496-
id = org.openedx.discussion.R.drawable.discussion_ic_send
496+
id = R.drawable.discussion_ic_send
497497
),
498498
contentDescription = null,
499499
tint = iconButtonColor
@@ -591,7 +591,6 @@ private val mockComment = DiscussionComment(
591591
"",
592592
"",
593593
"",
594-
TextConverter.textToLinkedImageText(""),
595594
false,
596595
true,
597596
20,

discussion/src/main/java/org/openedx/discussion/presentation/search/DiscussionSearchThreadFragment.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ import org.koin.android.ext.android.inject
6060
import org.koin.androidx.viewmodel.ext.android.viewModel
6161
import org.koin.core.parameter.parametersOf
6262
import org.openedx.core.R
63-
import org.openedx.core.extension.TextConverter
6463
import org.openedx.core.ui.BackBtn
6564
import org.openedx.core.ui.HandleUIMessage
6665
import org.openedx.core.ui.SearchBar
@@ -414,7 +413,6 @@ private val mockThread = org.openedx.discussion.domain.model.Thread(
414413
"",
415414
"",
416415
"",
417-
TextConverter.textToLinkedImageText(""),
418416
false,
419417
true,
420418
20,

discussion/src/main/java/org/openedx/discussion/presentation/threads/DiscussionThreadsFragment.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ import org.koin.android.ext.android.inject
7474
import org.koin.androidx.viewmodel.ext.android.viewModel
7575
import org.koin.core.parameter.parametersOf
7676
import org.openedx.core.FragmentViewType
77-
import org.openedx.core.extension.TextConverter
7877
import org.openedx.core.ui.BackBtn
7978
import org.openedx.core.ui.HandleUIMessage
8079
import org.openedx.core.ui.IconText
@@ -742,7 +741,6 @@ private val mockThread = org.openedx.discussion.domain.model.Thread(
742741
"",
743742
"",
744743
"",
745-
TextConverter.textToLinkedImageText(""),
746744
false,
747745
true,
748746
20,

discussion/src/main/java/org/openedx/discussion/presentation/ui/DiscussionUI.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ import androidx.compose.ui.unit.dp
4545
import coil.compose.AsyncImage
4646
import coil.request.ImageRequest
4747
import org.openedx.core.domain.model.ProfileImage
48-
import org.openedx.core.extension.TextConverter
4948
import org.openedx.core.ui.AutoSizeText
5049
import org.openedx.core.ui.IconText
5150
import org.openedx.core.ui.RenderHtmlContent
@@ -716,7 +715,6 @@ private val mockComment = DiscussionComment(
716715
"",
717716
"",
718717
"",
719-
TextConverter.textToLinkedImageText(""),
720718
false,
721719
true,
722720
20,
@@ -742,7 +740,6 @@ private val mockThread = org.openedx.discussion.domain.model.Thread(
742740
"",
743741
"",
744742
"",
745-
TextConverter.textToLinkedImageText(""),
746743
false,
747744
true,
748745
20,

0 commit comments

Comments
 (0)