Skip to content

Commit 364bf3a

Browse files
authored
Merge pull request #1206 from DimensionDev/feature/user_list
add follow list
2 parents 82d9c7d + c2fa68e commit 364bf3a

File tree

4 files changed

+270
-60
lines changed

4 files changed

+270
-60
lines changed

desktopApp/src/main/composeResources/drawable/flare_logo.xml

Lines changed: 81 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,100 +1,125 @@
11
<vector xmlns:android="http://schemas.android.com/apk/res/android"
22
xmlns:aapt="http://schemas.android.com/aapt"
3-
android:width="108dp"
4-
android:height="108dp"
5-
android:viewportWidth="174"
6-
android:viewportHeight="261">
7-
<group android:scaleX="0.32"
8-
android:scaleY="0.48"
9-
android:translateX="59.16"
10-
android:translateY="67.86">
3+
android:width="341dp"
4+
android:height="341dp"
5+
android:viewportWidth="341"
6+
android:viewportHeight="341">
7+
<group>
8+
<clip-path
9+
android:pathData="M86,0L254.16,0A86,86 0,0 1,340.16 86L340.16,254.16A86,86 0,0 1,254.16 340.16L86,340.16A86,86 0,0 1,0 254.16L0,86A86,86 0,0 1,86 0z"/>
1110
<path
12-
android:pathData="M108.62,195.05C78.23,212.82 84.54,245.13 88.91,260.79C91.15,260.79 93.42,260.72 95.72,260.56C130.07,258.16 163.46,230.23 171.89,192.57C175.02,178.56 174.3,163.44 170.54,147.78C165.77,174.12 141.87,175.6 108.63,195.04L108.62,195.05Z">
11+
android:pathData="M340.16,0H0V340.16H340.16V0Z">
1312
<aapt:attr name="android:fillColor">
1413
<gradient
15-
android:startX="129.53"
16-
android:startY="201.76"
17-
android:endX="129.53"
18-
android:endY="264.96"
14+
android:startX="170.08"
15+
android:startY="0"
16+
android:endX="170.08"
17+
android:endY="340.16"
1918
android:type="linear">
20-
<item android:offset="0" android:color="#FF02EBD2"/>
21-
<item android:offset="0.39" android:color="#FF01DBC4"/>
22-
<item android:offset="1" android:color="#FF00BBA9"/>
19+
<item android:offset="0" android:color="#FF35E7D2"/>
20+
<item android:offset="1" android:color="#FF1EA69A"/>
2321
</gradient>
2422
</aapt:attr>
2523
</path>
2624
<path
27-
android:pathData="M8.68,135.94C3.58,147.23 2.46,153.04 1.08,161.45C-6.34,206.36 25.02,254.29 77.51,260.19C48.7,225.8 33.5,182.24 83.98,122.57C115.83,84.93 116.98,48.5 90.13,0C92.42,68.24 13.05,89.05 25.14,160.82C15.55,156.14 8.69,135.94 8.69,135.94H8.68Z">
25+
android:pathData="M192.77,237.7C160.98,256.29 167.58,290.08 172.15,306.46C174.49,306.46 176.87,306.39 179.27,306.22C215.2,303.71 250.13,274.49 258.94,235.1C262.22,220.45 261.46,204.64 257.53,188.26C252.54,215.81 227.54,217.36 192.78,237.69L192.77,237.7Z">
2826
<aapt:attr name="android:fillColor">
2927
<gradient
30-
android:startX="42.3"
31-
android:startY="199.44"
32-
android:endX="97.39"
33-
android:endY="104.03"
28+
android:startX="214.64"
29+
android:startY="244.72"
30+
android:endX="214.64"
31+
android:endY="310.82"
3432
android:type="linear">
35-
<item android:offset="0" android:color="#FF02EBD2"/>
36-
<item android:offset="0.39" android:color="#FF01DBC4"/>
37-
<item android:offset="1" android:color="#FF00BBA9"/>
33+
<item android:offset="0" android:color="#FFFFFFFF"/>
34+
<item android:offset="0.16" android:color="#FFEFFDFC"/>
35+
<item android:offset="0.49" android:color="#FFC5FAF4"/>
36+
<item android:offset="0.93" android:color="#FF83F4E9"/>
37+
<item android:offset="1" android:color="#FF78F4E7"/>
3838
</gradient>
3939
</aapt:attr>
4040
</path>
4141
<path
42-
android:pathData="M88.92,260.79C84.55,245.13 78.23,212.83 108.63,195.03C141.88,175.6 165.79,174.13 170.56,147.78C174.19,202.22 99.2,197.85 88.92,260.79Z">
42+
android:pathData="M88.24,175.88C82.9,187.68 81.73,193.76 80.29,202.56C72.53,249.53 105.33,299.66 160.23,305.83C130.09,269.86 114.2,224.3 166.99,161.89C200.31,122.52 201.51,84.42 173.43,33.69C175.82,105.07 92.81,126.83 105.45,201.9C95.42,197 88.25,175.88 88.25,175.88H88.24Z">
4343
<aapt:attr name="android:fillColor">
4444
<gradient
45-
android:startX="127.95"
46-
android:startY="215.04"
47-
android:endX="127.95"
48-
android:endY="183.86"
45+
android:startX="123.4"
46+
android:startY="242.29"
47+
android:endX="181.02"
48+
android:endY="142.5"
4949
android:type="linear">
50-
<item android:offset="0" android:color="#FF02EBD2"/>
51-
<item android:offset="0.39" android:color="#FF01DBC4"/>
52-
<item android:offset="1" android:color="#FF00BBA9"/>
50+
<item android:offset="0" android:color="#FFFFFFFF"/>
51+
<item android:offset="0.16" android:color="#FFEFFDFC"/>
52+
<item android:offset="0.49" android:color="#FFC5FAF4"/>
53+
<item android:offset="0.93" android:color="#FF83F4E9"/>
54+
<item android:offset="1" android:color="#FF78F4E7"/>
5355
</gradient>
5456
</aapt:attr>
5557
</path>
5658
<path
57-
android:pathData="M71.92,209.93C82.57,170.54 146.68,161.88 156.83,131.1C163.88,109.74 151.35,83.78 138.99,71.91C151.97,129.75 53.85,144.53 71.93,209.93H71.92Z">
59+
android:pathData="M172.16,306.46C167.59,290.08 160.98,256.3 192.78,237.68C227.55,217.36 252.56,215.82 257.55,188.26C261.35,245.2 182.91,240.63 172.16,306.46Z">
5860
<aapt:attr name="android:fillColor">
5961
<gradient
60-
android:startX="114.28"
61-
android:startY="124.22"
62-
android:endX="114.28"
63-
android:endY="194.44"
62+
android:startX="212.99"
63+
android:startY="258.61"
64+
android:endX="212.99"
65+
android:endY="226"
6466
android:type="linear">
65-
<item android:offset="0" android:color="#FF02EBD2"/>
66-
<item android:offset="0.39" android:color="#FF01DBC4"/>
67-
<item android:offset="1" android:color="#FF00BBA9"/>
67+
<item android:offset="0" android:color="#FFFFFFFF"/>
68+
<item android:offset="0.16" android:color="#FFEFFDFC"/>
69+
<item android:offset="0.49" android:color="#FFC5FAF4"/>
70+
<item android:offset="0.93" android:color="#FF83F4E9"/>
71+
<item android:offset="1" android:color="#FF78F4E7"/>
6872
</gradient>
6973
</aapt:attr>
7074
</path>
7175
<path
72-
android:pathData="M25.13,160.76C25.13,160.76 25.15,160.8 25.16,160.82C35.01,107.98 115.73,101.45 107.48,44.71C104.83,30.81 99.03,16.08 90.14,0.01C92.43,68.23 13.11,89.05 25.14,160.76H25.13Z">
76+
android:pathData="M154.38,253.26C165.52,212.06 232.57,203.01 243.19,170.81C250.56,148.47 237.46,121.32 224.53,108.9C238.11,169.4 135.48,184.86 154.39,253.26H154.38Z">
7377
<aapt:attr name="android:fillColor">
7478
<gradient
75-
android:startX="65.97"
76-
android:startY="65.35"
77-
android:endX="65.97"
78-
android:endY="247.63"
79+
android:startX="198.69"
80+
android:startY="163.62"
81+
android:endX="198.69"
82+
android:endY="237.06"
7983
android:type="linear">
80-
<item android:offset="0" android:color="#FF02EBD2"/>
81-
<item android:offset="0.39" android:color="#FF01DBC4"/>
82-
<item android:offset="1" android:color="#FF00BBA9"/>
84+
<item android:offset="0" android:color="#FFFFFFFF"/>
85+
<item android:offset="0.16" android:color="#FFEFFDFC"/>
86+
<item android:offset="0.49" android:color="#FFC5FAF4"/>
87+
<item android:offset="0.93" android:color="#FF83F4E9"/>
88+
<item android:offset="1" android:color="#FF78F4E7"/>
8389
</gradient>
8490
</aapt:attr>
8591
</path>
8692
<path
87-
android:pathData="M77.5,260.2C25.03,254.28 -6.34,206.36 1.09,161.45C2.48,153.03 3.61,147.22 8.7,135.94C8.7,135.94 15.57,156.13 25.16,160.82C20.18,187.48 27.69,233.78 77.5,260.2Z">
93+
android:pathData="M105.44,201.84C105.44,201.84 105.46,201.88 105.47,201.9C115.78,146.63 200.2,139.8 191.57,80.45C188.8,65.92 182.74,50.51 173.44,33.7C175.83,105.06 92.87,126.83 105.45,201.84H105.44Z">
8894
<aapt:attr name="android:fillColor">
8995
<gradient
90-
android:startX="38.75"
91-
android:startY="69.62"
92-
android:endX="38.75"
93-
android:endY="243.75"
96+
android:startX="148.16"
97+
android:startY="102.04"
98+
android:endX="148.16"
99+
android:endY="292.69"
94100
android:type="linear">
95-
<item android:offset="0" android:color="#FF02EBD2"/>
96-
<item android:offset="0.39" android:color="#FF01DBC4"/>
97-
<item android:offset="1" android:color="#FF00BBA9"/>
101+
<item android:offset="0" android:color="#FFFFFFFF"/>
102+
<item android:offset="0.16" android:color="#FFEFFDFC"/>
103+
<item android:offset="0.49" android:color="#FFC5FAF4"/>
104+
<item android:offset="0.93" android:color="#FF83F4E9"/>
105+
<item android:offset="1" android:color="#FF78F4E7"/>
106+
</gradient>
107+
</aapt:attr>
108+
</path>
109+
<path
110+
android:pathData="M160.22,305.84C105.34,299.65 72.53,249.53 80.3,202.56C81.75,193.75 82.93,187.67 88.26,175.88C88.26,175.88 95.44,196.99 105.47,201.9C100.27,229.78 108.12,278.21 160.22,305.84Z">
111+
<aapt:attr name="android:fillColor">
112+
<gradient
113+
android:startX="119.69"
114+
android:startY="106.51"
115+
android:endX="119.69"
116+
android:endY="288.64"
117+
android:type="linear">
118+
<item android:offset="0" android:color="#FFFFFFFF"/>
119+
<item android:offset="0.16" android:color="#FFEFFDFC"/>
120+
<item android:offset="0.49" android:color="#FFC5FAF4"/>
121+
<item android:offset="0.93" android:color="#FF83F4E9"/>
122+
<item android:offset="1" android:color="#FF78F4E7"/>
98123
</gradient>
99124
</aapt:attr>
100125
</path>

desktopApp/src/main/kotlin/dev/dimension/flare/ui/route/Route.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,18 @@ internal sealed interface Route {
228228
@Serializable
229229
data object StorageUsage : ScreenRoute
230230

231+
@Serializable
232+
data class Following(
233+
val accountType: AccountType,
234+
val userKey: MicroBlogKey,
235+
) : ScreenRoute
236+
237+
@Serializable
238+
data class Fans(
239+
val accountType: AccountType,
240+
val userKey: MicroBlogKey,
241+
) : ScreenRoute
242+
231243
companion object {
232244
public fun parse(url: String): Route? {
233245
val data = Url(url)

desktopApp/src/main/kotlin/dev/dimension/flare/ui/route/Router.kt

Lines changed: 62 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ import dev.dimension.flare.ui.screen.dm.DmListScreen
3030
import dev.dimension.flare.ui.screen.dm.UserDMConversationScreen
3131
import dev.dimension.flare.ui.screen.feeds.FeedListScreen
3232
import dev.dimension.flare.ui.screen.home.DiscoverScreen
33+
import dev.dimension.flare.ui.screen.home.FansScreen
34+
import dev.dimension.flare.ui.screen.home.FollowingScreen
3335
import dev.dimension.flare.ui.screen.home.HomeTimelineScreen
3436
import dev.dimension.flare.ui.screen.home.NotificationScreen
3537
import dev.dimension.flare.ui.screen.home.ProfileScreen
@@ -339,8 +341,22 @@ internal fun WindowScope.RouteContent(
339341
),
340342
)
341343
},
342-
onFollowListClick = {},
343-
onFansListClick = {},
344+
onFollowListClick = {
345+
navigate(
346+
Route.Following(
347+
accountType = route.accountType,
348+
userKey = it,
349+
),
350+
)
351+
},
352+
onFansListClick = {
353+
navigate(
354+
Route.Fans(
355+
accountType = route.accountType,
356+
userKey = it,
357+
),
358+
)
359+
},
344360
)
345361
}
346362

@@ -435,8 +451,22 @@ internal fun WindowScope.RouteContent(
435451
),
436452
)
437453
},
438-
onFollowListClick = {},
439-
onFansListClick = {},
454+
onFollowListClick = {
455+
navigate(
456+
Route.Following(
457+
accountType = route.accountType,
458+
userKey = it,
459+
),
460+
)
461+
},
462+
onFansListClick = {
463+
navigate(
464+
Route.Fans(
465+
accountType = route.accountType,
466+
userKey = it,
467+
),
468+
)
469+
},
440470
)
441471
}
442472

@@ -550,5 +580,33 @@ internal fun WindowScope.RouteContent(
550580

551581
Route.StorageUsage ->
552582
StorageScreen()
583+
584+
is Route.Following ->
585+
FollowingScreen(
586+
accountType = route.accountType,
587+
userKey = route.userKey,
588+
onUserClick = {
589+
navigate(
590+
Profile(
591+
accountType = route.accountType,
592+
userKey = it,
593+
),
594+
)
595+
},
596+
)
597+
598+
is Route.Fans ->
599+
FansScreen(
600+
accountType = route.accountType,
601+
userKey = route.userKey,
602+
onUserClick = {
603+
navigate(
604+
Profile(
605+
accountType = route.accountType,
606+
userKey = it,
607+
),
608+
)
609+
},
610+
)
553611
}
554612
}

0 commit comments

Comments
 (0)