From 56dbabab03f406b2aeacbfcc2e5d3b1ad454b75e Mon Sep 17 00:00:00 2001 From: Osei Fortune Date: Wed, 1 Jul 2026 10:28:50 -0400 Subject: [PATCH 1/3] feat: widgets --- README.md | 1 + apps/demo/package.json | 3 +- apps/demo/src/main-page.xml | 1 + apps/demo/src/plugin-demos/widgets.ts | 10 + apps/demo/src/plugin-demos/widgets.xml | 14 + apps/demo/tsconfig.json | 3 +- packages/widgets/.eslintrc.json | 18 + packages/widgets/README.md | 411 ++++++++++ packages/widgets/index.android.ts | 276 +++++++ packages/widgets/index.d.ts | 0 packages/widgets/index.ios.ts | 0 packages/widgets/package.json | 35 + .../nativescript/widgets/AppWidgetManager.kt | 109 +++ .../nativescript/widgets/AppWidgetProvider.kt | 105 +++ .../nativescript/widgets/AppWidgetWorker.kt | 161 ++++ .../org/nativescript/widgets/RemoteViews.kt | 489 ++++++++++++ .../widgets/RemoteViewsManager.kt | 108 +++ .../ns_remote_views_adapter_view_flipper.xml | 8 + .../res/layout/ns_remote_views_button.xml | 5 + .../layout/ns_remote_views_chronometer.xml | 7 + .../layout/ns_remote_views_frame_layout.xml | 7 + .../layout/ns_remote_views_grid_layout.xml | 7 + .../res/layout/ns_remote_views_grid_view.xml | 7 + .../layout/ns_remote_views_image_button.xml | 7 + .../res/layout/ns_remote_views_image_view.xml | 7 + .../layout/ns_remote_views_linear_layout.xml | 8 + .../res/layout/ns_remote_views_list_view.xml | 7 + .../layout/ns_remote_views_progress_bar.xml | 7 + .../ns_remote_views_relative_layout.xml | 7 + .../res/layout/ns_remote_views_stack_view.xml | 7 + .../res/layout/ns_remote_views_text_clock.xml | 7 + .../res/layout/ns_remote_views_text_view.xml | 7 + .../layout/ns_remote_views_view_flipper.xml | 7 + .../platforms/android/res/values/ids.xml | 4 + packages/widgets/project.json | 65 ++ packages/widgets/references.d.ts | 1 + packages/widgets/tsconfig.json | 9 + .../typings/org.nativescript.widgets.d.ts | 722 ++++++++++++++++++ tools/demo/index.ts | 1 + tools/demo/widgets/index.ts | 8 + tools/workspace-scripts.js | 11 + tsconfig.base.json | 3 +- 42 files changed, 2677 insertions(+), 3 deletions(-) create mode 100644 apps/demo/src/plugin-demos/widgets.ts create mode 100644 apps/demo/src/plugin-demos/widgets.xml create mode 100644 packages/widgets/.eslintrc.json create mode 100644 packages/widgets/README.md create mode 100644 packages/widgets/index.android.ts create mode 100644 packages/widgets/index.d.ts create mode 100644 packages/widgets/index.ios.ts create mode 100644 packages/widgets/package.json create mode 100644 packages/widgets/platforms/android/java/org/nativescript/widgets/AppWidgetManager.kt create mode 100644 packages/widgets/platforms/android/java/org/nativescript/widgets/AppWidgetProvider.kt create mode 100644 packages/widgets/platforms/android/java/org/nativescript/widgets/AppWidgetWorker.kt create mode 100644 packages/widgets/platforms/android/java/org/nativescript/widgets/RemoteViews.kt create mode 100644 packages/widgets/platforms/android/java/org/nativescript/widgets/RemoteViewsManager.kt create mode 100644 packages/widgets/platforms/android/res/layout/ns_remote_views_adapter_view_flipper.xml create mode 100644 packages/widgets/platforms/android/res/layout/ns_remote_views_button.xml create mode 100644 packages/widgets/platforms/android/res/layout/ns_remote_views_chronometer.xml create mode 100644 packages/widgets/platforms/android/res/layout/ns_remote_views_frame_layout.xml create mode 100644 packages/widgets/platforms/android/res/layout/ns_remote_views_grid_layout.xml create mode 100644 packages/widgets/platforms/android/res/layout/ns_remote_views_grid_view.xml create mode 100644 packages/widgets/platforms/android/res/layout/ns_remote_views_image_button.xml create mode 100644 packages/widgets/platforms/android/res/layout/ns_remote_views_image_view.xml create mode 100644 packages/widgets/platforms/android/res/layout/ns_remote_views_linear_layout.xml create mode 100644 packages/widgets/platforms/android/res/layout/ns_remote_views_list_view.xml create mode 100644 packages/widgets/platforms/android/res/layout/ns_remote_views_progress_bar.xml create mode 100644 packages/widgets/platforms/android/res/layout/ns_remote_views_relative_layout.xml create mode 100644 packages/widgets/platforms/android/res/layout/ns_remote_views_stack_view.xml create mode 100644 packages/widgets/platforms/android/res/layout/ns_remote_views_text_clock.xml create mode 100644 packages/widgets/platforms/android/res/layout/ns_remote_views_text_view.xml create mode 100644 packages/widgets/platforms/android/res/layout/ns_remote_views_view_flipper.xml create mode 100644 packages/widgets/platforms/android/res/values/ids.xml create mode 100644 packages/widgets/project.json create mode 100644 packages/widgets/references.d.ts create mode 100644 packages/widgets/tsconfig.json create mode 100644 packages/widgets/typings/org.nativescript.widgets.d.ts create mode 100644 tools/demo/widgets/index.ts diff --git a/README.md b/README.md index 88c2ba81..c8cc6a4c 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ - [@nativescript/social-share](packages/social-share/README.md) - [@nativescript/theme-switcher](packages/theme-switcher/README.md) - [@nativescript/twitter](packages/twitter/README.md) +- [@nativescript/widgets](packages/widgets/README.md) - [@nativescript/zip](packages/zip/README.md) # How to use? diff --git a/apps/demo/package.json b/apps/demo/package.json index 592e0975..38ad3e50 100644 --- a/apps/demo/package.json +++ b/apps/demo/package.json @@ -42,7 +42,8 @@ "@nativescript/social-share": "file:../../packages/social-share", "@nativescript/theme-switcher": "file:../../packages/theme-switcher", "@nativescript/twitter": "file:../../packages/twitter", - "@nativescript/zip": "file:../../packages/zip" + "@nativescript/zip": "file:../../packages/zip", + "@nativescript/widgets": "file:../../packages/widgets" }, "devDependencies": { "@nativescript/android": "~9.0.0", diff --git a/apps/demo/src/main-page.xml b/apps/demo/src/main-page.xml index b3fd699e..652d70a9 100644 --- a/apps/demo/src/main-page.xml +++ b/apps/demo/src/main-page.xml @@ -1,5 +1,6 @@