fix(android): switch to LocalActivity from activity-compose

This commit is contained in:
Harsh Shandilya 2024-10-31 23:37:09 +05:30
parent 925206a237
commit 37d0614830
2 changed files with 4 additions and 15 deletions

View file

@ -7,9 +7,7 @@
package dev.msfjarvis.claw.android.ui package dev.msfjarvis.claw.android.ui
import android.content.Context import android.content.Context
import android.content.ContextWrapper
import android.content.Intent import android.content.Intent
import androidx.activity.ComponentActivity
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
@ -21,14 +19,6 @@ import dev.msfjarvis.claw.model.UIPost
import java.io.IOException import java.io.IOException
import java.net.HttpURLConnection import java.net.HttpURLConnection
fun Context.getActivity(): ComponentActivity? {
return when (this) {
is ComponentActivity -> this
is ContextWrapper -> baseContext.getActivity()
else -> null
}
}
fun PostActions( fun PostActions(
context: Context, context: Context,
urlLauncher: UrlLauncher, urlLauncher: UrlLauncher,

View file

@ -7,6 +7,7 @@
package dev.msfjarvis.claw.android.ui.screens package dev.msfjarvis.claw.android.ui.screens
import android.content.Intent import android.content.Intent
import androidx.activity.compose.LocalActivity
import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.core.tween import androidx.compose.animation.core.tween
import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeIn
@ -66,7 +67,6 @@ 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
import dev.msfjarvis.claw.android.ui.getActivity
import dev.msfjarvis.claw.android.ui.lists.DatabasePosts import dev.msfjarvis.claw.android.ui.lists.DatabasePosts
import dev.msfjarvis.claw.android.ui.lists.NetworkPosts import dev.msfjarvis.claw.android.ui.lists.NetworkPosts
import dev.msfjarvis.claw.android.ui.navigation.AboutLibraries import dev.msfjarvis.claw.android.ui.navigation.AboutLibraries
@ -100,6 +100,7 @@ fun LobstersPostsScreen(
viewModel: ClawViewModel = injectedViewModel(), viewModel: ClawViewModel = injectedViewModel(),
) { ) {
val context = LocalContext.current val context = LocalContext.current
val activity = LocalActivity.current
val hottestListState = rememberLazyListState() val hottestListState = rememberLazyListState()
val newestListState = rememberLazyListState() val newestListState = rememberLazyListState()
val savedListState = rememberLazyListState() val savedListState = rememberLazyListState()
@ -117,7 +118,7 @@ fun LobstersPostsScreen(
val navigationType = ClawNavigationType.fromSize(windowSizeClass.widthSizeClass) val navigationType = ClawNavigationType.fromSize(windowSizeClass.widthSizeClass)
val postIdOverride = context.getActivity()?.intent?.extras?.getString(MainActivity.NAVIGATION_KEY) val postIdOverride = activity?.intent?.extras?.getString(MainActivity.NAVIGATION_KEY)
LaunchedEffect(Unit) { LaunchedEffect(Unit) {
if (postIdOverride != null) { if (postIdOverride != null) {
navController.navigate(Comments(postIdOverride)) navController.navigate(Comments(postIdOverride))
@ -165,9 +166,7 @@ fun LobstersPostsScreen(
if ( if (
navController.previousBackStackEntry != null && currentDestination.none(navDestinations) navController.previousBackStackEntry != null && currentDestination.none(navDestinations)
) { ) {
IconButton( IconButton(onClick = { if (!navController.popBackStack()) activity?.finish() }) {
onClick = { if (!navController.popBackStack()) context.getActivity()?.finish() }
) {
Icon( Icon(
imageVector = Icons.AutoMirrored.Filled.ArrowBack, imageVector = Icons.AutoMirrored.Filled.ArrowBack,
contentDescription = "Go back to previous screen", contentDescription = "Go back to previous screen",