diff --git a/app/src/main/java/org/thoughtcrime/securesms/linkdevice/LinkDeviceFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/linkdevice/LinkDeviceFragment.kt index 886b80e835..999e6f8cd4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/linkdevice/LinkDeviceFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/linkdevice/LinkDeviceFragment.kt @@ -448,7 +448,7 @@ fun DeviceListScreen( ) } else { state.devices.forEach { device -> - DeviceRow(device, onDeviceSelectedForRemoval, onEditDevice) + DeviceRow(device, state.isInternalUser, onDeviceSelectedForRemoval, onEditDevice) } } } @@ -492,7 +492,7 @@ fun DeviceListScreen( } @Composable -fun DeviceRow(device: Device, setDeviceToRemove: (Device) -> Unit, onEditDevice: (Device) -> Unit) { +fun DeviceRow(device: Device, isInternalUser: Boolean, setDeviceToRemove: (Device) -> Unit, onEditDevice: (Device) -> Unit) { val titleString = if (device.name.isNullOrEmpty()) stringResource(R.string.DeviceListItem_unnamed_device) else device.name val linkedDate = device.createdMillis?.let { DateUtils.getDayPrecisionTimeSpanString(LocalContext.current, Locale.getDefault(), device.createdMillis) } val lastActive = DateUtils.getDayPrecisionTimeSpanString(LocalContext.current, Locale.getDefault(), device.lastSeenMillis) @@ -523,6 +523,9 @@ fun DeviceRow(device: Device, setDeviceToRemove: (Device) -> Unit, onEditDevice: .weight(1f) ) { Text(text = titleString, style = MaterialTheme.typography.bodyLarge) + if (isInternalUser) { + Text("[Internal] DeviceId: ${device.id}", style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.onSurfaceVariant) + } if (linkedDate != null) { Text(stringResource(R.string.DeviceListItem_linked_s, linkedDate), style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.onSurfaceVariant) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/linkdevice/LinkDeviceSettingsState.kt b/app/src/main/java/org/thoughtcrime/securesms/linkdevice/LinkDeviceSettingsState.kt index e87c9f9829..8efb5ab379 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/linkdevice/LinkDeviceSettingsState.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/linkdevice/LinkDeviceSettingsState.kt @@ -21,7 +21,8 @@ data class LinkDeviceSettingsState( val bottomSheetVisible: Boolean = false, val deviceToEdit: Device? = null, val shouldCancelArchiveUpload: Boolean = false, - val debugLogUrl: String? = null + val debugLogUrl: String? = null, + val isInternalUser: Boolean = false ) { sealed interface DialogState { data object None : DialogState diff --git a/app/src/main/java/org/thoughtcrime/securesms/linkdevice/LinkDeviceViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/linkdevice/LinkDeviceViewModel.kt index 3c5078f136..477f2d2841 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/linkdevice/LinkDeviceViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/linkdevice/LinkDeviceViewModel.kt @@ -23,6 +23,7 @@ import org.thoughtcrime.securesms.linkdevice.LinkDeviceSettingsState.OneTimeEven import org.thoughtcrime.securesms.linkdevice.LinkDeviceSettingsState.QrCodeState import org.thoughtcrime.securesms.logsubmit.SubmitDebugLogRepository import org.thoughtcrime.securesms.notifications.NotificationIds +import org.thoughtcrime.securesms.util.RemoteConfig import org.thoughtcrime.securesms.util.ServiceUtil import org.thoughtcrime.securesms.util.Util import org.whispersystems.signalservice.api.link.TransferArchiveError @@ -39,7 +40,7 @@ class LinkDeviceViewModel : ViewModel() { val TAG = Log.tag(LinkDeviceViewModel::class) } - private val _state = MutableStateFlow(LinkDeviceSettingsState()) + private val _state = MutableStateFlow(LinkDeviceSettingsState(isInternalUser = RemoteConfig.internalUser)) val state = _state.asStateFlow() private val submitDebugLogRepository: SubmitDebugLogRepository = SubmitDebugLogRepository()