Skip to content

Commit 08b1475

Browse files
authored
Merge pull request #1515 from DimensionDev/bugfix/rm_haze
Remove Haze dependency and related code across multiple components
2 parents e9e0dce + a8a16f7 commit 08b1475

File tree

17 files changed

+105
-305
lines changed

17 files changed

+105
-305
lines changed

app/build.gradle.kts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,6 @@ dependencies {
150150
implementation(libs.compose.placeholder.material3)
151151
implementation(libs.webkit)
152152
implementation(libs.bundles.navigation3)
153-
implementation(libs.haze)
154-
implementation(libs.haze.materials)
155153
implementation(libs.richtext.ui.material3)
156154
implementation(libs.androidx.browser)
157155

app/src/main/java/dev/dimension/flare/ui/component/InAppNotificationComponent.kt

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import compose.icons.FontAwesomeIcons
3232
import compose.icons.fontawesomeicons.Solid
3333
import compose.icons.fontawesomeicons.solid.CircleCheck
3434
import compose.icons.fontawesomeicons.solid.CircleExclamation
35-
import dev.chrisbanes.haze.HazeState
3635
import dev.dimension.flare.common.ComposeInAppNotification
3736
import dev.dimension.flare.common.Notification
3837
import kotlinx.coroutines.delay
@@ -42,7 +41,6 @@ import kotlin.time.Duration.Companion.seconds
4241

4342
@Composable
4443
internal fun InAppNotificationComponent(
45-
hazeState: HazeState,
4644
modifier: Modifier = Modifier,
4745
notification: ComposeInAppNotification = koinInject(),
4846
) {
@@ -59,6 +57,7 @@ internal fun InAppNotificationComponent(
5957
.fillMaxWidth(),
6058
)
6159
}
60+
6261
is Notification.StringNotification -> {
6362
var showNotification by remember { mutableStateOf(false) }
6463
var showText by remember { mutableStateOf(false) }
@@ -83,18 +82,16 @@ internal fun InAppNotificationComponent(
8382
shape = RoundedCornerShape(50),
8483
shadowElevation = 8.dp,
8584
tonalElevation = 8.dp,
86-
hazeState = hazeState,
87-
modifier =
88-
Modifier.clickable {
89-
showText = false
90-
showNotification = false
91-
},
9285
) {
9386
Row(
9487
modifier =
9588
Modifier
9689
.padding(12.dp)
97-
.animateContentSize(),
90+
.animateContentSize()
91+
.clickable {
92+
showText = false
93+
showNotification = false
94+
},
9895
verticalAlignment = Alignment.CenterVertically,
9996
) {
10097
if (it.success) {

app/src/main/java/dev/dimension/flare/ui/component/NavigationSuiteScaffold2.kt

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,6 @@ import androidx.compose.ui.unit.dp
7979
import compose.icons.FontAwesomeIcons
8080
import compose.icons.fontawesomeicons.Solid
8181
import compose.icons.fontawesomeicons.solid.Pen
82-
import dev.chrisbanes.haze.HazeState
83-
import dev.chrisbanes.haze.hazeSource
84-
import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi
85-
import dev.chrisbanes.haze.materials.HazeMaterials
86-
import dev.chrisbanes.haze.rememberHazeState
8782
import dev.dimension.flare.R
8883
import dev.dimension.flare.data.model.BottomBarBehavior
8984
import dev.dimension.flare.data.model.BottomBarStyle
@@ -97,7 +92,6 @@ val LocalBottomBarShowing = androidx.compose.runtime.staticCompositionLocalOf<Bo
9792
ExperimentalMaterial3ExpressiveApi::class,
9893
ExperimentalMaterial3Api::class,
9994
ExperimentalSharedTransitionApi::class,
100-
ExperimentalHazeMaterialsApi::class,
10195
)
10296
@ExperimentalMaterial3AdaptiveNavigationSuiteApi
10397
@Composable
@@ -118,7 +112,6 @@ fun NavigationSuiteScaffold2(
118112
footerItems: NavigationSuiteScope2.() -> Unit = {},
119113
content: @Composable () -> Unit = {},
120114
) {
121-
val hazeState = rememberHazeState()
122115
var isPodcastShowing by remember { mutableStateOf(false) }
123116
var isBottomBarExpanded by remember { mutableStateOf(true) }
124117
val bottomBarStyle = LocalAppearanceSettings.current.bottomBarStyle
@@ -355,15 +348,8 @@ fun NavigationSuiteScaffold2(
355348
.toDp()
356349
},
357350
LocalBottomBarShowing provides (layoutType == NavigationSuiteType.NavigationBar),
358-
LocalHazeState provides hazeState,
359351
) {
360-
Box(
361-
modifier =
362-
Modifier
363-
.hazeSource(state = hazeState),
364-
) {
365-
content.invoke()
366-
}
352+
content.invoke()
367353
}
368354
Column(
369355
modifier =
@@ -429,7 +415,6 @@ fun NavigationSuiteScaffold2(
429415
state = bottomBarState,
430416
provider = scope,
431417
animatedVisibilityScope = this@AnimatedContent,
432-
hazeState = hazeState,
433418
)
434419
}
435420
}
@@ -451,7 +436,6 @@ fun NavigationSuiteScaffold2(
451436
state = bottomBarState,
452437
provider = scope,
453438
animatedVisibilityScope = this@AnimatedContent,
454-
hazeState = hazeState,
455439
onFabClicked = onFabClicked,
456440
)
457441
}
@@ -479,7 +463,6 @@ private fun SharedTransitionScope.BottomFab(
479463
state: BottomBarState,
480464
provider: NavigationSuiteItemProvider,
481465
animatedVisibilityScope: AnimatedVisibilityScope,
482-
hazeState: HazeState,
483466
onFabClicked: () -> Unit,
484467
modifier: Modifier = Modifier,
485468
) {
@@ -509,7 +492,6 @@ private fun SharedTransitionScope.BottomFab(
509492
shadowElevation = 8.dp,
510493
tonalElevation = 8.dp,
511494
color = MaterialTheme.colorScheme.primaryContainer,
512-
hazeState = hazeState,
513495
modifier =
514496
modifier
515497
.sharedElement(
@@ -546,13 +528,12 @@ private fun SharedTransitionScope.BottomFab(
546528
}
547529
}
548530

549-
@OptIn(ExperimentalSharedTransitionApi::class, ExperimentalHazeMaterialsApi::class)
531+
@OptIn(ExperimentalSharedTransitionApi::class)
550532
@Composable
551533
private fun SharedTransitionScope.BottomBar(
552534
state: BottomBarState,
553535
provider: NavigationSuiteItemProvider,
554536
animatedVisibilityScope: AnimatedVisibilityScope,
555-
hazeState: HazeState,
556537
modifier: Modifier = Modifier,
557538
) {
558539
val containerShape =
@@ -590,8 +571,6 @@ private fun SharedTransitionScope.BottomBar(
590571
shape = containerShape,
591572
shadowElevation = 8.dp,
592573
tonalElevation = 8.dp,
593-
hazeState = hazeState,
594-
hazeStyle = HazeMaterials.thick(),
595574
modifier =
596575
modifier
597576
.sharedElement(

app/src/main/java/dev/dimension/flare/ui/route/Router.kt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,16 @@ internal fun Router(
6565
val isBigScreen = isBigScreen()
6666

6767
val uriHandler = LocalUriHandler.current
68-
CompositionLocalProvider(
69-
LocalUriHandler provides
70-
remember(topLevelBackStack, uriHandler) {
71-
ProxyUriHandler(uriHandler) {
72-
Route.parse(it)?.let {
73-
navigate(it)
74-
}
68+
val proxyUriHandler =
69+
remember(topLevelBackStack, uriHandler) {
70+
ProxyUriHandler(uriHandler) {
71+
Route.parse(it)?.let {
72+
navigate(it)
7573
}
76-
},
74+
}
75+
}
76+
CompositionLocalProvider(
77+
LocalUriHandler provides proxyUriHandler,
7778
) {
7879
NavDisplay<NavKey>(
7980
sceneStrategy =
@@ -120,7 +121,7 @@ internal fun Router(
120121
composeEntryBuilder(::navigate, ::onBack)
121122
dmEntryBuilder(::navigate, ::onBack, navigationState)
122123
listEntryBuilder(::navigate, ::onBack)
123-
mediaEntryBuilder(::navigate, ::onBack)
124+
mediaEntryBuilder(::navigate, ::onBack, uriHandler = proxyUriHandler)
124125
profileEntryBuilder(::navigate, ::onBack)
125126
rssEntryBuilder(::navigate, ::onBack)
126127
serviceSelectEntryBuilder(::navigate, ::onBack)

app/src/main/java/dev/dimension/flare/ui/screen/home/HomeScreen.kt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,6 @@ import compose.icons.fontawesomeicons.Solid
5656
import compose.icons.fontawesomeicons.solid.EllipsisVertical
5757
import compose.icons.fontawesomeicons.solid.Gear
5858
import compose.icons.fontawesomeicons.solid.Pen
59-
import dev.chrisbanes.haze.hazeSource
60-
import dev.chrisbanes.haze.rememberHazeState
6159
import dev.dimension.flare.R
6260
import dev.dimension.flare.data.model.AllListTabItem
6361
import dev.dimension.flare.data.model.Bluesky
@@ -114,7 +112,6 @@ internal fun HomeScreen(afterInit: () -> Unit) {
114112
val wideNavigationRailState = rememberWideNavigationRailState()
115113
state.tabs
116114
.onSuccess { tabs ->
117-
val rootHazeState = rememberHazeState()
118115
val topLevelBackStack by producePresenter(
119116
key = "home_top_level_back_stack_${tabs.all.first().tabItem}",
120117
useImmediateClock = true,
@@ -161,7 +158,7 @@ internal fun HomeScreen(afterInit: () -> Unit) {
161158
Box {
162159
NavigationSuiteScaffold2(
163160
wideNavigationRailState = wideNavigationRailState,
164-
modifier = Modifier.fillMaxSize().hazeSource(rootHazeState),
161+
modifier = Modifier.fillMaxSize(),
165162
bottomBarAutoHideEnabled = state.navigationState.bottomBarAutoHideEnabled,
166163
layoutType = layoutType,
167164
showFab = userState.isSuccess && accountType !is AccountType.Guest,
@@ -309,7 +306,6 @@ internal fun HomeScreen(afterInit: () -> Unit) {
309306
}
310307
InAppNotificationComponent(
311308
modifier = Modifier.align(Alignment.TopCenter),
312-
hazeState = rootHazeState,
313309
)
314310
}
315311
}.onLoading {

app/src/main/java/dev/dimension/flare/ui/screen/home/HomeTimelineScreen.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,6 @@ import compose.icons.FontAwesomeIcons
5050
import compose.icons.fontawesomeicons.Solid
5151
import compose.icons.fontawesomeicons.solid.AnglesUp
5252
import compose.icons.fontawesomeicons.solid.Plus
53-
import dev.chrisbanes.haze.hazeSource
54-
import dev.chrisbanes.haze.rememberHazeState
5553
import dev.dimension.flare.R
5654
import dev.dimension.flare.common.onSuccess
5755
import dev.dimension.flare.data.model.TimelineTabItem
@@ -267,7 +265,6 @@ internal fun TimelineItemContent(
267265
},
268266
)
269267
}
270-
val hazeState = rememberHazeState()
271268
val scope = rememberCoroutineScope()
272269
RefreshContainer(
273270
modifier = modifier,
@@ -283,8 +280,7 @@ internal fun TimelineItemContent(
283280
contentPadding = contentPadding,
284281
modifier =
285282
Modifier
286-
.fillMaxSize()
287-
.hazeSource(hazeState),
283+
.fillMaxSize(),
288284
) {
289285
changeLogState?.shouldShowChangeLog?.onSuccess {
290286
changeLogState.changeLog?.let { changelog ->
@@ -349,7 +345,6 @@ internal fun TimelineItemContent(
349345
state.lazyListState.scrollToItem(0)
350346
}
351347
},
352-
hazeState = hazeState,
353348
shape = RoundedCornerShape(50),
354349
color = MaterialTheme.colorScheme.primaryContainer,
355350
) {

app/src/main/java/dev/dimension/flare/ui/screen/media/MediaEntryBuilder.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package dev.dimension.flare.ui.screen.media
22

33
import androidx.compose.material3.ExperimentalMaterial3Api
4+
import androidx.compose.ui.platform.UriHandler
45
import androidx.compose.ui.window.DialogProperties
56
import androidx.navigation3.runtime.EntryProviderScope
67
import androidx.navigation3.runtime.NavKey
@@ -12,6 +13,7 @@ import dev.dimension.flare.ui.route.Route
1213
internal fun EntryProviderScope<NavKey>.mediaEntryBuilder(
1314
navigate: (Route) -> Unit,
1415
onBack: () -> Unit,
16+
uriHandler: UriHandler,
1517
) {
1618
entry<Route.Media.Image>(
1719
metadata = DialogSceneStrategy.dialog(
@@ -45,6 +47,7 @@ internal fun EntryProviderScope<NavKey>.mediaEntryBuilder(
4547
toAltText = { media ->
4648
media.description?.let { navigate(Route.Status.AltText(it)) }
4749
},
50+
uriHandler = uriHandler
4851
)
4952
}
5053

app/src/main/java/dev/dimension/flare/ui/screen/media/MediaScreen.kt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,6 @@ import compose.icons.fontawesomeicons.Solid
5959
import compose.icons.fontawesomeicons.solid.Download
6060
import compose.icons.fontawesomeicons.solid.ShareNodes
6161
import compose.icons.fontawesomeicons.solid.Xmark
62-
import dev.chrisbanes.haze.hazeSource
63-
import dev.chrisbanes.haze.rememberHazeState
6462
import dev.dimension.flare.R
6563
import dev.dimension.flare.ui.component.FAIcon
6664
import dev.dimension.flare.ui.component.Glassify
@@ -93,7 +91,6 @@ internal fun MediaScreen(
9391
onDismiss: () -> Unit,
9492
) {
9593
val hapticFeedback = LocalHapticFeedback.current
96-
val hazeState = rememberHazeState()
9794
val context = LocalContext.current
9895
val permissionState =
9996
rememberPermissionState(
@@ -119,9 +116,6 @@ internal fun MediaScreen(
119116
) {
120117
Swiper(
121118
state = swiperState,
122-
modifier =
123-
Modifier
124-
.hazeSource(state = hazeState),
125119
) {
126120
val zoomableState =
127121
rememberZoomableImageState(rememberZoomableState(zoomSpec = ZoomSpec(maxZoomFactor = 10f)))
@@ -174,7 +168,6 @@ internal fun MediaScreen(
174168
modifier = Modifier.size(40.dp),
175169
shape = CircleShape,
176170
color = MaterialTheme.colorScheme.secondaryContainer,
177-
hazeState = hazeState,
178171
) {
179172
FAIcon(
180173
FontAwesomeIcons.Solid.Xmark,
@@ -194,7 +187,6 @@ internal fun MediaScreen(
194187
state.save()
195188
}
196189
},
197-
hazeState = hazeState,
198190
color = MaterialTheme.colorScheme.secondaryContainer,
199191
modifier = Modifier.size(40.dp),
200192
shape = CircleShape,
@@ -208,7 +200,6 @@ internal fun MediaScreen(
208200
onClick = {
209201
state.share()
210202
},
211-
hazeState = hazeState,
212203
color = MaterialTheme.colorScheme.secondaryContainer,
213204
modifier = Modifier.size(40.dp),
214205
shape = CircleShape,

0 commit comments

Comments
 (0)