From 248ff4bcaee84b36e587902a04442cfc5edc8787 Mon Sep 17 00:00:00 2001 From: Osei Fortune Date: Tue, 4 Nov 2025 23:13:15 -0400 Subject: [PATCH] feat(android): edge to edge (#10774) --- apps/toolbox/src/main-page.xml | 3 +- apps/toolbox/src/main-view-model.ts | 14 +- apps/toolbox/src/pages/list-page.xml | 2 +- packages/core/core-types/index.ts | 4 + .../platforms/android/widgets-release.aar | Bin 274064 -> 281638 bytes packages/core/ui/animation/index.d.ts | 10 +- packages/core/ui/core/view/index.android.ts | 230 ++++++++++++- packages/core/ui/core/view/index.d.ts | 12 + packages/core/ui/core/view/view-common.ts | 8 + packages/core/ui/core/view/view-interfaces.ts | 24 ++ packages/core/ui/frame/activity.android.ts | 4 +- packages/core/ui/frame/index.android.ts | 3 + packages/core/ui/index.ts | 2 +- .../core/utils/native-helper-for-android.ts | 131 +++++++ .../lib/android/org.nativescript.widgets.d.ts | 51 +++ packages/ui-mobile-base/android/build.gradle | 4 +- .../android/gradle/wrapper/gradle-wrapper.jar | Bin 54413 -> 43462 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 +- packages/ui-mobile-base/android/gradlew | 309 ++++++++++------- packages/ui-mobile-base/android/gradlew.bat | 56 +-- .../ui-mobile-base/android/settings.gradle | 1 + .../android/widgetdemo/.gitignore | 1 + .../android/widgetdemo/build.gradle.kts | 49 +++ .../android/widgetdemo/proguard-rules.pro | 21 ++ .../widgetsdemo/ExampleInstrumentedTest.kt | 24 ++ .../widgetdemo/src/main/AndroidManifest.xml | 22 ++ .../nativescript/widgetsdemo/MainActivity.kt | 136 ++++++++ .../drawable-v24/ic_launcher_foreground.xml | 30 ++ .../res/drawable/ic_launcher_background.xml | 170 +++++++++ .../src/main/res/layout/activity_main.xml | 19 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes .../src/main/res/values-night/themes.xml | 7 + .../widgetdemo/src/main/res/values/colors.xml | 5 + .../src/main/res/values/strings.xml | 9 + .../widgetdemo/src/main/res/values/themes.xml | 9 + .../widgetsdemo/ExampleUnitTest.kt | 17 + .../android/widgets/build.gradle | 175 +++++----- .../org/nativescript/widgets/GridLayout.java | 32 +- .../org/nativescript/widgets/LayoutBase.java | 324 ++++++++++++++++++ .../java/org/nativescript/widgets/Utils.java | 58 +++- 51 files changed, 1737 insertions(+), 256 deletions(-) create mode 100644 packages/ui-mobile-base/android/widgetdemo/.gitignore create mode 100644 packages/ui-mobile-base/android/widgetdemo/build.gradle.kts create mode 100644 packages/ui-mobile-base/android/widgetdemo/proguard-rules.pro create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/androidTest/java/org/nativescript/widgetsdemo/ExampleInstrumentedTest.kt create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/AndroidManifest.xml create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/java/org/nativescript/widgetsdemo/MainActivity.kt create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/drawable/ic_launcher_background.xml create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/layout/activity_main.xml create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/values-night/themes.xml create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/values/colors.xml create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/values/strings.xml create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/main/res/values/themes.xml create mode 100644 packages/ui-mobile-base/android/widgetdemo/src/test/java/org/nativescript/widgetsdemo/ExampleUnitTest.kt diff --git a/apps/toolbox/src/main-page.xml b/apps/toolbox/src/main-page.xml index 1286874aa..1f02baf8f 100644 --- a/apps/toolbox/src/main-page.xml +++ b/apps/toolbox/src/main-page.xml @@ -1,4 +1,4 @@ - + @@ -34,3 +34,4 @@ + diff --git a/apps/toolbox/src/main-view-model.ts b/apps/toolbox/src/main-view-model.ts index 406161ce0..bf21709d1 100644 --- a/apps/toolbox/src/main-view-model.ts +++ b/apps/toolbox/src/main-view-model.ts @@ -1,4 +1,4 @@ -import { Observable, Frame, StackLayout } from '@nativescript/core'; +import { Observable, Frame, StackLayout, AndroidOverflowInsetData } from '@nativescript/core'; export class HelloWorldModel extends Observable { viewDemo(args) { @@ -7,4 +7,16 @@ export class HelloWorldModel extends Observable { moduleName: `pages/${args.object.text}`, }); } + + onInset(args: AndroidOverflowInsetData) { + args.inset.top += 10; // add 10px to the top inset + args.inset.bottom += 10; // add 10px to the bottom inset + args.inset.left += 10; // add 10px to the left inset + args.inset.right += 10; // add 10px to the right inset + + args.inset.topConsumed = true; // consume the top inset + args.inset.bottomConsumed = true; // consume the bottom inset + args.inset.leftConsumed = true; // consume the left inset + args.inset.rightConsumed = true; // consume the right inset + } } diff --git a/apps/toolbox/src/pages/list-page.xml b/apps/toolbox/src/pages/list-page.xml index 1dfd79c25..b4e11c44c 100644 --- a/apps/toolbox/src/pages/list-page.xml +++ b/apps/toolbox/src/pages/list-page.xml @@ -1,4 +1,4 @@ - +