Rename from Tak centric to "Lockdown" mode

3 files renamed (via git mv, history preserved):
  - TakLockHandler.kt → LockdownHandler.kt
  - TakPassphraseStore.kt → LockdownPassphraseStore.kt
  - TakUnlockDialog.kt → LockdownUnlockDialog.kt

  16 files updated with consistent renames across the entire codebase. No stray TAK-named symbols remain in any .kt or .aidl source file.

  What stayed the same (wire protocol / firmware-defined):
  - The firmware notification strings: "TAK_LOCKED", "TAK_NEEDS_PROVISION", "TAK_UNLOCKED", "TAK_UNLOCK_FAILED" — still matched as string literals in LockdownHandler.kt
  - Config.DeviceConfig.Role.TAK / TAK_TRACKER proto enum values
  - The SharedPrefs key changed from "tak_passphrase_store" → "lockdown_passphrase_store" (existing stored passphrases won't migrate automatically — users will need to re-enter on first launch of the updated app)
This commit is contained in:
niccellular 2026-03-03 17:17:24 -05:00
parent e7ba8e8497
commit 1ea87dbbad
19 changed files with 135 additions and 135 deletions

View file

@ -190,9 +190,9 @@ interface IMeshService {
*/
void requestRebootOta(in int requestId, in int destNum, in int mode, in byte []hash);
/// Send TAK unlock passphrase to the device
void sendTakUnlock(in String passphrase, in int bootTtl, in int hourTtl);
/// Send lockdown unlock passphrase to the device
void sendLockdownUnlock(in String passphrase, in int bootTtl, in int hourTtl);
/// Lock the device with TAK lock immediately
void sendTakLockNow();
/// Lock the device immediately (lockdown mode)
void sendLockNow();
}

View file

@ -32,26 +32,26 @@ import java.util.concurrent.ConcurrentHashMap
import javax.inject.Inject
import javax.inject.Singleton
sealed class TakLockState {
data object None : TakLockState()
data object Locked : TakLockState()
data object NeedsProvision : TakLockState()
data object Unlocked : TakLockState()
sealed class LockdownState {
data object None : LockdownState()
data object Locked : LockdownState()
data object NeedsProvision : LockdownState()
data object Unlocked : LockdownState()
/** Lock Now ACK received — client should disconnect immediately, no dialog. */
data object LockNowAcknowledged : TakLockState()
data object LockNowAcknowledged : LockdownState()
/** Wrong passphrase — retry immediately. */
data object UnlockFailed : TakLockState()
data object UnlockFailed : LockdownState()
/** Too many attempts — must wait [backoffSeconds] before retrying. */
data class UnlockBackoff(val backoffSeconds: Int) : TakLockState()
data class UnlockBackoff(val backoffSeconds: Int) : LockdownState()
}
/**
* TAK session token metadata parsed from the TAK_UNLOCKED:boots=N:until=EPOCH: notification.
* Lockdown session token metadata parsed from the TAK_UNLOCKED:boots=N:until=EPOCH: notification.
*
* @param bootsRemaining Number of reboots before the token expires.
* @param expiryEpoch Unix epoch seconds; 0 means no time-based expiry.
*/
data class TakTokenInfo(
data class LockdownTokenInfo(
val bootsRemaining: Int,
val expiryEpoch: Long,
)
@ -184,26 +184,26 @@ class ServiceRepository @Inject constructor() {
_serviceAction.send(action)
}
// TAK lock state
private val _takLockState: MutableStateFlow<TakLockState> = MutableStateFlow(TakLockState.None)
val takLockState: StateFlow<TakLockState>
get() = _takLockState
// Lockdown state
private val _lockdownState: MutableStateFlow<LockdownState> = MutableStateFlow(LockdownState.None)
val lockdownState: StateFlow<LockdownState>
get() = _lockdownState
fun setTakLockState(state: TakLockState) {
_takLockState.value = state
fun setLockdownState(state: LockdownState) {
_lockdownState.value = state
}
fun clearTakLockState() {
_takLockState.value = TakLockState.None
fun clearLockdownState() {
_lockdownState.value = LockdownState.None
}
// TAK token info (boots remaining + expiry) from the most recent TAK_UNLOCKED notification
private val _takTokenInfo: MutableStateFlow<TakTokenInfo?> = MutableStateFlow(null)
val takTokenInfo: StateFlow<TakTokenInfo?>
get() = _takTokenInfo
// Lockdown token info (boots remaining + expiry) from the most recent TAK_UNLOCKED notification
private val _lockdownTokenInfo: MutableStateFlow<LockdownTokenInfo?> = MutableStateFlow(null)
val lockdownTokenInfo: StateFlow<LockdownTokenInfo?>
get() = _lockdownTokenInfo
fun setTakTokenInfo(info: TakTokenInfo?) {
_takTokenInfo.value = info
fun setLockdownTokenInfo(info: LockdownTokenInfo?) {
_lockdownTokenInfo.value = info
}
// True once TAK passphrase is accepted for this BLE connection; false on disconnect.

View file

@ -121,7 +121,7 @@ open class FakeIMeshService : IMeshService.Stub() {
override fun requestRebootOta(requestId: Int, destNum: Int, mode: Int, hash: ByteArray?) {}
override fun sendTakUnlock(passphrase: String?, bootTtl: Int, hourTtl: Int) {}
override fun sendLockdownUnlock(passphrase: String?, bootTtl: Int, hourTtl: Int) {}
override fun sendTakLockNow() {}
override fun sendLockNow() {}
}

View file

@ -118,7 +118,7 @@ open class FakeIMeshService : IMeshService.Stub() {
override fun requestRebootOta(requestId: Int, destNum: Int, mode: Int, hash: ByteArray?) {}
override fun sendTakUnlock(passphrase: String?, bootTtl: Int, hourTtl: Int) {}
override fun sendLockdownUnlock(passphrase: String?, bootTtl: Int, hourTtl: Int) {}
override fun sendTakLockNow() {}
override fun sendLockNow() {}
}