Skip to content
This repository has been archived by the owner on May 15, 2024. It is now read-only.

Add Main Thread Detection #240

Closed
craylward opened this issue May 10, 2018 · 2 comments
Closed

Add Main Thread Detection #240

craylward opened this issue May 10, 2018 · 2 comments
Labels
in-progress Actively being worked on.
Milestone

Comments

@craylward
Copy link

craylward commented May 10, 2018

Use Case: Obtaining the main thread for Xamarin Forms UI navigation from a method that may or may not be running in the background thread.

Part of: Platform

API:

- bool IsMainThread { get; }
void NavigationMethod()
{
   if (Platform.IsMainThread)
   {
      Navigate();
   }
   else
   {
      Device.BeginInvokeOnMainThread(Navigate());
   }
}

Android: Looper.MyLooper == MainLooper
iOS: NSThread.Current.IsMainThread

@jamesmontemagno
Copy link
Collaborator

Yes, I like this! We actually have:

Platform.BeginInvokeOnMainThread(Navigate);

https://github.com/xamarin/Essentials/blob/master/Xamarin.Essentials/Platform/Platform.shared.cs#L8

This API should live inside of "Platform" and simply be

bool IsMainThread { get; }

This naming will match iOS which is good stuff.

@jamesmontemagno jamesmontemagno added proposal Proposed feature or enhancement. needs-specifications Accepted feature/enhancement and needs specification. labels May 11, 2018
@mattleibow
Copy link
Contributor

We should literally be able to expose what we do in the platform code as a property. eg: https://github.com/xamarin/Essentials/blob/master/Xamarin.Essentials/Platform/Platform.android.cs#L61

This looks like a quick way to get involved in the project... hint... hint...

@jamesmontemagno jamesmontemagno added ready-to-implement Feature approved, specs written, and ready to implement. and removed needs-specifications Accepted feature/enhancement and needs specification. proposal Proposed feature or enhancement. labels May 14, 2018
@jamesmontemagno jamesmontemagno added this to the 0.7.0-preview milestone May 14, 2018
@jamesmontemagno jamesmontemagno added in-progress Actively being worked on. and removed ready-to-implement Feature approved, specs written, and ready to implement. labels Jun 4, 2018
jamesmontemagno added a commit that referenced this issue Jun 5, 2018
* Add IsMainThread detection API

* Add platform tests for main thread

* Update docs and add more platform tests
jamesmontemagno added a commit that referenced this issue Jun 21, 2018
* GH-221: Add iOS SecAccessible properties (#223)

* Address #221, use AfterFirstUnlockThisDeviceOnly to match other platforms. Although allow a platform specific override to set accessible state.

* Add tests

* Added iOS specific prop to set SecAccessible

* Default to AfterFirstUnlock on iOS SecureStorage

* A few fixes for the release. (#228)

* Setting the correct flags for Chrome Tabs. Fixes #225

* Make sure that there is data to decrypt before starting. Fixes #226

* Fixes for TTS. Fixes #227

* A bit of the fixes for emails on iOS. Relates to #224

* Update the email bit for iOS #224

* Cleaning up the code #224

* Make sure to set the email properties. Fixes #229

* Update SDK Extras

This fixes a lot of references that were required on android that aren't.

* Update Readme with Installation information. (#237)

* Update Readme with Installation information.

* Update README.md

* Update README.md

* Adding the initial work to get Tizen started. #23

* Revert "Adding the initial work to get Tizen started. #23"

This reverts commit 58b6041.

* Update the docs with the latest APIs (#233)

Add docs for SecAccessible

* GH-245: Add Orientation Sensor (#249)

* Add Orientation Sensor

* Add Orientation Sensor

* Remove .csproj clutter

* "orientationsensor" --> "orientation sensor" or just "orientation"

* GH-192: Added DateTime to Preferences (#232)

* Added DateTime to preferences. Fixes #192
 - also properly using overloads

* Added some unit tests

* Added the docs for the new Preferences APIs

* Update Readme with Device Display Information

Added link to Current Features for Device Display Information

* Fixes #258 and Fixes #255 (#259)

* Fixes #258
* put vectors nuget everywhere.
* NuGet is broken - https://developercommunity.visualstudio.com/content/problem/232996/warning-nu1603-runtimenativesystemiocompression-41.html
* The NuGet doesn't add the assembly references from the GAC
* We need to use a later version of the iOS SDK

* Fix typo (#274)

* Fix up null checks when getting lask known location.

* Additional Null checks

* GH-240 Add IsMainThread detection API (#277)

* Add IsMainThread detection API

* Add platform tests for main thread

* Update docs and add more platform tests

* iOS secure storage simulator tests (#247) (#278)

* iOS secure storage simulator tests (#247)

* Remove line that skips test on virtual devices

* Adding keychain-access-groups in Entitlements.plist

* Setting CodeSign entitlements for Debug configuration

* Making same entitlement.plist changes for iOS sample

* Removing specific code sign key

* Removing physical device trait for iOS SecureStorageTests

* Update DeviceTests.iOS.csproj

* Update Samples.iOS.csproj

* Add configs for codesign on release

* Fixes #181 Allowing setting of calibration for heading. (#282)

* GH-254 Update Support Packages, Forms, and Reference Vectors (#279)

* Update Support Packages, Forms, and Reference Vectors

* Bump targetsdk

* Fix android build :)

* Fix build
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
in-progress Actively being worked on.
Projects
None yet
Development

No branches or pull requests

3 participants