* 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
* 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
* initial commit
* merge with master
* Tests and missing method copied from the branch
* Android text splitting fixes
* awaitable Initialization methods
* Android reworked - initialize and speak in single method
* removed tweaks for work on Mac and garbage VS4Mac added
* uwp parameters done
* Android TTS with parameters
* TTS iOS parameters
* Refactor TTS code
- Simplify implementations
- Implement remaining pitch/speakrate/volume normalizations
- Implement cancel token logic
- Refact to use public api in shared.cs and platform invocations in platformname.cs
* Adjust slider ranges to match max/min settings
* Simplify TTS demo text
* Move enums into TextToSpeech
Don't really want Pitch, Volume, and SpeakRate enums to be at the root namespace level, so moved them into TextToSpeech.
* Fix sln folders
* Added docs for Text to Speech
* Clean up pitch/volume/speak rate and normalization
* Make 1.0 volume default in tts sample
* Removed accidental / invalid enum value
* Cleanup iOS and UWP apis to queue up message. Added samples to do multiple lines of text queued. Refactored how we throw exceptions.
* A few changes to the API
- removed redundant code
- removed enums
* Use TaskCompletionSource<bool> instead of <object>
* Updated docs
* Removing unnecessary changes
* Reverting some changes
* Cleanup random object in tcs.
* cleanup tcs on iOS
* Re-use semaphoreslim :) bring things local if possible
* Fixup uwp, remove the accidental semaphore await.
* Add sample to pick locale
* Additioanl cleanup, use whenall
* Remove speak rate for now
* Remove speakrate from docs
* Fix UWP locales
* Fix up android dispose issues :)
* Remove the dispose calls around TTS
* Fix up splitting of strings and add tests.
* Cancel the speech when leaving the page
* Fix android locale's so it speaks back correctly :)
* Fix up sensor samples to re-subscribe on onappearing
Remove the old CurrentContext and use AppContext (fixes issues with receivers)
Fixed casting issues with android geolocation when using GPS
Added cancellation token on geolocation page when backing out.
* Update manifest
* Use Vector3 for sensor data returns.
* Update frameworks index
* Normalize Accelerometer: G's (gravitational force) also ensure matrix is the same between devices
* Docs and comments
* Refactored the iOS Reachability #179
- split the implementation into:
- a static "get current state"
- instance "listener"
* Just use the existing handler and clean up properly #179
Use the same try/catch logic for older devices for decrypting as we do encrypting for when to use GCMParameterSpec and when to use IvParameterSpec if that fails.
Most of the time `GCMParameterSpec` is expected to be used, and if it's not, an exception is thrown saying as much. There are some cases where older devices have older bouncy castle crypto libs used for their crypto provider, which do not recognize `GCMParameterSpec`. In these cases, `IvParameterSpec` should work instead, so when we encounter the parameter exception, we should try as a last effort to use `IvParameterSpec` instead.
Seeing some older devices have issues with `GCMParameterSpec` not being supported in older BouncyCastle library versions. We are hitting the exception here: https://github.com/bcgit/bc-java/blob/r1rv49/prov/src/main/java/org/bouncycastle/jcajce/provider/symmetric/util/BaseBlockCipher.java#L533
If you look at the code, it's clear that `GCMParameterSpec` is not recognized as a valid parameter type yet in that commit, however newer commits of this library do recognize it.
It seems like switching to `IvParameterSpec` should be harmless and make this work on older implementations. It looks like the only difference is the ability to specify the GCM Tag size, but we are using the default 128 size anyway.
* Cleaned up the API a bit:
- removed unnecessary static fields
- removed unnecessary braces
- a few other tweaks to reduce weird line wraps
* Stopping the sensors requires that they are actually supported.
* Added hardware traits to the tests to avoid evil code
* Fixed some more tests.
* We need to keep a reference to the sensors.
* Android needs to filter some events to avoid large amounts of unnecessary updates
* Gyroscopes are not emulated for Android
Previously if device tests failed to run or complete, the listener would wait indefinitely, timing out the build. Now the listener will time out after the specified amount (60 seconds by default) so the build can fail faster.