From 0bd7b9d9af8694d4afa8877481eccf27144ab559 Mon Sep 17 00:00:00 2001 From: Osei Fortune Date: Sun, 22 Jan 2023 23:02:58 -0400 Subject: [PATCH 1/6] feat(splitsheet):android support --- README.md | 1 + apps/demo-angular/package.json | 3 +- apps/demo-angular/src/app-routing.module.ts | 1 + apps/demo-angular/src/home.component.ts | 3 + .../nativescript-splitsheet.component.html | 8 + .../nativescript-splitsheet.component.ts | 19 + .../nativescript-splitsheet.module.ts | 10 + apps/demo-react/package.json | 3 +- .../plugin-demos/nativescript-splitsheet.tsx | 30 + .../nativescript-splitsheet.svelte | 19 + apps/demo-svelte/package.json | 3 +- .../plugin-demos/nativescript-splitsheet.vue | 34 + apps/demo-vue/package.json | 3 +- apps/demo/package.json | 3 +- apps/demo/src/main-page.xml | 1 + .../plugin-demos/nativescript-splitsheet.ts | 12 + .../plugin-demos/nativescript-splitsheet.xml | 14 + .../nativescript-splitsheet/.eslintrc.json | 18 + packages/nativescript-splitsheet/README.md | 13 + packages/nativescript-splitsheet/common.ts | 11 + .../nativescript-splitsheet/index.android.ts | 111 +++ packages/nativescript-splitsheet/index.d.ts | 11 + packages/nativescript-splitsheet/index.ios.ts | 6 + packages/nativescript-splitsheet/package.json | 35 + .../platforms/android/splitsheet-release.aar | Bin 0 -> 24190 bytes packages/nativescript-splitsheet/project.json | 73 ++ .../nativescript-splitsheet/references.d.ts | 1 + .../src-native/SplitSheetDemo/.gitignore | 15 + .../SplitSheetDemo/.idea/.gitignore | 3 + .../SplitSheetDemo/.idea/compiler.xml | 6 + .../.idea/deploymentTargetDropDown.xml | 17 + .../SplitSheetDemo/.idea/gradle.xml | 20 + .../src-native/SplitSheetDemo/.idea/misc.xml | 10 + .../src-native/SplitSheetDemo/app/.gitignore | 1 + .../SplitSheetDemo/app/build.gradle | 50 ++ .../SplitSheetDemo/app/proguard-rules.pro | 21 + .../splitsheetdemo/ExampleInstrumentedTest.kt | 24 + .../app/src/main/AndroidManifest.xml | 31 + .../triniwiz/splitsheetdemo/MainActivity.kt | 70 ++ .../triniwiz/splitsheetdemo/SplitSheet.kt | 767 ++++++++++++++++++ .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 ++++ .../app/src/main/res/layout/activity_main.xml | 91 +++ .../app/src/main/res/layout/split_sheet.xml | 41 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../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 .../app/src/main/res/values-night/themes.xml | 16 + .../app/src/main/res/values/attr.xml | 10 + .../app/src/main/res/values/colors.xml | 10 + .../app/src/main/res/values/strings.xml | 38 + .../app/src/main/res/values/themes.xml | 16 + .../app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../splitsheetdemo/ExampleUnitTest.kt | 17 + .../src-native/SplitSheetDemo/build.gradle | 6 + .../SplitSheetDemo/gradle.properties | 23 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../src-native/SplitSheetDemo/gradlew | 185 +++++ .../src-native/SplitSheetDemo/gradlew.bat | 89 ++ .../src-native/SplitSheetDemo/settings.gradle | 17 + .../SplitSheetDemo/splitsheet/.gitignore | 1 + .../SplitSheetDemo/splitsheet/build.gradle | 45 + .../splitsheet/consumer-rules.pro | 0 .../splitsheet/proguard-rules.pro | 21 + .../splitsheet/ExampleInstrumentedTest.kt | 24 + .../splitsheet/src/main/AndroidManifest.xml | 4 + .../github/triniwiz/splitsheet/SplitSheet.kt | 556 +++++++++++++ .../src/main/res/drawable/handle_drawable.xml | 14 + .../src/main/res/layout/splitsheet.xml | 67 ++ .../splitsheet/src/main/res/values/attr.xml | 10 + .../splitsheet/src/main/res/values/colors.xml | 7 + .../triniwiz/splitsheet/ExampleUnitTest.kt | 17 + .../nativescript-splitsheet/tsconfig.json | 9 + tools/demo/index.ts | 1 + tools/demo/nativescript-splitsheet/index.ts | 9 + tools/workspace-scripts.js | 11 + tsconfig.base.json | 3 + workspace.json | 3 +- 89 files changed, 3084 insertions(+), 6 deletions(-) create mode 100644 apps/demo-angular/src/plugin-demos/nativescript-splitsheet.component.html create mode 100644 apps/demo-angular/src/plugin-demos/nativescript-splitsheet.component.ts create mode 100644 apps/demo-angular/src/plugin-demos/nativescript-splitsheet.module.ts create mode 100644 apps/demo-react/src/plugin-demos/nativescript-splitsheet.tsx create mode 100644 apps/demo-svelte/app/plugin-demos/nativescript-splitsheet.svelte create mode 100644 apps/demo-vue/app/plugin-demos/nativescript-splitsheet.vue create mode 100644 apps/demo/src/plugin-demos/nativescript-splitsheet.ts create mode 100644 apps/demo/src/plugin-demos/nativescript-splitsheet.xml create mode 100644 packages/nativescript-splitsheet/.eslintrc.json create mode 100644 packages/nativescript-splitsheet/README.md create mode 100644 packages/nativescript-splitsheet/common.ts create mode 100644 packages/nativescript-splitsheet/index.android.ts create mode 100644 packages/nativescript-splitsheet/index.d.ts create mode 100644 packages/nativescript-splitsheet/index.ios.ts create mode 100644 packages/nativescript-splitsheet/package.json create mode 100644 packages/nativescript-splitsheet/platforms/android/splitsheet-release.aar create mode 100644 packages/nativescript-splitsheet/project.json create mode 100644 packages/nativescript-splitsheet/references.d.ts create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/.gitignore create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/.idea/.gitignore create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/.idea/compiler.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/.idea/deploymentTargetDropDown.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/.idea/gradle.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/.idea/misc.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/.gitignore create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/build.gradle create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/proguard-rules.pro create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/androidTest/java/io/github/triniwiz/splitsheetdemo/ExampleInstrumentedTest.kt create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/AndroidManifest.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/java/io/github/triniwiz/splitsheetdemo/MainActivity.kt create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/java/io/github/triniwiz/splitsheetdemo/SplitSheet.kt create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/layout/activity_main.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/layout/split_sheet.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/values-night/themes.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/values/attr.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/values/colors.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/values/strings.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/values/themes.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/xml/backup_rules.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/main/res/xml/data_extraction_rules.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/app/src/test/java/io/github/triniwiz/splitsheetdemo/ExampleUnitTest.kt create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/build.gradle create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/gradle.properties create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/gradle/wrapper/gradle-wrapper.jar create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/gradle/wrapper/gradle-wrapper.properties create mode 100755 packages/nativescript-splitsheet/src-native/SplitSheetDemo/gradlew create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/gradlew.bat create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/settings.gradle create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/splitsheet/.gitignore create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/splitsheet/build.gradle create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/splitsheet/consumer-rules.pro create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/splitsheet/proguard-rules.pro create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/splitsheet/src/androidTest/java/io/github/triniwiz/splitsheet/ExampleInstrumentedTest.kt create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/splitsheet/src/main/AndroidManifest.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/splitsheet/src/main/java/io/github/triniwiz/splitsheet/SplitSheet.kt create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/splitsheet/src/main/res/drawable/handle_drawable.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/splitsheet/src/main/res/layout/splitsheet.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/splitsheet/src/main/res/values/attr.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/splitsheet/src/main/res/values/colors.xml create mode 100644 packages/nativescript-splitsheet/src-native/SplitSheetDemo/splitsheet/src/test/java/io/github/triniwiz/splitsheet/ExampleUnitTest.kt create mode 100644 packages/nativescript-splitsheet/tsconfig.json create mode 100644 tools/demo/nativescript-splitsheet/index.ts diff --git a/README.md b/README.md index caaa5bf0..db93c221 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ - [@nstudio/nativescript-persona](packages/nativescript-persona/README.md) - [@nstudio/nativescript-plaid](packages/nativescript-plaid/README.md) - [@nstudio/nativescript-qr](packages/nativescript-qr/README.md) +- [@nstudio/nativescript-splitsheet](packages/nativescript-splitsheet/README.md) - [@nstudio/nativescript-tracking-transparency](packages/nativescript-tracking-transparency/README.md) - [@nstudio/nativescript-walletconnect](packages/nativescript-walletconnect/README.md) diff --git a/apps/demo-angular/package.json b/apps/demo-angular/package.json index b2e892b2..a5ba7c74 100644 --- a/apps/demo-angular/package.json +++ b/apps/demo-angular/package.json @@ -26,7 +26,8 @@ "@nstudio/nativescript-plaid": "file:../../dist/packages/nativescript-plaid", "@nstudio/nativescript-qr": "file:../../dist/packages/nativescript-qr", "@nstudio/nativescript-tracking-transparency": "file:../../dist/packages/nativescript-tracking-transparency", - "@nstudio/nativescript-walletconnect": "file:../../dist/packages/nativescript-walletconnect" + "@nstudio/nativescript-walletconnect": "file:../../dist/packages/nativescript-walletconnect", + "@nstudio/nativescript-splitsheet": "file:../../dist/packages/nativescript-splitsheet" }, "devDependencies": { "@nativescript/android": "~8.4.0", diff --git a/apps/demo-angular/src/app-routing.module.ts b/apps/demo-angular/src/app-routing.module.ts index 98204f91..44096edb 100644 --- a/apps/demo-angular/src/app-routing.module.ts +++ b/apps/demo-angular/src/app-routing.module.ts @@ -29,6 +29,7 @@ const routes: Routes = [ { path: 'nativescript-persona', loadChildren: () => import('./plugin-demos/nativescript-persona.module').then(m => m.NativescriptPersonaModule) }, { path: 'nativescript-plaid', loadChildren: () => import('./plugin-demos/nativescript-plaid.module').then(m => m.NativescriptPlaidModule) }, { path: 'nativescript-qr', loadChildren: () => import('./plugin-demos/nativescript-qr.module').then(m => m.NativescriptQrModule) }, + { path: 'nativescript-splitsheet', loadChildren: () => import('./plugin-demos/nativescript-splitsheet.module').then(m => m.NativescriptSplitsheetModule) }, { path: 'nativescript-tracking-transparency', loadChildren: () => import('./plugin-demos/nativescript-tracking-transparency.module').then(m => m.NativescriptTrackingTransparencyModule) }, { path: 'nativescript-walletconnect', loadChildren: () => import('./plugin-demos/nativescript-walletconnect.module').then(m => m.NativescriptWalletconnectModule) } ]; diff --git a/apps/demo-angular/src/home.component.ts b/apps/demo-angular/src/home.component.ts index 7f7e47c0..b04c3e66 100644 --- a/apps/demo-angular/src/home.component.ts +++ b/apps/demo-angular/src/home.component.ts @@ -75,6 +75,9 @@ export class HomeComponent { { name: 'nativescript-qr' }, + { + name: 'nativescript-splitsheet' + }, { name: 'nativescript-tracking-transparency' }, diff --git a/apps/demo-angular/src/plugin-demos/nativescript-splitsheet.component.html b/apps/demo-angular/src/plugin-demos/nativescript-splitsheet.component.html new file mode 100644 index 00000000..ccb8e2fc --- /dev/null +++ b/apps/demo-angular/src/plugin-demos/nativescript-splitsheet.component.html @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/demo-angular/src/plugin-demos/nativescript-splitsheet.component.ts b/apps/demo-angular/src/plugin-demos/nativescript-splitsheet.component.ts new file mode 100644 index 00000000..2948ff53 --- /dev/null +++ b/apps/demo-angular/src/plugin-demos/nativescript-splitsheet.component.ts @@ -0,0 +1,19 @@ +import { Component, NgZone } from '@angular/core'; +import { DemoSharedNativescriptSplitsheet } from '@demo/shared'; +import { } from '@nstudio/nativescript-splitsheet'; + +@Component({ + selector: 'demo-nativescript-splitsheet', + templateUrl: 'nativescript-splitsheet.component.html', +}) +export class NativescriptSplitsheetComponent { + + demoShared: DemoSharedNativescriptSplitsheet; + + constructor(private _ngZone: NgZone) {} + + ngOnInit() { + this.demoShared = new DemoSharedNativescriptSplitsheet(); + } + +} \ No newline at end of file diff --git a/apps/demo-angular/src/plugin-demos/nativescript-splitsheet.module.ts b/apps/demo-angular/src/plugin-demos/nativescript-splitsheet.module.ts new file mode 100644 index 00000000..1fa97a02 --- /dev/null +++ b/apps/demo-angular/src/plugin-demos/nativescript-splitsheet.module.ts @@ -0,0 +1,10 @@ +import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core'; +import { NativeScriptCommonModule, NativeScriptRouterModule } from '@nativescript/angular'; +import { NativescriptSplitsheetComponent } from './nativescript-splitsheet.component'; + +@NgModule({ + imports: [NativeScriptCommonModule, NativeScriptRouterModule.forChild([{ path: '', component: NativescriptSplitsheetComponent }])], + declarations: [NativescriptSplitsheetComponent], + schemas: [ NO_ERRORS_SCHEMA] +}) +export class NativescriptSplitsheetModule {} diff --git a/apps/demo-react/package.json b/apps/demo-react/package.json index d97d02f0..8237bf50 100644 --- a/apps/demo-react/package.json +++ b/apps/demo-react/package.json @@ -26,7 +26,8 @@ "@nstudio/nativescript-plaid": "file:../../packages/nativescript-plaid", "@nstudio/nativescript-qr": "file:../../packages/nativescript-qr", "@nstudio/nativescript-tracking-transparency": "file:../../packages/nativescript-tracking-transparency", - "@nstudio/nativescript-walletconnect": "file:../../packages/nativescript-walletconnect" + "@nstudio/nativescript-walletconnect": "file:../../packages/nativescript-walletconnect", + "@nstudio/nativescript-splitsheet": "file:../../packages/nativescript-splitsheet" }, "devDependencies": { "@nativescript/android": "~8.4.0", diff --git a/apps/demo-react/src/plugin-demos/nativescript-splitsheet.tsx b/apps/demo-react/src/plugin-demos/nativescript-splitsheet.tsx new file mode 100644 index 00000000..35c89b42 --- /dev/null +++ b/apps/demo-react/src/plugin-demos/nativescript-splitsheet.tsx @@ -0,0 +1,30 @@ +import * as React from "react"; +import { Dialogs } from '@nativescript/core'; +import { StyleSheet } from "react-nativescript"; +import { DemoSharedNativescriptSplitsheet } from '@demo/shared'; +import { } from '@nstudio/nativescript-splitsheet'; + +export function HomeScreen() { + return ( + + + + ); +} + +const styles = StyleSheet.create({ + container: { + height: "100%", + flexDirection: "column", + justifyContent: "center", + }, + button: { + fontSize: 24, + color: "#2e6ddf", + }, +}); \ No newline at end of file diff --git a/apps/demo-svelte/app/plugin-demos/nativescript-splitsheet.svelte b/apps/demo-svelte/app/plugin-demos/nativescript-splitsheet.svelte new file mode 100644 index 00000000..89a3d7e5 --- /dev/null +++ b/apps/demo-svelte/app/plugin-demos/nativescript-splitsheet.svelte @@ -0,0 +1,19 @@ + + + +