diff --git a/app/lib/providers/device_provider.dart b/app/lib/providers/device_provider.dart index da17afcc12..946200cd3f 100644 --- a/app/lib/providers/device_provider.dart +++ b/app/lib/providers/device_provider.dart @@ -280,6 +280,9 @@ class DeviceProvider extends ChangeNotifier implements IDeviceServiceSubsciption void onDeviceDisconnected() async { Logger.debug('onDisconnected inside: $connectedDevice'); + + final String trackFirmware = [connectedDevice?.firmwareRevision, pairedDevice?.firmwareRevision, SharedPreferencesUtil().btDevice.firmwareRevision].firstWhere((v) => v != null && v.isNotEmpty && v != 'Unknown', orElse: () => 'Unknown'); + _havingNewFirmware = false; setConnectedDevice(null); setisDeviceStorageSupport(); @@ -300,7 +303,7 @@ class DeviceProvider extends ChangeNotifier implements IDeviceServiceSubsciption body: 'Please reconnect to continue using your Omi.', ); }); - MixpanelManager().deviceDisconnected(); + MixpanelManager().deviceDisconnected(firmwareRevision: trackFirmware); // Retired 1s to prevent the race condition made by standby power of ble device Future.delayed(const Duration(seconds: 1), () { diff --git a/app/lib/utils/analytics/mixpanel.dart b/app/lib/utils/analytics/mixpanel.dart index a9b54add36..bb0fc575c0 100644 --- a/app/lib/utils/analytics/mixpanel.dart +++ b/app/lib/utils/analytics/mixpanel.dart @@ -252,7 +252,9 @@ class MixpanelManager { ..._preferences.btDevice.toJson(), }); - void deviceDisconnected() => track('Device Disconnected'); + void deviceDisconnected({String? firmwareRevision}) => track('Device Disconnected', properties: { + if (firmwareRevision != null) 'firmware_revision': firmwareRevision, + }); void memoriesPageCategoryOpened(MemoryCategory category) => track('Fact Page Category Opened', properties: {'category': category.toString().split('.').last});