⎇ e3dd167a16e071c181b3d4f3bc77664f9cf053ab
keyboard/src/main/java/com/rizoma/trazo/MainActivity.kt
History
raw
Trazo: teclado MessagEase remasterizado (IME v0.1)
1package com.rizoma.trazo
2
3import android.content.Context
4import android.content.Intent
5import android.os.Bundle
6import android.provider.Settings
7import android.view.inputmethod.InputMethodManager
8import androidx.activity.ComponentActivity
9import androidx.activity.compose.setContent
10import androidx.compose.foundation.background
11import androidx.compose.foundation.border
12import androidx.compose.foundation.clickable
13import androidx.compose.foundation.layout.Arrangement
14import androidx.compose.foundation.layout.Column
15import androidx.compose.foundation.layout.Spacer
16import androidx.compose.foundation.layout.fillMaxSize
17import androidx.compose.foundation.layout.fillMaxWidth
18import androidx.compose.foundation.layout.height
19import androidx.compose.foundation.layout.padding
20import androidx.compose.foundation.shape.RoundedCornerShape
21import androidx.compose.material3.Text
22import androidx.compose.runtime.Composable
23import androidx.compose.ui.Alignment
24import androidx.compose.ui.Modifier
25import androidx.compose.ui.draw.clip
26import androidx.compose.ui.text.font.FontWeight
27import androidx.compose.ui.unit.dp
28import androidx.compose.ui.unit.sp
29import androidx.core.view.WindowCompat
30import com.rizoma.trazo.ui.theme.NeonCian
31import com.rizoma.trazo.ui.theme.NeonRosa
32import com.rizoma.trazo.ui.theme.NeonVerde
33import com.rizoma.trazo.ui.theme.Tecla
34import com.rizoma.trazo.ui.theme.Tenue
35import com.rizoma.trazo.ui.theme.TrazoTheme
36import com.rizoma.trazo.ui.theme.Vacio
37
38/** Pantalla mínima para activar Trazo y elegirlo como teclado. */
39class MainActivity : ComponentActivity() {
40 override fun onCreate(savedInstanceState: Bundle?) {
41 super.onCreate(savedInstanceState)
42 WindowCompat.setDecorFitsSystemWindows(window, false)
43 setContent {
44 TrazoTheme {
45 Setup(
46 onActivar = {
47 startActivity(Intent(Settings.ACTION_INPUT_METHOD_SETTINGS))
48 },
49 onElegir = {
50 (getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager)
51 .showInputMethodPicker()
52 },
53 )
54 }
55 }
56 }
57}
58
59@Composable
60private fun Setup(onActivar: () -> Unit, onElegir: () -> Unit) {
61 Column(
62 Modifier
63 .fillMaxSize()
64 .background(Vacio)
65 .padding(horizontal = 32.dp),
66 verticalArrangement = Arrangement.Center,
67 ) {
68 Text("Trazo", color = NeonVerde, fontSize = 44.sp, fontWeight = FontWeight.Light)
69 Spacer(Modifier.height(8.dp))
70 Text(
71 "teclado de trazos — un toque, ocho gestos.",
72 color = Tenue,
73 fontSize = 15.sp,
74 )
75 Spacer(Modifier.height(40.dp))
76 Paso("1", "activa Trazo en ajustes del sistema", NeonCian, onActivar)
77 Spacer(Modifier.height(16.dp))
78 Paso("2", "elígelo como teclado actual", NeonRosa, onElegir)
79 }
80}
81
82@Composable
83private fun Paso(num: String, label: String, accent: androidx.compose.ui.graphics.Color, onClick: () -> Unit) {
84 Column(
85 Modifier
86 .fillMaxWidth()
87 .clip(RoundedCornerShape(18.dp))
88 .background(Tecla)
89 .border(1.dp, accent.copy(alpha = 0.4f), RoundedCornerShape(18.dp))
90 .clickable(onClick = onClick)
91 .padding(20.dp),
92 ) {
93 Text(num, color = accent, fontSize = 13.sp, fontWeight = FontWeight.Bold)
94 Spacer(Modifier.height(6.dp))
95 Text(label, color = androidx.compose.ui.graphics.Color.White, fontSize = 17.sp)
96 }
97}