From 017534c30d52bd6c4cd7a01606848c82f3046e32 Mon Sep 17 00:00:00 2001 From: Martin Yankov Date: Thu, 26 Jul 2018 16:19:05 +0300 Subject: [PATCH] add listview support for safe area --- e2e/safe-area/app/home/home-page.xml | 1 + .../grid-3x3-nested-listview-page.xml | 10 +++ .../listview-nested-grid-3x3-page.xml | 10 +++ .../listview-nested-hstack-page.xml | 10 +++ .../listview-nested-vstack-page.xml | 10 +++ .../app/listview/action-bar/listview-page.xml | 10 +++ .../grid-3x3-nested-listview-fragment.ts | 8 ++ .../grid-3x3-nested-listview-fragment.xml | 55 +++++++++++++ .../fragments/listview-fragment-view-model.ts | 18 +++++ .../listview/fragments/listview-fragment.ts | 8 ++ .../listview/fragments/listview-fragment.xml | 5 ++ .../listview-nested-grid-3x3-fragment.ts | 8 ++ .../listview-nested-grid-3x3-fragment.xml | 15 ++++ .../listview-nested-hstack-fragment.ts | 8 ++ .../listview-nested-hstack-fragment.xml | 9 +++ .../listview-nested-vstack-fragment.ts | 8 ++ .../listview-nested-vstack-fragment.xml | 9 +++ e2e/safe-area/app/listview/listview-page.ts | 8 ++ e2e/safe-area/app/listview/listview-page.xml | 28 +++++++ .../grid-3x3-nested-listview-page.xml | 7 ++ .../listview-nested-grid-3x3-page.xml | 7 ++ .../listview-nested-hstack-page.xml | 7 ++ .../listview-nested-vstack-page.xml | 7 ++ .../listview/no-action-bar/listview-page.xml | 7 ++ .../ui/layouts/layout-base.ios.ts | 49 ++++++------ .../ui/list-view/list-view.ios.ts | 77 +++++++++++++++++++ 26 files changed, 376 insertions(+), 23 deletions(-) create mode 100644 e2e/safe-area/app/listview/action-bar/grid-3x3-nested-listview-page.xml create mode 100644 e2e/safe-area/app/listview/action-bar/listview-nested-grid-3x3-page.xml create mode 100644 e2e/safe-area/app/listview/action-bar/listview-nested-hstack-page.xml create mode 100644 e2e/safe-area/app/listview/action-bar/listview-nested-vstack-page.xml create mode 100644 e2e/safe-area/app/listview/action-bar/listview-page.xml create mode 100644 e2e/safe-area/app/listview/fragments/grid-3x3-nested-listview-fragment.ts create mode 100644 e2e/safe-area/app/listview/fragments/grid-3x3-nested-listview-fragment.xml create mode 100644 e2e/safe-area/app/listview/fragments/listview-fragment-view-model.ts create mode 100644 e2e/safe-area/app/listview/fragments/listview-fragment.ts create mode 100644 e2e/safe-area/app/listview/fragments/listview-fragment.xml create mode 100644 e2e/safe-area/app/listview/fragments/listview-nested-grid-3x3-fragment.ts create mode 100644 e2e/safe-area/app/listview/fragments/listview-nested-grid-3x3-fragment.xml create mode 100644 e2e/safe-area/app/listview/fragments/listview-nested-hstack-fragment.ts create mode 100644 e2e/safe-area/app/listview/fragments/listview-nested-hstack-fragment.xml create mode 100644 e2e/safe-area/app/listview/fragments/listview-nested-vstack-fragment.ts create mode 100644 e2e/safe-area/app/listview/fragments/listview-nested-vstack-fragment.xml create mode 100644 e2e/safe-area/app/listview/listview-page.ts create mode 100644 e2e/safe-area/app/listview/listview-page.xml create mode 100644 e2e/safe-area/app/listview/no-action-bar/grid-3x3-nested-listview-page.xml create mode 100644 e2e/safe-area/app/listview/no-action-bar/listview-nested-grid-3x3-page.xml create mode 100644 e2e/safe-area/app/listview/no-action-bar/listview-nested-hstack-page.xml create mode 100644 e2e/safe-area/app/listview/no-action-bar/listview-nested-vstack-page.xml create mode 100644 e2e/safe-area/app/listview/no-action-bar/listview-page.xml diff --git a/e2e/safe-area/app/home/home-page.xml b/e2e/safe-area/app/home/home-page.xml index 9d7247209..5ccb8bcc2 100644 --- a/e2e/safe-area/app/home/home-page.xml +++ b/e2e/safe-area/app/home/home-page.xml @@ -7,6 +7,7 @@ + diff --git a/e2e/safe-area/app/listview/action-bar/grid-3x3-nested-listview-page.xml b/e2e/safe-area/app/listview/action-bar/grid-3x3-nested-listview-page.xml new file mode 100644 index 000000000..5c50028a3 --- /dev/null +++ b/e2e/safe-area/app/listview/action-bar/grid-3x3-nested-listview-page.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/e2e/safe-area/app/listview/action-bar/listview-nested-grid-3x3-page.xml b/e2e/safe-area/app/listview/action-bar/listview-nested-grid-3x3-page.xml new file mode 100644 index 000000000..cd84ab719 --- /dev/null +++ b/e2e/safe-area/app/listview/action-bar/listview-nested-grid-3x3-page.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/e2e/safe-area/app/listview/action-bar/listview-nested-hstack-page.xml b/e2e/safe-area/app/listview/action-bar/listview-nested-hstack-page.xml new file mode 100644 index 000000000..cb708c1cf --- /dev/null +++ b/e2e/safe-area/app/listview/action-bar/listview-nested-hstack-page.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/e2e/safe-area/app/listview/action-bar/listview-nested-vstack-page.xml b/e2e/safe-area/app/listview/action-bar/listview-nested-vstack-page.xml new file mode 100644 index 000000000..eb1ab04c7 --- /dev/null +++ b/e2e/safe-area/app/listview/action-bar/listview-nested-vstack-page.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/e2e/safe-area/app/listview/action-bar/listview-page.xml b/e2e/safe-area/app/listview/action-bar/listview-page.xml new file mode 100644 index 000000000..2a6d88f2e --- /dev/null +++ b/e2e/safe-area/app/listview/action-bar/listview-page.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/e2e/safe-area/app/listview/fragments/grid-3x3-nested-listview-fragment.ts b/e2e/safe-area/app/listview/fragments/grid-3x3-nested-listview-fragment.ts new file mode 100644 index 000000000..e2e1a66b4 --- /dev/null +++ b/e2e/safe-area/app/listview/fragments/grid-3x3-nested-listview-fragment.ts @@ -0,0 +1,8 @@ +import { Page } from "ui/page"; + +import { ListViewViewModel } from "./listview-fragment-view-model"; + +export function onLoaded(args) { + const page = args.object; + page.bindingContext = new ListViewViewModel(); +} \ No newline at end of file diff --git a/e2e/safe-area/app/listview/fragments/grid-3x3-nested-listview-fragment.xml b/e2e/safe-area/app/listview/fragments/grid-3x3-nested-listview-fragment.xml new file mode 100644 index 000000000..f50cf66bd --- /dev/null +++ b/e2e/safe-area/app/listview/fragments/grid-3x3-nested-listview-fragment.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/e2e/safe-area/app/listview/fragments/listview-fragment-view-model.ts b/e2e/safe-area/app/listview/fragments/listview-fragment-view-model.ts new file mode 100644 index 000000000..86da6c3e1 --- /dev/null +++ b/e2e/safe-area/app/listview/fragments/listview-fragment-view-model.ts @@ -0,0 +1,18 @@ +import { Observable } from "data/observable"; + +export class ListViewViewModel extends Observable { + items: Array; + + constructor() { + super(); + + this.items = []; + + for (let i = 0; i < 50; i++) { + this.items.push({ + text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut scelerisque enim mi, id ultrices felis maximus vel.", + shortText: "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + }); + } + } +} \ No newline at end of file diff --git a/e2e/safe-area/app/listview/fragments/listview-fragment.ts b/e2e/safe-area/app/listview/fragments/listview-fragment.ts new file mode 100644 index 000000000..e2e1a66b4 --- /dev/null +++ b/e2e/safe-area/app/listview/fragments/listview-fragment.ts @@ -0,0 +1,8 @@ +import { Page } from "ui/page"; + +import { ListViewViewModel } from "./listview-fragment-view-model"; + +export function onLoaded(args) { + const page = args.object; + page.bindingContext = new ListViewViewModel(); +} \ No newline at end of file diff --git a/e2e/safe-area/app/listview/fragments/listview-fragment.xml b/e2e/safe-area/app/listview/fragments/listview-fragment.xml new file mode 100644 index 000000000..098b9194e --- /dev/null +++ b/e2e/safe-area/app/listview/fragments/listview-fragment.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/e2e/safe-area/app/listview/fragments/listview-nested-grid-3x3-fragment.ts b/e2e/safe-area/app/listview/fragments/listview-nested-grid-3x3-fragment.ts new file mode 100644 index 000000000..e2e1a66b4 --- /dev/null +++ b/e2e/safe-area/app/listview/fragments/listview-nested-grid-3x3-fragment.ts @@ -0,0 +1,8 @@ +import { Page } from "ui/page"; + +import { ListViewViewModel } from "./listview-fragment-view-model"; + +export function onLoaded(args) { + const page = args.object; + page.bindingContext = new ListViewViewModel(); +} \ No newline at end of file diff --git a/e2e/safe-area/app/listview/fragments/listview-nested-grid-3x3-fragment.xml b/e2e/safe-area/app/listview/fragments/listview-nested-grid-3x3-fragment.xml new file mode 100644 index 000000000..2f40fb846 --- /dev/null +++ b/e2e/safe-area/app/listview/fragments/listview-nested-grid-3x3-fragment.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/e2e/safe-area/app/listview/fragments/listview-nested-hstack-fragment.ts b/e2e/safe-area/app/listview/fragments/listview-nested-hstack-fragment.ts new file mode 100644 index 000000000..e2e1a66b4 --- /dev/null +++ b/e2e/safe-area/app/listview/fragments/listview-nested-hstack-fragment.ts @@ -0,0 +1,8 @@ +import { Page } from "ui/page"; + +import { ListViewViewModel } from "./listview-fragment-view-model"; + +export function onLoaded(args) { + const page = args.object; + page.bindingContext = new ListViewViewModel(); +} \ No newline at end of file diff --git a/e2e/safe-area/app/listview/fragments/listview-nested-hstack-fragment.xml b/e2e/safe-area/app/listview/fragments/listview-nested-hstack-fragment.xml new file mode 100644 index 000000000..b707c03da --- /dev/null +++ b/e2e/safe-area/app/listview/fragments/listview-nested-hstack-fragment.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/e2e/safe-area/app/listview/fragments/listview-nested-vstack-fragment.ts b/e2e/safe-area/app/listview/fragments/listview-nested-vstack-fragment.ts new file mode 100644 index 000000000..e2e1a66b4 --- /dev/null +++ b/e2e/safe-area/app/listview/fragments/listview-nested-vstack-fragment.ts @@ -0,0 +1,8 @@ +import { Page } from "ui/page"; + +import { ListViewViewModel } from "./listview-fragment-view-model"; + +export function onLoaded(args) { + const page = args.object; + page.bindingContext = new ListViewViewModel(); +} \ No newline at end of file diff --git a/e2e/safe-area/app/listview/fragments/listview-nested-vstack-fragment.xml b/e2e/safe-area/app/listview/fragments/listview-nested-vstack-fragment.xml new file mode 100644 index 000000000..2515787c3 --- /dev/null +++ b/e2e/safe-area/app/listview/fragments/listview-nested-vstack-fragment.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/e2e/safe-area/app/listview/listview-page.ts b/e2e/safe-area/app/listview/listview-page.ts new file mode 100644 index 000000000..c0f982757 --- /dev/null +++ b/e2e/safe-area/app/listview/listview-page.ts @@ -0,0 +1,8 @@ +import { View, EventData } from "tns-core-modules/ui/core/view"; + +export function onNavigate(args: EventData) { + const view = args.object as View; + const route = view["route"]; + + view.page.frame.navigate(route); +} \ No newline at end of file diff --git a/e2e/safe-area/app/listview/listview-page.xml b/e2e/safe-area/app/listview/listview-page.xml new file mode 100644 index 000000000..f3c127fca --- /dev/null +++ b/e2e/safe-area/app/listview/listview-page.xml @@ -0,0 +1,28 @@ + + + + + + + + + +