run on main thread fixes

This commit is contained in:
kspearrin 2018-09-24 15:45:36 -04:00
parent f394eddc01
commit 44fe5af4fb

View file

@ -174,26 +174,30 @@ namespace Bit.iOS.Autofill
public override void TextChanged(UISearchBar searchBar, string searchText) public override void TextChanged(UISearchBar searchBar, string searchText)
{ {
var cts = new CancellationTokenSource(); var cts = new CancellationTokenSource();
Task.Run(async () => Task.Run(() =>
{ {
if(!string.IsNullOrWhiteSpace(searchText)) NSRunLoop.Main.BeginInvokeOnMainThread(async () =>
{ {
await Task.Delay(300); if (!string.IsNullOrWhiteSpace(searchText))
if(searchText != searchBar.Text)
{ {
return; await Task.Delay(300);
if (searchText != searchBar.Text)
{
return;
}
else
{
_filterResultsCancellationTokenSource?.Cancel();
}
} }
else try
{ {
_filterResultsCancellationTokenSource?.Cancel(); ((TableSource)_controller.TableView.Source).FilterResults(searchText, cts.Token);
_controller.TableView.ReloadData();
} }
} catch (OperationCanceledException) { }
try _filterResultsCancellationTokenSource = cts;
{ });
((TableSource)_controller.TableView.Source).FilterResults(searchText, cts.Token);
_controller.TableView.ReloadData();
}
catch(OperationCanceledException) { }
}, cts.Token); }, cts.Token);
} }
} }