Refactor renderMediaServerList to use callbacks. Use addServerList.
This commit is contained in:
+21
-12
@@ -146,7 +146,15 @@ fun MediaServersListView(
|
|||||||
horizontalAlignment = Alignment.CenterHorizontally,
|
horizontalAlignment = Alignment.CenterHorizontally,
|
||||||
contentPadding = FeedPadding,
|
contentPadding = FeedPadding,
|
||||||
) {
|
) {
|
||||||
renderMediaServerList(mediaServersState, mediaServersViewModel)
|
renderMediaServerList(
|
||||||
|
mediaServersState = mediaServersState,
|
||||||
|
onAddServer = { server ->
|
||||||
|
mediaServersViewModel.addServer(server)
|
||||||
|
},
|
||||||
|
onDeleteServer = {
|
||||||
|
mediaServersViewModel.removeServer(serverUrl = it)
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
Nip96MediaServers.DEFAULT.let {
|
Nip96MediaServers.DEFAULT.let {
|
||||||
item {
|
item {
|
||||||
@@ -156,9 +164,7 @@ fun MediaServersListView(
|
|||||||
action = {
|
action = {
|
||||||
OutlinedButton(
|
OutlinedButton(
|
||||||
onClick = {
|
onClick = {
|
||||||
it.forEach { server ->
|
mediaServersViewModel.addServerList(it.map { s -> s.baseUrl })
|
||||||
mediaServersViewModel.addServer(server.baseUrl)
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
) {
|
) {
|
||||||
Text(text = "Use Default List")
|
Text(text = "Use Default List")
|
||||||
@@ -168,8 +174,7 @@ fun MediaServersListView(
|
|||||||
}
|
}
|
||||||
itemsIndexed(
|
itemsIndexed(
|
||||||
it,
|
it,
|
||||||
key = {
|
key = { index: Int, server: Nip96MediaServers.ServerName ->
|
||||||
index: Int, server: Nip96MediaServers.ServerName ->
|
|
||||||
server.baseUrl
|
server.baseUrl
|
||||||
},
|
},
|
||||||
) { index, server ->
|
) { index, server ->
|
||||||
@@ -190,7 +195,8 @@ fun MediaServersListView(
|
|||||||
|
|
||||||
fun LazyListScope.renderMediaServerList(
|
fun LazyListScope.renderMediaServerList(
|
||||||
mediaServersState: List<Nip96MediaServers.ServerName>,
|
mediaServersState: List<Nip96MediaServers.ServerName>,
|
||||||
mediaServersViewModel: MediaServersViewModel,
|
onAddServer: (String) -> Unit,
|
||||||
|
onDeleteServer: (String) -> Unit,
|
||||||
) {
|
) {
|
||||||
if (mediaServersState.isEmpty()) {
|
if (mediaServersState.isEmpty()) {
|
||||||
item {
|
item {
|
||||||
@@ -206,16 +212,19 @@ fun LazyListScope.renderMediaServerList(
|
|||||||
server.baseUrl
|
server.baseUrl
|
||||||
},
|
},
|
||||||
) { index, entry ->
|
) { index, entry ->
|
||||||
MediaServerEntry(serverEntry = entry) {
|
MediaServerEntry(
|
||||||
mediaServersViewModel.removeServer(serverUrl = it)
|
serverEntry = entry,
|
||||||
}
|
onAddOrDelete = {
|
||||||
|
onDeleteServer(it)
|
||||||
|
},
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
item {
|
item {
|
||||||
Spacer(modifier = StdVertSpacer)
|
Spacer(modifier = StdVertSpacer)
|
||||||
MediaServerEditField {
|
MediaServerEditField {
|
||||||
mediaServersViewModel.addServer(it)
|
onAddServer(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -239,7 +248,7 @@ fun MediaServerEntry(
|
|||||||
) {
|
) {
|
||||||
serverEntry.let {
|
serverEntry.let {
|
||||||
Text(
|
Text(
|
||||||
text = it.name,
|
text = it.name.replaceFirstChar(Char::titlecase),
|
||||||
style = MaterialTheme.typography.bodyLarge,
|
style = MaterialTheme.typography.bodyLarge,
|
||||||
)
|
)
|
||||||
Spacer(modifier = StdVertSpacer)
|
Spacer(modifier = StdVertSpacer)
|
||||||
|
|||||||
Reference in New Issue
Block a user