Make Wikipedia item and website item clickable again
This commit is contained in:
parent
fc90fdb17d
commit
2e5d510014
@ -6,6 +6,7 @@ import androidx.compose.animation.core.snap
|
|||||||
import androidx.compose.animation.core.tween
|
import androidx.compose.animation.core.tween
|
||||||
import androidx.compose.foundation.Image
|
import androidx.compose.foundation.Image
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.rounded.ArrowBack
|
import androidx.compose.material.icons.rounded.ArrowBack
|
||||||
@ -45,7 +46,9 @@ fun WebsiteItem(
|
|||||||
val viewModel = remember(website) { WebsiteItemVM(website) }
|
val viewModel = remember(website) { WebsiteItemVM(website) }
|
||||||
|
|
||||||
Column(
|
Column(
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = modifier.clickable {
|
||||||
|
viewModel.launch(context as AppCompatActivity)
|
||||||
|
}
|
||||||
) {
|
) {
|
||||||
if (website.image.isNotBlank()) {
|
if (website.image.isNotBlank()) {
|
||||||
Image(
|
Image(
|
||||||
|
|||||||
@ -4,21 +4,13 @@ import android.content.Intent
|
|||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import de.mm20.launcher2.favorites.FavoritesRepository
|
import de.mm20.launcher2.favorites.FavoritesRepository
|
||||||
import de.mm20.launcher2.search.data.Website
|
import de.mm20.launcher2.search.data.Website
|
||||||
|
import de.mm20.launcher2.ui.launcher.search.common.SearchableItemVM
|
||||||
import org.koin.core.component.KoinComponent
|
import org.koin.core.component.KoinComponent
|
||||||
import org.koin.core.component.inject
|
import org.koin.core.component.inject
|
||||||
|
|
||||||
class WebsiteItemVM(
|
class WebsiteItemVM(
|
||||||
private val website: Website
|
private val website: Website
|
||||||
): KoinComponent {
|
): SearchableItemVM(website) {
|
||||||
private val favoritesRepository: FavoritesRepository by inject()
|
|
||||||
|
|
||||||
val isPinned = favoritesRepository.isPinned(website)
|
|
||||||
fun pin() {
|
|
||||||
favoritesRepository.pinItem(website)
|
|
||||||
}
|
|
||||||
fun unpin() {
|
|
||||||
favoritesRepository.unpinItem(website)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun share(context: AppCompatActivity) {
|
fun share(context: AppCompatActivity) {
|
||||||
val shareIntent = Intent(Intent.ACTION_SEND)
|
val shareIntent = Intent(Intent.ACTION_SEND)
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import androidx.compose.animation.*
|
|||||||
import androidx.compose.animation.core.tween
|
import androidx.compose.animation.core.tween
|
||||||
import androidx.compose.foundation.Image
|
import androidx.compose.foundation.Image
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.rounded.ArrowBack
|
import androidx.compose.material.icons.rounded.ArrowBack
|
||||||
@ -45,7 +46,9 @@ fun WikipediaItem(
|
|||||||
val viewModel = remember(wikipedia) { WikipediaItemVM(wikipedia) }
|
val viewModel = remember(wikipedia) { WikipediaItemVM(wikipedia) }
|
||||||
|
|
||||||
Column(
|
Column(
|
||||||
modifier = Modifier.fillMaxWidth()
|
modifier = modifier.clickable {
|
||||||
|
viewModel.launch(context as AppCompatActivity)
|
||||||
|
}
|
||||||
) {
|
) {
|
||||||
if (!wikipedia.image.isNullOrEmpty()) {
|
if (!wikipedia.image.isNullOrEmpty()) {
|
||||||
Image(
|
Image(
|
||||||
|
|||||||
@ -6,22 +6,13 @@ import androidx.core.text.HtmlCompat
|
|||||||
import de.mm20.launcher2.favorites.FavoritesRepository
|
import de.mm20.launcher2.favorites.FavoritesRepository
|
||||||
import de.mm20.launcher2.search.data.Wikipedia
|
import de.mm20.launcher2.search.data.Wikipedia
|
||||||
import de.mm20.launcher2.ui.R
|
import de.mm20.launcher2.ui.R
|
||||||
|
import de.mm20.launcher2.ui.launcher.search.common.SearchableItemVM
|
||||||
import org.koin.core.component.KoinComponent
|
import org.koin.core.component.KoinComponent
|
||||||
import org.koin.core.component.inject
|
import org.koin.core.component.inject
|
||||||
|
|
||||||
class WikipediaItemVM(
|
class WikipediaItemVM(
|
||||||
private val wikipedia: Wikipedia
|
private val wikipedia: Wikipedia
|
||||||
) : KoinComponent {
|
) : SearchableItemVM(wikipedia) {
|
||||||
private val favoritesRepository: FavoritesRepository by inject()
|
|
||||||
|
|
||||||
val isPinned = favoritesRepository.isPinned(wikipedia)
|
|
||||||
fun pin() {
|
|
||||||
favoritesRepository.pinItem(wikipedia)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun unpin() {
|
|
||||||
favoritesRepository.unpinItem(wikipedia)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun share(context: AppCompatActivity) {
|
fun share(context: AppCompatActivity) {
|
||||||
val text = HtmlCompat.fromHtml(wikipedia.text, HtmlCompat.FROM_HTML_MODE_LEGACY).toString()
|
val text = HtmlCompat.fromHtml(wikipedia.text, HtmlCompat.FROM_HTML_MODE_LEGACY).toString()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user