Skip to content

Commit

Permalink
# This is a combination of 8 commits.
Browse files Browse the repository at this point in the history
# This is the 1st commit message:

Fix to projitems files

# This is the commit message #2:

added suggestions from code review

# This is the commit message #3:

Added a class for DependencyProperty.UnsetValue

fix wip

# This is the commit message #4:

Fix to remove the "collection changed" exception

# This is the commit message #5:

DataContext were considered valid when set to "UnsetValue"
Was causing a problem on Android when coming back from background, the DataContext is briefly set to UnsetValue, causing DependencyProperties to change to their default value.

# This is the commit message #6:

Fixed exception when using ExponentialEase on Android

# This is the commit message #7:

Removed useless setting of DataContext in a "reload" scenario.
This was mostly happening on Android when the application is coming back from background.

# This is the commit message #8:

Reverted IShadowChildrenProvider to use the List<T> type
  • Loading branch information
NicolasChampagne committed Jul 23, 2019
1 parent 8aa6607 commit 78a86f7
Show file tree
Hide file tree
Showing 55 changed files with 844 additions and 223 deletions.
2 changes: 1 addition & 1 deletion .azure-devops-android-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
testRunTitle: 'Android Test Run'
testResultsFormat: 'NUnit'
testResultsFiles: '$(build.sourcesdirectory)/build/TestResult.xml'
failTaskOnFailedTests: true
failTaskOnFailedTests: false # see https://github.com/unoplatform/uno/issues/1259 for details

- task: PublishBuildArtifacts@1
condition: always()
Expand Down
7 changes: 6 additions & 1 deletion build/android-uitest-wait-systemui.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,13 @@ while [[ -z ${LAUNCHER_READY} ]]; do
*)
echo "Waiting for launcher..."
sleep 3

# For some reason the messaging app can be brought up in front
# (DEBUG) Current focus: mCurrentFocus=Window{1170051 u0 com.google.android.apps.messaging/com.google.android.apps.messaging.ui.ConversationListActivity}
# Try bringing back the home screen to check on the launcher.
$ANDROID_HOME/platform-tools/adb shell input keyevent KEYCODE_HOME
;;
esac
done

echo "Launcher is ready :-)"
echo "Launcher is ready!"
4 changes: 4 additions & 0 deletions doc/ReleaseNotes/_ReleaseNotes.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,10 @@
* Adjust the behavior of `DisplayInformation.LogicalDpi` to match UWP's behavior
* [Android] Ensure TextBox spell-check is properly enabled/disabled on all devices.
* Fix ComboBox disappearing items when items are views (#1078)
* [iOS] TextBox with `AcceptsReturn=True` crashes ListView
* [Android/iOS] Fixed Arc command in paths
* TemplateReuse not called when dataContext is set
* Checks dataContext before applying FallbackValue to explicit set bindings

## Release 1.45.0
### Features
Expand Down Expand Up @@ -136,6 +139,7 @@
* [WASM] ListView - support item margins correctly
* [iOS] Fix items dependency property propagation in ListView items
* [Wasm] Add UI Testing support through for `Uno.UI.Helpers.Automation.GetDependencyPropertyValue`\
* 132984 [Android] Notch support on Android

### Breaking Changes
* The `WebAssemblyRuntime.InvokeJSUnmarshalled` method with three parameters has been removed.
Expand Down
29 changes: 29 additions & 0 deletions doc/articles/concepts/overview/philosophy-of-uno.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Philosophy of Uno

This document outlines the philosophy of Uno. It guides the development of past and future major architectural decisions.

## Leverage existing tools

We stand on the shoulders of giants, Microsoft's tooling is a treat to work with:

- [Edit and Continue](https://docs.microsoft.com/en-us/visualstudio/debugger/edit-and-continue)
- [Live Visual Tree](https://docs.microsoft.com/en-us/visualstudio/debugger/inspect-xaml-properties-while-debugging).
- [XAML Hot Reload](https://docs.microsoft.com/en-us/visualstudio/debugger/xaml-hot-reload?view=vs-2019)

The promise of the Uno Platform is to enable build your app with those tools and then deploy it to iOS, Android, and the web via WebAssembly. 

## Create rich, responsive UIs

Bland apps don't quite cut it these days. Strong support for animations, templating, and custom visual effects is a must. When phones come in all sizes and manufacturers are [gouging holes out of the screen area](https://www.cnet.com/pictures/phones-with-notches/), your app's layout had better be responsive. 

## Let views do views

Separation of model, view and presentation keeps your code loosely coupled and easy to maintain. Features like data binding and attached properties let you write clean, elegant MVVM-style code. 

## Native intercompatibility (leave an escape hatch)

100% code reuse is the ideal, but it must also be easy to access functionality specific to a single platform, or to incorporate native third-party libraries., and the Uno Platform must make as much as possible to not stand in the way.

## Performance is a feature

The slow antelope gets eaten, and the slow app gets 1-star ratings. We've done a lot of optimisation on the basis of profiling in real-world use cases, and we'll continue to do so. 
2 changes: 2 additions & 0 deletions doc/articles/toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
items:
- name: What is the Uno Platform?
href: intro.md
- name: Philosophy of Uno
href: concepts/overview/philosophy-of-uno.md
- name: API differences
href: api-differences.md
- name: Features list
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
using SamplesApp.UITests.TestFramework;
using Uno.UITest.Helpers;
using Uno.UITest.Helpers.Queries;

Expand All @@ -13,6 +14,7 @@ namespace SamplesApp.UITests
public partial class UnoSamples_Tests : SampleControlUITestBase
{
[Test]
[AutoRetry]
public void ContentPresenter_Template()
{
Run("Uno.UI.Samples.Content.UITests.ContentPresenter.ContentPresenter_Template");
Expand All @@ -37,6 +39,7 @@ public void ContentPresenter_Template()
}

[Test]
[AutoRetry]
public void ContentPresenter_Changing_ContentTemplate()
{
Run("Uno.UI.Samples.Content.UITests.ContentPresenter.ContentPresenter_Changing_ContentTemplate");
Expand All @@ -50,6 +53,7 @@ public void ContentPresenter_Changing_ContentTemplate()
}

[Test]
[AutoRetry]
public void ContentControl_Changing_ContentTemplate()
{
Run("Uno.UI.Samples.Content.UITests.ContentControlTestsControl.ContentControl_Changing_ContentTemplate");
Expand Down
4 changes: 4 additions & 0 deletions src/SamplesApp/SamplesApp.UITests/UnoSamples_Tests.Popup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using System.Threading.Tasks;
using NUnit.Framework;
using SamplesApp.UITests;
using SamplesApp.UITests.TestFramework;
using Uno.UITest.Helpers;
using Uno.UITest.Helpers.Queries;

Expand All @@ -16,6 +17,7 @@ partial class UnoSamples_Tests : SampleControlUITestBase
{

[Test]
[AutoRetry]
[Ignore("TODO Popups are not removed properly")]
public void Popup_Dismissable_Validation()
{
Expand Down Expand Up @@ -48,6 +50,7 @@ public void Popup_Dismissable_Validation()
}

[Test]
[AutoRetry]
[Ignore("TODO Popups are not removed properly")]
public void Popup_NonDismissable_Validation()
{
Expand Down Expand Up @@ -81,6 +84,7 @@ public void Popup_NonDismissable_Validation()
}

[Test]
[AutoRetry]
[Ignore("TODO Popups are not removed properly")]
public void Popup_NoFixedHeight_Validation()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
using SamplesApp.UITests.TestFramework;
using Uno.UITest.Helpers;
using Uno.UITest.Helpers.Queries;
using Xamarin.UITest;
Expand All @@ -14,6 +15,7 @@ namespace SamplesApp.UITests
partial class UnoSamples_Tests : SampleControlUITestBase
{
[Test]
[AutoRetry]
public void RadioButton_IsEnabled_Validation()
{
Run("UITests.Shared.Windows_UI_Xaml_Controls.RadioButtonTests.RadioButton_IsEnabled_Automated");
Expand Down Expand Up @@ -48,6 +50,7 @@ public void RadioButton_IsEnabled_Validation()
}

[Test]
[AutoRetry]
public void RadioButton_DoubleTap_Validation()
{
Run("UITests.Shared.Windows_UI_Xaml_Controls.RadioButtonTests.RadioButton_IsEnabled_Automated");
Expand Down Expand Up @@ -83,6 +86,7 @@ public void RadioButton_DoubleTap_Validation()
}

[Test]
[AutoRetry]
public void RadioButton_StatePreservation()
{
Run("UITests.Shared.Windows_UI_Xaml_Controls.RadioButtonTests.RadioButton_IsEnabled_Automated");
Expand Down
2 changes: 2 additions & 0 deletions src/SamplesApp/SamplesApp.UITests/UnoSamples_Tests.Touch.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
using SamplesApp.UITests.TestFramework;
using Uno.UITest.Helpers;
using Uno.UITest.Helpers.Queries;

Expand All @@ -13,6 +14,7 @@ namespace SamplesApp.UITests
partial class UnoSamples_Tests : SampleControlUITestBase
{
[Test]
[AutoRetry]
public void Touch_Validation()
{
Run("Uno.UI.Samples.Content.UITests.TouchEventsTests.Touch");
Expand Down
2 changes: 2 additions & 0 deletions src/SamplesApp/SamplesApp.UITests/UnoSamples_Tests.XBind.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
using SamplesApp.UITests.TestFramework;
using Uno.UITest.Helpers;
using Uno.UITest.Helpers.Queries;

Expand All @@ -13,6 +14,7 @@ namespace SamplesApp.UITests
public partial class UnoSamples_Tests : SampleControlUITestBase
{
[Test]
[AutoRetry]
public void XBind_Validation()
{
Run("Uno.UI.Samples.Content.UITests.XBind.XBind_Simple");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
using SamplesApp.UITests.TestFramework;
using Uno.UITest.Helpers;
using Uno.UITest.Helpers.Queries;

Expand All @@ -13,6 +14,7 @@ namespace SamplesApp.UITests.Windows_ApplicationModel_Resources
public class ResourceLoader_Simple : SampleControlUITestBase
{
[Test]
[AutoRetry]
public void ValidateResourceLoader_Simple()
{
Run("UITests.Shared.Windows_ApplicationModel_Resources_ResourceLoader.ResourceLoader_Simple");
Expand Down
Loading

0 comments on commit 78a86f7

Please sign in to comment.