├── .github └── workflows │ ├── build.yml │ └── release.yml ├── .gitignore ├── LICENSE ├── LICENSE-zxing ├── README.md ├── build.gradle ├── gradle.properties ├── gradle ├── android_project │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── library │ │ ├── build.gradle │ │ └── src │ │ │ └── main │ │ │ └── AndroidManifest.xml │ └── settings.gradle ├── include │ ├── AttachMacros.h │ └── android │ │ ├── attach_macros_android.h │ │ └── grandroid_ext.h ├── mavenPublish.gradle ├── native-build.gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── modules ├── accelerometer │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── accelerometer │ │ │ │ ├── Acceleration.java │ │ │ │ ├── AccelerometerService.java │ │ │ │ ├── Parameters.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidAccelerometerService.java │ │ │ │ ├── DummyAccelerometerService.java │ │ │ │ ├── IOSAccelerometerService.java │ │ │ │ └── MobileAccelerometerService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── accelerometer.c │ │ │ └── dalvik │ │ │ │ └── DalvikAccelerometerService.java │ │ └── ios │ │ │ ├── Accelerometer.h │ │ │ └── Accelerometer.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ └── config │ │ ├── jniconfig-aarch64-android.json │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json ├── audio-recording │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── audiorecording │ │ │ │ ├── AudioRecordingService.java │ │ │ │ ├── impl │ │ │ │ ├── DefaultAudioRecordingService.java │ │ │ │ ├── DesktopAudioRecordingService.java │ │ │ │ ├── DummyAudioRecordingService.java │ │ │ │ └── IOSAudioRecordingService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ └── ios │ │ │ ├── AudioRecording.h │ │ │ └── AudioRecording.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ ├── config │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-aarch64-darwin.json │ │ ├── reflectionconfig-aarch64-linux.json │ │ ├── reflectionconfig-arm64-ios.json │ │ ├── reflectionconfig-x86_64-darwin.json │ │ ├── reflectionconfig-x86_64-ios.json │ │ ├── reflectionconfig-x86_64-linux.json │ │ └── reflectionconfig-x86_64-windows.json │ │ └── ios │ │ └── Partial-Info.plist ├── audio │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── audio │ │ │ │ ├── Audio.java │ │ │ │ ├── AudioService.java │ │ │ │ └── impl │ │ │ │ ├── AndroidAudioService.java │ │ │ │ ├── DummyAudioService.java │ │ │ │ └── IOSAudioService.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── audio.c │ │ │ └── dalvik │ │ │ │ ├── DalvikAudio.java │ │ │ │ ├── DalvikAudioService.java │ │ │ │ ├── DalvikMusic.java │ │ │ │ └── DalvikSound.java │ │ └── ios │ │ │ ├── Audio.h │ │ │ └── Audio.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ └── config │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json ├── augmented-reality │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── augmentedreality │ │ │ │ ├── ARModel.java │ │ │ │ ├── AugmentedRealityService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidAugmentedRealityService.java │ │ │ │ ├── DefaultAugmentedRealityService.java │ │ │ │ ├── DummyAugmentedRealityService.java │ │ │ │ └── IOSAugmentedRealityService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── augmentedreality.c │ │ │ └── dalvik │ │ │ │ ├── DalvikAugmentedRealityService.java │ │ │ │ └── ar │ │ │ │ ├── ARModel.java │ │ │ │ ├── ARRenderer.java │ │ │ │ ├── BackgroundRenderer.java │ │ │ │ ├── ComplexObjectRenderer.java │ │ │ │ ├── DisplayRotationHelper.java │ │ │ │ ├── ObjectRenderer.java │ │ │ │ ├── PlaneRenderer.java │ │ │ │ ├── PointCloudRenderer.java │ │ │ │ ├── ShaderUtil.java │ │ │ │ └── TapHelper.java │ │ └── ios │ │ │ ├── AugmentedReality.h │ │ │ └── AugmentedReality.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ ├── config │ │ ├── jniconfig-aarch64-android.json │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json │ │ └── dalvik │ │ ├── AndroidManifest.xml │ │ ├── android-dependencies.txt │ │ ├── assets │ │ ├── models │ │ │ └── trigrid.png │ │ └── shaders │ │ │ ├── ar_object.frag │ │ │ ├── ar_object.vert │ │ │ ├── background_show_depth_color_visualization.frag │ │ │ ├── background_show_depth_color_visualization.vert │ │ │ ├── object.frag │ │ │ ├── object.vert │ │ │ ├── plane.frag │ │ │ ├── plane.vert │ │ │ ├── point_cloud.frag │ │ │ ├── point_cloud.vert │ │ │ ├── screenquad.frag │ │ │ └── screenquad.vert │ │ └── build.gradle ├── barcode-scan │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── barcodescan │ │ │ │ ├── BarcodeScanService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidBarcodeScanService.java │ │ │ │ ├── DummyBarcodeScanService.java │ │ │ │ └── IOSBarcodeScanService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── barcodescan.c │ │ │ └── dalvik │ │ │ │ ├── DalvikBarcodeScanService.java │ │ │ │ └── zxing │ │ │ │ ├── Actions.java │ │ │ │ ├── AmbientLightManager.java │ │ │ │ ├── CaptureActivity.java │ │ │ │ ├── CaptureActivityHandler.java │ │ │ │ ├── DecodeFormatManager.java │ │ │ │ ├── DecodeHandler.java │ │ │ │ ├── DecodeHintManager.java │ │ │ │ ├── DecodeThread.java │ │ │ │ ├── FinishListener.java │ │ │ │ ├── InactivityTimer.java │ │ │ │ ├── IntentSource.java │ │ │ │ ├── Intents.java │ │ │ │ ├── PreferencesActivity.java │ │ │ │ ├── ViewfinderResultPointCallback.java │ │ │ │ ├── ViewfinderView.java │ │ │ │ ├── camera │ │ │ │ ├── AutoFocusManager.java │ │ │ │ ├── CameraConfigurationManager.java │ │ │ │ ├── CameraConfigurationUtils.java │ │ │ │ ├── CameraManager.java │ │ │ │ ├── FrontLightMode.java │ │ │ │ ├── PreviewCallback.java │ │ │ │ └── open │ │ │ │ │ ├── CameraFacing.java │ │ │ │ │ ├── OpenCamera.java │ │ │ │ │ └── OpenCameraInterface.java │ │ │ │ ├── res │ │ │ │ └── layout │ │ │ │ │ └── CaptureActivityView.java │ │ │ │ └── result │ │ │ │ ├── ResultHandler.java │ │ │ │ ├── ResultHandlerFactory.java │ │ │ │ └── TextResultHandler.java │ │ └── ios │ │ │ ├── BarcodeScan.h │ │ │ └── BarcodeScan.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ ├── config │ │ ├── jniconfig-aarch64-android.json │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json │ │ ├── dalvik │ │ ├── AndroidManifest.xml │ │ ├── android-dependencies.txt │ │ └── build.gradle │ │ └── ios │ │ └── Partial-Info.plist ├── battery │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── battery │ │ │ │ ├── BatteryService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidBatteryService.java │ │ │ │ ├── DummyBatteryService.java │ │ │ │ └── IOSBatteryService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── battery.c │ │ │ └── dalvik │ │ │ │ └── DalvikBatteryService.java │ │ └── ios │ │ │ ├── Battery.h │ │ │ └── Battery.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ └── config │ │ ├── jniconfig-aarch64-android.json │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json ├── ble │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── ble │ │ │ │ ├── BleCharacteristic.java │ │ │ │ ├── BleDescriptor.java │ │ │ │ ├── BleDevice.java │ │ │ │ ├── BleProfile.java │ │ │ │ ├── BleService.java │ │ │ │ ├── BleSpecs.java │ │ │ │ ├── Configuration.java │ │ │ │ ├── Proximity.java │ │ │ │ ├── ScanDetection.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidBleService.java │ │ │ │ ├── DummyBleService.java │ │ │ │ └── IOSBleService.java │ │ │ │ ├── package-info.java │ │ │ │ └── parser │ │ │ │ ├── AppearanceBleParser.java │ │ │ │ ├── BleParser.java │ │ │ │ ├── BleSpecsFactory.java │ │ │ │ ├── BleUtils.java │ │ │ │ ├── ClientConfigurationBleParser.java │ │ │ │ ├── DefaultBleParser.java │ │ │ │ ├── HeartRateBleParser.java │ │ │ │ ├── HeartRateMeasurementBleParser.java │ │ │ │ ├── PeripheralPreferredBleParser.java │ │ │ │ └── StringBleParser.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── ble.c │ │ │ └── dalvik │ │ │ │ ├── BleGattCallback.java │ │ │ │ └── DalvikBleService.java │ │ └── ios │ │ │ ├── BLE.h │ │ │ └── BLE.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ ├── config │ │ ├── jniconfig-aarch64-android.json │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json │ │ ├── dalvik │ │ └── AndroidManifest.xml │ │ └── ios │ │ └── Partial-Info.plist ├── browser │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── browser │ │ │ │ ├── BrowserService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidBrowserService.java │ │ │ │ ├── DesktopBrowserService.java │ │ │ │ ├── DummyBrowserService.java │ │ │ │ └── IOSBrowserService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── browser.c │ │ │ └── dalvik │ │ │ │ └── DalvikBrowserService.java │ │ └── ios │ │ │ └── Browser.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ ├── config │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-aarch64-darwin.json │ │ ├── reflectionconfig-aarch64-linux.json │ │ ├── reflectionconfig-arm64-ios.json │ │ ├── reflectionconfig-x86_64-darwin.json │ │ ├── reflectionconfig-x86_64-ios.json │ │ ├── reflectionconfig-x86_64-linux.json │ │ └── reflectionconfig-x86_64-windows.json │ │ └── dalvik │ │ └── AndroidManifest.xml ├── cache │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── cache │ │ │ │ ├── Cache.java │ │ │ │ ├── CacheService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidCacheService.java │ │ │ │ ├── DefaultCache.java │ │ │ │ ├── DefaultCacheService.java │ │ │ │ ├── DesktopCacheService.java │ │ │ │ ├── DummyCacheService.java │ │ │ │ └── IOSCacheService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ └── config │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-aarch64-darwin.json │ │ ├── reflectionconfig-aarch64-linux.json │ │ ├── reflectionconfig-arm64-ios.json │ │ ├── reflectionconfig-x86_64-darwin.json │ │ ├── reflectionconfig-x86_64-ios.json │ │ ├── reflectionconfig-x86_64-linux.json │ │ └── reflectionconfig-x86_64-windows.json ├── compass │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── compass │ │ │ │ ├── CompassService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidCompassService.java │ │ │ │ ├── DummyCompassService.java │ │ │ │ ├── IOSCompassService.java │ │ │ │ └── MobileCompassService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ └── config │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json ├── connectivity │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── connectivity │ │ │ │ ├── ConnectivityService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidConnectivityService.java │ │ │ │ ├── DummyConnectivityService.java │ │ │ │ └── IOSConnectivityService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── connectivity.c │ │ │ └── dalvik │ │ │ │ └── DalvikConnectivityService.java │ │ └── ios │ │ │ └── Connectivity.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ ├── config │ │ ├── jniconfig-aarch64-android.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json │ │ └── dalvik │ │ └── AndroidManifest.xml ├── device │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── device │ │ │ │ ├── DeviceService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidDeviceService.java │ │ │ │ ├── DeviceInfo.java │ │ │ │ ├── DummyDeviceServiceImpl.java │ │ │ │ └── IOSDeviceService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── device.c │ │ │ └── dalvik │ │ │ │ └── DalvikDeviceService.java │ │ └── ios │ │ │ └── Device.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ └── config │ │ ├── jniconfig-aarch64-android.json │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json ├── dialer │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── dialer │ │ │ │ ├── DialerService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidDialerService.java │ │ │ │ ├── DummyDialerService.java │ │ │ │ └── IOSDialerService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── dialer.c │ │ │ └── dalvik │ │ │ │ └── DalvikDialerService.java │ │ └── ios │ │ │ └── Dialer.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ ├── config │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json │ │ └── dalvik │ │ └── AndroidManifest.xml ├── display │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── display │ │ │ │ ├── DisplayService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidDisplayService.java │ │ │ │ ├── DesktopDisplayService.java │ │ │ │ ├── DummyDisplayService.java │ │ │ │ └── IOSDisplayService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── display.c │ │ │ └── dalvik │ │ │ │ └── DalvikDisplayService.java │ │ └── ios │ │ │ ├── Display.h │ │ │ └── Display.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ └── config │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-aarch64-darwin.json │ │ ├── reflectionconfig-aarch64-linux.json │ │ ├── reflectionconfig-arm64-ios.json │ │ ├── reflectionconfig-x86_64-darwin.json │ │ ├── reflectionconfig-x86_64-ios.json │ │ ├── reflectionconfig-x86_64-linux.json │ │ └── reflectionconfig-x86_64-windows.json ├── in-app-billing │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── inappbilling │ │ │ │ ├── InAppBillingException.java │ │ │ │ ├── InAppBillingQueryResult.java │ │ │ │ ├── InAppBillingQueryResultListener.java │ │ │ │ ├── InAppBillingService.java │ │ │ │ ├── Product.java │ │ │ │ ├── ProductDetails.java │ │ │ │ ├── ProductOrder.java │ │ │ │ ├── impl │ │ │ │ ├── DummyInAppBillingService.java │ │ │ │ └── IOSInAppBillingService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ └── ios │ │ │ ├── InAppBilling.h │ │ │ └── InAppBilling.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ └── config │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json ├── keyboard │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── keyboard │ │ │ │ ├── KeyboardService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidKeyboardService.java │ │ │ │ ├── DummyKeyboardService.java │ │ │ │ └── IOSKeyboardService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── keyboard.c │ │ │ └── dalvik │ │ │ │ ├── KeyboardHeightListener.java │ │ │ │ ├── KeyboardService.java │ │ │ │ └── KeyboardView.java │ │ └── ios │ │ │ ├── Keyboard.h │ │ │ └── Keyboard.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ └── config │ │ ├── jniconfig-aarch64-android.json │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json ├── lifecycle │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── lifecycle │ │ │ │ ├── LifecycleEvent.java │ │ │ │ ├── LifecycleService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidLifecycleService.java │ │ │ │ ├── DesktopLifecycleService.java │ │ │ │ ├── DummyLifecycleService.java │ │ │ │ ├── IOSLifecycleService.java │ │ │ │ └── LifecycleServiceBase.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── lifecycle.c │ │ │ └── dalvik │ │ │ │ └── DalvikLifecycleService.java │ │ └── ios │ │ │ ├── Lifecycle.h │ │ │ └── Lifecycle.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ └── config │ │ ├── jniconfig-aarch64-android.json │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-aarch64-darwin.json │ │ ├── reflectionconfig-aarch64-linux.json │ │ ├── reflectionconfig-arm64-ios.json │ │ ├── reflectionconfig-x86_64-darwin.json │ │ ├── reflectionconfig-x86_64-ios.json │ │ ├── reflectionconfig-x86_64-linux.json │ │ └── reflectionconfig-x86_64-windows.json ├── local-notifications │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── localnotifications │ │ │ │ ├── LocalNotificationsService.java │ │ │ │ ├── Notification.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidLocalNotificationsService.java │ │ │ │ ├── DummyLocalNotificationsService.java │ │ │ │ ├── IOSLocalNotificationsService.java │ │ │ │ ├── LocalNotificationsServiceBase.java │ │ │ │ └── NotificationsManager.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── localnotifications.c │ │ │ └── dalvik │ │ │ │ ├── AlarmReceiver.java │ │ │ │ ├── DalvikLocalNotificationsService.java │ │ │ │ └── NotificationActivity.java │ │ └── ios │ │ │ ├── LocalNotifications.h │ │ │ └── LocalNotifications.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ ├── config │ │ ├── jniconfig-aarch64-android.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json │ │ └── dalvik │ │ └── AndroidManifest.xml ├── magnetometer │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── magnetometer │ │ │ │ ├── MagnetometerReading.java │ │ │ │ ├── MagnetometerService.java │ │ │ │ ├── Parameters.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidMagnetometerService.java │ │ │ │ ├── DummyMagnetometerService.java │ │ │ │ ├── IOSMagnetometerService.java │ │ │ │ └── MobileMagnetometerService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── magnetometer.c │ │ │ └── dalvik │ │ │ │ └── DalvikMagnetometerService.java │ │ └── ios │ │ │ ├── Magnetometer.h │ │ │ └── Magnetometer.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ └── config │ │ ├── jniconfig-aarch64-android.json │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json ├── orientation │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── orientation │ │ │ │ ├── OrientationService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidOrientationService.java │ │ │ │ ├── DummyOrientationService.java │ │ │ │ └── IOSOrientationService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── orientation.c │ │ │ └── dalvik │ │ │ │ └── DalvikOrientationService.java │ │ └── ios │ │ │ ├── Orientation.h │ │ │ └── Orientation.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ └── config │ │ ├── jniconfig-aarch64-android.json │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json ├── pictures │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── pictures │ │ │ │ ├── PicturesService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidPicturesService.java │ │ │ │ ├── DummyPicturesService.java │ │ │ │ └── IOSPicturesService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── pictures.c │ │ │ └── dalvik │ │ │ │ └── DalvikPicturesService.java │ │ └── ios │ │ │ ├── Pictures.h │ │ │ └── Pictures.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ ├── config │ │ ├── jniconfig-aarch64-android.json │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json │ │ ├── dalvik │ │ ├── AndroidManifest.xml │ │ └── res │ │ │ └── xml │ │ │ └── file_provider_paths.xml │ │ └── ios │ │ └── Partial-Info.plist ├── position │ ├── build.gradle │ └── src │ │ ├── android │ │ └── resources │ │ │ └── egm180.nor │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── position │ │ │ │ ├── Parameters.java │ │ │ │ ├── Position.java │ │ │ │ ├── PositionService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidPositionService.java │ │ │ │ ├── DummyPositionService.java │ │ │ │ ├── IOSPositionService.java │ │ │ │ └── geotools │ │ │ │ │ ├── AbstractMathTransform.java │ │ │ │ │ ├── EarthGravitationalModel.java │ │ │ │ │ └── VerticalTransform.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── position.c │ │ │ └── dalvik │ │ │ │ ├── AndroidLooperTask.java │ │ │ │ └── DalvikPositionService.java │ │ └── ios │ │ │ ├── Position.h │ │ │ └── Position.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ ├── config │ │ ├── jniconfig-aarch64-android.json │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ ├── reflectionconfig-x86_64-ios.json │ │ └── resourceconfig-aarch64-android.json │ │ ├── dalvik │ │ └── AndroidManifest.xml │ │ └── ios │ │ └── Partial-Info.plist ├── push-notifications │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── pushnotifications │ │ │ │ ├── PushNotificationsService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidPushNotificationsService.java │ │ │ │ ├── DummyPushNotificationsService.java │ │ │ │ ├── IOSPushNotificationsService.java │ │ │ │ └── gms │ │ │ │ │ └── GoogleServicesConfiguration.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── pushnotifications.c │ │ │ └── dalvik │ │ │ │ ├── DalvikPushNotificationsService.java │ │ │ │ ├── FirebaseBroadcastReceiver.java │ │ │ │ ├── PushFcmMessagingService.java │ │ │ │ ├── PushNotificationActivity.java │ │ │ │ └── PushNotificationJobService.java │ │ └── ios │ │ │ ├── PushNotifications.h │ │ │ └── PushNotifications.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ ├── config │ │ ├── jniconfig-aarch64-android.json │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json │ │ └── dalvik │ │ ├── AndroidManifest.xml │ │ ├── android-dependencies.txt │ │ └── build.gradle ├── runtime-args │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── runtimeargs │ │ │ │ ├── RuntimeArgsService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidRuntimeArgsService.java │ │ │ │ ├── DefaultRuntimeArgsService.java │ │ │ │ ├── DesktopRuntimeArgsService.java │ │ │ │ ├── DummyRuntimeArgsService.java │ │ │ │ └── IOSRuntimeArgsService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── runtimeargs.c │ │ │ └── dalvik │ │ │ │ ├── DalvikRuntimeArgsService.java │ │ │ │ └── LaunchURLActivity.java │ │ └── ios │ │ │ ├── RuntimeArgs.h │ │ │ └── RuntimeArgs.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ ├── config │ │ ├── jniconfig-aarch64-android.json │ │ ├── jniconfig-arm64-ios.json │ │ ├── jniconfig-x86_64-ios.json │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-aarch64-darwin.json │ │ ├── reflectionconfig-aarch64-linux.json │ │ ├── reflectionconfig-arm64-ios.json │ │ ├── reflectionconfig-x86_64-darwin.json │ │ ├── reflectionconfig-x86_64-ios.json │ │ ├── reflectionconfig-x86_64-linux.json │ │ └── reflectionconfig-x86_64-windows.json │ │ └── dalvik │ │ └── AndroidManifest.xml ├── settings │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── settings │ │ │ │ ├── SettingsService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidSettingsService.java │ │ │ │ ├── DesktopSettingsService.java │ │ │ │ ├── DummySettingsService.java │ │ │ │ └── IOSSettingsService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── settings.c │ │ │ └── dalvik │ │ │ │ └── DalvikSettingsService.java │ │ └── ios │ │ │ └── Settings.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ └── config │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-aarch64-darwin.json │ │ ├── reflectionconfig-aarch64-linux.json │ │ ├── reflectionconfig-arm64-ios.json │ │ ├── reflectionconfig-x86_64-darwin.json │ │ ├── reflectionconfig-x86_64-ios.json │ │ ├── reflectionconfig-x86_64-linux.json │ │ └── reflectionconfig-x86_64-windows.json ├── share │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── share │ │ │ │ ├── ShareService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidShareService.java │ │ │ │ ├── DummyShareService.java │ │ │ │ └── IOSShareService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── share.c │ │ │ └── dalvik │ │ │ │ └── DalvikShareService.java │ │ └── ios │ │ │ ├── Share.h │ │ │ └── Share.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ ├── config │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json │ │ ├── dalvik │ │ ├── AndroidManifest.xml │ │ └── res │ │ │ └── xml │ │ │ └── file_provider_paths.xml │ │ └── ios │ │ └── Partial-Info.plist ├── statusbar │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── statusbar │ │ │ │ ├── StatusBarService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidStatusBarService.java │ │ │ │ ├── DummyStatusBarService.java │ │ │ │ └── IOSStatusBarService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── statusbar.c │ │ │ └── dalvik │ │ │ │ └── DalvikStatusBarService.java │ │ └── ios │ │ │ └── StatusBar.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ └── config │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json ├── storage │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── storage │ │ │ │ ├── StorageService.java │ │ │ │ └── impl │ │ │ │ ├── AndroidStorageService.java │ │ │ │ ├── DesktopStorageService.java │ │ │ │ ├── DummyStorageServiceImpl.java │ │ │ │ └── IOSStorageService.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── storage.c │ │ │ └── dalvik │ │ │ │ └── DalvikStorageService.java │ │ └── ios │ │ │ └── Storage.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ ├── config │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-aarch64-darwin.json │ │ ├── reflectionconfig-aarch64-linux.json │ │ ├── reflectionconfig-arm64-ios.json │ │ ├── reflectionconfig-x86_64-darwin.json │ │ ├── reflectionconfig-x86_64-ios.json │ │ ├── reflectionconfig-x86_64-linux.json │ │ └── reflectionconfig-x86_64-windows.json │ │ └── dalvik │ │ └── AndroidManifest.xml ├── store-review │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── storereview │ │ │ │ ├── StoreReviewService.java │ │ │ │ └── impl │ │ │ │ ├── AndroidStoreReviewService.java │ │ │ │ ├── DummyStoreReviewServiceImpl.java │ │ │ │ └── IOSStoreReviewService.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── storereview.c │ │ │ └── dalvik │ │ │ │ └── DalvikStoreReviewService.java │ │ └── ios │ │ │ └── StoreReview.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ ├── config │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json │ │ └── dalvik │ │ ├── AndroidManifest.xml │ │ ├── android-dependencies.txt │ │ └── build.gradle ├── util │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── util │ │ │ │ ├── Constants.java │ │ │ │ ├── Platform.java │ │ │ │ ├── PropertyWatcher.java │ │ │ │ ├── Services.java │ │ │ │ ├── Util.java │ │ │ │ ├── impl │ │ │ │ ├── ClipboardUtils.java │ │ │ │ ├── Debug.java │ │ │ │ ├── DefaultServiceFactory.java │ │ │ │ └── ServiceFactory.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ ├── util.c │ │ │ │ └── util.h │ │ │ └── dalvik │ │ │ │ ├── FileProvider.java │ │ │ │ ├── IntentHandler.java │ │ │ │ ├── LifecycleEventHandler.java │ │ │ │ └── Util.java │ │ └── ios │ │ │ └── Util.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ └── config │ │ ├── jniconfig-aarch64-android.json │ │ └── reflectionconfig-aarch64-android.json ├── version │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── version │ │ │ │ ├── VersionService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidVersionService.java │ │ │ │ ├── DesktopVersionService.java │ │ │ │ ├── DummyVersionService.java │ │ │ │ └── IOSVersionService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── version.c │ │ │ └── dalvik │ │ │ │ └── DalvikVersionService.java │ │ └── ios │ │ │ └── Version.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ └── config │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-aarch64-darwin.json │ │ ├── reflectionconfig-aarch64-linux.json │ │ ├── reflectionconfig-arm64-ios.json │ │ ├── reflectionconfig-x86_64-darwin.json │ │ ├── reflectionconfig-x86_64-ios.json │ │ ├── reflectionconfig-x86_64-linux.json │ │ └── reflectionconfig-x86_64-windows.json ├── vibration │ ├── build.gradle │ └── src │ │ └── main │ │ ├── java │ │ ├── com │ │ │ └── gluonhq │ │ │ │ └── attach │ │ │ │ └── vibration │ │ │ │ ├── VibrationService.java │ │ │ │ ├── impl │ │ │ │ ├── AndroidVibrationService.java │ │ │ │ ├── DummyVibrationService.java │ │ │ │ └── IOSVibrationService.java │ │ │ │ └── package-info.java │ │ └── module-info.java │ │ ├── native │ │ ├── android │ │ │ ├── c │ │ │ │ └── vibration.c │ │ │ └── dalvik │ │ │ │ └── DalvikVibrationService.java │ │ └── ios │ │ │ └── Vibration.m │ │ └── resources │ │ └── META-INF │ │ └── substrate │ │ ├── config │ │ ├── reflectionconfig-aarch64-android.json │ │ ├── reflectionconfig-arm64-ios.json │ │ └── reflectionconfig-x86_64-ios.json │ │ └── dalvik │ │ └── AndroidManifest.xml └── video │ ├── build.gradle │ └── src │ └── main │ ├── java │ ├── com │ │ └── gluonhq │ │ │ └── attach │ │ │ └── video │ │ │ ├── Status.java │ │ │ ├── VideoService.java │ │ │ ├── impl │ │ │ ├── AndroidVideoService.java │ │ │ ├── DefaultVideoService.java │ │ │ ├── DummyVideoService.java │ │ │ └── IOSVideoService.java │ │ │ └── package-info.java │ └── module-info.java │ ├── native │ ├── android │ │ ├── c │ │ │ └── video.c │ │ └── dalvik │ │ │ └── DalvikVideoService.java │ └── ios │ │ ├── Video.h │ │ └── Video.m │ └── resources │ └── META-INF │ └── substrate │ └── config │ ├── jniconfig-aarch64-android.json │ ├── jniconfig-arm64-ios.json │ ├── jniconfig-x86_64-ios.json │ ├── reflectionconfig-aarch64-android.json │ ├── reflectionconfig-arm64-ios.json │ └── reflectionconfig-x86_64-ios.json └── settings.gradle /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Attach Build 2 | on: 3 | push: 4 | branches: 5 | - master 6 | pull_request: 7 | branches: 8 | - master 9 | 10 | jobs: 11 | build: 12 | name: Build 13 | runs-on: macos-latest 14 | strategy: 15 | fail-fast: false 16 | steps: 17 | - name: Checkout 18 | uses: actions/checkout@v2 19 | with: 20 | fetch-depth: 5 21 | 22 | - name: Setup Java 23 | uses: actions/setup-java@v3 24 | with: 25 | distribution: 'temurin' 26 | java-version: '17' 27 | 28 | - name: Grant execute permission for gradlew 29 | run: chmod +x gradlew 30 | 31 | - name: Build project 32 | run: | 33 | export ANDROID_SDK=$ANDROID_HOME 34 | ./gradlew -i nativeBuild 35 | 36 | - name: Deploy Snapshot 37 | if: github.ref == 'refs/heads/master' 38 | run: | 39 | export ANDROID_SDK=$ANDROID_HOME 40 | ./gradlew publish -PsonatypeUsername=$SONATYPE_USERNAME -PsonatypePassword=$SONATYPE_PASSWORD 41 | env: 42 | SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} 43 | SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} 44 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Idea 2 | .idea/ 3 | *.iml 4 | 5 | # Gradle 6 | build/ 7 | .gradle/ 8 | 9 | # Netbeans 10 | /.nb-gradle/ 11 | 12 | # VS Code 13 | .classpath 14 | .project 15 | .settings/ 16 | .vscode/ 17 | bin/ 18 | 19 | # Compiled class file 20 | *.class 21 | 22 | # Log file 23 | *.log 24 | 25 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 26 | hs_err_pid* 27 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | group = com.gluonhq.attach 2 | version = 4.0.23-SNAPSHOT 3 | 4 | # disable publish of sha256, sha512 5 | systemProp.org.gradle.internal.publish.checksums.insecure=true 6 | -------------------------------------------------------------------------------- /gradle/android_project/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | mavenCentral() 4 | google() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:8.5.0' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | google() 14 | mavenCentral() 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /gradle/android_project/gradle.properties: -------------------------------------------------------------------------------- 1 | android.useAndroidX=true 2 | org.gradle.daemon=false 3 | org.gradle.jvmargs=-Xms512M -Xmx4g -XX:MaxMetaspaceSize=1g 4 | -------------------------------------------------------------------------------- /gradle/android_project/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gluonhq/attach/b6352c388476e62f3002498c5902a87dee1350a6/gradle/android_project/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/android_project/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip 6 | -------------------------------------------------------------------------------- /gradle/android_project/library/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | 5 | namespace 'com.gluonhq.helloandroid' 6 | 7 | compileSdkVersion 34 8 | 9 | defaultConfig { 10 | minSdkVersion 21 11 | targetSdkVersion 34 12 | } 13 | 14 | dependencies { 15 | compileOnly fileTree(dir: '../libs', include: '*.jar') 16 | } 17 | 18 | buildFeatures { 19 | buildConfig = false 20 | resValues = false 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /gradle/android_project/library/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /gradle/android_project/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':library' 2 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gluonhq/attach/b6352c388476e62f3002498c5902a87dee1350a6/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /modules/accelerometer/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':util') 3 | implementation project(":lifecycle") 4 | } 5 | 6 | ext { 7 | moduleName = 'com.gluonhq.attach.accelerometer' 8 | description = 'Common API to access accelerometer features' 9 | } -------------------------------------------------------------------------------- /modules/accelerometer/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.accelerometer.impl.AndroidAccelerometerService", 4 | "methods":[{"name":"notifyAcceleration","parameterTypes":["double","double","double","double"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/accelerometer/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.accelerometer.impl.IOSAccelerometerService", 4 | "methods":[{"name":"notifyAcceleration","parameterTypes":["double","double","double","double"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/accelerometer/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.accelerometer.impl.IOSAccelerometerService", 4 | "methods":[{"name":"notifyAcceleration","parameterTypes":["double","double","double","double"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/accelerometer/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.accelerometer.impl.AndroidAccelerometerService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/accelerometer/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.accelerometer.impl.IOSAccelerometerService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/accelerometer/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.accelerometer.impl.IOSAccelerometerService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/audio-recording/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':util') 3 | implementation project(':storage') 4 | } 5 | 6 | ext.moduleName = 'com.gluonhq.attach.audiorecording' 7 | ext.description = 'Common API to access audio recording features' -------------------------------------------------------------------------------- /modules/audio-recording/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.audiorecording.impl.IOSAudioRecordingService", 4 | "methods":[ 5 | {"name":"notifyRecordingStatus","parameterTypes":["boolean"]}, 6 | {"name":"notifyRecordingChunk","parameterTypes":["java.lang.String"]} 7 | ] 8 | } 9 | ] -------------------------------------------------------------------------------- /modules/audio-recording/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.audiorecording.impl.IOSAudioRecordingService", 4 | "methods":[ 5 | {"name":"notifyRecordingStatus","parameterTypes":["boolean"]}, 6 | {"name":"notifyRecordingChunk","parameterTypes":["java.lang.String"]} 7 | ] 8 | } 9 | ] -------------------------------------------------------------------------------- /modules/audio-recording/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.audiorecording.impl.DesktopAudioRecordingService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/audio-recording/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.audiorecording.impl.DesktopAudioRecordingService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/audio-recording/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.audiorecording.impl.IOSAudioRecordingService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/audio-recording/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.audiorecording.impl.DesktopAudioRecordingService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/audio-recording/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.audiorecording.impl.IOSAudioRecordingService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/audio-recording/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.audiorecording.impl.DesktopAudioRecordingService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/audio-recording/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-windows.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.audiorecording.impl.DesktopAudioRecordingService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/audio-recording/src/main/resources/META-INF/substrate/ios/Partial-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | UIFileSharingEnabled 6 | YES 7 | NSMicrophoneUsageDescription 8 | This app requires access to the microphone 9 | UIBackgroundModes 10 | 11 | audio 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /modules/audio/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(":util") 3 | implementation project(':storage') 4 | } 5 | 6 | ext.moduleName = 'com.gluonhq.attach.audio' 7 | ext.description = 'Common API to access audio features' -------------------------------------------------------------------------------- /modules/audio/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.audio.impl.AndroidAudioService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/audio/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.audio.impl.IOSAudioService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/audio/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.audio.impl.IOSAudioService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/augmented-reality/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':util') 3 | implementation project(':storage') 4 | } 5 | 6 | ext.moduleName = 'com.gluonhq.attach.augmentedreality' 7 | ext.description = 'Common API to access Augmented Reality features' -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.augmentedreality.impl.AndroidAugmentedRealityService", 4 | "methods":[ 5 | {"name":"notifyCancel","parameterTypes":[] }, 6 | {"name":"notifyAvailability","parameterTypes":["java.lang.String"] } 7 | ] 8 | } 9 | ] -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.augmentedreality.impl.IOSAugmentedRealityService", 4 | "methods":[{"name":"notifyCancel","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.augmentedreality.impl.IOSAugmentedRealityService", 4 | "methods":[{"name":"notifyCancel","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.augmentedreality.impl.AndroidAugmentedRealityService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.augmentedreality.impl.IOSAugmentedRealityService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.augmentedreality.impl.IOSAugmentedRealityService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/dalvik/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/dalvik/android-dependencies.txt: -------------------------------------------------------------------------------- 1 | implementation 'com.google.ar:core:1.20.0' 2 | implementation 'de.javagl:obj:0.3.0' 3 | -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/dalvik/assets/models/trigrid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gluonhq/attach/b6352c388476e62f3002498c5902a87dee1350a6/modules/augmented-reality/src/main/resources/META-INF/substrate/dalvik/assets/models/trigrid.png -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/dalvik/assets/shaders/ar_object.vert: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | uniform mat4 u_ModelView; 18 | uniform mat4 u_ModelViewProjection; 19 | 20 | attribute vec4 a_Position; 21 | attribute vec3 a_Normal; 22 | attribute vec2 a_TexCoord; 23 | 24 | varying vec3 v_ViewPosition; 25 | varying vec3 v_ViewNormal; 26 | varying vec2 v_TexCoord; 27 | varying vec3 v_ScreenSpacePosition; 28 | 29 | void main() { 30 | v_ViewPosition = (u_ModelView * a_Position).xyz; 31 | v_ViewNormal = normalize((u_ModelView * vec4(a_Normal, 0.0)).xyz); 32 | v_TexCoord = a_TexCoord; 33 | gl_Position = u_ModelViewProjection * a_Position; 34 | v_ScreenSpacePosition = gl_Position.xyz / gl_Position.w; 35 | } 36 | -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/dalvik/assets/shaders/background_show_depth_color_visualization.vert: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | attribute vec4 a_Position; 18 | attribute vec2 a_TexCoord; 19 | 20 | varying vec2 v_TexCoord; 21 | 22 | void main() { 23 | v_TexCoord = a_TexCoord; 24 | gl_Position = a_Position; 25 | } 26 | -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/dalvik/assets/shaders/object.vert: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | uniform mat4 u_ModelView; 18 | uniform mat4 u_ModelViewProjection; 19 | 20 | attribute vec4 a_Position; 21 | attribute vec3 a_Normal; 22 | attribute vec2 a_TexCoord; 23 | 24 | varying vec3 v_ViewPosition; 25 | varying vec3 v_ViewNormal; 26 | varying vec2 v_TexCoord; 27 | 28 | void main() { 29 | v_ViewPosition = (u_ModelView * a_Position).xyz; 30 | v_ViewNormal = normalize((u_ModelView * vec4(a_Normal, 0.0)).xyz); 31 | v_TexCoord = a_TexCoord; 32 | gl_Position = u_ModelViewProjection * a_Position; 33 | } 34 | -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/dalvik/assets/shaders/plane.frag: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | precision highp float; 18 | uniform sampler2D u_Texture; 19 | uniform vec4 u_gridControl; // dotThreshold, lineThreshold, lineFadeShrink, occlusionShrink 20 | varying vec3 v_TexCoordAlpha; 21 | 22 | void main() { 23 | vec4 control = texture2D(u_Texture, v_TexCoordAlpha.xy); 24 | float dotScale = v_TexCoordAlpha.z; 25 | float lineFade = max(0.0, u_gridControl.z * v_TexCoordAlpha.z - (u_gridControl.z - 1.0)); 26 | float alpha = (control.r * dotScale > u_gridControl.x) ? 1.0 27 | : (control.g > u_gridControl.y) ? lineFade 28 | : (0.25 * lineFade); 29 | gl_FragColor = vec4(alpha * v_TexCoordAlpha.z); 30 | } 31 | -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/dalvik/assets/shaders/plane.vert: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | uniform mat4 u_Model; 18 | uniform mat4 u_ModelViewProjection; 19 | uniform mat2 u_PlaneUvMatrix; 20 | uniform vec3 u_Normal; 21 | 22 | attribute vec3 a_XZPositionAlpha; // (x, z, alpha) 23 | 24 | varying vec3 v_TexCoordAlpha; 25 | 26 | void main() { 27 | vec4 local_pos = vec4(a_XZPositionAlpha.x, 0.0, a_XZPositionAlpha.y, 1.0); 28 | vec4 world_pos = u_Model * local_pos; 29 | 30 | // Construct two vectors that are orthogonal to the normal. 31 | // This arbitrary choice is not co-linear with either horizontal 32 | // or vertical plane normals. 33 | const vec3 arbitrary = vec3(1.0, 1.0, 0.0); 34 | vec3 vec_u = normalize(cross(u_Normal, arbitrary)); 35 | vec3 vec_v = normalize(cross(u_Normal, vec_u)); 36 | 37 | // Project vertices in world frame onto vec_u and vec_v. 38 | vec2 uv = vec2(dot(world_pos.xyz, vec_u), dot(world_pos.xyz, vec_v)); 39 | v_TexCoordAlpha = vec3(u_PlaneUvMatrix * uv, a_XZPositionAlpha.z); 40 | gl_Position = u_ModelViewProjection * local_pos; 41 | } 42 | -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/dalvik/assets/shaders/point_cloud.frag: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | precision mediump float; 18 | varying vec4 v_Color; 19 | 20 | void main() { 21 | gl_FragColor = v_Color; 22 | } 23 | -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/dalvik/assets/shaders/point_cloud.vert: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | uniform mat4 u_ModelViewProjection; 18 | uniform vec4 u_Color; 19 | uniform float u_PointSize; 20 | 21 | attribute vec4 a_Position; 22 | 23 | varying vec4 v_Color; 24 | 25 | void main() { 26 | v_Color = u_Color; 27 | gl_Position = u_ModelViewProjection * vec4(a_Position.xyz, 1.0); 28 | gl_PointSize = u_PointSize; 29 | } 30 | -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/dalvik/assets/shaders/screenquad.frag: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | #extension GL_OES_EGL_image_external : require 17 | 18 | precision mediump float; 19 | varying vec2 v_TexCoord; 20 | uniform samplerExternalOES sTexture; 21 | 22 | 23 | void main() { 24 | gl_FragColor = texture2D(sTexture, v_TexCoord); 25 | } 26 | -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/dalvik/assets/shaders/screenquad.vert: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 Google LLC 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | attribute vec4 a_Position; 18 | attribute vec2 a_TexCoord; 19 | 20 | varying vec2 v_TexCoord; 21 | 22 | void main() { 23 | gl_Position = a_Position; 24 | v_TexCoord = a_TexCoord; 25 | } 26 | -------------------------------------------------------------------------------- /modules/augmented-reality/src/main/resources/META-INF/substrate/dalvik/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | 5 | namespace 'com.gluonhq.helloandroid' 6 | 7 | compileSdkVersion 34 8 | 9 | defaultConfig { 10 | minSdkVersion 21 11 | targetSdkVersion 34 12 | } 13 | 14 | compileOptions { 15 | sourceCompatibility JavaVersion.VERSION_1_8 16 | targetCompatibility JavaVersion.VERSION_1_8 17 | } 18 | 19 | dependencies { 20 | compileOnly fileTree(dir: '../libs', include: '*.jar') 21 | implementation 'com.google.ar:core:1.20.0' 22 | implementation 'de.javagl:obj:0.3.0' 23 | } 24 | 25 | buildFeatures { 26 | buildConfig = false 27 | resValues = false 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /modules/barcode-scan/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':util') 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.barcodescan' 6 | ext.description = 'Common API to access barcode scan features' -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/java/com/gluonhq/attach/barcodescan/impl/DummyBarcodeScanService.java: -------------------------------------------------------------------------------- 1 | package com.gluonhq.attach.barcodescan.impl; 2 | 3 | import com.gluonhq.attach.barcodescan.BarcodeScanService; 4 | 5 | public abstract class DummyBarcodeScanService implements BarcodeScanService { 6 | } 7 | -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/native/android/dalvik/zxing/FinishListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2010 ZXing authors 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.gluonhq.helloandroid.zxing; 18 | 19 | import android.app.Activity; 20 | import android.content.DialogInterface; 21 | 22 | /** 23 | * Simple listener used to exit the app in a few cases. 24 | * 25 | * @author Sean Owen 26 | */ 27 | public final class FinishListener implements DialogInterface.OnClickListener, DialogInterface.OnCancelListener { 28 | 29 | private final Activity activityToFinish; 30 | 31 | public FinishListener(Activity activityToFinish) { 32 | this.activityToFinish = activityToFinish; 33 | } 34 | 35 | @Override 36 | public void onCancel(DialogInterface dialogInterface) { 37 | run(); 38 | } 39 | 40 | @Override 41 | public void onClick(DialogInterface dialogInterface, int i) { 42 | run(); 43 | } 44 | 45 | private void run() { 46 | activityToFinish.finish(); 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/native/android/dalvik/zxing/IntentSource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2011 ZXing authors 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.gluonhq.helloandroid.zxing; 18 | 19 | enum IntentSource { 20 | 21 | NATIVE_APP_INTENT, 22 | NONE 23 | 24 | } 25 | -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/native/android/dalvik/zxing/ViewfinderResultPointCallback.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009 ZXing authors 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.gluonhq.helloandroid.zxing; 18 | 19 | import com.google.zxing.ResultPoint; 20 | import com.google.zxing.ResultPointCallback; 21 | 22 | final class ViewfinderResultPointCallback implements ResultPointCallback { 23 | 24 | private final ViewfinderView viewfinderView; 25 | 26 | ViewfinderResultPointCallback(ViewfinderView viewfinderView) { 27 | this.viewfinderView = viewfinderView; 28 | } 29 | 30 | @Override 31 | public void foundPossibleResultPoint(ResultPoint point) { 32 | viewfinderView.addPossibleResultPoint(point); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/native/android/dalvik/zxing/camera/FrontLightMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 ZXing authors 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.gluonhq.helloandroid.zxing.camera; 18 | 19 | import android.content.SharedPreferences; 20 | import com.gluonhq.helloandroid.zxing.PreferencesActivity; 21 | 22 | /** 23 | * Enumerates settings of the preference controlling the front light. 24 | */ 25 | public enum FrontLightMode { 26 | 27 | /** Always on. */ 28 | ON, 29 | /** On only when ambient light is low. */ 30 | AUTO, 31 | /** Always off. */ 32 | OFF; 33 | 34 | private static FrontLightMode parse(String modeString) { 35 | return modeString == null ? OFF : valueOf(modeString); 36 | } 37 | 38 | public static FrontLightMode readPref(SharedPreferences sharedPrefs) { 39 | return parse(sharedPrefs.getString(PreferencesActivity.KEY_FRONT_LIGHT_MODE, OFF.toString())); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/native/android/dalvik/zxing/camera/open/CameraFacing.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 ZXing authors 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.gluonhq.helloandroid.zxing.camera.open; 18 | 19 | public enum CameraFacing { 20 | 21 | BACK, // must be value 0! 22 | FRONT, // must be value 1! 23 | 24 | } 25 | -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/native/android/dalvik/zxing/camera/open/OpenCamera.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 ZXing authors 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.gluonhq.helloandroid.zxing.camera.open; 18 | 19 | import android.hardware.Camera; 20 | 21 | @SuppressWarnings("deprecation") // camera APIs 22 | public final class OpenCamera { 23 | 24 | private final int index; 25 | private final Camera camera; 26 | private final CameraFacing facing; 27 | private final int orientation; 28 | 29 | public OpenCamera(int index, Camera camera, CameraFacing facing, int orientation) { 30 | this.index = index; 31 | this.camera = camera; 32 | this.facing = facing; 33 | this.orientation = orientation; 34 | } 35 | 36 | public Camera getCamera() { 37 | return camera; 38 | } 39 | 40 | public CameraFacing getFacing() { 41 | return facing; 42 | } 43 | 44 | public int getOrientation() { 45 | return orientation; 46 | } 47 | 48 | @Override 49 | public String toString() { 50 | return "Camera #" + index + " : " + facing + ',' + orientation; 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/native/android/dalvik/zxing/result/ResultHandlerFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 ZXing authors 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.gluonhq.helloandroid.zxing.result; 18 | 19 | import com.gluonhq.helloandroid.zxing.CaptureActivity; 20 | import com.google.zxing.Result; 21 | import com.google.zxing.client.result.ParsedResult; 22 | import com.google.zxing.client.result.ResultParser; 23 | 24 | /** 25 | * Manufactures Android-specific handlers based on the barcode content's type. 26 | * 27 | * @author dswitkin@google.com (Daniel Switkin) 28 | */ 29 | public final class ResultHandlerFactory { 30 | private ResultHandlerFactory() { 31 | } 32 | 33 | public static ResultHandler makeResultHandler(String resultText, CaptureActivity activity, Result rawResult) { 34 | ParsedResult result = parseResult(rawResult); 35 | return new TextResultHandler(resultText, activity, result); 36 | } 37 | 38 | private static ParsedResult parseResult(Result rawResult) { 39 | return ResultParser.parseResult(rawResult); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/native/android/dalvik/zxing/result/TextResultHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 ZXing authors 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.gluonhq.helloandroid.zxing.result; 18 | 19 | import com.google.zxing.client.result.ParsedResult; 20 | 21 | import android.app.Activity; 22 | 23 | /** 24 | * This class handles TextParsedResult as well as unknown formats. It's the fallback handler. 25 | * 26 | * @author dswitkin@google.com (Daniel Switkin) 27 | */ 28 | public final class TextResultHandler extends ResultHandler { 29 | 30 | private final String resultText; 31 | 32 | public TextResultHandler(String resultText, Activity activity, ParsedResult result) { 33 | super(activity, result); 34 | this.resultText = resultText; 35 | } 36 | 37 | @Override 38 | public String getDisplayTitle() { 39 | return resultText; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.barcodescan.impl.AndroidBarcodeScanService", 4 | "methods":[{"name":"setResult","parameterTypes":["java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.barcodescan.impl.IOSBarcodeScanService", 4 | "methods":[{"name":"setResult","parameterTypes":["java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.barcodescan.impl.IOSBarcodeScanService", 4 | "methods":[{"name":"setResult","parameterTypes":["java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.barcodescan.impl.AndroidBarcodeScanService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.barcodescan.impl.IOSBarcodeScanService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.barcodescan.impl.IOSBarcodeScanService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/resources/META-INF/substrate/dalvik/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/resources/META-INF/substrate/dalvik/android-dependencies.txt: -------------------------------------------------------------------------------- 1 | implementation 'com.google.zxing:core:3.4.1' 2 | -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/resources/META-INF/substrate/dalvik/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | 5 | namespace 'com.gluonhq.helloandroid' 6 | 7 | compileSdkVersion 34 8 | 9 | defaultConfig { 10 | minSdkVersion 21 11 | targetSdkVersion 34 12 | } 13 | 14 | dependencies { 15 | compileOnly fileTree(dir: '../libs', include: '*.jar') 16 | implementation 'com.google.zxing:core:3.4.1' 17 | } 18 | 19 | buildFeatures { 20 | buildConfig = false 21 | resValues = false 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /modules/barcode-scan/src/main/resources/META-INF/substrate/ios/Partial-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSCameraUsageDescription 6 | This app requires access to the camera to scan barcodes and/or QR codes 7 | 8 | 9 | -------------------------------------------------------------------------------- /modules/battery/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(":util") 3 | implementation project(":lifecycle") 4 | } 5 | 6 | ext.moduleName = 'com.gluonhq.attach.battery' 7 | ext.description = 'Common API to access battery features' -------------------------------------------------------------------------------- /modules/battery/src/main/java/com/gluonhq/attach/battery/impl/DummyBatteryService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019 Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.battery.impl; 29 | 30 | import com.gluonhq.attach.battery.BatteryService; 31 | 32 | public abstract class DummyBatteryService implements BatteryService { 33 | } 34 | -------------------------------------------------------------------------------- /modules/battery/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.battery.impl.AndroidBatteryService", 4 | "methods":[ 5 | {"name":"notifyBattery","parameterTypes":["float","boolean"]} 6 | ] 7 | } 8 | ] -------------------------------------------------------------------------------- /modules/battery/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.battery.impl.IOSBatteryService", 4 | "methods":[ 5 | {"name":"notifyBatteryLevel","parameterTypes":["float"]}, 6 | {"name":"notifyBatteryState","parameterTypes":["java.lang.String"]} 7 | ] 8 | } 9 | ] -------------------------------------------------------------------------------- /modules/battery/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.battery.impl.IOSBatteryService", 4 | "methods":[ 5 | {"name":"notifyBatteryLevel","parameterTypes":["float"]}, 6 | {"name":"notifyBatteryState","parameterTypes":["java.lang.String"]} 7 | ] 8 | } 9 | ] -------------------------------------------------------------------------------- /modules/battery/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.battery.impl.AndroidBatteryService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/battery/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.battery.impl.IOSBatteryService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/battery/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.battery.impl.IOSBatteryService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/ble/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':util') 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.ble' 6 | ext.description = 'Common API to access bluetooth low energy features' -------------------------------------------------------------------------------- /modules/ble/src/main/java/com/gluonhq/attach/ble/impl/DummyBleService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016, 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.ble.impl; 29 | 30 | import com.gluonhq.attach.ble.BleService; 31 | 32 | public abstract class DummyBleService implements BleService { 33 | } 34 | -------------------------------------------------------------------------------- /modules/ble/src/main/java/com/gluonhq/attach/ble/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | /** 30 | * API related to the {@link com.gluonhq.attach.ble.BleService BlueTooth Low Energy service}. 31 | */ 32 | package com.gluonhq.attach.ble; -------------------------------------------------------------------------------- /modules/ble/src/main/java/com/gluonhq/attach/ble/parser/BleParser.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.ble.parser; 29 | 30 | public interface BleParser { 31 | 32 | String parse(byte[] value); 33 | 34 | } 35 | -------------------------------------------------------------------------------- /modules/ble/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | module com.gluonhq.attach.ble { 29 | 30 | requires javafx.graphics; 31 | requires com.gluonhq.attach.util; 32 | 33 | exports com.gluonhq.attach.ble; 34 | exports com.gluonhq.attach.ble.impl to com.gluonhq.attach.util; 35 | } -------------------------------------------------------------------------------- /modules/ble/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.ble.impl.AndroidBleService", 4 | "methods":[ 5 | {"name":"setDetection","parameterTypes":["java.lang.String","int","int","int","int"] }, 6 | {"name":"gotPeripheral","parameterTypes":["java.lang.String","java.lang.String"] }, 7 | {"name":"gotState","parameterTypes":["java.lang.String","java.lang.String"] }, 8 | {"name":"gotProfile","parameterTypes":["java.lang.String","java.lang.String","java.lang.String"] }, 9 | {"name":"gotCharacteristic","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String"] }, 10 | {"name":"gotDescriptor","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String","byte[]"] }, 11 | {"name":"gotValue","parameterTypes":["java.lang.String","java.lang.String","byte[]"] } 12 | ] 13 | } 14 | ] 15 | 16 | -------------------------------------------------------------------------------- /modules/ble/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.ble.impl.IOSBleService", 4 | "methods":[ 5 | {"name":"setDetection","parameterTypes":["java.lang.String","int","int","int","int"] }, 6 | {"name":"gotPeripheral","parameterTypes":["java.lang.String","java.lang.String"] }, 7 | {"name":"gotState","parameterTypes":["java.lang.String","java.lang.String"] }, 8 | {"name":"gotProfile","parameterTypes":["java.lang.String","java.lang.String","boolean"] }, 9 | {"name":"removeProfile","parameterTypes":["java.lang.String","java.lang.String"] }, 10 | {"name":"gotCharacteristic","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String"] }, 11 | {"name":"gotValue","parameterTypes":["java.lang.String","java.lang.String","java.lang.String"] }, 12 | {"name":"gotDescriptor","parameterTypes":["java.lang.String","java.lang.String","java.lang.String"] } 13 | ] 14 | } 15 | ] -------------------------------------------------------------------------------- /modules/ble/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.ble.impl.IOSBleService", 4 | "methods":[ 5 | {"name":"setDetection","parameterTypes":["java.lang.String","int","int","int","int"] }, 6 | {"name":"gotPeripheral","parameterTypes":["java.lang.String","java.lang.String"] }, 7 | {"name":"gotState","parameterTypes":["java.lang.String","java.lang.String"] }, 8 | {"name":"gotProfile","parameterTypes":["java.lang.String","java.lang.String","boolean"] }, 9 | {"name":"removeProfile","parameterTypes":["java.lang.String","java.lang.String"] }, 10 | {"name":"gotCharacteristic","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String"] }, 11 | {"name":"gotValue","parameterTypes":["java.lang.String","java.lang.String","java.lang.String"] }, 12 | {"name":"gotDescriptor","parameterTypes":["java.lang.String","java.lang.String","java.lang.String"] } 13 | ] 14 | } 15 | ] -------------------------------------------------------------------------------- /modules/ble/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.ble.impl.AndroidBleService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] 7 | -------------------------------------------------------------------------------- /modules/ble/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.ble.impl.IOSBleService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/ble/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.ble.impl.IOSBleService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/ble/src/main/resources/META-INF/substrate/dalvik/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /modules/ble/src/main/resources/META-INF/substrate/ios/Partial-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSLocationUsageDescription 6 | This app requires access to the location information 7 | NSLocationAlwaysAndWhenInUseUsageDescription 8 | This app requires access to the location information at all times 9 | NSBluetoothAlwaysUsageDescription 10 | This app requires access to Bluetooth 11 | 12 | 13 | -------------------------------------------------------------------------------- /modules/browser/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':util') 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.browser' 6 | ext.description = 'Common API to access browser features' -------------------------------------------------------------------------------- /modules/browser/src/main/java/com/gluonhq/attach/browser/impl/DummyBrowserService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.browser.impl; 29 | 30 | import com.gluonhq.attach.browser.BrowserService; 31 | 32 | public abstract class DummyBrowserService implements BrowserService { 33 | } 34 | -------------------------------------------------------------------------------- /modules/browser/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | module com.gluonhq.attach.browser { 29 | 30 | requires com.gluonhq.attach.util; 31 | 32 | exports com.gluonhq.attach.browser; 33 | exports com.gluonhq.attach.browser.impl to com.gluonhq.attach.util; 34 | } -------------------------------------------------------------------------------- /modules/browser/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.browser.impl.AndroidBrowserService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/browser/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.browser.impl.DesktopBrowserService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/browser/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.browser.impl.DesktopBrowserService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/browser/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.browser.impl.IOSBrowserService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/browser/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.browser.impl.DesktopBrowserService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/browser/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.browser.impl.IOSBrowserService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/browser/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.browser.impl.DesktopBrowserService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/browser/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-windows.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.browser.impl.DesktopBrowserService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/browser/src/main/resources/META-INF/substrate/dalvik/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /modules/cache/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':util') 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.cache' 6 | ext.description = 'Common API to access cache features' -------------------------------------------------------------------------------- /modules/cache/src/main/java/com/gluonhq/attach/cache/impl/AndroidCacheService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016, 2020 Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.cache.impl; 29 | 30 | public class AndroidCacheService extends DefaultCacheService { 31 | 32 | } 33 | -------------------------------------------------------------------------------- /modules/cache/src/main/java/com/gluonhq/attach/cache/impl/DesktopCacheService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016, 2019 Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.cache.impl; 29 | 30 | public class DesktopCacheService extends DefaultCacheService { 31 | 32 | } 33 | -------------------------------------------------------------------------------- /modules/cache/src/main/java/com/gluonhq/attach/cache/impl/DummyCacheService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.cache.impl; 29 | 30 | import com.gluonhq.attach.cache.CacheService; 31 | 32 | // no-op 33 | public abstract class DummyCacheService implements CacheService { 34 | } 35 | -------------------------------------------------------------------------------- /modules/cache/src/main/java/com/gluonhq/attach/cache/impl/IOSCacheService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016, 2019 Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.cache.impl; 29 | 30 | public class IOSCacheService extends DefaultCacheService { 31 | 32 | } 33 | -------------------------------------------------------------------------------- /modules/cache/src/main/java/com/gluonhq/attach/cache/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016, 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | /** 30 | * Primary API package for Attach - Cache plugin, 31 | * contains the interface {@link com.gluonhq.attach.cache.CacheService} and related classes. 32 | */ 33 | package com.gluonhq.attach.cache; -------------------------------------------------------------------------------- /modules/cache/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | module com.gluonhq.attach.cache { 29 | 30 | requires com.gluonhq.attach.util; 31 | 32 | exports com.gluonhq.attach.cache; 33 | exports com.gluonhq.attach.cache.impl to com.gluonhq.attach.util; 34 | } -------------------------------------------------------------------------------- /modules/cache/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.cache.impl.AndroidCacheService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/cache/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.cache.impl.DesktopCacheService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/cache/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.cache.impl.DesktopCacheService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/cache/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.cache.impl.IOSCacheService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/cache/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.cache.impl.DesktopCacheService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/cache/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.cache.impl.IOSCacheService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/cache/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.cache.impl.DesktopCacheService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/cache/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-windows.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.cache.impl.DesktopCacheService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/compass/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(":util") 3 | implementation project(":magnetometer") 4 | } 5 | 6 | ext.moduleName = 'com.gluonhq.attach.compass' 7 | ext.description = 'Common API to access compass features' -------------------------------------------------------------------------------- /modules/compass/src/main/java/com/gluonhq/attach/compass/impl/AndroidCompassService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016, 2020, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.compass.impl; 29 | 30 | public class AndroidCompassService extends MobileCompassService { 31 | 32 | } 33 | -------------------------------------------------------------------------------- /modules/compass/src/main/java/com/gluonhq/attach/compass/impl/DummyCompassService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.compass.impl; 29 | 30 | import com.gluonhq.attach.compass.CompassService; 31 | 32 | public abstract class DummyCompassService implements CompassService { 33 | } 34 | -------------------------------------------------------------------------------- /modules/compass/src/main/java/com/gluonhq/attach/compass/impl/IOSCompassService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016, 2020, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.compass.impl; 29 | 30 | public class IOSCompassService extends MobileCompassService { 31 | 32 | } -------------------------------------------------------------------------------- /modules/compass/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.compass.impl.AndroidCompassService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/compass/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.compass.impl.IOSCompassService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/compass/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.compass.impl.IOSCompassService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/connectivity/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(":util") 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.connectivity' 6 | ext.description = 'Common API to access connectivity features' -------------------------------------------------------------------------------- /modules/connectivity/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.connectivity.impl.AndroidConnectivityService", 4 | "methods":[{"name":"notifyConnection","parameterTypes":["boolean"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/connectivity/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.connectivity.impl.AndroidConnectivityService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/connectivity/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.connectivity.impl.IOSConnectivityService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/connectivity/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.connectivity.impl.IOSConnectivityService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/connectivity/src/main/resources/META-INF/substrate/dalvik/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /modules/device/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(":util") 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.device' 6 | ext.description = 'Common API to access device features' -------------------------------------------------------------------------------- /modules/device/src/main/java/com/gluonhq/attach/device/impl/DummyDeviceServiceImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.device.impl; 29 | 30 | import com.gluonhq.attach.device.DeviceService; 31 | 32 | abstract class DummyDeviceServiceImpl implements DeviceService { 33 | } 34 | -------------------------------------------------------------------------------- /modules/device/src/main/java/com/gluonhq/attach/device/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016, 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | /** 30 | * Primary API package for Attach - Device plugin, 31 | * contains the interface {@link com.gluonhq.attach.device.DeviceService} and related classes. 32 | */ 33 | package com.gluonhq.attach.device; -------------------------------------------------------------------------------- /modules/device/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | module com.gluonhq.attach.device { 29 | 30 | requires com.gluonhq.attach.util; 31 | 32 | exports com.gluonhq.attach.device; 33 | exports com.gluonhq.attach.device.impl to com.gluonhq.attach.util; 34 | } 35 | -------------------------------------------------------------------------------- /modules/device/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.device.impl.DeviceInfo", 4 | "methods":[ 5 | {"name":"","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String","boolean","java.lang.String"] } 6 | ] 7 | } 8 | ] 9 | 10 | -------------------------------------------------------------------------------- /modules/device/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.device.impl.IOSDeviceService", 4 | "methods":[{"name":"sendDeviceData","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/device/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.device.impl.IOSDeviceService", 4 | "methods":[{"name":"sendDeviceData","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/device/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.device.impl.AndroidDeviceService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/device/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.device.impl.IOSDeviceService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/device/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.device.impl.IOSDeviceService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/dialer/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':util') 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.dialer' 6 | ext.description = 'Common API to access dialer features' -------------------------------------------------------------------------------- /modules/dialer/src/main/java/com/gluonhq/attach/dialer/impl/DummyDialerService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.dialer.impl; 29 | 30 | import com.gluonhq.attach.dialer.DialerService; 31 | 32 | public abstract class DummyDialerService implements DialerService { 33 | } 34 | -------------------------------------------------------------------------------- /modules/dialer/src/main/java/com/gluonhq/attach/dialer/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2016, 2019 Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | /** 30 | * Primary API package for Attach - Dialer plugin, 31 | * contains the interface {@link com.gluonhq.attach.dialer.DialerService} and related classes. 32 | */ 33 | package com.gluonhq.attach.dialer; -------------------------------------------------------------------------------- /modules/dialer/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | module com.gluonhq.attach.dialer { 29 | 30 | requires com.gluonhq.attach.util; 31 | 32 | exports com.gluonhq.attach.dialer; 33 | exports com.gluonhq.attach.dialer.impl to com.gluonhq.attach.util; 34 | } -------------------------------------------------------------------------------- /modules/dialer/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.dialer.impl.AndroidDialerService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/dialer/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.dialer.impl.IOSDialerService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/dialer/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.dialer.impl.IOSDialerService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/dialer/src/main/resources/META-INF/substrate/dalvik/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /modules/display/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(":util") 3 | implementation project(":lifecycle") 4 | } 5 | 6 | ext.moduleName = 'com.gluonhq.attach.display' 7 | ext.description = 'Common API to access display features' -------------------------------------------------------------------------------- /modules/display/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.display.impl.IOSDisplayService", 4 | "methods":[{"name":"notifyDisplay","parameterTypes":["java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/display/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.display.impl.IOSDisplayService", 4 | "methods":[{"name":"notifyDisplay","parameterTypes":["java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/display/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.display.impl.AndroidDisplayService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/display/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.display.impl.DesktopDisplayService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/display/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.display.impl.DesktopDisplayService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/display/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.display.impl.IOSDisplayService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/display/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.display.impl.DesktopDisplayService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/display/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.display.impl.IOSDisplayService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/display/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.display.impl.DesktopDisplayService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/display/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-windows.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.display.impl.DesktopDisplayService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/in-app-billing/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(":util") 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.inappbilling' 6 | ext.description = 'Common API to access in-app billing features' -------------------------------------------------------------------------------- /modules/in-app-billing/src/main/java/com/gluonhq/attach/inappbilling/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017, 2019 Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | /** 30 | * API related to the {@link com.gluonhq.attach.inappbilling.InAppBillingService} 31 | */ 32 | package com.gluonhq.attach.inappbilling; -------------------------------------------------------------------------------- /modules/in-app-billing/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.inappbilling.impl.IOSInAppBillingService", 4 | "methods":[ 5 | {"name":"setInAppReady","parameterTypes":["boolean"]}, 6 | {"name":"setProduct","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String"]}, 7 | {"name":"doneFetching","parameterTypes":["boolean"]}, 8 | {"name":"restorePurchases","parameterTypes":["java.lang.String"]}, 9 | {"name":"setPurchase","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String"]} 10 | ] 11 | } 12 | ] -------------------------------------------------------------------------------- /modules/in-app-billing/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.inappbilling.impl.IOSInAppBillingService", 4 | "methods":[ 5 | {"name":"setInAppReady","parameterTypes":["boolean"]}, 6 | {"name":"setProduct","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String"]}, 7 | {"name":"doneFetching","parameterTypes":["boolean"]}, 8 | {"name":"restorePurchases","parameterTypes":["java.lang.String"]}, 9 | {"name":"setPurchase","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String"]} 10 | ] 11 | } 12 | ] -------------------------------------------------------------------------------- /modules/in-app-billing/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.inappbilling.impl.IOSInAppBillingService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/in-app-billing/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.inappbilling.impl.IOSInAppBillingService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/keyboard/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(":util") 3 | implementation project(":lifecycle") 4 | } 5 | 6 | ext.moduleName = 'com.gluonhq.attach.keyboard' 7 | ext.description = 'Common API to access keyboard features' -------------------------------------------------------------------------------- /modules/keyboard/src/main/java/com/gluonhq/attach/keyboard/impl/DummyKeyboardService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.keyboard.impl; 29 | 30 | import com.gluonhq.attach.keyboard.KeyboardService; 31 | 32 | public abstract class DummyKeyboardService implements KeyboardService { 33 | } 34 | -------------------------------------------------------------------------------- /modules/keyboard/src/main/native/android/dalvik/KeyboardHeightListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.helloandroid; 29 | 30 | interface KeyboardHeightListener { 31 | void onHeightChanged(float height); 32 | } -------------------------------------------------------------------------------- /modules/keyboard/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.keyboard.impl.AndroidKeyboardService", 4 | "methods":[ 5 | {"name":"notifyVisibleHeight","parameterTypes":["float"]} 6 | ] 7 | } 8 | ] -------------------------------------------------------------------------------- /modules/keyboard/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.keyboard.impl.IOSKeyboardService", 4 | "methods":[ 5 | {"name":"notifyVisibleHeight","parameterTypes":["float"]} 6 | ] 7 | } 8 | ] -------------------------------------------------------------------------------- /modules/keyboard/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.keyboard.impl.IOSKeyboardService", 4 | "methods":[ 5 | {"name":"notifyVisibleHeight","parameterTypes":["float"]} 6 | ] 7 | } 8 | ] -------------------------------------------------------------------------------- /modules/keyboard/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.keyboard.impl.AndroidKeyboardService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/keyboard/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.keyboard.impl.IOSKeyboardService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/keyboard/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.keyboard.impl.IOSKeyboardService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/lifecycle/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(":util") 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.lifecycle' 6 | ext.description = 'Common API to access lifecycle features' -------------------------------------------------------------------------------- /modules/lifecycle/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.lifecycle.impl.AndroidLifecycleService", 4 | "methods":[{"name":"setEvent","parameterTypes":["java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/lifecycle/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.lifecycle.impl.IOSLifecycleService", 4 | "methods":[{"name":"setEvent","parameterTypes":["java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/lifecycle/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.lifecycle.impl.IOSLifecycleService", 4 | "methods":[{"name":"setEvent","parameterTypes":["java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/lifecycle/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.lifecycle.impl.AndroidLifecycleService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/lifecycle/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.lifecycle.impl.DesktopLifecycleService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/lifecycle/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.lifecycle.impl.DesktopLifecycleService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/lifecycle/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.lifecycle.impl.IOSLifecycleService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/lifecycle/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.lifecycle.impl.DesktopLifecycleService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/lifecycle/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.lifecycle.impl.IOSLifecycleService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/lifecycle/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.lifecycle.impl.DesktopLifecycleService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/lifecycle/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-windows.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.lifecycle.impl.DesktopLifecycleService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/local-notifications/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':util') 3 | implementation project(':runtime-args') 4 | implementation project(':storage') 5 | } 6 | 7 | ext.moduleName = 'com.gluonhq.attach.localnotifications' 8 | ext.description = 'Common API to access local notifications features' -------------------------------------------------------------------------------- /modules/local-notifications/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.localnotifications.impl.AndroidLocalNotificationsService", 4 | "methods":[{"name":"processRuntimeArgs","parameterTypes":["java.lang.String","java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/local-notifications/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.localnotifications.impl.AndroidLocalNotificationsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/local-notifications/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.localnotifications.impl.IOSLocalNotificationsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/local-notifications/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.localnotifications.impl.IOSLocalNotificationsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/local-notifications/src/main/resources/META-INF/substrate/dalvik/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 14 | 15 | 16 | 19 | 21 | 22 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /modules/magnetometer/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(":util") 3 | implementation project(":lifecycle") 4 | } 5 | 6 | ext.moduleName = 'com.gluonhq.attach.magnetometer' 7 | ext.description = 'Common API to access magnetometer features' -------------------------------------------------------------------------------- /modules/magnetometer/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.magnetometer.impl.AndroidMagnetometerService", 4 | "methods":[{"name":"notifyReading","parameterTypes":["double","double","double","double","double","double","double"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/magnetometer/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.magnetometer.impl.IOSMagnetometerService", 4 | "methods":[{"name":"notifyReading","parameterTypes":["double","double","double","double","double","double","double"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/magnetometer/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.magnetometer.impl.IOSMagnetometerService", 4 | "methods":[{"name":"notifyReading","parameterTypes":["double","double","double","double","double","double","double"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/magnetometer/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.magnetometer.impl.AndroidMagnetometerService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/magnetometer/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.magnetometer.impl.IOSMagnetometerService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/magnetometer/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.magnetometer.impl.IOSMagnetometerService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/orientation/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(":util") 3 | implementation project(":lifecycle") 4 | } 5 | 6 | ext.moduleName = 'com.gluonhq.attach.orientation' 7 | ext.description = 'Common API to access orientation features' -------------------------------------------------------------------------------- /modules/orientation/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.orientation.impl.AndroidOrientationService", 4 | "methods":[{"name":"notifyOrientation","parameterTypes":["java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/orientation/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.orientation.impl.IOSOrientationService", 4 | "methods":[{"name":"notifyOrientation","parameterTypes":["java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/orientation/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.orientation.impl.IOSOrientationService", 4 | "methods":[{"name":"notifyOrientation","parameterTypes":["java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/orientation/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.orientation.impl.AndroidOrientationService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/orientation/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.orientation.impl.IOSOrientationService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/orientation/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.orientation.impl.IOSOrientationService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/pictures/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(":util") 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.pictures' 6 | ext.description = 'Common API to access pictures features' -------------------------------------------------------------------------------- /modules/pictures/src/main/java/com/gluonhq/attach/pictures/impl/DummyPicturesService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.pictures.impl; 29 | 30 | import com.gluonhq.attach.pictures.PicturesService; 31 | 32 | public abstract class DummyPicturesService implements PicturesService { 33 | } 34 | -------------------------------------------------------------------------------- /modules/pictures/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | module com.gluonhq.attach.pictures { 29 | 30 | requires javafx.graphics; 31 | requires com.gluonhq.attach.util; 32 | 33 | exports com.gluonhq.attach.pictures; 34 | } -------------------------------------------------------------------------------- /modules/pictures/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.pictures.impl.AndroidPicturesService", 4 | "methods":[{"name":"setResult","parameterTypes":["java.lang.String", "int"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/pictures/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.pictures.impl.IOSPicturesService", 4 | "methods":[{"name":"setResult","parameterTypes":["java.lang.String","java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/pictures/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.pictures.impl.IOSPicturesService", 4 | "methods":[{"name":"setResult","parameterTypes":["java.lang.String","java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/pictures/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.pictures.impl.AndroidPicturesService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/pictures/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.pictures.impl.IOSPicturesService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/pictures/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.pictures.impl.IOSPicturesService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/pictures/src/main/resources/META-INF/substrate/dalvik/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /modules/pictures/src/main/resources/META-INF/substrate/dalvik/res/xml/file_provider_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /modules/pictures/src/main/resources/META-INF/substrate/ios/Partial-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSCameraUsageDescription 6 | This app requires access to the camera 7 | NSPhotoLibraryUsageDescription 8 | This app requires access to the photo library 9 | NSPhotoLibraryAddUsageDescription 10 | This app requires add-only access to the photo library 11 | 12 | 13 | -------------------------------------------------------------------------------- /modules/position/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':util') 3 | implementation project(':lifecycle') 4 | } 5 | 6 | ext.moduleName = 'com.gluonhq.attach.position' 7 | ext.description = 'Common API to access position features' -------------------------------------------------------------------------------- /modules/position/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.position.impl.AndroidPositionService", 4 | "methods":[ 5 | {"name":"","parameterTypes":[] }, 6 | {"name":"setLocation","parameterTypes":["double","double","double"] } 7 | ] 8 | } 9 | ] 10 | 11 | -------------------------------------------------------------------------------- /modules/position/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.position.impl.IOSPositionService", 4 | "methods":[{"name":"setLocation","parameterTypes":["double","double","double"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/position/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.position.impl.IOSPositionService", 4 | "methods":[{"name":"setLocation","parameterTypes":["double","double","double"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/position/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.position.impl.AndroidPositionService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] 7 | -------------------------------------------------------------------------------- /modules/position/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.position.impl.IOSPositionService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/position/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.position.impl.IOSPositionService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/position/src/main/resources/META-INF/substrate/config/resourceconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "resources": [ 4 | {"pattern": ".*\\.nor$" } 5 | ] 6 | } 7 | ] 8 | 9 | -------------------------------------------------------------------------------- /modules/position/src/main/resources/META-INF/substrate/dalvik/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /modules/position/src/main/resources/META-INF/substrate/ios/Partial-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSLocationUsageDescription 6 | This app requires access to the location information 7 | NSLocationWhenInUseUsageDescription 8 | This app requires access to the location information when in use 9 | 10 | 11 | -------------------------------------------------------------------------------- /modules/push-notifications/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(":util") 3 | implementation project(":runtime-args") 4 | implementation 'jakarta.json:jakarta.json-api:1.1.6' 5 | } 6 | 7 | ext.moduleName = 'com.gluonhq.attach.pushnotifications' 8 | ext.description = 'Common API to access push notifications features' -------------------------------------------------------------------------------- /modules/push-notifications/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.pushnotifications.impl.AndroidPushNotificationsService", 4 | "methods":[ 5 | {"name":"","parameterTypes":[]}, 6 | {"name":"setToken","parameterTypes":["java.lang.String"]}, 7 | {"name":"processRuntimeArgs","parameterTypes":["java.lang.String","java.lang.String"] } 8 | ] 9 | } 10 | ] -------------------------------------------------------------------------------- /modules/push-notifications/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.pushnotifications.impl.IOSPushNotificationsService", 4 | "methods":[ 5 | {"name":"failToRegisterForRemoteNotifications","parameterTypes":["java.lang.String"]}, 6 | {"name":"didRegisterForRemoteNotifications","parameterTypes":["java.lang.String"]} 7 | ] 8 | } 9 | ] -------------------------------------------------------------------------------- /modules/push-notifications/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.pushnotifications.impl.IOSPushNotificationsService", 4 | "methods":[ 5 | {"name":"failToRegisterForRemoteNotifications","parameterTypes":["java.lang.String"]}, 6 | {"name":"didRegisterForRemoteNotifications","parameterTypes":["java.lang.String"]} 7 | ] 8 | } 9 | ] -------------------------------------------------------------------------------- /modules/push-notifications/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.pushnotifications.impl.AndroidPushNotificationsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/push-notifications/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.pushnotifications.impl.IOSPushNotificationsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/push-notifications/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.pushnotifications.impl.IOSPushNotificationsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/push-notifications/src/main/resources/META-INF/substrate/dalvik/android-dependencies.txt: -------------------------------------------------------------------------------- 1 | implementation 'com.google.gms:google-services:4.4.1' 2 | implementation 'com.google.firebase:firebase-messaging:23.4.1' 3 | -------------------------------------------------------------------------------- /modules/push-notifications/src/main/resources/META-INF/substrate/dalvik/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | 5 | namespace 'com.gluonhq.helloandroid' 6 | 7 | compileSdkVersion 34 8 | 9 | defaultConfig { 10 | minSdkVersion 21 11 | targetSdkVersion 34 12 | } 13 | 14 | buildFeatures { 15 | buildConfig = false 16 | resValues = false 17 | } 18 | 19 | } 20 | 21 | repositories { 22 | google() 23 | } 24 | 25 | dependencies { 26 | compileOnly fileTree(dir: '../libs', include: '*.jar') 27 | implementation 'com.google.gms:google-services:4.4.1' 28 | implementation 'com.google.firebase:firebase-messaging:23.4.1' 29 | } -------------------------------------------------------------------------------- /modules/runtime-args/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':util') 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.runtimeargs' 6 | ext.description = 'Common API to for injecting runtime arguments into Attach applications, ' + 7 | 'and listening for these arguments.' -------------------------------------------------------------------------------- /modules/runtime-args/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | module com.gluonhq.attach.runtimeargs { 29 | 30 | requires com.gluonhq.attach.util; 31 | 32 | exports com.gluonhq.attach.runtimeargs; 33 | exports com.gluonhq.attach.runtimeargs.impl to com.gluonhq.attach.util; 34 | } -------------------------------------------------------------------------------- /modules/runtime-args/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.runtimeargs.impl.AndroidRuntimeArgsService", 4 | "methods":[{"name":"processRuntimeArgs","parameterTypes":["java.lang.String","java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/runtime-args/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.runtimeargs.impl.IOSRuntimeArgsService", 4 | "methods":[{"name":"processRuntimeArgs","parameterTypes":["java.lang.String","java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/runtime-args/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.runtimeargs.impl.IOSRuntimeArgsService", 4 | "methods":[{"name":"processRuntimeArgs","parameterTypes":["java.lang.String","java.lang.String"] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/runtime-args/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.runtimeargs.impl.AndroidRuntimeArgsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/runtime-args/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.runtimeargs.impl.DesktopRuntimeArgsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/runtime-args/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.runtimeargs.impl.DesktopRuntimeArgsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/runtime-args/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.runtimeargs.impl.IOSRuntimeArgsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/runtime-args/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.runtimeargs.impl.DesktopRuntimeArgsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/runtime-args/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.runtimeargs.impl.IOSRuntimeArgsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/runtime-args/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.runtimeargs.impl.DesktopRuntimeArgsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/runtime-args/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-windows.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.runtimeargs.impl.DesktopRuntimeArgsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/runtime-args/src/main/resources/META-INF/substrate/dalvik/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /modules/settings/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':util') 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.settings' 6 | ext.description = 'Common API to access settings features' -------------------------------------------------------------------------------- /modules/settings/src/main/java/com/gluonhq/attach/settings/impl/DummySettingsService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.settings.impl; 29 | 30 | import com.gluonhq.attach.settings.SettingsService; 31 | 32 | public abstract class DummySettingsService implements SettingsService { 33 | } 34 | -------------------------------------------------------------------------------- /modules/settings/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | module com.gluonhq.attach.settings { 29 | 30 | requires com.gluonhq.attach.util; 31 | 32 | exports com.gluonhq.attach.settings; 33 | exports com.gluonhq.attach.settings.impl to com.gluonhq.attach.util; 34 | } -------------------------------------------------------------------------------- /modules/settings/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.settings.impl.AndroidSettingsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/settings/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.settings.impl.DesktopSettingsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/settings/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.settings.impl.DesktopSettingsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/settings/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.settings.impl.IOSSettingsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/settings/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.settings.impl.DesktopSettingsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/settings/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.settings.impl.IOSSettingsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/settings/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.settings.impl.DesktopSettingsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/settings/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-windows.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.settings.impl.DesktopSettingsService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/share/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':util') 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.share' 6 | ext.description = 'Common API to access sharing features' -------------------------------------------------------------------------------- /modules/share/src/main/java/com/gluonhq/attach/share/impl/DummyShareService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.share.impl; 29 | 30 | import com.gluonhq.attach.share.ShareService; 31 | 32 | public abstract class DummyShareService implements ShareService { 33 | 34 | } 35 | -------------------------------------------------------------------------------- /modules/share/src/main/java/com/gluonhq/attach/share/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017, 2019 Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | /** 30 | * Primary API package for Attach - Share plugin, 31 | * contains the interface {@link com.gluonhq.attach.share.ShareService} and related classes. 32 | */ 33 | package com.gluonhq.attach.share; -------------------------------------------------------------------------------- /modules/share/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | module com.gluonhq.attach.share { 29 | 30 | requires com.gluonhq.attach.util; 31 | 32 | exports com.gluonhq.attach.share; 33 | exports com.gluonhq.attach.share.impl to com.gluonhq.attach.util; 34 | } -------------------------------------------------------------------------------- /modules/share/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.share.impl.AndroidShareService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/share/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.share.impl.IOSShareService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/share/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.share.impl.IOSShareService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/share/src/main/resources/META-INF/substrate/dalvik/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /modules/share/src/main/resources/META-INF/substrate/dalvik/res/xml/file_provider_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modules/share/src/main/resources/META-INF/substrate/ios/Partial-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPhotoLibraryUsageDescription 6 | This app requires access to the photo library 7 | 8 | 9 | -------------------------------------------------------------------------------- /modules/statusbar/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':util') 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.statusbar' 6 | ext.description = 'Common API to access status bar features' -------------------------------------------------------------------------------- /modules/statusbar/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.statusbar.impl.AndroidStatusBarService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/statusbar/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.statusbar.impl.IOSStatusBarService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/statusbar/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.statusbar.impl.IOSStatusBarService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/storage/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(":util") 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.storage' 6 | ext.description = 'Common API to access storage features' -------------------------------------------------------------------------------- /modules/storage/src/main/java/com/gluonhq/attach/storage/impl/DummyStorageServiceImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2022, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.storage.impl; 29 | 30 | import com.gluonhq.attach.storage.StorageService; 31 | 32 | abstract class DummyStorageServiceImpl implements StorageService { 33 | } 34 | -------------------------------------------------------------------------------- /modules/storage/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | module com.gluonhq.attach.storage { 29 | requires com.gluonhq.attach.util; 30 | 31 | exports com.gluonhq.attach.storage; 32 | exports com.gluonhq.attach.storage.impl to com.gluonhq.attach.util; 33 | } 34 | -------------------------------------------------------------------------------- /modules/storage/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.storage.impl.AndroidStorageService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] 7 | -------------------------------------------------------------------------------- /modules/storage/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.storage.impl.DesktopStorageService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/storage/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.storage.impl.DesktopStorageService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/storage/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.storage.impl.IOSStorageService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/storage/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.storage.impl.DesktopStorageService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/storage/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.storage.impl.IOSStorageService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/storage/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.storage.impl.DesktopStorageService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/storage/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-windows.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.storage.impl.DesktopStorageService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/storage/src/main/resources/META-INF/substrate/dalvik/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /modules/store-review/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(":util") 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.storereview' 6 | ext.description = 'Common API to request store ratings and review' -------------------------------------------------------------------------------- /modules/store-review/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2022, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | module com.gluonhq.attach.storereview { 29 | requires com.gluonhq.attach.util; 30 | 31 | exports com.gluonhq.attach.storereview; 32 | exports com.gluonhq.attach.storereview.impl to com.gluonhq.attach.util; 33 | } 34 | -------------------------------------------------------------------------------- /modules/store-review/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.storereview.impl.AndroidStoreReviewService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] 7 | -------------------------------------------------------------------------------- /modules/store-review/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.storereview.impl.IOSStoreReviewService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/store-review/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.storereview.impl.IOSStoreReviewService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/store-review/src/main/resources/META-INF/substrate/dalvik/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /modules/store-review/src/main/resources/META-INF/substrate/dalvik/android-dependencies.txt: -------------------------------------------------------------------------------- 1 | implementation 'com.google.android.play:core:1.10.0' 2 | -------------------------------------------------------------------------------- /modules/store-review/src/main/resources/META-INF/substrate/dalvik/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | 5 | namespace 'com.gluonhq.helloandroid' 6 | 7 | compileSdkVersion 34 8 | 9 | defaultConfig { 10 | minSdkVersion 21 11 | targetSdkVersion 34 12 | } 13 | 14 | buildFeatures { 15 | buildConfig = false 16 | resValues = false 17 | } 18 | 19 | } 20 | 21 | repositories { 22 | google() 23 | } 24 | 25 | dependencies { 26 | compileOnly fileTree(dir: '../libs', include: '*.jar') 27 | implementation 'com.google.android.play:core:1.10.0' 28 | } -------------------------------------------------------------------------------- /modules/util/build.gradle: -------------------------------------------------------------------------------- 1 | ext.moduleName = 'com.gluonhq.attach.util' 2 | ext.description = 'Common API' -------------------------------------------------------------------------------- /modules/util/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | module com.gluonhq.attach.util { 29 | 30 | requires javafx.graphics; 31 | requires transitive java.logging; 32 | 33 | exports com.gluonhq.attach.util; 34 | } -------------------------------------------------------------------------------- /modules/util/src/main/native/android/dalvik/IntentHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.helloandroid; 29 | 30 | import android.content.Intent; 31 | 32 | public interface IntentHandler { 33 | 34 | void gotActivityResult(int requestCode, int resultCode, Intent intent); 35 | 36 | } 37 | -------------------------------------------------------------------------------- /modules/util/src/main/native/android/dalvik/LifecycleEventHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.helloandroid; 29 | 30 | public interface LifecycleEventHandler { 31 | 32 | void lifecycleEvent(String event); 33 | 34 | } 35 | -------------------------------------------------------------------------------- /modules/util/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.util.impl.ClipboardUtils", 4 | "methods":[ 5 | {"name":"syncClipboardFromOS","parameterTypes":["java.lang.String"]}, 6 | {"name":"syncClipboardToOS","parameterTypes":[]} 7 | ] 8 | } 9 | ] 10 | -------------------------------------------------------------------------------- /modules/util/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.util.impl.ClipboardUtils", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] 7 | -------------------------------------------------------------------------------- /modules/version/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(":util") 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.version' 6 | ext.description = 'Common API to access app versioning features' -------------------------------------------------------------------------------- /modules/version/src/main/java/com/gluonhq/attach/version/impl/DummyVersionService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2021, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.version.impl; 29 | 30 | import com.gluonhq.attach.version.VersionService; 31 | 32 | public abstract class DummyVersionService implements VersionService { 33 | } 34 | -------------------------------------------------------------------------------- /modules/version/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2021, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | module com.gluonhq.attach.version { 29 | 30 | requires com.gluonhq.attach.util; 31 | 32 | exports com.gluonhq.attach.version; 33 | exports com.gluonhq.attach.version.impl to com.gluonhq.attach.util; 34 | } -------------------------------------------------------------------------------- /modules/version/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.version.impl.AndroidVersionService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/version/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.version.impl.DesktopVersionService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/version/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.version.impl.DesktopVersionService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/version/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.version.impl.IOSVersionService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/version/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-darwin.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.version.impl.DesktopVersionService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/version/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.version.impl.IOSVersionService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/version/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-linux.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.version.impl.DesktopVersionService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/version/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-windows.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.version.impl.DesktopVersionService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/vibration/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':util') 3 | } 4 | 5 | ext.moduleName = 'com.gluonhq.attach.vibration' 6 | ext.description = 'Common API to access vibration features' -------------------------------------------------------------------------------- /modules/vibration/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | module com.gluonhq.attach.vibration { 29 | 30 | requires com.gluonhq.attach.util; 31 | 32 | exports com.gluonhq.attach.vibration; 33 | exports com.gluonhq.attach.vibration.impl to com.gluonhq.attach.util; 34 | } -------------------------------------------------------------------------------- /modules/vibration/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.vibration.impl.AndroidVibrationService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/vibration/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.vibration.impl.IOSVibrationService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/vibration/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.vibration.impl.IOSVibrationService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/vibration/src/main/resources/META-INF/substrate/dalvik/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /modules/video/build.gradle: -------------------------------------------------------------------------------- 1 | dependencies { 2 | implementation project(':util') 3 | implementation project(':storage') 4 | } 5 | 6 | ext.moduleName = 'com.gluonhq.attach.video' 7 | ext.description = 'Common API to access video features' -------------------------------------------------------------------------------- /modules/video/src/main/java/com/gluonhq/attach/video/impl/DummyVideoService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2018, Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | package com.gluonhq.attach.video.impl; 29 | 30 | import com.gluonhq.attach.video.VideoService; 31 | 32 | // no-op 33 | public abstract class DummyVideoService implements VideoService { 34 | } 35 | -------------------------------------------------------------------------------- /modules/video/src/main/java/com/gluonhq/attach/video/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017, 2019 Gluon 3 | * 4 | * This program is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program. If not, see . 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 18 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL GLUON BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | /** 30 | * Primary API package for Attach - Video plugin, 31 | * contains the interface {@link com.gluonhq.attach.video.VideoService} and related classes. 32 | */ 33 | package com.gluonhq.attach.video; -------------------------------------------------------------------------------- /modules/video/src/main/resources/META-INF/substrate/config/jniconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.video.impl.AndroidVideoService", 4 | "methods":[ 5 | {"name":"updateStatus","parameterTypes":["int"]}, 6 | {"name":"updateFullScreen","parameterTypes":["boolean"]}, 7 | {"name":"updateCurrentIndex","parameterTypes":["int"]} 8 | ] 9 | } 10 | ] -------------------------------------------------------------------------------- /modules/video/src/main/resources/META-INF/substrate/config/jniconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.video.impl.IOSVideoService", 4 | "methods":[ 5 | {"name":"updateStatus","parameterTypes":["int"]}, 6 | {"name":"updateFullScreen","parameterTypes":["boolean"]}, 7 | {"name":"updateCurrentIndex","parameterTypes":["int"]} 8 | ] 9 | } 10 | ] -------------------------------------------------------------------------------- /modules/video/src/main/resources/META-INF/substrate/config/jniconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.video.impl.IOSVideoService", 4 | "methods":[ 5 | {"name":"updateStatus","parameterTypes":["int"]}, 6 | {"name":"updateFullScreen","parameterTypes":["boolean"]}, 7 | {"name":"updateCurrentIndex","parameterTypes":["int"]} 8 | ] 9 | } 10 | ] -------------------------------------------------------------------------------- /modules/video/src/main/resources/META-INF/substrate/config/reflectionconfig-aarch64-android.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.video.impl.AndroidVideoService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/video/src/main/resources/META-INF/substrate/config/reflectionconfig-arm64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.video.impl.IOSVideoService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] -------------------------------------------------------------------------------- /modules/video/src/main/resources/META-INF/substrate/config/reflectionconfig-x86_64-ios.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name" : "com.gluonhq.attach.video.impl.IOSVideoService", 4 | "methods":[{"name":"","parameterTypes":[] }] 5 | } 6 | ] --------------------------------------------------------------------------------