mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 06:17:57 +01:00 
			
		
		
		
	Fix up icon direction when RTL
This commit is contained in:
		| @@ -10,6 +10,7 @@ import androidx.compose.foundation.text.KeyboardOptions | ||||
| import androidx.compose.material.TextFieldDefaults | ||||
| import androidx.compose.material.icons.Icons | ||||
| import androidx.compose.material.icons.outlined.ArrowBack | ||||
| import androidx.compose.material.icons.outlined.ArrowForward | ||||
| import androidx.compose.material.icons.outlined.Close | ||||
| import androidx.compose.material.icons.outlined.MoreVert | ||||
| import androidx.compose.material.icons.outlined.Search | ||||
| @@ -38,12 +39,14 @@ import androidx.compose.ui.graphics.Color | ||||
| import androidx.compose.ui.graphics.SolidColor | ||||
| import androidx.compose.ui.graphics.vector.ImageVector | ||||
| import androidx.compose.ui.platform.LocalFocusManager | ||||
| import androidx.compose.ui.platform.LocalLayoutDirection | ||||
| import androidx.compose.ui.platform.LocalSoftwareKeyboardController | ||||
| import androidx.compose.ui.res.stringResource | ||||
| import androidx.compose.ui.text.font.FontWeight | ||||
| import androidx.compose.ui.text.input.ImeAction | ||||
| import androidx.compose.ui.text.input.VisualTransformation | ||||
| import androidx.compose.ui.text.style.TextOverflow | ||||
| import androidx.compose.ui.unit.LayoutDirection | ||||
| import androidx.compose.ui.unit.dp | ||||
| import androidx.compose.ui.unit.sp | ||||
| import eu.kanade.tachiyomi.R | ||||
| @@ -62,7 +65,7 @@ fun AppBar( | ||||
|     subtitle: String? = null, | ||||
|     // Up button | ||||
|     navigateUp: (() -> Unit)? = null, | ||||
|     navigationIcon: ImageVector = Icons.Outlined.ArrowBack, | ||||
|     navigationIcon: ImageVector? = null, | ||||
|     // Menu | ||||
|     actions: @Composable RowScope.() -> Unit = {}, | ||||
|     // Action mode | ||||
| @@ -107,7 +110,7 @@ fun AppBar( | ||||
|     titleContent: @Composable () -> Unit, | ||||
|     // Up button | ||||
|     navigateUp: (() -> Unit)? = null, | ||||
|     navigationIcon: ImageVector = Icons.Outlined.ArrowBack, | ||||
|     navigationIcon: ImageVector? = null, | ||||
|     // Menu | ||||
|     actions: @Composable RowScope.() -> Unit = {}, | ||||
|     // Action mode | ||||
| @@ -131,10 +134,7 @@ fun AppBar( | ||||
|                 } else { | ||||
|                     navigateUp?.let { | ||||
|                         IconButton(onClick = it) { | ||||
|                             Icon( | ||||
|                                 imageVector = navigationIcon, | ||||
|                                 contentDescription = stringResource(R.string.abc_action_bar_up_description), | ||||
|                             ) | ||||
|                             UpIcon(navigationIcon) | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
| @@ -360,6 +360,16 @@ fun SearchToolbar( | ||||
|     ) | ||||
| } | ||||
|  | ||||
| @Composable | ||||
| fun UpIcon(navigationIcon: ImageVector? = null) { | ||||
|     val icon = navigationIcon | ||||
|         ?: if (LocalLayoutDirection.current == LayoutDirection.Ltr) Icons.Outlined.ArrowBack else Icons.Outlined.ArrowForward | ||||
|     Icon( | ||||
|         imageVector = icon, | ||||
|         contentDescription = stringResource(R.string.abc_action_bar_up_description), | ||||
|     ) | ||||
| } | ||||
|  | ||||
| sealed interface AppBar { | ||||
|     sealed interface AppBarAction | ||||
|  | ||||
|   | ||||
| @@ -2,13 +2,11 @@ package eu.kanade.presentation.manga.components | ||||
|  | ||||
| import androidx.compose.foundation.layout.Column | ||||
| import androidx.compose.material.icons.Icons | ||||
| import androidx.compose.material.icons.outlined.ArrowBack | ||||
| import androidx.compose.material.icons.outlined.Close | ||||
| import androidx.compose.material.icons.outlined.Download | ||||
| import androidx.compose.material.icons.outlined.FilterList | ||||
| import androidx.compose.material.icons.outlined.FlipToBack | ||||
| import androidx.compose.material.icons.outlined.SelectAll | ||||
| import androidx.compose.material3.Icon | ||||
| import androidx.compose.material3.IconButton | ||||
| import androidx.compose.material3.LocalContentColor | ||||
| import androidx.compose.material3.MaterialTheme | ||||
| @@ -29,6 +27,7 @@ import androidx.compose.ui.unit.dp | ||||
| import eu.kanade.presentation.components.AppBar | ||||
| import eu.kanade.presentation.components.AppBarActions | ||||
| import eu.kanade.presentation.components.DownloadDropdownMenu | ||||
| import eu.kanade.presentation.components.UpIcon | ||||
| import eu.kanade.presentation.manga.DownloadAction | ||||
| import eu.kanade.tachiyomi.R | ||||
| import tachiyomi.presentation.core.theme.active | ||||
| @@ -67,10 +66,7 @@ fun MangaToolbar( | ||||
|             }, | ||||
|             navigationIcon = { | ||||
|                 IconButton(onClick = onBackClicked) { | ||||
|                     Icon( | ||||
|                         imageVector = if (isActionMode) Icons.Outlined.Close else Icons.Outlined.ArrowBack, | ||||
|                         contentDescription = stringResource(R.string.abc_action_bar_up_description), | ||||
|                     ) | ||||
|                     UpIcon(Icons.Outlined.Close.takeIf { isActionMode }) | ||||
|                 } | ||||
|             }, | ||||
|             actions = { | ||||
|   | ||||
| @@ -2,15 +2,12 @@ package eu.kanade.presentation.more.settings | ||||
|  | ||||
| import androidx.annotation.StringRes | ||||
| import androidx.compose.foundation.layout.RowScope | ||||
| import androidx.compose.material.icons.Icons | ||||
| import androidx.compose.material.icons.outlined.ArrowBack | ||||
| import androidx.compose.material3.Icon | ||||
| import androidx.compose.material3.IconButton | ||||
| import androidx.compose.material3.Text | ||||
| import androidx.compose.material3.TopAppBar | ||||
| import androidx.compose.runtime.Composable | ||||
| import androidx.compose.ui.res.stringResource | ||||
| import eu.kanade.tachiyomi.R | ||||
| import eu.kanade.presentation.components.UpIcon | ||||
| import tachiyomi.presentation.core.components.material.Scaffold | ||||
|  | ||||
| @Composable | ||||
| @@ -27,10 +24,7 @@ fun PreferenceScaffold( | ||||
|                 navigationIcon = { | ||||
|                     if (onBackPressed != null) { | ||||
|                         IconButton(onClick = onBackPressed) { | ||||
|                             Icon( | ||||
|                                 imageVector = Icons.Outlined.ArrowBack, | ||||
|                                 contentDescription = stringResource(R.string.abc_action_bar_up_description), | ||||
|                             ) | ||||
|                             UpIcon() | ||||
|                         } | ||||
|                     } | ||||
|                 }, | ||||
|   | ||||
| @@ -8,7 +8,6 @@ import androidx.compose.foundation.lazy.itemsIndexed | ||||
| import androidx.compose.foundation.lazy.rememberLazyListState | ||||
| import androidx.compose.foundation.shape.RoundedCornerShape | ||||
| import androidx.compose.material.icons.Icons | ||||
| import androidx.compose.material.icons.outlined.ArrowBack | ||||
| import androidx.compose.material.icons.outlined.ChromeReaderMode | ||||
| import androidx.compose.material.icons.outlined.Code | ||||
| import androidx.compose.material.icons.outlined.CollectionsBookmark | ||||
| @@ -20,7 +19,6 @@ import androidx.compose.material.icons.outlined.Search | ||||
| import androidx.compose.material.icons.outlined.Security | ||||
| import androidx.compose.material.icons.outlined.SettingsBackupRestore | ||||
| import androidx.compose.material.icons.outlined.Sync | ||||
| import androidx.compose.material3.Icon | ||||
| import androidx.compose.material3.IconButton | ||||
| import androidx.compose.material3.LocalContentColor | ||||
| import androidx.compose.material3.MaterialTheme | ||||
| @@ -45,6 +43,7 @@ import cafe.adriel.voyager.navigator.Navigator | ||||
| import cafe.adriel.voyager.navigator.currentOrThrow | ||||
| import eu.kanade.presentation.components.AppBar | ||||
| import eu.kanade.presentation.components.AppBarActions | ||||
| import eu.kanade.presentation.components.UpIcon | ||||
| import eu.kanade.presentation.more.settings.widget.TextPreferenceWidget | ||||
| import eu.kanade.presentation.util.LocalBackPress | ||||
| import eu.kanade.presentation.util.Screen | ||||
| @@ -94,10 +93,7 @@ object SettingsMainScreen : Screen() { | ||||
|                     }, | ||||
|                     navigationIcon = { | ||||
|                         IconButton(onClick = backPress::invoke) { | ||||
|                             Icon( | ||||
|                                 imageVector = Icons.Outlined.ArrowBack, | ||||
|                                 contentDescription = stringResource(R.string.abc_action_bar_up_description), | ||||
|                             ) | ||||
|                             UpIcon() | ||||
|                         } | ||||
|                     }, | ||||
|                     actions = { | ||||
|   | ||||
| @@ -17,7 +17,6 @@ import androidx.compose.foundation.text.BasicTextField | ||||
| import androidx.compose.foundation.text.KeyboardActions | ||||
| import androidx.compose.foundation.text.KeyboardOptions | ||||
| import androidx.compose.material.icons.Icons | ||||
| import androidx.compose.material.icons.outlined.ArrowBack | ||||
| import androidx.compose.material.icons.outlined.Close | ||||
| import androidx.compose.material3.Icon | ||||
| import androidx.compose.material3.IconButton | ||||
| @@ -49,6 +48,7 @@ import androidx.compose.ui.text.style.TextOverflow | ||||
| import androidx.compose.ui.unit.dp | ||||
| import cafe.adriel.voyager.navigator.LocalNavigator | ||||
| import cafe.adriel.voyager.navigator.currentOrThrow | ||||
| import eu.kanade.presentation.components.UpIcon | ||||
| import eu.kanade.presentation.more.settings.Preference | ||||
| import eu.kanade.presentation.util.Screen | ||||
| import eu.kanade.tachiyomi.R | ||||
| @@ -97,11 +97,7 @@ class SettingsSearchScreen : Screen() { | ||||
|                             val canPop = remember { navigator.canPop } | ||||
|                             if (canPop) { | ||||
|                                 IconButton(onClick = navigator::pop) { | ||||
|                                     Icon( | ||||
|                                         imageVector = Icons.Outlined.ArrowBack, | ||||
|                                         contentDescription = stringResource(R.string.abc_action_bar_up_description), | ||||
|                                         tint = MaterialTheme.colorScheme.onSurfaceVariant, | ||||
|                                     ) | ||||
|                                     UpIcon() | ||||
|                                 } | ||||
|                             } | ||||
|                         }, | ||||
|   | ||||
| @@ -7,9 +7,6 @@ import android.view.View | ||||
| import androidx.appcompat.view.ContextThemeWrapper | ||||
| import androidx.compose.foundation.layout.fillMaxSize | ||||
| import androidx.compose.foundation.layout.padding | ||||
| import androidx.compose.material.icons.Icons | ||||
| import androidx.compose.material.icons.outlined.ArrowBack | ||||
| import androidx.compose.material3.Icon | ||||
| import androidx.compose.material3.IconButton | ||||
| import androidx.compose.material3.Text | ||||
| import androidx.compose.material3.TopAppBar | ||||
| @@ -21,7 +18,6 @@ import androidx.compose.runtime.saveable.rememberSaveable | ||||
| import androidx.compose.runtime.setValue | ||||
| import androidx.compose.ui.Modifier | ||||
| import androidx.compose.ui.platform.LocalContext | ||||
| import androidx.compose.ui.res.stringResource | ||||
| import androidx.compose.ui.viewinterop.AndroidView | ||||
| import androidx.core.os.bundleOf | ||||
| import androidx.fragment.app.FragmentActivity | ||||
| @@ -38,6 +34,7 @@ import androidx.preference.forEach | ||||
| import androidx.preference.getOnBindEditTextListener | ||||
| import cafe.adriel.voyager.navigator.LocalNavigator | ||||
| import cafe.adriel.voyager.navigator.currentOrThrow | ||||
| import eu.kanade.presentation.components.UpIcon | ||||
| import eu.kanade.presentation.util.Screen | ||||
| import eu.kanade.tachiyomi.R | ||||
| import eu.kanade.tachiyomi.data.preference.SharedPreferencesDataStore | ||||
| @@ -62,10 +59,7 @@ class SourcePreferencesScreen(val sourceId: Long) : Screen() { | ||||
|                     title = { Text(text = Injekt.get<SourceManager>().getOrStub(sourceId).toString()) }, | ||||
|                     navigationIcon = { | ||||
|                         IconButton(onClick = navigator::pop) { | ||||
|                             Icon( | ||||
|                                 imageVector = Icons.Outlined.ArrowBack, | ||||
|                                 contentDescription = stringResource(R.string.abc_action_bar_up_description), | ||||
|                             ) | ||||
|                             UpIcon() | ||||
|                         } | ||||
|                     }, | ||||
|                     scrollBehavior = it, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user