Skip to content

Commit

Permalink
fix: white list items background
Browse files Browse the repository at this point in the history
  • Loading branch information
urFate committed Sep 14, 2024
1 parent 0d037c1 commit de2e6a1
Show file tree
Hide file tree
Showing 3 changed files with 127 additions and 106 deletions.
226 changes: 122 additions & 104 deletions app/src/main/java/org/shirabox/app/ui/activity/search/SearchActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
Expand All @@ -25,12 +26,14 @@ import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Close
import androidx.compose.material.icons.filled.History
import androidx.compose.material.icons.filled.Search
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.ListItemDefaults
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.SearchBar
import androidx.compose.material3.SearchBarDefaults
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
Expand All @@ -47,7 +50,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.graphics.StrokeCap
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
Expand Down Expand Up @@ -141,116 +144,131 @@ fun SearchScreen() {
queryText.value = text
}

SearchBar(
modifier = Modifier
.fillMaxWidth()
.focusRequester(focusRequester),
query = text,
onQueryChange = { text = it },
onSearch = { searchHistory.add(text) },
active = true,
onActiveChange = {},
placeholder = {
Text(text = stringResource(id = R.string.search_by_name))
},
leadingIcon = {
Icon(imageVector = Icons.Default.Search, contentDescription = "Search icon")
},
trailingIcon = {
IconButton(onClick = {
if (text.isNotEmpty()) {
searchHistory.add(text)
text = ""
} else activity?.finish()
}) {
Icon(imageVector = Icons.Default.Close, contentDescription = "Close icon")
}
}) {

LazyColumn(
horizontalAlignment = Alignment.CenterHorizontally,
) {
if (text.isEmpty()) {
items(searchHistory) {
if (it.isNotEmpty()) {
androidx.compose.material3.ListItem(
modifier = Modifier.clickable {
text = it
},
headlineContent = {
Text(it)
},
leadingContent = {
Icon(imageVector = Icons.Default.History, contentDescription = null)
},
)
Column {
SearchBar(
inputField = {
SearchBarDefaults.InputField(
query = text,
onQueryChange = { text = it },
onSearch = { searchHistory.add(text) },
expanded = true,
onExpandedChange = { },
enabled = true,
placeholder = {
Text(text = stringResource(id = R.string.search_by_name))
},
leadingIcon = {
Icon(imageVector = Icons.Default.Search, contentDescription = "Search icon")
},
trailingIcon = {
IconButton(onClick = {
if (text.isNotEmpty()) {
searchHistory.add(text)
text = ""
} else activity?.finish()
}) {
Icon(imageVector = Icons.Default.Close, contentDescription = "Close icon")
}
},
interactionSource = null,
)
},
expanded = true,
onExpandedChange = {},
modifier = Modifier
.fillMaxWidth()
.focusRequester(focusRequester),
shape = SearchBarDefaults.inputFieldShape,
tonalElevation = SearchBarDefaults.TonalElevation,
shadowElevation = SearchBarDefaults.ShadowElevation,
windowInsets = SearchBarDefaults.windowInsets,
content = {
LazyColumn(
horizontalAlignment = Alignment.CenterHorizontally,
) {
if (text.isEmpty()) {
items(searchHistory) {
if (it.isNotEmpty()) {
androidx.compose.material3.ListItem(
modifier = Modifier.clickable {
text = it
},
headlineContent = {
Text(it)
},
leadingContent = {
Icon(
imageVector = Icons.Default.History,
contentDescription = null
)
},
colors = ListItemDefaults.colors(containerColor = Color.Transparent)
)
}
}
return@LazyColumn
}
}
return@LazyColumn
}

item {
if(showProgressIndicator && !noResultsState.value) {
Box(
modifier = Modifier
.fillMaxWidth()
.padding(32.dp),
contentAlignment = Alignment.Center
) {
CircularProgressIndicator(
strokeCap = StrokeCap.Round
)
item {
AnimatedVisibility(
visible = showProgressIndicator && !noResultsState.value
) {
LinearProgressIndicator(
modifier = Modifier.fillMaxWidth()
)
}
}
}
}

item {
AnimatedVisibility(
visible = noResultsState.value,
enter = fadeIn(),
exit = fadeOut()
) {
Box(
modifier = Modifier
.fillMaxWidth()
.padding(32.dp),
contentAlignment = Alignment.Center
) {
DespondencyEmoticon(text = stringResource(id = R.string.nothing_found))
item {
AnimatedVisibility(
visible = noResultsState.value,
enter = fadeIn(),
exit = fadeOut()
) {
Box(
modifier = Modifier
.fillMaxWidth()
.padding(32.dp),
contentAlignment = Alignment.Center
) {
DespondencyEmoticon(text = stringResource(id = R.string.nothing_found))
}
}
}
}
}

items(resultsList) {
AnimatedVisibility(
visible = !showProgressIndicator,
enter = fadeIn(
animationSpec = tween(300, easing = LinearEasing)
)
) {
ListItem(
headlineContent = {
Text(
text = it.name.ifBlank { it.enName }, fontWeight = FontWeight.Bold
items(resultsList) {
AnimatedVisibility(
visible = !showProgressIndicator,
enter = fadeIn(
animationSpec = tween(300, easing = LinearEasing)
)
},
supportingString = "${it.releaseYear}, ${
ValuesHelper.decodeKind(
it.kind,
context
)
}",
coverImage = it.image
) {
context.startActivity(Intent(
context, ResourceActivity::class.java
).apply {
putExtra("id", it.shikimoriId)
putExtra("type", it.type)
})
) {
ListItem(
headlineContent = {
Text(
text = it.name.ifBlank { it.enName },
fontWeight = FontWeight.Bold
)
},
supportingString = "${it.releaseYear}, ${
ValuesHelper.decodeKind(
it.kind,
context
)
}",
coverImage = it.image,
) {
context.startActivity(Intent(
context, ResourceActivity::class.java
).apply {
putExtra("id", it.shikimoriId)
putExtra("type", it.type)
})
}
}
}
}
}
}
},
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import androidx.compose.material.icons.outlined.Sd
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Icon
import androidx.compose.material3.ListItem
import androidx.compose.material3.ListItemDefaults
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.RadioButton
Expand Down Expand Up @@ -150,7 +151,8 @@ private fun QualityListItem(
RadioButton(
selected = selected,
onClick = { onClick() })
}
},
colors = ListItemDefaults.colors(containerColor = Color.Transparent)
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,8 @@ fun ListItem(
contentDescription = stringResource(id = R.string.history),
contentScale = ContentScale.Crop
)
}
},
colors = ListItemDefaults.colors(containerColor = Color.Transparent)
)
}

Expand Down

0 comments on commit de2e6a1

Please sign in to comment.