Skip to content

Commit 516a8fd

Browse files
authored
Merge pull request #1795 from DimensionDev/feature/misskey_channel
Feature/misskey channel
2 parents 8dfafe2 + c2c30e9 commit 516a8fd

File tree

261 files changed

+9580
-5212
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

261 files changed

+9580
-5212
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ import dev.dimension.flare.ui.component.status.AdaptiveCard
4747
import dev.dimension.flare.ui.component.status.CommonStatusHeaderComponent
4848
import dev.dimension.flare.ui.component.status.UserPlaceholder
4949
import dev.dimension.flare.ui.component.status.status
50+
import dev.dimension.flare.ui.model.UiProfile
5051
import dev.dimension.flare.ui.model.UiSearchHistory
5152
import dev.dimension.flare.ui.model.UiState
5253
import dev.dimension.flare.ui.model.UiTimeline
53-
import dev.dimension.flare.ui.model.UiUserV2
5454
import dev.dimension.flare.ui.model.onSuccess
5555
import dev.dimension.flare.ui.presenter.home.SearchHistoryPresenter
5656
import dev.dimension.flare.ui.presenter.home.SearchHistoryState
@@ -165,7 +165,7 @@ private fun SearchContent(
165165
}
166166

167167
internal fun LazyStaggeredGridScope.searchContent(
168-
searchUsers: PagingState<UiUserV2>,
168+
searchUsers: PagingState<UiProfile>,
169169
searchStatus: PagingState<UiTimeline>,
170170
toUser: (MicroBlogKey) -> Unit,
171171
) {

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,20 @@ internal sealed interface Route : NavKey {
364364
val title: String,
365365
) : Misskey,
366366
WithAccountType
367+
368+
@Serializable
369+
data class ChannelList(
370+
override val accountType: AccountType,
371+
) : Misskey,
372+
WithAccountType
373+
374+
@Serializable
375+
data class ChannelTimeline(
376+
override val accountType: AccountType,
377+
val channelId: String,
378+
val title: String,
379+
) : Misskey,
380+
WithAccountType
367381
}
368382

369383
@Serializable

app/src/main/java/dev/dimension/flare/ui/screen/compose/ComposeScreen.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1300,6 +1300,9 @@ internal val UiTimeline.ItemContent.Status.TopEndContent.Visibility.Type.localNa
13001300

13011301
UiTimeline.ItemContent.Status.TopEndContent.Visibility.Type.Specified ->
13021302
R.string.misskey_visibility_specified
1303+
1304+
UiTimeline.ItemContent.Status.TopEndContent.Visibility.Type.Channel ->
1305+
R.string.misskey_visibility_public
13031306
}
13041307

13051308
internal val UiTimeline.ItemContent.Status.TopEndContent.Visibility.Type.localDescription: Int
@@ -1316,4 +1319,7 @@ internal val UiTimeline.ItemContent.Status.TopEndContent.Visibility.Type.localDe
13161319

13171320
UiTimeline.ItemContent.Status.TopEndContent.Visibility.Type.Specified ->
13181321
R.string.misskey_visibility_specified_description
1322+
1323+
UiTimeline.ItemContent.Status.TopEndContent.Visibility.Type.Channel ->
1324+
R.string.misskey_visibility_public_description
13191325
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ import dev.dimension.flare.ui.component.TabTitle
8181
import dev.dimension.flare.ui.component.TopLevelBackStack
8282
import dev.dimension.flare.ui.component.listCard
8383
import dev.dimension.flare.ui.component.platform.isBigScreen
84+
import dev.dimension.flare.ui.model.UiProfile
8485
import dev.dimension.flare.ui.model.UiState
85-
import dev.dimension.flare.ui.model.UiUserV2
8686
import dev.dimension.flare.ui.model.isError
8787
import dev.dimension.flare.ui.model.isSuccess
8888
import dev.dimension.flare.ui.model.onLoading
@@ -311,7 +311,7 @@ internal fun HomeScreen(afterInit: () -> Unit) {
311311
@OptIn(ExperimentalMaterial3ExpressiveApi::class, ExperimentalSharedTransitionApi::class)
312312
private fun HomeRailHeader(
313313
wideNavigationRailState: WideNavigationRailState,
314-
userState: UiState<UiUserV2>,
314+
userState: UiState<UiProfile>,
315315
layoutType: NavigationSuiteType,
316316
currentRoute: Route,
317317
navigate: (Route) -> Unit,
@@ -536,6 +536,7 @@ private fun getDirection(
536536
is DirectMessageTabItem -> Route.DM.List(accountType)
537537
is RssTabItem -> Route.Rss.Sources
538538
is Misskey.AntennasListTabItem -> Route.Misskey.AntennasList(accountType)
539+
is Misskey.ChannelListTabItem -> Route.Misskey.ChannelList(accountType)
539540
}
540541

541542
@Composable

app/src/main/java/dev/dimension/flare/ui/screen/list/CreateListDialog.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ import compose.icons.fontawesomeicons.Solid
3838
import compose.icons.fontawesomeicons.solid.Rss
3939
import dev.dimension.flare.R
4040
import dev.dimension.flare.common.FileItem
41-
import dev.dimension.flare.data.datasource.microblog.ListMetaData
42-
import dev.dimension.flare.data.datasource.microblog.ListMetaDataType
41+
import dev.dimension.flare.data.datasource.microblog.list.ListMetaData
42+
import dev.dimension.flare.data.datasource.microblog.list.ListMetaDataType
4343
import dev.dimension.flare.model.AccountType
4444
import dev.dimension.flare.ui.component.AvatarComponentDefaults
4545
import dev.dimension.flare.ui.component.FAIcon

app/src/main/java/dev/dimension/flare/ui/screen/list/EditAccountListScreen.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,10 @@ internal fun EditAccountListScreen(
6868
uiListItemComponent(
6969
state.lists,
7070
) { item ->
71-
state.userLists
72-
.onSuccess {
73-
if (it.any { list -> list.id == item.id }) {
71+
state
72+
.isInList(item)
73+
.onSuccess { inList ->
74+
if (inList) {
7475
IconButton(
7576
onClick = { state.removeList(item) },
7677
) {

app/src/main/java/dev/dimension/flare/ui/screen/list/EditListMemberScreen.kt

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ import dev.dimension.flare.ui.model.UiState
4545
import dev.dimension.flare.ui.presenter.invoke
4646
import dev.dimension.flare.ui.presenter.list.EditListMemberPresenter
4747
import dev.dimension.flare.ui.presenter.list.EditListMemberState
48-
import dev.dimension.flare.ui.presenter.list.EmptyQueryException
4948
import dev.dimension.flare.ui.screen.settings.AccountItem
5049
import dev.dimension.flare.ui.theme.screenHorizontalPadding
5150
import moe.tlaster.precompose.molecule.producePresenter
@@ -188,28 +187,15 @@ internal fun EditListMemberScreen(
188187
)
189188
}
190189
}.onError {
191-
if (it is EmptyQueryException) {
192-
item {
193-
ListItem(
194-
headlineContent = {
195-
Text(text = stringResource(id = R.string.edit_list_member_search_empty))
196-
},
197-
modifier =
198-
Modifier
199-
.listCard(),
200-
)
201-
}
202-
} else {
203-
item {
204-
ListItem(
205-
headlineContent = {
206-
Text(text = stringResource(id = R.string.edit_list_member_search_error))
207-
},
208-
modifier =
209-
Modifier
210-
.listCard(),
211-
)
212-
}
190+
item {
191+
ListItem(
192+
headlineContent = {
193+
Text(text = stringResource(id = R.string.edit_list_member_search_error))
194+
},
195+
modifier =
196+
Modifier
197+
.listCard(),
198+
)
213199
}
214200
}
215201
}

app/src/main/java/dev/dimension/flare/ui/screen/list/EditListScreen.kt

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ import dev.dimension.flare.common.onEmpty
5353
import dev.dimension.flare.common.onError
5454
import dev.dimension.flare.common.onLoading
5555
import dev.dimension.flare.common.onSuccess
56-
import dev.dimension.flare.data.datasource.microblog.ListMetaData
57-
import dev.dimension.flare.data.datasource.microblog.ListMetaDataType
56+
import dev.dimension.flare.data.datasource.microblog.list.ListMetaData
57+
import dev.dimension.flare.data.datasource.microblog.list.ListMetaDataType
5858
import dev.dimension.flare.model.AccountType
5959
import dev.dimension.flare.ui.component.AvatarComponentDefaults
6060
import dev.dimension.flare.ui.component.BackButton
@@ -170,9 +170,16 @@ internal fun EditListScreen(
170170
} else {
171171
state.listInfo
172172
.onSuccess {
173-
if (it.avatar != null) {
173+
val avatar =
174+
when (it) {
175+
is dev.dimension.flare.ui.model.UiList.List -> it.avatar
176+
is dev.dimension.flare.ui.model.UiList.Feed -> it.avatar
177+
is dev.dimension.flare.ui.model.UiList.Channel -> it.banner
178+
is dev.dimension.flare.ui.model.UiList.Antenna -> null
179+
}
180+
if (avatar != null) {
174181
NetworkImage(
175-
model = it.avatar,
182+
model = avatar,
176183
contentDescription = null,
177184
modifier =
178185
Modifier
@@ -380,7 +387,16 @@ private fun presenter(
380387
append(it.title)
381388
}
382389
description.edit {
383-
append(it.description)
390+
val desc =
391+
when (it) {
392+
is dev.dimension.flare.ui.model.UiList.List -> it.description
393+
is dev.dimension.flare.ui.model.UiList.Feed -> it.description
394+
is dev.dimension.flare.ui.model.UiList.Channel -> null
395+
is dev.dimension.flare.ui.model.UiList.Antenna -> null
396+
}
397+
if (desc != null) {
398+
append(desc)
399+
}
384400
}
385401
}
386402
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ import dev.dimension.flare.model.MicroBlogKey
2828
import dev.dimension.flare.ui.component.AvatarComponent
2929
import dev.dimension.flare.ui.component.RichText
3030
import dev.dimension.flare.ui.model.UiPodcast
31+
import dev.dimension.flare.ui.model.UiProfile
3132
import dev.dimension.flare.ui.model.UiState
32-
import dev.dimension.flare.ui.model.UiUserV2
3333
import dev.dimension.flare.ui.model.map
3434
import dev.dimension.flare.ui.model.onError
3535
import dev.dimension.flare.ui.model.onLoading
@@ -150,7 +150,7 @@ internal fun ColumnScope.PodcastContent(
150150

151151
@Composable
152152
private fun UserItem(
153-
item: UiUserV2,
153+
item: UiProfile,
154154
modifier: Modifier = Modifier,
155155
bottom: @Composable () -> Unit = {},
156156
) {

0 commit comments

Comments
 (0)