mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
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:
parent
e7ba8e8497
commit
1ea87dbbad
19 changed files with 135 additions and 135 deletions
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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() {}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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() {}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue