public async Task InitializeAsync()

in src/Covi.Android/Features/Bluetooth/PlatformInitializer.cs [30:67]


        public async Task<InitializationResult> InitializeAsync()
        {
            var result = new InitializationResult()
            {
                PermissionStatus = PermissionStatus.Unknown,
                Success = false
            };

            // Android uses location permissions for BLE
            var status = await Xamarin.Essentials.Permissions.CheckStatusAsync<Xamarin.Essentials.Permissions.LocationWhenInUse>();
            result.PermissionStatus = status;
            if (status != PermissionStatus.Granted)
            {
                status = await Xamarin.Essentials.Permissions.RequestAsync<Xamarin.Essentials.Permissions.LocationWhenInUse>();
                result.PermissionStatus = status;
            }
            result.Success = result.PermissionStatus == PermissionStatus.Granted;

            if (result.Success)
            {
                var adapter = BluetoothAdapter.DefaultAdapter;
                if (adapter == null)
                {
                    result.Success = false;
                    result.PermissionStatus = PermissionStatus.Disabled;
                }
                else
                {
                    if (!adapter.IsEnabled)
                    {
                        result.Success = false;
                        result.PermissionStatus = PermissionStatus.Disabled;
                    }
                }
            }

            return result;
        }