Send highlight positions on Android
This commit is contained in:
@ -17,8 +17,8 @@ android {
|
||||
applicationId "app.omnivore.omnivore"
|
||||
minSdk 26
|
||||
targetSdk 33
|
||||
versionCode 102
|
||||
versionName "0.0.102"
|
||||
versionCode 110
|
||||
versionName "0.0.110"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables {
|
||||
|
||||
@ -57,6 +57,8 @@ fragment HighlightFields on Highlight {
|
||||
updatedAt
|
||||
sharedAt
|
||||
color
|
||||
highlightPositionPercent
|
||||
highlightPositionAnchorIndex
|
||||
}
|
||||
|
||||
fragment LabelFields on Label {
|
||||
|
||||
@ -1,12 +1,10 @@
|
||||
package app.omnivore.omnivore.dataService
|
||||
|
||||
import app.omnivore.omnivore.graphql.generated.type.CreateHighlightInput
|
||||
import app.omnivore.omnivore.graphql.generated.type.HighlightType
|
||||
import app.omnivore.omnivore.models.ServerSyncStatus
|
||||
import app.omnivore.omnivore.networking.*
|
||||
import app.omnivore.omnivore.persistence.entities.Highlight
|
||||
import app.omnivore.omnivore.persistence.entities.SavedItemAndHighlightCrossRef
|
||||
import com.apollographql.apollo3.api.Optional
|
||||
import com.google.gson.Gson
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
@ -29,6 +27,8 @@ suspend fun DataService.createWebHighlight(jsonString: String, colorName: String
|
||||
updatedAt = null,
|
||||
createdByMe = false,
|
||||
color = colorName ?: createHighlightInput.color.getOrNull(),
|
||||
highlightPositionPercent = createHighlightInput.highlightPositionPercent.getOrNull() ?: 0.0,
|
||||
highlightPositionAnchorIndex = createHighlightInput.highlightPositionAnchorIndex.getOrNull() ?: 0
|
||||
)
|
||||
|
||||
highlight.serverSyncStatus = ServerSyncStatus.NEEDS_CREATION.rawValue
|
||||
@ -66,7 +66,9 @@ suspend fun DataService.createNoteHighlight(savedItemId: String, note: String):
|
||||
createdAt = null,
|
||||
updatedAt = null,
|
||||
createdByMe = true,
|
||||
color = null
|
||||
color = null,
|
||||
highlightPositionAnchorIndex = 0,
|
||||
highlightPositionPercent = 0.0
|
||||
)
|
||||
|
||||
highlight.serverSyncStatus = ServerSyncStatus.NEEDS_CREATION.rawValue
|
||||
@ -87,6 +89,8 @@ suspend fun DataService.createNoteHighlight(savedItemId: String, note: String):
|
||||
quote = null,
|
||||
patch = null,
|
||||
annotation = note,
|
||||
highlightPositionAnchorIndex = 0,
|
||||
highlightPositionPercent = 0.0
|
||||
).asCreateHighlightInput())
|
||||
|
||||
newHighlight?.let {
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package app.omnivore.omnivore.dataService
|
||||
|
||||
import android.util.Log
|
||||
import androidx.room.PrimaryKey
|
||||
import app.omnivore.omnivore.models.ServerSyncStatus
|
||||
import app.omnivore.omnivore.networking.*
|
||||
import app.omnivore.omnivore.persistence.entities.*
|
||||
@ -85,7 +84,9 @@ suspend fun DataService.sync(since: String, cursor: String?, limit: Int = 20): S
|
||||
suffix = highlight.highlightFields.suffix,
|
||||
createdAt = null,
|
||||
updatedAt = highlight.highlightFields.updatedAt as String?,
|
||||
color = highlight.highlightFields.color
|
||||
color = highlight.highlightFields.color,
|
||||
highlightPositionPercent = highlight.highlightFields.highlightPositionPercent,
|
||||
highlightPositionAnchorIndex = highlight.highlightFields.highlightPositionAnchorIndex,
|
||||
)
|
||||
} ?: listOf()
|
||||
SavedItemWithLabelsAndHighlights(
|
||||
|
||||
@ -20,7 +20,9 @@ data class CreateHighlightParams(
|
||||
val quote: String?,
|
||||
val patch: String?,
|
||||
val articleId: String?,
|
||||
val `annotation`: String?
|
||||
val `annotation`: String?,
|
||||
val highlightPositionAnchorIndex: Int,
|
||||
val highlightPositionPercent: Double
|
||||
) {
|
||||
fun asCreateHighlightInput() = CreateHighlightInput(
|
||||
type = Optional.presentIfNotNull(type),
|
||||
@ -29,7 +31,9 @@ data class CreateHighlightParams(
|
||||
id = id ?: "",
|
||||
patch = Optional.presentIfNotNull(patch),
|
||||
quote = Optional.presentIfNotNull(quote),
|
||||
shortId = shortId ?: ""
|
||||
shortId = shortId ?: "",
|
||||
highlightPositionAnchorIndex = Optional.presentIfNotNull(highlightPositionAnchorIndex),
|
||||
highlightPositionPercent = Optional.presentIfNotNull(highlightPositionPercent)
|
||||
)
|
||||
}
|
||||
|
||||
@ -151,8 +155,10 @@ suspend fun Networker.createHighlight(input: CreateHighlightInput): Highlight? {
|
||||
createdAt = createdHighlight.highlightFields.createdAt.toString(),
|
||||
updatedAt = createdHighlight.highlightFields.updatedAt.toString(),
|
||||
createdByMe = createdHighlight.highlightFields.createdByMe,
|
||||
color = createdHighlight.highlightFields.color
|
||||
)
|
||||
color = createdHighlight.highlightFields.color,
|
||||
highlightPositionPercent = createdHighlight.highlightFields.highlightPositionPercent,
|
||||
highlightPositionAnchorIndex = createdHighlight.highlightFields.highlightPositionAnchorIndex
|
||||
)
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
|
||||
@ -54,7 +54,9 @@ suspend fun Networker.savedItem(slug: String): SavedItemQueryResponse {
|
||||
createdAt = it.highlightFields.createdAt as String?,
|
||||
updatedAt = it.highlightFields.updatedAt as String?,
|
||||
createdByMe = it.highlightFields.createdByMe,
|
||||
color = it.highlightFields.color
|
||||
color = it.highlightFields.color,
|
||||
highlightPositionPercent = it.highlightFields.highlightPositionPercent,
|
||||
highlightPositionAnchorIndex = it.highlightFields.highlightPositionAnchorIndex
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@ -1,8 +1,6 @@
|
||||
package app.omnivore.omnivore.networking
|
||||
|
||||
import androidx.room.PrimaryKey
|
||||
import app.omnivore.omnivore.graphql.generated.SearchQuery
|
||||
import app.omnivore.omnivore.graphql.generated.TypeaheadSearchQuery
|
||||
import app.omnivore.omnivore.models.ServerSyncStatus
|
||||
import app.omnivore.omnivore.persistence.entities.*
|
||||
import com.apollographql.apollo3.api.Optional
|
||||
@ -82,7 +80,9 @@ suspend fun Networker.search(
|
||||
suffix = highlight.highlightFields.suffix,
|
||||
updatedAt = highlight.highlightFields.updatedAt as String?,
|
||||
createdAt = highlight.highlightFields.createdAt as String?,
|
||||
color = highlight.highlightFields.color
|
||||
color = highlight.highlightFields.color,
|
||||
highlightPositionPercent = highlight.highlightFields.highlightPositionPercent,
|
||||
highlightPositionAnchorIndex = highlight.highlightFields.highlightPositionAnchorIndex
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
@ -13,7 +13,7 @@ import app.omnivore.omnivore.persistence.entities.*
|
||||
SavedItemAndSavedItemLabelCrossRef::class,
|
||||
SavedItemAndHighlightCrossRef::class
|
||||
],
|
||||
version = 9
|
||||
version = 11
|
||||
)
|
||||
abstract class AppDatabase : RoomDatabase() {
|
||||
abstract fun viewerDao(): ViewerDao
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package app.omnivore.omnivore.persistence.entities
|
||||
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.room.*
|
||||
import app.omnivore.omnivore.models.ServerSyncStatus
|
||||
import com.google.gson.annotations.SerializedName
|
||||
@ -22,7 +21,9 @@ data class Highlight(
|
||||
var shortId: String,
|
||||
val suffix: String?,
|
||||
val updatedAt: String?,
|
||||
val color: String?
|
||||
val color: String?,
|
||||
val highlightPositionPercent: Double?,
|
||||
val highlightPositionAnchorIndex: Int?
|
||||
)
|
||||
|
||||
@Entity(
|
||||
|
||||
@ -152,18 +152,18 @@ fun WebReader(
|
||||
webReaderViewModel.resetJavascriptDispatchQueue()
|
||||
}
|
||||
})
|
||||
if (showHighlightColorPalette.value == true) {
|
||||
HighlightColorPalette(
|
||||
mode = if (isDarkMode) HighlightColorPaletteMode.Dark else HighlightColorPaletteMode.Light,
|
||||
selectedColorName = highlightColor.value?.name ?: "yellow",
|
||||
onColorSelected = {
|
||||
webReaderViewModel.setHighlightColor(it)
|
||||
},
|
||||
modifier = Modifier
|
||||
.align(Alignment.BottomCenter)
|
||||
.padding(12.dp, 12.dp, 12.dp, 36.dp)
|
||||
)
|
||||
}
|
||||
// if (showHighlightColorPalette.value == true) {
|
||||
// HighlightColorPalette(
|
||||
// mode = if (isDarkMode) HighlightColorPaletteMode.Dark else HighlightColorPaletteMode.Light,
|
||||
// selectedColorName = highlightColor.value?.name ?: "yellow",
|
||||
// onColorSelected = {
|
||||
// webReaderViewModel.setHighlightColor(it)
|
||||
// },
|
||||
// modifier = Modifier
|
||||
// .align(Alignment.BottomCenter)
|
||||
// .padding(12.dp, 12.dp, 12.dp, 36.dp)
|
||||
// )
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user