From 5691c87e91b6409ecc2e9fa665d51d57767c8a84 Mon Sep 17 00:00:00 2001 From: admin Date: Thu, 23 Jul 2026 15:14:05 +0200 Subject: [PATCH] =?UTF-8?q?Dostosuj=20aplikacj=C4=99=20do=20Androida=2016?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 4 ++-- app/src/main/AndroidManifest.xml | 4 ++++ .../firmatpp/kierowca/data/DeviceInfoProvider.kt | 13 +------------ .../diagnostics/DiagnosticSnapshotProvider.kt | 14 ++++++++++++-- .../sync/LeaveRequestDecisionNotificationWorker.kt | 6 +++++- .../kierowca/sync/NewRouteNotificationWorker.kt | 6 +++++- .../tracking/ActiveRouteTrackingService.kt | 2 ++ .../firmatpp/kierowca/ui/PhotoLocationProvider.kt | 3 +++ gradle/libs.versions.toml | 2 +- 9 files changed, 35 insertions(+), 19 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 8d57683..d4f30f4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -22,7 +22,7 @@ val keystoreProperties = Properties().apply { android { namespace = "pl.firmatpp.kierowca" - compileSdk = 35 + compileSdk = 36 fun configValue(name: String, default: String): String = providers.gradleProperty(name) @@ -33,7 +33,7 @@ android { defaultConfig { applicationId = "pl.firmatpp.kierowca" minSdk = 26 - targetSdk = 35 + targetSdk = 36 versionCode = 120 versionName = "1.0.67" setProperty("archivesBaseName", "pl.firmatpp.kierowca") diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c0f6007..3454b6a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,6 +9,10 @@ + + diff --git a/app/src/main/java/pl/firmatpp/kierowca/data/DeviceInfoProvider.kt b/app/src/main/java/pl/firmatpp/kierowca/data/DeviceInfoProvider.kt index 1214543..2411092 100644 --- a/app/src/main/java/pl/firmatpp/kierowca/data/DeviceInfoProvider.kt +++ b/app/src/main/java/pl/firmatpp/kierowca/data/DeviceInfoProvider.kt @@ -22,17 +22,6 @@ class DeviceInfoProvider( androidVersion = Build.VERSION.RELEASE, sdkInt = Build.VERSION.SDK_INT, appVersion = BuildConfig.VERSION_NAME, - serialNumber = readSerialNumber(), + serialNumber = null, ) - - private fun readSerialNumber(): String? = - runCatching { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - Build.getSerial() - } else { - @Suppress("DEPRECATION") - Build.SERIAL - } - }.getOrNull() - ?.takeUnless { it.isBlank() || it.equals(Build.UNKNOWN, ignoreCase = true) } } diff --git a/app/src/main/java/pl/firmatpp/kierowca/diagnostics/DiagnosticSnapshotProvider.kt b/app/src/main/java/pl/firmatpp/kierowca/diagnostics/DiagnosticSnapshotProvider.kt index 6c88b58..42a0988 100644 --- a/app/src/main/java/pl/firmatpp/kierowca/diagnostics/DiagnosticSnapshotProvider.kt +++ b/app/src/main/java/pl/firmatpp/kierowca/diagnostics/DiagnosticSnapshotProvider.kt @@ -229,18 +229,28 @@ class DiagnosticSnapshotProvider(private val context: Context) { val validated = capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED) val links = activeNetwork?.let(manager::getLinkProperties) + val roaming = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + yesNo(!capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING)) + } else { + "niedostępne" + } + val mtu = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + links?.mtu?.toString() ?: "brak" + } else { + "niedostępne" + } return listOf( DiagnosticEntry("Transport", transports.joinToString()), DiagnosticEntry("Internet zweryfikowany", yesNo(validated), if (validated) DiagnosticSeverity.Good else DiagnosticSeverity.Error), DiagnosticEntry("NET_CAPABILITY_INTERNET", yesNo(capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET))), DiagnosticEntry("NET_CAPABILITY_VALIDATED", yesNo(capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED))), DiagnosticEntry("Sieć mierzona", yesNo(!capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED))), - DiagnosticEntry("Roaming", yesNo(!capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING))), + DiagnosticEntry("Roaming", roaming), DiagnosticEntry("Pasmo downstream / upstream", "${capabilities.linkDownstreamBandwidthKbps} / ${capabilities.linkUpstreamBandwidthKbps} kb/s"), DiagnosticEntry("Interfejs", links?.interfaceName ?: "brak"), DiagnosticEntry("Adresy IP", links?.linkAddresses?.joinToString { it.toString() }?.ifBlank { "brak" } ?: "brak"), DiagnosticEntry("DNS", links?.dnsServers?.joinToString { it.hostAddress ?: it.toString() }?.ifBlank { "brak" } ?: "brak"), - DiagnosticEntry("MTU", links?.mtu?.toString() ?: "brak"), + DiagnosticEntry("MTU", mtu), DiagnosticEntry("Proxy", links?.httpProxy?.toString() ?: "brak"), ) } diff --git a/app/src/main/java/pl/firmatpp/kierowca/sync/LeaveRequestDecisionNotificationWorker.kt b/app/src/main/java/pl/firmatpp/kierowca/sync/LeaveRequestDecisionNotificationWorker.kt index 9384f34..3912d36 100644 --- a/app/src/main/java/pl/firmatpp/kierowca/sync/LeaveRequestDecisionNotificationWorker.kt +++ b/app/src/main/java/pl/firmatpp/kierowca/sync/LeaveRequestDecisionNotificationWorker.kt @@ -57,7 +57,11 @@ class LeaveRequestDecisionNotificationWorker( .setPriority(NotificationCompat.PRIORITY_DEFAULT) .build() - NotificationManagerCompat.from(applicationContext).notify(leaveRequestId.hashCode(), notification) + try { + NotificationManagerCompat.from(applicationContext).notify(leaveRequestId.hashCode(), notification) + } catch (_: SecurityException) { + return Result.success() + } return Result.success() } diff --git a/app/src/main/java/pl/firmatpp/kierowca/sync/NewRouteNotificationWorker.kt b/app/src/main/java/pl/firmatpp/kierowca/sync/NewRouteNotificationWorker.kt index 9ce923c..65c49a0 100644 --- a/app/src/main/java/pl/firmatpp/kierowca/sync/NewRouteNotificationWorker.kt +++ b/app/src/main/java/pl/firmatpp/kierowca/sync/NewRouteNotificationWorker.kt @@ -73,7 +73,11 @@ class NewRouteNotificationWorker( .setPriority(NotificationCompat.PRIORITY_DEFAULT) .build() - NotificationManagerCompat.from(applicationContext).notify(route.id.hashCode(), notification) + try { + NotificationManagerCompat.from(applicationContext).notify(route.id.hashCode(), notification) + } catch (_: SecurityException) { + return@runCatching Result.success() + } Result.success() }.getOrElse { throwable -> throwable.rethrowIfCancellation() diff --git a/app/src/main/java/pl/firmatpp/kierowca/tracking/ActiveRouteTrackingService.kt b/app/src/main/java/pl/firmatpp/kierowca/tracking/ActiveRouteTrackingService.kt index fcf92a6..d986d82 100644 --- a/app/src/main/java/pl/firmatpp/kierowca/tracking/ActiveRouteTrackingService.kt +++ b/app/src/main/java/pl/firmatpp/kierowca/tracking/ActiveRouteTrackingService.kt @@ -1,6 +1,7 @@ package pl.firmatpp.kierowca.tracking import android.Manifest +import android.annotation.SuppressLint import android.app.Notification import android.app.NotificationChannel import android.app.NotificationManager @@ -160,6 +161,7 @@ class ActiveRouteTrackingService : Service(), LocationListener { super.onDestroy() } + @SuppressLint("MissingPermission") private fun requestLocationUpdates() { if (!hasLocationPermission() || routeId.isNullOrBlank() || driverId.isNullOrBlank()) { return diff --git a/app/src/main/java/pl/firmatpp/kierowca/ui/PhotoLocationProvider.kt b/app/src/main/java/pl/firmatpp/kierowca/ui/PhotoLocationProvider.kt index d1311c3..19d3b9b 100644 --- a/app/src/main/java/pl/firmatpp/kierowca/ui/PhotoLocationProvider.kt +++ b/app/src/main/java/pl/firmatpp/kierowca/ui/PhotoLocationProvider.kt @@ -1,6 +1,7 @@ package pl.firmatpp.kierowca.ui import android.Manifest +import android.annotation.SuppressLint import android.content.Context import android.content.pm.PackageManager import android.location.Location @@ -39,6 +40,7 @@ internal suspend fun currentPhotoLocation(context: Context): Location? { return bestLastKnownLocation(manager) } +@SuppressLint("MissingPermission") private suspend fun LocationManager.awaitSingleLocation( context: Context, provider: String, @@ -75,6 +77,7 @@ private fun hasAnyLocationPermission(context: Context): Boolean = ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED +@SuppressLint("MissingPermission") private fun bestLastKnownLocation(manager: LocationManager): Location? { val providers = listOf( LocationManager.GPS_PROVIDER, diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3d951fb..8e188b6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.7.3" +agp = "8.10.1" kotlin = "2.1.10" composeBom = "2026.03.00" activityCompose = "1.9.3"