summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chaohui Wang <chaohuiw@google.com> 2023-02-06 13:37:51 +0800
committer Chaohui Wang <chaohuiw@google.com> 2023-02-06 13:40:54 +0800
commiteda91d9bf149c2353f67417dc67de45a71d14ceb (patch)
tree21b089e3dc1023743f70865d02a63c4f3ffb218a
parent37ac20311df5c89443061953e71b455500b782a1 (diff)
Scaffold back arrow should be pointing right when rtl
Mirror the arrow when rtl to fix. Fix: 266190692 Test: Manually with Settings Change-Id: Ia4dffcdaebf0ff1dd794b59390bea467b92417e9
-rw-r--r--packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/Actions.kt13
1 files changed, 13 insertions, 0 deletions
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/Actions.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/Actions.kt
index 32b283e9a8a9..62189dccc9bf 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/Actions.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/scaffold/Actions.kt
@@ -24,7 +24,12 @@ import androidx.compose.material.icons.outlined.FindInPage
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.composed
+import androidx.compose.ui.draw.scale
+import androidx.compose.ui.platform.LocalLayoutDirection
import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.unit.LayoutDirection
import com.android.settingslib.spa.framework.compose.LocalNavController
/** Action that navigates back to last page. */
@@ -50,6 +55,7 @@ private fun BackAction(contentDescription: String, onClick: () -> Unit) {
Icon(
imageVector = Icons.Outlined.ArrowBack,
contentDescription = contentDescription,
+ modifier = Modifier.autoMirrored(),
)
}
}
@@ -75,3 +81,10 @@ internal fun ClearAction(onClick: () -> Unit) {
)
}
}
+
+private fun Modifier.autoMirrored() = composed {
+ when (LocalLayoutDirection.current) {
+ LayoutDirection.Rtl -> scale(scaleX = -1f, scaleY = 1f)
+ else -> this
+ }
+}