diff --git a/app/src/main/java/ua/acclorite/book_story/domain/model/HelpTip.kt b/app/src/main/java/ua/acclorite/book_story/domain/model/HelpTip.kt index 871e4a4d..5367a87c 100644 --- a/app/src/main/java/ua/acclorite/book_story/domain/model/HelpTip.kt +++ b/app/src/main/java/ua/acclorite/book_story/domain/model/HelpTip.kt @@ -1,16 +1,13 @@ package ua.acclorite.book_story.domain.model import androidx.annotation.StringRes -import androidx.compose.foundation.layout.ColumnScope import androidx.compose.runtime.Composable import androidx.compose.runtime.Immutable import androidx.compose.ui.text.AnnotatedString import ua.acclorite.book_story.domain.util.OnNavigate -import ua.acclorite.book_story.presentation.screens.help.data.HelpEvent @Immutable data class HelpTip( @StringRes val title: Int, - val description: @Composable AnnotatedString.Builder.(onNavigate: OnNavigate, fromStart: Boolean) -> Unit, - val customContent: @Composable ColumnScope.(onHelpEvent: (HelpEvent) -> Unit) -> Unit = {}, + val description: @Composable AnnotatedString.Builder.(onNavigate: OnNavigate, fromStart: Boolean) -> Unit ) \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/domain/util/Constants.kt b/app/src/main/java/ua/acclorite/book_story/domain/util/Constants.kt index ba0462d4..a17d8bb8 100644 --- a/app/src/main/java/ua/acclorite/book_story/domain/util/Constants.kt +++ b/app/src/main/java/ua/acclorite/book_story/domain/util/Constants.kt @@ -26,7 +26,6 @@ import ua.acclorite.book_story.domain.model.HelpTip import ua.acclorite.book_story.domain.model.NavigationItem import ua.acclorite.book_story.presentation.data.Screen import ua.acclorite.book_story.presentation.screens.help.components.HelpAnnotation -import ua.acclorite.book_story.presentation.screens.help.components.content.HelpFindBooksContent import ua.acclorite.book_story.presentation.ui.Theme object Constants { @@ -167,16 +166,6 @@ private fun provideCredits() = listOf( ) private fun provideHelpTips() = listOf( - HelpTip( - title = R.string.help_title_how_to_find_books, - description = { _, _ -> - append(stringResource(id = R.string.help_desc_how_to_find_books)) - }, - customContent = { onHelpEvent -> - HelpFindBooksContent(onEvent = onHelpEvent) - } - ), - HelpTip( title = R.string.help_title_how_to_add_books, description = { onNavigate, fromStart -> diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/HelpScreen.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/HelpScreen.kt index 83792149..cbc5d02c 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/HelpScreen.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/HelpScreen.kt @@ -1,13 +1,11 @@ package ua.acclorite.book_story.presentation.screens.help import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.navigationBars import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.foundation.layout.padding @@ -47,7 +45,6 @@ import ua.acclorite.book_story.presentation.screens.browse.data.BrowseEvent import ua.acclorite.book_story.presentation.screens.browse.data.BrowseViewModel import ua.acclorite.book_story.presentation.screens.help.components.HelpItem import ua.acclorite.book_story.presentation.screens.help.components.items.HelpClickMeNoteItem -import ua.acclorite.book_story.presentation.screens.help.data.HelpEvent import ua.acclorite.book_story.presentation.screens.help.data.HelpState import ua.acclorite.book_story.presentation.screens.help.data.HelpViewModel import ua.acclorite.book_story.presentation.screens.start.data.StartEvent @@ -70,7 +67,6 @@ fun HelpScreenRoot(screen: Screen.Help) { HelpScreen( state = state, onNavigate = { navigator.it() }, - onEvent = helpViewModel::onEvent, onMainEvent = mainViewModel::onEvent, onBrowseEvent = browseViewModel::onEvent, onStartEvent = startViewModel::onEvent @@ -84,7 +80,6 @@ fun HelpScreenRoot(screen: Screen.Help) { private fun HelpScreen( state: State, onNavigate: OnNavigate, - onEvent: (HelpEvent) -> Unit, onMainEvent: (MainEvent) -> Unit, onBrowseEvent: (BrowseEvent) -> Unit, onStartEvent: (StartEvent) -> Unit @@ -158,17 +153,11 @@ private fun HelpScreen( CustomLazyColumn( Modifier .fillMaxSize() - .padding(paddingValues) - .imePadding(), - state = scrollState.second, - contentPadding = PaddingValues(horizontal = 18.dp) + .padding(paddingValues), + state = scrollState.second ) { item { - Spacer( - modifier = Modifier - .animateItem() - .height(16.dp) - ) + Spacer(modifier = Modifier.height(16.dp)) } item { @@ -176,28 +165,19 @@ private fun HelpScreen( } item { - Spacer( - modifier = Modifier - .animateItem() - .height(16.dp) - ) + Spacer(modifier = Modifier.height(8.dp)) } customItems(Constants.HELP_TIPS, key = { it.title }) { helpTip -> HelpItem( helpTip = helpTip, onNavigate = onNavigate, - fromStart = state.value.fromStart, - onHelpEvent = onEvent + fromStart = state.value.fromStart ) } item { - Spacer( - modifier = Modifier - .animateItem() - .height(48.dp) - ) + Spacer(modifier = Modifier.height(48.dp)) } } } diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/HelpClickableNote.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/HelpClickableNote.kt index 51005cf7..43b02668 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/HelpClickableNote.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/HelpClickableNote.kt @@ -4,8 +4,8 @@ import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.foundation.lazy.LazyItemScope import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Info import androidx.compose.material3.Icon @@ -20,7 +20,7 @@ import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R import ua.acclorite.book_story.presentation.components.CustomTooltip -import ua.acclorite.book_story.presentation.ui.SlidingTransition +import ua.acclorite.book_story.presentation.ui.ExpandingTransition /** * Help Clickable Note. @@ -29,10 +29,10 @@ import ua.acclorite.book_story.presentation.ui.SlidingTransition * @param text [AnnotatedString]. */ @Composable -fun LazyItemScope.HelpClickableNote(text: AnnotatedString) { +fun HelpClickableNote(text: AnnotatedString) { val showNote = rememberSaveable { mutableStateOf(true) } - Column(Modifier.animateItem()) { + Column(Modifier.padding(horizontal = 18.dp)) { CustomTooltip(text = stringResource(R.string.note_content_desc)) { Icon( imageVector = Icons.Outlined.Info, @@ -46,7 +46,7 @@ fun LazyItemScope.HelpClickableNote(text: AnnotatedString) { ) } - SlidingTransition(visible = showNote.value) { + ExpandingTransition(visible = showNote.value) { Column { Spacer(modifier = Modifier.height(8.dp)) Text( @@ -58,10 +58,4 @@ fun LazyItemScope.HelpClickableNote(text: AnnotatedString) { } } } -} - - - - - - +} \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/HelpItem.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/HelpItem.kt index 07bf7873..cb36e465 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/HelpItem.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/HelpItem.kt @@ -1,7 +1,9 @@ package ua.acclorite.book_story.presentation.screens.help.components +import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.tween +import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -11,18 +13,18 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width -import androidx.compose.foundation.lazy.LazyItemScope import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.ArrowDropUp +import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.rotate import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.buildAnnotatedString @@ -30,8 +32,7 @@ import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R import ua.acclorite.book_story.domain.model.HelpTip import ua.acclorite.book_story.domain.util.OnNavigate -import ua.acclorite.book_story.presentation.screens.help.data.HelpEvent -import ua.acclorite.book_story.presentation.ui.SlidingTransition +import ua.acclorite.book_story.presentation.ui.ExpandingTransition /** * Help Item. @@ -40,29 +41,44 @@ import ua.acclorite.book_story.presentation.ui.SlidingTransition * @param helpTip [HelpTip] to be shown. * @param onNavigate Navigator callback. * @param fromStart Whether user came from Start screen. - * @param onHelpEvent [HelpEvent] callback. */ @Composable -fun LazyItemScope.HelpItem( +fun HelpItem( helpTip: HelpTip, onNavigate: OnNavigate, - fromStart: Boolean, - onHelpEvent: (HelpEvent) -> Unit + fromStart: Boolean ) { val showDescription = rememberSaveable { mutableStateOf(false) } - val animatedArrowRotation by animateFloatAsState( + + val animatedArrowRotation = animateFloatAsState( targetValue = if (showDescription.value) 0f else -180f, - animationSpec = tween(300), - label = stringResource(id = R.string.arrow_anim_content_desc) + animationSpec = tween(400) + ) + val animatedBackgroundColor = animateColorAsState( + targetValue = if (showDescription.value) { + MaterialTheme.colorScheme.surfaceContainer + } else MaterialTheme.colorScheme.surfaceContainerLow, + animationSpec = tween(400) + ) + val animatedArrowContainerColor = animateColorAsState( + targetValue = if (showDescription.value) { + MaterialTheme.colorScheme.surfaceContainerHigh + } else MaterialTheme.colorScheme.surfaceContainer, + animationSpec = tween(400) ) Column( Modifier - .animateItem() .fillMaxWidth() - .padding(vertical = 8.dp) + .clip(MaterialTheme.shapes.large) + .padding(horizontal = 8.dp, vertical = 4.dp) + .background( + animatedBackgroundColor.value, + MaterialTheme.shapes.large + ) + .padding(vertical = 16.dp, horizontal = 18.dp) ) { Row( modifier = Modifier @@ -83,17 +99,25 @@ fun LazyItemScope.HelpItem( imageVector = Icons.Outlined.ArrowDropUp, tint = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier + .clip(MaterialTheme.shapes.medium) + .background( + animatedArrowContainerColor.value, + MaterialTheme.shapes.medium + ) + .padding(8.dp) .size(24.dp) - .rotate(animatedArrowRotation), + .rotate(animatedArrowRotation.value), contentDescription = stringResource(id = R.string.arrow_content_desc) ) } - SlidingTransition( + ExpandingTransition( visible = showDescription.value ) { Column(Modifier.fillMaxWidth()) { - Spacer(modifier = Modifier.height(16.dp)) + Spacer(modifier = Modifier.height(8.dp)) + HorizontalDivider() + Spacer(modifier = Modifier.height(8.dp)) Text( text = buildAnnotatedString { helpTip.description.invoke( @@ -106,10 +130,6 @@ fun LazyItemScope.HelpItem( color = MaterialTheme.colorScheme.onSurfaceVariant ) ) - helpTip.customContent.invoke( - this, - onHelpEvent - ) } } } diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/content/HelpFindBooksContent.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/content/HelpFindBooksContent.kt deleted file mode 100644 index 314fe17d..00000000 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/components/content/HelpFindBooksContent.kt +++ /dev/null @@ -1,153 +0,0 @@ -package ua.acclorite.book_story.presentation.screens.help.components.content - -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.text.KeyboardActions -import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Search -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.OutlinedTextField -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.stringArrayResource -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.buildAnnotatedString -import androidx.compose.ui.text.input.ImeAction -import androidx.compose.ui.text.input.KeyboardCapitalization -import androidx.compose.ui.unit.dp -import ua.acclorite.book_story.R -import ua.acclorite.book_story.presentation.components.CustomIconButton -import ua.acclorite.book_story.presentation.data.showToast -import ua.acclorite.book_story.presentation.screens.help.components.HelpAnnotation -import ua.acclorite.book_story.presentation.screens.help.data.HelpEvent -import ua.acclorite.book_story.presentation.ui.SlidingTransition - -/** - * Help Find Books Content. - * [ua.acclorite.book_story.domain.model.HelpTip]'s custom content. - */ -@Composable -fun HelpFindBooksContent(onEvent: (HelpEvent) -> Unit) { - val context = LocalContext.current - val text = remember { mutableStateOf("") } - val showError = remember { mutableStateOf(false) } - - val sites = stringArrayResource(id = R.array.book_sites) - val supportingText = buildAnnotatedString { - append(stringResource(id = R.string.help_field_support) + " ") - - sites.forEachIndexed { index, string -> - HelpAnnotation( - onClick = { - onEvent( - HelpEvent.OnNavigateToBrowserPage( - page = string.substringAfterLast("|"), - context = context, - noAppsFound = { - context.getString(R.string.error_no_browser) - .showToast(context = context, longToast = false) - } - ) - ) - } - ) { - append(string.substringBeforeLast("|")) - } - - if (index < sites.lastIndex) { - append(", ") - } - } - } - - Spacer(modifier = Modifier.height(4.dp)) - OutlinedTextField( - value = text.value, - modifier = Modifier - .fillMaxWidth(), - onValueChange = { value -> - text.value = value - showError.value = false - }, - label = { - Text(text = stringResource(id = R.string.help_field_placeholder)) - }, - keyboardActions = KeyboardActions( - onSearch = { - onEvent( - HelpEvent.OnSearchInWeb( - page = text.value, - context = context, - error = { - showError.value = true - }, - noAppsFound = { - context.getString(R.string.error_no_browser) - .showToast(context = context, longToast = false) - } - ) - ) - } - ), - keyboardOptions = KeyboardOptions( - KeyboardCapitalization.Words, - imeAction = ImeAction.Search - ), - trailingIcon = { - CustomIconButton( - icon = Icons.Default.Search, - contentDescription = R.string.search_content_desc, - disableOnClick = false, - enabled = !showError.value, - color = when (showError.value) { - true -> MaterialTheme.colorScheme.outline - false -> MaterialTheme.colorScheme.primary - }, - onClick = { - onEvent( - HelpEvent.OnSearchInWeb( - page = text.value, - context = context, - error = { showError.value = true }, - noAppsFound = { - context.getString(R.string.error_no_browser) - .showToast(context = context, longToast = false) - } - ) - ) - } - ) - }, - supportingText = { - Column { - Spacer(modifier = Modifier.height(2.dp)) - Box { - SlidingTransition(visible = showError.value) { - Text( - text = stringResource(id = R.string.help_field_error), - color = MaterialTheme.colorScheme.error, - style = MaterialTheme.typography.bodySmall - ) - } - SlidingTransition(visible = !showError.value) { - Text( - text = supportingText, - style = MaterialTheme.typography.bodySmall.copy( - color = MaterialTheme.colorScheme.onSurfaceVariant - ) - ) - } - } - } - }, - singleLine = true - ) -} \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/data/HelpEvent.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/data/HelpEvent.kt deleted file mode 100644 index deef4f8e..00000000 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/data/HelpEvent.kt +++ /dev/null @@ -1,20 +0,0 @@ -package ua.acclorite.book_story.presentation.screens.help.data - -import android.content.Context -import androidx.compose.runtime.Immutable - -@Immutable -sealed class HelpEvent { - data class OnSearchInWeb( - val page: String, - val context: Context, - val error: () -> Unit, - val noAppsFound: () -> Unit - ) : HelpEvent() - - data class OnNavigateToBrowserPage( - val page: String, - val context: Context, - val noAppsFound: () -> Unit - ) : HelpEvent() -} \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/data/HelpViewModel.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/data/HelpViewModel.kt index 3d7429b2..7fe472e3 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/data/HelpViewModel.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/help/data/HelpViewModel.kt @@ -1,9 +1,5 @@ package ua.acclorite.book_story.presentation.screens.help.data -import android.app.SearchManager -import android.content.Intent -import android.net.Uri -import androidx.activity.ComponentActivity import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel @@ -12,7 +8,6 @@ import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import ua.acclorite.book_story.presentation.data.Screen -import ua.acclorite.book_story.presentation.data.launchActivity import javax.inject.Inject @HiltViewModel @@ -23,44 +18,6 @@ class HelpViewModel @Inject constructor( private val _state = MutableStateFlow(HelpState()) val state = _state.asStateFlow() - fun onEvent(event: HelpEvent) { - when (event) { - is HelpEvent.OnNavigateToBrowserPage -> { - viewModelScope.launch { - val intent = Intent( - Intent.ACTION_VIEW, - Uri.parse(event.page) - ) - - intent.launchActivity(event.context as ComponentActivity) { - event.noAppsFound() - } - } - } - - is HelpEvent.OnSearchInWeb -> { - viewModelScope.launch { - if (event.page.isBlank()) { - event.error() - return@launch - } - - val intent = Intent() - - intent.action = Intent.ACTION_WEB_SEARCH - intent.putExtra( - SearchManager.QUERY, - "${event.page.trim()} filetype:txt OR filetype:pdf" - ) - - intent.launchActivity(event.context as ComponentActivity) { - event.noAppsFound() - } - } - } - } - } - fun init(screen: Screen.Help) { viewModelScope.launch { _state.update { @@ -70,12 +27,4 @@ class HelpViewModel @Inject constructor( } } } -} - - - - - - - - +} \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/ui/Transitions.kt b/app/src/main/java/ua/acclorite/book_story/presentation/ui/Transitions.kt index 6f043cf3..661832b0 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/ui/Transitions.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/ui/Transitions.kt @@ -4,9 +4,11 @@ import androidx.compose.animation.core.AnimationSpec import androidx.compose.animation.core.EaseInOut import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.tween +import androidx.compose.animation.expandVertically import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.scaleIn +import androidx.compose.animation.shrinkVertically import androidx.compose.animation.slideInHorizontally import androidx.compose.animation.slideInVertically import androidx.compose.animation.slideOutHorizontally @@ -78,6 +80,23 @@ fun SlidingTransition( ) } +@Composable +fun ExpandingTransition( + visible: Boolean, + modifier: Modifier = Modifier, + content: @Composable () -> Unit +) { + CustomAnimatedVisibility( + visible = visible, + modifier = modifier, + enter = expandVertically(tween(400)) + + fadeIn(tween(400)), + exit = shrinkVertically(tween(350)) + + fadeOut(tween(200)), + content = content + ) +} + @Composable fun FadeTransitionPreservingSpace( visible: Boolean, diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 7271b674..9f205702 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -138,11 +138,6 @@ Fehler melden kann angeklickt werden. Du kannst diese Notiz auch ausblenden, indem du auf das Symbol klickst, probier es aus! Ich bin anklickbar! - Wie finde und lade ich Bücher herunter? - Sie können versuchen, die gewünschten Bücher über die bereitgestellten Websites zu finden, oder Sie können das Textfeld verwenden, um online nach Büchern zu suchen. - Name des Buches - Nützliche Websites mit Büchern: - Der Name des Buches darf nicht leer sein Wie füge ich Bücher zur Bibliothek hinzu? Gehen Sie zum Durchsuchen @@ -284,7 +279,6 @@ Leseverlauf Bücher hinzufügen Pfeil - Pfeilanimation Vorausgesetzt Startanleitung zurücksetzen Bearbeitungsmodus beenden diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 1bdd529e..7bd09441 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -188,10 +188,6 @@ ¡Gloria a Ucrania! Diseño ¡Puedo hacer clic! - ¿Cómo encuentro y descargo libros? - Nombre del libro - Páginas útiles con libros: - El nombre del libro no debe estar vacío Ir a la Biblioteca ¿Cómo personalizo la aplicación? @@ -221,7 +217,6 @@ Gestión de nuevas actualizaciones se puede hacer clic. También puedes ocultar esta nota haciendo clic en el icono, ¡pruébalo! en este texto resaltado - Puedes intentar encontrar los libros que desees utilizando las páginas de la nota proporcionada o puedes utilizar el campo de texto para buscar los libros en Internet. ¿Cómo añado libros a la biblioteca? Si no ves los libros descargados intenta actualizar la lista tirando de ella hacia abajo. Asegúrate de que tus libros tienen un formato de archivo compatible. A continuación, haz clic en el libro para seleccionarlo o manténlo presionado para ver su ubicación. Cuando hayas seleccionado todos los libros que quieres, haz clic en el icono de la marca de verificación en la esquina superior derecha, espera a que se carguen todos los libros y haz clic en \"Añadir\". Ahora deberías ver todos los libros que ha añadido en la sección ¿Cómo se edita un libro? @@ -274,7 +269,6 @@ Eliminar elemento del historial Tu biblioteca Flecha - Animación de flecha Necesario Salir del modo edición Abrir en la web diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index ea360bee..5885bcd2 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -303,14 +303,6 @@ Ayrıca ikona tıklayarak bu notu gizleyebilirsiniz, deneyin! Ben tıklanabiliyorum! - Kitapları nasıl bulup indirebilirim? - - İstediğiniz kitapları verilen nottaki sitelerden bulmayı deneyebilir - veya kitapları çevrimiçi aramak için metin alanını kullanabilirsiniz. - - Kitabın adı - Kitap içeren faydalı siteler: - Kitap adı boş olmamalı Kitapları Kütüphane\'ye nasıl eklerim? Şuraya gidin: Göz At @@ -490,7 +482,6 @@ Okuma geçmişi Kitap ekle Ok - Ok animasyonu Gerekli Başlangıç kılavuzunu sıfırla Düzenleme modundan çık diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 56ce60d5..502d729d 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -1,9 +1,4 @@ - - - - Архів Анни|https://uk.annas-archive.org - Укрліб|https://www.ukrlib.com.ua - + Нові оновлення @@ -383,15 +378,6 @@ На мене можна натиснути! - Як мені знайти та завантажити книги? - - Ви можете спробувати знайти бажані книги використовуючи сайти з наведеної примітки - або ви можете використати текстове поле, щоб шукати книги в інтернеті. - - Назва книги - Корисні сайти з книгами: - Назва книги не має бути порожньою - Як мені додати книги в Бібліотеку? Перейдіть в Огляд @@ -594,7 +580,6 @@ Історія читання Додавайте книги Стрілка - Анімація стрілки Необхідно Скинути початковий посібник Вийти з режиму редагування diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index da8240a4..97bf53fd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,15 +1,8 @@ - + 1.2.0 Book\'s Story - - - Anna\'s Archive|https://www.annas-archive.org - Project Gutenberg|https://www.gutenberg.org - Standard Ebooks|https://www.standardebooks.org - - https://www.github.com/Acclorite/book-story/releases/latest/download/book-story.apk @@ -402,15 +395,6 @@ I\'m clickable! - How do I find and download books? - - You can try to find desired books using sites from provided note - or you can use text field to search for books online. - - Book\'s name - Useful sites with books: - Book\'s name should not be empty - How do I add books to the Library? Go to the Browse @@ -612,7 +596,6 @@ Reading history Add books Arrow - Arrow animation Required Reset start guide Exit editing mode