Add Android about screen
This commit is contained in:
+7
-1
@@ -2,10 +2,16 @@
|
|||||||
|
|
||||||
## Versión actual
|
## Versión actual
|
||||||
|
|
||||||
- Versión base: `1.0.4`
|
- Versión base: `1.1.0`
|
||||||
|
|
||||||
## Historial
|
## Historial
|
||||||
|
|
||||||
|
### 1.1.0 - 2026-04-23
|
||||||
|
|
||||||
|
- Se agrega pantalla About en Android con versión y texto de uso.
|
||||||
|
- Se actualiza el encabezado Android a la marca solicitada.
|
||||||
|
- Se reduce la altura del menú inferior Android sin cambiar el tamaño de los íconos.
|
||||||
|
|
||||||
### 1.0.4 - 2026-04-23
|
### 1.0.4 - 2026-04-23
|
||||||
|
|
||||||
- Se muestra la versión de LinkedSign en el inicio de sesión web y Android.
|
- Se muestra la versión de LinkedSign en el inicio de sesión web y Android.
|
||||||
|
|||||||
@@ -18,8 +18,8 @@ android {
|
|||||||
applicationId "net.linkedcorp.linkedsign"
|
applicationId "net.linkedcorp.linkedsign"
|
||||||
minSdk 26
|
minSdk 26
|
||||||
targetSdk 35
|
targetSdk 35
|
||||||
versionCode 10004
|
versionCode 10100
|
||||||
versionName "1.0.4"
|
versionName "1.1.0"
|
||||||
|
|
||||||
buildConfigField "String", "API_BASE_URL", "\"${apiBaseUrl}\""
|
buildConfigField "String", "API_BASE_URL", "\"${apiBaseUrl}\""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ import androidx.compose.material.icons.outlined.Draw
|
|||||||
import androidx.compose.material.icons.outlined.Delete
|
import androidx.compose.material.icons.outlined.Delete
|
||||||
import androidx.compose.material.icons.outlined.Fingerprint
|
import androidx.compose.material.icons.outlined.Fingerprint
|
||||||
import androidx.compose.material.icons.outlined.FolderOpen
|
import androidx.compose.material.icons.outlined.FolderOpen
|
||||||
|
import androidx.compose.material.icons.outlined.Info
|
||||||
import androidx.compose.material.icons.outlined.Lock
|
import androidx.compose.material.icons.outlined.Lock
|
||||||
import androidx.compose.material.icons.outlined.Logout
|
import androidx.compose.material.icons.outlined.Logout
|
||||||
import androidx.compose.material.icons.outlined.PictureAsPdf
|
import androidx.compose.material.icons.outlined.PictureAsPdf
|
||||||
@@ -162,7 +163,7 @@ private val CardGlow = Brush.linearGradient(
|
|||||||
private const val SignatureHeight = 60
|
private const val SignatureHeight = 60
|
||||||
|
|
||||||
private enum class AuthMode { Login }
|
private enum class AuthMode { Login }
|
||||||
private enum class AppTab(val title: String) { Documents("Documentos"), Sign("Firmar"), Certificates("Certificados") }
|
private enum class AppTab(val title: String) { Documents("Documentos"), Sign("Firmar"), Certificates("Certificados"), About("About") }
|
||||||
|
|
||||||
private data class PdfPreviewState(
|
private data class PdfPreviewState(
|
||||||
val file: File,
|
val file: File,
|
||||||
@@ -240,7 +241,7 @@ fun LinkedSignApp(viewModel: MainViewModel, appContext: Context, activity: Compo
|
|||||||
}
|
}
|
||||||
Column(verticalArrangement = Arrangement.spacedBy(1.dp)) {
|
Column(verticalArrangement = Arrangement.spacedBy(1.dp)) {
|
||||||
Text(selectedTab.title, fontWeight = FontWeight.SemiBold, color = Color.White)
|
Text(selectedTab.title, fontWeight = FontWeight.SemiBold, color = Color.White)
|
||||||
Text("Firma electrónica", fontSize = AppFontSizes.xs, color = Color(0xFF90CAF9))
|
Text("LinkedSign @by LindedCorp", fontSize = AppFontSizes.xs, color = Color(0xFF90CAF9))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -267,13 +268,15 @@ fun LinkedSignApp(viewModel: MainViewModel, appContext: Context, activity: Compo
|
|||||||
bottomBar = {
|
bottomBar = {
|
||||||
if (state.authenticated) {
|
if (state.authenticated) {
|
||||||
NavigationBar(
|
NavigationBar(
|
||||||
|
modifier = Modifier.height(44.dp),
|
||||||
containerColor = Color.White,
|
containerColor = Color.White,
|
||||||
tonalElevation = 0.dp
|
tonalElevation = 0.dp
|
||||||
) {
|
) {
|
||||||
val tabs = listOf(
|
val tabs = listOf(
|
||||||
AppTab.Documents to Icons.Outlined.Description,
|
AppTab.Documents to Icons.Outlined.Description,
|
||||||
AppTab.Sign to Icons.Outlined.Draw,
|
AppTab.Sign to Icons.Outlined.Draw,
|
||||||
AppTab.Certificates to Icons.Outlined.Badge
|
AppTab.Certificates to Icons.Outlined.Badge,
|
||||||
|
AppTab.About to Icons.Outlined.Info
|
||||||
)
|
)
|
||||||
tabs.forEach { (tab, icon) ->
|
tabs.forEach { (tab, icon) ->
|
||||||
NavigationBarItem(
|
NavigationBarItem(
|
||||||
@@ -648,6 +651,49 @@ private fun AppFlow(
|
|||||||
onSign = onSign
|
onSign = onSign
|
||||||
)
|
)
|
||||||
AppTab.Certificates -> CertificatesScreen(state = state, onSync = onSync, onUploadCertificate = onUploadCertificate)
|
AppTab.Certificates -> CertificatesScreen(state = state, onSync = onSync, onUploadCertificate = onUploadCertificate)
|
||||||
|
AppTab.About -> AboutScreen()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
private fun AboutScreen() {
|
||||||
|
LazyColumn(
|
||||||
|
modifier = Modifier.fillMaxSize(),
|
||||||
|
contentPadding = PaddingValues(horizontal = 20.dp, vertical = 20.dp),
|
||||||
|
verticalArrangement = Arrangement.spacedBy(14.dp)
|
||||||
|
) {
|
||||||
|
item {
|
||||||
|
ElevatedCard(
|
||||||
|
shape = RoundedCornerShape(22.dp),
|
||||||
|
elevation = CardDefaults.elevatedCardElevation(defaultElevation = 4.dp),
|
||||||
|
colors = CardDefaults.elevatedCardColors(containerColor = Color.White)
|
||||||
|
) {
|
||||||
|
Column(
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.padding(22.dp),
|
||||||
|
verticalArrangement = Arrangement.spacedBy(14.dp),
|
||||||
|
horizontalAlignment = Alignment.CenterHorizontally
|
||||||
|
) {
|
||||||
|
Box(
|
||||||
|
modifier = Modifier
|
||||||
|
.size(64.dp)
|
||||||
|
.background(BrandGradient, CircleShape),
|
||||||
|
contentAlignment = Alignment.Center
|
||||||
|
) {
|
||||||
|
Text("LS", color = Color.White, fontSize = AppFontSizes.xl, fontWeight = FontWeight.Bold)
|
||||||
|
}
|
||||||
|
Text("LinkedSign", color = BrandDark, fontSize = AppFontSizes.title, fontWeight = FontWeight.Bold)
|
||||||
|
Text("Versión ${BuildConfig.VERSION_NAME}", color = Brand, fontSize = AppFontSizes.base, fontWeight = FontWeight.SemiBold)
|
||||||
|
Text(
|
||||||
|
"LinkedSign permite revisar documentos, sincronizar información, cargar certificados y firmar archivos desde Android usando la misma cuenta de la plataforma web.",
|
||||||
|
color = TextMuted,
|
||||||
|
fontSize = AppFontSizes.base,
|
||||||
|
lineHeight = 20.sp
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "linkedsign-backend",
|
"name": "linkedsign-backend",
|
||||||
"version": "1.0.4",
|
"version": "1.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "Initial backend for LinkedSign",
|
"description": "Initial backend for LinkedSign",
|
||||||
"main": "src/server.js",
|
"main": "src/server.js",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "frontend",
|
"name": "frontend",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "1.0.4",
|
"version": "1.1.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
Reference in New Issue
Block a user