diff --git a/android-app/app/instantTest/release/app-instantTest-release.aab b/android-app/app/instantTest/release/app-instantTest-release.aab index b3a9f0a..14162da 100644 Binary files a/android-app/app/instantTest/release/app-instantTest-release.aab and b/android-app/app/instantTest/release/app-instantTest-release.aab differ diff --git a/android-app/app/local/release/app-local-release.aab b/android-app/app/local/release/app-local-release.aab index 83bdedd..5c6b984 100644 Binary files a/android-app/app/local/release/app-local-release.aab and b/android-app/app/local/release/app-local-release.aab differ diff --git a/android-app/app/production/release/app-production-release.aab b/android-app/app/production/release/app-production-release.aab index e80d41e..a1c0126 100644 Binary files a/android-app/app/production/release/app-production-release.aab and b/android-app/app/production/release/app-production-release.aab differ diff --git a/android-app/app/proguard-rules.pro b/android-app/app/proguard-rules.pro index c7013bd..4251b83 100644 --- a/android-app/app/proguard-rules.pro +++ b/android-app/app/proguard-rules.pro @@ -1,2 +1,21 @@ # Project-specific R8/ProGuard rules for release builds. -# Keep this file intentionally minimal and add rules only when needed. + +# Keep reflection/generic metadata used by Retrofit + Moshi. +-keepattributes Signature,InnerClasses,EnclosingMethod +-keepattributes RuntimeVisibleAnnotations,RuntimeVisibleParameterAnnotations,AnnotationDefault +-keep class kotlin.Metadata { *; } + +# Keep Retrofit service interfaces and HTTP method annotations. +-keep,allowobfuscation interface * { + @retrofit2.http.* ; +} + +# Keep app DTO/request/response models used via Moshi reflection. +-keep class de.harheimertc.data.*Dto { *; } +-keep class de.harheimertc.data.*Request { *; } +-keep class de.harheimertc.data.*Response { *; } + +# Keep fields annotated with @Json names. +-keepclassmembers class * { + @com.squareup.moshi.Json ; +} diff --git a/android-app/app/src/main/java/de/harheimertc/ui/screens/memberarea/MemberAreaDetailScreens.kt b/android-app/app/src/main/java/de/harheimertc/ui/screens/memberarea/MemberAreaDetailScreens.kt index ac7f769..040b3ac 100644 --- a/android-app/app/src/main/java/de/harheimertc/ui/screens/memberarea/MemberAreaDetailScreens.kt +++ b/android-app/app/src/main/java/de/harheimertc/ui/screens/memberarea/MemberAreaDetailScreens.kt @@ -28,6 +28,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import android.util.Log +import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel @@ -166,7 +167,14 @@ fun MembersScreen( val m = display[index] Surface(color = Color.White, shape = RoundedCornerShape(6.dp)) { Row(Modifier.fillMaxWidth().padding(12.dp), horizontalArrangement = Arrangement.spacedBy(12.dp)) { - Column(Modifier.weight(1f)) { Text(m.name, color = Accent900) } + Column(Modifier.weight(1f)) { + Text( + m.name, + color = Accent900, + fontFamily = FontFamily.SansSerif, + fontWeight = FontWeight.ExtraBold, + ) + } Column(Modifier.weight(1f)) { Text(m.email ?: "-", color = Primary600) } Column(Modifier.weight(1f)) { Text(m.phone ?: "-", color = Accent700) } } @@ -259,7 +267,13 @@ private fun MemberAreaPage( private fun MemberCard(member: MemberDto, onEdit: (MemberDto) -> Unit = {}, onDelete: (MemberDto) -> Unit = {}) { Surface(color = Color.White, shape = RoundedCornerShape(14.dp), shadowElevation = 3.dp) { Column(Modifier.fillMaxWidth().padding(18.dp), verticalArrangement = Arrangement.spacedBy(7.dp)) { - Text(member.name.ifBlank { "${member.firstName} ${member.lastName}".trim() }, style = MaterialTheme.typography.titleLarge, color = Accent900) + Text( + member.name.ifBlank { "${member.firstName} ${member.lastName}".trim() }, + style = MaterialTheme.typography.titleLarge, + fontFamily = FontFamily.SansSerif, + fontWeight = FontWeight.ExtraBold, + color = Accent900, + ) if (!member.email.isNullOrBlank()) Text(member.email, color = Primary600) if (!member.phone.isNullOrBlank()) Text(member.phone, color = Accent700) if (!member.birthday.isNullOrBlank()) { diff --git a/android-app/app/src/main/java/de/harheimertc/ui/theme/Typography.kt b/android-app/app/src/main/java/de/harheimertc/ui/theme/Typography.kt index ff56af9..4b9548c 100644 --- a/android-app/app/src/main/java/de/harheimertc/ui/theme/Typography.kt +++ b/android-app/app/src/main/java/de/harheimertc/ui/theme/Typography.kt @@ -15,7 +15,8 @@ val MontserratFamily = FontFamily( Font(R.font.montserrat_variable, FontWeight.Bold), Font(R.font.montserrat_variable, FontWeight.ExtraBold), ) -val HeaderFamily = InterFamily +// Android headings: use system sans-serif for stronger strokes/readability on tablets. +val HeaderFamily = FontFamily.SansSerif val AppTypography = Typography( displayLarge = TextStyle( diff --git a/android-app/gradle.properties b/android-app/gradle.properties index 1747fa9..af31eb7 100644 --- a/android-app/gradle.properties +++ b/android-app/gradle.properties @@ -8,8 +8,8 @@ LOCAL_API_BASE_URL=https://harheimertc.tsschulz.de/ PRODUCTION_API_BASE_URL=https://harheimertc.de/ # Android app versioning for Play Store uploads -ANDROID_VERSION_CODE=5 -ANDROID_VERSION_NAME=0.9.0 +ANDROID_VERSION_CODE=7 +ANDROID_VERSION_NAME=0.9.2 # Enable R8 for release by default so mapping.txt is generated for Play Console. RELEASE_MINIFY_ENABLED=true