mirror of
https://gitlab.futo.org/keyboard/latinime.git
synced 2024-09-28 14:54:30 +01:00
Update action editor
This commit is contained in:
parent
9985f2a715
commit
5c11fa4e3f
42
java/res/drawable/move.xml
Normal file
42
java/res/drawable/move.xml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24">
|
||||||
|
<path
|
||||||
|
android:pathData="m5,9 l-3,3 3,3"
|
||||||
|
android:strokeLineJoin="round"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:strokeColor="#FFFFFF"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m9,5 l3,-3 3,3"
|
||||||
|
android:strokeLineJoin="round"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:strokeColor="#FFFFFF"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m15,19 l-3,3 -3,-3"
|
||||||
|
android:strokeLineJoin="round"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:strokeColor="#FFFFFF"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m19,9 l3,3 -3,3"
|
||||||
|
android:strokeLineJoin="round"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:strokeColor="#FFFFFF"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M2,12h20"
|
||||||
|
android:strokeLineJoin="round"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:strokeColor="#FFFFFF"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M12,2v20"
|
||||||
|
android:strokeLineJoin="round"
|
||||||
|
android:strokeWidth="2"
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:strokeColor="#FFFFFF"/>
|
||||||
|
</vector>
|
@ -15,6 +15,12 @@
|
|||||||
<string name="mem_debug_action_title">Debug Info</string>
|
<string name="mem_debug_action_title">Debug Info</string>
|
||||||
<string name="more_actions_action_title">More Actions</string>
|
<string name="more_actions_action_title">More Actions</string>
|
||||||
|
|
||||||
|
<string name="action_kind_action_key">Action Key</string>
|
||||||
|
<string name="action_kind_pinned_key">Pinned Action(s)</string>
|
||||||
|
<string name="action_kind_favorites">Favorite Actions</string>
|
||||||
|
<string name="action_kind_more">More Actions</string>
|
||||||
|
<string name="action_kind_disabled">Hidden Actions</string>
|
||||||
|
|
||||||
<string name="amoled_dark_theme_name">AMOLED Dark Purple</string>
|
<string name="amoled_dark_theme_name">AMOLED Dark Purple</string>
|
||||||
<string name="classic_material_dark_theme_name">AOSP Material Dark</string>
|
<string name="classic_material_dark_theme_name">AOSP Material Dark</string>
|
||||||
<string name="classic_material_light_theme_name">AOSP Material Light</string>
|
<string name="classic_material_light_theme_name">AOSP Material Light</string>
|
||||||
|
@ -14,6 +14,7 @@ import androidx.compose.foundation.layout.fillMaxSize
|
|||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.height
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.lazy.grid.GridCells
|
import androidx.compose.foundation.lazy.grid.GridCells
|
||||||
import androidx.compose.foundation.lazy.grid.GridItemSpan
|
import androidx.compose.foundation.lazy.grid.GridItemSpan
|
||||||
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
|
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
|
||||||
@ -21,6 +22,7 @@ import androidx.compose.foundation.lazy.grid.items
|
|||||||
import androidx.compose.foundation.lazy.grid.rememberLazyGridState
|
import androidx.compose.foundation.lazy.grid.rememberLazyGridState
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
|
import androidx.compose.material3.LocalContentColor
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.OutlinedButton
|
import androidx.compose.material3.OutlinedButton
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
@ -38,6 +40,7 @@ import androidx.compose.ui.platform.LocalInspectionMode
|
|||||||
import androidx.compose.ui.platform.LocalView
|
import androidx.compose.ui.platform.LocalView
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
@ -54,15 +57,24 @@ import sh.calvin.reorderable.rememberReorderableLazyGridState
|
|||||||
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ActionItem(action: Action, modifier: Modifier = Modifier) {
|
fun ActionItem(action: Action, modifier: Modifier = Modifier, dragIcon: Boolean = false, dragIconModifier: Modifier = Modifier) {
|
||||||
Surface(color = MaterialTheme.colorScheme.primaryContainer, modifier = modifier
|
Surface(color = MaterialTheme.colorScheme.surfaceVariant.copy(alpha = 0.5f), modifier = modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.height(92.dp)
|
.height(92.dp)
|
||||||
, shape = RoundedCornerShape(8.dp)) {
|
, shape = RoundedCornerShape(16.dp)) {
|
||||||
Box(modifier = Modifier
|
Box(modifier = Modifier
|
||||||
.fillMaxSize()
|
.fillMaxSize()
|
||||||
.padding(8.dp)) {
|
.padding(8.dp)) {
|
||||||
|
|
||||||
|
if(dragIcon) {
|
||||||
|
Icon(
|
||||||
|
painterResource(id = R.drawable.move),
|
||||||
|
contentDescription = null,
|
||||||
|
modifier = dragIconModifier.size(16.dp).align(Alignment.TopEnd),
|
||||||
|
tint = LocalContentColor.current.copy(alpha = 0.6f)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
Column(modifier = Modifier
|
Column(modifier = Modifier
|
||||||
.align(Center)
|
.align(Center)
|
||||||
.padding(8.dp)) {
|
.padding(8.dp)) {
|
||||||
@ -114,6 +126,8 @@ fun MoreActionsView() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val CategoryTitleStyle = Typography.titleMedium.copy(fontWeight = FontWeight.W500)
|
||||||
|
|
||||||
|
|
||||||
@OptIn(ExperimentalFoundationApi::class)
|
@OptIn(ExperimentalFoundationApi::class)
|
||||||
@Composable
|
@Composable
|
||||||
@ -171,7 +185,7 @@ fun ActionsEditor() {
|
|||||||
onDragStopped = {
|
onDragStopped = {
|
||||||
view.performHapticFeedback(HapticFeedbackConstants.GESTURE_END)
|
view.performHapticFeedback(HapticFeedbackConstants.GESTURE_END)
|
||||||
},
|
},
|
||||||
))
|
), dragIcon = true, dragIconModifier = Modifier.draggableHandle())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
is ActionEditorItem.Separator -> {
|
is ActionEditorItem.Separator -> {
|
||||||
@ -186,7 +200,7 @@ fun ActionsEditor() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Text(it.category.name)
|
Text(it.category.name(context), modifier = Modifier.padding(top = 24.dp), style = CategoryTitleStyle, color = LocalContentColor.current.copy(alpha = 0.6f))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import android.content.Context
|
|||||||
import androidx.core.content.edit
|
import androidx.core.content.edit
|
||||||
import androidx.datastore.preferences.core.stringPreferencesKey
|
import androidx.datastore.preferences.core.stringPreferencesKey
|
||||||
import org.futo.inputmethod.keyboard.internal.KeyboardCodesSet
|
import org.futo.inputmethod.keyboard.internal.KeyboardCodesSet
|
||||||
|
import org.futo.inputmethod.latin.R
|
||||||
import org.futo.inputmethod.latin.settings.Settings
|
import org.futo.inputmethod.latin.settings.Settings
|
||||||
import org.futo.inputmethod.latin.uix.Action
|
import org.futo.inputmethod.latin.uix.Action
|
||||||
import org.futo.inputmethod.latin.uix.PreferenceUtils
|
import org.futo.inputmethod.latin.uix.PreferenceUtils
|
||||||
@ -84,6 +85,16 @@ enum class ActionCategory {
|
|||||||
Disabled
|
Disabled
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun ActionCategory.name(context: Context): String {
|
||||||
|
return context.getString(when(this) {
|
||||||
|
ActionCategory.ActionKey -> R.string.action_kind_action_key
|
||||||
|
ActionCategory.PinnedKey -> R.string.action_kind_pinned_key
|
||||||
|
ActionCategory.Favorites -> R.string.action_kind_favorites
|
||||||
|
ActionCategory.More -> R.string.action_kind_more
|
||||||
|
ActionCategory.Disabled -> R.string.action_kind_disabled
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
fun ActionCategory.toSepName(): String {
|
fun ActionCategory.toSepName(): String {
|
||||||
return "_SEP_${name}"
|
return "_SEP_${name}"
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user