Support for private tracking with AniList and Bangumi (#1736)

Co-authored-by: MajorTanya <39014446+MajorTanya@users.noreply.github.com>
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
This commit is contained in:
NarwhalHorns
2025-02-25 11:01:13 +00:00
committed by GitHub
parent badc229a23
commit 49b2b346b6
27 changed files with 214 additions and 25 deletions
@@ -172,6 +172,7 @@ data class TrackInfoDialogHomeScreen(
)
},
onCopyLink = { context.copyTrackerLink(it) },
onTogglePrivate = screenModel::togglePrivate,
)
}
@@ -247,6 +248,12 @@ data class TrackInfoDialogHomeScreen(
}
}
fun togglePrivate(item: TrackItem) {
screenModelScope.launchNonCancellable {
item.tracker.setRemotePrivate(item.track!!.toDbTrack(), !item.track.private)
}
}
private fun List<Track>.mapToTrackItem(): List<TrackItem> {
val loggedInTrackers = Injekt.get<TrackerManager>().loggedInTrackers()
val source = Injekt.get<SourceManager>().getOrStub(sourceId)
@@ -673,11 +680,14 @@ data class TrackerSearchScreen(
queryResult = state.queryResult,
selected = state.selected,
onSelectedChange = screenModel::updateSelection,
onConfirmSelection = {
screenModel.registerTracking(state.selected!!)
onConfirmSelection = f@{ private: Boolean ->
val selected = state.selected ?: return@f
selected.private = private
screenModel.registerTracking(selected)
navigator.pop()
},
onDismissRequest = navigator::pop,
supportsPrivateTracking = screenModel.supportsPrivateTracking,
)
}
@@ -688,6 +698,8 @@ data class TrackerSearchScreen(
private val tracker: Tracker,
) : StateScreenModel<Model.State>(State()) {
val supportsPrivateTracking = tracker.supportsPrivateTracking
init {
// Run search on first launch
if (initialQuery.isNotBlank()) {