File tree Expand file tree Collapse file tree 15 files changed +2270
-2039
lines changed
app/src/main/java/dev/dimension/flare/ui/route
compose-ui/src/commonMain
kotlin/dev/dimension/flare
desktopApp/src/main/kotlin/dev/dimension/flare/ui/route
shared/src/commonMain/kotlin/dev/dimension/flare Expand file tree Collapse file tree 15 files changed +2270
-2039
lines changed Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ import androidx.compose.runtime.Immutable
44import androidx.navigation3.runtime.NavKey
55import dev.dimension.flare.data.model.MixedTimelineTabItem
66import dev.dimension.flare.data.model.TimelineTabItem
7+ import dev.dimension.flare.data.model.XQT
78import dev.dimension.flare.model.AccountType
89import dev.dimension.flare.model.MicroBlogKey
910import kotlinx.collections.immutable.ImmutableMap
@@ -443,6 +444,14 @@ internal sealed interface Route : NavKey {
443444
444445 public fun from (deeplinkRoute : DeeplinkRoute ): Route ? {
445446 return when (deeplinkRoute) {
447+ is DeeplinkRoute .Timeline .XQTDeviceFollow ->
448+ Route .Timeline (
449+ accountType = deeplinkRoute.accountType,
450+ tabItem =
451+ XQT .DeviceFollowTimelineTabItem (
452+ account = deeplinkRoute.accountType,
453+ ),
454+ )
446455 is DeeplinkRoute .OpenLinkDirectly -> null
447456 is DeeplinkRoute .DeepLinkAccountPicker ->
448457 DeepLinkAccountPicker (
Original file line number Diff line number Diff line change 476476 <string name =" mixed_timeline_title" >Mixed</string >
477477 <string name =" liked_title" >Liked</string >
478478 <string name =" all_rss_feeds_title" >All Rss Feeds</string >
479+ <string name =" posts_title" >Posts</string >
479480 <string name =" settings_appearance_absolute_timestamp" >Absolute timestamp</string >
480481 <string name =" settings_appearance_absolute_timestamp_description" >Display absolute timestamps on posts</string >
481482 <string name =" settings_about_description" >The ultimate next generation open-sourced AI powered decentralized social network client.</string >
Original file line number Diff line number Diff line change @@ -91,6 +91,7 @@ public sealed class TitleType {
9191 Social ,
9292 Liked ,
9393 AllRssFeeds ,
94+ Posts ,
9495 }
9596 }
9697}
@@ -900,6 +901,25 @@ public object XQT {
900901
901902 override fun update (metaData : TabMetaData ): TabItem = copy(metaData = metaData)
902903 }
904+
905+ @Immutable
906+ @Serializable
907+ public data class DeviceFollowTimelineTabItem (
908+ override val account : AccountType ,
909+ override val metaData : TabMetaData =
910+ TabMetaData (
911+ title = TitleType .Localized (TitleType .Localized .LocalizedKey .Posts ),
912+ icon = IconType .Material (IconType .Material .MaterialIcon .List ),
913+ ),
914+ ) : TimelineTabItem() {
915+ override val key: String = " device_follow_$account "
916+
917+ override fun createPresenter (): TimelinePresenter =
918+ dev.dimension.flare.ui.presenter.home.xqt
919+ .XQTDeviceFollowTimelinePresenter (account)
920+
921+ override fun update (metaData : TabMetaData ): TabItem = copy(metaData = metaData)
922+ }
903923}
904924
905925public object Bluesky {
Original file line number Diff line number Diff line change @@ -55,6 +55,7 @@ import dev.dimension.flare.compose.ui.liked_title
5555import dev.dimension.flare.compose.ui.mastodon_tab_local_title
5656import dev.dimension.flare.compose.ui.mastodon_tab_public_title
5757import dev.dimension.flare.compose.ui.mixed_timeline_title
58+ import dev.dimension.flare.compose.ui.posts_title
5859import dev.dimension.flare.compose.ui.rss_title
5960import dev.dimension.flare.compose.ui.settings_title
6061import dev.dimension.flare.compose.ui.social_title
@@ -281,6 +282,7 @@ internal val TitleType.Localized.res: StringResource
281282 TitleType .Localized .LocalizedKey .MixedTimeline -> Res .string.mixed_timeline_title
282283 TitleType .Localized .LocalizedKey .Liked -> Res .string.liked_title
283284 TitleType .Localized .LocalizedKey .AllRssFeeds -> Res .string.all_rss_feeds_title
285+ TitleType .Localized .LocalizedKey .Posts -> Res .string.posts_title
284286 }
285287
286288internal fun IconType.Material.MaterialIcon.toIcon (): ImageVector =
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ package dev.dimension.flare.ui.route
22
33import androidx.navigation3.runtime.NavKey
44import dev.dimension.flare.data.model.TimelineTabItem
5+ import dev.dimension.flare.data.model.XQT
56import dev.dimension.flare.model.AccountType
67import dev.dimension.flare.model.MicroBlogKey
78import dev.dimension.flare.ui.model.UiRssSource
@@ -244,6 +245,13 @@ internal sealed interface Route : NavKey {
244245
245246 public fun from (deeplinkRoute : DeeplinkRoute ): Route ? {
246247 return when (deeplinkRoute) {
248+ is DeeplinkRoute .Timeline .XQTDeviceFollow ->
249+ Route .Timeline (
250+ tabItem =
251+ XQT .DeviceFollowTimelineTabItem (
252+ account = deeplinkRoute.accountType,
253+ ),
254+ )
247255 is DeeplinkRoute .OpenLinkDirectly -> null
248256 is DeeplinkRoute .DeepLinkAccountPicker ->
249257 DeepLinkAccountPicker (
You can’t perform that action at this time.
0 commit comments