Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ fun CharactersScreen(
},
content = {
Content(
modifier = Modifier
.padding(it),
isLoading = viewState.isLoading,
pagedData = viewState.pagedData,
onTriggerEvent = {
Expand All @@ -62,6 +64,7 @@ fun CharactersScreen(

@Composable
private fun Content(
modifier: Modifier = Modifier,
isLoading: Boolean = false,
pagedData: Flow<PagingData<CharacterDto>>? = null,
onTriggerEvent: (CharactersViewEvent) -> Unit,
Expand All @@ -73,7 +76,7 @@ private fun Content(
}

Box(
modifier = Modifier
modifier = modifier
.fillMaxSize()
.padding(horizontal = 15.dp),
) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ private fun CharacterInfoContainer(data: Result?) {
shape = RoundedCornerShape(8.dp),
) {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
horizontalAlignment = Alignment.Start,
modifier = Modifier.padding(20.dp)
) {
CharacterInfoRow(
Expand Down Expand Up @@ -166,9 +166,9 @@ private fun CharacterInfoContainer(data: Result?) {

@Composable
private fun CharacterInfoRow(modifier: Modifier, text: String, value: String) {
Row(
Column(
modifier = modifier,
horizontalArrangement = Arrangement.SpaceBetween,
verticalArrangement = Arrangement.spacedBy(4.dp),
) {
RickAndMortyText(
text = text,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,32 +1,51 @@

package com.merttoptas.composebase.features.screen.search

import android.content.res.Configuration
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.gestures.detectTapGestures
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Star
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Divider
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.ListItem
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ModalBottomSheet
import androidx.compose.material3.SheetState
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.rememberModalBottomSheetState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.platform.SoftwareKeyboardController
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.semantics.testTag
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.constraintlayout.compose.ConstraintLayout
Expand All @@ -41,23 +60,17 @@ import com.merttoptas.composebase.R
import com.merttoptas.composebase.data.model.Status
import com.merttoptas.composebase.data.model.dto.CharacterDto
import com.merttoptas.composebase.domain.viewstate.search.SearchViewState
import com.merttoptas.composebase.features.component.*
import com.merttoptas.composebase.features.screen.characters.CharactersViewEvent
import com.merttoptas.composebase.features.component.RickAndMortyButton
import com.merttoptas.composebase.features.component.RickAndMortyCharacterShimmer
import com.merttoptas.composebase.features.component.RickAndMortyCharactersCard
import com.merttoptas.composebase.features.component.RickAndMortyScaffold
import com.merttoptas.composebase.features.component.RickAndMortySearchBar
import com.merttoptas.composebase.features.component.RickAndMortySelectableText
import com.merttoptas.composebase.features.component.RickAndMortyText
import com.merttoptas.composebase.features.component.RickAndMortyTopBar
import com.merttoptas.composebase.utils.Utility
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.launch
import androidx.compose.material3.ListItem
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ModalBottomSheet
import androidx.compose.material3.SheetState
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.rememberModalBottomSheetState
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.platform.SoftwareKeyboardController

/**
* Created by merttoptas on 9.04.2022
Expand Down Expand Up @@ -87,15 +100,20 @@ fun SearchScreen(
RickAndMortyTopBar(
text = stringResource(id = R.string.search_screen_title),
actions = {
IconButton(onClick = {
scope.launch { bottomSheetState.hide() }.invokeOnCompletion {
if (!bottomSheetState.isVisible) {
viewModel.onOpenBottomSheet(true)
IconButton(
onClick = {
if (viewState.openBottomSheet) {
scope.launch { bottomSheetState.hide() }.invokeOnCompletion {
if (!bottomSheetState.isVisible) {
viewModel.onOpenBottomSheet(false)
}
}
} else {
viewModel.onOpenBottomSheet(false)
viewModel.onOpenBottomSheet(true)
}
}
}) {
},
modifier = Modifier.semantics { testTag = "filter_button" }
) {
Image(
imageVector = ImageVector.vectorResource(id = R.drawable.ic_filter),
contentDescription = null
Expand All @@ -114,7 +132,7 @@ fun SearchScreen(
onActiveChange = viewModel::onActiveChange,
onDismissRequest = {
scope.launch { bottomSheetState.hide() }.invokeOnCompletion {
if (bottomSheetState.isVisible) {
if (!bottomSheetState.isVisible) {
viewModel.onOpenBottomSheet(false)
}
}
Expand Down