mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-15 02:57:04 +05:30
refactor(android): workaround ContentEmitterReturningValues
lint
This commit is contained in:
parent
fc45376b39
commit
7d31979221
3 changed files with 48 additions and 51 deletions
|
@ -10,8 +10,6 @@ import android.content.Context
|
||||||
import android.content.ContextWrapper
|
import android.content.ContextWrapper
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.compose.runtime.Composable
|
|
||||||
import androidx.compose.runtime.remember
|
|
||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
import com.slack.eithernet.ApiResult
|
import com.slack.eithernet.ApiResult
|
||||||
import dev.msfjarvis.claw.android.ui.navigation.Comments
|
import dev.msfjarvis.claw.android.ui.navigation.Comments
|
||||||
|
@ -31,15 +29,13 @@ fun Context.getActivity(): ComponentActivity? {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
fun PostActions(
|
||||||
fun rememberPostActions(
|
|
||||||
context: Context,
|
context: Context,
|
||||||
urlLauncher: UrlLauncher,
|
urlLauncher: UrlLauncher,
|
||||||
navController: NavController,
|
navController: NavController,
|
||||||
viewModel: ClawViewModel,
|
viewModel: ClawViewModel,
|
||||||
): PostActions {
|
): PostActions {
|
||||||
return remember {
|
return object : PostActions {
|
||||||
object : PostActions {
|
|
||||||
override fun viewPost(postId: String, postUrl: String, commentsUrl: String) {
|
override fun viewPost(postId: String, postUrl: String, commentsUrl: String) {
|
||||||
viewModel.markPostAsRead(postId)
|
viewModel.markPostAsRead(postId)
|
||||||
urlLauncher.openUri(postUrl.ifEmpty { commentsUrl })
|
urlLauncher.openUri(postUrl.ifEmpty { commentsUrl })
|
||||||
|
@ -82,7 +78,6 @@ fun rememberPostActions(
|
||||||
return viewModel.getLinkMetadata(url)
|
return viewModel.getLinkMetadata(url)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -63,6 +63,7 @@ import dev.chrisbanes.haze.haze
|
||||||
import dev.msfjarvis.claw.android.MainActivity
|
import dev.msfjarvis.claw.android.MainActivity
|
||||||
import dev.msfjarvis.claw.android.R
|
import dev.msfjarvis.claw.android.R
|
||||||
import dev.msfjarvis.claw.android.SearchActivity
|
import dev.msfjarvis.claw.android.SearchActivity
|
||||||
|
import dev.msfjarvis.claw.android.ui.PostActions
|
||||||
import dev.msfjarvis.claw.android.ui.decorations.ClawNavigationBar
|
import dev.msfjarvis.claw.android.ui.decorations.ClawNavigationBar
|
||||||
import dev.msfjarvis.claw.android.ui.decorations.ClawNavigationRail
|
import dev.msfjarvis.claw.android.ui.decorations.ClawNavigationRail
|
||||||
import dev.msfjarvis.claw.android.ui.decorations.NavigationItem
|
import dev.msfjarvis.claw.android.ui.decorations.NavigationItem
|
||||||
|
@ -79,7 +80,6 @@ import dev.msfjarvis.claw.android.ui.navigation.Settings
|
||||||
import dev.msfjarvis.claw.android.ui.navigation.User
|
import dev.msfjarvis.claw.android.ui.navigation.User
|
||||||
import dev.msfjarvis.claw.android.ui.navigation.any
|
import dev.msfjarvis.claw.android.ui.navigation.any
|
||||||
import dev.msfjarvis.claw.android.ui.navigation.none
|
import dev.msfjarvis.claw.android.ui.navigation.none
|
||||||
import dev.msfjarvis.claw.android.ui.rememberPostActions
|
|
||||||
import dev.msfjarvis.claw.android.viewmodel.ClawViewModel
|
import dev.msfjarvis.claw.android.viewmodel.ClawViewModel
|
||||||
import dev.msfjarvis.claw.common.comments.CommentsPage
|
import dev.msfjarvis.claw.common.comments.CommentsPage
|
||||||
import dev.msfjarvis.claw.common.comments.HTMLConverter
|
import dev.msfjarvis.claw.common.comments.HTMLConverter
|
||||||
|
@ -109,7 +109,7 @@ fun LobstersPostsScreen(
|
||||||
val currentDestination = navBackStackEntry?.destination
|
val currentDestination = navBackStackEntry?.destination
|
||||||
val coroutineScope = rememberCoroutineScope()
|
val coroutineScope = rememberCoroutineScope()
|
||||||
val snackbarHostState = remember { SnackbarHostState() }
|
val snackbarHostState = remember { SnackbarHostState() }
|
||||||
val postActions = rememberPostActions(context, urlLauncher, navController, viewModel)
|
val postActions = remember { PostActions(context, urlLauncher, navController, viewModel) }
|
||||||
val hazeState = remember { HazeState() }
|
val hazeState = remember { HazeState() }
|
||||||
|
|
||||||
val hottestPosts = viewModel.hottestPosts.collectAsLazyPagingItems()
|
val hottestPosts = viewModel.hottestPosts.collectAsLazyPagingItems()
|
||||||
|
|
|
@ -9,6 +9,7 @@ package dev.msfjarvis.claw.android.ui.screens
|
||||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||||
import androidx.compose.material3.Scaffold
|
import androidx.compose.material3.Scaffold
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.navigation.compose.NavHost
|
import androidx.navigation.compose.NavHost
|
||||||
|
@ -17,11 +18,11 @@ import androidx.navigation.compose.rememberNavController
|
||||||
import androidx.navigation.toRoute
|
import androidx.navigation.toRoute
|
||||||
import androidx.paging.compose.collectAsLazyPagingItems
|
import androidx.paging.compose.collectAsLazyPagingItems
|
||||||
import com.deliveryhero.whetstone.compose.injectedViewModel
|
import com.deliveryhero.whetstone.compose.injectedViewModel
|
||||||
|
import dev.msfjarvis.claw.android.ui.PostActions
|
||||||
import dev.msfjarvis.claw.android.ui.lists.SearchList
|
import dev.msfjarvis.claw.android.ui.lists.SearchList
|
||||||
import dev.msfjarvis.claw.android.ui.navigation.Comments
|
import dev.msfjarvis.claw.android.ui.navigation.Comments
|
||||||
import dev.msfjarvis.claw.android.ui.navigation.Search
|
import dev.msfjarvis.claw.android.ui.navigation.Search
|
||||||
import dev.msfjarvis.claw.android.ui.navigation.User
|
import dev.msfjarvis.claw.android.ui.navigation.User
|
||||||
import dev.msfjarvis.claw.android.ui.rememberPostActions
|
|
||||||
import dev.msfjarvis.claw.android.viewmodel.ClawViewModel
|
import dev.msfjarvis.claw.android.viewmodel.ClawViewModel
|
||||||
import dev.msfjarvis.claw.common.comments.CommentsPage
|
import dev.msfjarvis.claw.common.comments.CommentsPage
|
||||||
import dev.msfjarvis.claw.common.comments.HTMLConverter
|
import dev.msfjarvis.claw.common.comments.HTMLConverter
|
||||||
|
@ -36,8 +37,9 @@ fun SearchScreen(
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
viewModel: ClawViewModel = injectedViewModel(),
|
viewModel: ClawViewModel = injectedViewModel(),
|
||||||
) {
|
) {
|
||||||
|
val context = LocalContext.current
|
||||||
val navController = rememberNavController()
|
val navController = rememberNavController()
|
||||||
val postActions = rememberPostActions(LocalContext.current, urlLauncher, navController, viewModel)
|
val postActions = remember { PostActions(context, urlLauncher, navController, viewModel) }
|
||||||
val listState = rememberLazyListState()
|
val listState = rememberLazyListState()
|
||||||
val searchResults = viewModel.searchResults.collectAsLazyPagingItems()
|
val searchResults = viewModel.searchResults.collectAsLazyPagingItems()
|
||||||
Scaffold(modifier = modifier) { contentPadding ->
|
Scaffold(modifier = modifier) { contentPadding ->
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue