diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 50fe38c..6ef82d1 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -6,7 +6,7 @@ plugins { } android { - namespace = "com.traccar.traccar_client" + namespace = "dev.fiatcode.tracpulse" compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion @@ -22,7 +22,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId = "com.traccar.traccar_client" + applicationId = "dev.fiatcode.tracpulse" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. minSdk = flutter.minSdkVersion diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index e46b749..05a130f 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,4 +1,5 @@ - + @@ -10,7 +11,7 @@ Priority.PRIORITY_BALANCED_POWER_ACCURACY } } -} +} \ No newline at end of file diff --git a/android/app/src/main/kotlin/com/traccar/traccar_client/location/HeartbeatScheduler.kt b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/location/HeartbeatScheduler.kt similarity index 95% rename from android/app/src/main/kotlin/com/traccar/traccar_client/location/HeartbeatScheduler.kt rename to android/app/src/main/kotlin/dev/fiatcode/tracpulse/location/HeartbeatScheduler.kt index 8d531e9..fe59169 100644 --- a/android/app/src/main/kotlin/com/traccar/traccar_client/location/HeartbeatScheduler.kt +++ b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/location/HeartbeatScheduler.kt @@ -1,4 +1,4 @@ -package com.traccar.traccar_client.location +package dev.fiatcode.tracpulse.location import android.app.AlarmManager import android.app.PendingIntent @@ -84,7 +84,7 @@ class HeartbeatScheduler(private val context: Context) { companion object { private const val TAG = "HeartbeatScheduler" - private const val ACTION_HEARTBEAT = "com.traccar.traccar_client.HEARTBEAT" + private const val ACTION_HEARTBEAT = "dev.fiatcode.tracpulse.HEARTBEAT" private const val REQUEST_CODE = 1001 } -} +} \ No newline at end of file diff --git a/android/app/src/main/kotlin/com/traccar/traccar_client/model/EventLogEntry.kt b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/model/EventLogEntry.kt similarity index 85% rename from android/app/src/main/kotlin/com/traccar/traccar_client/model/EventLogEntry.kt rename to android/app/src/main/kotlin/dev/fiatcode/tracpulse/model/EventLogEntry.kt index 3b68c3e..22f2347 100644 --- a/android/app/src/main/kotlin/com/traccar/traccar_client/model/EventLogEntry.kt +++ b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/model/EventLogEntry.kt @@ -1,4 +1,4 @@ -package com.traccar.traccar_client.model +package dev.fiatcode.tracpulse.model data class EventLogEntry( val id: Long = 0, diff --git a/android/app/src/main/kotlin/com/traccar/traccar_client/model/Location.kt b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/model/Location.kt similarity index 87% rename from android/app/src/main/kotlin/com/traccar/traccar_client/model/Location.kt rename to android/app/src/main/kotlin/dev/fiatcode/tracpulse/model/Location.kt index e639da6..fb1fd06 100644 --- a/android/app/src/main/kotlin/com/traccar/traccar_client/model/Location.kt +++ b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/model/Location.kt @@ -1,4 +1,4 @@ -package com.traccar.traccar_client.model +package dev.fiatcode.tracpulse.model data class Location( val id: Long = 0, diff --git a/android/app/src/main/kotlin/com/traccar/traccar_client/network/ConnectivityReceiver.kt b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/network/ConnectivityReceiver.kt similarity index 96% rename from android/app/src/main/kotlin/com/traccar/traccar_client/network/ConnectivityReceiver.kt rename to android/app/src/main/kotlin/dev/fiatcode/tracpulse/network/ConnectivityReceiver.kt index 646ebb1..07e67a6 100644 --- a/android/app/src/main/kotlin/com/traccar/traccar_client/network/ConnectivityReceiver.kt +++ b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/network/ConnectivityReceiver.kt @@ -1,4 +1,4 @@ -package com.traccar.traccar_client.network +package dev.fiatcode.tracpulse.network import android.content.BroadcastReceiver import android.content.Context @@ -29,4 +29,4 @@ class ConnectivityReceiver( return capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) } } -} +} \ No newline at end of file diff --git a/android/app/src/main/kotlin/com/traccar/traccar_client/network/TraccarHttpClient.kt b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/network/TraccarHttpClient.kt similarity index 96% rename from android/app/src/main/kotlin/com/traccar/traccar_client/network/TraccarHttpClient.kt rename to android/app/src/main/kotlin/dev/fiatcode/tracpulse/network/TraccarHttpClient.kt index 5cc689b..291db15 100644 --- a/android/app/src/main/kotlin/com/traccar/traccar_client/network/TraccarHttpClient.kt +++ b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/network/TraccarHttpClient.kt @@ -1,7 +1,7 @@ -package com.traccar.traccar_client.network +package dev.fiatcode.tracpulse.network import android.util.Base64 -import com.traccar.traccar_client.model.Location +import dev.fiatcode.tracpulse.model.Location import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import okhttp3.MediaType diff --git a/android/app/src/main/kotlin/com/traccar/traccar_client/service/LocationTrackingService.kt b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/service/LocationTrackingService.kt similarity index 92% rename from android/app/src/main/kotlin/com/traccar/traccar_client/service/LocationTrackingService.kt rename to android/app/src/main/kotlin/dev/fiatcode/tracpulse/service/LocationTrackingService.kt index 2866535..2fa0f0e 100644 --- a/android/app/src/main/kotlin/com/traccar/traccar_client/service/LocationTrackingService.kt +++ b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/service/LocationTrackingService.kt @@ -1,4 +1,4 @@ -package com.traccar.traccar_client.service +package dev.fiatcode.tracpulse.service import android.app.Notification import android.app.NotificationChannel @@ -16,19 +16,19 @@ import android.os.Build import android.os.IBinder import android.os.PowerManager import androidx.core.app.NotificationCompat -import com.traccar.traccar_client.BridgeModule -import com.traccar.traccar_client.MainActivity -import com.traccar.traccar_client.R -import com.traccar.traccar_client.location.DistanceFilterProcessor -import com.traccar.traccar_client.location.FusedLocationProvider -import com.traccar.traccar_client.location.HeartbeatScheduler -import com.traccar.traccar_client.model.Location as TraccarLocation -import com.traccar.traccar_client.network.ConnectivityReceiver -import com.traccar.traccar_client.network.TraccarConfig -import com.traccar.traccar_client.network.TraccarHttpClient -import com.traccar.traccar_client.storage.AppDatabase -import com.traccar.traccar_client.storage.EventLogEntity -import com.traccar.traccar_client.storage.LocationEntity +import dev.fiatcode.tracpulse.BridgeModule +import dev.fiatcode.tracpulse.MainActivity +import dev.fiatcode.tracpulse.R +import dev.fiatcode.tracpulse.location.DistanceFilterProcessor +import dev.fiatcode.tracpulse.location.FusedLocationProvider +import dev.fiatcode.tracpulse.location.HeartbeatScheduler +import dev.fiatcode.tracpulse.model.Location as TraccarLocation +import dev.fiatcode.tracpulse.network.ConnectivityReceiver +import dev.fiatcode.tracpulse.network.TraccarConfig +import dev.fiatcode.tracpulse.network.TraccarHttpClient +import dev.fiatcode.tracpulse.storage.AppDatabase +import dev.fiatcode.tracpulse.storage.EventLogEntity +import dev.fiatcode.tracpulse.storage.LocationEntity import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob @@ -214,7 +214,7 @@ class LocationTrackingService : Service() { private fun onLocationReceived(location: Location) { val config = currentConfig ?: return - val filterConfig = com.traccar.traccar_client.location.FilterConfig( + val filterConfig = dev.fiatcode.tracpulse.location.FilterConfig( distanceFilter = config.distanceFilter, intervalFilter = config.interval, angleFilter = config.angleFilter @@ -382,7 +382,7 @@ class LocationTrackingService : Service() { ) return NotificationCompat.Builder(this, CHANNEL_ID) - .setContentTitle("📍 Traccar Client") + .setContentTitle("📍 TracPulse") .setContentText(content) .setSmallIcon(R.mipmap.ic_launcher) .setContentIntent(pendingIntent) @@ -411,7 +411,7 @@ class LocationTrackingService : Service() { val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager wakeLock = powerManager.newWakeLock( PowerManager.PARTIAL_WAKE_LOCK, - "TraccarClient::LocationWakeLock" + "TracPulse::LocationWakeLock" ).apply { acquire(10 * 60 * 60 * 1000L) // 10 hours max } @@ -425,10 +425,10 @@ class LocationTrackingService : Service() { } companion object { - const val ACTION_START = "com.traccar.traccar_client.ACTION_START" - const val ACTION_STOP = "com.traccar.traccar_client.ACTION_STOP" - const val ACTION_REPORT = "com.traccar.traccar_client.ACTION_REPORT" - private const val CHANNEL_ID = "traccar_tracking_channel" + const val ACTION_START = "dev.fiatcode.tracpulse.ACTION_START" + const val ACTION_STOP = "dev.fiatcode.tracpulse.ACTION_STOP" + const val ACTION_REPORT = "dev.fiatcode.tracpulse.ACTION_REPORT" + private const val CHANNEL_ID = "tracpulse_tracking_channel" private const val NOTIFICATION_ID = 1 } } @@ -445,4 +445,4 @@ data class TrackingConfig( val heartbeat: Int = 60, val offlineBuffer: Boolean = true, val stopDetection: Boolean = true -) +) \ No newline at end of file diff --git a/android/app/src/main/kotlin/com/traccar/traccar_client/storage/AppDatabase.kt b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/storage/AppDatabase.kt similarity index 91% rename from android/app/src/main/kotlin/com/traccar/traccar_client/storage/AppDatabase.kt rename to android/app/src/main/kotlin/dev/fiatcode/tracpulse/storage/AppDatabase.kt index eb60153..4cb2af8 100644 --- a/android/app/src/main/kotlin/com/traccar/traccar_client/storage/AppDatabase.kt +++ b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/storage/AppDatabase.kt @@ -1,4 +1,4 @@ -package com.traccar.traccar_client.storage +package dev.fiatcode.tracpulse.storage import android.content.Context import androidx.room.Database @@ -23,7 +23,7 @@ abstract class AppDatabase : RoomDatabase() { val instance = Room.databaseBuilder( context.applicationContext, AppDatabase::class.java, - "traccar_client_db" + "tracpulse_db" ).build() INSTANCE = instance instance diff --git a/android/app/src/main/kotlin/com/traccar/traccar_client/storage/EventLogDao.kt b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/storage/EventLogDao.kt similarity index 93% rename from android/app/src/main/kotlin/com/traccar/traccar_client/storage/EventLogDao.kt rename to android/app/src/main/kotlin/dev/fiatcode/tracpulse/storage/EventLogDao.kt index 5c0a292..f6bcb84 100644 --- a/android/app/src/main/kotlin/com/traccar/traccar_client/storage/EventLogDao.kt +++ b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/storage/EventLogDao.kt @@ -1,4 +1,4 @@ -package com.traccar.traccar_client.storage +package dev.fiatcode.tracpulse.storage import androidx.room.Dao import androidx.room.Insert diff --git a/android/app/src/main/kotlin/com/traccar/traccar_client/storage/EventLogEntity.kt b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/storage/EventLogEntity.kt similarity index 85% rename from android/app/src/main/kotlin/com/traccar/traccar_client/storage/EventLogEntity.kt rename to android/app/src/main/kotlin/dev/fiatcode/tracpulse/storage/EventLogEntity.kt index 6eabb63..b75f4f6 100644 --- a/android/app/src/main/kotlin/com/traccar/traccar_client/storage/EventLogEntity.kt +++ b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/storage/EventLogEntity.kt @@ -1,4 +1,4 @@ -package com.traccar.traccar_client.storage +package dev.fiatcode.tracpulse.storage import androidx.room.Entity import androidx.room.PrimaryKey diff --git a/android/app/src/main/kotlin/com/traccar/traccar_client/storage/LocationDao.kt b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/storage/LocationDao.kt similarity index 95% rename from android/app/src/main/kotlin/com/traccar/traccar_client/storage/LocationDao.kt rename to android/app/src/main/kotlin/dev/fiatcode/tracpulse/storage/LocationDao.kt index c5d6553..7539dcb 100644 --- a/android/app/src/main/kotlin/com/traccar/traccar_client/storage/LocationDao.kt +++ b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/storage/LocationDao.kt @@ -1,4 +1,4 @@ -package com.traccar.traccar_client.storage +package dev.fiatcode.tracpulse.storage import androidx.room.Dao import androidx.room.Insert diff --git a/android/app/src/main/kotlin/com/traccar/traccar_client/storage/LocationEntity.kt b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/storage/LocationEntity.kt similarity index 90% rename from android/app/src/main/kotlin/com/traccar/traccar_client/storage/LocationEntity.kt rename to android/app/src/main/kotlin/dev/fiatcode/tracpulse/storage/LocationEntity.kt index f1a3800..f047e45 100644 --- a/android/app/src/main/kotlin/com/traccar/traccar_client/storage/LocationEntity.kt +++ b/android/app/src/main/kotlin/dev/fiatcode/tracpulse/storage/LocationEntity.kt @@ -1,4 +1,4 @@ -package com.traccar.traccar_client.storage +package dev.fiatcode.tracpulse.storage import androidx.room.Entity import androidx.room.PrimaryKey diff --git a/lib/main.dart b/lib/main.dart index ab302ec..719eb4b 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:traccar_client/main_screen.dart'; -import 'package:traccar_client/permission_screen.dart'; -import 'package:traccar_client/preferences.dart'; +import 'main_screen.dart'; +import 'permission_screen.dart'; +import 'preferences.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); @@ -16,16 +16,16 @@ void main() async { ), ); - runApp(const TraccarClientApp()); + runApp(const TracPulseApp()); } -class TraccarClientApp extends StatelessWidget { - const TraccarClientApp({super.key}); +class TracPulseApp extends StatelessWidget { + const TracPulseApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( - title: 'Traccar Client', + title: 'TracPulse', debugShowCheckedModeBanner: false, theme: ThemeData( useMaterial3: true, diff --git a/lib/main_screen.dart b/lib/main_screen.dart index 6d48451..6bf9478 100644 --- a/lib/main_screen.dart +++ b/lib/main_screen.dart @@ -1,10 +1,10 @@ import 'dart:async'; import 'package:flutter/material.dart'; -import 'package:traccar_client/bridge/location_bridge.dart'; -import 'package:traccar_client/preferences.dart'; -import 'package:traccar_client/settings_screen.dart'; -import 'package:traccar_client/status_screen.dart'; +import 'bridge/location_bridge.dart'; +import 'preferences.dart'; +import 'settings_screen.dart'; +import 'status_screen.dart'; class MainScreen extends StatefulWidget { const MainScreen({super.key}); diff --git a/lib/permission_screen.dart b/lib/permission_screen.dart index 95d31d0..5d69df8 100644 --- a/lib/permission_screen.dart +++ b/lib/permission_screen.dart @@ -1,9 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:permission_handler/permission_handler.dart'; -import 'package:traccar_client/bridge/location_bridge.dart'; -import 'package:traccar_client/preferences.dart'; -import 'package:traccar_client/main_screen.dart'; +import 'bridge/location_bridge.dart'; +import 'preferences.dart'; +import 'main_screen.dart'; class PermissionScreen extends StatefulWidget { const PermissionScreen({super.key}); @@ -131,8 +131,8 @@ class _PermissionScreenState extends State { content: Text( settingsOpened ? 'A settings screen has opened.\n\n' - 'Find "Traccar Client" and set it to "Don\'t optimize" or "Unrestricted", then come back and tap CHECK & DONE.' - : 'Open Settings → Apps → Traccar Client → Battery and select "Don\'t optimize" or "Unrestricted", then come back and tap CHECK & DONE.', + 'Find "TracPulse" and set it to "Don\'t optimize" or "Unrestricted", then come back and tap CHECK & DONE.' + : 'Open Settings → Apps → TracPulse → Battery and select "Don\'t optimize" or "Unrestricted", then come back and tap CHECK & DONE.', style: const TextStyle( fontFamily: 'monospace', fontSize: 12, @@ -310,7 +310,7 @@ class _PermissionScreenState extends State { ), SizedBox(height: 4), Text( - 'Traccar Client needs these permissions to track your location reliably in the background.', + 'TracPulse needs these permissions to track your location reliably in the background.', style: TextStyle( fontFamily: 'monospace', fontSize: 11, diff --git a/lib/settings_screen.dart b/lib/settings_screen.dart index b2e0187..3a082bd 100644 --- a/lib/settings_screen.dart +++ b/lib/settings_screen.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:traccar_client/bridge/location_bridge.dart'; -import 'package:traccar_client/preferences.dart'; +import 'bridge/location_bridge.dart'; +import 'preferences.dart'; class SettingsScreen extends StatefulWidget { const SettingsScreen({super.key}); diff --git a/pubspec.yaml b/pubspec.yaml index d2fec4e..d4a40ea 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,4 +1,4 @@ -name: traccar_client +name: tracpulse description: "A new Flutter project." # The following line prevents the package from being accidentally published to # pub.dev using `flutter pub publish`. This is preferred for private packages. diff --git a/test/widget_test.dart b/test/widget_test.dart index 299534d..9e11270 100644 --- a/test/widget_test.dart +++ b/test/widget_test.dart @@ -1,13 +1,13 @@ import 'package:flutter_test/flutter_test.dart'; -import 'package:traccar_client/main.dart'; +import 'package:tracpulse/main.dart'; void main() { - testWidgets('TraccarClientApp smoke test', (WidgetTester tester) async { + testWidgets('TracPulse smoke test', (WidgetTester tester) async { // Build our app and trigger a frame. - await tester.pumpWidget(const TraccarClientApp()); + await tester.pumpWidget(const TracPulseApp()); // Verify the app title is displayed - expect(find.text('Traccar Client'), findsOneWidget); + expect(find.text('TracPulse'), findsOneWidget); }); }