BottomReaderBar.kt 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package eu.kanade.presentation.reader.appbars
  2. import androidx.compose.foundation.background
  3. import androidx.compose.foundation.layout.Arrangement
  4. import androidx.compose.foundation.layout.Row
  5. import androidx.compose.foundation.layout.fillMaxWidth
  6. import androidx.compose.foundation.layout.padding
  7. import androidx.compose.material.icons.Icons
  8. import androidx.compose.material.icons.outlined.Settings
  9. import androidx.compose.material3.Icon
  10. import androidx.compose.material3.IconButton
  11. import androidx.compose.runtime.Composable
  12. import androidx.compose.ui.Alignment
  13. import androidx.compose.ui.Modifier
  14. import androidx.compose.ui.graphics.Color
  15. import androidx.compose.ui.res.painterResource
  16. import androidx.compose.ui.unit.dp
  17. import eu.kanade.tachiyomi.R
  18. import eu.kanade.tachiyomi.ui.reader.setting.ReaderOrientation
  19. import eu.kanade.tachiyomi.ui.reader.setting.ReadingMode
  20. import tachiyomi.i18n.MR
  21. import tachiyomi.presentation.core.i18n.stringResource
  22. @Composable
  23. fun BottomReaderBar(
  24. backgroundColor: Color,
  25. readingMode: ReadingMode,
  26. onClickReadingMode: () -> Unit,
  27. orientation: ReaderOrientation,
  28. onClickOrientation: () -> Unit,
  29. cropEnabled: Boolean,
  30. onClickCropBorder: () -> Unit,
  31. onClickSettings: () -> Unit,
  32. ) {
  33. Row(
  34. modifier = Modifier
  35. .fillMaxWidth()
  36. .background(backgroundColor)
  37. .padding(8.dp),
  38. horizontalArrangement = Arrangement.SpaceEvenly,
  39. verticalAlignment = Alignment.CenterVertically,
  40. ) {
  41. IconButton(onClick = onClickReadingMode) {
  42. Icon(
  43. painter = painterResource(readingMode.iconRes),
  44. contentDescription = stringResource(MR.strings.viewer),
  45. )
  46. }
  47. IconButton(onClick = onClickOrientation) {
  48. Icon(
  49. painter = painterResource(orientation.iconRes),
  50. contentDescription = stringResource(MR.strings.rotation_type),
  51. )
  52. }
  53. IconButton(onClick = onClickCropBorder) {
  54. Icon(
  55. painter = painterResource(if (cropEnabled) R.drawable.ic_crop_24dp else R.drawable.ic_crop_off_24dp),
  56. contentDescription = stringResource(MR.strings.pref_crop_borders),
  57. )
  58. }
  59. IconButton(onClick = onClickSettings) {
  60. Icon(
  61. imageVector = Icons.Outlined.Settings,
  62. contentDescription = stringResource(MR.strings.action_settings),
  63. )
  64. }
  65. }
  66. }