From 71ab195f81cbb20ec6c90badb0971273fcc9179e Mon Sep 17 00:00:00 2001 From: Diego Barreiro Perez Date: Tue, 5 May 2026 23:32:04 +0100 Subject: [PATCH 1/5] Sync 2026.05.1 Docs --- .../google/firebase-realtime-database.md | 165 ++++++++++++++++++ docs/components/google/index.md | 2 +- docs/components/mkdocs.yml | 50 +++--- mkdocs.yml | 2 +- 4 files changed, 192 insertions(+), 27 deletions(-) create mode 100644 docs/components/google/firebase-realtime-database.md diff --git a/docs/components/google/firebase-realtime-database.md b/docs/components/google/firebase-realtime-database.md new file mode 100644 index 000000000..dadc1e272 --- /dev/null +++ b/docs/components/google/firebase-realtime-database.md @@ -0,0 +1,165 @@ +# Firebase Realtime Database + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Google**|API 21, Android 5.0 Lollipop|1| + +## Overview + +Non-visible component that communicates with Firebase Realtime Database to store and retrieve data in real-time. Requires google-services.json. Authenticate users via the KodularFirebaseAuthentication component. + +??? example "Permissions" + * [android.permission.INTERNET](https://developer.android.com/reference/android/Manifest.permission.html#INTERNET) + * [android.permission.ACCESS_NETWORK_STATE](https://developer.android.com/reference/android/Manifest.permission.html#ACCESS_NETWORK_STATE) + +## Events + +### Data Changed + +Indicates that the data in the Firebase has changed. + +
+ +| Params | []() | +|--------|------| +|tag|Text| +|value|Any| + +### Firebase Error + +Indicates that the communication with the Firebase signaled an error. + +
+ +| Params | []() | +|--------|------| +|message|Text| + +### First Removed + +Event triggered by the "RemoveFirst" function. The argument "value" is the object that was the first in the list, and which is now removed. + +
+ +| Params | []() | +|--------|------| +|value|Any| + +### Got Value + +Indicates that a GetValue request has succeeded. + +
+ +| Params | []() | +|--------|------| +|tag|Text| +|value|Any| + +### Initialize + +Fired when the component finishes initialization. Mirrors legacyFirebaseDB.Initialize. + +
+ +### Tag List + +Event triggered when we have received the list of known tags. Used with the "GetTagList" Function. + +
+ +| Params | []() | +|--------|------| +|value|List| + +## Methods + +### Append Value + +Append a value to the end of a list atomically. If two devices use this function simultaneously, both will be appended and no data lost. + +
+ +| Params | []() | +|--------|------| +|tag|Text| +|value To Add|Any| + +### Clear Tag + +Remove the tag from Firebase + +
+ +| Params | []() | +|--------|------| +|tag|Text| + +### Get Tag List + +Get the list of tags for this application. When complete a "TagList" event will be triggered with the list of known tags. + +
+ +### Get Value + +Method for GetValue + +
+ +| Params | []() | +|--------|------| +|tag|Text| +|value If Tag Not There|Any| + +### Go Offline + +Take the database offline + +
+ +### Go Online + +Take the database online + +
+ +### Remove First + +Return the first element of a list and atomically remove it. If two devices use this function simultaneously, one will get the first element and the other will get the second element, or an error if there is no available element. When the element is available, the "FirstRemoved" event will be triggered. + +
+ +| Params | []() | +|--------|------| +|tag|Text| + +### Store Value + +Method for StoreValue + +
+ +| Params | []() | +|--------|------| +|tag|Text| +|value To Store|Any| + +## Properties + +### Persist + +Boolean Default: False :heavy_minus_sign: Write - Designer + +If true, data will be cached locally and survive app restarts. Must be set in the designer before any FirebaseDatabase operation; changing this at runtime via blocks is not supported. + +### Project Path + +Text :heavy_minus_sign: Read Write - Designer Blocks + +Optional root path prefix for all operations. Empty means operate at the database root. + +
+
diff --git a/docs/components/google/index.md b/docs/components/google/index.md index 3434d45d6..5faca06a7 100644 --- a/docs/components/google/index.md +++ b/docs/components/google/index.md @@ -3,7 +3,7 @@ * [Cloud Firestore](cloud-firestore.md) * [Firebase Authentication](firebase-authentication.md) * [Firebase Cloud Messaging](firebase-cloud-messaging.md) -* [Firebase Database](firebase-database.md) +* [Firebase Realtime Database](firebase-realtime-database.md) * [Firebase Remote Config](firebase-remote-config.md) * [Firebase Storage](firebase-storage.md) * [Google Account Picker](google-account-picker.md) diff --git a/docs/components/mkdocs.yml b/docs/components/mkdocs.yml index 3f8473f46..150f69c44 100644 --- a/docs/components/mkdocs.yml +++ b/docs/components/mkdocs.yml @@ -1,8 +1,8 @@ - Components: - - Overview: components/index.md + - components/index.md - Screen: components/screen.md - User Interface: - - Overview: components/user-interface/index.md + - components/user-interface/index.md - Button: components/user-interface/button.md - Checkbox: components/user-interface/checkbox.md - Circular Progress: components/user-interface/circular-progress.md @@ -25,9 +25,9 @@ - Text Box: components/user-interface/text-box.md - Time Picker: components/user-interface/time-picker.md - Layout: - - Overview: components/layout/index.md + - components/layout/index.md - General: - - Overview: components/layout/general/index.md + - components/layout/general/index.md - Card View: components/layout/general/card-view.md - Grid View: components/layout/general/grid-view.md - Horizontal Arrangement: components/layout/general/horizontal-arrangement.md @@ -38,11 +38,11 @@ - Vertical Arrangement: components/layout/general/vertical-arrangement.md - Vertical Scroll Arrangement: components/layout/general/vertical-scroll-arrangement.md - Lists: - - Overview: components/layout/lists/index.md + - components/layout/lists/index.md - List View: components/layout/lists/list-view.md - List View Image and Text: components/layout/lists/list-view-image-and-text.md - Views: - - Overview: components/layout/views/index.md + - components/layout/views/index.md - Bottom Sheet: components/layout/views/bottom-sheet.md - Chat View: components/layout/views/chat-view.md - Gallery Viewer: components/layout/views/gallery-viewer.md @@ -50,13 +50,13 @@ - View Flipper: components/layout/views/view-flipper.md - Web Viewer: components/layout/views/web-viewer.md - Navigation: - - Overview: components/layout/navigation/index.md + - components/layout/navigation/index.md - Bottom Navigation: components/layout/navigation/bottom-navigation.md - Side Menu Layout: components/layout/navigation/side-menu-layout.md - Tab Layout: components/layout/navigation/tab-layout.md - View Pager: components/layout/navigation/view-pager.md - Media: - - Overview: components/media/index.md + - components/media/index.md - Audio Picker: components/media/audio-picker.md - Camcorder: components/media/camcorder.md - Camera: components/media/camera.md @@ -73,14 +73,14 @@ - Video Player: components/media/video-player.md - Yandex Translate: components/media/yandex-translate.md - Drawing and Animation: - - Overview: components/drawing-and-animation/index.md + - components/drawing-and-animation/index.md - Ball: components/drawing-and-animation/ball.md - Canvas: components/drawing-and-animation/canvas.md - Image Editor: components/drawing-and-animation/image-editor.md - Image Sprite: components/drawing-and-animation/image-sprite.md - Lottie: components/drawing-and-animation/lottie.md - Maps: - - Overview: components/maps/index.md + - components/maps/index.md - Circle: components/maps/circle.md - Feature Collection: components/maps/feature-collection.md - Line String: components/maps/line-string.md @@ -90,7 +90,7 @@ - Polygon: components/maps/polygon.md - Rectangle: components/maps/rectangle.md - Sensors: - - Overview: components/sensors/index.md + - components/sensors/index.md - Accelerometer Sensor: components/sensors/accelerometer-sensor.md - Barcode Scanner: components/sensors/barcode-scanner.md - Biometric Prompt: components/sensors/biometric-prompt.md @@ -109,7 +109,7 @@ - Sound Sensor: components/sensors/sound-sensor.md - Temperature Sensor: components/sensors/temperature-sensor.md - Social: - - Overview: components/social/index.md + - components/social/index.md - Contact Picker: components/social/contact-picker.md - Email Picker: components/social/email-picker.md - OneSignal InApp Messages: components/social/onesignal-inapp-messages.md @@ -121,7 +121,7 @@ - Texting: components/social/texting.md - Twitter: components/social/twitter.md - Storage: - - Overview: components/storage/index.md + - components/storage/index.md - Cloudinary: components/storage/cloudinary.md - File: components/storage/file.md - Spreadsheet: components/storage/spreadsheet.md @@ -131,7 +131,7 @@ - Tiny DB: components/storage/tiny-db.md - Tiny Web DB: components/storage/tiny-web-db.md - Utilities: - - Overview: components/utilities/index.md + - components/utilities/index.md - Animation Utilities: components/utilities/animation-utilities.md - Audio: components/utilities/audio.md - Battery Utilities: components/utilities/battery-utilities.md @@ -147,7 +147,7 @@ - Shell: components/utilities/shell.md - Wallpaper: components/utilities/wallpaper.md - Dynamic Components: - - Overview: components/dynamic/index.md + - components/dynamic/index.md - Dynamic Button: components/dynamic/dynamic-button.md - Dynamic Card View: components/dynamic/dynamic-card-view.md - Dynamic Image: components/dynamic/dynamic-image.md @@ -155,7 +155,7 @@ - Dynamic Space: components/dynamic/dynamic-space.md - Dynamic Text Box: components/dynamic/dynamic-text-box.md - Connectivity: - - Overview: components/connectivity/index.md + - components/connectivity/index.md - Activity Starter: components/connectivity/activity-starter.md - Arduino: components/connectivity/arduino.md - Bluetooth Admin: components/connectivity/bluetooth-admin.md @@ -168,11 +168,11 @@ - Web: components/connectivity/web.md - WiFi: components/connectivity/wifi.md - Google: - - Overview: components/google/index.md + - components/google/index.md - Cloud Firestore: components/google/cloud-firestore.md - Firebase Authentication: components/google/firebase-authentication.md - Firebase Cloud Messaging: components/google/firebase-cloud-messaging.md - - Firebase Database: components/google/firebase-database.md + - Firebase Realtime Database: components/google/firebase-realtime-database.md - Firebase Remote Config: components/google/firebase-remote-config.md - Firebase Storage: components/google/firebase-storage.md - Google Account Picker: components/google/google-account-picker.md @@ -184,13 +184,13 @@ - Play Integrity: components/google/play-integrity.md - Youtube Player: components/google/youtube-player.md - Monetization: - - Overview: components/monetization/index.md + - components/monetization/index.md - General: - - Overview: components/monetization/general/index.md + - components/monetization/general/index.md - In App Billing: components/monetization/general/in-app-billing.md - Pollfish: components/monetization/general/pollfish.md - Advertising: - - Overview: components/monetization/advertising/index.md + - components/monetization/advertising/index.md - AdColony Interstitial: components/monetization/advertising/adcolony-interstitial.md - Amazon Banner: components/monetization/advertising/amazon-banner.md - Amazon Interstitial: components/monetization/advertising/amazon-interstitial.md @@ -222,9 +222,9 @@ - Unity Interstitial Ad: components/monetization/advertising/unity-interstitial-ad.md - Unity Rewarded Ad: components/monetization/advertising/unity-rewarded-ad.md - LEGO® MINDSTORMS®: - - Overview: components/lego-mindstorms/index.md + - components/lego-mindstorms/index.md - EV3: - - Overview: components/lego-mindstorms/ev3/index.md + - components/lego-mindstorms/ev3/index.md - EV3 Color Sensor: components/lego-mindstorms/ev3/ev3-color-sensor.md - EV3 Commands: components/lego-mindstorms/ev3/ev3-commands.md - EV3 Gyro Sensor: components/lego-mindstorms/ev3/ev3-gyro-sensor.md @@ -234,7 +234,7 @@ - EV3 UI: components/lego-mindstorms/ev3/ev3-ui.md - EV3 Ultrasonic Sensor: components/lego-mindstorms/ev3/ev3-ultrasonic-sensor.md - NXT: - - Overview: components/lego-mindstorms/nxt/index.md + - components/lego-mindstorms/nxt/index.md - NXT Color Sensor: components/lego-mindstorms/nxt/nxt-color-sensor.md - NXT Direct Commands: components/lego-mindstorms/nxt/nxt-direct-commands.md - NXT Drive: components/lego-mindstorms/nxt/nxt-drive.md @@ -243,7 +243,7 @@ - NXT Touch Sensor: components/lego-mindstorms/nxt/nxt-touch-sensor.md - NXT Ultrasonic Sensor: components/lego-mindstorms/nxt/nxt-ultrasonic-sensor.md - Experimental: - - Overview: components/experimental/index.md + - components/experimental/index.md - CloudDB: components/experimental/clouddb.md - Custom Tabs: components/experimental/custom-tabs.md - ExoPlayer: components/experimental/exoplayer.md diff --git a/mkdocs.yml b/mkdocs.yml index 12a48ff32..96ddaf758 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -330,7 +330,7 @@ nav: - Cloud Firestore: components/google/cloud-firestore.md - Firebase Authentication: components/google/firebase-authentication.md - Firebase Cloud Messaging: components/google/firebase-cloud-messaging.md - - Firebase Database: components/google/firebase-database.md + - Firebase Realtime Database: components/google/firebase-realtime-database.md - Firebase Remote Config: components/google/firebase-remote-config.md - Firebase Storage: components/google/firebase-storage.md - Google Account Picker: components/google/google-account-picker.md From 1f5aadc777515ed374342d06e887ef4d431ef7de Mon Sep 17 00:00:00 2001 From: Diego Barreiro Perez Date: Tue, 5 May 2026 23:33:03 +0100 Subject: [PATCH 2/5] Add 2026.05.1 Release Notes --- docs/release-notes/202605.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/docs/release-notes/202605.md b/docs/release-notes/202605.md index 317c108c5..cfac432ae 100644 --- a/docs/release-notes/202605.md +++ b/docs/release-notes/202605.md @@ -1,6 +1,6 @@ # Kodular Creator 2026.05 -## 2026.05 \| _4 May 2026_ +## 2026.05 \| _3 May 2026_ ### Creator Changes @@ -194,3 +194,24 @@ * [Include soft keyboard in inset calculation for Android 15](https://github.com/mit-cml/appinventor-sources/commit/1180a66dde) * Other minor bugs fixed, not impacting built apps. + +## 2026.05.1 \| _4 May 2026_ + +### New Components + +* **Firebase Realtime Database** Google + * New non-visible component on the modern `firebase-database` SDK. Reads the database URL from `google-services.json`; authenticate users via the **Firebase Authentication** component. Block surface mirrors the legacy Firebase Database, with `ProjectPath` replacing the URL/Bucket/Token properties. + +![](https://cdn.community.kodular.io/original/4X/c/1/c/c1c620ebc1a0649312946116f650a63ef64631a8.png){ width="300" } + +### Component Changes + +* Deprecated **Firebase Database** component in favour of the new **Firebase Realtime Database**. + +### Creator Changes + +* **Deprecated Component Visual Feedback** in the Designer. Deprecated components now show a clear warning indicator in the palette and properties pane so it's obvious when a project depends on something scheduled for removal. + +### Component Bug Fixes + +* Fixed **Map** component mock rendering in the Designer. From d2ee93766bf3181dfab9c5b5087da092d2c04dd7 Mon Sep 17 00:00:00 2001 From: Diego Barreiro Perez Date: Tue, 5 May 2026 23:34:17 +0100 Subject: [PATCH 3/5] Remove Deprecated Component --- docs/components/google/firebase-database.md | 198 -------------------- 1 file changed, 198 deletions(-) delete mode 100644 docs/components/google/firebase-database.md diff --git a/docs/components/google/firebase-database.md b/docs/components/google/firebase-database.md deleted file mode 100644 index abab04814..000000000 --- a/docs/components/google/firebase-database.md +++ /dev/null @@ -1,198 +0,0 @@ -# Firebase Database - -{>> Non-Visible component<<} - -| Category | Requires | Version | -|:--------:|:-------:|:--------:| -|**Google**|API 21, Android 5.0 Lollipop|4| - -## Overview - -Non-visible component that communicates with a Firebase to store and retrieve information. - -??? example "Permissions" - * [android.permission.INTERNET](https://developer.android.com/reference/android/Manifest.permission.html#INTERNET) - -## Events - -### Data Changed - -Indicates that the data in the Firebase has changed -Launches an event with the tag and value that have been updated. - -
- -| Params | []() | -|--------|------| -|tag|Text| -|value|Any| - -### Firebase Error - -Indicates that the communication with the Firebase signaled an error. - -
- -| Params | []() | -|--------|------| -|message|Text| - -### First Removed - -Event triggered by the "RemoveFirst" function. The argument "value" is the object that was the first in the list, and which is now removed. - -
- -| Params | []() | -|--------|------| -|value|Any| - -### Got Value - -Indicates that a GetValue request has succeeded. - -
- -| Params | []() | -|--------|------| -|tag|Text| -|value|Any| - -### Tag List - -Event triggered when we have received the list of known tags. Used with the "GetTagList" Function. - -
- -| Params | []() | -|--------|------| -|value|List| - -## Methods - -### Append Value - -Append a value to the end of a list atomically. If two devices use this function simultaneously, both will be appended and no data lost. - -
- -| Params | []() | -|--------|------| -|tag|Text| -|value To Add|Any| - -### Clear Tag - -Remove the tag from Firebase - -
- -| Params | []() | -|--------|------| -|tag|Text| - -### Get Tag List - -Get the list of tags for this application. When complete a "TagList" event will be triggered with the list of known tags. - -
- -### Get Value - -GetValue asks Firebase to get the value stored under the given tag -It will pass valueIfTagNotThere to GotValue if there is no value storedunder the tag. - -
- -| Params | []() | -|--------|------| -|tag|Text| -|value If Tag Not There|Any| - -### Go Offline - -Take the database offline - -
- -### Go Online - -Take the database online - -
- -### Remove First - -Return the first element of a list and atomically remove it. If two devices use this function simultaneously, one will get the first element and the the other will get the second element, or an error if there is no available element. When the element is available, the "FirstRemoved" event will be triggered. - -
- -| Params | []() | -|--------|------| -|tag|Text| - -### Store Value - -Asks Firebase to store the given value under the given tag. - -
- -| Params | []() | -|--------|------| -|tag|Text| -|value To Store|Any| - -### Unauthenticate - -If you are having difficulty with the Companion and you are switching between different Firebase accounts, you may need to use this function to clear internal Firebase caches. You can just use the "Do It" function on this block in the blocks editor. Note: You should not normally need to use this block as part of an application. - -
- -## Properties - -### Default URL - -Text :heavy_minus_sign: Write - Designer - -Property for DefaultURL - -### Developer Bucket - -Text :heavy_minus_sign: Write - Designer - -Getter for the DeveloperBucket. - -### Firebase Token - -Text :heavy_minus_sign: Read Write - Designer Blocks - -Returns the FirebaseToken from this FirebaseDB. - -
-
- -### Firebase URL - -Text Default: DEFAULT :heavy_minus_sign: Read Write - Designer Blocks - -Gets the URL for this FirebaseDB. - -
-
- -### Persist - -Boolean Default: False :heavy_minus_sign: Write - Designer - -If true, variables will retain their values when off-line and the App exits. Values will be uploaded to Firebase the next time the App is run while connected to the network. This is useful for applications which will gather data while not connected to the network. Note: AppendValue and RemoveFirst will not work correctly when off-line, they require a network connection. - - _Note_: If you set Persist on any Firebase component, on any screen, it makes all Firebase components on all screens persistent. This is a limitation of the low level Firebase library. Also be aware that if you want to set persist to true, you should do so before connecting the Companion for incremental development. - -### Project Bucket - -Text :heavy_minus_sign: Read Write - Designer Blocks - -Gets the ProjectBucket for this FirebaseDB. - -
-
From a23d3e87326a0c3962bf6fa3863d920411a85e7b Mon Sep 17 00:00:00 2001 From: Diego Barreiro Perez Date: Tue, 5 May 2026 23:42:52 +0100 Subject: [PATCH 4/5] Add Migration Guide --- .../firebase-database-migration.md | 92 +++++++++++++++++++ docs/release-notes/202605.md | 2 +- mkdocs.yml | 1 + 3 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 docs/guides/component-examples/firebase-database-migration.md diff --git a/docs/guides/component-examples/firebase-database-migration.md b/docs/guides/component-examples/firebase-database-migration.md new file mode 100644 index 000000000..567ff1fc3 --- /dev/null +++ b/docs/guides/component-examples/firebase-database-migration.md @@ -0,0 +1,92 @@ +# Migrating from Firebase Database to Firebase Realtime Database + +## Overview + +The legacy **Firebase Database** component was built on a Firebase Java SDK from 2015 that has since been deprecated by Google. As of Kodular Creator 2026.05.1, that component is marked deprecated and a new **Firebase Realtime Database** component takes its place. + +!!! danger "You must migrate to build APKs" + Projects that still contain the deprecated **Firebase Database** component **fail to build**. Existing projects keep loading in the Designer so you can migrate, but you will not be able to produce an APK or AAB until every screen has been switched over to **Firebase Realtime Database** and the legacy component has been removed from the project. + +## Why migrate + +* **New Firebase projects don't expose database secrets.** Firebase projects created after Google's legacy auth cutoff cannot mint the legacy HS256 tokens that the old component relies on. The new component uses Firebase Authentication instead, which works on every Firebase project regardless of age. +* **Active maintenance.** The new component is built on the modern `firebase-database` SDK, which Google still ships updates for. +* **Stability.** A long-standing crash inside the old SDK (a `NullPointerException` thrown when the WebSocket handshake comes back malformed) does not affect the new component. + +## Before you migrate + +You will need: + +1. A Firebase project with Realtime Database enabled in the [Firebase Console](https://console.firebase.google.com/){:target="_blank"}. +2. The `google-services.json` file for that project, downloaded from **Project settings → General → Your apps → Android app**. +3. The **Firebase Authentication** component already added to your project, if your database rules require authenticated reads/writes. + +!!! info "Where do I put `google-services.json`?" + Upload it as a regular project asset from the **Media** section of the Designer. The build server reads it at compile time and wires it into the APK automatically. + +## Block mapping + +The new component keeps the same block names for everything you actually use to read and write data, so most of your block tree migrates verbatim. + +| Old (`Firebase Database`) | New (`Firebase Realtime Database`) | Notes | +|---|---|---| +| `Store Value` | `Store Value` | Identical | +| `Get Value` | `Get Value` | Identical | +| `Clear Tag` | `Clear Tag` | Identical | +| `Append Value` | `Append Value` | Identical | +| `Remove First` | `Remove First` | Identical | +| `Get Tag List` | `Get Tag List` | Identical | +| `Go Online` / `Go Offline` | `Go Online` / `Go Offline` | Identical | +| `Data Changed` event | `Data Changed` event | Identical | +| `Got Value` event | `Got Value` event | Identical | +| `Firebase Error` event | `Firebase Error` event | Identical | +| `Tag List` event | `Tag List` event | Identical | +| `First Removed` event | `First Removed` event | Identical | +| `Persist` property | `Persist` property | Designer-only on the new component; runtime changes via blocks are not supported | +| `Firebase URL` | _removed_ | The URL comes from `google-services.json` | +| `Default URL` | _removed_ | Same | +| `Developer Bucket` | _removed_ | Replaced by `Project Path` | +| `Project Bucket` | _removed_ | Replaced by `Project Path` | +| `Firebase Token` | _removed_ | Authenticate via the **Firebase Authentication** component | +| `Unauthenticate` | _removed_ | Sign users out from **Firebase Authentication** instead | +| _new_ | `Project Path` property | Optional root prefix prepended to every `tag` argument | + +If your old project relied on `Project Bucket = "users"` and called `Store Value tag = "alice"`, the new equivalent is `Project Path = "users"` and `Store Value tag = "alice"`. + +## Authentication + +The old component embedded a Firebase auth token directly in the project. The new component delegates authentication to **Firebase Authentication**, which means you authenticate once with whichever sign-in flow you prefer (email/password, Google, phone, etc.) and the database component picks up the signed-in user automatically. + +Typical pattern: + +1. Add **Firebase Authentication** alongside **Firebase Realtime Database**. +2. On `Screen.Initialize`, check if a user is already signed in via `Get Current User`. +3. If not, run your sign-in flow (`Login With Email`, `Sign In With Google`, etc.). +4. After `Login Success`, perform your **Firebase Realtime Database** reads and writes — the database respects the authenticated user. + +!!! caution "Update your security rules" + If you switched from the legacy custom-token auth to Firebase Authentication, your database rules need to expect `auth.uid` rather than custom claims minted by Kodular. See the [Firebase Rules guide](firebase-rules.md) for example rules. + +## Migrating an existing project + +A safe, incremental approach: + +1. **Add the new component to a single screen first.** Keep the old component on every other screen so the rest of the app keeps working while you experiment. +2. **Re-create the blocks** on that screen using the new component. The block names are the same, so this is mostly drag-and-drop. +3. **Map the old `Project Bucket`** value to the new `Project Path` property, and remove `Firebase URL` / `Firebase Token` references — those properties don't exist on the new component. +4. **Test on a device.** Confirm reads, writes, and `Data Changed` events all work as expected. +5. **Repeat for the remaining screens.** When all screens are migrated, you can delete the old **Firebase Database** component from your project. + +!!! tip "Live-test both components side by side via the Companion" + During the migration you can drop both **Firebase Database** and **Firebase Realtime Database** onto the same screen and exercise them via the Companion. The Companion live-testing path runs both happily — only the APK/AAB build is blocked while the deprecated component is still present. + +!!! warning "APK build with `Firebase Realtime Database` requires `google-services.json`" + As soon as **Firebase Realtime Database** is in the project, the build server requires a `google-services.json` asset. If it's missing, the build fails with `google-services.json file not found in assets directory`. Upload it before building. + +## Rolling back + +If you hit a problem with the new component during migration, you can revert the affected screen to use the old component again — but remember that as long as **Firebase Database** is still in the project, you will not be able to build an APK or AAB. Use the Companion for live testing while you sort it out, then complete the migration before shipping. + +## When to remove the old component + +The old **Firebase Database** component is deprecated. It still loads in the Designer and runs in the Companion so you can migrate without losing block context, but **APK and AAB builds will fail while it is present**. Remove it from your project as soon as every screen has been migrated. diff --git a/docs/release-notes/202605.md b/docs/release-notes/202605.md index cfac432ae..275c107d9 100644 --- a/docs/release-notes/202605.md +++ b/docs/release-notes/202605.md @@ -206,7 +206,7 @@ ### Component Changes -* Deprecated **Firebase Database** component in favour of the new **Firebase Realtime Database**. +* Deprecated **Firebase Database** component in favour of the new **Firebase Realtime Database**. Projects still containing the deprecated component will fail to build until it is removed; existing projects continue to load in the Designer so you can migrate. See the [migration guide](../guides/component-examples/firebase-database-migration.md). ### Creator Changes diff --git a/mkdocs.yml b/mkdocs.yml index 96ddaf758..3a1a6262f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -147,6 +147,7 @@ nav: - Using Dynamic Cards: guides/component-examples/dynamic-cards.md - Staged App Updates: guides/component-examples/remote-config.md - Firebase Rules: guides/component-examples/firebase-rules.md + - Migrating to Firebase Realtime Database: guides/component-examples/firebase-database-migration.md - Securing Firebase: guides/component-examples/securing-app.md - Targeting Notifications: guides/component-examples/targeted-notifications.md - Surveys with Pollfish: guides/component-examples/pollfish.md From 0d728445ad406b2071d5610b4a6cee14fa033a03 Mon Sep 17 00:00:00 2001 From: Diego Barreiro Perez Date: Tue, 5 May 2026 23:44:09 +0100 Subject: [PATCH 5/5] Add Deprecated Components --- docs/components/deprecated/chameleon-ad.md | 91 ++++++ docs/components/deprecated/fingerprint.md | 121 +++++++ .../deprecated/firebase-database.md | 201 ++++++++++++ docs/components/deprecated/floating-button.md | 110 +++++++ .../deprecated/fusiontables-control.md | 184 +++++++++++ .../components/deprecated/google-shortlink.md | 70 ++++ .../deprecated/googlespreadsheet.md | 110 +++++++ docs/components/deprecated/instant-access.md | 95 ++++++ docs/components/deprecated/json.md | 298 +++++++++++++++++ .../deprecated/kodular-donations.md | 14 + docs/components/deprecated/memory-info.md | 88 +++++ docs/components/deprecated/networkmanager.md | 93 ++++++ docs/components/deprecated/notification.md | 183 +++++++++++ .../deprecated/password-text-box.md | 301 ++++++++++++++++++ .../deprecated/push-notifications.md | 245 ++++++++++++++ .../components/deprecated/unity-ads-banner.md | 72 +++++ .../deprecated/unity-ads-interstitial.md | 98 ++++++ docs/components/deprecated/whitemobi.md | 49 +++ 18 files changed, 2423 insertions(+) create mode 100644 docs/components/deprecated/chameleon-ad.md create mode 100644 docs/components/deprecated/fingerprint.md create mode 100644 docs/components/deprecated/firebase-database.md create mode 100644 docs/components/deprecated/floating-button.md create mode 100644 docs/components/deprecated/fusiontables-control.md create mode 100644 docs/components/deprecated/google-shortlink.md create mode 100644 docs/components/deprecated/googlespreadsheet.md create mode 100644 docs/components/deprecated/instant-access.md create mode 100644 docs/components/deprecated/json.md create mode 100644 docs/components/deprecated/kodular-donations.md create mode 100644 docs/components/deprecated/memory-info.md create mode 100644 docs/components/deprecated/networkmanager.md create mode 100644 docs/components/deprecated/notification.md create mode 100644 docs/components/deprecated/password-text-box.md create mode 100644 docs/components/deprecated/push-notifications.md create mode 100644 docs/components/deprecated/unity-ads-banner.md create mode 100644 docs/components/deprecated/unity-ads-interstitial.md create mode 100644 docs/components/deprecated/whitemobi.md diff --git a/docs/components/deprecated/chameleon-ad.md b/docs/components/deprecated/chameleon-ad.md new file mode 100644 index 000000000..cf501f9ac --- /dev/null +++ b/docs/components/deprecated/chameleon-ad.md @@ -0,0 +1,91 @@ +# Chameleon Ad + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|1| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +A non-visible component to show interstitial ads form the Chameleon Ads Network. + +## Events + +### Ad Closed + +Event triggered when ads are closed. + +
+ +### Ad Failed To Load + +Event triggered when ads failed to load. Here is the list with all possible error codes (int) and error messages (string): '1' = The before loaded ad was not finished. It is not allowed to load a new one. The first must be in finished loading process. '2' = Ad failed to load. No internet connection available. '3' = Please enter a valid chameleon 'App ID'. '4' = Please enter a valid chameleon 'User ID'. '5' = UNKNOWN_WEB_VIEW_ERROR. '6' = There was an error validating the SSL Certificate. + +
+ +| Params | []() | +|--------|------| +|error Message|Text| +|error Code|Number| + +### Ad Failed To Show + +Event triggered when ads failed to show. Here is the list with all possible error codes (int) and error messages (string): '1' = UNKNOWN_ERROR_ON_SHOW_AD. '2' = The ad must first be loaded. After loading finished the ad can be shown. + +
+ +| Params | []() | +|--------|------| +|error Message|Text| +|error Code|Number| + +### Ad Loaded + +Event triggered when ads are loaded. + +
+ +## Methods + +### Load Ad + +Load a new interstitial chameleon ad. + +
+ +### Show Ad + +Show a chameleon interstitial ad after it was loaded. + +
+ +## Properties + +### App ID + +Text :heavy_minus_sign: Write - Designer Blocks + +Input here your own Chameleon Ad 'App ID' (request one at my.kodular.io). + +
+ +### Test Mode + +Boolean Default: False :heavy_minus_sign: Read Write - Designer Blocks + +If set to true, the device will receive test ads. This option must be set before you load a new ad. + +
+
+ +### User ID + +Text :heavy_minus_sign: Write - Designer Blocks + +Input here your own Chameleon Ad 'User ID' (get yours at my.kodular.io). + +
diff --git a/docs/components/deprecated/fingerprint.md b/docs/components/deprecated/fingerprint.md new file mode 100644 index 000000000..5d8031e98 --- /dev/null +++ b/docs/components/deprecated/fingerprint.md @@ -0,0 +1,121 @@ +# Fingerprint + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|1| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +A non-visible component that reads fingerprints using the device''s in-built fingerprint scanner. + +??? example "Permissions" + * [android.permission.USE_FINGERPRINT](https://developer.android.com/reference/android/Manifest.permission.html#USE_FINGERPRINT) + +## Events + +### On Authentication Error + +Triggers when there is a Authentication Error + +
+ +| Params | []() | +|--------|------| +|error Id|Number| +|message|Text| + +### On Authentication Failed + +Triggers when the Authentication Failed + +
+ +### On Authentication Help + +Triggers when there is a Authentication Help + +
+ +| Params | []() | +|--------|------| +|help Id|Number| +|message|Text| + +### On Authentication Succeeded + +Trigger when the Authentication Succeeded + +
+ +## Methods + +### Authenticate + +Authenticate the user with a Fingerprint scanner + +
+ +### Cancel Scan + +Cancel the current Fingerprint Scan + +
+ +### Has Fingerprint Scanner + +Returns: Boolean + +True if hardware is present and functional, false otherwise + +
+ +### Has Fingers Added + +Returns: Boolean + +True if at least one fingerprint is enrolled, false otherwise + +
+ +## Properties + +### Dialog Help Text + +Text Default: Scan your finger :heavy_minus_sign: Read Write - Designer Blocks + +Sets the dialog help text + +
+
+ +### Dialog Title + +Text Default: Sign in with your fingerprint :heavy_minus_sign: Read Write - Designer Blocks + +Sets the dialog title + +
+
+ +### Light Theme + +Boolean Default: False :heavy_minus_sign: Read Write - Designer Blocks + +Sets the current theme + +
+
+ +### Use Dialog + +Boolean Default: True :heavy_minus_sign: Read Write - Designer Blocks + +Whether to use a dialog + +
+
diff --git a/docs/components/deprecated/firebase-database.md b/docs/components/deprecated/firebase-database.md new file mode 100644 index 000000000..c0c520378 --- /dev/null +++ b/docs/components/deprecated/firebase-database.md @@ -0,0 +1,201 @@ +# Firebase Database + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|5| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +Non-visible component that communicates with a Firebase to store and retrieve information. + +??? example "Permissions" + * [android.permission.INTERNET](https://developer.android.com/reference/android/Manifest.permission.html#INTERNET) + +## Events + +### Data Changed + +Indicates that the data in the Firebase has changed +Launches an event with the tag and value that have been updated. + +
+ +| Params | []() | +|--------|------| +|tag|Text| +|value|Any| + +### Firebase Error + +Indicates that the communication with the Firebase signaled an error. + +
+ +| Params | []() | +|--------|------| +|message|Text| + +### First Removed + +Event triggered by the "RemoveFirst" function. The argument "value" is the object that was the first in the list, and which is now removed. + +
+ +| Params | []() | +|--------|------| +|value|Any| + +### Got Value + +Indicates that a GetValue request has succeeded. + +
+ +| Params | []() | +|--------|------| +|tag|Text| +|value|Any| + +### Tag List + +Event triggered when we have received the list of known tags. Used with the "GetTagList" Function. + +
+ +| Params | []() | +|--------|------| +|value|List| + +## Methods + +### Append Value + +Append a value to the end of a list atomically. If two devices use this function simultaneously, both will be appended and no data lost. + +
+ +| Params | []() | +|--------|------| +|tag|Text| +|value To Add|Any| + +### Clear Tag + +Remove the tag from Firebase + +
+ +| Params | []() | +|--------|------| +|tag|Text| + +### Get Tag List + +Get the list of tags for this application. When complete a "TagList" event will be triggered with the list of known tags. + +
+ +### Get Value + +GetValue asks Firebase to get the value stored under the given tag +It will pass valueIfTagNotThere to GotValue if there is no value storedunder the tag. + +
+ +| Params | []() | +|--------|------| +|tag|Text| +|value If Tag Not There|Any| + +### Go Offline + +Take the database offline + +
+ +### Go Online + +Take the database online + +
+ +### Remove First + +Return the first element of a list and atomically remove it. If two devices use this function simultaneously, one will get the first element and the the other will get the second element, or an error if there is no available element. When the element is available, the "FirstRemoved" event will be triggered. + +
+ +| Params | []() | +|--------|------| +|tag|Text| + +### Store Value + +Asks Firebase to store the given value under the given tag. + +
+ +| Params | []() | +|--------|------| +|tag|Text| +|value To Store|Any| + +### Unauthenticate + +If you are having difficulty with the Companion and you are switching between different Firebase accounts, you may need to use this function to clear internal Firebase caches. You can just use the "Do It" function on this block in the blocks editor. Note: You should not normally need to use this block as part of an application. + +
+ +## Properties + +### Default URL + +Text :heavy_minus_sign: Write - Designer + +Property for DefaultURL + +### Developer Bucket + +Text :heavy_minus_sign: Write - Designer + +Getter for the DeveloperBucket. + +### Firebase Token + +Text :heavy_minus_sign: Read Write - Designer Blocks + +Returns the FirebaseToken from this FirebaseDB. + +
+
+ +### Firebase URL + +Text Default: DEFAULT :heavy_minus_sign: Read Write - Designer Blocks + +Gets the URL for this FirebaseDB. + +
+
+ +### Persist + +Boolean Default: False :heavy_minus_sign: Write - Designer + +If true, variables will retain their values when off-line and the App exits. Values will be uploaded to Firebase the next time the App is run while connected to the network. This is useful for applications which will gather data while not connected to the network. Note: AppendValue and RemoveFirst will not work correctly when off-line, they require a network connection. + + _Note_: If you set Persist on any Firebase component, on any screen, it makes all Firebase components on all screens persistent. This is a limitation of the low level Firebase library. Also be aware that if you want to set persist to true, you should do so before connecting the Companion for incremental development. + +### Project Bucket + +Text :heavy_minus_sign: Read Write - Designer Blocks + +Gets the ProjectBucket for this FirebaseDB. + +
+
diff --git a/docs/components/deprecated/floating-button.md b/docs/components/deprecated/floating-button.md new file mode 100644 index 000000000..c8a56f036 --- /dev/null +++ b/docs/components/deprecated/floating-button.md @@ -0,0 +1,110 @@ +# Floating Button + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|1| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +Floating Button Component to make a Floating Action Button on the right bottom of the screen + +## Events + +### Click + +FAB Clicked + +
+ +### Long Click + +FAB Long Clicked + +
+ +## Methods + +### Create + +Create FAB + +
+ +## Properties + +### Color + +Color Default: #00000000  :heavy_minus_sign: Read Write - Designer Blocks + +Returns Color + +
+
+ +### Icon + +Text :heavy_minus_sign: Read Write - Designer Blocks + +Returns Icon Path + +
+
+ +### Is Created + +Boolean :heavy_minus_sign: Read - Blocks + +Is FAB created? + +
+ +### Margin Bottom + +Number Default: 8 :heavy_minus_sign: Read Write - Designer Blocks + +Set Bottom Margin in dp, Default = 16 + +
+
+ +### Margin Right + +Number Default: 8 :heavy_minus_sign: Read Write - Designer Blocks + +Set Right Margin in dp, Default = 16 + +
+
+ +### Size + +Number Default: 1 :heavy_minus_sign: Read Write - Designer Blocks + +Set FAB Size +Set it to 1 for Normal size, 2 for Mini. + +
+
+ +### Use Animation + +Boolean Default: True :heavy_minus_sign: Read Write - Designer Blocks + +Are animations on? + +
+
+ +### Visible + +Boolean Default: True :heavy_minus_sign: Read Write - Designer Blocks + +Is FAB visible? + +
+
diff --git a/docs/components/deprecated/fusiontables-control.md b/docs/components/deprecated/fusiontables-control.md new file mode 100644 index 000000000..a963eba47 --- /dev/null +++ b/docs/components/deprecated/fusiontables-control.md @@ -0,0 +1,184 @@ +# Fusiontables Control + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|4| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +A non-visible component that communicates with Google Fusion Tables. Fusion Tables let you store, share, query and visualize data tables; this component lets you query, create, and modify these tables. + + + +This component uses the Fusion Tables API V2.0. + +Applications using Fusion Tables must authentication to Google's servers. There are two ways this can be done. The first way uses an API Key which you the developer obtain (see below). With this approach end-users must also login to access a Fusion Table. The second approach is to use a Service Account. With this approach you create credentials and a special "Service Account Email Address" which you obtain from the Google APIs Console. You then tell the Fusion Table Control the name of the Service Account Email address and upload the secret key as an asset to your application and set the KeyFile property to point at this file. Finally you check the "UseServiceAuthentication" checkbox in the designer. When using a Service Account, end-users do not need to login to use Fusion Tables, your service account authenticates all access. + + + +To get an API key, follow these instructions. + + + +1. Go to your Google APIs Console and login if necessary. +2. Select the _Services_ item from the menu on the left. +3. Choose the _Fusiontables_ service from the list provided and turn it on. +4. Go back to the main menu and select the _API Access_ item. + +Your API Key will be near the bottom of that pane in the section called "Simple API Access".You will have to provide that key as the value for the _ApiKey_ property in your Fusiontables app. + +Once you have an API key, set the value of the _Query_ property to a valid Fusiontables SQL query and call _SendQuery_ to execute the query. App Inventor will send the query to the Fusion Tables server and the _GotResult_ block will fire when a result is returned from the server.Query results will be returned in CSV format, and can be converted to list format using the "list from csv table" or "list from csv row" blocks. + +Note that you do not need to worry about UTF-encoding the query. But you do need to make sure the query follows the syntax described in the reference manual, which means that things like capitalization for names of columns matters, and that single quotes must be used around column names if there are spaces in them. + +??? example "Permissions" + * [android.permission.GET_ACCOUNTS](https://developer.android.com/reference/android/Manifest.permission.html#GET_ACCOUNTS) + * [android.permission.INTERNET](https://developer.android.com/reference/android/Manifest.permission.html#INTERNET) + * [android.permission.USE_CREDENTIALS](https://developer.android.com/reference/android/Manifest.permission.html#USE_CREDENTIALS) + * [android.permission.ACCOUNT_MANAGER](https://developer.android.com/reference/android/Manifest.permission.html#ACCOUNT_MANAGER) + * [android.permission.MANAGE_ACCOUNTS](https://developer.android.com/reference/android/Manifest.permission.html#MANAGE_ACCOUNTS) + +## Events + +### Got Result + +Indicates that the Fusion Tables query has finished processing, with a result. The result of the query will generally be returned in CSV format, and can be converted to list format using the "list from csv table" or "list from csv row" blocks. + +
+ +| Params | []() | +|--------|------| +|result|Text| + +## Methods + +### Do Query + +:warning: ==**Deprecated**== + +DEPRECATED. This block is deprecated as of the end of 2012. Use SendQuery. + +
+ +### Forget Login + +Forget end-users login credentials. Has no effect on service authentication + +
+ +### Get Rows + +Gets all the rows from a specified fusion table. The tableId field is the id of therequired fusion table. The columns field is a comma-separeted list of the columns to retrieve. + +
+ +| Params | []() | +|--------|------| +|table ID|Text| +|columns|Text| + +### Get Rows With Conditions + +Gets all the rows from a fusion table that meet certain conditions. The tableId field isthe id of the required fusion table. The columns field is a comma-separated list of the columns toretrieve. The conditions field specifies what rows to retrieve from the table, for example the rows in whicha particular column value is not null. + +
+ +| Params | []() | +|--------|------| +|table ID|Text| +|columns|Text| +|conditions|Text| + +### Insert Row + +Inserts a row into the specified fusion table. The tableId field is the id of thefusion table. The columns is a comma-separated list of the columns to insert values into. The values field specifies what values to insert into each column. + +
+ +| Params | []() | +|--------|------| +|table ID|Text| +|columns|Text| +|values|Text| + +### Send Query + +Send the query to the Fusiontables server. + +
+ +## Properties + +### API Key + +Text :heavy_minus_sign: Read Write - Designer Blocks + +Setter for the app developer's API key. + +
+
+ +### Key File + +Text :heavy_minus_sign: Read Write - Designer Blocks + +Specifies the path of the private key file. This key file is used to get access to the FusionTables API. + +
+
+ +### Loading Dialog Message + +Text Default: Please wait loading... :heavy_minus_sign: Read Write - Designer Blocks + +Setter for the loading dialog's message. + +
+
+ +### Query + +Text Default: show tables :heavy_minus_sign: Read Write - Designer Blocks + +The query to send to the Fusion Tables API. + +For legal query formats and examples, see the Fusion Tables API v2.0 reference manual. + + + +Note that you do not need to worry about UTF-encoding the query. But you do need to make sure it follows the syntax described in the reference manual, which means that things like capitalization for names of columns matters, and that single quotes need to be used around column names if there are spaces in them. + +
+
+ +### Service Account Email + +Text :heavy_minus_sign: Read Write - Designer Blocks + +The Service Account Email Address when service account authentication is in use. + +
+
+ +### Show Loading Dialog + +Boolean Default: True :heavy_minus_sign: Read Write - Designer Blocks + +Setter for the loading dialog's visibility. + +
+
+ +### Use Service Authentication + +Boolean Default: False :heavy_minus_sign: Read Write - Designer Blocks + +Indicates whether a service account should be used for authentication + +
+
diff --git a/docs/components/deprecated/google-shortlink.md b/docs/components/deprecated/google-shortlink.md new file mode 100644 index 000000000..6a5acd24e --- /dev/null +++ b/docs/components/deprecated/google-shortlink.md @@ -0,0 +1,70 @@ +# Google Shortlink + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|1| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +A component to create Short links with the Google API + +??? example "Permissions" + * [android.permission.INTERNET](https://developer.android.com/reference/android/Manifest.permission.html#INTERNET) + +## Events + +### Got Response + +Event to detect when a link was converted. + +
+ +| Params | []() | +|--------|------| +|success|Boolean| +|response Content|Text| + +## Methods + +### Short To URL + +Convert a short link from google into a normal link. Powerd by Google. + +
+ +| Params | []() | +|--------|------| +|url|Text| + +### URL To Short + +Convert a link into a short link. Powerd by Google. + +
+ +| Params | []() | +|--------|------| +|url|Text| + +## Properties + +### API Key + +Text :heavy_minus_sign: Write - Designer Blocks + +Set here your api key to use the service. How to get a api key? Read here more: "https://goo.gl/AFks2R" + +
+ +### Default API Key + +Text :heavy_minus_sign: Read - Blocks + +Don't use this default api key for your final app's. This default api key is only for development mode. Sponsored by NMD (Next Mobile Development). + +
diff --git a/docs/components/deprecated/googlespreadsheet.md b/docs/components/deprecated/googlespreadsheet.md new file mode 100644 index 000000000..e9546bb6f --- /dev/null +++ b/docs/components/deprecated/googlespreadsheet.md @@ -0,0 +1,110 @@ +# GoogleSpreadsheet + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|1| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +This is a component that allows you to read your Google Spreadsheet data using CloudStitch. + +CloudStitch allows you to setup a project, that links to your Google Spreadsheet. + +This component allows you to easily read / insert Spreadsheet data + +??? example "Permissions" + * [android.permission.INTERNET](https://developer.android.com/reference/android/Manifest.permission.html#INTERNET) + +## Events + +### after Action + +Triggered after an actions such as storing data has occurred. + +
+ +| Params | []() | +|--------|------| +|was Success|Boolean| +|message|Text| +|action|Text| + +## Methods + +### Get Cell Data + +Returns: Text + +For the given columnName and rowNumber, retrieves the spreadsheet cell data + +
+ +| Params | []() | +|--------|------| +|column Name|Text| +|row Number|Number| + +### Get Column Data + +Returns: List + +Retrieves all data for an entire column + +
+ +| Params | []() | +|--------|------| +|column Name|Text| + +### Get Row Data + +Returns: List + +Retrieves data for a specific row number + +
+ +| Params | []() | +|--------|------| +|row Number|Number| + +### Get Spreadsheet Data + +For the given ApiEndpoint and Spreadsheet, retrieves all data from the spreadsheet. + +
+ +### Store Data + +Stores data into spreadsheet. dataToStore must be in json format. Will trigger AfterAction + +
+ +| Params | []() | +|--------|------| +|data To Store|Text| + +## Properties + +### ApiEndpoint + +Text Default: Enter the Cloudstitch API Endpoint :heavy_minus_sign: Read Write - Designer Blocks + +The Cloudstitch API endpoint. + +
+
+ +### Sheet Name + +Text Default: Enter Spreadsheet name :heavy_minus_sign: Read Write - Designer Blocks + +The Google spreadsheet name + +
+
diff --git a/docs/components/deprecated/instant-access.md b/docs/components/deprecated/instant-access.md new file mode 100644 index 000000000..21ebfb1b4 --- /dev/null +++ b/docs/components/deprecated/instant-access.md @@ -0,0 +1,95 @@ +# Instant Access + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|1| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +A non-visible component that allows user to connect with the service from 'Instant Access.io' + +??? example "Permissions" + * [android.permission.INTERNET](https://developer.android.com/reference/android/Manifest.permission.html#INTERNET) + +## Events + +### On Request Sent + +A event to detect that the login request was sent. + +
+ +| Params | []() | +|--------|------| +|success|Boolean| +|data|Text| +|message|Text| + +### On Status Received + +A event to detect that the status was received. + +
+ +| Params | []() | +|--------|------| +|success|Boolean| +|data|Text| +|message|Text| + +## Methods + +### Check Status + +Check the current status with a given username. + +
+ +| Params | []() | +|--------|------| +|user|Text| + +### Client ID + +Returns: Text + +Returns the client id. + +
+ +### Client Secret + +Returns: Text + +Returns the client secret. + +
+ +### Request + +Start a request to user with the instant access login service. + +
+ +| Params | []() | +|--------|------| +|user|Text| + +## Properties + +### Client ID + +Text :heavy_minus_sign: Write - Designer + +Property for ClientID + +### Client Secret + +Text :heavy_minus_sign: Write - Designer + +Property for ClientSecret diff --git a/docs/components/deprecated/json.md b/docs/components/deprecated/json.md new file mode 100644 index 000000000..0cca41cf2 --- /dev/null +++ b/docs/components/deprecated/json.md @@ -0,0 +1,298 @@ +# JSON + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|1| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +A non-visible component that parses and handles data encoded as JSON. + +## Events + +### Error Occurred + +Triggers when there is a JSON error. + +
+ +| Params | []() | +|--------|------| +|function Name|Text| +|error Message|Text| + +## Methods + +### Add Boolean To JSONArray + +Returns: Text + +Add True or False to a JSON Array. + +
+ +| Params | []() | +|--------|------| +|jsonArray|Text| +|true Or false|Boolean| +|default Value|Text| + +### Add Boolean To JSONObject + +Returns: Text + +Add True or False to a JSON Object. + +
+ +| Params | []() | +|--------|------| +|jsonObject|Text| +|true Or false|Boolean| +|name|Text| +|default Value|Text| + +### Add JSONArray To JSONArray + +Returns: Text + +Add a JSON Array to a JSON Array. + +
+ +| Params | []() | +|--------|------| +|jsonArray|Text| +|new JSONArray|Text| +|default Value|Text| + +### Add JSONObject To JSONArray + +Returns: Text + +Add a JSON Object to a JSON Array. + +
+ +| Params | []() | +|--------|------| +|jsonArray|Text| +|jsonObject|Text| +|default Value|Text| + +### Add JSONObject To JSONObject + +Returns: Text + +Add a JSON Object to a JSON Object. + +
+ +| Params | []() | +|--------|------| +|jsonObject|Text| +|new JSONObject|Text| +|name|Text| +|default Value|Text| + +### Add Number To JSONArray + +Returns: Text + +Add a Number to a JSON Array. + +
+ +| Params | []() | +|--------|------| +|jsonArray|Text| +|number|Number| +|default Value|Text| + +### Add Number To JSONObject + +Returns: Text + +Add a Number to a JSON Object. + +
+ +| Params | []() | +|--------|------| +|jsonObject|Text| +|number|Number| +|name|Text| +|default Value|Text| + +### Add Text To JSONArray + +Returns: Text + +Add Text to a JSON Array. + +
+ +| Params | []() | +|--------|------| +|jsonArray|Text| +|text|Text| +|default Value|Text| + +### Add Text To JSONObject + +Returns: Text + +Add Text to a JSON Object. + +
+ +| Params | []() | +|--------|------| +|jsonObject|Text| +|text|Text| +|name|Text| +|default Value|Text| + +### Get Boolean From JSONArray + +Returns: Boolean + +Get a True or False from a JSON Array. + +
+ +| Params | []() | +|--------|------| +|jsonArray|Text| +|index|Number| +|default Value|Boolean| + +### Get Boolean From JSONObject + +Returns: Boolean + +Get a true or false value from a JSON Object. + +
+ +| Params | []() | +|--------|------| +|jsonObject|Text| +|name|Text| +|default Value|Boolean| + +### Get JSONArray From JSONObject + +Returns: Text + +Get a JSON Array from a JSON Object. + +
+ +| Params | []() | +|--------|------| +|jsonObject|Text| +|name|Text| +|default Value|Text| + +### Get JSONObject From JSONArray + +Returns: Text + +Get a JSON Object from a JSON Array. + +
+ +| Params | []() | +|--------|------| +|jsonArray|Text| +|index|Number| +|default Value|Text| + +### Get JSONObject From JSONObject + +Returns: Text + +Get a JSON Object from a JSON Object. + +
+ +| Params | []() | +|--------|------| +|jsonObject|Text| +|name|Text| +|default Value|Text| + +### Get Length Of JSONArray + +Returns: Number + +Get the length of a JSON Array. + +
+ +| Params | []() | +|--------|------| +|jsonArray|Text| +|default Value|Number| + +### Get Number From JSONArray + +Returns: Number + +Get a Number from a JSON Array. + +
+ +| Params | []() | +|--------|------| +|jsonArray|Text| +|index|Number| +|default Value|Number| + +### Get Number From JSONObject + +Returns: Number + +Get a number from a JSON Object. + +
+ +| Params | []() | +|--------|------| +|jsonObject|Text| +|name|Text| +|default Value|Number| + +### Get Text From JSONArray + +Returns: Text + +Get Text from a JSON Array. + +
+ +| Params | []() | +|--------|------| +|jsonArray|Text| +|index|Number| +|default Value|Text| + +### Get Text From JSONObject + +Returns: Text + +Get text from a JSON object. + +
+ +| Params | []() | +|--------|------| +|jsonObject|Text| +|name|Text| +|default Value|Text| diff --git a/docs/components/deprecated/kodular-donations.md b/docs/components/deprecated/kodular-donations.md new file mode 100644 index 000000000..d64b46de8 --- /dev/null +++ b/docs/components/deprecated/kodular-donations.md @@ -0,0 +1,14 @@ +# Kodular Donations + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|2| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +A non-visible component that converts all your earnings from ads to donations that go to Kodular. diff --git a/docs/components/deprecated/memory-info.md b/docs/components/deprecated/memory-info.md new file mode 100644 index 000000000..48c459674 --- /dev/null +++ b/docs/components/deprecated/memory-info.md @@ -0,0 +1,88 @@ +# Memory Info + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|1| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +Nonvisible component to retrieve information about device memory. + +## Methods + +### External Storage Available + +Returns: Number + +Available size of external storage in Gigabytes. + +
+ +### External Storage Total + +Returns: Number + +Total external storage size in Gigabytes. + +
+ +### External Storage Used + +Returns: Number + +Size of used-external-storage in Gigabytes. + +
+ +### Internal Storage Available + +Returns: Number + +Size of available internal storage in Gigabytes. + +
+ +### Internal Storage Total + +Returns: Number + +Total size of internal storage in Gigabytes. + +
+ +### Internal Storage Used + +Returns: Number + +Size of used-internal-storage in Gigabytes. + +
+ +### Memory Free + +Returns: Number + +Total free RAM size in Gigabytes. + +
+ +### Memory Total + +Returns: Number + +Total RAM size in Gigabytes. + +
+ +### Memory Used + +Returns: Number + +Size of used-memory in Gigabytes. + +
diff --git a/docs/components/deprecated/networkmanager.md b/docs/components/deprecated/networkmanager.md new file mode 100644 index 000000000..2f3fb0ff6 --- /dev/null +++ b/docs/components/deprecated/networkmanager.md @@ -0,0 +1,93 @@ +# NetworkManager + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|2| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +This component can be used to provide information about network + +??? example "Permissions" + * [android.permission.ACCESS_NETWORK_STATE](https://developer.android.com/reference/android/Manifest.permission.html#ACCESS_NETWORK_STATE) + +## Methods + +### Get Connection Type + +Returns: Text + +describe the type of the network, for example WIFI or MOBILE + +
+ +### Is Connected + +Returns: Boolean + +Indicates whether network connectivity exists and it is possible to establish connections and pass data. + +
+ +### Is Fast Connection + +Returns: Boolean + +Returns true if using a fast connection + +
+ +### Is Mobile Connection + +Returns: Boolean + +Returns true if connection is through Mobile + +
+ +### Is Roaming + +Returns: Boolean + +Returns true if using using roaming + +
+ +### Is Wifi Connection + +Returns: Boolean + +Returns true if connection is through WiFi + +
+ +## Properties + +### Is GPS Enabled + +Boolean :heavy_minus_sign: Read - Blocks + +Checks to see if device is GPS enabled and if so, checks to see if GPS is started or not + +
+ +### Is GPS Enabled Device + +Boolean :heavy_minus_sign: Read - Blocks + +Checks to see if device is GPS enabled + +
+ +### Start GPS Options + +Boolean :heavy_minus_sign: Read - Blocks + +Starts up the GPS configuration activity, giving user option to turn turn on the GPS + +
diff --git a/docs/components/deprecated/notification.md b/docs/components/deprecated/notification.md new file mode 100644 index 000000000..32a6f8dd8 --- /dev/null +++ b/docs/components/deprecated/notification.md @@ -0,0 +1,183 @@ +# Notification + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|1| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +A non-visible component that sends a notification to the user''s device. + +## Methods + +### Are Notification Enabled + +Returns: Boolean + +Check whether the app can send Notifications + +
+ +### Cancel All Notifications + +Cancel all Notifications + +
+ +### Cancel Notification + +Cancel a Notification with an id + +
+ +| Params | []() | +|--------|------| +|id|Number| + +### Notification Builder Android Car + +Set the accent color for Android Car devices + +
+ +| Params | []() | +|--------|------| +|accent Color|Number| + +### Notification Builder Android Wear + +Set the background image for Android Wear devices + +
+ +| Params | []() | +|--------|------| +|background Image|Text| + +### Notification Builder Auto Cancel + +Set whether the notification should me removed after the user clicks on it. + +
+ +| Params | []() | +|--------|------| +|auto Cancel|Boolean| + +### Notification Builder Big Picture + +Set the big picture for the notification + +
+ +| Params | []() | +|--------|------| +|big Picture|Text| + +### Notification Builder Notification ID + +Set the notification id. + +
+ +| Params | []() | +|--------|------| +|id|Number| + +### Notification Builder Priority + +Set the notification builder priority. 1 = "Default", 2 = "high", 3 = "low", 4 = "max", 5 = "min" + +
+ +| Params | []() | +|--------|------| +|priority|Number| + +### Notification Builder Send + +Send the notification that you build + +
+ +### Notification Builder Start + +Start building a new notification + +
+ +| Params | []() | +|--------|------| +|title|Text| +|message|Text| + +### Notification Builder Start Value + +Set the start value of the notification. + +
+ +| Params | []() | +|--------|------| +|start Value|Text| + +### Notification Builder Visibility + +Set the notification builder visibility. 1 = "public", 2 = "private", 3 = "secret". + +
+ +| Params | []() | +|--------|------| +|visibility|Number| + +### Send Advanced Notification + +Send a advanced notification (Android Wear Support) + +
+ +| Params | []() | +|--------|------| +|id|Number| +|title|Text| +|message|Text| +|start Value|Text| +|time On|Number| +|time Off|Number| + +### Send Notification + +Send a notification + +
+ +| Params | []() | +|--------|------| +|title|Text| +|message|Text| + +## Properties + +### Priority + +Number Default: 1 :heavy_minus_sign: Read Write - Designer Blocks + +Set the priority level. 1 = "Default", 2 = "high", 3 = "low", 4 = "max", 5 = "min" + +
+
+ +### Visibility + +Number Default: 1 :heavy_minus_sign: Read Write - Designer Blocks + +Set the visibility property. 1 = "public", 2 = "private", 3 = "secret". + +
+
diff --git a/docs/components/deprecated/password-text-box.md b/docs/components/deprecated/password-text-box.md new file mode 100644 index 000000000..a1496dc32 --- /dev/null +++ b/docs/components/deprecated/password-text-box.md @@ -0,0 +1,301 @@ +# Password Text Box + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|6| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +A box for entering passwords. This is the same as the ordinary `` TextBox `` component except this does not display the characters typed by the user. + +The value of the text in the box can be found or set through the `` Text `` property. If blank, the `` Hint `` property, which appears as faint text in the box, can provide the user with guidance as to what to type. + + + +Text boxes are usually used with the `` Button `` component, with the user clicking on the button when text entry is complete. + +## Events + +### Got Focus + +Event raised when this component is selected for input, such as bythe user touching it. + +
+ +### Lost Focus + +Event raised when this component is no longer selected for input, suchas if the user touches a different text box. + +
+ +### On Text Changed + +Event to detect text changes. + +
+ +## Methods + +### Request Focus + +Sets the textbox active. + +
+ +### Set Animation Style + +Allows you to set animation style. Valid (case-insensitive) values are: ChasingDots, Circle, CubeGrid, DoubleBounce, FadingCircle, FoldingCube, Pulse, RotatingCircle, RotatingPlane, ThreeBounce, WanderingCubes, Wave. If invalid style is used, animation will be removed.Position can be: top, left, right, bottom. Size can be 100. + +
+ +| Params | []() | +|--------|------| +|style|Text| +|position|Text| +|size|Number| +|color|Number| + +### Set Cursor At + +Set the cursor to the given position. + +
+ +| Params | []() | +|--------|------| +|position|Number| + +### Set Cursor At End + +Set the cursor to the end of the text. + +
+ +### Set Shadow + +Place a blurred shadow of text underneath the text, drawn with the specified x, y, radius, color (e.g. -11, 12, 13, black + +
+ +| Params | []() | +|--------|------| +|x|Number| +|y|Number| +|radius|Number| +|color|Number| + +## Properties + +### Background Color + +Color Default: #00000000  :heavy_minus_sign: Read Write - Designer Blocks + +The background color of the input box. You can choose a color by name in the Designer or in the Blocks Editor. The default background color is 'default' (shaded 3-D look). + +
+
+ +### Current Position + +Number :heavy_minus_sign: Read - Blocks + +Get the current cursor position. + +
+ +### Cursor Color + +Available as ^^Advanced^^ Property + +Color Default: #000000FF  :heavy_minus_sign: Read Write - Designer Blocks + +The color of the cursor. + +
+
+ +### Cursor Visible + +Available as ^^Advanced^^ Property + +Boolean Default: True :heavy_minus_sign: Read Write - Designer Blocks + +Makes the cursor visible (the default) or invisible. + +
+
+ +### Enable Copy & Paste + +:warning: ==**Deprecated**== + +Boolean :heavy_minus_sign: Read Write - Blocks + +DEPRECATED since this feature is not working. Use 'Enabled' instead. + +
+
+ +### Enabled + +Boolean Default: True :heavy_minus_sign: Read Write - Designer Blocks + +Whether the user can enter text into this input box. By default, this is true. + +
+
+ +### Font Bold + +Boolean Default: False :heavy_minus_sign: Write - Designer + +Whether the font for the text should be bold. By default, it is not. + +### Font Italic + +Boolean Default: False :heavy_minus_sign: Write - Designer + +Whether the text should appear in italics. By default, it does not. + +### Font Size + +Number Default: 14.0 :heavy_minus_sign: Read Write - Designer Blocks + +The font size for the text. By default, it is 14.0 points. + +
+
+ +### Font Typeface + +Number Default: 0 :heavy_minus_sign: Write - Designer + +The font for the text. The value can be changed in the Designer. + +### Font Typeface Import + +Available as ^^Advanced^^ Property + +Text :heavy_minus_sign: Write - Designer Blocks + +Set a custom font. + +
+ +### Height + +Number :heavy_minus_sign: Read Write - Blocks + +Specifies the component's vertical height, measured in pixels. + +
+
+ +### Height Percent + +Number :heavy_minus_sign: Write - Blocks + +Specifies the component's vertical height as a percentageof the height of its parent Component. + +
+ +### Hint + +Text :heavy_minus_sign: Read Write - Designer Blocks + +Text that should appear faintly in the input box to provide a hint as to what the user should enter. This can only be seen if the `` Text `` property is empty. + +
+
+ +### Hint Color + +Color Default: #000000FF  :heavy_minus_sign: Read Write - Designer Blocks + +Set a custom hint text color. + +
+
+ +### Line Color + +:warning: ==**Deprecated**== + +Number :heavy_minus_sign: Read Write - Blocks + +Please delete this block from your project.This block is deprecated and not longer supported. + +
+
+ +### Rotation Angle + +Available as ^^Advanced^^ Property + +Number Default: 0.0 :heavy_minus_sign: Read Write - Designer Blocks + +Sets the degrees that the textbox is rotated around the pivot point. Increasing values result in clockwise rotation. + +
+
+ +### Text + +Text :heavy_minus_sign: Read Write - Designer Blocks + +Returns the textbox contents. + +
+
+ +### Text Alignment + +Number Default: 0 :heavy_minus_sign: Write - Designer + +Whether the text should be left justified, centered, or right justified. By default, text is left justified. + +### Text Color + +Color Default: #000000FF  :heavy_minus_sign: Read Write - Designer Blocks + +The color for the text. You can choose a color by name in the Designer or in the Blocks Editor. The default text color is black. + +
+
+ +### Text Length + +Number :heavy_minus_sign: Read - Blocks + +Returns the current text length as number. + +
+ +### Visible + +Boolean Default: True :heavy_minus_sign: Read Write - Designer Blocks + +Returns true iff the component is visible. + +
+
+ +### Width + +Number :heavy_minus_sign: Read Write - Blocks + +Specifies the component's horizontal width, measured in pixels. + +
+
+ +### Width Percent + +Number :heavy_minus_sign: Write - Blocks + +Specifies the component's horizontal width as a percentageof the Width of its parent Component. + +
diff --git a/docs/components/deprecated/push-notifications.md b/docs/components/deprecated/push-notifications.md new file mode 100644 index 000000000..eab7d51a3 --- /dev/null +++ b/docs/components/deprecated/push-notifications.md @@ -0,0 +1,245 @@ +# Push Notifications + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|7| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +A non-visible component that remotely sends notifications to the device. +Powered by OneSignal. + +## Events + +### Got Available Tags + +:warning: ==**Deprecated**== + +Event to detect available one signal tags. + +
+ +| Params | []() | +|--------|------| +|tags As String|Text| +|tags As List|List| + +### Got Value + +:warning: ==**Deprecated**== + +Event to receive value for a tag. + +
+ +| Params | []() | +|--------|------| +|tag|Text| +|value|Text| + +### Notification Opened + +:warning: ==**Deprecated**== + +User opened a notification. + +
+ +| Params | []() | +|--------|------| +|id|Text| +|title|Text| +|message|Text| + +### Notification Received + +:warning: ==**Deprecated**== + +User received a notification. + +
+ +| Params | []() | +|--------|------| +|id|Text| +|title|Text| +|message|Text| + +### Send Message Done + +:warning: ==**Deprecated**== + +Returns true if your message was send with success out of your app to all users. + +
+ +| Params | []() | +|--------|------| +|success|Boolean| + +## Methods + +### Clear All Notifications + +:warning: ==**Deprecated**== + +Clear All Notifications. + +
+ +### Delete Tag + +:warning: ==**Deprecated**== + +Deletes a single tag that was previously set on a user. + +
+ +| Params | []() | +|--------|------| +|key|Text| + +### Get Available Tags + +:warning: ==**Deprecated**== + +Get a list of available tags. + +
+ +### Get Value + +:warning: ==**Deprecated**== + +Get value for tag. + +
+ +| Params | []() | +|--------|------| +|tag|Text| +|value If Tag Not There|Text| + +### Send Message + +:warning: ==**Deprecated**== + +Send a message to all users. The message and your REST Api Key can not be empty! You will find your REST Api Key in your OneSignal account settings. + +
+ +| Params | []() | +|--------|------| +|title|Text| +|message|Text| +|rest API Key|Text| + +### Send Tag + +:warning: ==**Deprecated**== + +Tag a user based on an app event of your choosing so later you can create segments in to target these users. + +
+ +| Params | []() | +|--------|------| +|key|Text| +|value|Text| + +## Properties + +### Enable Log + +:warning: ==**Deprecated**== + +Boolean :heavy_minus_sign: Write - Blocks + +If you want to enable the log then set it to true. + +
+ +### Enable Sound + +:warning: ==**Deprecated**== + +Boolean :heavy_minus_sign: Write - Blocks + +Enable Sound. + +
+ +### Enable Vibration + +:warning: ==**Deprecated**== + +Boolean :heavy_minus_sign: Write - Blocks + +Enable Vibration. + +
+ +### Get Email Subscription Email Address + +:warning: ==**Deprecated**== + +Text :heavy_minus_sign: Read - Blocks + +Get the email subscription email address. + +
+ +### Get Email Subscription User Id + +:warning: ==**Deprecated**== + +Text :heavy_minus_sign: Read - Blocks + +Get the email subscription user id. + +
+ +### Get Permission Status + +:warning: ==**Deprecated**== + +Boolean :heavy_minus_sign: Read - Blocks + +Get Permission Status + +
+ +### Get Subscription Status + +:warning: ==**Deprecated**== + +Boolean :heavy_minus_sign: Read - Blocks + +Get the subscription Status + +
+ +### Get User Id + +:warning: ==**Deprecated**== + +Text :heavy_minus_sign: Read - Blocks + +Get the User ID. If there is no user id it will return '-1'. + +
+ +### Set Subscription + +:warning: ==**Deprecated**== + +Boolean :heavy_minus_sign: Write - Blocks + +If you want to subscribe then set it to true. + +
diff --git a/docs/components/deprecated/unity-ads-banner.md b/docs/components/deprecated/unity-ads-banner.md new file mode 100644 index 000000000..10fb83d88 --- /dev/null +++ b/docs/components/deprecated/unity-ads-banner.md @@ -0,0 +1,72 @@ +# Unity Ads Banner + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|1| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +A visible component that dsiplays Unity Banner Ads. + +??? example "Permissions" + * [android.permission.INTERNET](https://developer.android.com/reference/android/Manifest.permission.html#INTERNET) + * [android.permission.ACCESS_NETWORK_STATE](https://developer.android.com/reference/android/Manifest.permission.html#ACCESS_NETWORK_STATE) + +## Events + +### Ad Clicked + +Called when an ad clicked. + +
+ +### Ad Failed To Load + +Called when an ad request failed to load. The message will display the error code and error message. + +
+ +| Params | []() | +|--------|------| +|error Code|Number| +|error Message|Text| + +### Ad Loaded + +Called when an ad request was loaded. + +
+ +## Methods + +### Load Ad + +Load a new Unity ad in the banner + +
+ +## Properties + +### Game ID + +Text :heavy_minus_sign: Write - Designer + +Property for GameID + +### Placement ID + +Text :heavy_minus_sign: Write - Designer + +Property for PlacementID + +### Visible + +Boolean Default: True :heavy_minus_sign: Read Write - Designer Blocks + +Returns true iff the component is visible. + +
+
diff --git a/docs/components/deprecated/unity-ads-interstitial.md b/docs/components/deprecated/unity-ads-interstitial.md new file mode 100644 index 000000000..b36a8192a --- /dev/null +++ b/docs/components/deprecated/unity-ads-interstitial.md @@ -0,0 +1,98 @@ +# Unity Ads Interstitial + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|2| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +A non-visible component that shows Unity ads as full-screen advertisements. + +??? example "Permissions" + * [android.permission.INTERNET](https://developer.android.com/reference/android/Manifest.permission.html#INTERNET) + * [android.permission.ACCESS_NETWORK_STATE](https://developer.android.com/reference/android/Manifest.permission.html#ACCESS_NETWORK_STATE) + +## Events + +### Ad Closed + +Called when an ad was closed. + +
+ +| Params | []() | +|--------|------| +|placement Id|Text| +|was Skipped|Boolean| +|was Completed|Boolean| + +### Ad Opened + +Called when an ad was opened. + +
+ +| Params | []() | +|--------|------| +|placement Id|Text| + +### Ad Started + +Called when an ad was started. + +
+ +| Params | []() | +|--------|------| +|placement Id|Text| + +### Error + +Called when an ad request failed. The message will display the reason for why the ad failed. + +
+ +| Params | []() | +|--------|------| +|error|Text| + +## Methods + +### Is Ready + +Returns: Boolean + +Returns true if the ad is finished loading and can now be shown. + +
+ +### Show Ad + +Shows an ad to the user. + +
+ +## Properties + +### Game ID + +Text :heavy_minus_sign: Write - Designer + +Property for GameID + +### Placement ID + +Text :heavy_minus_sign: Write - Designer + +Property for PlacementID + +### Test Mode + +Boolean Default: False :heavy_minus_sign: Write - Designer + +If you want to test the component then that this property to true. Then you will receive test ads. diff --git a/docs/components/deprecated/whitemobi.md b/docs/components/deprecated/whitemobi.md new file mode 100644 index 000000000..4bf52c352 --- /dev/null +++ b/docs/components/deprecated/whitemobi.md @@ -0,0 +1,49 @@ +# WhiteMobi + +{>> Non-Visible component<<} + +| Category | Requires | Version | +|:--------:|:-------:|:--------:| +|**Deprecated**|API 21, Android 5.0 Lollipop|1| + +!!! danger "Deprecated component" + This component is deprecated. Projects that still contain it will fail to build until it is removed. You can still load existing projects in the Designer and live-test them with the Companion while you migrate, but APK and AAB builds are blocked. Look for an up-to-date replacement in the active component palette. + +## Overview + +The WhiteMobi component allows you to show WhiteMobi offerwalls in your app. Get an API key at http\://whitemobi.com/ + +??? example "Permissions" + * [android.permission.INTERNET](https://developer.android.com/reference/android/Manifest.permission.html#INTERNET) + * [android.permission.ACCESS_NETWORK_STATE](https://developer.android.com/reference/android/Manifest.permission.html#ACCESS_NETWORK_STATE) + +## Events + +### Offer Completed + +Event triggered when an offer has been completed + +
+ +| Params | []() | +|--------|------| +|amount|Number| + +## Methods + +### Show Offer Wall + +Show WhiteMobi offerwall + +
+ +## Properties + +### Application Key + +Text :heavy_minus_sign: Read Write - Designer Blocks + +Return the application key. + +
+