From 9ac4af2f555fa99b383f26bf7b2688db8a34e043 Mon Sep 17 00:00:00 2001 From: marinantonio Date: Sun, 29 Mar 2026 20:50:03 +0100 Subject: [PATCH] Verzija 4.1.1 - Razni manji ispravci --- app/build.gradle.kts | 4 ++-- app/proguard-rules.pro | 12 +++++++++- .../com/am/stbus/presentation/MainActivity.kt | 22 +++++++++---------- .../detail/TimetablesDetailViewModel.kt | 3 --- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2d320d9..0b94d94 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -17,8 +17,8 @@ android { applicationId = "com.am.stbus" minSdk = 23 targetSdk = 36 - versionCode = 85 - versionName = "4.1.0" + versionCode = 86 + versionName = "4.1.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index c162694..192a72f 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -32,4 +32,14 @@ -keepattributes SourceFile,LineNumberTable # Keep file names and line numbers. -keep public class * extends java.lang.Exception # Optional: Keep custom exceptions. --dontwarn org.slf4j.impl.StaticLoggerBinder \ No newline at end of file +-dontwarn org.slf4j.impl.StaticLoggerBinder + +# Keep SignalR data models to prevent obfuscation of field names +-keep class com.am.stbus.domain.usecases.gmaps.VehicleData { *; } +-keep class com.am.stbus.data.models.LiveVehicle { *; } + +# If you use other models for API responses, keep them as well +-keep class com.am.stbus.data.models.** { *; } + +# SignalR requires some reflection +-keep class com.microsoft.signalr.** { *; } \ No newline at end of file diff --git a/app/src/main/java/com/am/stbus/presentation/MainActivity.kt b/app/src/main/java/com/am/stbus/presentation/MainActivity.kt index f3146e8..4ef9109 100644 --- a/app/src/main/java/com/am/stbus/presentation/MainActivity.kt +++ b/app/src/main/java/com/am/stbus/presentation/MainActivity.kt @@ -20,8 +20,6 @@ import androidx.compose.material3.NavigationBar import androidx.compose.material3.NavigationBarItem import androidx.compose.material3.Scaffold import androidx.compose.material3.Text -import androidx.compose.runtime.mutableStateListOf -import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector @@ -32,6 +30,7 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.navigation3.rememberViewModelStoreNavEntryDecorator import androidx.navigation3.runtime.NavKey import androidx.navigation3.runtime.entryProvider +import androidx.navigation3.runtime.rememberNavBackStack import androidx.navigation3.runtime.rememberSaveableStateHolderNavEntryDecorator import androidx.navigation3.ui.NavDisplay import com.am.stbus.R @@ -61,7 +60,8 @@ class MainActivity : ComponentActivity() { SplitBusTheme { - val backStack = remember { mutableStateListOf(HomeScreenKey) } + // Recommended: use rememberNavBackStack for persistent state + val backStack = rememberNavBackStack(HomeScreenKey) val bottomBarVisible = TOP_LEVEL_ROUTES.map { it.navKey }.contains(backStack.last()) @@ -88,6 +88,7 @@ class MainActivity : ComponentActivity() { selected = isSelected, onClick = { backStack.add(topLevelRoute.navKey) + // Keep only the home screen and the current selection if (backStack.size > 2) { backStack.removeAt(1) } @@ -162,7 +163,7 @@ class MainActivity : ComponentActivity() { } }, onBackClicked = { - backStack.removeAt(backStack.lastIndex) + backStack.removeLastOrNull() } ) } @@ -185,7 +186,7 @@ class MainActivity : ComponentActivity() { } }, onBackClicked = { - backStack.removeAt(backStack.lastIndex) + backStack.removeLastOrNull() } ) } @@ -201,12 +202,12 @@ class MainActivity : ComponentActivity() { } entry { GmapsScreen { - backStack.removeAt(backStack.lastIndex) + backStack.removeLastOrNull() } } entry { PrometWebScreen { - backStack.removeAt(backStack.lastIndex) + backStack.removeLastOrNull() } } @@ -266,11 +267,10 @@ data object TimetablesListScreenKey : NavKey data object InfoScreenKey : NavKey @Serializable -data object InfoGmapsScreenKey : NavKey { -} +data object InfoGmapsScreenKey : NavKey -data object InfoPrometWebScreenKey : NavKey { -} +@Serializable +data object InfoPrometWebScreenKey : NavKey @Serializable diff --git a/app/src/main/java/com/am/stbus/presentation/screens/timetables/detail/TimetablesDetailViewModel.kt b/app/src/main/java/com/am/stbus/presentation/screens/timetables/detail/TimetablesDetailViewModel.kt index 7dbce28..44d4e45 100644 --- a/app/src/main/java/com/am/stbus/presentation/screens/timetables/detail/TimetablesDetailViewModel.kt +++ b/app/src/main/java/com/am/stbus/presentation/screens/timetables/detail/TimetablesDetailViewModel.kt @@ -60,8 +60,6 @@ class TimetablesDetailViewModel( ) } }.onFailure { - Timber.wtf("onFailure $websiteTitle $it") - Timber.wtf(it) geRemoteTimetableData(websiteTitle, false) } } @@ -86,7 +84,6 @@ class TimetablesDetailViewModel( }.onFailure { Timber.wtf("onFailure $websiteTitle $it") Timber.wtf(it) - //timetableData = null fullScreenLoading = false pullToRefreshLoading = false }