feat: rename package to dev.fiatcode.tracpulse and app to TracPulse

- Update Android package namespace and applicationId to dev.fiatcode.tracpulse
- Update AndroidManifest.xml package and app label to TracPulse
- Move all Kotlin source files to dev/fiatcode/tracpulse/ package
- Update pubspec.yaml name to tracpulse
- Update all Dart imports from package:traccar_client to relative
- Rename TraccarClientApp class to TracPulseApp
- Update user-facing strings in permission_screen to TracPulse
- Update notification channel label and wakeLock tag to TracPulse
This commit is contained in:
fiatcode 2026-04-30 18:01:19 +07:00
parent b70822f2af
commit a5dd3323f5
No known key found for this signature in database
23 changed files with 74 additions and 73 deletions

View file

@ -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

View file

@ -1,4 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="dev.fiatcode.tracpulse">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
@ -10,7 +11,7 @@
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<application
android:label="traccar_client"
android:label="TracPulse"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
<activity

View file

@ -1,12 +1,12 @@
package com.traccar.traccar_client
package dev.fiatcode.tracpulse
import android.content.Context
import android.content.SharedPreferences
import android.os.Handler
import android.os.Looper
import android.util.Log
import com.traccar.traccar_client.service.LocationTrackingService
import com.traccar.traccar_client.storage.AppDatabase
import dev.fiatcode.tracpulse.service.LocationTrackingService
import dev.fiatcode.tracpulse.storage.AppDatabase
import io.flutter.embedding.engine.plugins.FlutterPlugin
import io.flutter.plugin.common.EventChannel
import io.flutter.plugin.common.MethodCall

View file

@ -1,4 +1,4 @@
package com.traccar.traccar_client
package dev.fiatcode.tracpulse
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
@ -8,4 +8,4 @@ class MainActivity : FlutterActivity() {
super.configureFlutterEngine(flutterEngine)
flutterEngine.plugins.add(BridgeModule())
}
}
}

View file

@ -1,4 +1,4 @@
package com.traccar.traccar_client.location
package dev.fiatcode.tracpulse.location
import android.location.Location
import kotlin.math.abs

View file

@ -1,4 +1,4 @@
package com.traccar.traccar_client.location
package dev.fiatcode.tracpulse.location
import android.annotation.SuppressLint
import android.content.Context
@ -66,4 +66,4 @@ class FusedLocationProvider(context: Context) {
else -> Priority.PRIORITY_BALANCED_POWER_ACCURACY
}
}
}
}

View file

@ -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
}
}
}

View file

@ -1,4 +1,4 @@
package com.traccar.traccar_client.model
package dev.fiatcode.tracpulse.model
data class EventLogEntry(
val id: Long = 0,

View file

@ -1,4 +1,4 @@
package com.traccar.traccar_client.model
package dev.fiatcode.tracpulse.model
data class Location(
val id: Long = 0,

View file

@ -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)
}
}
}
}

View file

@ -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

View file

@ -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
)
)

View file

@ -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

View file

@ -1,4 +1,4 @@
package com.traccar.traccar_client.storage
package dev.fiatcode.tracpulse.storage
import androidx.room.Dao
import androidx.room.Insert

View file

@ -1,4 +1,4 @@
package com.traccar.traccar_client.storage
package dev.fiatcode.tracpulse.storage
import androidx.room.Entity
import androidx.room.PrimaryKey

View file

@ -1,4 +1,4 @@
package com.traccar.traccar_client.storage
package dev.fiatcode.tracpulse.storage
import androidx.room.Dao
import androidx.room.Insert

View file

@ -1,4 +1,4 @@
package com.traccar.traccar_client.storage
package dev.fiatcode.tracpulse.storage
import androidx.room.Entity
import androidx.room.PrimaryKey