Copy disabled (too large)
Download .txt
Showing preview only (11,177K chars total). Download the full file to get everything.
Repository: HMS-Core/hms-react-native-plugin
Branch: master
Commit: 2092905c9b17
Files: 1595
Total size: 10.3 MB
Directory structure:
gitextract_n1z5l90w/
├── .github/
│ └── ISSUE_TEMPLATE/
│ └── issue-with-the-sample-code.md
├── LICENSE
├── README.md
├── react-native-hms-account/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── account/
│ │ ├── HMSAccountPackage.java
│ │ ├── constants/
│ │ │ └── ClassConstants.java
│ │ ├── logger/
│ │ │ └── HMSLogger.java
│ │ ├── modules/
│ │ │ ├── HMSAccount.java
│ │ │ ├── HMSAccountAuthManager.java
│ │ │ ├── HMSAccountAuthService.java
│ │ │ ├── HMSHuaweiIdAuthManager.java
│ │ │ ├── HMSHuaweiIdAuthTool.java
│ │ │ ├── HMSNetworkTool.java
│ │ │ └── HMSReadSMSManager.java
│ │ ├── utils/
│ │ │ └── Utils.java
│ │ └── views/
│ │ └── HMSHuaweiIdAuthButton.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── BUCK
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── account/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-ads/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ └── rn/
│ │ │ └── ads/
│ │ │ ├── HMSAdsBannerView.java
│ │ │ ├── HMSAdsInstallReferrerModule.java
│ │ │ ├── HMSAdsInstreamView.java
│ │ │ ├── HMSAdsInterstitialAdModule.java
│ │ │ ├── HMSAdsModule.java
│ │ │ ├── HMSAdsNativeView.java
│ │ │ ├── HMSAdsOaidModule.java
│ │ │ ├── HMSAdsPackage.java
│ │ │ ├── HMSAdsRewardAdModule.java
│ │ │ ├── HMSAdsSplashActivity.java
│ │ │ ├── HMSAdsSplashAdModule.java
│ │ │ ├── HMSAdsVastModule.java
│ │ │ ├── HMSAdsVastView.java
│ │ │ ├── custome/
│ │ │ │ └── CustomVideoController.java
│ │ │ ├── logger/
│ │ │ │ └── HMSLogger.java
│ │ │ └── utils/
│ │ │ ├── CommonUtils.java
│ │ │ ├── Constants.java
│ │ │ ├── ReactUtils.java
│ │ │ └── ResourceUtils.java
│ │ └── res/
│ │ ├── drawable/
│ │ │ ├── native_button_rounded_corners_shape.xml
│ │ │ └── native_flag_rounded_corners_shape.xml
│ │ ├── layout/
│ │ │ ├── activity_splash.xml
│ │ │ ├── activity_video_player.xml
│ │ │ ├── button_layout.xml
│ │ │ ├── media_view.xml
│ │ │ ├── native_small_template.xml
│ │ │ ├── native_video_template.xml
│ │ │ └── vast_template.xml
│ │ └── values/
│ │ └── strings.xml
│ ├── example/
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── ads/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── jest.config.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── Ads.js
│ ├── Banner.js
│ ├── InstallReferrer.js
│ ├── Instream.js
│ ├── Interstitial.js
│ ├── Native.js
│ ├── Oaid.js
│ ├── Reward.js
│ ├── Splash.js
│ ├── Vast.js
│ ├── VastView.js
│ ├── index.d.ts
│ ├── index.js
│ └── utils.js
├── react-native-hms-adsprime/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ └── rn/
│ │ │ └── ads/
│ │ │ ├── HMSAdsPrimeBannerView.java
│ │ │ ├── HMSAdsPrimeInstallReferrerModule.java
│ │ │ ├── HMSAdsPrimeInstreamView.java
│ │ │ ├── HMSAdsPrimeInterstitialAdModule.java
│ │ │ ├── HMSAdsPrimeModule.java
│ │ │ ├── HMSAdsPrimeNativeView.java
│ │ │ ├── HMSAdsPrimeOaidModule.java
│ │ │ ├── HMSAdsPrimePackage.java
│ │ │ ├── HMSAdsPrimeRewardAdModule.java
│ │ │ ├── HMSAdsPrimeSplashActivity.java
│ │ │ ├── HMSAdsPrimeSplashAdModule.java
│ │ │ ├── HMSAdsPrimeVastModule.java
│ │ │ ├── HMSAdsPrimeVastView.java
│ │ │ ├── custome/
│ │ │ │ └── CustomVideoController.java
│ │ │ ├── logger/
│ │ │ │ └── HMSLogger.java
│ │ │ └── utils/
│ │ │ ├── CommonUtils.java
│ │ │ ├── Constants.java
│ │ │ ├── ReactUtils.java
│ │ │ └── ResourceUtils.java
│ │ └── res/
│ │ ├── drawable/
│ │ │ ├── native_button_rounded_corners_shape.xml
│ │ │ └── native_flag_rounded_corners_shape.xml
│ │ ├── layout/
│ │ │ ├── activity_splash.xml
│ │ │ ├── activity_video_player.xml
│ │ │ ├── button_layout.xml
│ │ │ ├── media_view.xml
│ │ │ ├── native_small_template.xml
│ │ │ ├── native_video_template.xml
│ │ │ └── vast_template.xml
│ │ └── values/
│ │ └── strings.xml
│ ├── example/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── ads/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── jest.config.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── AdsPrime.js
│ ├── Banner.js
│ ├── InstallReferrer.js
│ ├── Instream.js
│ ├── Interstitial.js
│ ├── Native.js
│ ├── Oaid.js
│ ├── Reward.js
│ ├── Splash.js
│ ├── Vast.js
│ ├── VastView.js
│ ├── index.d.ts
│ ├── index.js
│ └── utils.js
├── react-native-hms-analytics/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── analytics/
│ │ ├── HMSAnalyticsModule.java
│ │ ├── HMSAnalyticsPackage.java
│ │ ├── HMSAnalyticsProvider.java
│ │ ├── HMSAnalyticsWrapper.java
│ │ └── logger/
│ │ └── HMSLogger.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── BUCK
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── analytics/
│ │ │ │ │ └── example/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── babel.config.js
│ │ ├── constants/
│ │ │ └── Data.js
│ │ ├── customViews/
│ │ │ ├── ComboBox.js
│ │ │ └── RenderComponent.js
│ │ ├── index.js
│ │ ├── ios/
│ │ │ ├── Example.swift
│ │ │ ├── Podfile
│ │ │ ├── example/
│ │ │ │ ├── AppDelegate.h
│ │ │ │ ├── AppDelegate.m
│ │ │ │ ├── Images.xcassets/
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Info.plist
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── main.m
│ │ │ ├── example-Bridging-Header.h
│ │ │ ├── example-tvOS/
│ │ │ │ └── Info.plist
│ │ │ ├── example-tvOSTests/
│ │ │ │ └── Info.plist
│ │ │ ├── example.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── xcshareddata/
│ │ │ │ └── xcschemes/
│ │ │ │ ├── example-tvOS.xcscheme
│ │ │ │ └── example.xcscheme
│ │ │ ├── example.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── exampleTests/
│ │ │ ├── Info.plist
│ │ │ └── exampleTests.m
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── ios/
│ │ ├── AnalyticsViewModel.swift
│ │ ├── HmsAnalytics-Bridging-Header.h
│ │ ├── HmsAnalytics.m
│ │ ├── HmsAnalytics.swift
│ │ ├── HmsAnalytics.xcodeproj/
│ │ │ └── project.pbxproj
│ │ ├── HmsAnalytics.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── IDEWorkspaceChecks.plist
│ │ ├── Logger.swift
│ │ └── Promise.swift
│ ├── package.json
│ ├── react-native-hms-analytics.podspec
│ └── src/
│ ├── constants/
│ │ ├── Constants.js
│ │ ├── HAEventType.js
│ │ ├── HAParamType.js
│ │ ├── HAUserProfileType.js
│ │ └── ReportPolicyType.js
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-ar/
│ ├── LICENCE
│ ├── README.md
│ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.txt
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ ├── plugin/
│ │ │ │ └── ar/
│ │ │ │ └── core/
│ │ │ │ ├── ARSetupFacade.java
│ │ │ │ ├── config/
│ │ │ │ │ ├── ARPluginConfigAugmentedImage.java
│ │ │ │ │ ├── ARPluginConfigBase.java
│ │ │ │ │ ├── ARPluginConfigBasePointLine.java
│ │ │ │ │ ├── ARPluginConfigBaseWorld.java
│ │ │ │ │ ├── ARPluginConfigBody.java
│ │ │ │ │ ├── ARPluginConfigFace.java
│ │ │ │ │ ├── ARPluginConfigHand.java
│ │ │ │ │ ├── ARPluginConfigSceneMesh.java
│ │ │ │ │ ├── ARPluginConfigWorld.java
│ │ │ │ │ ├── ARPluginConfigWorldBody.java
│ │ │ │ │ └── ColorRGBA.java
│ │ │ │ ├── helper/
│ │ │ │ │ ├── ArDemoRuntimeException.java
│ │ │ │ │ ├── AugmentedImage/
│ │ │ │ │ │ ├── CornerType.java
│ │ │ │ │ │ ├── ImageKeyBase.java
│ │ │ │ │ │ ├── ImageKeyLineDisplay.java
│ │ │ │ │ │ ├── ImageKeyPointDisplay.java
│ │ │ │ │ │ └── ImageShaderUtil.java
│ │ │ │ │ ├── CameraConfigListener.java
│ │ │ │ │ ├── CameraIntrinsicsListener.java
│ │ │ │ │ ├── DisplayRotationManager.java
│ │ │ │ │ ├── GestureEvent.java
│ │ │ │ │ ├── LabelDisplay.java
│ │ │ │ │ ├── MessageTextListener.java
│ │ │ │ │ ├── ObjectDisplay.java
│ │ │ │ │ ├── PluginCallbackHelper.java
│ │ │ │ │ ├── PointCloudRenderer.java
│ │ │ │ │ ├── SceneMesh/
│ │ │ │ │ │ ├── SceneMeshDisplay.java
│ │ │ │ │ │ └── SceneMeshDrawFrameListener.java
│ │ │ │ │ ├── TextureDisplay.java
│ │ │ │ │ ├── VirtualObject.java
│ │ │ │ │ ├── body/
│ │ │ │ │ │ ├── BodySkeletonDisplay.java
│ │ │ │ │ │ └── BodySkeletonLineDisplay.java
│ │ │ │ │ ├── face/
│ │ │ │ │ │ ├── FaceGeometryDisplay.java
│ │ │ │ │ │ └── FaceHealtyResult.java
│ │ │ │ │ └── hand/
│ │ │ │ │ ├── HandBoxDisplay.java
│ │ │ │ │ ├── HandSkeletonDisplay.java
│ │ │ │ │ └── HandSkeletonLineDisplay.java
│ │ │ │ ├── model/
│ │ │ │ │ └── AugmentedImageDBModel.java
│ │ │ │ ├── renderer/
│ │ │ │ │ ├── ARAugmentedImageRender.java
│ │ │ │ │ ├── ARBaseDrawObject.java
│ │ │ │ │ ├── ARBaseRenderer.java
│ │ │ │ │ ├── ARBodyRenderer.java
│ │ │ │ │ ├── ARCloud3DObjectRenderer.java
│ │ │ │ │ ├── ARFaceRenderer.java
│ │ │ │ │ ├── ARHandRenderer.java
│ │ │ │ │ ├── ARSceneMeshRenderer.java
│ │ │ │ │ ├── ARWorldBodyRenderer.java
│ │ │ │ │ └── ARWorldRenderer.java
│ │ │ │ ├── serializer/
│ │ │ │ │ ├── CommonSerializer.java
│ │ │ │ │ ├── PluginARAugmentedImageSerializer.java
│ │ │ │ │ ├── PluginARBodySerializer.java
│ │ │ │ │ ├── PluginARFaceSerializer.java
│ │ │ │ │ ├── PluginARHandSerializer.java
│ │ │ │ │ ├── PluginARPlaneSerializer.java
│ │ │ │ │ ├── PluginARTargetSerializer.java
│ │ │ │ │ └── PluginARTrackableSerializer.java
│ │ │ │ └── util/
│ │ │ │ ├── AREngineAvailability.java
│ │ │ │ ├── ApplicationUtil.java
│ │ │ │ ├── BodyShaderUtil.java
│ │ │ │ ├── ErrorUtil.java
│ │ │ │ ├── HandShaderUtil.java
│ │ │ │ ├── MatrixUtil.java
│ │ │ │ ├── ModeInformation.java
│ │ │ │ ├── OpenGLUtil.java
│ │ │ │ ├── SceneMeshShaderUtil.java
│ │ │ │ └── WorldShaderUtil.java
│ │ │ └── rn/
│ │ │ └── ar/
│ │ │ ├── ARSurfaceView.java
│ │ │ ├── HmsARModule.java
│ │ │ ├── HmsARPackage.java
│ │ │ ├── logger/
│ │ │ │ └── HMSLogger.java
│ │ │ └── utils/
│ │ │ ├── Converter.java
│ │ │ └── EnumGenerator.java
│ │ └── res/
│ │ └── drawable/
│ │ ├── colors.xml
│ │ └── scanningframe.xml
│ ├── example/
│ │ ├── App.js
│ │ ├── LICENCE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── BUCK
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── assets/
│ │ │ │ │ ├── AR_logo.obj
│ │ │ │ │ ├── blub.obj
│ │ │ │ │ └── bob.obj
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── ar/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-availability/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── availability/
│ │ ├── HMSAvailabilityModule.java
│ │ ├── HMSAvailabilityPackage.java
│ │ └── Util.java
│ ├── example/
│ │ ├── LICENSE
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── availability/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── jest.config.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── App.js
│ │ └── styles.js
│ ├── package.json
│ └── src/
│ ├── Availability.js
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-awareness/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── awareness/
│ │ ├── HMSAwarenessPackage.java
│ │ ├── constants/
│ │ │ ├── Constants.java
│ │ │ └── LocaleConstants.java
│ │ ├── logger/
│ │ │ └── HMSLogger.java
│ │ ├── modules/
│ │ │ ├── HMSAwarenessBarrierModule.java
│ │ │ ├── HMSAwarenessCaptureModule.java
│ │ │ └── HMSLoggerModule.java
│ │ ├── utils/
│ │ │ ├── BackgroundBarrierReceiver.java
│ │ │ ├── BarrierReceiver.java
│ │ │ ├── DataUtils.java
│ │ │ └── TaskService.java
│ │ └── wrapper/
│ │ ├── AwarenessBarrierWrapper.java
│ │ ├── AwarenessCaptureWrapper.java
│ │ └── AwarenessCombinationBarrierWrapper.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── awareness/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── babel.config.js
│ │ ├── components/
│ │ │ ├── Barrier.js
│ │ │ ├── Capture.js
│ │ │ └── UpdateBarrier.js
│ │ ├── constants/
│ │ │ ├── Colors.js
│ │ │ └── Data.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── index.js
│ └── package.json
├── react-native-hms-contactshield/
│ ├── LICENCE
│ ├── README.md
│ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.txt
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── contactshield/
│ │ ├── HMSContactShieldModule.java
│ │ ├── HMSContactShieldPackage.java
│ │ ├── constants/
│ │ │ ├── IntentAction.java
│ │ │ └── RequestCode.java
│ │ ├── handlers/
│ │ │ ├── ContactShieldBroadcastReceiver.java
│ │ │ └── ContactShieldCallbackHandler.java
│ │ ├── logger/
│ │ │ └── HMSLogger.java
│ │ └── utils/
│ │ ├── ObjectProvider.java
│ │ └── Utils.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── contactshield/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-dtm/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── dtm/
│ │ ├── HMSDtmModule.java
│ │ ├── HMSDtmPackage.java
│ │ ├── HMSDtmProvider.java
│ │ ├── HMSDtmWrapper.java
│ │ ├── helpers/
│ │ │ ├── ContextHolder.java
│ │ │ └── MapHelper.java
│ │ ├── interfaces/
│ │ │ ├── CustomTag.java
│ │ │ └── CustomVariable.java
│ │ └── logger/
│ │ └── HMSLogger.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── BUCK
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── dtm/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-health/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── health/
│ │ ├── HmsHealthPackage.java
│ │ ├── foundation/
│ │ │ ├── constant/
│ │ │ │ └── Constants.java
│ │ │ ├── helper/
│ │ │ │ ├── ResultHelper.java
│ │ │ │ └── VoidResultHelper.java
│ │ │ ├── listener/
│ │ │ │ ├── ResultListener.java
│ │ │ │ └── VoidResultListener.java
│ │ │ ├── util/
│ │ │ │ ├── ExceptionHandler.java
│ │ │ │ ├── HMSLogger.java
│ │ │ │ ├── MapUtils.java
│ │ │ │ └── Utils.java
│ │ │ └── view/
│ │ │ ├── BaseController.java
│ │ │ └── BaseProtocol.java
│ │ └── kits/
│ │ ├── account/
│ │ │ ├── HmsHealthAccount.java
│ │ │ ├── listener/
│ │ │ │ └── AccountResultListener.java
│ │ │ ├── util/
│ │ │ │ ├── AccountConstants.java
│ │ │ │ └── AccountUtils.java
│ │ │ └── viewmodel/
│ │ │ ├── AccountService.java
│ │ │ └── AccountViewModel.java
│ │ ├── activityrecords/
│ │ │ ├── HmsActivityRecordsController.java
│ │ │ ├── receiver/
│ │ │ │ └── ActivityRecordsMonitorReceiver.java
│ │ │ ├── util/
│ │ │ │ ├── ActivityRecordBackgroundService.java
│ │ │ │ ├── ActivityRecordsConstants.java
│ │ │ │ └── ActivityRecordsUtils.java
│ │ │ └── viewmodel/
│ │ │ ├── ActivityRecordsService.java
│ │ │ └── ActivityRecordsViewModel.java
│ │ ├── autorecorder/
│ │ │ ├── HmsAutoRecorderController.java
│ │ │ ├── listener/
│ │ │ │ ├── RecordListResultListener.java
│ │ │ │ └── TaskVoidResultListener.java
│ │ │ ├── utils/
│ │ │ │ ├── AutoRecorderBackgroundService.java
│ │ │ │ └── AutoRecorderConstants.java
│ │ │ └── viewmodel/
│ │ │ ├── AutoRecorderService.java
│ │ │ └── AutoRecorderViewModel.java
│ │ ├── consents/
│ │ │ ├── HmsConsentsController.java
│ │ │ └── viewmodel/
│ │ │ ├── ConsentsService.java
│ │ │ └── ConsentsViewModel.java
│ │ ├── datacontroller/
│ │ │ ├── HmsDataController.java
│ │ │ ├── model/
│ │ │ │ └── OptionModel.java
│ │ │ ├── util/
│ │ │ │ ├── DataControllerConstants.java
│ │ │ │ └── DataControllerUtils.java
│ │ │ └── viewmodel/
│ │ │ ├── DataService.java
│ │ │ └── DataViewModel.java
│ │ ├── healthrecordcontroller/
│ │ │ ├── HmsHealthRecordController.java
│ │ │ ├── util/
│ │ │ │ └── HealthRecordControllerUtils.java
│ │ │ └── viewmodel/
│ │ │ ├── HealthRecordService.java
│ │ │ └── HealthRecordViewModel.java
│ │ └── settings/
│ │ ├── HmsSettingController.java
│ │ └── viewmodel/
│ │ ├── SettingsService.java
│ │ └── SettingsViewModel.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── BUCK
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── health/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── ActivityRecordsController.js
│ │ ├── AutoRecorderController.js
│ │ ├── ConsentsController.js
│ │ ├── DataController.js
│ │ ├── HealthRecordController.js
│ │ ├── MainPage.js
│ │ ├── SettingController.js
│ │ ├── Utils.js
│ │ └── styles.js
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-iap/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── README.md
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── iap/
│ │ ├── HMSIapModule.java
│ │ ├── HMSIapPackage.java
│ │ └── client/
│ │ ├── Helper.java
│ │ ├── logger/
│ │ │ └── HMSLogger.java
│ │ ├── utils/
│ │ │ ├── Constants.java
│ │ │ ├── DataUtils.java
│ │ │ ├── ExceptionHandler.java
│ │ │ └── MapUtil.java
│ │ └── viewmodel/
│ │ ├── Service.java
│ │ └── ViewModel.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── iap/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── HmsIapModule.js
│ │ ├── foundation/
│ │ │ ├── ProductTypes.js
│ │ │ └── PurchaseTypes.js
│ │ ├── ui/
│ │ │ ├── AvailableProductsListView.js
│ │ │ ├── PartialView.js
│ │ │ ├── PurchaseRecordListView.js
│ │ │ ├── PurchasedProductListView.js
│ │ │ └── TitleView.js
│ │ └── utils/
│ │ ├── Globals.js
│ │ └── Utils.js
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-location/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── location/
│ │ ├── RNHMSLocationPackage.java
│ │ ├── RNLocationBroadcastReceiver.java
│ │ ├── RNTaskService.java
│ │ ├── backend/
│ │ │ ├── helpers/
│ │ │ │ ├── Constants.java
│ │ │ │ ├── Exceptions.java
│ │ │ │ ├── HMSBroadcastReceiver.java
│ │ │ │ ├── LocationCallbackWithHandler.java
│ │ │ │ └── Pair.java
│ │ │ ├── interfaces/
│ │ │ │ ├── EventSender.java
│ │ │ │ ├── HMSCallback.java
│ │ │ │ ├── HMSProvider.java
│ │ │ │ ├── JSONMapper.java
│ │ │ │ ├── JSONTriMapper.java
│ │ │ │ ├── Mapper.java
│ │ │ │ ├── PermissionHandler.java
│ │ │ │ ├── ResultHandler.java
│ │ │ │ └── TriMapper.java
│ │ │ ├── logger/
│ │ │ │ ├── HMSLogger.java
│ │ │ │ └── HMSMethod.java
│ │ │ ├── providers/
│ │ │ │ ├── ActivityIdentificationProvider.java
│ │ │ │ ├── FusedLocationProvider.java
│ │ │ │ ├── GeocoderProvider.java
│ │ │ │ └── GeofenceProvider.java
│ │ │ └── utils/
│ │ │ ├── ActivityUtils.java
│ │ │ ├── GeocoderUtils.java
│ │ │ ├── GeofenceUtils.java
│ │ │ ├── LocationUtils.java
│ │ │ ├── PermissionUtils.java
│ │ │ └── PlatformUtils.java
│ │ ├── helpers/
│ │ │ ├── RNCallback.java
│ │ │ └── ReactUtils.java
│ │ └── modules/
│ │ ├── RNActivityIdentificationModule.java
│ │ ├── RNFusedLocationModule.java
│ │ ├── RNGeocoderModule.java
│ │ ├── RNGeofenceModule.java
│ │ └── RNLocationKitModule.java
│ ├── example/
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── location/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ ├── index.js
│ └── modules/
│ ├── ActivityIdentification.js
│ ├── FusedLocation.js
│ ├── Geocoder.js
│ ├── Geofence.js
│ └── LocationKit.js
├── react-native-hms-map/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── map/
│ │ ├── HMSCircleView.java
│ │ ├── HMSGroundOverlayView.java
│ │ ├── HMSHeatMapView.java
│ │ ├── HMSInfoWindowView.java
│ │ ├── HMSMapPackage.java
│ │ ├── HMSMapView.java
│ │ ├── HMSMarkerView.java
│ │ ├── HMSPolygonView.java
│ │ ├── HMSPolylineView.java
│ │ ├── HMSTileOverlayView.java
│ │ ├── logger/
│ │ │ └── HMSLogger.java
│ │ └── utils/
│ │ ├── ReactUtils.java
│ │ ├── UriIconController.java
│ │ └── UriIconView.java
│ ├── example/
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── BUCK
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── rnhmsmapdemo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── earthquakes_with_usa.json
│ │ ├── index.js
│ │ ├── mapStyle.json
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ ├── screens/
│ │ │ ├── AdvancedMap.js
│ │ │ ├── BasicMap.js
│ │ │ ├── CameraControl.js
│ │ │ ├── Gestures.js
│ │ │ ├── HeatMap.js
│ │ │ ├── Location.js
│ │ │ ├── MapLayers.js
│ │ │ ├── MapStyle.js
│ │ │ └── Markers.js
│ │ └── styles/
│ │ └── styles.js
│ ├── package.json
│ └── src/
│ ├── CircleView.js
│ ├── GroundOverlayView.js
│ ├── HeatMapView.js
│ ├── InfoWindowView.js
│ ├── MapView.js
│ ├── MarkerView.js
│ ├── PolygonView.js
│ ├── PolylineView.js
│ ├── TileOverlayView.js
│ ├── constants.js
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-ml/
│ ├── LICENCE
│ ├── README.md
│ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.txt
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ └── rn/
│ │ │ └── ml/
│ │ │ ├── HMSBase.java
│ │ │ ├── HMSML.java
│ │ │ ├── commonservices/
│ │ │ │ ├── HMSApplication.java
│ │ │ │ ├── HMSComposite.java
│ │ │ │ └── HMSLensEngine.java
│ │ │ ├── facebodyrelatedservices/
│ │ │ │ ├── HMSFaceRecognition.java
│ │ │ │ ├── HMSFaceVerification.java
│ │ │ │ ├── HMSGestureDetection.java
│ │ │ │ ├── HMSHandKeypointDetection.java
│ │ │ │ ├── HMSLivenessDetection.java
│ │ │ │ └── HMSSkeletonDetection.java
│ │ │ ├── helpers/
│ │ │ │ ├── adapters/
│ │ │ │ │ └── HMSBottomSheetAdapter.java
│ │ │ │ ├── constants/
│ │ │ │ │ ├── HMSConstants.java
│ │ │ │ │ └── HMSResults.java
│ │ │ │ ├── creators/
│ │ │ │ │ ├── HMSObjectCreator.java
│ │ │ │ │ └── HMSResultCreator.java
│ │ │ │ ├── fragments/
│ │ │ │ │ └── HMSProductFragment.java
│ │ │ │ ├── models/
│ │ │ │ │ └── HMSProductModel.java
│ │ │ │ ├── transactors/
│ │ │ │ │ ├── HMS2DFaceAnalyzerTransactor.java
│ │ │ │ │ ├── HMS3DFaceAnalyzerTransactor.java
│ │ │ │ │ ├── HMSBaseTransactor.java
│ │ │ │ │ ├── HMSClassificationAnalyzerTransactor.java
│ │ │ │ │ ├── HMSGestureTransactor.java
│ │ │ │ │ ├── HMSHandKeypointTransactor.java
│ │ │ │ │ ├── HMSObjectAnalyzerTransactor.java
│ │ │ │ │ ├── HMSSceneDetectionAnalyzerTransactor.java
│ │ │ │ │ ├── HMSSkeletonAnalyzerTransactor.java
│ │ │ │ │ └── HMSTextAnalyzerTransactor.java
│ │ │ │ ├── utils/
│ │ │ │ │ ├── HMSBackgroundTasks.java
│ │ │ │ │ ├── HMSLogger.java
│ │ │ │ │ └── HMSUtils.java
│ │ │ │ └── views/
│ │ │ │ ├── HMSBottomSheetGridView.java
│ │ │ │ ├── HMSCustomSurfaceView.java
│ │ │ │ └── HMSSurfaceView.java
│ │ │ ├── imagerelatedservices/
│ │ │ │ ├── HMSDocumentSkewCorrection.java
│ │ │ │ ├── HMSFrame.java
│ │ │ │ ├── HMSImageClassification.java
│ │ │ │ ├── HMSImageSegmentation.java
│ │ │ │ ├── HMSImageSuperResolution.java
│ │ │ │ ├── HMSLandmarkRecognition.java
│ │ │ │ ├── HMSObjectRecognition.java
│ │ │ │ ├── HMSProductVisionSearch.java
│ │ │ │ ├── HMSSceneDetection.java
│ │ │ │ └── HMSTextImageSuperResolution.java
│ │ │ ├── languagevoicerelatedservices/
│ │ │ │ ├── HMSAft.java
│ │ │ │ ├── HMSAsr.java
│ │ │ │ ├── HMSLanguageDetection.java
│ │ │ │ ├── HMSSoundDetect.java
│ │ │ │ ├── HMSSpeechRtt.java
│ │ │ │ ├── HMSTextToSpeech.java
│ │ │ │ └── HMSTranslate.java
│ │ │ ├── modelrelatedservices/
│ │ │ │ ├── HMSCustomModel.java
│ │ │ │ └── HMSModelDownload.java
│ │ │ ├── nlprelatedservices/
│ │ │ │ └── HMSTextEmbedding.java
│ │ │ └── textrelatedservices/
│ │ │ ├── HMSBankCardRecognition.java
│ │ │ ├── HMSDocumentRecognition.java
│ │ │ ├── HMSFormRecognition.java
│ │ │ ├── HMSGeneralCardRecognition.java
│ │ │ ├── HMSIDCardRecognition.java
│ │ │ ├── HMSTextRecognition.java
│ │ │ └── HMSVietnamCardRecognition.java
│ │ └── res/
│ │ └── layout/
│ │ ├── hms_product_fragment.xml
│ │ └── hms_product_item.xml
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── ml/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── HmsFaceBodyRelatedServices/
│ │ │ ├── FaceRecognition.js
│ │ │ ├── FaceRecognitionLive.js
│ │ │ ├── FaceVerification.js
│ │ │ ├── GestureDetection.js
│ │ │ ├── GestureDetectionLive.js
│ │ │ ├── HandDetection.js
│ │ │ ├── HandDetectionLive.js
│ │ │ ├── LivenessDetection.js
│ │ │ ├── SkeletonDetection.js
│ │ │ └── SkeletonDetectionLive.js
│ │ ├── HmsImageRelatedServices/
│ │ │ ├── DocumentSkewCorrection.js
│ │ │ ├── Frame.js
│ │ │ ├── ImageClassification.js
│ │ │ ├── ImageClassificationLive.js
│ │ │ ├── ImageSegmentation.js
│ │ │ ├── ImageSuperResolution.js
│ │ │ ├── LandmarkRecognition.js
│ │ │ ├── ObjectDetection.js
│ │ │ ├── ObjectDetectionLive.js
│ │ │ ├── ProductVisualSearch.js
│ │ │ ├── SceneDetection.js
│ │ │ ├── SceneDetectionLive.js
│ │ │ └── TextImageSuperResolution.js
│ │ ├── HmsLanguageVoiceRelatedServices/
│ │ │ ├── AudioFileTranscription.js
│ │ │ ├── AutomaticSpeechRecognition.js
│ │ │ ├── LanguageDetection.js
│ │ │ ├── RealTimeTranscription.js
│ │ │ ├── SoundDetection.js
│ │ │ ├── TextToSpeech.js
│ │ │ └── Translation.js
│ │ ├── HmsNaturalLanguageProcessingServices/
│ │ │ └── TextEmbedding.js
│ │ ├── HmsOtherServices/
│ │ │ ├── CustomModel.js
│ │ │ ├── HMSCompositeAnalyzer.js
│ │ │ ├── Helper.js
│ │ │ └── ModelDownload.js
│ │ ├── HmsTextRelatedServices/
│ │ │ ├── BankCardRecognition.js
│ │ │ ├── DocumentRecognition.js
│ │ │ ├── FormRecognition.js
│ │ │ ├── GeneralCardRecognition.js
│ │ │ ├── IDCardRecognition.js
│ │ │ ├── TextRecognition.js
│ │ │ ├── TextRecognitionLive.js
│ │ │ └── VietnamIDCardRecognition.js
│ │ ├── StartPage.js
│ │ └── Styles.js
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-mlbody/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ └── rn/
│ │ │ └── mlbody/
│ │ │ ├── HMSBase.java
│ │ │ ├── HMSMLBody.java
│ │ │ ├── commonservices/
│ │ │ │ ├── HMSApplication.java
│ │ │ │ └── HMSLensEngine.java
│ │ │ ├── facebodyrelatedservices/
│ │ │ │ ├── HMSFaceRecognition.java
│ │ │ │ ├── HMSFaceVerification.java
│ │ │ │ ├── HMSGestureDetection.java
│ │ │ │ ├── HMSHandKeypointDetection.java
│ │ │ │ ├── HMSInteractiveCustomLivenessDetectionActivity.java
│ │ │ │ ├── HMSInteractiveLivenessCustomDetectionHandler.java
│ │ │ │ ├── HMSInteractiveLivenessDetection.java
│ │ │ │ ├── HMSLivenessDetection.java
│ │ │ │ └── HMSSkeletonDetection.java
│ │ │ └── helpers/
│ │ │ ├── constants/
│ │ │ │ ├── HMSConstants.java
│ │ │ │ └── HMSResults.java
│ │ │ ├── creators/
│ │ │ │ ├── HMSObjectCreator.java
│ │ │ │ └── HMSResultCreator.java
│ │ │ ├── transactors/
│ │ │ │ ├── HMS2DFaceAnalyzerTransactor.java
│ │ │ │ ├── HMS3DFaceAnalyzerTransactor.java
│ │ │ │ ├── HMSBaseTransactor.java
│ │ │ │ ├── HMSGestureTransactor.java
│ │ │ │ ├── HMSHandKeypointTransactor.java
│ │ │ │ └── HMSSkeletonAnalyzerTransactor.java
│ │ │ ├── utils/
│ │ │ │ ├── HMSBackgroundTasks.java
│ │ │ │ ├── HMSLogger.java
│ │ │ │ └── HMSUtils.java
│ │ │ └── views/
│ │ │ ├── HMSCustomSurfaceView.java
│ │ │ └── HMSSurfaceView.java
│ │ └── res/
│ │ ├── layout/
│ │ │ ├── activity_liveness_custom_detection.xml
│ │ │ ├── hms_product_fragment.xml
│ │ │ └── hms_product_item.xml
│ │ └── values/
│ │ └── strings.xml
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── mlbody/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── HmsFaceBodyRelatedServices/
│ │ │ ├── FaceRecognition.js
│ │ │ ├── FaceRecognitionLive.js
│ │ │ ├── FaceVerification.js
│ │ │ ├── GestureDetection.js
│ │ │ ├── GestureDetectionLive.js
│ │ │ ├── HandDetection.js
│ │ │ ├── HandDetectionLive.js
│ │ │ ├── InteractiveLivenessDetection.js
│ │ │ ├── LivenessDetection.js
│ │ │ ├── SkeletonDetection.js
│ │ │ └── SkeletonDetectionLive.js
│ │ ├── HmsOtherServices/
│ │ │ └── Helper.js
│ │ ├── StartPage.js
│ │ └── Styles.js
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-mlimage/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ └── rn/
│ │ │ └── mlimage/
│ │ │ ├── HMSBase.java
│ │ │ ├── HMSMLImage.java
│ │ │ ├── commonservices/
│ │ │ │ ├── HMSApplication.java
│ │ │ │ ├── HMSComposite.java
│ │ │ │ └── HMSLensEngine.java
│ │ │ ├── helpers/
│ │ │ │ ├── adapters/
│ │ │ │ │ └── HMSBottomSheetAdapter.java
│ │ │ │ ├── constants/
│ │ │ │ │ ├── HMSConstants.java
│ │ │ │ │ └── HMSResults.java
│ │ │ │ ├── creators/
│ │ │ │ │ ├── HMSObjectCreator.java
│ │ │ │ │ └── HMSResultCreator.java
│ │ │ │ ├── fragments/
│ │ │ │ │ └── HMSProductFragment.java
│ │ │ │ ├── models/
│ │ │ │ │ └── HMSProductModel.java
│ │ │ │ ├── transactors/
│ │ │ │ │ ├── HMSBaseTransactor.java
│ │ │ │ │ ├── HMSClassificationAnalyzerTransactor.java
│ │ │ │ │ ├── HMSObjectAnalyzerTransactor.java
│ │ │ │ │ └── HMSSceneDetectionAnalyzerTransactor.java
│ │ │ │ ├── utils/
│ │ │ │ │ ├── HMSBackgroundTasks.java
│ │ │ │ │ ├── HMSLogger.java
│ │ │ │ │ └── HMSUtils.java
│ │ │ │ └── views/
│ │ │ │ ├── HMSBottomSheetGridView.java
│ │ │ │ ├── HMSCustomSurfaceView.java
│ │ │ │ └── HMSSurfaceView.java
│ │ │ └── imagerelatedservices/
│ │ │ ├── HMSDocumentSkewCorrection.java
│ │ │ ├── HMSFrame.java
│ │ │ ├── HMSImageClassification.java
│ │ │ ├── HMSImageSegmentation.java
│ │ │ ├── HMSImageSuperResolution.java
│ │ │ ├── HMSLandmarkRecognition.java
│ │ │ ├── HMSObjectRecognition.java
│ │ │ ├── HMSProductVisionSearch.java
│ │ │ ├── HMSSceneDetection.java
│ │ │ └── HMSTextImageSuperResolution.java
│ │ └── res/
│ │ └── layout/
│ │ ├── hms_product_fragment.xml
│ │ └── hms_product_item.xml
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── ml/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── HmsImageRelatedServices/
│ │ │ ├── DocumentSkewCorrection.js
│ │ │ ├── Frame.js
│ │ │ ├── ImageClassification.js
│ │ │ ├── ImageClassificationLive.js
│ │ │ ├── ImageSegmentation.js
│ │ │ ├── ImageSuperResolution.js
│ │ │ ├── LandmarkRecognition.js
│ │ │ ├── ObjectDetection.js
│ │ │ ├── ObjectDetectionLive.js
│ │ │ ├── ProductVisualSearch.js
│ │ │ ├── SceneDetection.js
│ │ │ ├── SceneDetectionLive.js
│ │ │ └── TextImageSuperResolution.js
│ │ ├── HmsOtherServices/
│ │ │ ├── HMSCompositeAnalyzer.js
│ │ │ └── Helper.js
│ │ ├── StartPage.js
│ │ └── Styles.js
│ ├── package.json
│ └── src/
│ ├── constants.js
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-mllanguage/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ └── rn/
│ │ │ └── mllanguage/
│ │ │ ├── HMSBase.java
│ │ │ ├── HMSML.java
│ │ │ ├── commonservices/
│ │ │ │ └── HMSApplication.java
│ │ │ ├── helpers/
│ │ │ │ ├── constants/
│ │ │ │ │ ├── HMSConstants.java
│ │ │ │ │ └── HMSResults.java
│ │ │ │ ├── creators/
│ │ │ │ │ ├── HMSObjectCreator.java
│ │ │ │ │ └── HMSResultCreator.java
│ │ │ │ ├── utils/
│ │ │ │ │ ├── HMSLogger.java
│ │ │ │ │ └── HMSUtils.java
│ │ │ │ └── views/
│ │ │ │ └── HMSBottomSheetGridView.java
│ │ │ ├── languagevoicerelatedservices/
│ │ │ │ ├── HMSAft.java
│ │ │ │ ├── HMSAsr.java
│ │ │ │ ├── HMSLanguageDetection.java
│ │ │ │ ├── HMSSoundDetect.java
│ │ │ │ ├── HMSSpeechRtt.java
│ │ │ │ ├── HMSTextToSpeech.java
│ │ │ │ └── HMSTranslate.java
│ │ │ └── modelrelatedservices/
│ │ │ ├── HMSCustomModel.java
│ │ │ └── HMSModelDownload.java
│ │ └── res/
│ │ └── layout/
│ │ ├── hms_product_fragment.xml
│ │ └── hms_product_item.xml
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── mllanguage/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── HmsLanguageVoiceRelatedServices/
│ │ │ ├── AudioFileTranscription.js
│ │ │ ├── AutomaticSpeechRecognition.js
│ │ │ ├── LanguageDetection.js
│ │ │ ├── RealTimeTranscription.js
│ │ │ ├── SoundDetection.js
│ │ │ ├── TextToSpeech.js
│ │ │ └── Translation.js
│ │ ├── HmsOtherServices/
│ │ │ ├── CustomModel.js
│ │ │ ├── Helper.js
│ │ │ └── ModelDownload.js
│ │ ├── StartPage.js
│ │ └── Styles.js
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-mltext/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ └── rn/
│ │ │ └── mltext/
│ │ │ ├── HMSBase.java
│ │ │ ├── HMSMLText.java
│ │ │ ├── commonservices/
│ │ │ │ ├── HMSApplication.java
│ │ │ │ └── HMSLensEngine.java
│ │ │ ├── helpers/
│ │ │ │ ├── constants/
│ │ │ │ │ ├── HMSConstants.java
│ │ │ │ │ └── HMSResults.java
│ │ │ │ ├── creators/
│ │ │ │ │ ├── HMSObjectCreator.java
│ │ │ │ │ └── HMSResultCreator.java
│ │ │ │ ├── transactors/
│ │ │ │ │ ├── HMSBaseTransactor.java
│ │ │ │ │ └── HMSTextAnalyzerTransactor.java
│ │ │ │ ├── utils/
│ │ │ │ │ ├── HMSBackgroundTasks.java
│ │ │ │ │ ├── HMSLogger.java
│ │ │ │ │ └── HMSUtils.java
│ │ │ │ └── views/
│ │ │ │ ├── CustomViewActivity.java
│ │ │ │ ├── HMSCustomSurfaceView.java
│ │ │ │ ├── HMSSurfaceView.java
│ │ │ │ └── ViewfinderView.java
│ │ │ ├── nlprelatedservices/
│ │ │ │ └── HMSTextEmbedding.java
│ │ │ └── textrelatedservices/
│ │ │ ├── CustomViewHandler.java
│ │ │ ├── HMSBankCardRecognition.java
│ │ │ ├── HMSDocumentRecognition.java
│ │ │ ├── HMSFormRecognition.java
│ │ │ ├── HMSGeneralCardRecognition.java
│ │ │ ├── HMSIDCardRecognition.java
│ │ │ ├── HMSTextRecognition.java
│ │ │ └── HMSVietnamCardRecognition.java
│ │ └── res/
│ │ ├── layout/
│ │ │ └── activity_custom.xml
│ │ └── values/
│ │ └── color.xml
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── mltext/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── HmsNaturalLanguageProcessingServices/
│ │ │ └── TextEmbedding.js
│ │ ├── HmsOtherServices/
│ │ │ └── Helper.js
│ │ ├── HmsTextRelatedServices/
│ │ │ ├── BankCardRecognition.js
│ │ │ ├── DocumentRecognition.js
│ │ │ ├── FormRecognition.js
│ │ │ ├── GeneralCardRecognition.js
│ │ │ ├── IDCardRecognition.js
│ │ │ ├── TextRecognition.js
│ │ │ ├── TextRecognitionLive.js
│ │ │ └── VietnamIDCardRecognition.js
│ │ ├── StartPage.js
│ │ └── Styles.js
│ ├── package.json
│ └── src/
│ ├── BankCardRecognitionCustomizedView.js
│ ├── index.d.ts
│ ├── index.js
│ └── utils.js
├── react-native-hms-nearby/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── nearby/
│ │ ├── HMSNearby.java
│ │ ├── constants/
│ │ │ └── HMSConstants.java
│ │ ├── modules/
│ │ │ ├── HMSBase.java
│ │ │ ├── HMSBeacon.java
│ │ │ ├── HMSDiscovery.java
│ │ │ ├── HMSMessage.java
│ │ │ ├── HMSNearbyApplication.java
│ │ │ └── HMSTransfer.java
│ │ └── utils/
│ │ ├── HMSLogger.java
│ │ ├── HMSResult.java
│ │ └── HMSUtils.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── nearby/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── Beacon.js
│ │ ├── Connection.js
│ │ ├── Converter.js
│ │ ├── Message.js
│ │ ├── StartPage.js
│ │ └── Styles.js
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-push/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── push/
│ │ ├── HmsPushPackage.java
│ │ ├── config/
│ │ │ └── NotificationAttributes.java
│ │ ├── constants/
│ │ │ ├── Core.java
│ │ │ ├── LocalNotification.java
│ │ │ ├── NotificationConstants.java
│ │ │ ├── RemoteMessageAttributes.java
│ │ │ └── ResultCode.java
│ │ ├── local/
│ │ │ ├── BitmapDataSubscriber.java
│ │ │ ├── HmsLocalNotification.java
│ │ │ ├── HmsLocalNotificationActionPublisher.java
│ │ │ ├── HmsLocalNotificationController.java
│ │ │ └── HmsLocalNotificationPicturesLoader.java
│ │ ├── logger/
│ │ │ └── HMSLogger.java
│ │ ├── opendevice/
│ │ │ └── HmsPushOpenDevice.java
│ │ ├── receiver/
│ │ │ ├── HmsLocalNotificationActionsReceiver.java
│ │ │ ├── HmsLocalNotificationBootEventReceiver.java
│ │ │ ├── HmsLocalNotificationScheduledPublisher.java
│ │ │ └── NotificationActionHandler.java
│ │ ├── remote/
│ │ │ ├── HmsMessagePublisher.java
│ │ │ ├── HmsPushInstanceId.java
│ │ │ ├── HmsPushMessageService.java
│ │ │ ├── HmsPushMessaging.java
│ │ │ └── HmsPushProfile.java
│ │ ├── services/
│ │ │ └── MessagingHeadlessService.java
│ │ └── utils/
│ │ ├── ActivityUtils.java
│ │ ├── ApplicationUtils.java
│ │ ├── ArrayUtils.java
│ │ ├── BundleUtils.java
│ │ ├── MapUtils.java
│ │ ├── NotificationConfigUtils.java
│ │ ├── RemoteMessageUtils.java
│ │ └── ResultUtils.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── LICENCE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── push/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── exampleCustomIntentLinks.html
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── LocalNotification.js
│ │ ├── MainPage.js
│ │ └── styles.js
│ ├── package.json
│ └── src/
│ ├── HmsPushEvent.js
│ ├── HmsPushProfileTypes.js
│ ├── HmsPushResultCode.js
│ ├── LocalNotification/
│ │ ├── Importance.js
│ │ ├── Priority.js
│ │ ├── RepeatType.js
│ │ ├── Visibility.js
│ │ └── index.js
│ ├── RNRemoteMessage.js
│ ├── RemoteMessageBuilder.js
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-push-fcm/
│ ├── LICENCE
│ ├── README.md
│ ├── android/
│ │ ├── .gradle/
│ │ │ ├── 6.3/
│ │ │ │ └── gc.properties
│ │ │ ├── buildOutputCleanup/
│ │ │ │ └── cache.properties
│ │ │ └── vcs-1/
│ │ │ └── gc.properties
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ ├── local.properties
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── push/
│ │ └── fcm/
│ │ ├── HMSLogger.java
│ │ ├── HMSPushFCM.java
│ │ └── HmsPushFCMPackage.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── LICENCE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── push/
│ │ │ │ │ └── fcm/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── MainPage.js
│ │ └── styles.js
│ ├── index.js
│ └── package.json
├── react-native-hms-safetydetect/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── safetydetect/
│ │ ├── HMSSafetyDetectPackage.java
│ │ ├── appcheck/
│ │ │ ├── AppCheckModule.java
│ │ │ ├── AppCheckService.java
│ │ │ └── AppCheckUtils.java
│ │ ├── huaweiapi/
│ │ │ ├── HuaweiApiModule.java
│ │ │ └── HuaweiApiService.java
│ │ ├── logger/
│ │ │ └── HMSLogger.java
│ │ ├── sysintegrity/
│ │ │ ├── SysIntegrityModule.java
│ │ │ └── SysIntegrityService.java
│ │ ├── urlcheck/
│ │ │ ├── UrlCheckModule.java
│ │ │ ├── UrlCheckService.java
│ │ │ └── UrlCheckUtils.java
│ │ ├── userdetect/
│ │ │ ├── UserDetectModule.java
│ │ │ └── UserDetectService.java
│ │ ├── utils/
│ │ │ └── HMSSafetyDetectUtils.java
│ │ └── wifidetect/
│ │ ├── WifiDetectModule.java
│ │ └── WifiDetectService.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── safetydetect/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-scan/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ └── rn/
│ │ │ └── scan/
│ │ │ ├── RNHMSScanPackage.java
│ │ │ ├── customized/
│ │ │ │ ├── CustomizedViewActivity.java
│ │ │ │ └── RNHMSScanCustomizedViewModule.java
│ │ │ ├── logger/
│ │ │ │ └── HMSLogger.java
│ │ │ ├── multi/
│ │ │ │ ├── CommonActivity.java
│ │ │ │ ├── CommonCamera.java
│ │ │ │ ├── CommonHandler.java
│ │ │ │ ├── RNHMSScanMultiProcessorModule.java
│ │ │ │ ├── ScanResultView.java
│ │ │ │ └── ScanTextOptions.java
│ │ │ ├── scanutils/
│ │ │ │ └── RNHMSScanUtilsModule.java
│ │ │ └── utils/
│ │ │ ├── Errors.java
│ │ │ └── ReactUtils.java
│ │ └── res/
│ │ ├── drawable/
│ │ │ ├── colors.xml
│ │ │ └── scanningframe.xml
│ │ └── layout/
│ │ ├── activity_defined.xml
│ │ └── activity_multiprocessor.xml
│ ├── example/
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── BUCK
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── rnhmsscandemo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── images/
│ │ │ └── images.json
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── ScanCustomizedView.js
│ ├── ScanMultiProcessor.js
│ ├── ScanUtils.js
│ ├── index.d.ts
│ ├── index.js
│ └── utils.js
└── react-native-hms-site/
├── LICENCE
├── README.md
├── android/
│ ├── build.gradle
│ ├── gradle/
│ │ └── wrapper/
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── src/
│ └── main/
│ ├── AndroidManifest.xml
│ └── java/
│ └── com/
│ └── huawei/
│ └── hms/
│ └── rn/
│ └── site/
│ ├── HMSLogger.java
│ ├── RNHMSSiteModule.java
│ ├── RNHMSSitePackage.java
│ ├── RNHMSSiteUtils.java
│ ├── RNHMSSiteWrapper.java
│ └── RNHMSWidgetWrapper.java
├── example/
│ ├── App.js
│ ├── LICENCE
│ ├── README.md
│ ├── android/
│ │ ├── app/
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src/
│ │ │ ├── debug/
│ │ │ │ └── AndroidManifest.xml
│ │ │ └── main/
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── huawei/
│ │ │ │ └── hms/
│ │ │ │ └── rn/
│ │ │ │ └── site/
│ │ │ │ └── demo/
│ │ │ │ ├── MainActivity.java
│ │ │ │ └── MainApplication.java
│ │ │ └── res/
│ │ │ └── values/
│ │ │ └── styles.xml
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ ├── app.json
│ ├── babel.config.js
│ ├── index.js
│ ├── metro.config.js
│ ├── package.json
│ └── src/
│ └── styles.js
├── package.json
└── src/
├── constants/
│ ├── HwLocationType.js
│ └── LocationType.js
├── index.d.ts
└── index.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/ISSUE_TEMPLATE/issue-with-the-sample-code.md
================================================
---
name: Issue with the sample code
about: Are you having issues when running the code in this repo?
title: ''
labels: ''
assignees: ''
---
**Description**
Description of what the issue is about
**Expected behavior**
What you expected to happen?
**Current behavior**
What actually happened?
**Screenshots**
If applicable, add screenshots to help explain your issue
**Logs**
Post logs here or paste them to [Ghostbin](https://ghostbin.co) and insert the link here.
**Environment**
- Platform: [e.g. React-Native/Cordova/Flutter/Xamarin]
- Kit: [e.g. Push/Map/Ads/Account/IAP]
- Kit Version [e.g. 5.0.3]
- OS Version [e.g. Android 11]
- Android Studio version (if applicable) [e.g. 4.1]
- Platform version (if applicable)
- Node Version (if applicable)
- Your Location/Region (if applicable)
**Other**
Add any other context about the problem here
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of this License; and
You must cause any modified files to carry prominent notices stating that You changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
================================================
FILE: README.md
================================================
# HMS React-Native Plugins
[](./LICENSE)
This repo contains the source code for HMS React-Native first-party plugins, which are developed by the HMS Core team.
These plugins enable access to using kit-specific APIs. For more information
about plugins, and how to use them, see
[Official Documentations](https://developer.huawei.com/consumer/en/doc/overview/HMS-Core-Plugin?ha_source=hms1).
## Plugins
These are the available plugins in this repository.
| Plugin | Version | Downloads | Documentation | Demo Project |
| --- | --- | --- | --- | --- |
| [**Account**](./react-native-hms-account) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-account) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-account) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/preparing-the-development-environment-0000001050766307?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/overview-0000001051087380?ha_source=hms1) | [example](./react-native-hms-account/example) |
| [**Ads**](./react-native-hms-ads) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-ads) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-ads) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/dev-env-0000001050442053?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/ads-0000001050311042?ha_source=hms1) | [example](./react-native-hms-ads/example) |
| [**Ads-Prime**](./react-native-hms-adsprime) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-ads) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-adsprime) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/dev-env-0000001050442053?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/ads-0000001050311042?ha_source=hms1) | [example](./react-native-hms-adsprime/example) |
| [**Analytics**](./react-native-hms-analytics) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-analytics) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-analytics) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/preparedevenv-0000001051387084?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/overview-0000001053026463?ha_source=hms1) | [example](./react-native-hms-analytics/example) |
| [**AR**](./react-native-hms-ar) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-ar) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-ar) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/preparedevenv-0000001058623563?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/overview-0000001058415717?ha_source=hms1) | [example](./react-native-hms-ar/example) |
| [**Availability**](./react-native-hms-availability) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-availability) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-availability) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/preparing-the-development-environment-0000001091092010?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/overview-0000001092614672?ha_source=hms1) | [example](./react-native-hms-availability/example) |
| [**Awareness**](./react-native-hms-awareness) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-awareness) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-awareness) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/preparing-the-development-environment-0000001073515903?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/overview-0000001074268798?ha_source=hms1) | [example](./react-native-hms-awareness/example) |
| [**Contact Shield**](./react-native-hms-contactshield) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-contactshield) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-contactshield) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/preparedevenv-0000001062519333?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/overview-0000001062825598?ha_source=hms1) | [example](./react-native-hms-contactshield/example) |
| [**DTM**](./react-native-hms-dtm) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-dtm) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-dtm) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/prepare-development-environment-0000001056858057?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/overview-0000001057153998?ha_source=hms1) | [example](./react-native-hms-health/example) |
| [**Health**](./react-native-hms-health) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-health) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-health) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/preparedevenv-0000001050157757?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/overview-0000001074141482?ha_source=hms1) | [example](./react-native-hms-dtm/example) |
| [**IAP**](./react-native-hms-iap) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-iap) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-iap) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/preparedevenv-0000001050766241?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/overview-0000001051087324?ha_source=hms1) | [example](./react-native-hms-iap/example) |
| [**Location**](./react-native-hms-location) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-location) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-location) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/preparedevenv-0000001050041326?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/overview-0000001050041352?ha_source=hms1) | [example](./react-native-hms-location/example) |
| [**Map**](./react-native-hms-map) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-map) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-map) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/preparedevenv-0000001050032222?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/mapview-0000001051150160?ha_source=hms1) | [example](./react-native-hms-map/example) |
| [**ML**](./react-native-hms-ml) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-ml) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-ml) | [Getting Started](https://developer.huawei.com/consumer/en/doc/HMS-Plugin-Guides/preparedevenv-0000001051006241?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/HMS-Plugin-References/introduction-0000001665009017-V1?ha_source=hms1) | [example](./react-native-hms-ml/example) |
| [**ML Body**](./react-native-hms-mlbody) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-mlbody) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-mlbody) | [Getting Started](https://developer.huawei.com/consumer/en/doc/HMS-Plugin-Guides/preparedevenv-0000001051006241?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/HMS-Plugin-References/modules-overview-0000001693740344-V1?ha_source=hms1) | [example](./react-native-hms-mlbody/example) |
| [**ML Image**](./react-native-hms-mlimage) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-mlimage) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-mlimage) | [Getting Started](https://developer.huawei.com/consumer/en/doc/HMS-Plugin-Guides/preparedevenv-0000001051006241?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/HMS-Plugin-References/modules-overview-0000001668659234-V1?ha_source=hms1) | [example](./react-native-hms-mlimage/example) |
| [**ML Language**](./react-native-hms-mllanguage) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-mllanguage) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-mllanguage) | [Getting Started](https://developer.huawei.com/consumer/en/doc/HMS-Plugin-Guides/preparedevenv-0000001051006241?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/HMS-Plugin-References/overview-0000001664689457-V1?ha_source=hms1) | [example](./react-native-hms-mllanguage/example) |
| [**ML Text**](./react-native-hms-mltext) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-mltext) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-mltext) | [Getting Started](https://developer.huawei.com/consumer/en/doc/HMS-Plugin-Guides/preparedevenv-0000001051006241?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/HMS-Plugin-References/modules-overview-0000001713816349-V1?ha_source=hms1) | [example](./react-native-hms-mltext/example) |
| [**Nearby**](./react-native-hms-nearby) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-nearby) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-nearby) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/prepare-development-environment-0000001054260430?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/overview-0000001053958778?ha_source=hms1) | [example](./react-native-hms-nearby/example) |
| [**Push**](./react-native-hms-push) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-push) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-push) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/preparedevenv-0000001050155838?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/push-overview-0000001193655312?ha_source=hms1) | [example](./react-native-hms-push/example) |
| [**Push-Fcm**](./react-native-hms-push-fcm) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-push-fcm) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-push-fcm) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/preparedevenv-0000001050155838?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/push-fcm-overview-0000001238655297?ha_source=hms1) | [example](./react-native-hms-push-fcm/example) |
| [**Safety Detect**](./react-native-hms-safetydetect) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-safetydetect) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-safetydetect) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/prepare-dev-env-0000001052646231?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/overview-0000001052765437?ha_source=hms1) | [example](./react-native-hms-scan/example) |
| [**Scan**](./react-native-hms-scan) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-scan) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-scan) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/prepare-dev-env-0000001056166177?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/overview-0000001057541182?ha_source=hms1) | [example](./react-native-hms-scan/example) |
| [**Site**](./react-native-hms-site) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-site) | [](https://www.npmjs.com/package/@hmscore/react-native-hms-site) | [Getting Started](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/dev-env-0000001050442053?ha_source=hms1) <br/> [API Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/overview-0000001051070802?ha_source=hms1) | [example](./react-native-hms-site/example) |
## Question or issues
If you want to evaluate more about HMS Core, [r/HMSCore on Reddit](https://www.reddit.com/r/HuaweiDevelopers/) is for you to keep up with latest news about HMS Core, and to exchange insights with other developers.
If you have questions about how to use HMS samples, try the following options:
- [Stack Overflow](https://stackoverflow.com/questions/tagged/huawei-mobile-services) is the best place for any programming questions. Be sure to tag your question with `huawei-mobile-services`.
- [Huawei Developer Forum](https://forums.developer.huawei.com/forumPortal/en/home?fid=0101187876626530001?ha_source=hms1) HMS Core Module is great for general questions, or seeking recommendations and opinions.
If you run into a bug in our samples, please submit an [issue](https://github.com/HMS-Core/hms-react-native-plugin/issues) to the Repository. Even better you can submit a [Pull Request](https://github.com/HMS-Core/hms-react-native-plugin/pulls) with a fix.
================================================
FILE: react-native-hms-account/LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of this License; and
You must cause any modified files to carry prominent notices stating that You changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
================================================
FILE: react-native-hms-account/README.md
================================================
<p align="center">
<h1 align="center">React-Native HMS Account</h1>
</p>
<p align="center">
<a href="https://www.npmjs.com/package/@hmscore/react-native-hms-account"><img src="https://img.shields.io/npm/dm/@hmscore/react-native-hms-account?color=%23007EC6&style=for-the-badge" alt="downloads"></a>
<a href="https://www.npmjs.com/package/@hmscore/react-native-hms-account"><img src="https://img.shields.io/npm/v/@hmscore/react-native-hms-account?color=%23ed2a1c&style=for-the-badge" alt="NPM version"></a>
<a href="./LICENCE"><img src="https://img.shields.io/npm/l/@hmscore/react-native-hms-account.svg?color=%3bcc62&style=for-the-badge" alt="License"></a>
</p>
----
HUAWEI Account Kit enables communication between Huawei Account SDK and React Native platform.
[> Learn More](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/introduction-0000001051086206?ha_source=hms1)
## Installation
```bash
$ npm i @hmscore/react-native-hms-account
```
## Documentation
- [Quick Start](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/preparing-the-development-environment-0000001050766307?ha_source=hms1)
- [Reference](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-References/overview-0000001051087380?ha_source=hms1)
### Additional Topics
- [HMSAuthButton](https://developer.huawei.com/consumer/en/doc/development/HMS-Plugin-Guides/huawei-id-auth-button-0000001051087180?ha_source=hms1)
## Questions or Issues
If you have questions about how to use HMS samples, try the following options:
- [Stack Overflow](https://stackoverflow.com/questions/tagged/huawei-mobile-services) is the best place for any programming questions. Be sure to tag your question with **huawei-mobile-services**.
- [Github](https://github.com/HMS-Core/hms-react-native-plugin) is the official repository for these plugins, You can open an issue or submit your ideas.
- [Huawei Developer Forum](https://forums.developer.huawei.com/forumPortal/en/home?fid=0101187876626530001&ha_source=hms1) HMS Core Module is great for general questions, or seeking recommendations and opinions.
- [Huawei Developer Docs](https://developer.huawei.com/consumer/en/doc/overview/HMS-Core-Plugin?ha_source=hms1) is place to official documentation for all HMS Core Kits, you can find detailed documentations in there.
If you run into a bug in our samples, please submit an issue to the [GitHub repository](https://github.com/HMS-Core/hms-react-native-plugin).
## Licence
Huawei React-Native Plugin is licenced under [Apache 2.0 licence](LICENSE)
================================================
FILE: react-native-hms-account/android/build.gradle
================================================
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
buildscript {
repositories {
mavenCentral()
google()
jcenter()
maven { url 'https://developer.huawei.com/repo/' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.0'
}
}
android {
compileSdkVersion 33
buildToolsVersion "31.0.0"
defaultConfig {
minSdkVersion 19
targetSdkVersion 33
versionCode 1
versionName "1.0"
}
lintOptions {
abortOnError false
}
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
}
repositories {
mavenLocal()
maven { url "$rootDir/../node_modules/react-native/android" }
maven { url "$rootDir/../node_modules/jsc-android/dist" }
maven { url 'https://developer.huawei.com/repo/' }
jcenter()
mavenCentral()
google()
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'com.facebook.react:react-native:+' // From node_modules
implementation 'com.huawei.hms:hwid:6.12.0.300'
}
================================================
FILE: react-native-hms-account/android/gradle/wrapper/gradle-wrapper.properties
================================================
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
================================================
FILE: react-native-hms-account/android/gradle.properties
================================================
android.useAndroidX=true
android.enableJetifier=true
org.gradle.jvmargs=-Xmx4608m
================================================
FILE: react-native-hms-account/android/gradlew
================================================
#!/usr/bin/env sh
#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=`save "$@"`
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
exec "$JAVACMD" "$@"
================================================
FILE: react-native-hms-account/android/gradlew.bat
================================================
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
================================================
FILE: react-native-hms-account/android/src/main/AndroidManifest.xml
================================================
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.huawei.hms.rn.account">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
================================================
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/HMSAccountPackage.java
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package com.huawei.hms.rn.account;
import androidx.annotation.NonNull;
import com.huawei.hms.rn.account.modules.HMSAccount;
import com.huawei.hms.rn.account.modules.HMSAccountAuthManager;
import com.huawei.hms.rn.account.modules.HMSAccountAuthService;
import com.huawei.hms.rn.account.modules.HMSHuaweiIdAuthManager;
import com.huawei.hms.rn.account.modules.HMSHuaweiIdAuthTool;
import com.huawei.hms.rn.account.modules.HMSNetworkTool;
import com.huawei.hms.rn.account.modules.HMSReadSMSManager;
import com.huawei.hms.rn.account.views.HMSHuaweiIdAuthButton;
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class HMSAccountPackage implements ReactPackage {
@NonNull
@Override
public List<NativeModule> createNativeModules(@NonNull ReactApplicationContext reactContext) {
return Arrays.<NativeModule>asList(new HMSAccount(reactContext), new HMSAccountAuthService(reactContext),
new HMSAccountAuthManager(reactContext), new HMSReadSMSManager(reactContext),
new HMSHuaweiIdAuthManager(reactContext), new HMSHuaweiIdAuthTool(reactContext),
new HMSNetworkTool(reactContext));
}
@NonNull
@Override
public List<ViewManager> createViewManagers(@NonNull ReactApplicationContext reactContext) {
return Collections.<ViewManager>singletonList(new HMSHuaweiIdAuthButton(reactContext));
}
}
================================================
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/constants/ClassConstants.java
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package com.huawei.hms.rn.account.constants;
import com.huawei.hms.support.hwid.ui.HuaweiIdAuthButton;
import com.huawei.hms.support.sms.common.ReadSmsConstant;
public enum ClassConstants {
READ_SMS_CONSTANT_EXTRA_SMS_MESSAGE(ReadSmsConstant.EXTRA_SMS_MESSAGE),
READ_SMS_CONSTANT_EXTRA_STATUS(ReadSmsConstant.EXTRA_STATUS),
READ_SMS_BROADCAST_ACTION(ReadSmsConstant.READ_SMS_BROADCAST_ACTION),
HUAWEI_ID_AUTH_BUTTON_COLOR_POLICY_RED(HuaweiIdAuthButton.COLOR_POLICY_RED),
HUAWEI_ID_AUTH_BUTTON_COLOR_POLICY_WHITE(HuaweiIdAuthButton.COLOR_POLICY_WHITE),
HUAWEI_ID_AUTH_BUTTON_COLOR_POLICY_WHITE_WITH_BORDER(HuaweiIdAuthButton.COLOR_POLICY_WHITE_WITH_BORDER),
HUAWEI_ID_AUTH_BUTTON_COLOR_POLICY_BLACK(HuaweiIdAuthButton.COLOR_POLICY_BLACK),
HUAWEI_ID_AUTH_BUTTON_COLOR_POLICY_GRAY(HuaweiIdAuthButton.COLOR_POLICY_GRAY),
HUAWEI_ID_AUTH_BUTTON_THEME_FULL_TITLE(HuaweiIdAuthButton.THEME_FULL_TITLE),
HUAWEI_ID_AUTH_BUTTON_THEME_NO_TITLE(HuaweiIdAuthButton.THEME_NO_TITLE),
HUAWEI_ID_AUTH_BUTTON_CORNER_RADIUS_LARGE(HuaweiIdAuthButton.CORNER_RADIUS_LARGE),
HUAWEI_ID_AUTH_BUTTON_CORNER_RADIUS_MEDIUM(HuaweiIdAuthButton.CORNER_RADIUS_MEDIUM),
HUAWEI_ID_AUTH_BUTTON_CORNER_RADIUS_SMALL(HuaweiIdAuthButton.CORNER_RADIUS_SMALL);
private String stringValue;
private Integer intValue;
ClassConstants(String stringValue) {
this.stringValue = stringValue;
}
ClassConstants(Integer intValue) {
this.intValue = intValue;
}
public Integer getIntValue() {
return intValue;
}
public String getStringValue() {
return stringValue;
}
}
================================================
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/logger/HMSLogger.java
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package com.huawei.hms.rn.account.logger;
import static android.os.Build.DEVICE;
import android.content.Context;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;
import com.huawei.agconnect.config.AGConnectServicesConfig;
import com.huawei.hms.support.hianalytics.HiAnalyticsUtils;
import com.huawei.hms.utils.HMSBIInitializer;
import java.lang.ref.WeakReference;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public final class HMSLogger {
private static final String TAG = "HMSLogger";
private static final String KIT = "Account";
private static final String PLATFORM = "ReactNative";
private static final String VERSION = "6.12.0.301";
private static final String SERVICE = "Cross-Platform";
private static final String SUCCESS = "0";
private static final String UNKNOWN = "UNKNOWN";
private static final String NOT_AVAILABLE = "NOT_AVAILABLE";
private static final String SINGLE_EVENT_ID = "60000";
private static final String PERIODIC_EVENT_ID = "60001";
private static final String NETWORK_TYPE_WIFI = "WIFI";
private static volatile HMSLogger instance;
private final WeakReference<Context> weakContext;
private final HiAnalyticsUtils hiAnalyticsUtils;
private final ConnectivityManager connectivityManager;
private final Map<String, Object> singleEventMap = new HashMap<>();
private final Map<String, Object> periodicEventMap = new HashMap<>();
private final Map<String, Long> allCountMap = new HashMap<>();
private final Map<String, Long> failCountMap = new HashMap<>();
private final Map<String, Long> startTimeMap = new HashMap<>();
private final Map<String, Long> firstReceiveTimeMap = new HashMap<>();
private final Map<String, Long> lastReceiveTimeMap = new HashMap<>();
private final Map<String, Map<String, Long>> resultCodeCountMap = new HashMap<>();
private final Map<Integer, String> networkTypeMap = createNetworkTypeMap();
private boolean isEnabled = false;
/**
* Private constructor of this class.
*
* @param context Application's context
*/
private HMSLogger(final Context context) {
weakContext = new WeakReference<>(context);
hiAnalyticsUtils = HiAnalyticsUtils.getInstance();
connectivityManager = objectCast(context.getSystemService(Context.CONNECTIVITY_SERVICE),
ConnectivityManager.class);
hiAnalyticsUtils.enableLog();
HMSBIInitializer.getInstance(context).initBI();
setupEventMap(singleEventMap);
setupEventMap(periodicEventMap);
enableLogger();
}
/**
* Returns the instance of this class.
*
* @param context Context object
* @return HMSLogger instance
*/
public static synchronized HMSLogger getInstance(final Context context) {
if (instance == null) {
synchronized (HMSLogger.class) {
if (instance == null) {
instance = new HMSLogger(context.getApplicationContext());
}
}
}
return instance;
}
/**
* Returns actual context reference.
*
* @return Actual context reference
*/
private synchronized Context getContext() {
return weakContext.get();
}
/**
* Enables HMSLogger.
*/
public synchronized void enableLogger() {
isEnabled = true;
Log.d(TAG, "HMS Plugin Dotting is Enabled!");
}
/**
* Disables HMSLogger.
*/
public synchronized void disableLogger() {
isEnabled = false;
Log.d(TAG, "HMS Plugin Dotting is Disabled!");
}
/**
* Sets method start time for given method name.
*
* @param methodName Name of the method that will be logged
*/
public synchronized void startMethodExecutionTimer(final String methodName) {
startTimeMap.put(methodName, System.currentTimeMillis());
}
/**
* Sends successful single event.
*
* @param methodName The name of the method called
*/
public synchronized void sendSingleEvent(final String methodName) {
sendEvent(SINGLE_EVENT_ID, methodName, SUCCESS);
}
/**
* Sends unsuccessful single event
*
* @param methodName The name of the method called.
* @param errorCode API error code
*/
public synchronized void sendSingleEvent(final String methodName, final String errorCode) {
sendEvent(SINGLE_EVENT_ID, methodName, errorCode);
}
/**
* Sends successful periodic event.
*
* @param methodName The name of the method called
*/
public synchronized void sendPeriodicEvent(final String methodName) {
sendEvent(PERIODIC_EVENT_ID, methodName, SUCCESS);
}
/**
* Sends unsuccessful periodic event.
*
* @param methodName The name of the method called
* @param errorCode API error code
*/
public synchronized void sendPeriodicEvent(final String methodName, final String errorCode) {
sendEvent(PERIODIC_EVENT_ID, methodName, errorCode);
}
/**
* Sends the event based on eventId, methodName, and resultCode.
*
* @param eventId Constant id of the event
* @param methodName The name of the method called
* @param resultCode Code of the method's result. "0" for success, others for error
*/
private synchronized void sendEvent(final String eventId, final String methodName, final String resultCode) {
if (isEnabled) {
final long currentTime = System.currentTimeMillis();
if (eventId.equals(SINGLE_EVENT_ID)) {
putToSingleEventMap(methodName, resultCode, currentTime);
hiAnalyticsUtils.onNewEvent(getContext(), SINGLE_EVENT_ID, singleEventMap);
Log.d(TAG, "singleEventMap -> " + singleEventMap);
} else {
putToPeriodicEventMap(methodName, resultCode, currentTime);
hiAnalyticsUtils.onNewEvent(getContext(), PERIODIC_EVENT_ID, periodicEventMap);
Log.d(TAG, "periodicEventMap -> " + periodicEventMap);
}
}
}
/**
* Gets "client/app_id" value from agconnect-services.json file.
*
* @return app_id value or NOT_AVAILABLE if not found
*/
private synchronized String getAppId() {
try {
return AGConnectServicesConfig.fromContext(getContext()).getString("client/app_id");
} catch (final NullPointerException e) {
Log.d(TAG, "AgConnect is not found. Setting appId value to " + NOT_AVAILABLE);
}
return NOT_AVAILABLE;
}
/**
* Gets app version name.
*
* @param packageName Package name of the app
* @return App version name in String type
*/
private synchronized String getAppVersionName(final String packageName) {
try {
return getContext().getPackageManager().getPackageInfo(packageName, 0).versionName;
} catch (final PackageManager.NameNotFoundException e) {
Log.e(TAG, "getAppVersionName -> Could not get appVersionName!");
return NOT_AVAILABLE;
}
}
/**
* Detects current network type.
*
* @return Human readable network type; such as WIFI, 4G
*/
private synchronized String getNetworkType() {
if (connectivityManager != null) {
final NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
final int networkType = networkInfo.getType();
if (ConnectivityManager.TYPE_WIFI == networkType) {
return NETWORK_TYPE_WIFI;
} else if (ConnectivityManager.TYPE_MOBILE == networkType) {
final int networkSubType = networkInfo.getSubtype();
return getOrDefault(networkTypeMap, networkSubType, UNKNOWN);
} else {
return UNKNOWN;
}
} else {
return NOT_AVAILABLE;
}
} else {
return NOT_AVAILABLE;
}
}
/**
* Sets default values to given map.
*
* @param map HashMap to put default values
*/
private synchronized void setupEventMap(final Map<String, Object> map) {
map.put("kit", KIT);
map.put("platform", PLATFORM);
map.put("version", VERSION);
map.put("service", SERVICE);
map.put("appid", getAppId());
map.put("package", getContext().getPackageName());
map.put("cpAppVersion", getAppVersionName(getContext().getPackageName()));
map.put("model", DEVICE);
}
/**
* Prepares sing-event map according to input parameters.
*
* @param methodName The name of the method called
* @param resultCode Code of the method's result. "0" for success, others for error
* @param currentTime Current timestamp in millisecond
*/
private synchronized void putToSingleEventMap(final String methodName, final String resultCode,
final long currentTime) {
final long startTime = getOrDefault(startTimeMap, methodName, currentTime);
final int costTime = (int) (currentTime - startTime);
singleEventMap.put("apiName", methodName);
singleEventMap.put("result", resultCode);
singleEventMap.put("callTime", currentTime);
singleEventMap.put("costTime", costTime);
singleEventMap.put("networkType", getNetworkType());
}
/**
* Prepares periodic-event map according to input parameters.
*
* @param methodName The name of the method called
* @param resultCode Code of the method's result. "0" for success, others for error
* @param currentTime Current timestamp in millisecond
*/
private synchronized void putToPeriodicEventMap(final String methodName, final String resultCode,
final long currentTime) {
increaseResultCodeCount(methodName, resultCode);
increaseMapValue(methodName, allCountMap);
if (!resultCode.equals(SUCCESS)) {
increaseMapValue(methodName, failCountMap);
}
final long firstReceiveTime = getOrDefault(firstReceiveTimeMap, methodName, currentTime);
periodicEventMap.put("callTime", firstReceiveTime);
final long lastReceiveTime = getOrDefault(lastReceiveTimeMap, methodName, currentTime);
final int costTime = (int) (currentTime - lastReceiveTime);
periodicEventMap.put("costTime", costTime);
periodicEventMap.put("apiName", methodName);
periodicEventMap.put("result", resultCodeCountMap.get(methodName));
final long allCount = getOrDefault(allCountMap, methodName, 0L);
periodicEventMap.put("allCnt", allCount);
final long failCount = getOrDefault(failCountMap, methodName, 0L);
periodicEventMap.put("failCnt", failCount);
periodicEventMap.put("lastCallTime", currentTime);
periodicEventMap.put("networkType", getNetworkType());
putIfAbsent(firstReceiveTimeMap, methodName, currentTime);
lastReceiveTimeMap.put(methodName, currentTime);
}
/**
* Prepares HashMap of network type id and its human-readable string pairs.
*
* @return HashMap of human readable network type names
*/
private synchronized Map<Integer, String> createNetworkTypeMap() {
final Map<Integer, String> map = new HashMap<>();
map.put(0, UNKNOWN);
map.put(1, "2G");
map.put(2, "2G");
map.put(3, "3G");
map.put(4, "3G");
map.put(5, "3G");
map.put(6, "3G");
map.put(7, "2G");
map.put(8, "3G");
map.put(9, "3G");
map.put(10, "3G");
map.put(11, "2G");
map.put(12, "3G");
map.put(13, "4G");
map.put(14, "3G");
map.put(15, "3G");
map.put(16, "2G");
map.put(17, "3G");
map.put(18, "4G");
map.put(19, "4G");
map.put(20, "5G");
return Collections.unmodifiableMap(map);
}
/**
* Increases count of the given result code.
*
* @param methodName Name of the calling method
* @param resultCode Code of the method's result. "0" for success, others for error
*/
private synchronized void increaseResultCodeCount(final String methodName, final String resultCode) {
final Map<String, Long> map = getOrDefault(resultCodeCountMap, methodName, new HashMap<>());
increaseMapValue(resultCode, map);
resultCodeCountMap.put(methodName, map);
}
/**
* Increases the value of the corresponding key which in the map.
*
* @param key Key for map lookup
* @param map The Map that contains the key and its corresponding value
*/
private synchronized void increaseMapValue(final String key, final Map<String, Long> map) {
map.put(key, getOrDefault(map, key, 0L) + 1);
}
/**
* Get the corresponding value of the key. If the key does not exist in the map then the default value is returned.
*
* @param map The Map
* @param key Lookup key
* @param defaultValue The default value will be returned if the key is absent
* @param <K> Generic type of the key
* @param <V> Generic type of the value
* @return Corresponding value or default value
*/
private synchronized <K, V> V getOrDefault(final Map<K, V> map, final K key, final V defaultValue) {
return map.containsKey(key) ? map.get(key) : defaultValue;
}
/**
* Put key-value pair to map if the key is absent.
*
* @param map The Map
* @param key Lookup key
* @param value The value will be put to the map if the key is absent
* @param <K> Generic type of the key
* @param <V> Generic type of the value
*/
private synchronized <K, V> void putIfAbsent(final Map<K, V> map, final K key, final V value) {
if (!map.containsKey(key)) {
map.put(key, value);
}
}
/**
* Utility method that castes given object to given class type.
*
* @param source Source object to be casted
* @param clazz Class that object will be casted to its type
* @param <S> Source object's type
* @param <D> Destination type
* @return Object that casted to D type
*/
private synchronized <S, D> D objectCast(final S source, final Class<D> clazz) {
return clazz.cast(source);
}
}
================================================
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSAccount.java
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package com.huawei.hms.rn.account.modules;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import androidx.annotation.NonNull;
import com.huawei.hmf.tasks.Task;
import com.huawei.hms.rn.account.constants.ClassConstants;
import com.huawei.hms.rn.account.logger.HMSLogger;
import com.huawei.hms.rn.account.utils.Utils;
import com.huawei.hms.support.hwid.HuaweiIdAuthManager;
import com.huawei.hms.support.hwid.request.HuaweiIdAuthParams;
import com.huawei.hms.support.hwid.request.HuaweiIdAuthParamsHelper;
import com.huawei.hms.support.hwid.result.AuthHuaweiId;
import com.huawei.hms.support.hwid.service.HuaweiIdAuthService;
import com.huawei.hms.support.hwid.ui.HuaweiIdAuthButton;
import com.facebook.react.bridge.ActivityEventListener;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.uimanager.UIManagerModule;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
public class HMSAccount extends ReactContextBaseJavaModule implements ActivityEventListener {
private static final int REQUEST_CODE_LOG_IN = 0;
private static final String FIELD_HUAWEI_ID_AUTH_PARAMS = "huaweiIdAuthParams";
private static final String FIELD_REQUEST_OPTION = "authRequestOption";
private static final String FIELD_AUTH_SCOPES_LIST = "authScopeList";
private HuaweiIdAuthService huaweiIdService;
private Promise mSignInPromise;
private HMSLogger logger;
public HMSAccount(ReactApplicationContext reactContext) {
super(reactContext);
logger = HMSLogger.getInstance(reactContext);
reactContext.addActivityEventListener(this);
}
@Override
public void onNewIntent(Intent intent) {
}
@NonNull
@Override
public String getName() {
return "HMSAccount";
}
@Override
public Map<String, Object> getConstants() {
final Map<String, Object> constantsToBeExposed = new HashMap<>();
for (ClassConstants constant : ClassConstants.values()) {
constantsToBeExposed.put(constant.name(),
constant.getIntValue() == null ? constant.getStringValue() : constant.getIntValue());
}
return constantsToBeExposed;
}
@Override
public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent intent) {
if (requestCode == REQUEST_CODE_LOG_IN && mSignInPromise != null) {
Task<AuthHuaweiId> authHuaweiIdTask = HuaweiIdAuthManager.parseAuthResultFromIntent(intent);
logger.sendSingleEvent("signIn");
authHuaweiIdTask.addOnSuccessListener(authHuaweiId -> mSignInPromise.resolve(
Utils.parseAuthHuaweiId(authHuaweiId, getReactApplicationContext())))
.addOnFailureListener(e -> Utils.handleError(mSignInPromise, e));
}
}
@ReactMethod
public void signIn(ReadableMap arguments, final Promise promise) {
String fieldName = (String) Utils.argumentNullCheck(arguments, FIELD_HUAWEI_ID_AUTH_PARAMS);
ReadableArray requestOption = (ReadableArray) Utils.argumentNullCheck(arguments, FIELD_REQUEST_OPTION);
ReadableArray authScopeList = (ReadableArray) Utils.argumentNullCheck(arguments, FIELD_AUTH_SCOPES_LIST);
if (fieldName == null) {
promise.reject("3000", "Null huaweiIdAuthParams Parameter");
} else {
logger.startMethodExecutionTimer("signIn");
huaweiIdService = HuaweiIdAuthManager.getService(Objects.requireNonNull(getCurrentActivity()),
Utils.toHuaweiIdAuthParams(requestOption, fieldName, authScopeList, promise));
getCurrentActivity().startActivityForResult(huaweiIdService.getSignInIntent(), REQUEST_CODE_LOG_IN);
this.mSignInPromise = promise;
}
}
@ReactMethod
public void signOut(final Promise promise) {
if (huaweiIdService != null) {
logger.startMethodExecutionTimer("signOut");
Task<Void> signOutTask = huaweiIdService.signOut();
logger.sendSingleEvent("signOut");
signOutTask.addOnSuccessListener(task -> promise.resolve(true))
.addOnFailureListener(e -> Utils.handleError(promise, e));
} else {
promise.reject("3001", "Null service");
}
}
@ReactMethod
public void silentSignIn(ReadableMap arguments, final Promise promise) {
String fieldName = (String) Utils.argumentNullCheck(arguments, FIELD_HUAWEI_ID_AUTH_PARAMS);
HuaweiIdAuthParams authParams = null;
if (fieldName != null) {
logger.startMethodExecutionTimer("silentSignIn");
if (fieldName.equals("DEFAULT_AUTH_REQUEST_PARAM")) {
authParams = new HuaweiIdAuthParamsHelper(HuaweiIdAuthParams.DEFAULT_AUTH_REQUEST_PARAM).createParams();
} else if (fieldName.equals("DEFAULT_AUTH_REQUEST_PARAM_GAME")) {
authParams = new HuaweiIdAuthParamsHelper(
HuaweiIdAuthParams.DEFAULT_AUTH_REQUEST_PARAM_GAME).createParams();
} else {
promise.reject("3003", "Invalid huaweiIdAuthParams Parameter");
}
huaweiIdService = HuaweiIdAuthManager.getService(Objects.requireNonNull(getCurrentActivity()), authParams);
Task<AuthHuaweiId> silentSignInTask = huaweiIdService.silentSignIn();
logger.sendSingleEvent("silentSignIn");
silentSignInTask.addOnSuccessListener(
authHuaweiId -> promise.resolve(Utils.parseAuthHuaweiId(authHuaweiId, getReactApplicationContext())))
.addOnFailureListener(e -> Utils.handleError(promise, e));
} else {
promise.reject("3000", "Null huaweiIdAuthParams Parameter");
}
}
@ReactMethod
public void cancelAuthorization(final Promise promise) {
if (huaweiIdService != null) {
logger.startMethodExecutionTimer("cancelAuthorization");
Task<Void> cancelAuthorizationTask = huaweiIdService.cancelAuthorization();
logger.sendSingleEvent("cancelAuthorization");
cancelAuthorizationTask.addOnSuccessListener(task -> promise.resolve(true))
.addOnFailureListener(e -> Utils.handleError(promise, e));
} else {
promise.reject("3001", "Null service");
}
}
@ReactMethod
public void getButtonInfo(final int viewId, final Promise promise) {
UIManagerModule uiManager = getReactApplicationContext().getNativeModule(UIManagerModule.class);
uiManager.addUIBlock(nativeViewHierarchyManager -> {
View view = nativeViewHierarchyManager.resolveView(viewId);
if (view instanceof HuaweiIdAuthButton) {
HuaweiIdAuthButton button = (HuaweiIdAuthButton) view;
promise.resolve(Utils.parseButton(button));
return;
}
promise.resolve(null);
});
}
@ReactMethod
public void enableLogger() {
logger.enableLogger();
}
@ReactMethod
public void disableLogger() {
logger.disableLogger();
}
}
================================================
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSAccountAuthManager.java
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package com.huawei.hms.rn.account.modules;
import android.app.Activity;
import android.content.Intent;
import com.huawei.hms.rn.account.logger.HMSLogger;
import com.huawei.hms.rn.account.utils.Utils;
import com.huawei.hms.support.account.AccountAuthManager;
import com.huawei.hms.support.account.common.AccountAuthException;
import com.huawei.hms.support.account.result.AuthAccount;
import com.huawei.hms.support.api.entity.auth.Scope;
import com.facebook.react.bridge.ActivityEventListener;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;
import java.util.List;
import java.util.Objects;
import javax.annotation.Nonnull;
public class HMSAccountAuthManager extends ReactContextBaseJavaModule implements ActivityEventListener {
private static final String FIELD_AUTH_ACCOUNT = "authAccount";
private static final int REQUEST_ADD_AUTH_SCOPES = 999;
private Promise mAddAuthScopesPromiseT;
private HMSLogger logger;
public HMSAccountAuthManager(ReactApplicationContext reactContext) {
super(reactContext);
logger = HMSLogger.getInstance(reactContext);
reactContext.addActivityEventListener(this);
}
@Nonnull
@Override
public String getName() {
return "HMSAccountAuthManager";
}
@ReactMethod
public void getAuthResult(Promise promise) {
logger.startMethodExecutionTimer("getAuthResult");
ReadableMap parsedAuthAccount = Utils.parseAuthAccount(AccountAuthManager.getAuthResult(),
getReactApplicationContext());
logger.sendSingleEvent("getAuthResult");
promise.resolve(parsedAuthAccount);
}
@ReactMethod
public void getAuthResultWithScopes(ReadableMap arguments, Promise promise) {
ReadableArray scope = Utils.getScopeArray(arguments);
if (scope != null) {
List<Scope> scopeList = Utils.toScopeList(scope);
try {
logger.startMethodExecutionTimer("getAuthResultWithScopes");
ReadableMap parsedAuthAccount = Utils.parseAuthAccount(
AccountAuthManager.getAuthResultWithScopes(scopeList), getReactApplicationContext());
logger.sendSingleEvent("getAuthResultWithScopes");
promise.resolve(parsedAuthAccount);
} catch (AccountAuthException e) {
Utils.handleError(promise, e);
}
} else {
promise.reject("3004", "Null authScopeList");
}
}
@ReactMethod
public void containScopes(ReadableMap readableMap, Promise promise) {
ReadableMap fieldAuthAccount = (ReadableMap) Utils.argumentNullCheck(readableMap, FIELD_AUTH_ACCOUNT);
ReadableArray array = Utils.getScopeArray(readableMap);
if (fieldAuthAccount != null && array != null) {
AuthAccount authAccount = Utils.toAuthResult(fieldAuthAccount, FIELD_AUTH_ACCOUNT);
List<Scope> scopeList = Utils.toScopeList(array);
logger.startMethodExecutionTimer("containScopes");
boolean isContainScope = AccountAuthManager.containScopes(authAccount, scopeList);
logger.sendSingleEvent("containScopes");
promise.resolve(isContainScope);
} else {
promise.reject("3016", "Null authAccount or authScopeList");
}
}
@ReactMethod
public void addAuthScopes(ReadableMap readableMap, Promise promise) {
logger.startMethodExecutionTimer("addAuthScopes");
mAddAuthScopesPromiseT = promise;
AccountAuthManager.addAuthScopes(Objects.requireNonNull(getCurrentActivity()), REQUEST_ADD_AUTH_SCOPES,
Utils.toScopeList(Utils.getScopeArray(readableMap)));
}
@Override
public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent intent) {
if (requestCode == REQUEST_ADD_AUTH_SCOPES && mAddAuthScopesPromiseT != null) {
logger.sendSingleEvent("addAuthScopes");
mAddAuthScopesPromiseT.resolve(true);
}
}
@Override
public void onNewIntent(Intent intent) {
}
}
================================================
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSAccountAuthService.java
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package com.huawei.hms.rn.account.modules;
import android.app.Activity;
import android.content.Intent;
import com.huawei.hmf.tasks.Task;
import com.huawei.hms.rn.account.logger.HMSLogger;
import com.huawei.hms.rn.account.utils.Utils;
import com.huawei.hms.support.account.AccountAuthManager;
import com.huawei.hms.support.account.request.AccountAuthParams;
import com.huawei.hms.support.account.request.AccountAuthParamsHelper;
import com.huawei.hms.support.account.result.AccountIcon;
import com.huawei.hms.support.account.result.AuthAccount;
import com.huawei.hms.support.account.service.AccountAuthService;
import com.facebook.react.bridge.ActivityEventListener;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;
import java.util.Objects;
import javax.annotation.Nonnull;
public class HMSAccountAuthService extends ReactContextBaseJavaModule implements ActivityEventListener {
private static final int REQUEST_CODE_LOG_IN = 0;
private static final String FIELD_ACCOUNT_AUTH_PARAMS = "accountAuthParams";
private static final String FIELD_REQUEST_OPTION = "authRequestOption";
private static final String FIELD_AUTH_SCOPES_LIST = "authScopeList";
private AccountAuthService accountAuthService;
private Promise mSignInAccountPromise;
private HMSLogger logger;
public HMSAccountAuthService(@Nonnull ReactApplicationContext reactContext) {
super(reactContext);
logger = HMSLogger.getInstance(reactContext);
reactContext.addActivityEventListener(this);
}
@Nonnull
@Override
public String getName() {
return "HMSAccountAuthService";
}
@Override
public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent intent) {
if (requestCode == REQUEST_CODE_LOG_IN && mSignInAccountPromise != null) {
Task<AuthAccount> accountAuthTask = AccountAuthManager.parseAuthResultFromIntent(intent);
accountAuthTask.addOnSuccessListener(authAccount -> mSignInAccountPromise.resolve(
Utils.parseAuthAccount(authAccount, getReactApplicationContext())))
.addOnFailureListener(e -> Utils.handleError(mSignInAccountPromise, e));
}
}
@ReactMethod
public void signIn(ReadableMap arguments, final Promise promise) {
String fieldName = (String) Utils.argumentNullCheck(arguments, FIELD_ACCOUNT_AUTH_PARAMS);
ReadableArray requestOption = (ReadableArray) Utils.argumentNullCheck(arguments, FIELD_REQUEST_OPTION);
ReadableArray authScopeList = (ReadableArray) Utils.argumentNullCheck(arguments, FIELD_AUTH_SCOPES_LIST);
if (fieldName == null) {
promise.reject("3014", "Null accountAuthParams Parameter");
} else {
logger.startMethodExecutionTimer("signIn");
accountAuthService = AccountAuthManager.getService(Objects.requireNonNull(getCurrentActivity()),
Utils.toAccountAuthParams(requestOption, fieldName, authScopeList, promise));
getCurrentActivity().startActivityForResult(accountAuthService.getSignInIntent(), REQUEST_CODE_LOG_IN);
logger.sendSingleEvent("signIn");
this.mSignInAccountPromise = promise;
}
}
@ReactMethod
public void signOut(final Promise promise) {
if (accountAuthService != null) {
logger.startMethodExecutionTimer("signOut");
Task<Void> signOutTask = accountAuthService.signOut();
logger.sendSingleEvent("signOut");
signOutTask.addOnSuccessListener(task -> promise.resolve(true))
.addOnFailureListener(e -> Utils.handleError(promise, e));
} else {
promise.reject("3001", "Null service");
}
}
@ReactMethod
public void getChannel(final Promise promise) {
if (accountAuthService != null) {
logger.startMethodExecutionTimer("getChannel");
Task<AccountIcon> task = accountAuthService.getChannel();
logger.sendSingleEvent("getChannel");
task.addOnSuccessListener(accountIcon -> promise.resolve(Utils.parseAccountIcon(accountIcon)))
.addOnFailureListener(e -> Utils.handleError(promise, e));
} else {
promise.reject("3001", "Null service");
}
}
@ReactMethod
public void silentSignIn(ReadableMap arguments, final Promise promise) {
String fieldName = (String) Utils.argumentNullCheck(arguments, FIELD_ACCOUNT_AUTH_PARAMS);
AccountAuthParams authParams = null;
if (fieldName != null) {
logger.startMethodExecutionTimer("silentSignIn");
if (fieldName.equals("DEFAULT_AUTH_REQUEST_PARAM")) {
authParams = new AccountAuthParamsHelper(AccountAuthParams.DEFAULT_AUTH_REQUEST_PARAM).createParams();
} else if (fieldName.equals("DEFAULT_AUTH_REQUEST_PARAM_GAME")) {
authParams = new AccountAuthParamsHelper(
AccountAuthParams.DEFAULT_AUTH_REQUEST_PARAM_GAME).createParams();
} else {
promise.reject("3015", "Invalid accountAuthParams Parameter");
}
accountAuthService = AccountAuthManager.getService(Objects.requireNonNull(getCurrentActivity()),
authParams);
Task<AuthAccount> silentSignInTask = accountAuthService.silentSignIn();
logger.sendSingleEvent("silentSignIn");
silentSignInTask.addOnSuccessListener(
authAccount -> promise.resolve(Utils.parseAuthAccount(authAccount, getReactApplicationContext())))
.addOnFailureListener(e -> Utils.handleError(promise, e));
} else {
promise.reject("3014", "Null accountAuthParams Parameter");
}
}
@ReactMethod
public void cancelAuthorization(final Promise promise) {
if (accountAuthService != null) {
logger.startMethodExecutionTimer("cancelAuthorization");
Task<Void> cancelAuthorizationTask = accountAuthService.cancelAuthorization();
logger.sendSingleEvent("cancelAuthorization");
cancelAuthorizationTask.addOnSuccessListener(task -> promise.resolve(true))
.addOnFailureListener(e -> Utils.handleError(promise, e));
} else {
promise.reject("3001", "Null service");
}
}
@ReactMethod
public void getIndependentSignInIntent(String accessToken, final Promise promise) {
if (accessToken != null) {
logger.startMethodExecutionTimer("getIndependentSignInIntent");
AccountAuthParams authParams = new AccountAuthParamsHelper().setProfile().createParams();
accountAuthService = AccountAuthManager.getService(Objects.requireNonNull(getCurrentActivity()),
authParams);
this.mSignInAccountPromise = promise;
getCurrentActivity().startActivityForResult(accountAuthService.getIndependentSignInIntent(accessToken),
REQUEST_CODE_LOG_IN);
logger.sendSingleEvent("getIndependentSignInIntent");
} else {
promise.reject("3017", "Null accessToken");
}
}
@Override
public void onNewIntent(Intent intent) {
}
}
================================================
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSHuaweiIdAuthManager.java
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package com.huawei.hms.rn.account.modules;
import android.app.Activity;
import android.content.Intent;
import androidx.annotation.NonNull;
import com.huawei.hms.rn.account.logger.HMSLogger;
import com.huawei.hms.rn.account.utils.Utils;
import com.huawei.hms.support.api.entity.auth.Scope;
import com.huawei.hms.support.hwid.HuaweiIdAuthManager;
import com.huawei.hms.support.hwid.common.HuaweiIdAuthException;
import com.huawei.hms.support.hwid.result.AuthHuaweiId;
import com.facebook.react.bridge.ActivityEventListener;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;
import java.util.List;
import java.util.Objects;
public class HMSHuaweiIdAuthManager extends ReactContextBaseJavaModule implements ActivityEventListener {
private static final String FIELD_AUTH_HUAWEI_ID = "authHuaweiId";
private static final int REQUEST_ADD_AUTH_SCOPES = 999;
private Promise mAddAuthScopesPromise;
private HMSLogger logger;
public HMSHuaweiIdAuthManager(ReactApplicationContext reactContext) {
super(reactContext);
logger = HMSLogger.getInstance(reactContext);
reactContext.addActivityEventListener(this);
}
@NonNull
@Override
public String getName() {
return "HMSHuaweiIdAuthManager";
}
@ReactMethod
public void getAuthResult(Promise promise) {
logger.startMethodExecutionTimer("getAuthResult");
ReadableMap parsedAuthHuaweiId = Utils.parseAuthHuaweiId(HuaweiIdAuthManager.getAuthResult(),
getReactApplicationContext());
logger.sendSingleEvent("getAuthResult");
promise.resolve(parsedAuthHuaweiId);
}
@ReactMethod
public void getAuthResultWithScopes(ReadableMap arguments, Promise promise) {
ReadableArray scope = Utils.getScopeArray(arguments);
if (scope != null) {
List<Scope> scopeList = Utils.toScopeList(scope);
try {
logger.startMethodExecutionTimer("getAuthResultWithScopes");
ReadableMap parsedAuthHuaweiId = Utils.parseAuthHuaweiId(
HuaweiIdAuthManager.getAuthResultWithScopes(scopeList), getReactApplicationContext());
logger.sendSingleEvent("getAuthResultWithScopes");
promise.resolve(parsedAuthHuaweiId);
} catch (HuaweiIdAuthException e) {
Utils.handleError(promise, e);
}
} else {
promise.reject("3004", "Null authScopeList");
}
}
@ReactMethod
public void addAuthScopes(ReadableMap readableMap, Promise promise) {
logger.startMethodExecutionTimer("addAuthScopes");
mAddAuthScopesPromise = promise;
HuaweiIdAuthManager.addAuthScopes(Objects.requireNonNull(getCurrentActivity()), REQUEST_ADD_AUTH_SCOPES,
Utils.toScopeList(Utils.getScopeArray(readableMap)));
}
@Override
public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent intent) {
if (requestCode == REQUEST_ADD_AUTH_SCOPES && mAddAuthScopesPromise != null) {
logger.sendSingleEvent("addAuthScopes");
mAddAuthScopesPromise.resolve(true);
}
}
@Override
public void onNewIntent(Intent intent) {
// ignored
}
@ReactMethod
public void containScopes(ReadableMap readableMap, Promise promise) {
ReadableMap fieldAuthHuaweiId = (ReadableMap) Utils.argumentNullCheck(readableMap, FIELD_AUTH_HUAWEI_ID);
ReadableArray array = Utils.getScopeArray(readableMap);
if (fieldAuthHuaweiId != null && array != null) {
AuthHuaweiId authHuaweiId = Utils.toAuthResult(fieldAuthHuaweiId, FIELD_AUTH_HUAWEI_ID);
List<Scope> scopeList = Utils.toScopeList(array);
logger.startMethodExecutionTimer("containScopes");
boolean isContainScope = HuaweiIdAuthManager.containScopes(authHuaweiId, scopeList);
logger.sendSingleEvent("containScopes");
promise.resolve(isContainScope);
} else {
promise.reject("3005", "Null authHuaweiId or authScopeList");
}
}
}
================================================
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSHuaweiIdAuthTool.java
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package com.huawei.hms.rn.account.modules;
import android.accounts.Account;
import androidx.annotation.NonNull;
import com.huawei.hms.rn.account.logger.HMSLogger;
import com.huawei.hms.rn.account.utils.Utils;
import com.huawei.hms.support.api.entity.auth.Scope;
import com.huawei.hms.support.hwid.common.HuaweiIdAuthException;
import com.huawei.hms.support.hwid.tools.HuaweiIdAuthTool;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReadableMap;
import java.util.List;
import java.util.Objects;
public class HMSHuaweiIdAuthTool extends ReactContextBaseJavaModule {
private static final String FIELD_ACCESS_TOKEN = "accessToken";
private static final String FIELD_HUAWEI_ACCOUNT_NAME = "huaweiAccountName";
private static final String FIELD_HUAWEI_ACCOUNT = "huaweiAccount";
private static final String FIELD_NAME = "name";
private static final String FIELD_TYPE = "type";
private HMSLogger logger;
public HMSHuaweiIdAuthTool(ReactApplicationContext reactContext) {
super(reactContext);
logger = HMSLogger.getInstance(reactContext);
}
@NonNull
@Override
public String getName() {
return "HMSHuaweiIdAuthTool";
}
@ReactMethod
public void deleteAuthInfo(ReadableMap arguments, Promise promise) {
String fieldAccessToken = (String) Utils.argumentNullCheck(arguments, FIELD_ACCESS_TOKEN);
if (fieldAccessToken != null) {
logger.startMethodExecutionTimer("deleteAuthInfo");
try {
HuaweiIdAuthTool.deleteAuthInfo(Objects.requireNonNull(getCurrentActivity()), fieldAccessToken);
logger.sendSingleEvent("deleteAuthInfo");
promise.resolve(true);
} catch (HuaweiIdAuthException e) {
logger.sendSingleEvent("deleteAuthInfo", e.getLocalizedMessage());
Utils.handleError(promise, e);
}
} else {
promise.reject("3006", "Null accessToken");
}
}
@ReactMethod
public void requestUnionId(ReadableMap arguments, Promise promise) {
String fieldAccountName = (String) Utils.argumentNullCheck(arguments, FIELD_HUAWEI_ACCOUNT_NAME);
if (fieldAccountName != null) {
logger.startMethodExecutionTimer("requestUnionId");
try {
String requestedUnionId = HuaweiIdAuthTool.requestUnionId(Objects.requireNonNull(getCurrentActivity()),
fieldAccountName);
logger.sendSingleEvent("requestUnionId");
promise.resolve(requestedUnionId);
} catch (HuaweiIdAuthException e) {
logger.sendSingleEvent("requestUnionId", e.getLocalizedMessage());
Utils.handleError(promise, e);
}
} else {
promise.reject("3007", "Null huaweiAccountName");
}
}
@ReactMethod
public void requestAccessToken(ReadableMap arguments, Promise promise) {
ReadableMap fieldAccount = (ReadableMap) Utils.argumentNullCheck(arguments, FIELD_HUAWEI_ACCOUNT);
List<Scope> scopeList = Utils.toScopeList(Utils.getScopeArray(arguments));
if (fieldAccount != null) {
String fieldAccountName = (String) Utils.argumentNullCheck(fieldAccount, FIELD_NAME);
String fieldAccountType = (String) Utils.argumentNullCheck(fieldAccount, FIELD_TYPE);
if (fieldAccountName != null && fieldAccountType != null) {
Account account = new Account(fieldAccountName, fieldAccountType);
logger.startMethodExecutionTimer("requestAccessToken");
try {
String requestedAccessToken = HuaweiIdAuthTool.requestAccessToken(
Objects.requireNonNull(getCurrentActivity()), account, scopeList);
logger.sendSingleEvent("requestAccessToken");
promise.resolve(requestedAccessToken);
} catch (HuaweiIdAuthException e) {
logger.sendSingleEvent("requestAccessToken", e.getLocalizedMessage());
Utils.handleError(promise, e);
}
} else {
promise.reject("3009", "Null huaweiAccount name or type parameter");
}
} else {
promise.reject("3008", "Null huaweiAccount");
}
}
}
================================================
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSNetworkTool.java
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package com.huawei.hms.rn.account.modules;
import androidx.annotation.NonNull;
import com.huawei.hms.rn.account.logger.HMSLogger;
import com.huawei.hms.rn.account.utils.Utils;
import com.huawei.hms.support.hwid.tools.NetworkTool;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReadableMap;
public class HMSNetworkTool extends ReactContextBaseJavaModule {
private static final String FIELD_COOKIE_NAME = "cookieName";
private static final String FIELD_COOKIE_VALUE = "cookieValue";
private static final String FIELD_DOMAIN = "domain";
private static final String FIELD_PATH = "path";
private static final String FIELD_IS_HTTP_ONLY = "isHttpOnly";
private static final String FIELD_IS_SECURE = "isSecure";
private static final String FIELD_MAX_AGE = "maxAge";
private static final String FIELD_IS_USE_HTTPS = "isUseHttps";
private HMSLogger logger;
public HMSNetworkTool(ReactApplicationContext reactContext) {
super(reactContext);
logger = HMSLogger.getInstance(reactContext);
}
@NonNull
public String getName() {
return "HMSNetworkTool";
}
@ReactMethod
public void buildNetworkCookie(ReadableMap arguments, Promise promise) {
String fieldCookieName = (String) Utils.argumentNullCheck(arguments, FIELD_COOKIE_NAME);
String fieldCookieValue = (String) Utils.argumentNullCheck(arguments, FIELD_COOKIE_VALUE);
String fieldDomain = (String) Utils.argumentNullCheck(arguments, FIELD_DOMAIN);
String fieldPath = (String) Utils.argumentNullCheck(arguments, FIELD_PATH);
Boolean fieldIsHttpOnly = arguments.hasKey(FIELD_IS_HTTP_ONLY) && arguments.getBoolean(FIELD_IS_HTTP_ONLY);
Boolean fieldIsSecure = arguments.hasKey(FIELD_IS_SECURE) && arguments.getBoolean(FIELD_IS_SECURE);
Long fieldMaxAge = Utils.argumentNullCheckAndConvert(arguments, FIELD_MAX_AGE);
if (fieldCookieName != null) {
logger.startMethodExecutionTimer("buildNetworkCookie");
String networkCookieData = NetworkTool.buildNetworkCookie(fieldCookieName, fieldCookieValue, fieldDomain,
fieldPath, fieldIsHttpOnly, fieldIsSecure, fieldMaxAge);
logger.sendSingleEvent("buildNetworkCookie");
promise.resolve(networkCookieData);
} else {
promise.reject("3010", "Null cookieName");
}
}
@ReactMethod
public void buildNetworkUrl(ReadableMap arguments, Promise promise) {
String fieldDomain = (String) Utils.argumentNullCheck(arguments, FIELD_DOMAIN);
Boolean fieldIsHttpOnly = arguments.hasKey(FIELD_IS_USE_HTTPS) && arguments.getBoolean(FIELD_IS_USE_HTTPS);
if (fieldDomain != null) {
logger.startMethodExecutionTimer("buildNetworkUrl");
String networkUrl = NetworkTool.buildNetworkUrl(fieldDomain, fieldIsHttpOnly);
logger.sendSingleEvent("buildNetworkUrl");
promise.resolve(networkUrl);
} else {
promise.reject("3011", "Null domain");
}
}
}
================================================
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSReadSMSManager.java
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package com.huawei.hms.rn.account.modules;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.pm.Signature;
import android.os.Build;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;
import androidx.annotation.NonNull;
import com.huawei.hmf.tasks.Task;
import com.huawei.hms.common.api.CommonStatusCodes;
import com.huawei.hms.rn.account.logger.HMSLogger;
import com.huawei.hms.rn.account.utils.Utils;
import com.huawei.hms.support.api.client.Status;
import com.huawei.hms.support.sms.ReadSmsManager;
import com.huawei.hms.support.sms.common.ReadSmsConstant;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.WritableMap;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.Objects;
/**
* @deprecated
* It's not advised to use this module
*/
@Deprecated
public class HMSReadSMSManager extends ReactContextBaseJavaModule {
private static final String MODULE_NAME = "HMSReadSMSManager";
private static final String HASHING_ALGORITHM_SHA_256 = "SHA-256";
private static final String FIELD_BASE_64_HASH = "base64Hash";
private static final String FIELD_ERROR = "Error: ";
private static final String FIELD_STATUS = "Status";
private static final String FIELD_MESSAGE = "Message";
private SMSBroadcastReceiver smsReceiver;
private HMSLogger logger;
public HMSReadSMSManager(ReactApplicationContext reactContext) {
super(reactContext);
logger = HMSLogger.getInstance(reactContext);
}
@NonNull
public String getName() {
return MODULE_NAME;
}
@ReactMethod
@Deprecated
public void smsVerificationCode(final Promise promise) {
Task<Void> smsTask = ReadSmsManager.start(Objects.requireNonNull(getCurrentActivity()));
startRegisterReceiver(smsTask, "smsVerificationCode", promise);
}
@ReactMethod
@Deprecated
public void startConsent(String phoneNumber, final Promise promise) {
if (phoneNumber != null) {
Task<Void> phoneNumberTask = ReadSmsManager.startConsent(Objects.requireNonNull(getCurrentActivity()),
phoneNumber);
startRegisterReceiver(phoneNumberTask, "startConsent", promise);
} else {
Task<Void> phoneNumberTask = ReadSmsManager.startConsent(Objects.requireNonNull(getCurrentActivity()), "");
startRegisterReceiver(phoneNumberTask, "startConsent", promise);
}
}
private void startRegisterReceiver(Task<Void> taskRegisterReceiver, String methodName, final Promise promise) {
taskRegisterReceiver.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
if (smsReceiver != null) {
Objects.requireNonNull(getCurrentActivity()).unregisterReceiver(smsReceiver);
}
IntentFilter intentPhoneFilter = new IntentFilter(ReadSmsConstant.READ_SMS_BROADCAST_ACTION);
smsReceiver = new SMSBroadcastReceiver(promise, methodName);
Objects.requireNonNull(getCurrentActivity()).registerReceiver(smsReceiver, intentPhoneFilter);
}
}).addOnFailureListener(e -> Utils.handleError(promise, e));
}
@ReactMethod
@Deprecated
public void getHashCode(Promise promise) {
logger.startMethodExecutionTimer("getHashCode");
MessageDigest messageDigest = getMessageDigest();
if (messageDigest == null) {
logger.sendSingleEvent("getHashCode", "-1");
promise.reject("3012", "Null MessageDigest");
} else {
String packageName = Objects.requireNonNull(getCurrentActivity()).getPackageName();
String signature = getSignature(getCurrentActivity(), packageName);
String appInfo = packageName + " " + signature;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
messageDigest.update(appInfo.getBytes(StandardCharsets.UTF_8));
}
byte[] hashSignature = messageDigest.digest();
hashSignature = Arrays.copyOfRange(hashSignature, 0, 9);
String base64Hash = Base64.encodeToString(hashSignature, Base64.NO_PADDING | Base64.NO_WRAP);
if (base64Hash.length() > 0) {
base64Hash = base64Hash.substring(0, 11);
WritableMap base64HashMap = Arguments.createMap();
base64HashMap.putString(FIELD_BASE_64_HASH, base64Hash);
Log.i(MODULE_NAME, String.valueOf(base64HashMap));
logger.sendSingleEvent("getHashCode");
promise.resolve(base64HashMap);
} else {
logger.sendSingleEvent("getHashCode", "-1");
promise.reject("3013", "Invalid hashCode");
}
}
}
private MessageDigest getMessageDigest() {
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance(HASHING_ALGORITHM_SHA_256);
} catch (NoSuchAlgorithmException ex) {
Log.e(MODULE_NAME, ex.getMessage());
}
return messageDigest;
}
private String getSignature(Context context, String packageName) {
PackageManager packageManager = context.getPackageManager();
Signature[] signatureArray;
try {
signatureArray = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES).signatures;
} catch (PackageManager.NameNotFoundException e) {
return "";
}
return Objects.requireNonNull(signatureArray)[0].toCharsString();
}
private static class SMSBroadcastReceiver extends BroadcastReceiver {
private final Promise promise;
private final String methodName;
public SMSBroadcastReceiver(Promise promise, String methodName) {
this.promise = promise;
this.methodName = methodName;
}
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Status status = bundle.getParcelable(ReadSmsConstant.EXTRA_STATUS);
if (Objects.requireNonNull(status).getStatusCode() != CommonStatusCodes.SUCCESS) {
HMSLogger.getInstance(context).sendPeriodicEvent(methodName, "-1");
promise.reject(FIELD_ERROR + Objects.requireNonNull(status).getStatusCode());
} else {
WritableMap map = Arguments.createMap();
map.putMap(FIELD_STATUS, Utils.parseStatus(Objects.requireNonNull(status)));
map.putString(FIELD_MESSAGE, bundle.getString(ReadSmsConstant.EXTRA_SMS_MESSAGE));
HMSLogger.getInstance(context).sendPeriodicEvent(methodName);
promise.resolve(map);
}
}
}
}
}
================================================
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/utils/Utils.java
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package com.huawei.hms.rn.account.utils;
import android.accounts.Account;
import android.content.Context;
import android.graphics.Bitmap;
import android.util.Base64;
import com.huawei.hms.common.ApiException;
import com.huawei.hms.support.account.request.AccountAuthParams;
import com.huawei.hms.support.account.request.AccountAuthParamsHelper;
import com.huawei.hms.support.account.result.AccountIcon;
import com.huawei.hms.support.account.result.AuthAccount;
import com.huawei.hms.support.api.client.Status;
import com.huawei.hms.support.api.entity.auth.Scope;
import com.huawei.hms.support.feature.result.AbstractAuthAccount;
import com.huawei.hms.support.hwid.request.HuaweiIdAuthParams;
import com.huawei.hms.support.hwid.request.HuaweiIdAuthParamsHelper;
import com.huawei.hms.support.hwid.result.AuthHuaweiId;
import com.huawei.hms.support.hwid.ui.HuaweiIdAuthButton;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.WritableArray;
import com.facebook.react.bridge.WritableMap;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
public class Utils {
private static final String FIELD_AUTH_HUAWEI_ID = "authHuaweiId";
private static final String FIELD_AUTH_ACCOUNT = "authAccount";
private static final String FIELD_ACCESS_TOKEN = "accessToken";
private static final String FIELD_DISPLAY_NAME = "displayName";
private static final String FIELD_EMAIL = "email";
private static final String FIELD_ID_TOKEN = "idToken";
private static final String FIELD_AUTHORIZATION_CODE = "authorizationCode";
private static final String FIELD_UNION_ID = "unionId";
private static final String FIELD_AGE_RANGE = "ageRange";
private static final String FIELD_COUNTRY_CODE = "countryCode";
private static final String FIELD_AVATAR_URI_STRING = "avatarUriString";
private static final String FIELD_EXPRESSION_TIME_SECS = "expressionTimeSecs";
private static final String FIELD_SERVICE_COUNTRY_CODE = "serviceCountryCode";
private static final String FIELD_UID = "uid";
private static final String FIELD_OPEN_ID = "openId";
private static final String FIELD_GENDER = "gender";
private static final String FIELD_DESCRIBE_CONTENTS = "describeContentsInAuthHuaweiId";
private static final String FIELD_NAME = "name";
private static final String FIELD_TYPE = "type";
private static final String FIELD_STATUS = "status";
private static final String FIELD_AUTHORIZED_SCOPES = "authorizedScopes";
private static final String FIELD_EXTENSION_SCOPE = "extensionScopes";
private static final String FIELD_SCOPE_ARRAY = "authScopeList";
private static final String FIELD_SERVER_AUTH_CODE = "serverAuthCode";
private static final String FIELD_ACCOUNT = "account";
private static final String FIELD_ERROR_STRING = "errorCode";
private static final String FIELD_STATUS_MESSAGE = "statusMessage";
private static final String FIELD_STATUS_CODE = "statusCode";
private static final String FIELD_COLOR_POLICY = "colorPolicy";
private static final String FIELD_CORNER_RADIUS = "cornerRadius";
private static final String FIELD_THEME = "theme";
private static final String FIELD_ACCOUNT_FLAG = "accountFlag";
private static final String FIELD_CARRIERID = "carrierId";
private static final String ICON = "icon";
private static final String ICON_DESCRIPTION = "description";
public static ReadableMap parseAuthHuaweiId(AuthHuaweiId authHuaweiId, Context context) {
if (authHuaweiId == null) {
return null;
}
WritableMap arguments = Arguments.createMap();
arguments.putString(FIELD_ACCESS_TOKEN, authHuaweiId.getAccessToken());
arguments.putString(FIELD_DISPLAY_NAME, authHuaweiId.getDisplayName());
arguments.putString(FIELD_EMAIL, authHuaweiId.getEmail());
arguments.putString(FIELD_ID_TOKEN, authHuaweiId.getIdToken());
arguments.putString(FIELD_AUTHORIZATION_CODE, authHuaweiId.getAuthorizationCode());
arguments.putString(FIELD_UNION_ID, authHuaweiId.getUnionId());
arguments.putString(FIELD_AGE_RANGE, authHuaweiId.getAgeRange());
arguments.putString(FIELD_COUNTRY_CODE, authHuaweiId.getCountryCode());
arguments.putString(FIELD_AVATAR_URI_STRING, authHuaweiId.getAvatarUriString());
arguments.putString(FIELD_SERVICE_COUNTRY_CODE, authHuaweiId.getServiceCountryCode());
arguments.putString(FIELD_UID, authHuaweiId.getUid());
arguments.putString(FIELD_OPEN_ID, authHuaweiId.getOpenId());
arguments.putInt(FIELD_GENDER, authHuaweiId.getGender());
arguments.putInt(FIELD_STATUS, authHuaweiId.getStatus());
arguments.putArray(FIELD_AUTHORIZED_SCOPES, parseScopeSet(authHuaweiId.getAuthorizedScopes()));
arguments.putArray(FIELD_EXTENSION_SCOPE, parseScopeSet(authHuaweiId.getExtensionScopes()));
arguments.putMap(FIELD_ACCOUNT, parseAccount(authHuaweiId.getHuaweiAccount(context)));
return arguments;
}
public static ReadableMap parseAuthAccount(AuthAccount authAccount, Context context) {
if (authAccount == null) {
return null;
}
WritableMap arguments = Arguments.createMap();
arguments.putString(FIELD_ACCESS_TOKEN, authAccount.getAccessToken());
arguments.putString(FIELD_DISPLAY_NAME, authAccount.getDisplayName());
arguments.putString(FIELD_EMAIL, authAccount.getEmail());
arguments.putString(FIELD_ID_TOKEN, authAccount.getIdToken());
arguments.putString(FIELD_AUTHORIZATION_CODE, authAccount.getAuthorizationCode());
arguments.putString(FIELD_UNION_ID, authAccount.getUnionId());
arguments.putString(FIELD_AGE_RANGE, authAccount.getAgeRange());
arguments.putString(FIELD_COUNTRY_CODE, authAccount.getCountryCode());
arguments.putString(FIELD_AVATAR_URI_STRING, authAccount.getAvatarUriString());
arguments.putString(FIELD_SERVICE_COUNTRY_CODE, authAccount.getServiceCountryCode());
arguments.putString(FIELD_UID, authAccount.getUid());
arguments.putString(FIELD_OPEN_ID, authAccount.getOpenId());
arguments.putInt(FIELD_GENDER, authAccount.getGender());
arguments.putInt(FIELD_STATUS, authAccount.getStatus());
arguments.putArray(FIELD_AUTHORIZED_SCOPES, parseScopeSet(authAccount.getAuthorizedScopes()));
arguments.putArray(FIELD_EXTENSION_SCOPE, parseScopeSet(authAccount.getExtensionScopes()));
arguments.putMap(FIELD_ACCOUNT, parseAccount(authAccount.getAccount(context)));
arguments.putInt(FIELD_ACCOUNT_FLAG, authAccount.getAccountFlag());
arguments.putInt(FIELD_CARRIERID, authAccount.getCarrierId());
return arguments;
}
public static WritableArray parseScopeSet(Set<Scope> scopeSet) {
WritableArray array = Arguments.createArray();
Iterator<Scope> scopeIterator = scopeSet.iterator();
while (scopeIterator.hasNext()) {
Scope scope = scopeIterator.next();
array.pushString(scope.getScopeUri());
}
return array;
}
public static WritableMap parseButton(HuaweiIdAuthButton button) {
if (button == null) {
return null;
}
WritableMap arguments = Arguments.createMap();
arguments.putInt(FIELD_COLOR_POLICY, button.getColorPolicy());
arguments.putInt(FIELD_CORNER_RADIUS, button.getCornerRadius());
arguments.putInt(FIELD_THEME, button.getTheme());
return arguments;
}
private static WritableMap parseAccount(Account account) {
if (account == null) {
return null;
}
WritableMap arguments = Arguments.createMap();
arguments.putString(FIELD_NAME, account.name);
arguments.putString(FIELD_TYPE, account.type);
return arguments;
}
public static HuaweiIdAuthParams toHuaweiIdAuthParams(ReadableArray requestOption, String huaweiIdAuthParams,
ReadableArray scopeList, Promise promise) {
HuaweiIdAuthParamsHelper huaweiIdBuilder;
if (huaweiIdAuthParams.equals("DEFAULT_AUTH_REQUEST_PARAM")) {
huaweiIdBuilder = new HuaweiIdAuthParamsHelper(HuaweiIdAuthParams.DEFAULT_AUTH_REQUEST_PARAM);
} else if (huaweiIdAuthParams.equals("DEFAULT_AUTH_REQUEST_PARAM_GAME")) {
huaweiIdBuilder = new HuaweiIdAuthParamsHelper(HuaweiIdAuthParams.DEFAULT_AUTH_REQUEST_PARAM_GAME);
} else {
promise.reject("3003", "Invalid Parameter");
return null;
}
ArrayList<String> huaweiIdListData = new ArrayList<>();
List<Scope> scopeListData = toScopeList(scopeList);
if (requestOption != null) {
for (int i = 0; i < requestOption.size(); i++) {
huaweiIdListData.add(requestOption.getString(i));
}
}
if (huaweiIdListData.contains("profile")) {
huaweiIdBuilder.setProfile();
}
if (huaweiIdListData.contains("idToken")) {
huaweiIdBuilder.setIdToken();
}
if (huaweiIdListData.contains("accessToken")) {
huaweiIdBuilder.setAccessToken();
}
if (huaweiIdListData.contains("mobileNumber")) {
huaweiIdBuilder.setMobileNumber();
}
if (huaweiIdListData.contains("email")) {
huaweiIdBuilder.setEmail();
}
if (huaweiIdListData.contains("shippingAddress")) {
huaweiIdBuilder.setShippingAddress();
}
if (huaweiIdListData.contains("uid")) {
huaweiIdBuilder.setUid();
}
if (huaweiIdListData.contains("id")) {
huaweiIdBuilder.setId();
}
if (huaweiIdListData.contains("authorizationCode")) {
huaweiIdBuilder.setAuthorizationCode();
}
if (scopeList != null) {
huaweiIdBuilder.setScopeList(scopeListData);
}
return huaweiIdBuilder.createParams();
}
public static AccountAuthParams toAccountAuthParams(ReadableArray requestOption, String accountdAuthParams,
ReadableArray scopeList, Promise promise) {
AccountAuthParamsHelper accountAuthBuilder;
if (accountdAuthParams.equals("DEFAULT_AUTH_REQUEST_PARAM")) {
accountAuthBuilder = new AccountAuthParamsHelper(AccountAuthParams.DEFAULT_AUTH_REQUEST_PARAM);
} else if (accountdAuthParams.equals("DEFAULT_AUTH_REQUEST_PARAM_GAME")) {
accountAuthBuilder = new AccountAuthParamsHelper(AccountAuthParams.DEFAULT_AUTH_REQUEST_PARAM_GAME);
} else {
promise.reject("3003", "Invalid AccountAuthParams Parameter");
return null;
}
ArrayList<String> accountListData = new ArrayList<>();
List<Scope> scopeListData = toScopeList(scopeList);
if (requestOption != null) {
for (int i = 0; i < requestOption.size(); i++) {
if (requestOption.getType(i).name().equals("String")) {
accountListData.add(requestOption.getString(i));
} else if (requestOption.getType(i).name().equals("Map")) {
ReadableMap rm = requestOption.getMap(i);
if (rm.hasKey("idTokenSignAlg")) {
accountAuthBuilder.setIdTokenSignAlg(rm.getInt("idTokenSignAlg"));
}
}
}
}
if (accountListData.contains("profile")) {
accountAuthBuilder.setProfile();
}
if (accountListData.contains("idToken")) {
accountAuthBuilder.setIdToken();
}
if (accountListData.contains("accessToken")) {
accountAuthBuilder.setAccessToken();
}
if (accountListData.contains("mobileNumber")) {
accountAuthBuilder.setMobileNumber();
}
if (accountListData.contains("email")) {
accountAuthBuilder.setEmail();
}
if (accountListData.contains("uid")) {
accountAuthBuilder.setUid();
}
if (accountListData.contains("id")) {
accountAuthBuilder.setId();
}
if (accountListData.contains("authorizationCode")) {
accountAuthBuilder.setAuthorizationCode();
}
if (accountListData.contains("carrierId")) {
accountAuthBuilder.setCarrierId();
}
if (scopeList != null) {
accountAuthBuilder.setScopeList(scopeListData);
}
return accountAuthBuilder.createParams();
}
public static <T extends AbstractAuthAccount> T toAuthResult(ReadableMap readableMap, String authType) {
T buildAuth = null;
String openId = (String) Utils.argumentNullCheck(readableMap, FIELD_OPEN_ID);
String unionId = (String) Utils.argumentNullCheck(readableMap, FIELD_UNION_ID);
String uid = (String) Utils.argumentNullCheck(readableMap, FIELD_UID);
Set<Scope> scopeList = readableMap.hasKey(FIELD_SCOPE_ARRAY) ? (Set<Scope>) (Object) toSet(
readableMap.getArray(FIELD_SCOPE_ARRAY)) : new HashSet();
String displayName = (String) Utils.argumentNullCheck(readableMap, FIELD_DISPLAY_NAME);
String photoUrl = (String) Utils.argumentNullCheck(readableMap, FIELD_AVATAR_URI_STRING);
int gender = readableMap.hasKey(FIELD_GENDER) ? readableMap.getInt(FIELD_GENDER) : -1;
String accessToken = (String) Utils.argumentNullCheck(readableMap, FIELD_ACCESS_TOKEN);
String serviceCountryCode = (String) Utils.argumentNullCheck(readableMap, FIELD_SERVICE_COUNTRY_CODE);
int status = readableMap.hasKey(FIELD_STATUS) ? readableMap.getInt(FIELD_STATUS) : 0;
String serverAuthCode = (String) Utils.argumentNullCheck(readableMap, FIELD_SERVER_AUTH_CODE);
String countryCode = (String) Utils.argumentNullCheck(readableMap, FIELD_COUNTRY_CODE);
int carrierId = readableMap.hasKey(FIELD_CARRIERID) ? readableMap.getInt(FIELD_CARRIERID) : -1;
if (authType.equals(FIELD_AUTH_HUAWEI_ID)) {
buildAuth = (T) AuthHuaweiId.build(openId, uid, displayName, photoUrl, accessToken, serviceCountryCode,
status, gender, scopeList, serverAuthCode, unionId, countryCode);
} else if (authType.equals(FIELD_AUTH_ACCOUNT)) {
buildAuth = (T) AuthAccount.build(openId, uid, displayName, photoUrl, accessToken, serviceCountryCode,
status, gender, scopeList, serverAuthCode, unionId, countryCode, carrierId);
}
return buildAuth;
}
private static Set<Object> toSet(ReadableArray readableArray) {
Set<Object> mySet = new HashSet<>();
for (int index = 0; index < readableArray.size(); index++) {
String scopeUri = readableArray.getString(index);
mySet.add(scopeUri == null ? new Scope() : new Scope(scopeUri));
}
return mySet;
}
public static List<Scope> toScopeList(ReadableArray scopeArray) {
List<Scope> scopeList = new ArrayList<>();
if (scopeArray != null) {
for (int index = 0; index < scopeArray.size(); index++) {
String scopeUri = scopeArray.getString(index);
scopeList.add(scopeUri == null ? new Scope() : new Scope(scopeUri));
}
}
return scopeList;
}
public static ReadableArray getScopeArray(ReadableMap readableMap) {
return (ReadableArray) Utils.argumentNullCheck(readableMap, FIELD_SCOPE_ARRAY);
}
public static WritableMap parseStatus(Status status) {
WritableMap map = Arguments.createMap();
map.putString(FIELD_ERROR_STRING, status.getErrorString());
map.putString(FIELD_STATUS_MESSAGE, status.getStatusMessage());
map.putInt(FIELD_STATUS_CODE, status.getStatusCode());
return map;
}
public static WritableMap parseAccountIcon(AccountIcon accountIcon) {
if (accountIcon == null) {
return null;
}
WritableMap arguments = Arguments.createMap();
arguments.putString(ICON, String.valueOf(bitmapToByteArray(accountIcon.getIcon())));
arguments.putString(ICON_DESCRIPTION, accountIcon.getDescription());
return arguments;
}
public static String bitmapToByteArray(Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] b = baos.toByteArray();
return Base64.encodeToString(b, Base64.DEFAULT);
}
public static void handleError(final Promise promise, Exception e) {
String errCode = "GENERIC_ERR";
if (e instanceof ApiException) {
errCode = String.valueOf(((ApiException) e).getStatusCode());
}
promise.reject(errCode, e.getMessage());
}
public static Object argumentNullCheck(final ReadableMap readableMap, final String key) {
if (readableMap.hasKey(key)) {
switch (readableMap.getType(key)) {
case String:
return readableMap.getString(key);
case Number:
return readableMap.getInt(key);
case Map:
return readableMap.getMap(key);
case Array:
return readableMap.getArray(key);
}
}
return null;
}
public static Long argumentNullCheckAndConvert(final ReadableMap readableMap, final String key) {
if (readableMap.hasKey(key)) {
return ((Double) readableMap.getDouble(key)).longValue();
}
return null;
}
}
================================================
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/views/HMSHuaweiIdAuthButton.java
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package com.huawei.hms.rn.account.views;
import android.view.View;
import androidx.annotation.NonNull;
import com.huawei.hms.support.hwid.ui.HuaweiIdAuthButton;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.SimpleViewManager;
import com.facebook.react.uimanager.ThemedReactContext;
import com.facebook.react.uimanager.annotations.ReactProp;
public class HMSHuaweiIdAuthButton extends SimpleViewManager<HuaweiIdAuthButton> {
private static final String NAME_AUTH_BUTTON = "HMSHuaweiIdAuthButton";
private static final String ARGUMENT_COLOR_POLICY = "colorPolicy";
private static final String ARGUMENT_ENABLED = "enabled";
private static final String ARGUMENT_THEME = "theme";
private static final String ARGUMENT_CORNER_RADIUS = "cornerRadius";
public HMSHuaweiIdAuthButton(ReactApplicationContext reactContext) {
}
@NonNull
@Override
public String getName() {
return NAME_AUTH_BUTTON;
}
@NonNull
@Override
public HuaweiIdAuthButton createViewInstance(@NonNull ThemedReactContext reactContext) {
HuaweiIdAuthButton button = new HuaweiIdAuthButton(reactContext);
button.setVisibility(View.VISIBLE);
button.setColorPolicy(HuaweiIdAuthButton.COLOR_POLICY_BLACK);
return button;
}
@ReactProp(name = ARGUMENT_COLOR_POLICY)
public void setColorPolicy(HuaweiIdAuthButton huaweiIdAuthButton, int colorPolicy) {
huaweiIdAuthButton.setColorPolicy(colorPolicy);
}
@ReactProp(name = ARGUMENT_ENABLED)
public void setEnabled(HuaweiIdAuthButton huaweiIdAuthButton, boolean isEnabled) {
huaweiIdAuthButton.setEnabled(isEnabled);
}
@ReactProp(name = ARGUMENT_THEME)
public void setTheme(HuaweiIdAuthButton huaweiIdAuthButton, int theme) {
huaweiIdAuthButton.setTheme(theme);
}
@ReactProp(name = ARGUMENT_CORNER_RADIUS)
public void setCornerRadius(HuaweiIdAuthButton huaweiIdAuthButton, int cornerRadius) {
huaweiIdAuthButton.setCornerRadius(cornerRadius);
}
}
================================================
FILE: react-native-hms-account/example/.gitignore
================================================
# OSX
#
.DS_Store
# Xcode
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
# Android/IntelliJ
#
build/
.idea
gradle-wrapper.jar
.gradle
local.properties
*.iml
# node.js
#
node_modules/
npm-debug.log
yarn-error.log
package-lock.json
# BUCK
buck-out/
\.buckd/
*.keystore
!debug.keystore
# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/
*/fastlane/report.xml
*/fastlane/Preview.html
*/fastlane/screenshots
# Bundle artifact
*.jsbundle
# CocoaPods
/ios/Pods/
agconnect-services.json
*.jks
*.keystore
================================================
FILE: react-native-hms-account/example/App.js
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from "react";
import { View, Text, StyleSheet, ScrollView, TouchableOpacity, Image } from "react-native";
import HMSAccount, {
HMSAccountAuthService,
HMSAccountAuthManager,
HMSHuaweiIdAuthTool,
HMSNetworkTool,
HMSAuthButton,
HMSAuthRequestOptionConstants,
HMSAuthScopeListConstants,
HMSAuthParamConstants
} from "@hmscore/react-native-hms-account";
const styles = StyleSheet.create({
main: {
marginBottom: 100,
},
logText: {
margin: 20,
},
viewcontainer: {
marginTop: 20,
height: 38,
},
header: {
backgroundColor: "red",
height: 100,
width: "100%",
flexDirection: "row",
},
headerTitle: {
flex: 1,
fontSize: 25,
color: "white",
fontWeight: "bold",
alignSelf: "center",
textAlign: "center",
},
subTitle: {
flex: 1,
fontSize: 15,
marginTop: 15,
fontWeight: "bold",
color: "black",
alignSelf: "center",
textAlign: "center",
},
row: {
flex: 1,
height: 1,
backgroundColor: 'black'
},
customButton: {
marginTop: 15,
width: 200,
height: 45,
justifyContent: "center",
alignSelf: "center",
borderRadius: 10,
marginLeft: 5,
marginRight: 5,
borderColor: "red",
borderWidth: 1,
},
buttonText: {
fontSize: 14,
color: "red",
textAlign: "center",
},
});
const Button = (props) => (
<TouchableOpacity style={styles.customButton} onPress={props.func}>
<Text style={styles.buttonText}>{props.text}</Text>
</TouchableOpacity>
);
class App extends React.Component {
constructor() {
super();
this.state = {
icon: "",
log: "",
};
}
logger = (method, response) => {
this.setState({ log: method + JSON.stringify(response) + '\n' + this.state.log });
};
errorLogger = (method, response) => {
this.setState({ log: method + response + '\n' + this.state.log });
}
signInWithIdToken = () => {
let signInData = {
accountAuthParams: HMSAuthParamConstants.DEFAULT_AUTH_REQUEST_PARAM,
authRequestOption: [HMSAuthRequestOptionConstants.ID_TOKEN, HMSAuthRequestOptionConstants.ACCESS_TOKEN, HMSAuthRequestOptionConstants.CARRIERID],
authScopeList: [HMSAuthScopeListConstants.EMAIL]
};
HMSAccountAuthService.signIn(signInData)
.then((response) => { this.logger("Sign In With IdToken -> ", response) })
.catch((err) => { this.errorLogger("Sign In With IdToken -> ", err) });
};
signInWithAuthorizationCode = () => {
let signInData = {
accountAuthParams: HMSAuthParamConstants.DEFAULT_AUTH_REQUEST_PARAM,
authRequestOption: [HMSAuthRequestOptionConstants.AUTHORIZATION_CODE, HMSAuthRequestOptionConstants.ACCESS_TOKEN],
};
HMSAccountAuthService.signIn(signInData)
.then((response) => { this.logger("Sign In With AuthorizaionCode -> ", response) })
.catch((err) => { this.errorLogger("Sign In With AuthorizaionCode -> ", err) });
};
signOut = () =>
HMSAccountAuthService.signOut()
.then((response) => { this.logger("signOut -> ", response) })
.catch((err) => { this.errorLogger("signOut -> ", err) });
silentSignIn = () => {
let silentSignInData = {
accountAuthParams: HMSAuthParamConstants.DEFAULT_AUTH_REQUEST_PARAM,
};
HMSAccountAuthService.silentSignIn(silentSignInData)
.then((response) => { this.logger("silentSignIn -> ", response) })
.catch((err) => { this.errorLogger("silentSignIn -> ", err) });
};
cancelAuthorization = () => {
HMSAccountAuthService.cancelAuthorization()
.then((response) => { this.logger("cancelAuthorization -> ", response) })
.catch((err) => { this.errorLogger("cancelAuthorization -> ", err) });
};
getIndependentSignIn = () => {
HMSAccountAuthService.getIndependentSignInIntent("CwHLQFU9k3D4f...")
.then((response) => { this.logger("getIndependentSignIn -> ", response) })
.catch((err) => { this.errorLogger("getIndependentSignIn -> ", err) });
};
getChannel = () =>
HMSAccountAuthService.getChannel()
.then((response) => {
this.logger("getChannel -> ", response)
this.setState({
icon: response.icon
})
})
.catch((err) => { this.errorLogger("getChannel -> ", err) });
getAuthResult = () => {
HMSAccountAuthManager.getAuthResult()
.then((response) => { this.logger("getAuthResult -> ", response) })
.catch((err) => { this.errorLogger("getAuthResult -> ", err) });
};
containScopes = () => {
let containScopesData = {
authAccount: {
openId: "myopenid",
uid: "myuid",
displayName: "mydisplayname",
photoUrl: "myphotourl",
accessToken: "myaccesstoken",
serviceCountryCode: "myservicecountrycode",
status: 0,
gender: 0,
authScopeList: [HMSAuthScopeListConstants.OPENID, HMSAuthScopeListConstants.PROFILE, HMSAuthScopeListConstants.EMAIL],
serverAuthCode: "myserverAuthCode",
unionId: "myunionId",
countryCode: "myCountryCode",
},
authScopeList: [HMSAuthScopeListConstants.OPENID, HMSAuthScopeListConstants.PROFILE],
};
HMSAccountAuthManager.containScopes(containScopesData)
.then((response) => { this.logger("containScopes -> ", response) })
.catch((err) => { this.errorLogger("containScopes -> ", err) });
};
addAuthScopes = () => {
let authScopeData = {
authScopeList: [HMSAuthScopeListConstants.EMAIL],
};
HMSAccountAuthManager.addAuthScopes(authScopeData)
.then((response) => { this.logger("addAuthScopes ->", response) })
.catch((err) => { this.errorLogger("addAuthScopes -> ", err) });
};
getAuthResultWithScopes = () => {
let authScopeData = {
authScopeList: [HMSAuthScopeListConstants.OPENID, HMSAuthScopeListConstants.PROFILE],
};
HMSAccountAuthManager.getAuthResultWithScopes(authScopeData)
.then((response) => { this.logger("getAuthResultWithScopes -> ", response) })
.catch((err) => { this.errorLogger("getAuthResultWithScopes -> ", err) });
};
deleteAuthInfo = () => {
let accesTokenData = {
accessToken: "myAccessToken",
};
HMSHuaweiIdAuthTool.deleteAuthInfo(accesTokenData)
.then((response) => { this.logger("deleteAuthInfo -> ", response) })
.catch((err) => { this.errorLogger("deleteAuthInfo -> ", err) });
};
requestUnionId = () => {
let accountData = {
huaweiAccountName: "test@test.com",
};
HMSHuaweiIdAuthTool.requestUnionId(accountData)
.then((response) => { this.logger("requestUnionId -> ", response) })
.catch((err) => { this.errorLogger("requestUnionId -> ", err) });
};
requestAccessToken = () => {
let requestAccessTokenData = {
authScopeList: [HMSAuthScopeListConstants.OPENID, HMSAuthScopeListConstants.PROFILE],
huaweiAccount: {
name: "test@test.com",
type: "com.huawei.hwid",
},
};
HMSHuaweiIdAuthTool.requestAccessToken(requestAccessTokenData)
.then((response) => { console.log("requestAccessToken -> ", JSON.stringify(response)) })
.catch((err) => { this.errorLogger("requestAccessToken -> ", err) });
};
buildNetworkCookie = () => {
let cookieData = {
cookieName: "mycookiename",
cookieValue: "mycookievalue",
domain: "mydomain",
path: "mypath",
isHttpOnly: true,
isSecure: true,
maxAge: 130,
};
HMSNetworkTool.buildNetworkCookie(cookieData)
.then((response) => { this.logger("buildNetworkCookie -> ", response) })
.catch((err) => { this.errorLogger("buildNetworkCookie -> ", err) });
};
buildNetworkUrl = () => {
let urlData = {
isUseHttps: true,
domain: "mydomain",
};
HMSNetworkTool.buildNetworkUrl(urlData)
.then((response) => { this.logger("buildNetworkUrl -> ", response) })
.catch((err) => { this.errorLogger("buildNetworkUrl -> ", err) });
};
enableLogger = () => {
HMSAccount.enableLogger()
};
disableLogger = () => {
HMSAccount.disableLogger()
};
getButtonInfo = () => {
if (buttonView) {
buttonView.getInfo().then((response) => this.logger("getButtonInfo -> ", response));
}
};
render() {
return (
<View style={styles.main}>
<View style={styles.header}>
<Text style={styles.headerTitle}>HMS Account Plugin</Text>
</View>
<ScrollView>
<Text style={styles.subTitle}>HMSAccountAuthService</Text>
<Button func={this.signInWithIdToken} text="Sign In With IdToken" />
<Button func={this.signInWithAuthorizationCode} text="Sign In With AuthorizationCode" />
<Button func={this.signOut} text="Sign Out" />
<Button func={this.silentSignIn} text="Silent Sign In" />
<Button func={this.cancelAuthorization} text="Cancel Authorization" />
<Button func={this.getIndependentSignIn} text=" Get Independent SignIn" />
<Button func={this.getChannel} text="Get Channel" />
<Button func={this.enableLogger} text="Enable logger" />
<Button func={this.disableLogger} text="Disable logger" />
<Image style={{ height: 50, width: 50, position: "absolute", top: 10, right: 20 }}
resizeMode={'contain'} source={{ uri: `data:image/gif;base64,${this.state.icon}` }} />
<Text style={styles.subTitle}>HMSAccountAuthManager</Text>
<Button func={this.getAuthResult} text="Get Auth Result" />
<Button func={this.addAuthScopes} text="Add Auth Scopes" />
<Button func={this.getAuthResultWithScopes} text="Get Auth Result With Scopes" />
<Button func={this.containScopes} text="Contain Scopes" />
<Text style={styles.subTitle}>HMSNetworkTool</Text>
<Button func={this.buildNetworkCookie} text="Build Network Cookie" />
<Button func={this.buildNetworkUrl} text="Build Network Url" />
<Text style={styles.subTitle}>HMSHuaweiIdAuthTool</Text>
<Button func={this.deleteAuthInfo} text="Delete Auth Info" />
<Button func={this.requestUnionId} text="Request Union Id" />
<Button func={this.requestAccessToken} text="Request Access Token" />
<Text style={styles.subTitle}>HMSAuthButton</Text>
<Button func={this.getButtonInfo} text="Button Info" />
<HMSAuthButton
style={styles.viewcontainer}
colorPolicy={HMSAccount.HUAWEI_ID_AUTH_BUTTON_COLOR_POLICY_RED}
enabled={true}
theme={HMSAccount.HUAWEI_ID_AUTH_BUTTON_THEME_FULL_TITLE}
cornerRadius={HMSAccount.HUAWEI_ID_AUTH_BUTTON_CORNER_RADIUS_MEDIUM}
onPress={this.signInWithIdToken}
ref={(el) => (buttonView = el)}
/>
<Text style={styles.logText}>{this.state.log}</Text>
</ScrollView>
</View>
);
}
}
export default App;
================================================
FILE: react-native-hms-account/example/README.md
================================================
# React-Native HMS Account - Demo
---
## Contents
- [Introduction](#1-introduction)
- [Installation](#2-installation)
- [Configuration](#3-configuration)
- [Licensing and Terms](#4-licensing-and-terms)
---
## 1. Introduction
This demo project is an example to demonstrate the features of the **Huawei React-Native Account Kit** Plugin.
---
## 2. Installation
Before you get started, you must register as a HUAWEI developer and complete identity verification on the [HUAWEI Developer](https://developer.huawei.com/consumer/en/?ha_source=hms1) website. For details, please refer to [Register a HUAWEI ID](https://developer.huawei.com/consumer/en/doc/10104?ha_source=hms1).
### Creating a Project in AppGallery Connect
Creating an app in AppGallery Connect is required in order to communicate with the Huawei services. To create an app, perform the following steps:
**Step 1.** Set an unique **Application ID** on the app level build gradle file located on **example/android/app/build.gradle**. You should also change the **package names** for the manifest files in the **/example/android/app/src/** directory to match with the Application ID.
```gradle
<!-- Other configurations ... -->
defaultConfig {
// The Application ID here should match with the Package Name on the AppGalleryConnect
applicationId "<Enter_Your_Package_Here>"
<!-- Other configurations ... -->
}
```
**Step 2.** Sign in to [AppGallery Connect](https://developer.huawei.com/consumer/en/service/josp/agc/index.html?ha_source=hms1) and select **My projects**.
**Step 3.** Select your project from the project list or create a new one by clicking the **Add Project** button.
**Step 4.** Go to **Project Setting** > **General information**, and click **Add app**.
If an app exists in the project and you need to add a new one, expand the app selection area on the top of the page and click **Add app**.
**Step 5.** On the **Add app** page, enter the **Application ID** you've defined before as the **Package Name** here, then fill the necessary fields and click **OK**.
**Step 6:** Copy the **agconnect-service.json** file to the **android/app** directory of your React Native project.
### Configuring the Signing Certificate Fingerprint
A signing certificate fingerprint is used to verify the authenticity of an app when it attempts to access an HMS Core (APK) through the HMS SDK. Before using the HMS Core (APK), you must locally generate a signing certificate fingerprint and configure it in the **AppGallery Connect**. You can refer to 3rd and 4th steps of [Generating a Signing Certificate](https://developer.huawei.com/consumer/en/codelab/HMSPreparation/index.html?ha_source=hms1#2) codelab tutorial for the certificate generation. Perform the following steps after you have generated the certificate.
**Step 1:** Sign in to [AppGallery Connect](https://developer.huawei.com/consumer/en/service/josp/agc/index.html?ha_source=hms1) and select your project from **My Projects**. Then go to **Project Setting** > **General information**. In the **App information** field, click the icon next to SHA-256 certificate fingerprint, and enter the obtained **SHA-256 certificate fingerprint**.
**Step 2:** After completing the configuration, click **OK** to save the changes. (Check mark icon)
**Step 3:** Enter the properties of the key you generated to the **build.gradle** file located on **example/android/app/build.gradle**.
```
signingConfigs {
config {
storeFile file('<keystore_file>')
keyAlias '<key_alias>'
keyPassword '<key_password>'
storePassword '<keystore_password>'
v1SigningEnabled true
v2SigningEnabled true
}
}
```
**Step 4:** Check whether the **agconnect-services.json** file and signature file are placed in **android/app** directory of the React Native project.
### Build & Run the project
- In *example* folder, run command as follows.
```
npm run i
```
- Run the app by executing following command.
```bash
react-native run-android
```
---
## 3. Configuration
No.
---
## 4. Licensing and Terms
Huawei React-Native HMS Account - Demo is licensed under [Apache 2.0 license](../LICENSE)
================================================
FILE: react-native-hms-account/example/android/app/BUCK
================================================
# To learn about Buck see [Docs](https://buckbuild.com/).
# To run your application with Buck:
# - install Buck
# - `npm start` - to start the packager
# - `cd android`
# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
# - `buck install -r android/app` - compile, install and run application
#
load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")
lib_deps = []
create_aar_targets(glob(["libs/*.aar"]))
create_jar_targets(glob(["libs/*.jar"]))
android_library(
name = "all-libs",
exported_deps = lib_deps,
)
android_library(
name = "app-code",
srcs = glob([
"src/main/java/**/*.java",
]),
deps = [
":all-libs",
":build_config",
":res",
],
)
android_build_config(
name = "build_config",
package = "com.huawei.hms.rn.account.demo",
)
android_resource(
name = "res",
package = "com.huawei.hms.rn.account.demo",
res = "src/main/res",
)
android_binary(
name = "app",
keystore = "//android/keystores:debug",
manifest = "src/main/AndroidManifest.xml",
package_type = "debug",
deps = [
":app-code",
],
)
================================================
FILE: react-native-hms-account/example/android/app/build.gradle
================================================
apply plugin: "com.android.application"
apply plugin: 'com.huawei.agconnect'
apply plugin: 'com.facebook.react'
import com.android.build.OutputFile
/**
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
* and bundleReleaseJsAndAssets).
* These basically call `react-native bundle` with the correct arguments during the Android build
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
* bundle directly from the development server. Below you can see all the possible configurations
* and their defaults. If you decide to add a configuration block, make sure to add it before the
* `apply from: "../../node_modules/react-native/react.gradle"` line.
*
* project.ext.react = [
* // the name of the generated asset file containing your JS bundle
* bundleAssetName: "index.android.bundle",
*
* // the entry file for bundle generation. If none specified and
* // "index.android.js" exists, it will be used. Otherwise "index.js" is
* // default. Can be overridden with ENTRY_FILE environment variable.
* entryFile: "index.android.js",
*
* // https://facebook.github.io/react-native/docs/performance#enable-the-ram-format
* bundleCommand: "ram-bundle",
*
* // whether to bundle JS and assets in debug mode
* bundleInDebug: false,
*
* // whether to bundle JS and assets in release mode
* bundleInRelease: true,
*
* // whether to bundle JS and assets in another build variant (if configured).
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
* // The configuration property can be in the following formats
* // 'bundleIn${productFlavor}${buildType}'
* // 'bundleIn${buildType}'
* // bundleInFreeDebug: true,
* // bundleInPaidRelease: true,
* // bundleInBeta: true,
*
* // whether to disable dev mode in custom build variants (by default only disabled in release)
* // for example: to disable dev mode in the staging build type (if configured)
* devDisabledInStaging: true,
* // The configuration property can be in the following formats
* // 'devDisabledIn${productFlavor}${buildType}'
* // 'devDisabledIn${buildType}'
*
* // the root of your project, i.e. where "package.json" lives
* root: "../../",
*
* // where to put the JS bundle asset in debug mode
* jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
*
* // where to put the JS bundle asset in release mode
* jsBundleDirRelease: "$buildDir/intermediates/assets/release",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in debug mode
* resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in release mode
* resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
*
* // by default the gradle tasks are skipped if none of the JS files or assets change; this means
* // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
* // date; if you have any other folders that you want to ignore for performance reasons (gradle
* // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
* // for example, you might want to remove it from here.
* inputExcludes: ["android/**", "ios/**"],
*
* // override which node gets called and with what additional arguments
* nodeExecutableAndArgs: ["node"],
*
* // supply additional arguments to the packager
* extraPackagerArgs: []
* ]
*/
project.ext.react = [
enableHermes: false, // clean and rebuild if changing
]
/**
* Set this to true to create two separate APKs instead of one:
* - An APK that only works on ARM devices
* - An APK that only works on x86 devices
* The advantage is the size of the APK is reduced by about 4MB.
* Upload all the APKs to the Play Store and people will download
* the correct one based on the CPU architecture of their device.
*/
def enableSeparateBuildPerCPUArchitecture = false
/**
* Run Proguard to shrink the Java bytecode in release builds.
*/
def enableProguardInReleaseBuilds = false
/**
* The preferred build flavor of JavaScriptCore.
*
* For example, to use the international variant, you can use:
* `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
*
* The international variant includes ICU i18n library and necessary data
* allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
* give correct results when using with locales other than en-US. Note that
* this variant is about 6MiB larger per architecture than default.
*/
def jscFlavor = 'org.webkit:android-jsc:+'
/**
* Whether to enable the Hermes VM.
*
* This should be set on project.ext.react and mirrored here. If it is not set
* on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
* and the benefits of using Hermes will therefore be sharply reduced.
*/
def enableHermes = project.ext.react.get("enableHermes", false);
android {
compileSdkVersion rootProject.ext.compileSdkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "<package_name>"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
signingConfigs {
config {
storeFile file('<keystore_file>')
keyAlias '<key_alias>'
keyPassword '<key_password>'
storePassword '<keystore_password>'
v1SigningEnabled true
v2SigningEnabled true
}
}
buildTypes {
debug {
signingConfig signingConfigs.config
}
release {
signingConfig signingConfigs.config
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
packagingOptions {
pickFirst "lib/armeabi-v7a/libc++_shared.so"
pickFirst "lib/arm64-v8a/libc++_shared.so"
pickFirst "lib/x86/libc++_shared.so"
pickFirst "lib/x86_64/libc++_shared.so"
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// https://developer.android.com/studio/build/configure-apk-splits.html
def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
//noinspection GradleDynamicVersion
implementation "com.facebook.react:react-native:" // From node_modules
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
//noinspection GradleDependency
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
exclude group:'com.facebook.fbjni'
}
//noinspection GradleDependency
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
}
//noinspection GradleDependency
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
}
if (enableHermes) {
def hermesPath = "../../node_modules/hermes-engine/android/";
debugImplementation files(hermesPath + "hermes-debug.aar")
releaseImplementation files(hermesPath + "hermes-release.aar")
} else {
implementation jscFlavor
}
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.implementation
into 'libs'
}
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
================================================
FILE: react-native-hms-account/example/android/app/proguard-rules.pro
================================================
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keep class com.hianalytics.android.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
-repackageclasses
================================================
FILE: react-native-hms-account/example/android/app/src/main/AndroidManifest.xml
================================================
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.huawei.hms.rn.account.demo">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name="com.huawei.hms.rn.account.demo.MainApplication"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="RNHmsAccountDemo"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true">
<activity
android:name="com.huawei.hms.rn.account.demo.MainActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:label="RNHmsAccountDemo"
android:launchMode="singleTask"
android:exported="true"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
</manifest>
================================================
FILE: react-native-hms-account/example/android/app/src/main/java/com/huawei/hms/rn/account/demo/MainActivity.java
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package com.huawei.hms.rn.account.demo;
import com.facebook.react.ReactActivity;
public class MainActivity extends ReactActivity {
@Override
protected String getMainComponentName() {
return "huawei.hms.rn.account.demo";
}
}
================================================
FILE: react-native-hms-account/example/android/app/src/main/java/com/huawei/hms/rn/account/demo/MainApplication.java
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package com.huawei.hms.rn.account.demo;
import android.app.Application;
import com.facebook.react.PackageList;
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.soloader.SoLoader;
import java.util.List;
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost =
new ReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
List<ReactPackage> packages = new PackageList(this).getPackages();
return packages;
}
@Override
protected String getJSMainModuleName() {
return "index";
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
}
}
================================================
FILE: react-native-hms-account/example/android/app/src/main/res/values/styles.xml
================================================
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="android:textColor">#000000</item>
</style>
</resources>
================================================
FILE: react-native-hms-account/example/android/build.gradle
================================================
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext {
buildToolsVersion = "31.0.0"
minSdkVersion = 21
compileSdkVersion = 33
targetSdkVersion = 33
}
repositories {
google()
mavenCentral()
jcenter()
maven { url 'https://developer.huawei.com/repo/' }
}
dependencies {
classpath('com.android.tools.build:gradle:3.6.3')
classpath 'com.huawei.agconnect:agcp:1.9.1.301'
classpath('com.facebook.react:react-native-gradle-plugin')
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenCentral()
google()
jcenter()
maven { url 'https://www.jitpack.io' }
maven { url 'https://developer.huawei.com/repo/' }
}
}
================================================
FILE: react-native-hms-account/example/android/gradle/wrapper/gradle-wrapper.properties
================================================
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
================================================
FILE: react-native-hms-account/example/android/gradle.properties
================================================
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.99.0
org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
================================================
FILE: react-native-hms-account/example/android/gradlew
================================================
#!/usr/bin/env sh
#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=`save "$@"`
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
exec "$JAVACMD" "$@"
================================================
FILE: react-native-hms-account/example/android/gradlew.bat
================================================
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
================================================
FILE: react-native-hms-account/example/android/settings.gradle
================================================
rootProject.name = 'huawei.hms.rn.account.demo'
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app'
includeBuild('../node_modules/@react-native/gradle-plugin')
================================================
FILE: react-native-hms-account/example/app.json
================================================
{
"name": "huawei.hms.rn.account.demo",
"displayName": "RN Account Demo"
}
================================================
FILE: react-native-hms-account/example/babel.config.js
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
module.exports = {
presets: ["module:metro-react-native-babel-preset"],
};
================================================
FILE: react-native-hms-account/example/index.js
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import { AppRegistry } from "react-native";
import App from "./App";
import { name as appName } from "./app.json";
AppRegistry.registerComponent(appName, () => App);
================================================
FILE: react-native-hms-account/example/metro.config.js
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
module.exports = {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
}),
},
};
================================================
FILE: react-native-hms-account/example/package.json
================================================
{
"name": "@hmscore/react-native-hms-account-demo",
"version": "6.12.0-301",
"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
"start": "react-native start",
"lint": "eslint ."
},
"dependencies": {
"react": "18.2.0",
"react-native": "0.72.0",
"@hmscore/react-native-hms-account": "6.12.0-301"
},
"devDependencies": {
"@babel/core": "^7.21.8",
"@babel/runtime": "^7.23.1",
"@react-native-community/eslint-config": "^1.1.0",
"@babel/traverse": "7.19.0",
"babel-jest": "^29.5.0",
"eslint": "^8.31.0",
"jest": "^29.7.0",
"metro-react-native-babel-preset": "^0.66.2"
},
"jest": {
"preset": "react-native"
}
}
================================================
FILE: react-native-hms-account/package.json
================================================
{
"name": "@hmscore/react-native-hms-account",
"title": "React Native Hms Account",
"description": "React Native Hms Account Kit",
"version": "6.12.0-301",
"main": "src/index.js",
"repository": {
"type": "git",
"url": "https://github.com/HMS-Core/hms-react-native-plugin.git",
"directory": "react-native-hms-account"
},
"homepage": "https://developer.huawei.com/consumer/en/doc/overview/HMS-Core-Plugin",
"license": "Apache-2.0",
"licenseFilename": "LICENCE",
"readmeFilename": "README.md",
"keywords": [
"react-native",
"hms-account",
"huawei-account",
"account-kit",
"react-native-hms-account"
],
"files": [
"android",
"example",
"src/index.js",
"package.json",
"README.md",
"LICENSE",
"app_define.json"
],
"peerDependencies": {
"react": ">=16.6.0",
"react-native": ">=0.60.0 <1.0.x"
},
"devDependencies": {
"react": "18.2.0",
"react-native": "0.72.0"
},
"types": "src/index.d.ts"
}
================================================
FILE: react-native-hms-account/src/index.d.ts
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
declare module "@hmscore/react-native-hms-account" {
export const HMSAccount = {
signIn(request: SignInData): Promise<AuthHuaweiId>;,
signOut(): Promise<boolean>;,
cancelAuthorization(): Promise<boolean>;,
silentSignIn(request: SilentSignInData): Promise<AuthHuaweiId>;,
enableLogger(): Promise<void>;,
disableLogger(): Promise<void>;,
}
export const HMSHuaweiIdAuthManager = {
getAuthResult(): Promise<AuthHuaweiId>;,
getAuthResultWithScopes(request: AuthScopeData): Promise<AuthHuaweiId>;,
addAuthScopes(request: AuthScopeData): Promise<boolean>;,
containScopes(request: ContainScopesData): Promise<boolean>;,
}
export const HMSAccountAuthService = {
signIn(request: SignInData): Promise<AuthAccount>;,
signOut(): Promise<boolean>;,
silentSignIn(request: SilentSignInData): Promise<AuthAccount>;,
cancelAuthorization(): Promise<boolean>;,
getChannel(): Promise<AccountIcon>;,
getIndependentSignInIntent(accessToken: string): Promise<AuthAccount>;,
}
export const HMSAccountAuthManager = {
getAuthResult(): Promise<AuthAccount>;,
getAuthResultWithScopes(request: AuthScopeData): Promise<AuthAccount>;,
addAuthScopes(request: AuthScopeData): Promise<boolean>;,
containScopes(request: ContainScopesData): Promise<boolean>;,
}
export const HMSHuaweiIdAuthTool = {
deleteAuthInfo(request: AccessTokenData): Promise<boolean>;,
requestUnionId(request: AccountData): Promise<string>;,
requestAccessToken(request: RequestAccessTokenData): Promise<string>;,
}
export const HMSNetworkTool = {
buildNetworkCookie(request: CookieData): Promise<string>;,
buildNetworkUrl(request: UrlData): Promise<string>;,
}
export interface SignInData {
huaweiIdAuthParams: HMSAuthParamConstants[];
authRequestOption?: HMSAuthRequestOptionConstants[];
authScopeList?: HMSAuthScopeListConstants[];
}
export interface SilentSignInData {
huaweiIdAuthParams: HMSAuthParamConstants[];
}
export interface AuthScopeData {
authScopeList: HMSAuthParamConstants[];
}
export interface ContainScopesData {
authAccount: AuthBuilder;
authScopeList: HMSAuthScopeListConstants[];
}
export interface AuthBuilder {
openId?: string;
uid?: string;
displayName?: string;
photoUrl?: string;
accessToken?: string;
serviceCountryCode?: string;
status?: number;
gender?: number;
authScopeList: HMSAuthScopeListConstants[];
serverAuthCode?: string;
unionId?: string;
countryCode?: string;
}
export interface AuthHuaweiId {
/** @deprecated accessToken*/
accessToken: string;
account: HuaweiAccount;
displayName: string;
email: string;
familyName: string;
givenName: string;
authorizedScopes: HMSAuthScopeListConstants[];
idToken: string;
avatarUriString: string;
authorizationCode: string;
unionId: string;
openId: string;
carrierId: number;
}
export interface AuthAccount {
/** @deprecated accessToken*/
accessToken: string;
account: HuaweiAccount;
displayName: string;
serviceCountryCode: string;
gender: number;
email: string;
familyName: string;
givenName: string;
authorizedScopes: HMSAuthScopeListConstants[];
idToken: string;
avatarUriString: string;
authorizationCode: string;
unionId: string;
openId: string;
accountFlag: number;
carrierId: number;
}
export interface HuaweiAccount {
name: string;
type: string;
}
export interface AccountIcon {
icon: string;
description: string;
}
export interface AccessTokenData {
accessToken: string;
}
export interface AccountData {
huaweiAccountName: string;
}
export interface RequestAccessTokenData {
authScopeList: HMSAuthScopeListConstants[];
huaweiAccount: HuaweiAccount;
}
export interface CookieData {
cookieName: string;
cookieValue?: string;
domain?: string;
path?: string;
isHttpOnly?: boolean;
isSecure?: boolean;
maxAge?: number;
}
export interface UrlData {
isUseHttps?: boolean;
domain: string;
}
export enum HMSAuthParamConstants {
DEFAULT_AUTH_REQUEST_PARAM = "DEFAULT_AUTH_REQUEST_PARAM",
DEFAULT_AUTH_REQUEST_PARAM_GAME = "DEFAULT_AUTH_REQUEST_PARAM_GAME",
}
export enum HMSAuthRequestOptionConstants {
ID_TOKEN = "idToken",
ID = "id",
ACCESS_TOKEN = "accessToken",
AUTHORIZATION_CODE = "authorizationCode",
EMAIL = "email",
PROFILE = "profile",
MOBILENUMBER = "mobileNumber",
UID = "uid",
CARRIERID = "carrierId",
}
export enum HMSAuthScopeListConstants {
OPENID = "openid",
EMAIL = "email",
PROFILE = "profile",
GAME = "https://www.huawei.com/auth/games",
}
}
================================================
FILE: react-native-hms-account/src/index.js
================================================
/*
Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from "react";
import {
findNodeHandle,
NativeModules,
requireNativeComponent,
TouchableOpacity,
} from "react-native";
const { HMSAccount } = NativeModules;
export const HMSAuthParamConstants = {
DEFAULT_AUTH_REQUEST_PARAM: "DEFAULT_AUTH_REQUEST_PARAM",
DEFAULT_AUTH_REQUEST_PARAM_GAME: "DEFAULT_AUTH_REQUEST_PARAM_GAME",
}
export const HMSAuthRequestOptionConstants = {
ID_TOKEN: "idToken",
ID: "id",
ACCESS_TOKEN: "accessToken",
AUTHORIZATION_CODE: "authorizationCode",
EMAIL: "email",
PROFILE: "profile",
MOBILENUMBER: "mobileNumber",
UID: "uid",
CARRIERID: "carrierId",
}
export const HMSAuthScopeListConstants = {
OPENID: "openid",
EMAIL: "email",
PROFILE: "profile",
GAME: "https://www.huawei.com/auth/games",
}
export const {
HMSHuaweiIdAuthManager,
HMSHuaweiIdAuthTool,
HMSNetworkTool,
HMSReadSMSManager,
HMSAccountAuthService,
HMSAccountAuthManager,
} = NativeModules;
const AuthButton = requireNativeComponent("HMSHuaweiIdAuthButton");
export class HMSAuthButton extends React.Component {
getInfo = () => HMSAccount.getButtonInfo(findNodeHandle(this.buttonView));
render() {
const { onPress, ...restProps } = this.props;
restProps.enabled =
typeof restProps.enabled == "undefined" ? true : restProps.enabled;
return (
<TouchableOpacity onPress={onPress} disabled={!restProps.enabled}>
<AuthButton {...restProps} ref={(el) => (this.buttonView = el)} />
</TouchableOpacity>
);
}
}
export default HMSAccount;
================================================
FILE: react-native-hms-ads/LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
"Source" form shall
gitextract_n1z5l90w/
├── .github/
│ └── ISSUE_TEMPLATE/
│ └── issue-with-the-sample-code.md
├── LICENSE
├── README.md
├── react-native-hms-account/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── account/
│ │ ├── HMSAccountPackage.java
│ │ ├── constants/
│ │ │ └── ClassConstants.java
│ │ ├── logger/
│ │ │ └── HMSLogger.java
│ │ ├── modules/
│ │ │ ├── HMSAccount.java
│ │ │ ├── HMSAccountAuthManager.java
│ │ │ ├── HMSAccountAuthService.java
│ │ │ ├── HMSHuaweiIdAuthManager.java
│ │ │ ├── HMSHuaweiIdAuthTool.java
│ │ │ ├── HMSNetworkTool.java
│ │ │ └── HMSReadSMSManager.java
│ │ ├── utils/
│ │ │ └── Utils.java
│ │ └── views/
│ │ └── HMSHuaweiIdAuthButton.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── BUCK
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── account/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-ads/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ └── rn/
│ │ │ └── ads/
│ │ │ ├── HMSAdsBannerView.java
│ │ │ ├── HMSAdsInstallReferrerModule.java
│ │ │ ├── HMSAdsInstreamView.java
│ │ │ ├── HMSAdsInterstitialAdModule.java
│ │ │ ├── HMSAdsModule.java
│ │ │ ├── HMSAdsNativeView.java
│ │ │ ├── HMSAdsOaidModule.java
│ │ │ ├── HMSAdsPackage.java
│ │ │ ├── HMSAdsRewardAdModule.java
│ │ │ ├── HMSAdsSplashActivity.java
│ │ │ ├── HMSAdsSplashAdModule.java
│ │ │ ├── HMSAdsVastModule.java
│ │ │ ├── HMSAdsVastView.java
│ │ │ ├── custome/
│ │ │ │ └── CustomVideoController.java
│ │ │ ├── logger/
│ │ │ │ └── HMSLogger.java
│ │ │ └── utils/
│ │ │ ├── CommonUtils.java
│ │ │ ├── Constants.java
│ │ │ ├── ReactUtils.java
│ │ │ └── ResourceUtils.java
│ │ └── res/
│ │ ├── drawable/
│ │ │ ├── native_button_rounded_corners_shape.xml
│ │ │ └── native_flag_rounded_corners_shape.xml
│ │ ├── layout/
│ │ │ ├── activity_splash.xml
│ │ │ ├── activity_video_player.xml
│ │ │ ├── button_layout.xml
│ │ │ ├── media_view.xml
│ │ │ ├── native_small_template.xml
│ │ │ ├── native_video_template.xml
│ │ │ └── vast_template.xml
│ │ └── values/
│ │ └── strings.xml
│ ├── example/
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── ads/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── jest.config.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── Ads.js
│ ├── Banner.js
│ ├── InstallReferrer.js
│ ├── Instream.js
│ ├── Interstitial.js
│ ├── Native.js
│ ├── Oaid.js
│ ├── Reward.js
│ ├── Splash.js
│ ├── Vast.js
│ ├── VastView.js
│ ├── index.d.ts
│ ├── index.js
│ └── utils.js
├── react-native-hms-adsprime/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ └── rn/
│ │ │ └── ads/
│ │ │ ├── HMSAdsPrimeBannerView.java
│ │ │ ├── HMSAdsPrimeInstallReferrerModule.java
│ │ │ ├── HMSAdsPrimeInstreamView.java
│ │ │ ├── HMSAdsPrimeInterstitialAdModule.java
│ │ │ ├── HMSAdsPrimeModule.java
│ │ │ ├── HMSAdsPrimeNativeView.java
│ │ │ ├── HMSAdsPrimeOaidModule.java
│ │ │ ├── HMSAdsPrimePackage.java
│ │ │ ├── HMSAdsPrimeRewardAdModule.java
│ │ │ ├── HMSAdsPrimeSplashActivity.java
│ │ │ ├── HMSAdsPrimeSplashAdModule.java
│ │ │ ├── HMSAdsPrimeVastModule.java
│ │ │ ├── HMSAdsPrimeVastView.java
│ │ │ ├── custome/
│ │ │ │ └── CustomVideoController.java
│ │ │ ├── logger/
│ │ │ │ └── HMSLogger.java
│ │ │ └── utils/
│ │ │ ├── CommonUtils.java
│ │ │ ├── Constants.java
│ │ │ ├── ReactUtils.java
│ │ │ └── ResourceUtils.java
│ │ └── res/
│ │ ├── drawable/
│ │ │ ├── native_button_rounded_corners_shape.xml
│ │ │ └── native_flag_rounded_corners_shape.xml
│ │ ├── layout/
│ │ │ ├── activity_splash.xml
│ │ │ ├── activity_video_player.xml
│ │ │ ├── button_layout.xml
│ │ │ ├── media_view.xml
│ │ │ ├── native_small_template.xml
│ │ │ ├── native_video_template.xml
│ │ │ └── vast_template.xml
│ │ └── values/
│ │ └── strings.xml
│ ├── example/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── ads/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── jest.config.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── AdsPrime.js
│ ├── Banner.js
│ ├── InstallReferrer.js
│ ├── Instream.js
│ ├── Interstitial.js
│ ├── Native.js
│ ├── Oaid.js
│ ├── Reward.js
│ ├── Splash.js
│ ├── Vast.js
│ ├── VastView.js
│ ├── index.d.ts
│ ├── index.js
│ └── utils.js
├── react-native-hms-analytics/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── analytics/
│ │ ├── HMSAnalyticsModule.java
│ │ ├── HMSAnalyticsPackage.java
│ │ ├── HMSAnalyticsProvider.java
│ │ ├── HMSAnalyticsWrapper.java
│ │ └── logger/
│ │ └── HMSLogger.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── BUCK
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── analytics/
│ │ │ │ │ └── example/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── babel.config.js
│ │ ├── constants/
│ │ │ └── Data.js
│ │ ├── customViews/
│ │ │ ├── ComboBox.js
│ │ │ └── RenderComponent.js
│ │ ├── index.js
│ │ ├── ios/
│ │ │ ├── Example.swift
│ │ │ ├── Podfile
│ │ │ ├── example/
│ │ │ │ ├── AppDelegate.h
│ │ │ │ ├── AppDelegate.m
│ │ │ │ ├── Images.xcassets/
│ │ │ │ │ ├── AppIcon.appiconset/
│ │ │ │ │ │ └── Contents.json
│ │ │ │ │ └── Contents.json
│ │ │ │ ├── Info.plist
│ │ │ │ ├── LaunchScreen.storyboard
│ │ │ │ └── main.m
│ │ │ ├── example-Bridging-Header.h
│ │ │ ├── example-tvOS/
│ │ │ │ └── Info.plist
│ │ │ ├── example-tvOSTests/
│ │ │ │ └── Info.plist
│ │ │ ├── example.xcodeproj/
│ │ │ │ ├── project.pbxproj
│ │ │ │ └── xcshareddata/
│ │ │ │ └── xcschemes/
│ │ │ │ ├── example-tvOS.xcscheme
│ │ │ │ └── example.xcscheme
│ │ │ ├── example.xcworkspace/
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ └── xcshareddata/
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── exampleTests/
│ │ │ ├── Info.plist
│ │ │ └── exampleTests.m
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── ios/
│ │ ├── AnalyticsViewModel.swift
│ │ ├── HmsAnalytics-Bridging-Header.h
│ │ ├── HmsAnalytics.m
│ │ ├── HmsAnalytics.swift
│ │ ├── HmsAnalytics.xcodeproj/
│ │ │ └── project.pbxproj
│ │ ├── HmsAnalytics.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── IDEWorkspaceChecks.plist
│ │ ├── Logger.swift
│ │ └── Promise.swift
│ ├── package.json
│ ├── react-native-hms-analytics.podspec
│ └── src/
│ ├── constants/
│ │ ├── Constants.js
│ │ ├── HAEventType.js
│ │ ├── HAParamType.js
│ │ ├── HAUserProfileType.js
│ │ └── ReportPolicyType.js
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-ar/
│ ├── LICENCE
│ ├── README.md
│ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.txt
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ ├── plugin/
│ │ │ │ └── ar/
│ │ │ │ └── core/
│ │ │ │ ├── ARSetupFacade.java
│ │ │ │ ├── config/
│ │ │ │ │ ├── ARPluginConfigAugmentedImage.java
│ │ │ │ │ ├── ARPluginConfigBase.java
│ │ │ │ │ ├── ARPluginConfigBasePointLine.java
│ │ │ │ │ ├── ARPluginConfigBaseWorld.java
│ │ │ │ │ ├── ARPluginConfigBody.java
│ │ │ │ │ ├── ARPluginConfigFace.java
│ │ │ │ │ ├── ARPluginConfigHand.java
│ │ │ │ │ ├── ARPluginConfigSceneMesh.java
│ │ │ │ │ ├── ARPluginConfigWorld.java
│ │ │ │ │ ├── ARPluginConfigWorldBody.java
│ │ │ │ │ └── ColorRGBA.java
│ │ │ │ ├── helper/
│ │ │ │ │ ├── ArDemoRuntimeException.java
│ │ │ │ │ ├── AugmentedImage/
│ │ │ │ │ │ ├── CornerType.java
│ │ │ │ │ │ ├── ImageKeyBase.java
│ │ │ │ │ │ ├── ImageKeyLineDisplay.java
│ │ │ │ │ │ ├── ImageKeyPointDisplay.java
│ │ │ │ │ │ └── ImageShaderUtil.java
│ │ │ │ │ ├── CameraConfigListener.java
│ │ │ │ │ ├── CameraIntrinsicsListener.java
│ │ │ │ │ ├── DisplayRotationManager.java
│ │ │ │ │ ├── GestureEvent.java
│ │ │ │ │ ├── LabelDisplay.java
│ │ │ │ │ ├── MessageTextListener.java
│ │ │ │ │ ├── ObjectDisplay.java
│ │ │ │ │ ├── PluginCallbackHelper.java
│ │ │ │ │ ├── PointCloudRenderer.java
│ │ │ │ │ ├── SceneMesh/
│ │ │ │ │ │ ├── SceneMeshDisplay.java
│ │ │ │ │ │ └── SceneMeshDrawFrameListener.java
│ │ │ │ │ ├── TextureDisplay.java
│ │ │ │ │ ├── VirtualObject.java
│ │ │ │ │ ├── body/
│ │ │ │ │ │ ├── BodySkeletonDisplay.java
│ │ │ │ │ │ └── BodySkeletonLineDisplay.java
│ │ │ │ │ ├── face/
│ │ │ │ │ │ ├── FaceGeometryDisplay.java
│ │ │ │ │ │ └── FaceHealtyResult.java
│ │ │ │ │ └── hand/
│ │ │ │ │ ├── HandBoxDisplay.java
│ │ │ │ │ ├── HandSkeletonDisplay.java
│ │ │ │ │ └── HandSkeletonLineDisplay.java
│ │ │ │ ├── model/
│ │ │ │ │ └── AugmentedImageDBModel.java
│ │ │ │ ├── renderer/
│ │ │ │ │ ├── ARAugmentedImageRender.java
│ │ │ │ │ ├── ARBaseDrawObject.java
│ │ │ │ │ ├── ARBaseRenderer.java
│ │ │ │ │ ├── ARBodyRenderer.java
│ │ │ │ │ ├── ARCloud3DObjectRenderer.java
│ │ │ │ │ ├── ARFaceRenderer.java
│ │ │ │ │ ├── ARHandRenderer.java
│ │ │ │ │ ├── ARSceneMeshRenderer.java
│ │ │ │ │ ├── ARWorldBodyRenderer.java
│ │ │ │ │ └── ARWorldRenderer.java
│ │ │ │ ├── serializer/
│ │ │ │ │ ├── CommonSerializer.java
│ │ │ │ │ ├── PluginARAugmentedImageSerializer.java
│ │ │ │ │ ├── PluginARBodySerializer.java
│ │ │ │ │ ├── PluginARFaceSerializer.java
│ │ │ │ │ ├── PluginARHandSerializer.java
│ │ │ │ │ ├── PluginARPlaneSerializer.java
│ │ │ │ │ ├── PluginARTargetSerializer.java
│ │ │ │ │ └── PluginARTrackableSerializer.java
│ │ │ │ └── util/
│ │ │ │ ├── AREngineAvailability.java
│ │ │ │ ├── ApplicationUtil.java
│ │ │ │ ├── BodyShaderUtil.java
│ │ │ │ ├── ErrorUtil.java
│ │ │ │ ├── HandShaderUtil.java
│ │ │ │ ├── MatrixUtil.java
│ │ │ │ ├── ModeInformation.java
│ │ │ │ ├── OpenGLUtil.java
│ │ │ │ ├── SceneMeshShaderUtil.java
│ │ │ │ └── WorldShaderUtil.java
│ │ │ └── rn/
│ │ │ └── ar/
│ │ │ ├── ARSurfaceView.java
│ │ │ ├── HmsARModule.java
│ │ │ ├── HmsARPackage.java
│ │ │ ├── logger/
│ │ │ │ └── HMSLogger.java
│ │ │ └── utils/
│ │ │ ├── Converter.java
│ │ │ └── EnumGenerator.java
│ │ └── res/
│ │ └── drawable/
│ │ ├── colors.xml
│ │ └── scanningframe.xml
│ ├── example/
│ │ ├── App.js
│ │ ├── LICENCE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── BUCK
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── assets/
│ │ │ │ │ ├── AR_logo.obj
│ │ │ │ │ ├── blub.obj
│ │ │ │ │ └── bob.obj
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── ar/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-availability/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── availability/
│ │ ├── HMSAvailabilityModule.java
│ │ ├── HMSAvailabilityPackage.java
│ │ └── Util.java
│ ├── example/
│ │ ├── LICENSE
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── availability/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── jest.config.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── App.js
│ │ └── styles.js
│ ├── package.json
│ └── src/
│ ├── Availability.js
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-awareness/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── awareness/
│ │ ├── HMSAwarenessPackage.java
│ │ ├── constants/
│ │ │ ├── Constants.java
│ │ │ └── LocaleConstants.java
│ │ ├── logger/
│ │ │ └── HMSLogger.java
│ │ ├── modules/
│ │ │ ├── HMSAwarenessBarrierModule.java
│ │ │ ├── HMSAwarenessCaptureModule.java
│ │ │ └── HMSLoggerModule.java
│ │ ├── utils/
│ │ │ ├── BackgroundBarrierReceiver.java
│ │ │ ├── BarrierReceiver.java
│ │ │ ├── DataUtils.java
│ │ │ └── TaskService.java
│ │ └── wrapper/
│ │ ├── AwarenessBarrierWrapper.java
│ │ ├── AwarenessCaptureWrapper.java
│ │ └── AwarenessCombinationBarrierWrapper.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── awareness/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── babel.config.js
│ │ ├── components/
│ │ │ ├── Barrier.js
│ │ │ ├── Capture.js
│ │ │ └── UpdateBarrier.js
│ │ ├── constants/
│ │ │ ├── Colors.js
│ │ │ └── Data.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── index.js
│ └── package.json
├── react-native-hms-contactshield/
│ ├── LICENCE
│ ├── README.md
│ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.txt
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── contactshield/
│ │ ├── HMSContactShieldModule.java
│ │ ├── HMSContactShieldPackage.java
│ │ ├── constants/
│ │ │ ├── IntentAction.java
│ │ │ └── RequestCode.java
│ │ ├── handlers/
│ │ │ ├── ContactShieldBroadcastReceiver.java
│ │ │ └── ContactShieldCallbackHandler.java
│ │ ├── logger/
│ │ │ └── HMSLogger.java
│ │ └── utils/
│ │ ├── ObjectProvider.java
│ │ └── Utils.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── contactshield/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-dtm/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── dtm/
│ │ ├── HMSDtmModule.java
│ │ ├── HMSDtmPackage.java
│ │ ├── HMSDtmProvider.java
│ │ ├── HMSDtmWrapper.java
│ │ ├── helpers/
│ │ │ ├── ContextHolder.java
│ │ │ └── MapHelper.java
│ │ ├── interfaces/
│ │ │ ├── CustomTag.java
│ │ │ └── CustomVariable.java
│ │ └── logger/
│ │ └── HMSLogger.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── BUCK
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── dtm/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-health/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── health/
│ │ ├── HmsHealthPackage.java
│ │ ├── foundation/
│ │ │ ├── constant/
│ │ │ │ └── Constants.java
│ │ │ ├── helper/
│ │ │ │ ├── ResultHelper.java
│ │ │ │ └── VoidResultHelper.java
│ │ │ ├── listener/
│ │ │ │ ├── ResultListener.java
│ │ │ │ └── VoidResultListener.java
│ │ │ ├── util/
│ │ │ │ ├── ExceptionHandler.java
│ │ │ │ ├── HMSLogger.java
│ │ │ │ ├── MapUtils.java
│ │ │ │ └── Utils.java
│ │ │ └── view/
│ │ │ ├── BaseController.java
│ │ │ └── BaseProtocol.java
│ │ └── kits/
│ │ ├── account/
│ │ │ ├── HmsHealthAccount.java
│ │ │ ├── listener/
│ │ │ │ └── AccountResultListener.java
│ │ │ ├── util/
│ │ │ │ ├── AccountConstants.java
│ │ │ │ └── AccountUtils.java
│ │ │ └── viewmodel/
│ │ │ ├── AccountService.java
│ │ │ └── AccountViewModel.java
│ │ ├── activityrecords/
│ │ │ ├── HmsActivityRecordsController.java
│ │ │ ├── receiver/
│ │ │ │ └── ActivityRecordsMonitorReceiver.java
│ │ │ ├── util/
│ │ │ │ ├── ActivityRecordBackgroundService.java
│ │ │ │ ├── ActivityRecordsConstants.java
│ │ │ │ └── ActivityRecordsUtils.java
│ │ │ └── viewmodel/
│ │ │ ├── ActivityRecordsService.java
│ │ │ └── ActivityRecordsViewModel.java
│ │ ├── autorecorder/
│ │ │ ├── HmsAutoRecorderController.java
│ │ │ ├── listener/
│ │ │ │ ├── RecordListResultListener.java
│ │ │ │ └── TaskVoidResultListener.java
│ │ │ ├── utils/
│ │ │ │ ├── AutoRecorderBackgroundService.java
│ │ │ │ └── AutoRecorderConstants.java
│ │ │ └── viewmodel/
│ │ │ ├── AutoRecorderService.java
│ │ │ └── AutoRecorderViewModel.java
│ │ ├── consents/
│ │ │ ├── HmsConsentsController.java
│ │ │ └── viewmodel/
│ │ │ ├── ConsentsService.java
│ │ │ └── ConsentsViewModel.java
│ │ ├── datacontroller/
│ │ │ ├── HmsDataController.java
│ │ │ ├── model/
│ │ │ │ └── OptionModel.java
│ │ │ ├── util/
│ │ │ │ ├── DataControllerConstants.java
│ │ │ │ └── DataControllerUtils.java
│ │ │ └── viewmodel/
│ │ │ ├── DataService.java
│ │ │ └── DataViewModel.java
│ │ ├── healthrecordcontroller/
│ │ │ ├── HmsHealthRecordController.java
│ │ │ ├── util/
│ │ │ │ └── HealthRecordControllerUtils.java
│ │ │ └── viewmodel/
│ │ │ ├── HealthRecordService.java
│ │ │ └── HealthRecordViewModel.java
│ │ └── settings/
│ │ ├── HmsSettingController.java
│ │ └── viewmodel/
│ │ ├── SettingsService.java
│ │ └── SettingsViewModel.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── BUCK
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── health/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── ActivityRecordsController.js
│ │ ├── AutoRecorderController.js
│ │ ├── ConsentsController.js
│ │ ├── DataController.js
│ │ ├── HealthRecordController.js
│ │ ├── MainPage.js
│ │ ├── SettingController.js
│ │ ├── Utils.js
│ │ └── styles.js
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-iap/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── README.md
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── iap/
│ │ ├── HMSIapModule.java
│ │ ├── HMSIapPackage.java
│ │ └── client/
│ │ ├── Helper.java
│ │ ├── logger/
│ │ │ └── HMSLogger.java
│ │ ├── utils/
│ │ │ ├── Constants.java
│ │ │ ├── DataUtils.java
│ │ │ ├── ExceptionHandler.java
│ │ │ └── MapUtil.java
│ │ └── viewmodel/
│ │ ├── Service.java
│ │ └── ViewModel.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── iap/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── HmsIapModule.js
│ │ ├── foundation/
│ │ │ ├── ProductTypes.js
│ │ │ └── PurchaseTypes.js
│ │ ├── ui/
│ │ │ ├── AvailableProductsListView.js
│ │ │ ├── PartialView.js
│ │ │ ├── PurchaseRecordListView.js
│ │ │ ├── PurchasedProductListView.js
│ │ │ └── TitleView.js
│ │ └── utils/
│ │ ├── Globals.js
│ │ └── Utils.js
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-location/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── location/
│ │ ├── RNHMSLocationPackage.java
│ │ ├── RNLocationBroadcastReceiver.java
│ │ ├── RNTaskService.java
│ │ ├── backend/
│ │ │ ├── helpers/
│ │ │ │ ├── Constants.java
│ │ │ │ ├── Exceptions.java
│ │ │ │ ├── HMSBroadcastReceiver.java
│ │ │ │ ├── LocationCallbackWithHandler.java
│ │ │ │ └── Pair.java
│ │ │ ├── interfaces/
│ │ │ │ ├── EventSender.java
│ │ │ │ ├── HMSCallback.java
│ │ │ │ ├── HMSProvider.java
│ │ │ │ ├── JSONMapper.java
│ │ │ │ ├── JSONTriMapper.java
│ │ │ │ ├── Mapper.java
│ │ │ │ ├── PermissionHandler.java
│ │ │ │ ├── ResultHandler.java
│ │ │ │ └── TriMapper.java
│ │ │ ├── logger/
│ │ │ │ ├── HMSLogger.java
│ │ │ │ └── HMSMethod.java
│ │ │ ├── providers/
│ │ │ │ ├── ActivityIdentificationProvider.java
│ │ │ │ ├── FusedLocationProvider.java
│ │ │ │ ├── GeocoderProvider.java
│ │ │ │ └── GeofenceProvider.java
│ │ │ └── utils/
│ │ │ ├── ActivityUtils.java
│ │ │ ├── GeocoderUtils.java
│ │ │ ├── GeofenceUtils.java
│ │ │ ├── LocationUtils.java
│ │ │ ├── PermissionUtils.java
│ │ │ └── PlatformUtils.java
│ │ ├── helpers/
│ │ │ ├── RNCallback.java
│ │ │ └── ReactUtils.java
│ │ └── modules/
│ │ ├── RNActivityIdentificationModule.java
│ │ ├── RNFusedLocationModule.java
│ │ ├── RNGeocoderModule.java
│ │ ├── RNGeofenceModule.java
│ │ └── RNLocationKitModule.java
│ ├── example/
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── location/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ ├── index.js
│ └── modules/
│ ├── ActivityIdentification.js
│ ├── FusedLocation.js
│ ├── Geocoder.js
│ ├── Geofence.js
│ └── LocationKit.js
├── react-native-hms-map/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── map/
│ │ ├── HMSCircleView.java
│ │ ├── HMSGroundOverlayView.java
│ │ ├── HMSHeatMapView.java
│ │ ├── HMSInfoWindowView.java
│ │ ├── HMSMapPackage.java
│ │ ├── HMSMapView.java
│ │ ├── HMSMarkerView.java
│ │ ├── HMSPolygonView.java
│ │ ├── HMSPolylineView.java
│ │ ├── HMSTileOverlayView.java
│ │ ├── logger/
│ │ │ └── HMSLogger.java
│ │ └── utils/
│ │ ├── ReactUtils.java
│ │ ├── UriIconController.java
│ │ └── UriIconView.java
│ ├── example/
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── BUCK
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── rnhmsmapdemo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── earthquakes_with_usa.json
│ │ ├── index.js
│ │ ├── mapStyle.json
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ ├── screens/
│ │ │ ├── AdvancedMap.js
│ │ │ ├── BasicMap.js
│ │ │ ├── CameraControl.js
│ │ │ ├── Gestures.js
│ │ │ ├── HeatMap.js
│ │ │ ├── Location.js
│ │ │ ├── MapLayers.js
│ │ │ ├── MapStyle.js
│ │ │ └── Markers.js
│ │ └── styles/
│ │ └── styles.js
│ ├── package.json
│ └── src/
│ ├── CircleView.js
│ ├── GroundOverlayView.js
│ ├── HeatMapView.js
│ ├── InfoWindowView.js
│ ├── MapView.js
│ ├── MarkerView.js
│ ├── PolygonView.js
│ ├── PolylineView.js
│ ├── TileOverlayView.js
│ ├── constants.js
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-ml/
│ ├── LICENCE
│ ├── README.md
│ ├── THIRD PARTY OPEN SOURCE SOFTWARE NOTICE.txt
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ └── rn/
│ │ │ └── ml/
│ │ │ ├── HMSBase.java
│ │ │ ├── HMSML.java
│ │ │ ├── commonservices/
│ │ │ │ ├── HMSApplication.java
│ │ │ │ ├── HMSComposite.java
│ │ │ │ └── HMSLensEngine.java
│ │ │ ├── facebodyrelatedservices/
│ │ │ │ ├── HMSFaceRecognition.java
│ │ │ │ ├── HMSFaceVerification.java
│ │ │ │ ├── HMSGestureDetection.java
│ │ │ │ ├── HMSHandKeypointDetection.java
│ │ │ │ ├── HMSLivenessDetection.java
│ │ │ │ └── HMSSkeletonDetection.java
│ │ │ ├── helpers/
│ │ │ │ ├── adapters/
│ │ │ │ │ └── HMSBottomSheetAdapter.java
│ │ │ │ ├── constants/
│ │ │ │ │ ├── HMSConstants.java
│ │ │ │ │ └── HMSResults.java
│ │ │ │ ├── creators/
│ │ │ │ │ ├── HMSObjectCreator.java
│ │ │ │ │ └── HMSResultCreator.java
│ │ │ │ ├── fragments/
│ │ │ │ │ └── HMSProductFragment.java
│ │ │ │ ├── models/
│ │ │ │ │ └── HMSProductModel.java
│ │ │ │ ├── transactors/
│ │ │ │ │ ├── HMS2DFaceAnalyzerTransactor.java
│ │ │ │ │ ├── HMS3DFaceAnalyzerTransactor.java
│ │ │ │ │ ├── HMSBaseTransactor.java
│ │ │ │ │ ├── HMSClassificationAnalyzerTransactor.java
│ │ │ │ │ ├── HMSGestureTransactor.java
│ │ │ │ │ ├── HMSHandKeypointTransactor.java
│ │ │ │ │ ├── HMSObjectAnalyzerTransactor.java
│ │ │ │ │ ├── HMSSceneDetectionAnalyzerTransactor.java
│ │ │ │ │ ├── HMSSkeletonAnalyzerTransactor.java
│ │ │ │ │ └── HMSTextAnalyzerTransactor.java
│ │ │ │ ├── utils/
│ │ │ │ │ ├── HMSBackgroundTasks.java
│ │ │ │ │ ├── HMSLogger.java
│ │ │ │ │ └── HMSUtils.java
│ │ │ │ └── views/
│ │ │ │ ├── HMSBottomSheetGridView.java
│ │ │ │ ├── HMSCustomSurfaceView.java
│ │ │ │ └── HMSSurfaceView.java
│ │ │ ├── imagerelatedservices/
│ │ │ │ ├── HMSDocumentSkewCorrection.java
│ │ │ │ ├── HMSFrame.java
│ │ │ │ ├── HMSImageClassification.java
│ │ │ │ ├── HMSImageSegmentation.java
│ │ │ │ ├── HMSImageSuperResolution.java
│ │ │ │ ├── HMSLandmarkRecognition.java
│ │ │ │ ├── HMSObjectRecognition.java
│ │ │ │ ├── HMSProductVisionSearch.java
│ │ │ │ ├── HMSSceneDetection.java
│ │ │ │ └── HMSTextImageSuperResolution.java
│ │ │ ├── languagevoicerelatedservices/
│ │ │ │ ├── HMSAft.java
│ │ │ │ ├── HMSAsr.java
│ │ │ │ ├── HMSLanguageDetection.java
│ │ │ │ ├── HMSSoundDetect.java
│ │ │ │ ├── HMSSpeechRtt.java
│ │ │ │ ├── HMSTextToSpeech.java
│ │ │ │ └── HMSTranslate.java
│ │ │ ├── modelrelatedservices/
│ │ │ │ ├── HMSCustomModel.java
│ │ │ │ └── HMSModelDownload.java
│ │ │ ├── nlprelatedservices/
│ │ │ │ └── HMSTextEmbedding.java
│ │ │ └── textrelatedservices/
│ │ │ ├── HMSBankCardRecognition.java
│ │ │ ├── HMSDocumentRecognition.java
│ │ │ ├── HMSFormRecognition.java
│ │ │ ├── HMSGeneralCardRecognition.java
│ │ │ ├── HMSIDCardRecognition.java
│ │ │ ├── HMSTextRecognition.java
│ │ │ └── HMSVietnamCardRecognition.java
│ │ └── res/
│ │ └── layout/
│ │ ├── hms_product_fragment.xml
│ │ └── hms_product_item.xml
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── ml/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── HmsFaceBodyRelatedServices/
│ │ │ ├── FaceRecognition.js
│ │ │ ├── FaceRecognitionLive.js
│ │ │ ├── FaceVerification.js
│ │ │ ├── GestureDetection.js
│ │ │ ├── GestureDetectionLive.js
│ │ │ ├── HandDetection.js
│ │ │ ├── HandDetectionLive.js
│ │ │ ├── LivenessDetection.js
│ │ │ ├── SkeletonDetection.js
│ │ │ └── SkeletonDetectionLive.js
│ │ ├── HmsImageRelatedServices/
│ │ │ ├── DocumentSkewCorrection.js
│ │ │ ├── Frame.js
│ │ │ ├── ImageClassification.js
│ │ │ ├── ImageClassificationLive.js
│ │ │ ├── ImageSegmentation.js
│ │ │ ├── ImageSuperResolution.js
│ │ │ ├── LandmarkRecognition.js
│ │ │ ├── ObjectDetection.js
│ │ │ ├── ObjectDetectionLive.js
│ │ │ ├── ProductVisualSearch.js
│ │ │ ├── SceneDetection.js
│ │ │ ├── SceneDetectionLive.js
│ │ │ └── TextImageSuperResolution.js
│ │ ├── HmsLanguageVoiceRelatedServices/
│ │ │ ├── AudioFileTranscription.js
│ │ │ ├── AutomaticSpeechRecognition.js
│ │ │ ├── LanguageDetection.js
│ │ │ ├── RealTimeTranscription.js
│ │ │ ├── SoundDetection.js
│ │ │ ├── TextToSpeech.js
│ │ │ └── Translation.js
│ │ ├── HmsNaturalLanguageProcessingServices/
│ │ │ └── TextEmbedding.js
│ │ ├── HmsOtherServices/
│ │ │ ├── CustomModel.js
│ │ │ ├── HMSCompositeAnalyzer.js
│ │ │ ├── Helper.js
│ │ │ └── ModelDownload.js
│ │ ├── HmsTextRelatedServices/
│ │ │ ├── BankCardRecognition.js
│ │ │ ├── DocumentRecognition.js
│ │ │ ├── FormRecognition.js
│ │ │ ├── GeneralCardRecognition.js
│ │ │ ├── IDCardRecognition.js
│ │ │ ├── TextRecognition.js
│ │ │ ├── TextRecognitionLive.js
│ │ │ └── VietnamIDCardRecognition.js
│ │ ├── StartPage.js
│ │ └── Styles.js
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-mlbody/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ └── rn/
│ │ │ └── mlbody/
│ │ │ ├── HMSBase.java
│ │ │ ├── HMSMLBody.java
│ │ │ ├── commonservices/
│ │ │ │ ├── HMSApplication.java
│ │ │ │ └── HMSLensEngine.java
│ │ │ ├── facebodyrelatedservices/
│ │ │ │ ├── HMSFaceRecognition.java
│ │ │ │ ├── HMSFaceVerification.java
│ │ │ │ ├── HMSGestureDetection.java
│ │ │ │ ├── HMSHandKeypointDetection.java
│ │ │ │ ├── HMSInteractiveCustomLivenessDetectionActivity.java
│ │ │ │ ├── HMSInteractiveLivenessCustomDetectionHandler.java
│ │ │ │ ├── HMSInteractiveLivenessDetection.java
│ │ │ │ ├── HMSLivenessDetection.java
│ │ │ │ └── HMSSkeletonDetection.java
│ │ │ └── helpers/
│ │ │ ├── constants/
│ │ │ │ ├── HMSConstants.java
│ │ │ │ └── HMSResults.java
│ │ │ ├── creators/
│ │ │ │ ├── HMSObjectCreator.java
│ │ │ │ └── HMSResultCreator.java
│ │ │ ├── transactors/
│ │ │ │ ├── HMS2DFaceAnalyzerTransactor.java
│ │ │ │ ├── HMS3DFaceAnalyzerTransactor.java
│ │ │ │ ├── HMSBaseTransactor.java
│ │ │ │ ├── HMSGestureTransactor.java
│ │ │ │ ├── HMSHandKeypointTransactor.java
│ │ │ │ └── HMSSkeletonAnalyzerTransactor.java
│ │ │ ├── utils/
│ │ │ │ ├── HMSBackgroundTasks.java
│ │ │ │ ├── HMSLogger.java
│ │ │ │ └── HMSUtils.java
│ │ │ └── views/
│ │ │ ├── HMSCustomSurfaceView.java
│ │ │ └── HMSSurfaceView.java
│ │ └── res/
│ │ ├── layout/
│ │ │ ├── activity_liveness_custom_detection.xml
│ │ │ ├── hms_product_fragment.xml
│ │ │ └── hms_product_item.xml
│ │ └── values/
│ │ └── strings.xml
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── mlbody/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── HmsFaceBodyRelatedServices/
│ │ │ ├── FaceRecognition.js
│ │ │ ├── FaceRecognitionLive.js
│ │ │ ├── FaceVerification.js
│ │ │ ├── GestureDetection.js
│ │ │ ├── GestureDetectionLive.js
│ │ │ ├── HandDetection.js
│ │ │ ├── HandDetectionLive.js
│ │ │ ├── InteractiveLivenessDetection.js
│ │ │ ├── LivenessDetection.js
│ │ │ ├── SkeletonDetection.js
│ │ │ └── SkeletonDetectionLive.js
│ │ ├── HmsOtherServices/
│ │ │ └── Helper.js
│ │ ├── StartPage.js
│ │ └── Styles.js
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-mlimage/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ └── rn/
│ │ │ └── mlimage/
│ │ │ ├── HMSBase.java
│ │ │ ├── HMSMLImage.java
│ │ │ ├── commonservices/
│ │ │ │ ├── HMSApplication.java
│ │ │ │ ├── HMSComposite.java
│ │ │ │ └── HMSLensEngine.java
│ │ │ ├── helpers/
│ │ │ │ ├── adapters/
│ │ │ │ │ └── HMSBottomSheetAdapter.java
│ │ │ │ ├── constants/
│ │ │ │ │ ├── HMSConstants.java
│ │ │ │ │ └── HMSResults.java
│ │ │ │ ├── creators/
│ │ │ │ │ ├── HMSObjectCreator.java
│ │ │ │ │ └── HMSResultCreator.java
│ │ │ │ ├── fragments/
│ │ │ │ │ └── HMSProductFragment.java
│ │ │ │ ├── models/
│ │ │ │ │ └── HMSProductModel.java
│ │ │ │ ├── transactors/
│ │ │ │ │ ├── HMSBaseTransactor.java
│ │ │ │ │ ├── HMSClassificationAnalyzerTransactor.java
│ │ │ │ │ ├── HMSObjectAnalyzerTransactor.java
│ │ │ │ │ └── HMSSceneDetectionAnalyzerTransactor.java
│ │ │ │ ├── utils/
│ │ │ │ │ ├── HMSBackgroundTasks.java
│ │ │ │ │ ├── HMSLogger.java
│ │ │ │ │ └── HMSUtils.java
│ │ │ │ └── views/
│ │ │ │ ├── HMSBottomSheetGridView.java
│ │ │ │ ├── HMSCustomSurfaceView.java
│ │ │ │ └── HMSSurfaceView.java
│ │ │ └── imagerelatedservices/
│ │ │ ├── HMSDocumentSkewCorrection.java
│ │ │ ├── HMSFrame.java
│ │ │ ├── HMSImageClassification.java
│ │ │ ├── HMSImageSegmentation.java
│ │ │ ├── HMSImageSuperResolution.java
│ │ │ ├── HMSLandmarkRecognition.java
│ │ │ ├── HMSObjectRecognition.java
│ │ │ ├── HMSProductVisionSearch.java
│ │ │ ├── HMSSceneDetection.java
│ │ │ └── HMSTextImageSuperResolution.java
│ │ └── res/
│ │ └── layout/
│ │ ├── hms_product_fragment.xml
│ │ └── hms_product_item.xml
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── ml/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── HmsImageRelatedServices/
│ │ │ ├── DocumentSkewCorrection.js
│ │ │ ├── Frame.js
│ │ │ ├── ImageClassification.js
│ │ │ ├── ImageClassificationLive.js
│ │ │ ├── ImageSegmentation.js
│ │ │ ├── ImageSuperResolution.js
│ │ │ ├── LandmarkRecognition.js
│ │ │ ├── ObjectDetection.js
│ │ │ ├── ObjectDetectionLive.js
│ │ │ ├── ProductVisualSearch.js
│ │ │ ├── SceneDetection.js
│ │ │ ├── SceneDetectionLive.js
│ │ │ └── TextImageSuperResolution.js
│ │ ├── HmsOtherServices/
│ │ │ ├── HMSCompositeAnalyzer.js
│ │ │ └── Helper.js
│ │ ├── StartPage.js
│ │ └── Styles.js
│ ├── package.json
│ └── src/
│ ├── constants.js
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-mllanguage/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ └── rn/
│ │ │ └── mllanguage/
│ │ │ ├── HMSBase.java
│ │ │ ├── HMSML.java
│ │ │ ├── commonservices/
│ │ │ │ └── HMSApplication.java
│ │ │ ├── helpers/
│ │ │ │ ├── constants/
│ │ │ │ │ ├── HMSConstants.java
│ │ │ │ │ └── HMSResults.java
│ │ │ │ ├── creators/
│ │ │ │ │ ├── HMSObjectCreator.java
│ │ │ │ │ └── HMSResultCreator.java
│ │ │ │ ├── utils/
│ │ │ │ │ ├── HMSLogger.java
│ │ │ │ │ └── HMSUtils.java
│ │ │ │ └── views/
│ │ │ │ └── HMSBottomSheetGridView.java
│ │ │ ├── languagevoicerelatedservices/
│ │ │ │ ├── HMSAft.java
│ │ │ │ ├── HMSAsr.java
│ │ │ │ ├── HMSLanguageDetection.java
│ │ │ │ ├── HMSSoundDetect.java
│ │ │ │ ├── HMSSpeechRtt.java
│ │ │ │ ├── HMSTextToSpeech.java
│ │ │ │ └── HMSTranslate.java
│ │ │ └── modelrelatedservices/
│ │ │ ├── HMSCustomModel.java
│ │ │ └── HMSModelDownload.java
│ │ └── res/
│ │ └── layout/
│ │ ├── hms_product_fragment.xml
│ │ └── hms_product_item.xml
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── mllanguage/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── HmsLanguageVoiceRelatedServices/
│ │ │ ├── AudioFileTranscription.js
│ │ │ ├── AutomaticSpeechRecognition.js
│ │ │ ├── LanguageDetection.js
│ │ │ ├── RealTimeTranscription.js
│ │ │ ├── SoundDetection.js
│ │ │ ├── TextToSpeech.js
│ │ │ └── Translation.js
│ │ ├── HmsOtherServices/
│ │ │ ├── CustomModel.js
│ │ │ ├── Helper.js
│ │ │ └── ModelDownload.js
│ │ ├── StartPage.js
│ │ └── Styles.js
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-mltext/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ └── rn/
│ │ │ └── mltext/
│ │ │ ├── HMSBase.java
│ │ │ ├── HMSMLText.java
│ │ │ ├── commonservices/
│ │ │ │ ├── HMSApplication.java
│ │ │ │ └── HMSLensEngine.java
│ │ │ ├── helpers/
│ │ │ │ ├── constants/
│ │ │ │ │ ├── HMSConstants.java
│ │ │ │ │ └── HMSResults.java
│ │ │ │ ├── creators/
│ │ │ │ │ ├── HMSObjectCreator.java
│ │ │ │ │ └── HMSResultCreator.java
│ │ │ │ ├── transactors/
│ │ │ │ │ ├── HMSBaseTransactor.java
│ │ │ │ │ └── HMSTextAnalyzerTransactor.java
│ │ │ │ ├── utils/
│ │ │ │ │ ├── HMSBackgroundTasks.java
│ │ │ │ │ ├── HMSLogger.java
│ │ │ │ │ └── HMSUtils.java
│ │ │ │ └── views/
│ │ │ │ ├── CustomViewActivity.java
│ │ │ │ ├── HMSCustomSurfaceView.java
│ │ │ │ ├── HMSSurfaceView.java
│ │ │ │ └── ViewfinderView.java
│ │ │ ├── nlprelatedservices/
│ │ │ │ └── HMSTextEmbedding.java
│ │ │ └── textrelatedservices/
│ │ │ ├── CustomViewHandler.java
│ │ │ ├── HMSBankCardRecognition.java
│ │ │ ├── HMSDocumentRecognition.java
│ │ │ ├── HMSFormRecognition.java
│ │ │ ├── HMSGeneralCardRecognition.java
│ │ │ ├── HMSIDCardRecognition.java
│ │ │ ├── HMSTextRecognition.java
│ │ │ └── HMSVietnamCardRecognition.java
│ │ └── res/
│ │ ├── layout/
│ │ │ └── activity_custom.xml
│ │ └── values/
│ │ └── color.xml
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── mltext/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── HmsNaturalLanguageProcessingServices/
│ │ │ └── TextEmbedding.js
│ │ ├── HmsOtherServices/
│ │ │ └── Helper.js
│ │ ├── HmsTextRelatedServices/
│ │ │ ├── BankCardRecognition.js
│ │ │ ├── DocumentRecognition.js
│ │ │ ├── FormRecognition.js
│ │ │ ├── GeneralCardRecognition.js
│ │ │ ├── IDCardRecognition.js
│ │ │ ├── TextRecognition.js
│ │ │ ├── TextRecognitionLive.js
│ │ │ └── VietnamIDCardRecognition.js
│ │ ├── StartPage.js
│ │ └── Styles.js
│ ├── package.json
│ └── src/
│ ├── BankCardRecognitionCustomizedView.js
│ ├── index.d.ts
│ ├── index.js
│ └── utils.js
├── react-native-hms-nearby/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── nearby/
│ │ ├── HMSNearby.java
│ │ ├── constants/
│ │ │ └── HMSConstants.java
│ │ ├── modules/
│ │ │ ├── HMSBase.java
│ │ │ ├── HMSBeacon.java
│ │ │ ├── HMSDiscovery.java
│ │ │ ├── HMSMessage.java
│ │ │ ├── HMSNearbyApplication.java
│ │ │ └── HMSTransfer.java
│ │ └── utils/
│ │ ├── HMSLogger.java
│ │ ├── HMSResult.java
│ │ └── HMSUtils.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── nearby/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── Beacon.js
│ │ ├── Connection.js
│ │ ├── Converter.js
│ │ ├── Message.js
│ │ ├── StartPage.js
│ │ └── Styles.js
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-push/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── push/
│ │ ├── HmsPushPackage.java
│ │ ├── config/
│ │ │ └── NotificationAttributes.java
│ │ ├── constants/
│ │ │ ├── Core.java
│ │ │ ├── LocalNotification.java
│ │ │ ├── NotificationConstants.java
│ │ │ ├── RemoteMessageAttributes.java
│ │ │ └── ResultCode.java
│ │ ├── local/
│ │ │ ├── BitmapDataSubscriber.java
│ │ │ ├── HmsLocalNotification.java
│ │ │ ├── HmsLocalNotificationActionPublisher.java
│ │ │ ├── HmsLocalNotificationController.java
│ │ │ └── HmsLocalNotificationPicturesLoader.java
│ │ ├── logger/
│ │ │ └── HMSLogger.java
│ │ ├── opendevice/
│ │ │ └── HmsPushOpenDevice.java
│ │ ├── receiver/
│ │ │ ├── HmsLocalNotificationActionsReceiver.java
│ │ │ ├── HmsLocalNotificationBootEventReceiver.java
│ │ │ ├── HmsLocalNotificationScheduledPublisher.java
│ │ │ └── NotificationActionHandler.java
│ │ ├── remote/
│ │ │ ├── HmsMessagePublisher.java
│ │ │ ├── HmsPushInstanceId.java
│ │ │ ├── HmsPushMessageService.java
│ │ │ ├── HmsPushMessaging.java
│ │ │ └── HmsPushProfile.java
│ │ ├── services/
│ │ │ └── MessagingHeadlessService.java
│ │ └── utils/
│ │ ├── ActivityUtils.java
│ │ ├── ApplicationUtils.java
│ │ ├── ArrayUtils.java
│ │ ├── BundleUtils.java
│ │ ├── MapUtils.java
│ │ ├── NotificationConfigUtils.java
│ │ ├── RemoteMessageUtils.java
│ │ └── ResultUtils.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── LICENCE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── push/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── exampleCustomIntentLinks.html
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── LocalNotification.js
│ │ ├── MainPage.js
│ │ └── styles.js
│ ├── package.json
│ └── src/
│ ├── HmsPushEvent.js
│ ├── HmsPushProfileTypes.js
│ ├── HmsPushResultCode.js
│ ├── LocalNotification/
│ │ ├── Importance.js
│ │ ├── Priority.js
│ │ ├── RepeatType.js
│ │ ├── Visibility.js
│ │ └── index.js
│ ├── RNRemoteMessage.js
│ ├── RemoteMessageBuilder.js
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-push-fcm/
│ ├── LICENCE
│ ├── README.md
│ ├── android/
│ │ ├── .gradle/
│ │ │ ├── 6.3/
│ │ │ │ └── gc.properties
│ │ │ ├── buildOutputCleanup/
│ │ │ │ └── cache.properties
│ │ │ └── vcs-1/
│ │ │ └── gc.properties
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ ├── local.properties
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── push/
│ │ └── fcm/
│ │ ├── HMSLogger.java
│ │ ├── HMSPushFCM.java
│ │ └── HmsPushFCMPackage.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── LICENCE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── push/
│ │ │ │ │ └── fcm/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ ├── package.json
│ │ └── src/
│ │ ├── MainPage.js
│ │ └── styles.js
│ ├── index.js
│ └── package.json
├── react-native-hms-safetydetect/
│ ├── LICENSE
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ └── java/
│ │ └── com/
│ │ └── huawei/
│ │ └── hms/
│ │ └── rn/
│ │ └── safetydetect/
│ │ ├── HMSSafetyDetectPackage.java
│ │ ├── appcheck/
│ │ │ ├── AppCheckModule.java
│ │ │ ├── AppCheckService.java
│ │ │ └── AppCheckUtils.java
│ │ ├── huaweiapi/
│ │ │ ├── HuaweiApiModule.java
│ │ │ └── HuaweiApiService.java
│ │ ├── logger/
│ │ │ └── HMSLogger.java
│ │ ├── sysintegrity/
│ │ │ ├── SysIntegrityModule.java
│ │ │ └── SysIntegrityService.java
│ │ ├── urlcheck/
│ │ │ ├── UrlCheckModule.java
│ │ │ ├── UrlCheckService.java
│ │ │ └── UrlCheckUtils.java
│ │ ├── userdetect/
│ │ │ ├── UserDetectModule.java
│ │ │ └── UserDetectService.java
│ │ ├── utils/
│ │ │ └── HMSSafetyDetectUtils.java
│ │ └── wifidetect/
│ │ ├── WifiDetectModule.java
│ │ └── WifiDetectService.java
│ ├── example/
│ │ ├── .gitignore
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── hms/
│ │ │ │ │ └── rn/
│ │ │ │ │ └── safetydetect/
│ │ │ │ │ └── demo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── index.d.ts
│ └── index.js
├── react-native-hms-scan/
│ ├── LICENSE
│ ├── OpenSourceSoftwareNotice.html
│ ├── README.md
│ ├── android/
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── src/
│ │ └── main/
│ │ ├── AndroidManifest.xml
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── huawei/
│ │ │ └── hms/
│ │ │ └── rn/
│ │ │ └── scan/
│ │ │ ├── RNHMSScanPackage.java
│ │ │ ├── customized/
│ │ │ │ ├── CustomizedViewActivity.java
│ │ │ │ └── RNHMSScanCustomizedViewModule.java
│ │ │ ├── logger/
│ │ │ │ └── HMSLogger.java
│ │ │ ├── multi/
│ │ │ │ ├── CommonActivity.java
│ │ │ │ ├── CommonCamera.java
│ │ │ │ ├── CommonHandler.java
│ │ │ │ ├── RNHMSScanMultiProcessorModule.java
│ │ │ │ ├── ScanResultView.java
│ │ │ │ └── ScanTextOptions.java
│ │ │ ├── scanutils/
│ │ │ │ └── RNHMSScanUtilsModule.java
│ │ │ └── utils/
│ │ │ ├── Errors.java
│ │ │ └── ReactUtils.java
│ │ └── res/
│ │ ├── drawable/
│ │ │ ├── colors.xml
│ │ │ └── scanningframe.xml
│ │ └── layout/
│ │ ├── activity_defined.xml
│ │ └── activity_multiprocessor.xml
│ ├── example/
│ │ ├── App.js
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── android/
│ │ │ ├── app/
│ │ │ │ ├── BUCK
│ │ │ │ ├── build.gradle
│ │ │ │ ├── proguard-rules.pro
│ │ │ │ └── src/
│ │ │ │ ├── debug/
│ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ └── main/
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java/
│ │ │ │ │ └── com/
│ │ │ │ │ └── huawei/
│ │ │ │ │ └── rnhmsscandemo/
│ │ │ │ │ ├── MainActivity.java
│ │ │ │ │ └── MainApplication.java
│ │ │ │ └── res/
│ │ │ │ └── values/
│ │ │ │ └── styles.xml
│ │ │ ├── build.gradle
│ │ │ ├── gradle/
│ │ │ │ └── wrapper/
│ │ │ │ └── gradle-wrapper.properties
│ │ │ ├── gradle.properties
│ │ │ ├── gradlew
│ │ │ ├── gradlew.bat
│ │ │ └── settings.gradle
│ │ ├── app.json
│ │ ├── babel.config.js
│ │ ├── images/
│ │ │ └── images.json
│ │ ├── index.js
│ │ ├── metro.config.js
│ │ └── package.json
│ ├── package.json
│ └── src/
│ ├── ScanCustomizedView.js
│ ├── ScanMultiProcessor.js
│ ├── ScanUtils.js
│ ├── index.d.ts
│ ├── index.js
│ └── utils.js
└── react-native-hms-site/
├── LICENCE
├── README.md
├── android/
│ ├── build.gradle
│ ├── gradle/
│ │ └── wrapper/
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── src/
│ └── main/
│ ├── AndroidManifest.xml
│ └── java/
│ └── com/
│ └── huawei/
│ └── hms/
│ └── rn/
│ └── site/
│ ├── HMSLogger.java
│ ├── RNHMSSiteModule.java
│ ├── RNHMSSitePackage.java
│ ├── RNHMSSiteUtils.java
│ ├── RNHMSSiteWrapper.java
│ └── RNHMSWidgetWrapper.java
├── example/
│ ├── App.js
│ ├── LICENCE
│ ├── README.md
│ ├── android/
│ │ ├── app/
│ │ │ ├── build.gradle
│ │ │ ├── proguard-rules.pro
│ │ │ └── src/
│ │ │ ├── debug/
│ │ │ │ └── AndroidManifest.xml
│ │ │ └── main/
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── huawei/
│ │ │ │ └── hms/
│ │ │ │ └── rn/
│ │ │ │ └── site/
│ │ │ │ └── demo/
│ │ │ │ ├── MainActivity.java
│ │ │ │ └── MainApplication.java
│ │ │ └── res/
│ │ │ └── values/
│ │ │ └── styles.xml
│ │ ├── build.gradle
│ │ ├── gradle/
│ │ │ └── wrapper/
│ │ │ └── gradle-wrapper.properties
│ │ ├── gradle.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ ├── app.json
│ ├── babel.config.js
│ ├── index.js
│ ├── metro.config.js
│ ├── package.json
│ └── src/
│ └── styles.js
├── package.json
└── src/
├── constants/
│ ├── HwLocationType.js
│ └── LocationType.js
├── index.d.ts
└── index.js
Showing preview only (706K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (7966 symbols across 772 files)
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/HMSAccountPackage.java
class HMSAccountPackage (line 39) | public class HMSAccountPackage implements ReactPackage {
method createNativeModules (line 40) | @NonNull
method createViewManagers (line 49) | @NonNull
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/constants/ClassConstants.java
type ClassConstants (line 22) | public enum ClassConstants {
method ClassConstants (line 41) | ClassConstants(String stringValue) {
method ClassConstants (line 45) | ClassConstants(Integer intValue) {
method getIntValue (line 49) | public Integer getIntValue() {
method getStringValue (line 53) | public String getStringValue() {
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/logger/HMSLogger.java
class HMSLogger (line 36) | public final class HMSLogger {
method HMSLogger (line 92) | private HMSLogger(final Context context) {
method getInstance (line 111) | public static synchronized HMSLogger getInstance(final Context context) {
method getContext (line 127) | private synchronized Context getContext() {
method enableLogger (line 134) | public synchronized void enableLogger() {
method disableLogger (line 142) | public synchronized void disableLogger() {
method startMethodExecutionTimer (line 152) | public synchronized void startMethodExecutionTimer(final String method...
method sendSingleEvent (line 161) | public synchronized void sendSingleEvent(final String methodName) {
method sendSingleEvent (line 171) | public synchronized void sendSingleEvent(final String methodName, fina...
method sendPeriodicEvent (line 180) | public synchronized void sendPeriodicEvent(final String methodName) {
method sendPeriodicEvent (line 190) | public synchronized void sendPeriodicEvent(final String methodName, fi...
method sendEvent (line 201) | private synchronized void sendEvent(final String eventId, final String...
method getAppId (line 224) | private synchronized String getAppId() {
method getAppVersionName (line 239) | private synchronized String getAppVersionName(final String packageName) {
method getNetworkType (line 253) | private synchronized String getNetworkType() {
method setupEventMap (line 279) | private synchronized void setupEventMap(final Map<String, Object> map) {
method putToSingleEventMap (line 297) | private synchronized void putToSingleEventMap(final String methodName,...
method putToPeriodicEventMap (line 315) | private synchronized void putToPeriodicEventMap(final String methodNam...
method createNetworkTypeMap (line 352) | private synchronized Map<Integer, String> createNetworkTypeMap() {
method increaseResultCodeCount (line 385) | private synchronized void increaseResultCodeCount(final String methodN...
method increaseMapValue (line 398) | private synchronized void increaseMapValue(final String key, final Map...
method getOrDefault (line 412) | private synchronized <K, V> V getOrDefault(final Map<K, V> map, final ...
method putIfAbsent (line 425) | private synchronized <K, V> void putIfAbsent(final Map<K, V> map, fina...
method objectCast (line 440) | private synchronized <S, D> D objectCast(final S source, final Class<D...
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSAccount.java
class HMSAccount (line 49) | public class HMSAccount extends ReactContextBaseJavaModule implements Ac...
method HMSAccount (line 64) | public HMSAccount(ReactApplicationContext reactContext) {
method onNewIntent (line 70) | @Override
method getName (line 75) | @NonNull
method getConstants (line 81) | @Override
method onActivityResult (line 91) | @Override
method signIn (line 102) | @ReactMethod
method signOut (line 118) | @ReactMethod
method silentSignIn (line 131) | @ReactMethod
method cancelAuthorization (line 156) | @ReactMethod
method getButtonInfo (line 169) | @ReactMethod
method enableLogger (line 183) | @ReactMethod
method disableLogger (line 188) | @ReactMethod
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSAccountAuthManager.java
class HMSAccountAuthManager (line 42) | public class HMSAccountAuthManager extends ReactContextBaseJavaModule im...
method HMSAccountAuthManager (line 51) | public HMSAccountAuthManager(ReactApplicationContext reactContext) {
method getName (line 57) | @Nonnull
method getAuthResult (line 63) | @ReactMethod
method getAuthResultWithScopes (line 72) | @ReactMethod
method containScopes (line 91) | @ReactMethod
method addAuthScopes (line 108) | @ReactMethod
method onActivityResult (line 116) | @Override
method onNewIntent (line 124) | @Override
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSAccountAuthService.java
class HMSAccountAuthService (line 44) | public class HMSAccountAuthService extends ReactContextBaseJavaModule im...
method HMSAccountAuthService (line 59) | public HMSAccountAuthService(@Nonnull ReactApplicationContext reactCon...
method getName (line 65) | @Nonnull
method onActivityResult (line 71) | @Override
method signIn (line 81) | @ReactMethod
method signOut (line 99) | @ReactMethod
method getChannel (line 112) | @ReactMethod
method silentSignIn (line 125) | @ReactMethod
method cancelAuthorization (line 151) | @ReactMethod
method getIndependentSignInIntent (line 164) | @ReactMethod
method onNewIntent (line 180) | @Override
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSHuaweiIdAuthManager.java
class HMSHuaweiIdAuthManager (line 42) | public class HMSHuaweiIdAuthManager extends ReactContextBaseJavaModule i...
method HMSHuaweiIdAuthManager (line 51) | public HMSHuaweiIdAuthManager(ReactApplicationContext reactContext) {
method getName (line 57) | @NonNull
method getAuthResult (line 63) | @ReactMethod
method getAuthResultWithScopes (line 72) | @ReactMethod
method addAuthScopes (line 91) | @ReactMethod
method onActivityResult (line 99) | @Override
method onNewIntent (line 107) | @Override
method containScopes (line 112) | @ReactMethod
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSHuaweiIdAuthTool.java
class HMSHuaweiIdAuthTool (line 38) | public class HMSHuaweiIdAuthTool extends ReactContextBaseJavaModule {
method HMSHuaweiIdAuthTool (line 51) | public HMSHuaweiIdAuthTool(ReactApplicationContext reactContext) {
method getName (line 56) | @NonNull
method deleteAuthInfo (line 62) | @ReactMethod
method requestUnionId (line 80) | @ReactMethod
method requestAccessToken (line 99) | @ReactMethod
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSNetworkTool.java
class HMSNetworkTool (line 31) | public class HMSNetworkTool extends ReactContextBaseJavaModule {
method HMSNetworkTool (line 50) | public HMSNetworkTool(ReactApplicationContext reactContext) {
method getName (line 55) | @NonNull
method buildNetworkCookie (line 60) | @ReactMethod
method buildNetworkUrl (line 83) | @ReactMethod
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSReadSMSManager.java
class HMSReadSMSManager (line 57) | @Deprecated
method HMSReadSMSManager (line 75) | public HMSReadSMSManager(ReactApplicationContext reactContext) {
method getName (line 80) | @NonNull
method smsVerificationCode (line 85) | @ReactMethod
method startConsent (line 92) | @ReactMethod
method startRegisterReceiver (line 105) | private void startRegisterReceiver(Task<Void> taskRegisterReceiver, St...
method getHashCode (line 118) | @ReactMethod
method getMessageDigest (line 150) | private MessageDigest getMessageDigest() {
method getSignature (line 160) | private String getSignature(Context context, String packageName) {
class SMSBroadcastReceiver (line 171) | private static class SMSBroadcastReceiver extends BroadcastReceiver {
method SMSBroadcastReceiver (line 176) | public SMSBroadcastReceiver(Promise promise, String methodName) {
method onReceive (line 181) | @Override
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/utils/Utils.java
class Utils (line 51) | public class Utils {
method parseAuthHuaweiId (line 122) | public static ReadableMap parseAuthHuaweiId(AuthHuaweiId authHuaweiId,...
method parseAuthAccount (line 148) | public static ReadableMap parseAuthAccount(AuthAccount authAccount, Co...
method parseScopeSet (line 175) | public static WritableArray parseScopeSet(Set<Scope> scopeSet) {
method parseButton (line 185) | public static WritableMap parseButton(HuaweiIdAuthButton button) {
method parseAccount (line 196) | private static WritableMap parseAccount(Account account) {
method toHuaweiIdAuthParams (line 206) | public static HuaweiIdAuthParams toHuaweiIdAuthParams(ReadableArray re...
method toAccountAuthParams (line 270) | public static AccountAuthParams toAccountAuthParams(ReadableArray requ...
method toAuthResult (line 342) | public static <T extends AbstractAuthAccount> T toAuthResult(ReadableM...
method toSet (line 371) | private static Set<Object> toSet(ReadableArray readableArray) {
method toScopeList (line 381) | public static List<Scope> toScopeList(ReadableArray scopeArray) {
method getScopeArray (line 392) | public static ReadableArray getScopeArray(ReadableMap readableMap) {
method parseStatus (line 396) | public static WritableMap parseStatus(Status status) {
method parseAccountIcon (line 404) | public static WritableMap parseAccountIcon(AccountIcon accountIcon) {
method bitmapToByteArray (line 414) | public static String bitmapToByteArray(Bitmap bitmap) {
method handleError (line 421) | public static void handleError(final Promise promise, Exception e) {
method argumentNullCheck (line 429) | public static Object argumentNullCheck(final ReadableMap readableMap, ...
method argumentNullCheckAndConvert (line 445) | public static Long argumentNullCheckAndConvert(final ReadableMap reada...
FILE: react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/views/HMSHuaweiIdAuthButton.java
class HMSHuaweiIdAuthButton (line 30) | public class HMSHuaweiIdAuthButton extends SimpleViewManager<HuaweiIdAut...
method HMSHuaweiIdAuthButton (line 42) | public HMSHuaweiIdAuthButton(ReactApplicationContext reactContext) {
method getName (line 45) | @NonNull
method createViewInstance (line 51) | @NonNull
method setColorPolicy (line 60) | @ReactProp(name = ARGUMENT_COLOR_POLICY)
method setEnabled (line 65) | @ReactProp(name = ARGUMENT_ENABLED)
method setTheme (line 70) | @ReactProp(name = ARGUMENT_THEME)
method setCornerRadius (line 75) | @ReactProp(name = ARGUMENT_CORNER_RADIUS)
FILE: react-native-hms-account/example/App.js
class App (line 94) | class App extends React.Component {
method constructor (line 95) | constructor() {
method render (line 287) | render() {
FILE: react-native-hms-account/example/android/app/src/main/java/com/huawei/hms/rn/account/demo/MainActivity.java
class MainActivity (line 21) | public class MainActivity extends ReactActivity {
method getMainComponentName (line 22) | @Override
FILE: react-native-hms-account/example/android/app/src/main/java/com/huawei/hms/rn/account/demo/MainApplication.java
class MainApplication (line 29) | public class MainApplication extends Application implements ReactApplica...
method getUseDeveloperSupport (line 33) | @Override
method getPackages (line 38) | @Override
method getJSMainModuleName (line 44) | @Override
method getReactNativeHost (line 50) | @Override
method onCreate (line 55) | @Override
FILE: react-native-hms-account/src/index.d.ts
method signIn (line 20) | signIn(request: SignInData): Promise<AuthHuaweiId>;,
method signIn (line 36) | signIn(request: SignInData): Promise<AuthAccount>;,
method deleteAuthInfo (line 52) | deleteAuthInfo(request: AccessTokenData): Promise<boolean>;,
type ContainScopesData (line 77) | interface ContainScopesData {
type AuthBuilder (line 82) | interface AuthBuilder {
type AuthHuaweiId (line 97) | interface AuthHuaweiId {
type AuthAccount (line 114) | interface AuthAccount {
type HuaweiAccount (line 134) | interface HuaweiAccount {
type AccountIcon (line 139) | interface AccountIcon {
type AccessTokenData (line 144) | interface AccessTokenData {
type AccountData (line 148) | interface AccountData {
type RequestAccessTokenData (line 152) | interface RequestAccessTokenData {
type CookieData (line 157) | interface CookieData {
type UrlData (line 167) | interface UrlData {
type HMSAuthParamConstants (line 172) | enum HMSAuthParamConstants {
type HMSAuthRequestOptionConstants (line 177) | enum HMSAuthRequestOptionConstants {
type HMSAuthScopeListConstants (line 189) | enum HMSAuthScopeListConstants {
FILE: react-native-hms-account/src/index.js
class HMSAuthButton (line 62) | class HMSAuthButton extends React.Component {
method render (line 64) | render() {
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsBannerView.java
class HMSAdsBannerView (line 41) | public class HMSAdsBannerView extends BannerView {
type BannerMediaType (line 46) | public enum BannerMediaType {
method BannerMediaType (line 51) | BannerMediaType(String value) {
method getValue (line 55) | public String getValue() {
type BannerSize (line 60) | public enum BannerSize {
method BannerSize (line 73) | BannerSize(String value) {
method getValue (line 77) | public String getValue() {
method forValue (line 81) | public static BannerSize forValue(String s) {
method HMSAdsBannerView (line 105) | public HMSAdsBannerView(final Context context) {
method HMSAdsBannerView (line 109) | public HMSAdsBannerView(final ThemedReactContext context) {
method requestLayout (line 150) | @Override
method sendEvent (line 160) | private void sendEvent(Manager.Event event, @Nullable WritableMap wm) {
method loadAd (line 165) | void loadAd() {
method setAdParam (line 169) | public void setAdParam(ReadableMap adParamReadableMap) {
class Manager (line 173) | public static class Manager extends ViewGroupManager<HMSAdsBannerView> {
method Manager (line 177) | public Manager(ReactApplicationContext reactContext) {
type Event (line 182) | public enum Event implements ReactUtils.NamedEvent {
method Event (line 193) | Event(String bannerEventName) {
method getName (line 197) | public String getName() {
type Command (line 202) | public enum Command implements ReactUtils.NamedCommand {
method Command (line 211) | Command(String bannerCommandName) {
method getName (line 215) | public String getName() {
method getName (line 220) | @NonNull
method createViewInstance (line 226) | @NonNull
method getCommandsMap (line 233) | @Nullable
method receiveCommand (line 239) | @Override
method getExportedCustomDirectEventTypeConstants (line 275) | @Nullable
method setAdParam (line 281) | @ReactProp(name = "adParam")
method setBannerAdSize (line 287) | @ReactProp(name = "bannerAdSize")
method setAdId (line 293) | @ReactProp(name = "adId")
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsInstallReferrerModule.java
class HMSAdsInstallReferrerModule (line 44) | public class HMSAdsInstallReferrerModule extends ReactContextBaseJavaMod...
type Event (line 51) | public enum Event {
method Event (line 57) | Event(String name) {
method getName (line 61) | public String getName() {
method HMSAdsInstallReferrerModule (line 66) | HMSAdsInstallReferrerModule(ReactApplicationContext reactContext) {
method getName (line 72) | @NonNull
method onInstallReferrerSetupFinished (line 78) | @Override
method onInstallReferrerServiceDisconnected (line 86) | @Override
method sendEvent (line 91) | void sendEvent(Event event, @Nullable WritableMap wm) {
method startConnection (line 96) | @ReactMethod
method endConnection (line 115) | @ReactMethod
method getReferrerDetails (line 130) | @ReactMethod
method isReady (line 153) | @ReactMethod
method getResponseMessage (line 164) | private String getResponseMessage(int responseCode) {
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsInstreamView.java
class HMSAdsInstreamView (line 51) | public class HMSAdsInstreamView extends InstreamView
method HMSAdsInstreamView (line 70) | public HMSAdsInstreamView(final Context context) {
method HMSAdsInstreamView (line 74) | public HMSAdsInstreamView(final ThemedReactContext context) {
method requestLayout (line 83) | @Override
method onClick (line 93) | @Override
method onMute (line 98) | @Override
method onUnmute (line 103) | @Override
method onAdLoaded (line 108) | @Override
method onAdFailed (line 128) | @Override
method onSegmentMediaChange (line 133) | @Override
method onMediaProgress (line 138) | @Override
method onMediaStart (line 146) | @Override
method onMediaPause (line 153) | @Override
method onMediaStop (line 160) | @Override
method onMediaCompletion (line 167) | @Override
method onMediaError (line 174) | @Override
method sendEvent (line 183) | private void sendEvent(Manager.Event event, @Nullable WritableMap wm) {
method loadAd (line 188) | public void loadAd() {
method register (line 196) | public void register() {
method setAdParam (line 200) | public void setAdParam(ReadableMap rm) {
method setAdId (line 204) | public void setAdId(String adId) {
method setTotalDuration (line 208) | public void setTotalDuration(int totalDuration) {
method setMaxCount (line 212) | public void setMaxCount(int maxCount) {
class Manager (line 216) | public static class Manager extends ViewGroupManager<HMSAdsInstreamVie...
method Manager (line 219) | public Manager(ReactApplicationContext reactContext) {
type Event (line 223) | public enum Event implements ReactUtils.NamedEvent {
method Event (line 239) | Event(String instreamEventName) {
method getName (line 243) | public String getName() {
method getExportedCustomDirectEventTypeConstants (line 248) | @Nullable
type Command (line 254) | public enum Command implements ReactUtils.NamedCommand {
method Command (line 270) | Command(String instreamCommandName) {
method getName (line 274) | public String getName() {
method getName (line 279) | @NonNull
method createViewInstance (line 285) | @NonNull
method getCommandsMap (line 292) | @Nullable
method receiveCommand (line 298) | @Override
method setAdParam (line 379) | @ReactProp(name = "adParam")
method setAdId (line 385) | @ReactProp(name = "adId")
method setMaxCount (line 391) | @ReactProp(name = "maxCount")
method setTotalDuration (line 397) | @ReactProp(name = "totalDuration")
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsInterstitialAdModule.java
class HMSAdsInterstitialAdModule (line 44) | public class HMSAdsInterstitialAdModule extends ReactContextBaseJavaModu...
type InterstitialMediaType (line 57) | public enum InterstitialMediaType {
method InterstitialMediaType (line 63) | InterstitialMediaType(String value) {
method getValue (line 67) | public String getValue() {
type Event (line 72) | public enum Event {
method Event (line 85) | Event(String interstitialEventName) {
method getName (line 89) | public String getName() {
method getName (line 94) | @NonNull
method HMSAdsInterstitialAdModule (line 100) | HMSAdsInterstitialAdModule(ReactApplicationContext reactContext) {
method sendEvent (line 177) | private void sendEvent(Event event, @Nullable WritableMap wm) {
method setAdId (line 182) | @ReactMethod
method setAdParam (line 189) | @ReactMethod
method loadAd (line 196) | @ReactMethod
method show (line 212) | @ReactMethod
method setVideoConfiguration (line 227) | @ReactMethod
method isLoaded (line 252) | @ReactMethod
method isLoading (line 259) | @ReactMethod
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsModule.java
class HMSAdsModule (line 61) | public class HMSAdsModule extends ReactContextBaseJavaModule implements ...
method HMSAdsModule (line 68) | HMSAdsModule(ReactApplicationContext reactContext) {
type CallMode (line 74) | public enum CallMode {
method CallMode (line 80) | CallMode(String value) {
method getValue (line 84) | public String getValue() {
method forValue (line 88) | public static CallMode forValue(String s) {
method getConstants (line 96) | @Nullable
method onSuccess (line 249) | @Override
method onFail (line 264) | @Override
method getName (line 271) | @NonNull
method disableLogger (line 277) | @ReactMethod
method enableLogger (line 283) | @ReactMethod
method init (line 289) | @ReactMethod
method getSDKVersion (line 298) | @ReactMethod
method appInstalledNotify (line 306) | @ReactMethod
method getRequestOptions (line 319) | @ReactMethod
method setRequestOptions (line 329) | @ReactMethod
method setConsent (line 339) | @ReactMethod
method setConsentString (line 360) | @ReactMethod
method checkConsent (line 366) | @ReactMethod
method getViewInfo (line 374) | @ReactMethod
method getErrorMessage (line 418) | public static String getErrorMessage(int errorCode) {
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsNativeView.java
class HMSAdsNativeView (line 63) | public class HMSAdsNativeView extends LinearLayout {
type NativeMediaType (line 114) | public enum NativeMediaType {
method NativeMediaType (line 121) | NativeMediaType(String value) {
method getValue (line 125) | public String getValue() {
method forValue (line 129) | public static NativeMediaType forValue(String s) {
method HMSAdsNativeView (line 141) | public HMSAdsNativeView(Context context) {
method requestLayout (line 149) | @Override
method setupInitialConfigurations (line 155) | private void setupInitialConfigurations() {
method loadAd (line 194) | void loadAd() {
method setVideoConfiguration (line 200) | void setVideoConfiguration(ReadableMap videoConfiguration) {
method setNativeAdConfiguration (line 224) | void setNativeAdConfiguration(ReadableMap nativeAdConfiguration) {
method onVideoStart (line 260) | @Override
method onVideoPlay (line 265) | @Override
method onVideoEnd (line 270) | @Override
method onVideoPause (line 275) | @Override
method onVideoMute (line 280) | @Override
method getCreativeType (line 288) | public static String getCreativeType(int code) {
method showNativeAd (line 305) | private void showNativeAd(NativeAd nativeAd) {
method sendEvent (line 327) | private void sendEvent(Manager.Event event, @Nullable WritableMap wm) {
method initNativeAdView (line 332) | private void initNativeAdView() {
method setViewOptions (line 392) | void setViewOptions(ReadableMap rm) {
method toRoundedColor (line 399) | Drawable toRoundedColor(int color, Float radius) {
method updateViewOptions (line 407) | void updateViewOptions() {
method getLayoutIdFromMediaType (line 452) | private int getLayoutIdFromMediaType(NativeMediaType mediaType) {
method setDisplayForm (line 459) | public void setDisplayForm(ReadableMap displayForm) {
method dislikeAd (line 469) | public void dislikeAd(String description) {
method destroy (line 475) | public void destroy() {
method gotoWhyThisAdPage (line 479) | public void gotoWhyThisAdPage() {
method setAllowCustomClick (line 483) | public void setAllowCustomClick() {
method showAdvertiserInfoDialog (line 489) | public void showAdvertiserInfoDialog(boolean showWhyThisAd) {
method hideAdvertiserInfoDialog (line 493) | public void hideAdvertiserInfoDialog() {
method showPrivacyPolicy (line 496) | public void showPrivacyPolicy() {
method showPermissionPage (line 501) | public void showPermissionPage() {
method showAppDetailPage (line 506) | public void showAppDetailPage() {
method recordClickEvent (line 512) | public void recordClickEvent() {
method recordImpressionEvent (line 518) | public void recordImpressionEvent(ReadableMap impressionEvent) {
method setAdParam (line 524) | public void setAdParam(ReadableMap adParamReadableMap) {
type AdTextStyle (line 528) | interface AdTextStyle {
class Manager (line 535) | public static class Manager extends ViewGroupManager<HMSAdsNativeView> {
method Manager (line 538) | public Manager(ReactApplicationContext reactContext) {
type Event (line 542) | public enum Event implements ReactUtils.NamedEvent {
method Event (line 556) | Event(String nativeEventName) {
method getName (line 560) | public String getName() {
type Command (line 565) | public enum Command implements ReactUtils.NamedCommand {
method Command (line 581) | Command(String nativeCommandName) {
method getName (line 585) | public String getName() {
method getName (line 590) | @NonNull
method createViewInstance (line 596) | @NonNull
method getExportedCustomDirectEventTypeConstants (line 603) | @Nullable
method getCommandsMap (line 609) | @Nullable
method receiveCommand (line 615) | @Override
method setAdParam (line 687) | @ReactProp(name = "adParam")
method setDisplayForm (line 693) | @ReactProp(name = "displayForm")
method setNativeConfig (line 699) | @ReactProp(name = "nativeConfig")
method setViewOptions (line 705) | @ReactProp(name = "viewOptions")
class NativeAdViewOptions (line 712) | public static class NativeAdViewOptions {
method build (line 729) | public NativeAdViewOptions build(ReadableMap rm) {
method createAdTextStyle (line 757) | Map<String, Object> createAdTextStyle(int visibility, float fontSize...
method createAdTextStyle (line 765) | Map<String, Object> createAdTextStyle(int visibility, float fontSize...
method buildAdTextStyle (line 774) | void buildAdTextStyle(Map<String, Object> adTextStyle, ReadableMap r...
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsOaidModule.java
class HMSAdsOaidModule (line 40) | public class HMSAdsOaidModule extends ReactContextBaseJavaModule {
method HMSAdsOaidModule (line 47) | HMSAdsOaidModule(ReactApplicationContext reactContext) {
method getName (line 53) | @NonNull
method getAdvertisingIdInfo (line 59) | @ReactMethod
method verifyAdvertisingId (line 79) | @ReactMethod
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPackage.java
class HMSAdsPackage (line 29) | public class HMSAdsPackage implements ReactPackage {
method createNativeModules (line 30) | @NonNull
method createViewManagers (line 43) | @NonNull
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsRewardAdModule.java
class HMSAdsRewardAdModule (line 49) | public class HMSAdsRewardAdModule extends ReactContextBaseJavaModule {
type RewardMediaType (line 78) | public enum RewardMediaType {
method RewardMediaType (line 83) | RewardMediaType(String value) {
method getValue (line 87) | public String getValue() {
type Event (line 92) | public enum Event {
method Event (line 102) | Event(String rewardEventName) {
method getName (line 106) | public String getName() {
method getName (line 111) | @NonNull
method sendEvent (line 117) | private void sendEvent(Event event, @Nullable WritableMap wm) {
method HMSAdsRewardAdModule (line 122) | HMSAdsRewardAdModule(ReactApplicationContext reactContext) {
method getWritableMapFromErrorCode (line 202) | private WritableMap getWritableMapFromErrorCode(int errorCode) {
method setAdParam (line 209) | @ReactMethod
method loadWithAdId (line 216) | @ReactMethod
method setAdId (line 223) | @ReactMethod
method setData (line 230) | @ReactMethod
method setUserId (line 237) | @ReactMethod
method pause (line 244) | @ReactMethod
method resume (line 257) | @ReactMethod
method destroy (line 270) | @ReactMethod
method setVerifyConfig (line 283) | @ReactMethod
method loadAd (line 297) | @ReactMethod
method show (line 330) | @ReactMethod
method isLoaded (line 353) | @ReactMethod
method setVideoConfiguration (line 360) | @ReactMethod
method getErrorMessage (line 385) | static String getErrorMessage(int errorCode) {
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsSplashActivity.java
class HMSAdsSplashActivity (line 47) | public class HMSAdsSplashActivity extends ReactActivity {
method pause (line 81) | static void pause(final Promise promise) {
method resume (line 90) | static void resume(final Promise promise) {
method destroy (line 99) | static void destroy(final Promise promise) {
method isLoading (line 108) | static void isLoading(final Promise promise) {
method isLoaded (line 116) | static void isLoaded(final Promise promise) {
method getBiddingInfo (line 124) | static void getBiddingInfo(final Promise promise){
method handleMessage (line 148) | @Override
method onCreate (line 157) | @Override
method loadAd (line 175) | private void loadAd() {
method jump (line 218) | private void jump() {
method onStop (line 229) | @Override
method onRestart (line 240) | @Override
method onDestroy (line 247) | @Override
method onPause (line 255) | @Override
method onResume (line 263) | @Override
class SplashAdDisplayListenerInner (line 271) | private static class SplashAdDisplayListenerInner extends SplashAdDisp...
method onAdClick (line 272) | @Override
method onAdShowed (line 277) | @Override
class SplashAdLoadListener (line 283) | private class SplashAdLoadListener extends SplashView.SplashAdLoadList...
method onAdLoaded (line 284) | @Override
method onAdFailedToLoad (line 289) | @Override
method onAdDismissed (line 295) | @Override
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsSplashAdModule.java
class HMSAdsSplashAdModule (line 43) | public class HMSAdsSplashAdModule extends ReactContextBaseJavaModule {
type SplashMediaType (line 60) | public enum SplashMediaType {
method SplashMediaType (line 66) | SplashMediaType(String value) {
method getValue (line 70) | public String getValue() {
type Event (line 75) | public enum Event {
method Event (line 84) | Event(String splashEventName) {
method getName (line 88) | public String getName() {
method getName (line 93) | @NonNull
method HMSAdsSplashAdModule (line 99) | HMSAdsSplashAdModule(ReactApplicationContext reactContext) {
method initContext (line 105) | private static void initContext(final ReactApplicationContext reactCon...
method sendEvent (line 111) | static void sendEvent(Event event, @Nullable WritableMap wm) {
method setAdId (line 116) | @ReactMethod
method setAdParam (line 123) | @ReactMethod
method setOrientation (line 130) | @ReactMethod
method setSloganResource (line 137) | @ReactMethod
method setWideSloganResource (line 144) | @ReactMethod
method setLogoResource (line 151) | @ReactMethod
method setLogoText (line 158) | @ReactMethod
method setCopyrightText (line 165) | @ReactMethod
method setMediaNameResource (line 172) | @ReactMethod
method setAudioFocusType (line 179) | @ReactMethod
method pause (line 186) | @ReactMethod
method resume (line 193) | @ReactMethod
method destroy (line 200) | @ReactMethod
method isLoading (line 207) | @ReactMethod
method isLoaded (line 214) | @ReactMethod
method getBiddingInfo (line 221) | @ReactMethod
method show (line 228) | @ReactMethod
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsVastModule.java
class HMSAdsVastModule (line 49) | public class HMSAdsVastModule extends ReactContextBaseJavaModule {
method HMSAdsVastModule (line 54) | HMSAdsVastModule(ReactContext reactContext) {
method getName (line 60) | @NonNull
method getConstants (line 66) | @Nullable
method init (line 112) | @ReactMethod
method getVastSdkConfiguration (line 120) | @ReactMethod
method getEventProcessor (line 128) | @ReactMethod
method updateSdkServerConfig (line 148) | @ReactMethod
method userAcceptAdLicense (line 156) | @ReactMethod
method getViewInfo (line 164) | @ReactMethod
method getAdContentByCreative (line 183) | private AdContent getAdContentByCreative(CreativeResource playerResour...
method getVastErrorMessages (line 194) | public static String getVastErrorMessages(int errorCode) {
method getVastPlayStateChangedMessage (line 209) | public static String getVastPlayStateChangedMessage(int playState) {
method getVastScreenStateChangedMessage (line 224) | public static String getVastScreenStateChangedMessage(int screenState) {
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsVastView.java
class HMSAdsVastView (line 57) | public class HMSAdsVastView extends LinearLayout implements LifecycleEve...
method HMSAdsVastView (line 83) | public HMSAdsVastView(Context context) {
method HMSAdsVastView (line 91) | public HMSAdsVastView(Context context, AttributeSet attrs, int defStyl...
method HMSAdsVastView (line 95) | public HMSAdsVastView(Context context, AttributeSet attrs) {
method requestLayout (line 99) | @Override
method sendEvent (line 105) | private void sendEvent(HMSAdsVastView.Manager.Event event, @Nullable W...
method loadAd (line 110) | void loadAd() {
method showAd (line 161) | void showAd() {
method onPlayStateChanged (line 181) | @Override
method onVolumeChanged (line 187) | @Override
method onScreenViewChanged (line 195) | @Override
method onProgressChanged (line 201) | @Override
method onSuccess (line 208) | @Override
method onFailed (line 214) | @Override
method playAdReady (line 220) | @Override
method playAdFinish (line 227) | @Override
method onBufferStart (line 234) | @Override
method onBufferEnd (line 241) | @Override
type CreativeMatchType (line 249) | public enum CreativeMatchType {
method CreativeMatchType (line 259) | CreativeMatchType(int value) {
method getValue (line 263) | public int getValue() {
method forValue (line 267) | public static HMSAdsVastView.CreativeMatchType forValue(int s) {
method setAdParam (line 285) | public void setAdParam(ReadableMap adParamReadableMap) {
method setIsCustomVideoPlayer (line 289) | public void setIsCustomVideoPlayer(boolean isCustomVideoPlayer) {
method setIsAdLoadWithAdsData (line 293) | public void setIsAdLoadWithAdsData(boolean isAdLoadWithAdsData) {
method setIsTestAd (line 297) | public void setIsTestAd(boolean isTestAd) {
method setPlayerConfig (line 301) | public void setPlayerConfig(ReadableMap adPlayerConfigsReadableMap) {
method toggleMuteState (line 305) | public void toggleMuteState(boolean isMute) {
method startOrPause (line 313) | public void startOrPause() {
method getVideoControllerInfo (line 321) | public WritableMap getVideoControllerInfo() {
method resumeAd (line 333) | private void resumeAd() {
method pauseAd (line 337) | private void pauseAd() {
method releaseAd (line 341) | private void releaseAd() {
method onHostResume (line 349) | @Override
method onHostPause (line 355) | @Override
method onHostDestroy (line 361) | @Override
class Manager (line 367) | public static class Manager extends SimpleViewManager<HMSAdsVastView> {
method Manager (line 370) | public Manager(ReactApplicationContext reactContext) {
type Event (line 374) | public enum Event implements ReactUtils.NamedEvent {
method Event (line 390) | Event(String nativeEventName) {
method getName (line 394) | public String getName() {
type Command (line 399) | public enum Command implements ReactUtils.NamedCommand {
method Command (line 410) | Command(String nativeCommandName) {
method getName (line 414) | public String getName() {
method getName (line 419) | @NonNull
method createViewInstance (line 425) | @NonNull
method getExportedCustomDirectEventTypeConstants (line 432) | @Nullable
method getCommandsMap (line 438) | @Nullable
method receiveCommand (line 444) | @Override
method setAdParam (line 485) | @ReactProp(name = "adParam")
method setIsCustomVideoPlayer (line 491) | @ReactProp(name = "isCustomVideoPlayer")
method setIsAdLoadWithAdsData (line 497) | @ReactProp(name = "isAdLoadWithAdsData")
method setPlayerConfigs (line 503) | @ReactProp(name = "playerConfigs")
method setIsTestAd (line 509) | @ReactProp(name = "isTestAd")
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/custome/CustomVideoController.java
class CustomVideoController (line 29) | public class CustomVideoController extends BaseVideoController{
method CustomVideoController (line 40) | public CustomVideoController(ReactContext context) {
method CustomVideoController (line 44) | public CustomVideoController(ReactContext context, AttributeSet attrs) {
method CustomVideoController (line 48) | public CustomVideoController(ReactContext context, AttributeSet attrs,...
method initView (line 54) | private void initView(ReactContext context) {
method initMuteState (line 67) | private void initMuteState() {
method getLayoutId (line 72) | @Override
method isMute (line 77) | @Override
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/logger/HMSLogger.java
class HMSLogger (line 36) | public final class HMSLogger {
method HMSLogger (line 77) | private HMSLogger(final Context context) {
method getInstance (line 96) | public static synchronized HMSLogger getInstance(final Context context) {
method getContext (line 112) | private synchronized Context getContext() {
method enableLogger (line 119) | public synchronized void enableLogger() {
method disableLogger (line 127) | public synchronized void disableLogger() {
method startMethodExecutionTimer (line 137) | public synchronized void startMethodExecutionTimer(final String method...
method sendSingleEvent (line 146) | public synchronized void sendSingleEvent(final String methodName) {
method sendSingleEvent (line 156) | public synchronized void sendSingleEvent(final String methodName, fina...
method sendPeriodicEvent (line 165) | public synchronized void sendPeriodicEvent(final String methodName) {
method sendPeriodicEvent (line 175) | public synchronized void sendPeriodicEvent(final String methodName, fi...
method sendEvent (line 186) | private synchronized void sendEvent(final String eventId, final String...
method getAppId (line 209) | private synchronized String getAppId() {
method getAppVersionName (line 224) | private synchronized String getAppVersionName(final String packageName) {
method getNetworkType (line 238) | private synchronized String getNetworkType() {
method setupEventMap (line 264) | private synchronized void setupEventMap(final Map<String, Object> map) {
method putToSingleEventMap (line 282) | private synchronized void putToSingleEventMap(final String methodName,...
method putToPeriodicEventMap (line 299) | private synchronized void putToPeriodicEventMap(final String methodNam...
method createNetworkTypeMap (line 335) | private synchronized Map<Integer, String> createNetworkTypeMap() {
method increaseResultCodeCount (line 368) | private synchronized void increaseResultCodeCount(final String methodN...
method increaseMapValue (line 381) | private synchronized void increaseMapValue(final String key, final Map...
method getOrDefault (line 395) | private synchronized <K, V> V getOrDefault(final Map<K, V> map, final ...
method putIfAbsent (line 408) | private synchronized <K, V> void putIfAbsent(final Map<K, V> map, fina...
method objectCast (line 423) | private synchronized <S, D> D objectCast(final S source, final Class<D...
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/utils/CommonUtils.java
class CommonUtils (line 23) | public class CommonUtils {
method getIntegerExtra (line 26) | public static int getIntegerExtra(Intent intent, String name, int defa...
method getStringExtra (line 35) | public static String getStringExtra(Intent intent, String name) {
method getBundleExtra (line 44) | public static Bundle getBundleExtra(Intent intent, String name) {
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/utils/Constants.java
type Constants (line 19) | public interface Constants {
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/utils/ReactUtils.java
class ReactUtils (line 77) | public class ReactUtils {
type Mapper (line 78) | public interface Mapper<T, R> {
method map (line 85) | R map(T in);
type NamedEvent (line 88) | public interface NamedEvent {
method getName (line 94) | String getName();
type NamedCommand (line 97) | public interface NamedCommand {
method getName (line 103) | String getName();
method mapReadableArray (line 106) | public static <R> List<R> mapReadableArray(ReadableArray array, Mapper...
method mapList (line 114) | public static <T> WritableArray mapList(List<T> list, Mapper<T, Writab...
method hasValidKey (line 125) | public static boolean hasValidKey(ReadableMap rm, String key, Readable...
method getWritableMapFromErrorCode (line 129) | public static WritableMap getWritableMapFromErrorCode(int errorCode) {
method getWritableMapFromVastErrorCode (line 136) | public static WritableMap getWritableMapFromVastErrorCode(int response...
method getWritableMapFromVastPlayState (line 143) | public static WritableMap getWritableMapFromVastPlayState(int playStat...
method getWritableMapFromVastScreenState (line 150) | public static WritableMap getWritableMapFromVastScreenState(int screen...
method getWritableMapFromVastProgressListener (line 157) | public static WritableMap getWritableMapFromVastProgressListener(long ...
method getWritableMapFromReward (line 166) | public static WritableMap getWritableMapFromReward(Reward obj) {
method getWritableMapFromRewardAd (line 176) | public static WritableMap getWritableMapFromRewardAd(RewardAd obj) {
method getWritableMapFromInterstitialAd (line 194) | public static WritableMap getWritableMapFromInterstitialAd(Interstitia...
method getWritableMapFromInstreamAd (line 210) | public static WritableMap getWritableMapFromInstreamAd(InstreamAd obj) {
method getWritableMapFromNativeAd (line 239) | public static WritableMap getWritableMapFromNativeAd(NativeAd obj) {
method getWritableMapFromDislikeAdReason (line 281) | public static WritableMap getWritableMapFromDislikeAdReason(DislikeAdR...
method getWritableArrayAdvertiserInfo (line 289) | public static WritableArray getWritableArrayAdvertiserInfo(List<Advert...
method getWritableMapFromVideoOperator (line 303) | public static WritableMap getWritableMapFromVideoOperator(VideoOperato...
method getWritableMapFromAdProvider (line 315) | public static WritableMap getWritableMapFromAdProvider(AdProvider obj) {
method getWritableMapFromAdSize (line 326) | public static WritableMap getWritableMapFromAdSize(AdSize obj) {
method getWritableMapFromBannerAdSizeWithContext (line 335) | public static WritableMap getWritableMapFromBannerAdSizeWithContext(Ba...
method getBannerAdSizeFromReadableMap (line 349) | public static BannerAdSize getBannerAdSizeFromReadableMap(Context cont...
method getAdSizeFromReadableMap (line 376) | public static AdSize getAdSizeFromReadableMap(ReadableMap rm) {
method getWritableMapFromVideoConfiguration (line 384) | public static WritableMap getWritableMapFromVideoConfiguration(VideoCo...
method getWritableMapFromNativeAdConfiguration (line 396) | public static WritableMap getWritableMapFromNativeAdConfiguration(Nati...
method getWritableMapFromNativeAdLoader (line 410) | public static WritableMap getWritableMapFromNativeAdLoader(NativeAdLoa...
method getWritableMapFromAdvertisingIdClientInfo (line 418) | public static WritableMap getWritableMapFromAdvertisingIdClientInfo(Ad...
method getWritableMapFromReferrerDetails (line 427) | public static WritableMap getWritableMapFromReferrerDetails(ReferrerDe...
method getWritableMapFromRequestOptions (line 440) | public static WritableMap getWritableMapFromRequestOptions(RequestOpti...
method getRequestOptionsFromReadableMap (line 465) | public static RequestOptions getRequestOptionsFromReadableMap(Readable...
method getAdParamFromReadableMap (line 502) | public static AdParam getAdParamFromReadableMap(ReadableMap rm) {
method getWritableMapFromAdParamBundle (line 560) | public static WritableMap getWritableMapFromAdParamBundle(Bundle obj) {
method getVastSdkConfigurationFromReadableMap (line 597) | public static VastSdkConfiguration getVastSdkConfigurationFromReadable...
method getWritableMapFromVastSdkConfiguration (line 634) | public static WritableMap getWritableMapFromVastSdkConfiguration(VastS...
method fromReadableMapToLocation (line 651) | public static Location fromReadableMapToLocation(ReadableMap rm) {
method fromReadableMapToBiddingParam (line 664) | public static BiddingParam fromReadableMapToBiddingParam(ReadableMap r...
method fromReadableMapToBiddingParamMap (line 689) | public static Map<String, BiddingParam> fromReadableMapToBiddingParamM...
method fromReadableArrayToListInteger (line 721) | public static List<Integer> fromReadableArrayToListInteger(ReadableArr...
method getExportedCustomDirectEventTypeConstantsFromEvents (line 732) | public static Map<String, Object> getExportedCustomDirectEventTypeCons...
method getCommandsMap (line 740) | public static Map<String, Integer> getCommandsMap(NamedCommand[] comma...
method getBundleFromReadableMap (line 748) | public static Bundle getBundleFromReadableMap(ReadableMap rm) {
method getVastRequestOptionsFromReadableMap (line 756) | public static com.huawei.hms.ads.vast.openalliance.ad.beans.parameter....
method getPlayerConfigsFromReadableMap (line 789) | public static PlayerConfig getPlayerConfigsFromReadableMap(ReadableMap...
method toCreativeMatchType (line 808) | public static CreativeMatchStrategy.CreativeMatchType toCreativeMatchT...
method getLinearAdSlotFromReadableMap (line 826) | public static LinearAdSlot getLinearAdSlotFromReadableMap(ReadableMap ...
method getWritableMapFromPlayerConfig (line 860) | public static WritableMap getWritableMapFromPlayerConfig(PlayerConfig ...
method getWritableMapFromVastAdPlayerConfigs (line 873) | public static WritableMap getWritableMapFromVastAdPlayerConfigs(ReactC...
method getWritableMapFromCreativeMatchTStrategy (line 886) | public static WritableMap getWritableMapFromCreativeMatchTStrategy(Cre...
method getWritableMapFromLinearAdSlot (line 901) | public static WritableMap getWritableMapFromLinearAdSlot(LinearAdSlot ...
method getWritableMapFromVastRequestOptions (line 920) | public static WritableMap getWritableMapFromVastRequestOptions(
method getWritableMapFromAdsData (line 950) | public static WritableMap getWritableMapFromAdsData(AdsData obj) {
method getWritableMapFromLinearCreative (line 961) | public static WritableMap getWritableMapFromLinearCreative(LinearCreat...
method getWritableMapFromCreativeExtensionMap (line 977) | public static WritableMap getWritableMapFromCreativeExtensionMap(Map<S...
FILE: react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/utils/ResourceUtils.java
class ResourceUtils (line 24) | public class ResourceUtils {
method getStringResourceIdFromContext (line 27) | public static int getStringResourceIdFromContext(@NonNull Context cont...
method getLogoResourceIdFromContext (line 35) | public static int getLogoResourceIdFromContext(@NonNull Context contex...
method getLayoutResourceIdFromContext (line 45) | public static int getLayoutResourceIdFromContext(@NonNull Context cont...
FILE: react-native-hms-ads/example/App.js
class Banner (line 59) | class Banner extends React.Component {
method constructor (line 60) | constructor(props) {
method render (line 70) | render() {
class Instream (line 178) | class Instream extends React.Component {
method constructor (line 179) | constructor(props) {
method render (line 184) | render() {
class Native (line 347) | class Native extends React.Component {
method constructor (line 348) | constructor(props) {
method render (line 362) | render() {
class Vast (line 560) | class Vast extends React.Component {
method constructor (line 561) | constructor(props) {
method render (line 564) | render() {
class Interstitial (line 682) | class Interstitial extends React.Component {
method constructor (line 683) | constructor(props) {
method componentDidMount (line 696) | componentDidMount() {
method componentWillUnmount (line 736) | componentWillUnmount() {
method render (line 740) | render() {
class Reward (line 820) | class Reward extends React.Component {
method constructor (line 821) | constructor(props) {
method componentDidMount (line 833) | componentDidMount() {
method componentWillUnmount (line 865) | componentWillUnmount() {
method render (line 869) | render() {
class Splash (line 929) | class Splash extends React.Component {
method constructor (line 930) | constructor(props) {
method componentDidMount (line 940) | componentDidMount() {
method componentWillUnmount (line 960) | componentWillUnmount() {
method render (line 964) | render() {
class AdvertisingId (line 1014) | class AdvertisingId extends React.Component {
method constructor (line 1015) | constructor(props) {
method render (line 1027) | render() {
class InstallReferrer (line 1092) | class InstallReferrer extends React.Component {
method constructor (line 1093) | constructor(props) {
method componentDidMount (line 1101) | componentDidMount() {
method componentWillUnmount (line 1110) | componentWillUnmount() {
method render (line 1114) | render() {
class Consent (line 1187) | class Consent extends React.Component {
method render (line 1188) | render() {
class RequestOptions (line 1221) | class RequestOptions extends React.Component {
method render (line 1222) | render() {
class App (line 1359) | class App extends React.Component {
method constructor (line 1360) | constructor(props) {
method componentDidMount (line 1365) | componentDidMount() {
method render (line 1368) | render() {
FILE: react-native-hms-ads/example/android/app/src/main/java/com/huawei/hms/rn/ads/demo/MainActivity.java
class MainActivity (line 21) | public class MainActivity extends ReactActivity {
method getMainComponentName (line 22) | @Override
FILE: react-native-hms-ads/example/android/app/src/main/java/com/huawei/hms/rn/ads/demo/MainApplication.java
class MainApplication (line 29) | public class MainApplication extends Application implements ReactApplica...
method getUseDeveloperSupport (line 32) | @Override
method getPackages (line 37) | @Override
method getJSMainModuleName (line 44) | @Override
method getReactNativeHost (line 50) | @Override
method onCreate (line 55) | @Override
FILE: react-native-hms-ads/src/Banner.js
class HMSAdsBanner (line 26) | class HMSAdsBanner extends Component {
method constructor (line 27) | constructor() {
method componentDidMount (line 31) | componentDidMount() {
method render (line 79) | render() {
FILE: react-native-hms-ads/src/Instream.js
class HMSAdsInstream (line 27) | class HMSAdsInstream extends Component {
method constructor (line 28) | constructor() {
method componentDidMount (line 32) | componentDidMount() {
method render (line 136) | render() {
FILE: react-native-hms-ads/src/Native.js
class HMSAdsNative (line 27) | class HMSAdsNative extends Component {
method constructor (line 28) | constructor() {
method componentDidMount (line 32) | componentDidMount() {
method render (line 143) | render() {
FILE: react-native-hms-ads/src/VastView.js
class HMSVastView (line 27) | class HMSVastView extends Component {
method constructor (line 28) | constructor() {
method componentDidMount (line 32) | componentDidMount() {
method componentWillUnmount (line 40) | componentWillUnmount() {
method render (line 92) | render() {
FILE: react-native-hms-ads/src/index.d.ts
type RewardMediaTypes (line 21) | enum RewardMediaTypes {
type InterstitialMediaTypes (line 25) | enum InterstitialMediaTypes {
type SplashMediaTypes (line 30) | enum SplashMediaTypes {
type BannerMediaTypes (line 35) | enum BannerMediaTypes {
type NativeAdAssetNames (line 39) | enum NativeAdAssetNames {
type ContentClassification (line 57) | enum ContentClassification {
type NonPersonalizedAd (line 69) | enum NonPersonalizedAd {
type TagForChild (line 78) | enum TagForChild {
type UnderAge (line 88) | enum UnderAge {
type Gender (line 98) | enum Gender {
type BannerAdSizes (line 108) | enum BannerAdSizes {
type CallMode (line 124) | enum CallMode {
type DebugNeedConsent (line 132) | enum DebugNeedConsent {
type ConsentStatus (line 141) | enum ConsentStatus {
type ChoicesPosition (line 151) | enum ChoicesPosition {
type Direction (line 163) | enum Direction {
type AudioFocusType (line 173) | enum AudioFocusType {
type NativeMediaTypes (line 182) | enum NativeMediaTypes {
type ScaleType (line 192) | enum ScaleType {
type DetailedCreativeTypes (line 207) | enum DetailedCreativeTypes {
type ActivateStyle (line 221) | enum ActivateStyle {
type AutoPlayNetType (line 230) | enum AutoPlayNetType {
type CreativeMatchType (line 240) | enum CreativeMatchType {
type Orientation (line 252) | enum Orientation {
type RequestOptions (line 260) | interface RequestOptions {
type BiddingParam (line 320) | interface BiddingParam {
type BiddingInfo (line 340) | interface BiddingInfo {
type AdProvider (line 365) | interface AdProvider {
type ConsentResult (line 390) | interface ConsentResult {
type Consent (line 410) | interface Consent {
type AdvertisingIdClientInfo (line 435) | interface AdvertisingIdClientInfo {
method getAdvertisingIdInfo (line 454) | getAdvertisingIdInfo(callMode: CallMode): Promise<AdvertisingIdClientInf...
type AdParam (line 493) | interface AdParam {
type Reward (line 587) | interface Reward {
type RewardAd (line 602) | interface RewardAd {
method setAdId (line 963) | setAdId(adSlotId: string): Promise<null>;,
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeBannerView.java
class HMSAdsPrimeBannerView (line 41) | public class HMSAdsPrimeBannerView extends BannerView {
type BannerMediaType (line 46) | public enum BannerMediaType {
method BannerMediaType (line 51) | BannerMediaType(String value) {
method getValue (line 55) | public String getValue() {
type BannerSize (line 60) | public enum BannerSize {
method BannerSize (line 73) | BannerSize(String value) {
method getValue (line 77) | public String getValue() {
method forValue (line 81) | public static BannerSize forValue(String s) {
method HMSAdsPrimeBannerView (line 105) | public HMSAdsPrimeBannerView(final Context context) {
method HMSAdsPrimeBannerView (line 109) | public HMSAdsPrimeBannerView(final ThemedReactContext context) {
method requestLayout (line 150) | @Override
method sendEvent (line 160) | private void sendEvent(Manager.Event event, @Nullable WritableMap wm) {
method loadAd (line 165) | void loadAd() {
method setAdParam (line 169) | public void setAdParam(ReadableMap adParamReadableMap) {
class Manager (line 173) | public static class Manager extends ViewGroupManager<HMSAdsPrimeBanner...
method Manager (line 177) | public Manager(ReactApplicationContext reactContext) {
type Event (line 182) | public enum Event implements ReactUtils.NamedEvent {
method Event (line 193) | Event(String bannerEventName) {
method getName (line 197) | public String getName() {
type Command (line 202) | public enum Command implements ReactUtils.NamedCommand {
method Command (line 211) | Command(String bannerCommandName) {
method getName (line 215) | public String getName() {
method getName (line 220) | @NonNull
method createViewInstance (line 226) | @NonNull
method getCommandsMap (line 233) | @Nullable
method receiveCommand (line 239) | @Override
method getExportedCustomDirectEventTypeConstants (line 275) | @Nullable
method setAdParam (line 281) | @ReactProp(name = "adParam")
method setBannerAdSize (line 287) | @ReactProp(name = "bannerAdSize")
method setAdId (line 293) | @ReactProp(name = "adId")
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeInstallReferrerModule.java
class HMSAdsPrimeInstallReferrerModule (line 44) | public class HMSAdsPrimeInstallReferrerModule extends ReactContextBaseJa...
type Event (line 51) | public enum Event {
method Event (line 57) | Event(String name) {
method getName (line 61) | public String getName() {
method HMSAdsPrimeInstallReferrerModule (line 66) | HMSAdsPrimeInstallReferrerModule(ReactApplicationContext reactContext) {
method getName (line 72) | @NonNull
method onInstallReferrerSetupFinished (line 78) | @Override
method onInstallReferrerServiceDisconnected (line 86) | @Override
method sendEvent (line 91) | void sendEvent(Event event, @Nullable WritableMap wm) {
method startConnection (line 96) | @ReactMethod
method endConnection (line 115) | @ReactMethod
method getReferrerDetails (line 130) | @ReactMethod
method isReady (line 153) | @ReactMethod
method getResponseMessage (line 164) | private String getResponseMessage(int responseCode) {
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeInstreamView.java
class HMSAdsPrimeInstreamView (line 51) | public class HMSAdsPrimeInstreamView extends InstreamView
method HMSAdsPrimeInstreamView (line 70) | public HMSAdsPrimeInstreamView(final Context context) {
method HMSAdsPrimeInstreamView (line 74) | public HMSAdsPrimeInstreamView(final ThemedReactContext context) {
method requestLayout (line 83) | @Override
method onClick (line 93) | @Override
method onMute (line 98) | @Override
method onUnmute (line 103) | @Override
method onAdLoaded (line 108) | @Override
method onAdFailed (line 128) | @Override
method onSegmentMediaChange (line 133) | @Override
method onMediaProgress (line 138) | @Override
method onMediaStart (line 146) | @Override
method onMediaPause (line 153) | @Override
method onMediaStop (line 160) | @Override
method onMediaCompletion (line 167) | @Override
method onMediaError (line 174) | @Override
method sendEvent (line 183) | private void sendEvent(Manager.Event event, @Nullable WritableMap wm) {
method loadAd (line 188) | public void loadAd() {
method register (line 196) | public void register() {
method setAdParam (line 200) | public void setAdParam(ReadableMap rm) {
method setAdId (line 204) | public void setAdId(String adId) {
method setTotalDuration (line 208) | public void setTotalDuration(int totalDuration) {
method setMaxCount (line 212) | public void setMaxCount(int maxCount) {
class Manager (line 216) | public static class Manager extends ViewGroupManager<HMSAdsPrimeInstre...
method Manager (line 219) | public Manager(ReactApplicationContext reactContext) {
type Event (line 223) | public enum Event implements ReactUtils.NamedEvent {
method Event (line 239) | Event(String instreamEventName) {
method getName (line 243) | public String getName() {
method getExportedCustomDirectEventTypeConstants (line 248) | @Nullable
type Command (line 254) | public enum Command implements ReactUtils.NamedCommand {
method Command (line 270) | Command(String instreamCommandName) {
method getName (line 274) | public String getName() {
method getName (line 279) | @NonNull
method createViewInstance (line 285) | @NonNull
method getCommandsMap (line 292) | @Nullable
method receiveCommand (line 298) | @Override
method setAdParam (line 379) | @ReactProp(name = "adParam")
method setAdId (line 385) | @ReactProp(name = "adId")
method setMaxCount (line 391) | @ReactProp(name = "maxCount")
method setTotalDuration (line 397) | @ReactProp(name = "totalDuration")
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeInterstitialAdModule.java
class HMSAdsPrimeInterstitialAdModule (line 44) | public class HMSAdsPrimeInterstitialAdModule extends ReactContextBaseJav...
type InterstitialMediaType (line 57) | public enum InterstitialMediaType {
method InterstitialMediaType (line 63) | InterstitialMediaType(String value) {
method getValue (line 67) | public String getValue() {
type Event (line 72) | public enum Event {
method Event (line 85) | Event(String interstitialEventName) {
method getName (line 89) | public String getName() {
method getName (line 94) | @NonNull
method HMSAdsPrimeInterstitialAdModule (line 100) | HMSAdsPrimeInterstitialAdModule(ReactApplicationContext reactContext) {
method sendEvent (line 177) | private void sendEvent(Event event, @Nullable WritableMap wm) {
method setAdId (line 182) | @ReactMethod
method setAdParam (line 189) | @ReactMethod
method loadAd (line 196) | @ReactMethod
method show (line 212) | @ReactMethod
method setVideoConfiguration (line 227) | @ReactMethod
method isLoaded (line 252) | @ReactMethod
method isLoading (line 259) | @ReactMethod
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeModule.java
class HMSAdsPrimeModule (line 61) | public class HMSAdsPrimeModule extends ReactContextBaseJavaModule implem...
method HMSAdsPrimeModule (line 68) | HMSAdsPrimeModule(ReactApplicationContext reactContext) {
type CallMode (line 74) | public enum CallMode {
method CallMode (line 80) | CallMode(String value) {
method getValue (line 84) | public String getValue() {
method forValue (line 88) | public static CallMode forValue(String s) {
method getConstants (line 96) | @Nullable
method onSuccess (line 249) | @Override
method onFail (line 264) | @Override
method getName (line 271) | @NonNull
method disableLogger (line 277) | @ReactMethod
method enableLogger (line 283) | @ReactMethod
method init (line 289) | @ReactMethod
method getSDKVersion (line 298) | @ReactMethod
method appInstalledNotify (line 306) | @ReactMethod
method getRequestOptions (line 319) | @ReactMethod
method setRequestOptions (line 329) | @ReactMethod
method setConsent (line 339) | @ReactMethod
method setConsentString (line 360) | @ReactMethod
method checkConsent (line 366) | @ReactMethod
method getViewInfo (line 374) | @ReactMethod
method getErrorMessage (line 418) | public static String getErrorMessage(int errorCode) {
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeNativeView.java
class HMSAdsPrimeNativeView (line 63) | public class HMSAdsPrimeNativeView extends LinearLayout {
type NativeMediaType (line 114) | public enum NativeMediaType {
method NativeMediaType (line 121) | NativeMediaType(String value) {
method getValue (line 125) | public String getValue() {
method forValue (line 129) | public static NativeMediaType forValue(String s) {
method HMSAdsPrimeNativeView (line 141) | public HMSAdsPrimeNativeView(Context context) {
method requestLayout (line 149) | @Override
method setupInitialConfigurations (line 155) | private void setupInitialConfigurations() {
method loadAd (line 193) | void loadAd() {
method setVideoConfiguration (line 199) | void setVideoConfiguration(ReadableMap videoConfiguration) {
method setNativeAdConfiguration (line 223) | void setNativeAdConfiguration(ReadableMap nativeAdConfiguration) {
method onVideoStart (line 259) | @Override
method onVideoPlay (line 264) | @Override
method onVideoEnd (line 269) | @Override
method onVideoPause (line 274) | @Override
method onVideoMute (line 279) | @Override
method getCreativeType (line 287) | public static String getCreativeType(int code) {
method showNativeAd (line 304) | private void showNativeAd(NativeAd nativeAd) {
method sendEvent (line 326) | private void sendEvent(Manager.Event event, @Nullable WritableMap wm) {
method initNativeAdView (line 331) | private void initNativeAdView() {
method setViewOptions (line 391) | void setViewOptions(ReadableMap rm) {
method toRoundedColor (line 398) | Drawable toRoundedColor(int color, Float radius) {
method updateViewOptions (line 406) | void updateViewOptions() {
method getLayoutIdFromMediaType (line 451) | private int getLayoutIdFromMediaType(NativeMediaType mediaType) {
method setDisplayForm (line 458) | public void setDisplayForm(ReadableMap displayForm) {
method dislikeAd (line 468) | public void dislikeAd(String description) {
method destroy (line 474) | public void destroy() {
method gotoWhyThisAdPage (line 478) | public void gotoWhyThisAdPage() {
method setAllowCustomClick (line 482) | public void setAllowCustomClick() {
method showAdvertiserInfoDialog (line 488) | public void showAdvertiserInfoDialog(boolean showWhyThisAd) {
method hideAdvertiserInfoDialog (line 492) | public void hideAdvertiserInfoDialog() {
method showPrivacyPolicy (line 496) | public void showPrivacyPolicy() {
method showPermissionPage (line 501) | public void showPermissionPage() {
method showAppDetailPage (line 506) | public void showAppDetailPage() {
method recordClickEvent (line 512) | public void recordClickEvent() {
method recordImpressionEvent (line 518) | public void recordImpressionEvent(ReadableMap impressionEvent) {
method setAdParam (line 524) | public void setAdParam(ReadableMap adParamReadableMap) {
type AdTextStyle (line 528) | interface AdTextStyle {
class Manager (line 535) | public static class Manager extends ViewGroupManager<HMSAdsPrimeNative...
method Manager (line 538) | public Manager(ReactApplicationContext reactContext) {
type Event (line 542) | public enum Event implements ReactUtils.NamedEvent {
method Event (line 556) | Event(String nativeEventName) {
method getName (line 560) | public String getName() {
type Command (line 565) | public enum Command implements ReactUtils.NamedCommand {
method Command (line 581) | Command(String nativeCommandName) {
method getName (line 585) | public String getName() {
method getName (line 590) | @NonNull
method createViewInstance (line 596) | @NonNull
method getExportedCustomDirectEventTypeConstants (line 603) | @Nullable
method getCommandsMap (line 609) | @Nullable
method receiveCommand (line 615) | @Override
method setAdParam (line 687) | @ReactProp(name = "adParam")
method setDisplayForm (line 693) | @ReactProp(name = "displayForm")
method setNativeConfig (line 699) | @ReactProp(name = "nativeConfig")
method setViewOptions (line 705) | @ReactProp(name = "viewOptions")
class NativeAdViewOptions (line 712) | public static class NativeAdViewOptions {
method build (line 729) | public NativeAdViewOptions build(ReadableMap rm) {
method createAdTextStyle (line 757) | Map<String, Object> createAdTextStyle(int visibility, float fontSize...
method createAdTextStyle (line 765) | Map<String, Object> createAdTextStyle(int visibility, float fontSize...
method buildAdTextStyle (line 774) | void buildAdTextStyle(Map<String, Object> adTextStyle, ReadableMap r...
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeOaidModule.java
class HMSAdsPrimeOaidModule (line 40) | public class HMSAdsPrimeOaidModule extends ReactContextBaseJavaModule {
method HMSAdsPrimeOaidModule (line 47) | HMSAdsPrimeOaidModule(ReactApplicationContext reactContext) {
method getName (line 53) | @NonNull
method getAdvertisingIdInfo (line 59) | @ReactMethod
method verifyAdvertisingId (line 79) | @ReactMethod
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimePackage.java
class HMSAdsPrimePackage (line 29) | public class HMSAdsPrimePackage implements ReactPackage {
method createNativeModules (line 30) | @NonNull
method createViewManagers (line 43) | @NonNull
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeRewardAdModule.java
class HMSAdsPrimeRewardAdModule (line 49) | public class HMSAdsPrimeRewardAdModule extends ReactContextBaseJavaModule {
type RewardMediaType (line 78) | public enum RewardMediaType {
method RewardMediaType (line 83) | RewardMediaType(String value) {
method getValue (line 87) | public String getValue() {
type Event (line 92) | public enum Event {
method Event (line 102) | Event(String rewardEventName) {
method getName (line 106) | public String getName() {
method getName (line 111) | @NonNull
method sendEvent (line 117) | private void sendEvent(Event event, @Nullable WritableMap wm) {
method HMSAdsPrimeRewardAdModule (line 122) | HMSAdsPrimeRewardAdModule(ReactApplicationContext reactContext) {
method getWritableMapFromErrorCode (line 202) | private WritableMap getWritableMapFromErrorCode(int errorCode) {
method setAdParam (line 209) | @ReactMethod
method loadWithAdId (line 216) | @ReactMethod
method setAdId (line 223) | @ReactMethod
method setData (line 230) | @ReactMethod
method setUserId (line 237) | @ReactMethod
method pause (line 244) | @ReactMethod
method resume (line 257) | @ReactMethod
method destroy (line 270) | @ReactMethod
method setVerifyConfig (line 283) | @ReactMethod
method loadAd (line 297) | @ReactMethod
method show (line 330) | @ReactMethod
method isLoaded (line 353) | @ReactMethod
method setVideoConfiguration (line 360) | @ReactMethod
method getErrorMessage (line 385) | static String getErrorMessage(int errorCode) {
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeSplashActivity.java
class HMSAdsPrimeSplashActivity (line 47) | public class HMSAdsPrimeSplashActivity extends ReactActivity {
method pause (line 81) | static void pause(final Promise promise) {
method resume (line 90) | static void resume(final Promise promise) {
method destroy (line 99) | static void destroy(final Promise promise) {
method isLoading (line 108) | static void isLoading(final Promise promise) {
method isLoaded (line 116) | static void isLoaded(final Promise promise) {
method getBiddingInfo (line 124) | static void getBiddingInfo(final Promise promise){
method handleMessage (line 148) | @Override
method onCreate (line 157) | @Override
method loadAd (line 175) | private void loadAd() {
method jump (line 218) | private void jump() {
method onStop (line 229) | @Override
method onRestart (line 240) | @Override
method onDestroy (line 247) | @Override
method onPause (line 255) | @Override
method onResume (line 263) | @Override
class SplashAdDisplayListenerInner (line 271) | private static class SplashAdDisplayListenerInner extends SplashAdDisp...
method onAdClick (line 272) | @Override
method onAdShowed (line 277) | @Override
class SplashAdLoadListener (line 283) | private class SplashAdLoadListener extends SplashView.SplashAdLoadList...
method onAdLoaded (line 284) | @Override
method onAdFailedToLoad (line 289) | @Override
method onAdDismissed (line 295) | @Override
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeSplashAdModule.java
class HMSAdsPrimeSplashAdModule (line 43) | public class HMSAdsPrimeSplashAdModule extends ReactContextBaseJavaModule {
type SplashMediaType (line 60) | public enum SplashMediaType {
method SplashMediaType (line 66) | SplashMediaType(String value) {
method getValue (line 70) | public String getValue() {
type Event (line 75) | public enum Event {
method Event (line 84) | Event(String splashEventName) {
method getName (line 88) | public String getName() {
method getName (line 93) | @NonNull
method HMSAdsPrimeSplashAdModule (line 99) | HMSAdsPrimeSplashAdModule(ReactApplicationContext reactContext) {
method initContext (line 105) | private static void initContext(final ReactApplicationContext reactCon...
method sendEvent (line 111) | static void sendEvent(Event event, @Nullable WritableMap wm) {
method setAdId (line 116) | @ReactMethod
method setAdParam (line 123) | @ReactMethod
method setOrientation (line 130) | @ReactMethod
method setSloganResource (line 137) | @ReactMethod
method setWideSloganResource (line 144) | @ReactMethod
method setLogoResource (line 151) | @ReactMethod
method setLogoText (line 158) | @ReactMethod
method setCopyrightText (line 165) | @ReactMethod
method setMediaNameResource (line 172) | @ReactMethod
method setAudioFocusType (line 179) | @ReactMethod
method pause (line 186) | @ReactMethod
method resume (line 193) | @ReactMethod
method destroy (line 200) | @ReactMethod
method isLoading (line 207) | @ReactMethod
method isLoaded (line 214) | @ReactMethod
method getBiddingInfo (line 221) | @ReactMethod
method show (line 228) | @ReactMethod
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeVastModule.java
class HMSAdsPrimeVastModule (line 49) | public class HMSAdsPrimeVastModule extends ReactContextBaseJavaModule {
method HMSAdsPrimeVastModule (line 54) | HMSAdsPrimeVastModule(ReactContext reactContext) {
method getName (line 60) | @NonNull
method getConstants (line 66) | @Nullable
method init (line 112) | @ReactMethod
method getVastSdkConfiguration (line 120) | @ReactMethod
method getEventProcessor (line 128) | @ReactMethod
method updateSdkServerConfig (line 148) | @ReactMethod
method userAcceptAdLicense (line 156) | @ReactMethod
method getViewInfo (line 164) | @ReactMethod
method getAdContentByCreative (line 183) | private AdContent getAdContentByCreative(CreativeResource playerResour...
method getVastErrorMessages (line 194) | public static String getVastErrorMessages(int errorCode) {
method getVastPlayStateChangedMessage (line 208) | public static String getVastPlayStateChangedMessage(int playState) {
method getVastScreenStateChangedMessage (line 223) | public static String getVastScreenStateChangedMessage(int screenState) {
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeVastView.java
class HMSAdsPrimeVastView (line 57) | public class HMSAdsPrimeVastView extends LinearLayout implements Lifecyc...
method HMSAdsPrimeVastView (line 83) | public HMSAdsPrimeVastView(Context context) {
method HMSAdsPrimeVastView (line 91) | public HMSAdsPrimeVastView(Context context, AttributeSet attrs, int de...
method HMSAdsPrimeVastView (line 95) | public HMSAdsPrimeVastView(Context context, AttributeSet attrs) {
method requestLayout (line 99) | @Override
method sendEvent (line 105) | private void sendEvent(HMSAdsPrimeVastView.Manager.Event event, @Nulla...
method loadAd (line 110) | void loadAd() {
method showAd (line 161) | void showAd() {
method onPlayStateChanged (line 181) | @Override
method onVolumeChanged (line 187) | @Override
method onScreenViewChanged (line 195) | @Override
method onProgressChanged (line 201) | @Override
method onSuccess (line 208) | @Override
method onFailed (line 214) | @Override
method playAdReady (line 220) | @Override
method playAdFinish (line 227) | @Override
method onBufferStart (line 234) | @Override
method onBufferEnd (line 241) | @Override
type CreativeMatchType (line 249) | public enum CreativeMatchType {
method CreativeMatchType (line 259) | CreativeMatchType(int value) {
method getValue (line 263) | public int getValue() {
method forValue (line 267) | public static HMSAdsPrimeVastView.CreativeMatchType forValue(int s) {
method setAdParam (line 285) | public void setAdParam(ReadableMap adParamReadableMap) {
method setIsCustomVideoPlayer (line 289) | public void setIsCustomVideoPlayer(boolean isCustomVideoPlayer) {
method setIsAdLoadWithAdsData (line 293) | public void setIsAdLoadWithAdsData(boolean isAdLoadWithAdsData) {
method setIsTestAd (line 297) | public void setIsTestAd(boolean isTestAd) {
method setPlayerConfig (line 301) | public void setPlayerConfig(ReadableMap adPlayerConfigsReadableMap) {
method toggleMuteState (line 305) | public void toggleMuteState(boolean isMute) {
method startOrPause (line 313) | public void startOrPause() {
method getVideoControllerInfo (line 321) | public WritableMap getVideoControllerInfo() {
method resumeAd (line 333) | private void resumeAd() {
method pauseAd (line 337) | private void pauseAd() {
method releaseAd (line 341) | private void releaseAd() {
method onHostResume (line 349) | @Override
method onHostPause (line 355) | @Override
method onHostDestroy (line 361) | @Override
class Manager (line 367) | public static class Manager extends SimpleViewManager<HMSAdsPrimeVastV...
method Manager (line 370) | public Manager(ReactApplicationContext reactContext) {
type Event (line 374) | public enum Event implements ReactUtils.NamedEvent {
method Event (line 390) | Event(String nativeEventName) {
method getName (line 394) | public String getName() {
type Command (line 399) | public enum Command implements ReactUtils.NamedCommand {
method Command (line 410) | Command(String nativeCommandName) {
method getName (line 414) | public String getName() {
method getName (line 419) | @NonNull
method createViewInstance (line 425) | @NonNull
method getExportedCustomDirectEventTypeConstants (line 432) | @Nullable
method getCommandsMap (line 438) | @Nullable
method receiveCommand (line 444) | @Override
method setAdParam (line 485) | @ReactProp(name = "adParam")
method setIsCustomVideoPlayer (line 491) | @ReactProp(name = "isCustomVideoPlayer")
method setIsAdLoadWithAdsData (line 497) | @ReactProp(name = "isAdLoadWithAdsData")
method setPlayerConfigs (line 503) | @ReactProp(name = "playerConfigs")
method setIsTestAd (line 509) | @ReactProp(name = "isTestAd")
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/custome/CustomVideoController.java
class CustomVideoController (line 29) | public class CustomVideoController extends BaseVideoController{
method CustomVideoController (line 40) | public CustomVideoController(ReactContext context) {
method CustomVideoController (line 44) | public CustomVideoController(ReactContext context, AttributeSet attrs) {
method CustomVideoController (line 48) | public CustomVideoController(ReactContext context, AttributeSet attrs,...
method initView (line 54) | private void initView(ReactContext context) {
method initMuteState (line 67) | private void initMuteState() {
method getLayoutId (line 72) | @Override
method isMute (line 77) | @Override
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/logger/HMSLogger.java
class HMSLogger (line 36) | public final class HMSLogger {
method HMSLogger (line 77) | private HMSLogger(final Context context) {
method getInstance (line 96) | public static synchronized HMSLogger getInstance(final Context context) {
method getContext (line 112) | private synchronized Context getContext() {
method enableLogger (line 119) | public synchronized void enableLogger() {
method disableLogger (line 127) | public synchronized void disableLogger() {
method startMethodExecutionTimer (line 137) | public synchronized void startMethodExecutionTimer(final String method...
method sendSingleEvent (line 146) | public synchronized void sendSingleEvent(final String methodName) {
method sendSingleEvent (line 156) | public synchronized void sendSingleEvent(final String methodName, fina...
method sendPeriodicEvent (line 165) | public synchronized void sendPeriodicEvent(final String methodName) {
method sendPeriodicEvent (line 175) | public synchronized void sendPeriodicEvent(final String methodName, fi...
method sendEvent (line 186) | private synchronized void sendEvent(final String eventId, final String...
method getAppId (line 209) | private synchronized String getAppId() {
method getAppVersionName (line 224) | private synchronized String getAppVersionName(final String packageName) {
method getNetworkType (line 238) | private synchronized String getNetworkType() {
method setupEventMap (line 264) | private synchronized void setupEventMap(final Map<String, Object> map) {
method putToSingleEventMap (line 282) | private synchronized void putToSingleEventMap(final String methodName,...
method putToPeriodicEventMap (line 299) | private synchronized void putToPeriodicEventMap(final String methodNam...
method createNetworkTypeMap (line 335) | private synchronized Map<Integer, String> createNetworkTypeMap() {
method increaseResultCodeCount (line 368) | private synchronized void increaseResultCodeCount(final String methodN...
method increaseMapValue (line 381) | private synchronized void increaseMapValue(final String key, final Map...
method getOrDefault (line 395) | private synchronized <K, V> V getOrDefault(final Map<K, V> map, final ...
method putIfAbsent (line 408) | private synchronized <K, V> void putIfAbsent(final Map<K, V> map, fina...
method objectCast (line 423) | private synchronized <S, D> D objectCast(final S source, final Class<D...
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/utils/CommonUtils.java
class CommonUtils (line 23) | public class CommonUtils {
method GetIntegerExtra (line 26) | public static int GetIntegerExtra(Intent intent, String name, int defa...
method GetStringExtra (line 35) | public static String GetStringExtra(Intent intent, String name) {
method GetBundleExtra (line 44) | public static Bundle GetBundleExtra(Intent intent, String name) {
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/utils/Constants.java
type Constants (line 19) | public interface Constants {
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/utils/ReactUtils.java
class ReactUtils (line 77) | public class ReactUtils {
type Mapper (line 78) | public interface Mapper<T, R> {
method map (line 85) | R map(T in);
type NamedEvent (line 88) | public interface NamedEvent {
method getName (line 94) | String getName();
type NamedCommand (line 97) | public interface NamedCommand {
method getName (line 103) | String getName();
method mapReadableArray (line 106) | public static <R> List<R> mapReadableArray(ReadableArray array, Mapper...
method mapList (line 114) | public static <T> WritableArray mapList(List<T> list, Mapper<T, Writab...
method hasValidKey (line 125) | public static boolean hasValidKey(ReadableMap rm, String key, Readable...
method getWritableMapFromErrorCode (line 129) | public static WritableMap getWritableMapFromErrorCode(int errorCode) {
method getWritableMapFromVastErrorCode (line 136) | public static WritableMap getWritableMapFromVastErrorCode(int response...
method getWritableMapFromVastPlayState (line 143) | public static WritableMap getWritableMapFromVastPlayState(int playStat...
method getWritableMapFromVastScreenState (line 150) | public static WritableMap getWritableMapFromVastScreenState(int screen...
method getWritableMapFromVastProgressListener (line 157) | public static WritableMap getWritableMapFromVastProgressListener(long ...
method getWritableMapFromReward (line 166) | public static WritableMap getWritableMapFromReward(Reward obj) {
method getWritableMapFromRewardAd (line 176) | public static WritableMap getWritableMapFromRewardAd(RewardAd obj) {
method getWritableMapFromInterstitialAd (line 194) | public static WritableMap getWritableMapFromInterstitialAd(Interstitia...
method getWritableMapFromInstreamAd (line 210) | public static WritableMap getWritableMapFromInstreamAd(InstreamAd obj) {
method getWritableMapFromNativeAd (line 239) | public static WritableMap getWritableMapFromNativeAd(NativeAd obj) {
method getWritableArrayAdvertiserInfo (line 281) | public static WritableArray getWritableArrayAdvertiserInfo(List<Advert...
method getWritableMapFromDislikeAdReason (line 295) | public static WritableMap getWritableMapFromDislikeAdReason(DislikeAdR...
method getWritableMapFromVideoOperator (line 303) | public static WritableMap getWritableMapFromVideoOperator(VideoOperato...
method getWritableMapFromAdProvider (line 315) | public static WritableMap getWritableMapFromAdProvider(AdProvider obj) {
method getWritableMapFromAdSize (line 326) | public static WritableMap getWritableMapFromAdSize(AdSize obj) {
method getWritableMapFromBannerAdSizeWithContext (line 335) | public static WritableMap getWritableMapFromBannerAdSizeWithContext(Ba...
method getBannerAdSizeFromReadableMap (line 349) | public static BannerAdSize getBannerAdSizeFromReadableMap(Context cont...
method getAdSizeFromReadableMap (line 376) | public static AdSize getAdSizeFromReadableMap(ReadableMap rm) {
method getWritableMapFromVideoConfiguration (line 384) | public static WritableMap getWritableMapFromVideoConfiguration(VideoCo...
method getWritableMapFromNativeAdConfiguration (line 396) | public static WritableMap getWritableMapFromNativeAdConfiguration(Nati...
method getWritableMapFromNativeAdLoader (line 410) | public static WritableMap getWritableMapFromNativeAdLoader(NativeAdLoa...
method getWritableMapFromAdvertisingIdClientInfo (line 418) | public static WritableMap getWritableMapFromAdvertisingIdClientInfo(Ad...
method getWritableMapFromReferrerDetails (line 427) | public static WritableMap getWritableMapFromReferrerDetails(ReferrerDe...
method getWritableMapFromRequestOptions (line 440) | public static WritableMap getWritableMapFromRequestOptions(RequestOpti...
method getRequestOptionsFromReadableMap (line 465) | public static RequestOptions getRequestOptionsFromReadableMap(Readable...
method getAdParamFromReadableMap (line 502) | public static AdParam getAdParamFromReadableMap(ReadableMap rm) {
method getWritableMapFromAdParamBundle (line 560) | public static WritableMap getWritableMapFromAdParamBundle(Bundle obj) {
method getVastSdkConfigurationFromReadableMap (line 597) | public static VastSdkConfiguration getVastSdkConfigurationFromReadable...
method getWritableMapFromVastSdkConfiguration (line 634) | public static WritableMap getWritableMapFromVastSdkConfiguration(VastS...
method fromReadableMapToLocation (line 651) | public static Location fromReadableMapToLocation(ReadableMap rm) {
method fromReadableMapToBiddingParam (line 664) | public static BiddingParam fromReadableMapToBiddingParam(ReadableMap r...
method fromReadableMapToBiddingParamMap (line 689) | public static Map<String, BiddingParam> fromReadableMapToBiddingParamM...
method fromReadableArrayToListInteger (line 721) | public static List<Integer> fromReadableArrayToListInteger(ReadableArr...
method getExportedCustomDirectEventTypeConstantsFromEvents (line 732) | public static Map<String, Object> getExportedCustomDirectEventTypeCons...
method getCommandsMap (line 740) | public static Map<String, Integer> getCommandsMap(NamedCommand[] comma...
method getBundleFromReadableMap (line 748) | public static Bundle getBundleFromReadableMap(ReadableMap rm) {
method getVastRequestOptionsFromReadableMap (line 756) | public static com.huawei.hms.ads.vast.openalliance.ad.beans.parameter....
method getPlayerConfigsFromReadableMap (line 789) | public static PlayerConfig getPlayerConfigsFromReadableMap(ReadableMap...
method toCreativeMatchType (line 808) | public static CreativeMatchStrategy.CreativeMatchType toCreativeMatchT...
method getLinearAdSlotFromReadableMap (line 826) | public static LinearAdSlot getLinearAdSlotFromReadableMap(ReadableMap ...
method getWritableMapFromPlayerConfig (line 860) | public static WritableMap getWritableMapFromPlayerConfig(PlayerConfig ...
method getWritableMapFromVastAdPlayerConfigs (line 873) | public static WritableMap getWritableMapFromVastAdPlayerConfigs(ReactC...
method getWritableMapFromCreativeMatchTStrategy (line 886) | public static WritableMap getWritableMapFromCreativeMatchTStrategy(Cre...
method getWritableMapFromLinearAdSlot (line 901) | public static WritableMap getWritableMapFromLinearAdSlot(LinearAdSlot ...
method getWritableMapFromVastRequestOptions (line 920) | public static WritableMap getWritableMapFromVastRequestOptions(
method getWritableMapFromAdsData (line 950) | public static WritableMap getWritableMapFromAdsData(AdsData obj) {
method getWritableMapFromLinearCreative (line 961) | public static WritableMap getWritableMapFromLinearCreative(LinearCreat...
method getWritableMapFromCreativeExtensionMap (line 977) | public static WritableMap getWritableMapFromCreativeExtensionMap(Map<S...
FILE: react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/utils/ResourceUtils.java
class ResourceUtils (line 24) | public class ResourceUtils {
method getStringResourceIdFromContext (line 27) | public static int getStringResourceIdFromContext(@NonNull Context cont...
method getLogoResourceIdFromContext (line 35) | public static int getLogoResourceIdFromContext(@NonNull Context contex...
method getLayoutResourceIdFromContext (line 45) | public static int getLayoutResourceIdFromContext(@NonNull Context cont...
FILE: react-native-hms-adsprime/example/App.js
class Banner (line 59) | class Banner extends React.Component {
method constructor (line 60) | constructor(props) {
method render (line 70) | render() {
class Instream (line 178) | class Instream extends React.Component {
method constructor (line 179) | constructor(props) {
method render (line 184) | render() {
class Native (line 347) | class Native extends React.Component {
method constructor (line 348) | constructor(props) {
method render (line 362) | render() {
class Vast (line 559) | class Vast extends React.Component {
method constructor (line 560) | constructor(props) {
method render (line 563) | render() {
class Interstitial (line 682) | class Interstitial extends React.Component {
method constructor (line 683) | constructor(props) {
method componentDidMount (line 696) | componentDidMount() {
method componentWillUnmount (line 736) | componentWillUnmount() {
method render (line 740) | render() {
class Reward (line 820) | class Reward extends React.Component {
method constructor (line 821) | constructor(props) {
method componentDidMount (line 833) | componentDidMount() {
method componentWillUnmount (line 865) | componentWillUnmount() {
method render (line 869) | render() {
class Splash (line 929) | class Splash extends React.Component {
method constructor (line 930) | constructor(props) {
method componentDidMount (line 940) | componentDidMount() {
method componentWillUnmount (line 960) | componentWillUnmount() {
method render (line 964) | render() {
class AdvertisingId (line 1014) | class AdvertisingId extends React.Component {
method constructor (line 1015) | constructor(props) {
method render (line 1027) | render() {
class InstallReferrer (line 1092) | class InstallReferrer extends React.Component {
method constructor (line 1093) | constructor(props) {
method componentDidMount (line 1101) | componentDidMount() {
method componentWillUnmount (line 1110) | componentWillUnmount() {
method render (line 1114) | render() {
class Consent (line 1187) | class Consent extends React.Component {
method render (line 1188) | render() {
class RequestOptions (line 1221) | class RequestOptions extends React.Component {
method render (line 1222) | render() {
class App (line 1359) | class App extends React.Component {
method constructor (line 1360) | constructor(props) {
method componentDidMount (line 1365) | componentDidMount() {
method render (line 1368) | render() {
FILE: react-native-hms-adsprime/example/android/app/src/main/java/com/huawei/hms/rn/ads/demo/MainActivity.java
class MainActivity (line 21) | public class MainActivity extends ReactActivity {
method getMainComponentName (line 22) | @Override
FILE: react-native-hms-adsprime/example/android/app/src/main/java/com/huawei/hms/rn/ads/demo/MainApplication.java
class MainApplication (line 29) | public class MainApplication extends Application implements ReactApplica...
method getUseDeveloperSupport (line 32) | @Override
method getPackages (line 37) | @Override
method getJSMainModuleName (line 43) | @Override
method getReactNativeHost (line 49) | @Override
method onCreate (line 54) | @Override
FILE: react-native-hms-adsprime/src/Banner.js
class HMSAdsPrimeBanner (line 26) | class HMSAdsPrimeBanner extends Component {
method constructor (line 27) | constructor() {
method componentDidMount (line 31) | componentDidMount() {
method render (line 79) | render() {
FILE: react-native-hms-adsprime/src/Instream.js
class HMSAdsInstream (line 27) | class HMSAdsInstream extends Component {
method constructor (line 28) | constructor() {
method componentDidMount (line 32) | componentDidMount() {
method render (line 136) | render() {
FILE: react-native-hms-adsprime/src/Native.js
class HMSAdsNative (line 27) | class HMSAdsNative extends Component {
method constructor (line 28) | constructor() {
method componentDidMount (line 32) | componentDidMount() {
method render (line 143) | render() {
FILE: react-native-hms-adsprime/src/VastView.js
class HMSVastView (line 27) | class HMSVastView extends Component {
method constructor (line 28) | constructor() {
method componentDidMount (line 32) | componentDidMount() {
method componentWillUnmount (line 40) | componentWillUnmount() {
method render (line 92) | render() {
FILE: react-native-hms-adsprime/src/index.d.ts
type RewardMediaTypes (line 20) | enum RewardMediaTypes {
type InterstitialMediaTypes (line 23) | enum InterstitialMediaTypes {
type SplashMediaTypes (line 27) | enum SplashMediaTypes {
type BannerMediaTypes (line 31) | enum BannerMediaTypes {
type NativeAdAssetNames (line 34) | enum NativeAdAssetNames {
type ContentClassification (line 52) | enum ContentClassification {
type NonPersonalizedAd (line 64) | enum NonPersonalizedAd {
type TagForChild (line 73) | enum TagForChild {
type UnderAge (line 83) | enum UnderAge {
type Gender (line 93) | enum Gender {
type BannerAdSizes (line 103) | enum BannerAdSizes {
type CallMode (line 119) | enum CallMode {
type DebugNeedConsent (line 127) | enum DebugNeedConsent {
type ConsentStatus (line 136) | enum ConsentStatus {
type ChoicesPosition (line 146) | enum ChoicesPosition {
type Direction (line 158) | enum Direction {
type AudioFocusType (line 168) | enum AudioFocusType {
type NativeMediaTypes (line 177) | enum NativeMediaTypes {
type ScaleType (line 187) | enum ScaleType {
type DetailedCreativeTypes (line 202) | enum DetailedCreativeTypes {
type ActivateStyle (line 216) | enum ActivateStyle {
type AutoPlayNetType (line 225) | enum AutoPlayNetType {
type CreativeMatchType (line 235) | enum CreativeMatchType {
type Orientation (line 247) | enum Orientation {
type RequestOptions (line 255) | interface RequestOptions {
type BiddingParam (line 315) | interface BiddingParam {
type BiddingInfo (line 335) | interface BiddingInfo {
type AdProvider (line 360) | interface AdProvider {
type ConsentResult (line 385) | interface ConsentResult {
type Consent (line 405) | interface Consent {
type AdvertisingIdClientInfo (line 430) | interface AdvertisingIdClientInfo {
method getAdvertisingIdInfo (line 449) | getAdvertisingIdInfo(callMode: CallMode): Promise<AdvertisingIdClientInf...
type AdParam (line 486) | interface AdParam {
type Reward (line 580) | interface Reward {
type RewardAd (line 595) | interface RewardAd {
method setAdId (line 956) | setAdId(adSlotId: string): Promise<null>;,
FILE: react-native-hms-analytics/android/src/main/java/com/huawei/hms/rn/analytics/HMSAnalyticsModule.java
class HMSAnalyticsModule (line 28) | public class HMSAnalyticsModule extends ReactContextBaseJavaModule {
method HMSAnalyticsModule (line 34) | public HMSAnalyticsModule(ReactApplicationContext reactContext) {
method getName (line 39) | @Nonnull
method getInstance (line 45) | @ReactMethod
method setAnalyticsEnabled (line 54) | @ReactMethod
method setUserId (line 59) | @ReactMethod
method setUserProfile (line 64) | @ReactMethod
method setPushToken (line 69) | @ReactMethod
method setMinActivitySessions (line 74) | @ReactMethod
method setSessionDuration (line 79) | @ReactMethod
method clearCachedData (line 84) | @ReactMethod
method getAAID (line 89) | @ReactMethod
method getUserProfiles (line 94) | @ReactMethod
method pageStart (line 99) | @ReactMethod
method pageEnd (line 104) | @ReactMethod
method onEvent (line 109) | @ReactMethod
method enableLog (line 114) | @ReactMethod
method enableLogWithLevel (line 119) | @ReactMethod
method deleteUserProfile (line 124) | @ReactMethod
method setRestrictionEnabled (line 129) | @ReactMethod
method setCollectAdsIdEnabled (line 134) | @ReactMethod
method isRestrictionEnabled (line 139) | @ReactMethod
method addDefaultEventParams (line 144) | @ReactMethod
method setReportPolicies (line 149) | @ReactMethod
method getReportPolicyThreshold (line 154) | @ReactMethod
method enableLogger (line 159) | @ReactMethod
method disableLogger (line 164) | @ReactMethod
method setChannel (line 169) | @ReactMethod
method setPropertyCollection (line 174) | @ReactMethod
method setCustomReferrer (line 179) | @ReactMethod
method getDataUploadSiteInfo (line 184) | @ReactMethod
FILE: react-native-hms-analytics/android/src/main/java/com/huawei/hms/rn/analytics/HMSAnalyticsPackage.java
class HMSAnalyticsPackage (line 28) | public class HMSAnalyticsPackage implements ReactPackage {
method createNativeModules (line 29) | @Override
method createViewManagers (line 36) | @Override
FILE: react-native-hms-analytics/android/src/main/java/com/huawei/hms/rn/analytics/HMSAnalyticsProvider.java
class HMSAnalyticsProvider (line 31) | public class HMSAnalyticsProvider extends ContentProvider {
method onCreate (line 45) | @Override
method query (line 70) | @Override
method getType (line 75) | @Override
method insert (line 81) | @Override
method delete (line 86) | @Override
method update (line 91) | @Override
FILE: react-native-hms-analytics/android/src/main/java/com/huawei/hms/rn/analytics/HMSAnalyticsWrapper.java
class HMSAnalyticsWrapper (line 44) | public class HMSAnalyticsWrapper {
type LogLevel (line 50) | private enum LogLevel {
method LogLevel (line 57) | LogLevel(int logLevel) {
method HMSAnalyticsWrapper (line 62) | public HMSAnalyticsWrapper(Context context, String routePolicy, Promis...
method HMSAnalyticsWrapper (line 68) | public HMSAnalyticsWrapper(Context context, Promise promise) {
method pageStart (line 74) | public void pageStart(String pageName, String pageClassOverride, Promi...
method pageEnd (line 81) | public void pageEnd(String pageName, Promise promise) {
method onEvent (line 88) | public void onEvent(String event, ReadableMap rMap, Promise promise) {
method setAnalyticsEnabled (line 100) | public void setAnalyticsEnabled(boolean enabled, Promise promise) {
method setUserId (line 107) | public void setUserId(String userId, Promise promise) throws IllegalAr...
method setUserProfile (line 114) | public void setUserProfile(String name, String value, Promise promise) {
method setPushToken (line 121) | public void setPushToken(String token, Promise promise) {
method setMinActivitySessions (line 128) | public void setMinActivitySessions(long milliseconds, Promise promise) {
method setSessionDuration (line 135) | public void setSessionDuration(int milliseconds, Promise promise) {
method clearCachedData (line 142) | public void clearCachedData(Promise promise) {
method getAAID (line 149) | public void getAAID(Promise promise) {
method isRestrictionEnabled (line 160) | public void isRestrictionEnabled(Promise promise) {
method addDefaultEventParams (line 167) | public void addDefaultEventParams(ReadableMap map, Promise promise) {
method setRestrictionEnabled (line 174) | public void setRestrictionEnabled(Boolean enabled, Promise promise) {
method setReportPolicies (line 181) | public void setReportPolicies(ReadableArray array, Promise promise) {
method getReportPolicyThreshold (line 224) | public void getReportPolicyThreshold(String reportPolicyType, Promise ...
method getUserProfiles (line 231) | public void getUserProfiles(boolean predefined, Promise promise) {
method setCollectAdsIdEnabled (line 251) | public void setCollectAdsIdEnabled(boolean isEnabled, Promise promise) {
method setChannel (line 258) | public void setChannel(String channel, Promise promise) {
method setPropertyCollection (line 265) | public void setPropertyCollection(String property, boolean enabled, Pr...
method setCustomReferrer (line 272) | public void setCustomReferrer(String customReferrer, Promise promise) {
method getDataUploadSiteInfo (line 279) | public void getDataUploadSiteInfo(Promise promise) {
method enableLog (line 288) | public void enableLog(Promise promise) {
method enableLogWithLevel (line 295) | public void enableLogWithLevel(String level, Promise promise) {
method enableLogger (line 305) | public void enableLogger(final Promise promise) {
method disableLogger (line 313) | public void disableLogger(final Promise promise) {
method createResponseObj (line 321) | public <T> void createResponseObj(String key, T value, Promise promise) {
method mapToBundle (line 337) | private Bundle mapToBundle(ReadableMap map) {
method bundleArrayList (line 378) | private ArrayList<Bundle> bundleArrayList(ReadableArray rArray) {
method toReportPolicy (line 388) | private ReportPolicy toReportPolicy(String reportPolicy) {
method getContext (line 401) | private Context getContext() {
FILE: react-native-hms-analytics/android/src/main/java/com/huawei/hms/rn/analytics/logger/HMSLogger.java
class HMSLogger (line 36) | public final class HMSLogger {
method HMSLogger (line 76) | private HMSLogger(final Context context) {
method getInstance (line 95) | public static synchronized HMSLogger getInstance(final Context context) {
method getContext (line 111) | private synchronized Context getContext() {
method enableLogger (line 118) | public synchronized void enableLogger() {
method disableLogger (line 126) | public synchronized void disableLogger() {
method startMethodExecutionTimer (line 136) | public synchronized void startMethodExecutionTimer(final String method...
method sendSingleEvent (line 145) | public synchronized void sendSingleEvent(final String methodName) {
method sendSingleEvent (line 155) | public synchronized void sendSingleEvent(final String methodName, fina...
method sendPeriodicEvent (line 164) | public synchronized void sendPeriodicEvent(final String methodName) {
method sendPeriodicEvent (line 174) | public synchronized void sendPeriodicEvent(final String methodName, fi...
method sendEvent (line 185) | private synchronized void sendEvent(final String eventId, final String...
method getAppId (line 208) | private synchronized String getAppId() {
method getAppVersionName (line 223) | private synchronized String getAppVersionName(final String packageName) {
method getNetworkType (line 237) | private synchronized String getNetworkType() {
method setupEventMap (line 263) | private synchronized void setupEventMap(final Map<String, Object> map) {
method putToSingleEventMap (line 281) | private synchronized void putToSingleEventMap(final String methodName,...
method putToPeriodicEventMap (line 298) | private synchronized void putToPeriodicEventMap(final String methodNam...
method createNetworkTypeMap (line 335) | private synchronized Map<Integer, String> createNetworkTypeMap() {
method increaseResultCodeCount (line 368) | private synchronized void increaseResultCodeCount(final String methodN...
method increaseMapValue (line 381) | private synchronized void increaseMapValue(final String key, final Map...
method getOrDefault (line 395) | private synchronized <K, V> V getOrDefault(final Map<K, V> map, final ...
method putIfAbsent (line 408) | private synchronized <K, V> void putIfAbsent(final Map<K, V> map, fina...
method objectCast (line 423) | private synchronized <S, D> D objectCast(final S source, final Class<D...
FILE: react-native-hms-analytics/example/App.js
class App (line 26) | class App extends RenderComponent {
method constructor (line 28) | constructor(props) {
method componentDidMount (line 38) | componentDidMount() {
method setAnalyticsEnabled (line 51) | async setAnalyticsEnabled() {
method setRestrictionEnabled (line 58) | async setRestrictionEnabled() {
method isRestrictionEnabled (line 64) | async isRestrictionEnabled() {
method setCollectAdsIdEnabled (line 70) | async setCollectAdsIdEnabled() {
method addDefaultEventParams (line 76) | async addDefaultEventParams() {
method setUserId (line 91) | async setUserId(userID) {
method setUserProfile (line 97) | async setUserProfile() {
method deleteUserProfile (line 105) | async deleteUserProfile() {
method setSessionDuration (line 112) | async setSessionDuration() {
method onEvent (line 119) | async onEvent() {
method onEventWithBundleList (line 133) | async onEventWithBundleList() {
method clearCachedData (line 162) | async clearCachedData() {
method getAAID (line 168) | async getAAID() {
method getUserProfiles (line 174) | async getUserProfiles() {
method setReportPolicies (line 181) | async setReportPolicies() {
method pageStart (line 206) | async pageStart() {
method pageEnd (line 216) | async pageEnd() {
method enableLog (line 225) | async enableLog() {
method enableLogWithLevel (line 234) | async enableLogWithLevel() {
method setPushToken (line 243) | async setPushToken() {
method setMinActivitySessions (line 252) | async setMinActivitySessions() {
method getReportPolicyThreshold (line 262) | async getReportPolicyThreshold() {
method getDataUploadSiteInfo (line 270) | async getDataUploadSiteInfo() {
method setCustomReferrer (line 278) | async setCustomReferrer() {
method setPropertyCollection (line 286) | async setPropertyCollection() {
method setChannel (line 294) | async setChannel() {
method checkPlatform (line 302) | checkPlatform() {
method render (line 310) | render() {
FILE: react-native-hms-analytics/example/android/app/src/main/java/com/huawei/hms/rn/analytics/example/MainActivity.java
class MainActivity (line 21) | public class MainActivity extends ReactActivity {
method getMainComponentName (line 23) | @Override
FILE: react-native-hms-analytics/example/android/app/src/main/java/com/huawei/hms/rn/analytics/example/MainApplication.java
class MainApplication (line 28) | public class MainApplication extends Application implements ReactApplica...
method getUseDeveloperSupport (line 32) | @Override
method getPackages (line 37) | @Override
method getJSMainModuleName (line 43) | @Override
method getReactNativeHost (line 49) | @Override
method onCreate (line 54) | @Override
FILE: react-native-hms-analytics/example/constants/Data.js
class Data (line 16) | class Data { }
FILE: react-native-hms-analytics/example/customViews/ComboBox.js
class ComboBox (line 20) | class ComboBox extends React.Component {
method constructor (line 22) | constructor(props){
method componentDidMount (line 27) | componentDidMount(){
method componentDidUpdate (line 31) | componentDidUpdate(prevProps){
method changeSelection (line 37) | changeSelection(isCustom){
method render (line 42) | render() {
FILE: react-native-hms-analytics/example/customViews/RenderComponent.js
class RenderComponent (line 22) | class RenderComponent extends Component {
method constructor (line 23) | constructor(props) {
method init (line 38) | init(self, componentName) {
method showResult (line 43) | showResult(api, res) {
method validation (line 50) | validation() {
method pickerView (line 70) | pickerView(type) {
method enableLogWithLevelView (line 123) | enableLogWithLevelView() {
method onEventView (line 148) | onEventView() {
method bundleView (line 163) | bundleView() {
method eventView (line 202) | eventView() {
method setUserIdView (line 235) | setUserIdView() {
method haParamListView (line 254) | haParamListView() {
method checkUserId (line 267) | checkUserId() {
method changePickerSelection (line 277) | changePickerSelection(value, type) {
method changeEventType (line 294) | changeEventType(selection) {
FILE: react-native-hms-analytics/src/index.d.ts
type Result (line 19) | interface Result {
type DefaultEventParams (line 24) | interface DefaultEventParams {
type EventParams (line 29) | interface EventParams {
type Constants (line 34) | enum Constants {
type ReportPolicyType (line 40) | enum ReportPolicyType {
type HAUserProfileType (line 47) | enum HAUserProfileType {
type HAParamType (line 53) | enum HAParamType {
type HAEventType (line 365) | enum HAEventType {
type LogLevel (line 521) | enum LogLevel {
class HMSAnalytics (line 528) | class HMSAnalytics {
FILE: react-native-hms-analytics/src/index.js
class HMSAnalytics (line 28) | class HMSAnalytics {
method getInstance (line 30) | static getInstance(routePolicy = "") {
method setMinActivitySessions (line 38) | static setMinActivitySessions(minActivitySessionValue) {
method setPushToken (line 46) | static setPushToken(token) {
method enableLogWithLevel (line 54) | static enableLogWithLevel(level) {
method enableLog (line 62) | static enableLog() {
method pageEnd (line 70) | static pageEnd(pageName) {
method pageStart (line 78) | static pageStart(pageName, pageClassOverride) {
method getReportPolicyThreshold (line 86) | static getReportPolicyThreshold(reportPolicyType) {
method setCollectAdsIdEnabled (line 94) | static setCollectAdsIdEnabled(isEnabled) {
method addDefaultEventParams (line 98) | static addDefaultEventParams(map) {
method setAnalyticsEnabled (line 102) | static setAnalyticsEnabled(isEnabled) {
method setRestrictionEnabled (line 106) | static setRestrictionEnabled(isEnabled) {
method setUserId (line 110) | static setUserId(userId) {
method setUserProfile (line 114) | static setUserProfile(name, value) {
method deleteUserProfile (line 118) | static deleteUserProfile(name) {
method setSessionDuration (line 122) | static setSessionDuration(milliseconds) {
method clearCachedData (line 126) | static clearCachedData() {
method getAAID (line 130) | static getAAID() {
method getUserProfiles (line 134) | static getUserProfiles(isEnabled) {
method onEvent (line 138) | static onEvent(event, rMap) {
method isRestrictionEnabled (line 142) | static isRestrictionEnabled() {
method setReportPolicies (line 146) | static setReportPolicies(policies) {
method enableLogger (line 150) | static enableLogger() {
method disableLogger (line 154) | static disableLogger() {
method setChannel (line 158) | static setChannel(channel) {
method setPropertyCollection (line 162) | static setPropertyCollection(property, enabled) {
method setCustomReferrer (line 166) | static setCustomReferrer(customReferrer) {
method getDataUploadSiteInfo (line 170) | static getDataUploadSiteInfo() {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/ARSetupFacade.java
class ARSetupFacade (line 78) | public class ARSetupFacade {
method ARSetupFacade (line 97) | public ARSetupFacade(Context context, GLSurfaceView view) {
method startHand (line 110) | public void startHand(ARPluginConfigHand config) {
method startFace (line 141) | public void startFace(ARPluginConfigFace config) {
method startBody (line 182) | public void startBody(ARPluginConfigBody config) {
method startWorld (line 213) | public void startWorld(ARPluginConfigWorld config) {
method startCloud3Dobject (line 255) | public void startCloud3Dobject() {
method startAugmentedImage (line 276) | public void startAugmentedImage(ARPluginConfigAugmentedImage config) {
method startWorldBody (line 316) | public void startWorldBody(ARPluginConfigWorldBody config) {
method startSceneMesh (line 353) | public void startSceneMesh(ARPluginConfigSceneMesh config) {
method setEnableItem (line 387) | public void setEnableItem(long enableItem) {
method setFaceHealthListener (line 396) | public void setFaceHealthListener(FaceHealthServiceListener faceHealth...
method setFaceHealthResultListener (line 404) | public void setFaceHealthResultListener(FaceHealtyResult faceHealtyRes...
method setSceneMeshListener (line 412) | public void setSceneMeshListener(SceneMeshDrawFrameListener listener) {
method setupInitAugmentedImageDatabase (line 419) | private ARAugmentedImageDatabase setupInitAugmentedImageDatabase(List<...
method loadAugmentedImageBitmap (line 441) | private Optional<Bitmap> loadAugmentedImageBitmap(String fileName) {
method showSemanticModeSupportedInfo (line 450) | private void showSemanticModeSupportedInfo(ARPluginConfigBase configPl...
method setListener (line 474) | public void setListener(PluginCallbackHelper helper) {
method setCameraConfigListener (line 478) | public void setCameraConfigListener(CameraConfigListener helper) {
method setCameraIntrinsicsListener (line 482) | public void setCameraIntrinsicsListener(CameraIntrinsicsListener helpe...
method setMessageDataListener (line 486) | public void setMessageDataListener(MessageTextListener listener) {
method initGestureDetector (line 494) | private void initGestureDetector() {
method onGestureEvent (line 520) | private boolean onGestureEvent(GestureEvent e) {
method setMessageWhenError (line 524) | protected void setMessageWhenError(Exception catchException, String di...
method setCommonConfig (line 545) | private void setCommonConfig(ARPluginConfigBase configPlugin) {
method checkCommonConfig (line 553) | private void checkCommonConfig(ARPluginConfigBase configPlugin) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/config/ARPluginConfigAugmentedImage.java
class ARPluginConfigAugmentedImage (line 24) | public class ARPluginConfigAugmentedImage extends ARPluginConfigBasePoin...
method getAugmentedImageDBModels (line 27) | public List<AugmentedImageDBModel> getAugmentedImageDBModels() {
method setAugmentedImageDBModels (line 31) | public void setAugmentedImageDBModels(List<AugmentedImageDBModel> augm...
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/config/ARPluginConfigBase.java
class ARPluginConfigBase (line 22) | public abstract class ARPluginConfigBase {
method getFocusMode (line 37) | public ARConfigBase.FocusMode getFocusMode() {
method setFocusMode (line 41) | public void setFocusMode(ARConfigBase.FocusMode focusMode) {
method getPowerMode (line 45) | public ARConfigBase.PowerMode getPowerMode() {
method setPowerMode (line 49) | public void setPowerMode(ARConfigBase.PowerMode powerMode) {
method getUpdateMode (line 53) | public ARConfigBase.UpdateMode getUpdateMode() {
method setUpdateMode (line 57) | public void setUpdateMode(ARConfigBase.UpdateMode updateMode) {
method getSemanticMode (line 61) | public int getSemanticMode() {
method setSemanticMode (line 65) | public void setSemanticMode(int semanticMode) {
method getShowSemanticSupportedInfo (line 69) | public boolean getShowSemanticSupportedInfo() {
method setShowSemanticSupportedInfo (line 73) | public void setShowSemanticSupportedInfo(boolean showSemanticSupported...
method getLightMode (line 77) | public int getLightMode() {
method setLightMode (line 81) | public void setLightMode(int lightMode) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/config/ARPluginConfigBasePointLine.java
class ARPluginConfigBasePointLine (line 19) | public abstract class ARPluginConfigBasePointLine extends ARPluginConfig...
method isDrawLine (line 32) | public boolean isDrawLine() {
method setDrawLine (line 36) | public void setDrawLine(boolean drawLine) {
method isDrawPoint (line 40) | public boolean isDrawPoint() {
method setDrawPoint (line 44) | public void setDrawPoint(boolean drawPoint) {
method getLineWidth (line 48) | public float getLineWidth() {
method setLineWidth (line 52) | public void setLineWidth(float lineWidth) {
method getPointSize (line 56) | public float getPointSize() {
method setPointSize (line 60) | public void setPointSize(float pointSize) {
method getLineColor (line 64) | public ColorRGBA getLineColor() {
method setLineColor (line 68) | public void setLineColor(ColorRGBA lineColor) {
method getPointColor (line 72) | public ColorRGBA getPointColor() {
method setPointColor (line 76) | public void setPointColor(ColorRGBA pointColor) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/config/ARPluginConfigBaseWorld.java
class ARPluginConfigBaseWorld (line 19) | public abstract class ARPluginConfigBaseWorld extends ARPluginConfigBase...
method getMaxMapSize (line 64) | public long getMaxMapSize() {
method setMaxMapSize (line 68) | public void setMaxMapSize(long maxMapSize) {
method isLabelDraw (line 72) | public boolean isLabelDraw() {
method setLabelDraw (line 76) | public void setLabelDraw(boolean draw) {
method setTexturePath (line 80) | public void setTexturePath(String texturePath) {
method setObjPath (line 84) | public void setObjPath(String objPath) {
method getObjPath (line 88) | public String getObjPath() {
method getTexturePath (line 92) | public String getTexturePath() {
method getImageOther (line 96) | public String getImageOther() {
method setImageOther (line 100) | public void setImageOther(String imageOther) {
method getImageWall (line 104) | public String getImageWall() {
method setImageWall (line 108) | public void setImageWall(String imageWall) {
method getImageFloor (line 112) | public String getImageFloor() {
method setImageFloor (line 116) | public void setImageFloor(String imageFloor) {
method getImageSeat (line 120) | public String getImageSeat() {
method setImageSeat (line 124) | public void setImageSeat(String imageSeat) {
method getImageTable (line 128) | public String getImageTable() {
method setImageTable (line 132) | public void setImageTable(String imageTable) {
method getImageCeiling (line 136) | public String getImageCeiling() {
method setImageCeiling (line 140) | public void setImageCeiling(String imageCeiling) {
method getTextOther (line 144) | public String getTextOther() {
method setTextOther (line 148) | public void setTextOther(String textOther) {
method getTextWall (line 152) | public String getTextWall() {
method setTextWall (line 156) | public void setTextWall(String textWall) {
method getTextFloor (line 160) | public String getTextFloor() {
method setTextFloor (line 164) | public void setTextFloor(String textFloor) {
method getTextSeat (line 168) | public String getTextSeat() {
method setTextSeat (line 172) | public void setTextSeat(String textSeat) {
method getTextTable (line 176) | public String getTextTable() {
method setTextTable (line 180) | public void setTextTable(String textTable) {
method getTextCeiling (line 184) | public String getTextCeiling() {
method setTextCeiling (line 188) | public void setTextCeiling(String textCeiling) {
method getColorOther (line 192) | public ColorRGBA getColorOther() {
method setColorOther (line 196) | public void setColorOther(ColorRGBA colorOther) {
method getColorWall (line 200) | public ColorRGBA getColorWall() {
method setColorWall (line 204) | public void setColorWall(ColorRGBA colorWall) {
method getColorFloor (line 208) | public ColorRGBA getColorFloor() {
method setColorFloor (line 212) | public void setColorFloor(ColorRGBA colorFloor) {
method getColorSeat (line 216) | public ColorRGBA getColorSeat() {
method setColorSeat (line 220) | public void setColorSeat(ColorRGBA colorSeat) {
method getColorTable (line 224) | public ColorRGBA getColorTable() {
method setColorTable (line 228) | public void setColorTable(ColorRGBA colorTable) {
method getColorCeiling (line 232) | public ColorRGBA getColorCeiling() {
method setColorCeiling (line 236) | public void setColorCeiling(ColorRGBA colorCeiling) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/config/ARPluginConfigBody.java
class ARPluginConfigBody (line 19) | public class ARPluginConfigBody extends ARPluginConfigBasePointLine {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/config/ARPluginConfigFace.java
class ARPluginConfigFace (line 21) | public class ARPluginConfigFace extends ARPluginConfigBase {
method ARPluginConfigFace (line 36) | public ARPluginConfigFace() {
method getPointSize (line 45) | public float getPointSize() {
method isDrawFace (line 49) | public boolean isDrawFace() {
method setDrawFace (line 53) | public void setDrawFace(boolean drawFace) {
method getDepthColor (line 57) | public ColorRGBA getDepthColor() {
method getTexturePath (line 61) | public String getTexturePath() {
method getHealth (line 65) | public boolean getHealth() {
method getCameraLensFacing (line 69) | public ARConfigBase.CameraLensFacing getCameraLensFacing() {
method setPointSize (line 73) | public void setPointSize(float pointSize) {
method setDepthColor (line 77) | public void setDepthColor(ColorRGBA depthColor) {
method setTexturePath (line 81) | public void setTexturePath(String texturePath) {
method setHealth (line 85) | public void setHealth(boolean health) {
method setCameraLensFacing (line 89) | public void setCameraLensFacing(ARConfigBase.CameraLensFacing cameraLe...
method setMultiFace (line 93) | public void setMultiFace(boolean multiFace) {
method getMultiFace (line 97) | public boolean getMultiFace() {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/config/ARPluginConfigHand.java
class ARPluginConfigHand (line 21) | public class ARPluginConfigHand extends ARPluginConfigBasePointLine {
method ARPluginConfigHand (line 30) | public ARPluginConfigHand() {
method getLineWidthSkeleton (line 37) | public float getLineWidthSkeleton() {
method setLineWidthSkeleton (line 41) | public void setLineWidthSkeleton(float lineWidthSkeleton) {
method getBoxColor (line 45) | public ColorRGBA getBoxColor() {
method isDrawBox (line 49) | public boolean isDrawBox() {
method getCameraLensFacing (line 53) | public ARConfigBase.CameraLensFacing getCameraLensFacing() {
method setBoxColor (line 57) | public void setBoxColor(ColorRGBA boxColor) {
method setDrawBox (line 61) | public void setDrawBox(boolean drawBox) {
method setCameraLensFacing (line 65) | public void setCameraLensFacing(ARConfigBase.CameraLensFacing cameraLe...
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/config/ARPluginConfigSceneMesh.java
class ARPluginConfigSceneMesh (line 19) | public class ARPluginConfigSceneMesh extends ARPluginConfigBase {
method getObjPath (line 25) | public String getObjPath() {
method setObjPath (line 29) | public void setObjPath(String objPath) {
method getTexturePath (line 33) | public String getTexturePath() {
method setTexturePath (line 37) | public void setTexturePath(String texturePath) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/config/ARPluginConfigWorld.java
class ARPluginConfigWorld (line 25) | public class ARPluginConfigWorld extends ARPluginConfigBaseWorld {
method getAugmentedImageDBModels (line 31) | public List<AugmentedImageDBModel> getAugmentedImageDBModels() {
method setAugmentedImageDBModels (line 35) | public void setAugmentedImageDBModels(List<AugmentedImageDBModel> augm...
method getPlaneFindingMode (line 39) | public ARConfigBase.PlaneFindingMode getPlaneFindingMode() {
method setPlaneFindingMode (line 43) | public void setPlaneFindingMode(ARConfigBase.PlaneFindingMode planeFin...
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/config/ARPluginConfigWorldBody.java
class ARPluginConfigWorldBody (line 21) | public class ARPluginConfigWorldBody extends ARPluginConfigBaseWorld {
method getPlaneFindingMode (line 24) | public ARConfigBase.PlaneFindingMode getPlaneFindingMode() {
method setPlaneFindingMode (line 28) | public void setPlaneFindingMode(ARConfigBase.PlaneFindingMode planeFin...
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/config/ColorRGBA.java
class ColorRGBA (line 21) | public class ColorRGBA {
method ColorRGBA (line 30) | public ColorRGBA(int red, int green, int blue, int alpha) {
method getColor (line 37) | public Color getColor() {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/ArDemoRuntimeException.java
class ArDemoRuntimeException (line 19) | public class ArDemoRuntimeException extends RuntimeException {
method ArDemoRuntimeException (line 20) | public ArDemoRuntimeException() {
method ArDemoRuntimeException (line 24) | public ArDemoRuntimeException(String message) {
method ArDemoRuntimeException (line 28) | public ArDemoRuntimeException(String message, Throwable cause) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/AugmentedImage/CornerType.java
type CornerType (line 19) | public enum CornerType {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/AugmentedImage/ImageKeyBase.java
class ImageKeyBase (line 24) | public class ImageKeyBase {
method createProgram (line 49) | protected void createProgram() {
method createImageCorner (line 62) | protected void createImageCorner(ARAugmentedImage augmentedImage, Corn...
method generateCoefficent (line 96) | private void generateCoefficent(float[] coefficient, int coefficentX, ...
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/AugmentedImage/ImageKeyLineDisplay.java
class ImageKeyLineDisplay (line 28) | public class ImageKeyLineDisplay extends ImageKeyBase {
method ImageKeyLineDisplay (line 47) | public ImageKeyLineDisplay(ColorRGBA lineColor, float lineWidth) {
method init (line 55) | public void init() {
method createProgram (line 67) | @Override
method onDrawFrame (line 82) | public void onDrawFrame(ARAugmentedImage augmentedImage, float[] viewM...
method draw (line 94) | private void draw(ARAugmentedImage augmentedImage, float[] viewProject...
method updateImageKeyLineData (line 106) | private void updateImageKeyLineData(float[] cornerPoints) {
method drawImageLine (line 130) | private void drawImageLine(float[] viewProjectionMatrix) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/AugmentedImage/ImageKeyPointDisplay.java
class ImageKeyPointDisplay (line 29) | public class ImageKeyPointDisplay extends ImageKeyBase {
method ImageKeyPointDisplay (line 53) | public ImageKeyPointDisplay(ColorRGBA pointColor, float pointSize) {
method init (line 61) | public void init() {
method createProgram (line 74) | @Override
method onDrawFrame (line 90) | public void onDrawFrame(ARAugmentedImage augmentedImage, float[] viewM...
method draw (line 96) | private void draw(ARAugmentedImage augmentedImage, float[] viewProject...
method createImageCenterPoint (line 118) | private void createImageCenterPoint(ARAugmentedImage augmentedImage) {
method mergeArray (line 134) | private void mergeArray(float[] centerCoordinates, float[] cornerCoord...
method updateImageAllPoints (line 146) | private void updateImageAllPoints(float[] cornerPoints) {
method drawImageKeyPoint (line 168) | private void drawImageKeyPoint(float[] viewProjectionMatrix) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/AugmentedImage/ImageShaderUtil.java
class ImageShaderUtil (line 22) | public class ImageShaderUtil {
method ImageShaderUtil (line 62) | private ImageShaderUtil() {
method getLabelProgram (line 65) | static int getLabelProgram() {
method getImageKeyMsgProgram (line 69) | static int getImageKeyMsgProgram() {
method createGlProgram (line 80) | private static int createGlProgram(String vertexCode, String fragmentC...
method loadShader (line 105) | private static int loadShader(int shaderType, String source) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/CameraConfigListener.java
type CameraConfigListener (line 21) | public interface CameraConfigListener {
method handleCameraConfigData (line 22) | void handleCameraConfigData(ARCameraConfig cameraConfig);
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/CameraIntrinsicsListener.java
type CameraIntrinsicsListener (line 21) | public interface CameraIntrinsicsListener {
method handleCameraIntrinsicsData (line 22) | void handleCameraIntrinsicsData(ARCameraIntrinsics cameraIntrinsics);
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/DisplayRotationManager.java
class DisplayRotationManager (line 26) | public class DisplayRotationManager implements DisplayManager.DisplayLis...
method DisplayRotationManager (line 33) | public DisplayRotationManager(Context context) {
method registerDisplayListener (line 40) | public void registerDisplayListener() {
method unregisterDisplayListener (line 46) | public void unregisterDisplayListener() {
method isDeviceRotated (line 52) | public boolean isDeviceRotated() {
method updateViewportRotation (line 56) | public void updateViewportRotation(int width, int height) {
method updateARSessionDisplayGeometry (line 62) | public void updateARSessionDisplayGeometry(ARSession arSession) {
method onDisplayAdded (line 67) | @Override
method onDisplayRemoved (line 71) | @Override
method onDisplayChanged (line 75) | @Override
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/GestureEvent.java
class GestureEvent (line 21) | public class GestureEvent {
method GestureEvent (line 52) | private GestureEvent() {
method getDistanceX (line 55) | public float getDistanceX() {
method getDistanceY (line 59) | public float getDistanceY() {
method getType (line 63) | public int getType() {
method getEventFirst (line 67) | public MotionEvent getEventFirst() {
method getEventSecond (line 71) | public MotionEvent getEventSecond() {
method createDownEvent (line 81) | public static GestureEvent createDownEvent(MotionEvent motionEvent) {
method createSingleTapUpEvent (line 94) | public static GestureEvent createSingleTapUpEvent(MotionEvent motionEv...
method createScrollEvent (line 110) | public static GestureEvent createScrollEvent(MotionEvent e1, MotionEve...
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/LabelDisplay.java
class LabelDisplay (line 42) | public class LabelDisplay {
method init (line 81) | public void init(ArrayList<Bitmap> labelBitmaps) {
method createProgram (line 105) | private void createProgram() {
method onDrawFrame (line 122) | public void onDrawFrame(Collection<ARPlane> allPlanes, ARPose cameraPo...
method getSortedPlanes (line 129) | private ArrayList<ARPlane> getSortedPlanes(Collection<ARPlane> allPlan...
class PlanCompare (line 162) | static class PlanCompare implements Comparator<Pair<ARPlane, Float>>, ...
method compare (line 165) | @Override
method drawSortedPlans (line 171) | private void drawSortedPlans(ArrayList<ARPlane> sortedPlanes, float[] ...
method drawLabel (line 213) | private void drawLabel(float[] cameraViews, float[] cameraProjection) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/MessageTextListener.java
type MessageTextListener (line 19) | public interface MessageTextListener {
method handleMessageData (line 20) | void handleMessageData(String text);
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/ObjectDisplay.java
class ObjectDisplay (line 47) | public class ObjectDisplay {
method setSize (line 139) | public void setSize(float width, float height) {
method ObjectDisplay (line 144) | public ObjectDisplay(String objPath, String texturePath) {
method init (line 149) | public void init(Context context) {
method createOnGlThread (line 169) | public void createOnGlThread(Context context, String objAssetName, Str...
method initGlTextureData (line 197) | private void initGlTextureData(Context context, String diffuseTextureA...
method initializeGlObjectData (line 218) | private void initializeGlObjectData(Context context, String objAssetNa...
method readObject (line 254) | private Optional<ObjectData> readObject(Context context, String objAss...
class ObjectData (line 282) | private static class ObjectData {
method ObjectData (line 293) | ObjectData(IntBuffer objInds, FloatBuffer objVerts, ShortBuffer inds...
method onDrawFrame (line 310) | public void onDrawFrame(float[] cameraView, float[] cameraProjection, ...
method hitTest (line 366) | public boolean hitTest(float[] cameraView, float[] cameraPerspective, ...
method getBoundingBox (line 437) | public float[] getBoundingBox() {
method findMaximum (line 442) | private float[] findMaximum(float[] minXmaxXminYmaxY, int[] index) {
method calculateScreenPos (line 461) | private float[] calculateScreenPos(float coordinateX, float coordinate...
method calculateBoundingBox (line 498) | private void calculateBoundingBox(FloatBuffer vertices) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/PluginCallbackHelper.java
type PluginCallbackHelper (line 23) | public interface PluginCallbackHelper {
method onDrawFrame (line 29) | void onDrawFrame(List<ARTrackable> arTrackables);
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/PointCloudRenderer.java
class PointCloudRenderer (line 27) | public class PointCloudRenderer {
method PointCloudRenderer (line 61) | public PointCloudRenderer() {
method init (line 70) | public void init(Context context) {
method onDrawFrame (line 103) | public void onDrawFrame(ARPointCloud cloud, float[] cameraView, float[...
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/SceneMesh/SceneMeshDisplay.java
class SceneMeshDisplay (line 37) | public class SceneMeshDisplay {
method SceneMeshDisplay (line 87) | public SceneMeshDisplay() {
method init (line 90) | public void init(Context context) {
method onDrawFrame (line 119) | public void onDrawFrame(ARFrame arFrame, float[] viewmtxs, float[] pro...
method updateSceneMeshData (line 131) | public void updateSceneMeshData(ARSceneMesh sceneMesh) {
method draw (line 176) | public void draw(float[] cameraView, float[] cameraPerspective) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/SceneMesh/SceneMeshDrawFrameListener.java
type SceneMeshDrawFrameListener (line 21) | public interface SceneMeshDrawFrameListener {
method onDrawFrame (line 22) | void onDrawFrame(ARSceneMesh arSceneMesh);
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/TextureDisplay.java
class TextureDisplay (line 33) | public class TextureDisplay {
method TextureDisplay (line 80) | public TextureDisplay() {
method onSurfaceChanged (line 85) | public void onSurfaceChanged(int width, int height) {
method onDrawFrame (line 89) | public void onDrawFrame(ARFrame arFrame) {
method init (line 123) | public void init() {
method init (line 131) | public void init(int textureId) {
method generateExternalTexture (line 137) | private void generateExternalTexture() {
method createProgram (line 145) | public void createProgram() {
method initBuffers (line 154) | private void initBuffers() {
method clear (line 172) | private void clear() {
method getExternalTextureId (line 177) | public int getExternalTextureId() {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/VirtualObject.java
class VirtualObject (line 25) | public class VirtualObject {
method VirtualObject (line 49) | public VirtualObject(ARAnchor arAnchor, float[] color4f) {
method finalize (line 55) | @Override
method init (line 65) | private void init() {
method setAnchor (line 81) | public void setAnchor(ARAnchor arAnchor) {
method getAnchor (line 93) | public ARAnchor getAnchor() {
method getColor (line 102) | public float[] getColor() {
method setColor (line 121) | public void setColor(float[] color) {
method getModelAnchorMatrix (line 132) | public float[] getModelAnchorMatrix() {
method getIsSelectedFlag (line 149) | public boolean getIsSelectedFlag() {
method setIsSelected (line 159) | public void setIsSelected(boolean isSelected) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/body/BodySkeletonDisplay.java
class BodySkeletonDisplay (line 33) | public class BodySkeletonDisplay {
method BodySkeletonDisplay (line 68) | public BodySkeletonDisplay(ColorRGBA pointColor, float pointSize) {
method createProgram (line 73) | private void createProgram() {
method init (line 84) | public void init() {
method updateBodySkeleton (line 99) | private void updateBodySkeleton() {
method onDrawFrame (line 117) | public void onDrawFrame(Collection<ARBody> bodies, float[] projectionM...
method drawBodySkeleton (line 131) | private void drawBodySkeleton(float coordinate, float[] projectionMatr...
method findValidSkeletonPoints (line 152) | private void findValidSkeletonPoints(ARBody arBody) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/body/BodySkeletonLineDisplay.java
class BodySkeletonLineDisplay (line 33) | public class BodySkeletonLineDisplay {
method BodySkeletonLineDisplay (line 70) | public BodySkeletonLineDisplay(ColorRGBA lineColor, float lineWidth) {
method init (line 75) | public void init() {
method createProgram (line 90) | private void createProgram() {
method drawSkeletonLine (line 101) | private void drawSkeletonLine(float coordinate, float[] projectionMatr...
method onDrawFrame (line 125) | public void onDrawFrame(Collection<ARBody> bodies, float[] projectionM...
method updateBodySkeletonLineData (line 138) | private void updateBodySkeletonLineData(ARBody body) {
method findValidConnectionSkeletonLines (line 155) | private void findValidConnectionSkeletonLines(ARBody arBody) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/face/FaceGeometryDisplay.java
class FaceGeometryDisplay (line 43) | public class FaceGeometryDisplay {
method FaceGeometryDisplay (line 108) | public FaceGeometryDisplay(Context context, ARPluginConfigBase pluginC...
method createProgram (line 151) | private void createProgram() {
method onDrawFrame (line 165) | public void onDrawFrame(ARCamera arCamera, ARFace arFace) {
method updateFaceGeometryData (line 173) | private void updateFaceGeometryData(ARFaceGeometry arFaceGeometry) {
method updateModelViewProjectionData (line 215) | private void updateModelViewProjectionData(ARCamera camera, ARFace fac...
method drawFaceGeometry (line 225) | private void drawFaceGeometry() {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/face/FaceHealtyResult.java
type FaceHealtyResult (line 19) | public interface FaceHealtyResult {
method handleResult (line 20) | void handleResult(String test);
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/hand/HandBoxDisplay.java
class HandBoxDisplay (line 37) | public class HandBoxDisplay {
method HandBoxDisplay (line 66) | public HandBoxDisplay(ARPluginConfigBase arPluginConfigHand) {
method init (line 72) | public void init() {
method createProgram (line 86) | private void createProgram() {
method onDrawFrame (line 96) | public void onDrawFrame(Collection<ARHand> arHandCollection, float[] p...
method updateHandBoundingBoxCoordinates (line 112) | private void updateHandBoundingBoxCoordinates(float[] gesturePoints) {
method renderHandBoundingBox (line 136) | private void renderHandBoundingBox() {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/hand/HandSkeletonDisplay.java
class HandSkeletonDisplay (line 33) | public class HandSkeletonDisplay {
method HandSkeletonDisplay (line 58) | public HandSkeletonDisplay(ARPluginConfigBase configBase) {
method init (line 64) | public void init() {
method createProgram (line 77) | private void createProgram() {
method onDrawFrame (line 88) | public void onDrawFrame(Collection<ARHand> hands, float[] projectionMa...
method updateHandSkeletonsData (line 110) | private void updateHandSkeletonsData(float[] handSkeletons) {
method drawHandSkeletons (line 138) | private void drawHandSkeletons(float[] projectionMatrix) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/helper/hand/HandSkeletonLineDisplay.java
class HandSkeletonLineDisplay (line 33) | public class HandSkeletonLineDisplay {
method HandSkeletonLineDisplay (line 60) | public HandSkeletonLineDisplay(ARPluginConfigBase configBase) {
method init (line 69) | public void init() {
method createProgram (line 83) | private void createProgram() {
method onDrawFrame (line 100) | public void onDrawFrame(Collection<ARHand> hands, float[] projectionMa...
method updateHandSkeletonLinesData (line 124) | private void updateHandSkeletonLinesData(float[] handSkeletons, int[] ...
method drawHandSkeletonLine (line 167) | private void drawHandSkeletonLine(float[] projectionMatrix) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/model/AugmentedImageDBModel.java
class AugmentedImageDBModel (line 19) | public class AugmentedImageDBModel {
method AugmentedImageDBModel (line 26) | public AugmentedImageDBModel() {
method AugmentedImageDBModel (line 30) | public AugmentedImageDBModel(String imgFileFromAsset, float widthInMet...
method getImgFileFromAsset (line 36) | public String getImgFileFromAsset() {
method getWidthInMeters (line 40) | public float getWidthInMeters() {
method getImgName (line 44) | public String getImgName() {
method setImgFileFromAsset (line 48) | public void setImgFileFromAsset(String imgFileFromAsset) {
method setWidthInMeters (line 52) | public void setWidthInMeters(float widthInMeters) {
method setImgName (line 56) | public void setImgName(String imgName) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/renderer/ARAugmentedImageRender.java
class ARAugmentedImageRender (line 45) | public class ARAugmentedImageRender extends ARBaseRenderer {
method ARAugmentedImageRender (line 68) | public ARAugmentedImageRender(ARSession arSession, DisplayRotationMana...
method onSurfaceCreated (line 75) | @Override
method onSurfaceChanged (line 82) | @Override
method onDrawFrame (line 87) | @Override
method drawAugmentedImages (line 129) | private void drawAugmentedImages(ARFrame frame, float[] projmtx, float...
method initTrackingImages (line 169) | private void initTrackingImages(ARAugmentedImage augmentedImage) {
method setImageTrackOnly (line 180) | public void setImageTrackOnly(boolean isOnlyImageTrack) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/renderer/ARBaseDrawObject.java
class ARBaseDrawObject (line 43) | public class ARBaseDrawObject extends ARBaseRenderer {
method ARBaseDrawObject (line 71) | public ARBaseDrawObject(ARSession arSession, DisplayRotationManager di...
method drawAllObjects (line 75) | protected void drawAllObjects(float[] projectionMatrix, float[] viewMa...
method setEnvTextureData (line 88) | protected void setEnvTextureData() {
method handleGestureEvent (line 103) | protected void handleGestureEvent(ARFrame arFrame, ARCamera arCamera, ...
method doWhenEventTypeDown (line 151) | protected void doWhenEventTypeDown(float[] viewMatrix, float[] project...
method doWhenEventTypeSingleTap (line 165) | protected void doWhenEventTypeSingleTap(ARHitResult hitResult) {
method hitTest4Result (line 183) | private ARHitResult hitTest4Result(ARFrame frame, ARCamera camera, Mot...
method calculateDistanceToPlane (line 223) | protected static float calculateDistanceToPlane(ARPose planePose, ARPo...
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/renderer/ARBaseRenderer.java
class ARBaseRenderer (line 35) | public class ARBaseRenderer implements GLSurfaceView.Renderer {
method ARBaseRenderer (line 60) | public ARBaseRenderer() {
method ARBaseRenderer (line 63) | public ARBaseRenderer(ARSession arSession, DisplayRotationManager disp...
method onSurfaceCreated (line 73) | @Override
method onSurfaceChanged (line 79) | @Override
method onDrawFrame (line 86) | @Override
method setCallbackHelper (line 98) | public void setCallbackHelper(PluginCallbackHelper callbackHelper) {
method setCameraConfigListener (line 102) | public void setCameraConfigListener(CameraConfigListener cameraConfigL...
method setCameraIntrinsicsListener (line 106) | public void setCameraIntrinsicsListener(CameraIntrinsicsListener camer...
method setMessageDataListener (line 110) | public void setMessageDataListener(MessageTextListener listener) {
method doFpsCalculate (line 114) | protected float doFpsCalculate() {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/renderer/ARBodyRenderer.java
class ARBodyRenderer (line 37) | public class ARBodyRenderer extends ARBaseRenderer {
method ARBodyRenderer (line 48) | public ARBodyRenderer(ARSession arSession, DisplayRotationManager disp...
method onSurfaceCreated (line 55) | @Override
method onDrawFrame (line 62) | @Override
method onSurfaceChanged (line 93) | @Override
method updateMessageData (line 98) | private void updateMessageData(StringBuilder sb, Collection<ARBody> bo...
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/renderer/ARCloud3DObjectRenderer.java
class ARCloud3DObjectRenderer (line 42) | public class ARCloud3DObjectRenderer extends ARBaseRenderer {
method ARCloud3DObjectRenderer (line 47) | public ARCloud3DObjectRenderer(ARSession arSession, DisplayRotationMan...
method onSurfaceCreated (line 54) | @Override
method onSurfaceChanged (line 60) | @Override
method onDrawFrame (line 65) | @Override
method setCloudServiceStateListener (line 77) | public void setCloudServiceStateListener() {
method signWithAppIdNew (line 81) | private void signWithAppIdNew() {
class CloudImageServiceListener (line 95) | public class CloudImageServiceListener implements CloudServiceListener {
method handleEvent (line 96) | @Override
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/renderer/ARFaceRenderer.java
class ARFaceRenderer (line 46) | public class ARFaceRenderer extends ARBaseRenderer implements FaceHealth...
method ARFaceRenderer (line 65) | public ARFaceRenderer(ARSession arSession, DisplayRotationManager disp...
method onSurfaceCreated (line 72) | @Override
method onSurfaceChanged (line 79) | @Override
method onDrawFrame (line 84) | @Override
method updateHealthParamTable (line 117) | private void updateHealthParamTable(final HashMap<ARFace.HealthParamet...
method setFaceHealtyListener (line 147) | public void setFaceHealtyListener(FaceHealthServiceListener faceHealty...
method setFaceHealtyResult (line 151) | public void setFaceHealtyResult(FaceHealtyResult faceHealtyResult) {
method handleProcessProgressEvent (line 155) | @Override
method handleEvent (line 161) | @Override
method updateMessageData (line 167) | private void updateMessageData(StringBuilder sb, Collection<ARFace> fa...
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/renderer/ARHandRenderer.java
class ARHandRenderer (line 42) | public class ARHandRenderer extends ARBaseRenderer {
method ARHandRenderer (line 55) | public ARHandRenderer(ARSession arSession, DisplayRotationManager disp...
method onSurfaceCreated (line 64) | @Override
method onSurfaceChanged (line 72) | @Override
method onDrawFrame (line 78) | @Override
method updateMessageData (line 122) | private void updateMessageData(StringBuilder sb, ARHand hand) {
method addHandNormalStringBuffer (line 146) | private void addHandNormalStringBuffer(StringBuilder sb, ARHand hand) {
method addGestureActionStringBuffer (line 166) | private void addGestureActionStringBuffer(StringBuilder sb, ARHand han...
method addGestureCenterStringBuffer (line 181) | private void addGestureCenterStringBuffer(StringBuilder sb, ARHand han...
method addHandSkeletonStringBuffer (line 196) | private void addHandSkeletonStringBuffer(StringBuilder sb, ARHand hand) {
method updateMessageData (line 219) | private void updateMessageData(ARFrame arFrame, StringBuilder sb) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/renderer/ARSceneMeshRenderer.java
class ARSceneMeshRenderer (line 40) | public class ARSceneMeshRenderer extends ARBaseDrawObject {
method ARSceneMeshRenderer (line 45) | public ARSceneMeshRenderer(ARSession arSession, DisplayRotationManager...
method onSurfaceCreated (line 55) | @Override
method onSurfaceChanged (line 62) | @Override
method onDrawFrame (line 68) | @Override
method updateMessageData (line 109) | private void updateMessageData(StringBuilder sb) {
method setSceneMeshListener (line 114) | public void setSceneMeshListener(SceneMeshDrawFrameListener listener) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/renderer/ARWorldBodyRenderer.java
class ARWorldBodyRenderer (line 54) | public class ARWorldBodyRenderer extends ARBaseDrawObject {
method ARWorldBodyRenderer (line 65) | public ARWorldBodyRenderer(ARSession arSession, DisplayRotationManager...
method onSurfaceCreated (line 78) | @Override
method onSurfaceChanged (line 90) | @Override
method onDrawFrame (line 96) | @Override
method updateMessageData (line 149) | private void updateMessageData(Collection<ARBody> bodies, StringBuilde...
method initLabelDisplay (line 165) | private void initLabelDisplay() {
method getBitmap (line 172) | private Bitmap getBitmap(String imageOther, String textOther, ColorRGB...
method getPlaneBitmaps (line 181) | private ArrayList<Bitmap> getPlaneBitmaps(ARPluginConfigWorldBody plug...
method getImageBitmap (line 193) | private Bitmap getImageBitmap(android.graphics.Matrix matrix, String a...
method getTextBitmap (line 203) | private Bitmap getTextBitmap(android.graphics.Matrix matrix, String te...
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/renderer/ARWorldRenderer.java
class ARWorldRenderer (line 62) | public class ARWorldRenderer extends ARBaseDrawObject {
method ARWorldRenderer (line 75) | public ARWorldRenderer(ARSession arSession, DisplayRotationManager dis...
method onSurfaceCreated (line 88) | @Override
method initLabelDisplay (line 99) | private void initLabelDisplay() {
method onSurfaceChanged (line 106) | @Override
method onDrawFrame (line 112) | @Override
method updateMessageData (line 161) | private void updateMessageData(ARFrame arFrame, StringBuilder sb) {
method getTextBitmap (line 194) | private Bitmap getTextBitmap(android.graphics.Matrix matrix, String te...
method getImageBitmap (line 206) | private Bitmap getImageBitmap(android.graphics.Matrix matrix, String a...
method getBitmap (line 216) | private Bitmap getBitmap(String imageOther, String textOther, ColorRGB...
method getPlaneBitmaps (line 225) | private ArrayList<Bitmap> getPlaneBitmaps(ARPluginConfigWorld pluginWo...
method drawAugmentedImages (line 237) | private void drawAugmentedImages(ARFrame frame, float[] projmtx, float...
method initTrackingImages (line 277) | private void initTrackingImages(ARAugmentedImage augmentedImage) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/serializer/CommonSerializer.java
class CommonSerializer (line 31) | public class CommonSerializer {
method CommonSerializer (line 32) | private CommonSerializer() {
method arCameraConfigToMap (line 35) | public static Map<String, Object> arCameraConfigToMap(ARCameraConfig c...
method arCameraIntrinsicsToMap (line 42) | public static Map<String, Object> arCameraIntrinsicsToMap(ARCameraIntr...
method arSceneMeshToMap (line 51) | public static Map<String, Object> arSceneMeshToMap(ARSceneMesh arScene...
method arPoseToMap (line 62) | static Map<String, Object> arPoseToMap(ARPose pose) {
method anchorsToList (line 103) | static List<Map<String, Object>> anchorsToList(Collection<ARAnchor> an...
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/serializer/PluginARAugmentedImageSerializer.java
class PluginARAugmentedImageSerializer (line 24) | class PluginARAugmentedImageSerializer {
method PluginARAugmentedImageSerializer (line 25) | private PluginARAugmentedImageSerializer() {
method convertARAugmentedImageToMap (line 28) | static Map<String, Object> convertARAugmentedImageToMap(ARAugmentedIma...
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/serializer/PluginARBodySerializer.java
class PluginARBodySerializer (line 24) | class PluginARBodySerializer {
method PluginARBodySerializer (line 25) | private PluginARBodySerializer() {
method convertARBodyToMap (line 28) | static Map<String, Object> convertARBodyToMap(ARBody body) {
method createIntegerEnumValuesArrayFromBodySkeletonTypes (line 47) | private static int[] createIntegerEnumValuesArrayFromBodySkeletonTypes(
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/serializer/PluginARFaceSerializer.java
class PluginARFaceSerializer (line 30) | class PluginARFaceSerializer {
method PluginARFaceSerializer (line 31) | private PluginARFaceSerializer() {
method convertARFaceToMap (line 34) | static Map<String, Object> convertARFaceToMap(ARFace arFace) {
method healthParametersToMap (line 45) | private static JSONObject healthParametersToMap(HashMap<ARFace.HealthP...
method faceBlendShapesToMap (line 58) | private static Map<String, Object> faceBlendShapesToMap(ARFaceBlendSha...
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/serializer/PluginARHandSerializer.java
class PluginARHandSerializer (line 24) | class PluginARHandSerializer {
method PluginARHandSerializer (line 25) | private PluginARHandSerializer() {
method convertARHandToMap (line 28) | static Map<String, Object> convertARHandToMap(ARHand hand) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/serializer/PluginARPlaneSerializer.java
class PluginARPlaneSerializer (line 24) | class PluginARPlaneSerializer {
method PluginARPlaneSerializer (line 25) | private PluginARPlaneSerializer() {
method convertARPlaneToMap (line 28) | static Map<String, Object> convertARPlaneToMap(ARPlane plane) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/serializer/PluginARTargetSerializer.java
class PluginARTargetSerializer (line 24) | class PluginARTargetSerializer {
method PluginARTargetSerializer (line 25) | private PluginARTargetSerializer() {
method convertARTargetToMap (line 28) | static Map<String, Object> convertARTargetToMap(ARTarget target) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/serializer/PluginARTrackableSerializer.java
class PluginARTrackableSerializer (line 32) | public class PluginARTrackableSerializer {
method PluginARTrackableSerializer (line 33) | private PluginARTrackableSerializer() {
method serialize (line 36) | public static List<Map<String, Object>> serialize(Collection<ARTrackab...
method serialize (line 44) | public static Map<String, Object> serialize(ARTrackable arTrackable) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/util/AREngineAvailability.java
class AREngineAvailability (line 25) | public final class AREngineAvailability {
method AREngineAvailability (line 34) | private AREngineAvailability() {
method isArEngineServiceApkReady (line 37) | public static boolean isArEngineServiceApkReady(Context context) {
method navigateToAppMarketPage (line 41) | public static void navigateToAppMarketPage(Activity activity) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/util/ApplicationUtil.java
class ApplicationUtil (line 34) | public class ApplicationUtil {
method readApplicationMessage (line 51) | public static String readApplicationMessage(Context context) {
method getJson (line 68) | public static String getJson(String fileName, Context context) {
method json2List (line 113) | public static List<ModeInformation> json2List(String jsonFile) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/util/BodyShaderUtil.java
class BodyShaderUtil (line 19) | public class BodyShaderUtil {
method BodyShaderUtil (line 32) | private BodyShaderUtil() {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/util/ErrorUtil.java
class ErrorUtil (line 24) | public final class ErrorUtil {
method ErrorUtil (line 27) | private ErrorUtil() {
method checkGLError (line 30) | public static void checkGLError(String tag, String label) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/util/HandShaderUtil.java
class HandShaderUtil (line 19) | public class HandShaderUtil {
method HandShaderUtil (line 41) | private HandShaderUtil() {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/util/MatrixUtil.java
class MatrixUtil (line 21) | public final class MatrixUtil {
method MatrixUtil (line 24) | private MatrixUtil() {
method getProjectionMatrix (line 27) | public static void getProjectionMatrix(float[] matrix, int width, int ...
method normalizeVec3 (line 40) | public static void normalizeVec3(float[] vector) {
method getIdentityMatrix (line 47) | public static float[] getIdentityMatrix() {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/util/ModeInformation.java
class ModeInformation (line 19) | public class ModeInformation {
method ModeInformation (line 30) | public ModeInformation(String information, String continents) {
method getContinents (line 40) | public String getContinents() {
method getModeInformation (line 49) | public String getModeInformation() {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/util/OpenGLUtil.java
class OpenGLUtil (line 22) | public final class OpenGLUtil {
method OpenGLUtil (line 25) | private OpenGLUtil() {
method createGlProgram (line 28) | public static int createGlProgram(String vertexSource, String fragment...
method loadShader (line 55) | private static int loadShader(int shaderType, String source) {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/util/SceneMeshShaderUtil.java
class SceneMeshShaderUtil (line 19) | public class SceneMeshShaderUtil {
method SceneMeshShaderUtil (line 34) | private SceneMeshShaderUtil() {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/plugin/ar/core/util/WorldShaderUtil.java
class WorldShaderUtil (line 19) | public class WorldShaderUtil {
method WorldShaderUtil (line 66) | private WorldShaderUtil() {
method getLabelProgram (line 69) | public static int getLabelProgram() {
method getObjectProgram (line 73) | public static int getObjectProgram() {
method getPointCloudProgram (line 77) | public static int getPointCloudProgram() {
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/rn/ar/ARSurfaceView.java
class ARSurfaceView (line 58) | public class ARSurfaceView extends SimpleViewManager<GLSurfaceView> {
method ARSurfaceView (line 63) | public ARSurfaceView(ReactApplicationContext reactContext) {
method getName (line 68) | @NonNull
method createViewInstance (line 74) | @NonNull
method setCommonConfig (line 80) | private void setCommonConfig(ReadableMap params, ARPluginConfigBase co...
method setPointLineConfig (line 105) | private void setPointLineConfig(ReadableMap params, ARPluginConfigBase...
method setWorldConfig (line 127) | private void setWorldConfig(ReadableMap params, ARPluginConfigBaseWorl...
method getBodyConfig (line 221) | private ARPluginConfigBody getBodyConfig(ReadableMap params) {
method getFaceConfig (line 230) | private ARPluginConfigFace getFaceConfig(ReadableMap params) {
method getHandConfig (line 263) | private ARPluginConfigHand getHandConfig(ReadableMap params) {
method getWorldConfig (line 288) | private ARPluginConfigWorld getWorldConfig(ReadableMap params) {
method getWorldBodyConfig (line 323) | private ARPluginConfigWorldBody getWorldBodyConfig(ReadableMap params) {
method getAugmentedImageConfig (line 337) | private ARPluginConfigAugmentedImage getAugmentedImageConfig(ReadableM...
method getSceneMeshConfig (line 350) | private ARPluginConfigSceneMesh getSceneMeshConfig(ReadableMap params) {
method setConfig (line 365) | @ReactProp(name = "config")
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/rn/ar/HmsARModule.java
class HmsARModule (line 34) | public class HmsARModule extends ReactContextBaseJavaModule {
method HmsARModule (line 39) | public HmsARModule(ReactApplicationContext reactContext) {
method getName (line 45) | @NonNull
method getConstants (line 51) | @Nullable
method isAREngineReady (line 57) | @ReactMethod
method navigateToAppMarket (line 63) | @ReactMethod
method disableLogger (line 71) | @ReactMethod
method enableLogger (line 76) | @ReactMethod
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/rn/ar/HmsARPackage.java
class HmsARPackage (line 29) | public class HmsARPackage implements ReactPackage {
method createNativeModules (line 30) | @NonNull
method createViewManagers (line 36) | @NonNull
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/rn/ar/logger/HMSLogger.java
class HMSLogger (line 36) | public final class HMSLogger {
method HMSLogger (line 92) | private HMSLogger(final Context context) {
method getInstance (line 111) | public static synchronized HMSLogger getInstance(final Context context) {
method getContext (line 127) | private synchronized Context getContext() {
method enableLogger (line 134) | public synchronized void enableLogger() {
method disableLogger (line 142) | public synchronized void disableLogger() {
method startMethodExecutionTimer (line 152) | public synchronized void startMethodExecutionTimer(final String method...
method sendSingleEvent (line 161) | public synchronized void sendSingleEvent(final String methodName) {
method sendSingleEvent (line 171) | public synchronized void sendSingleEvent(final String methodName, fina...
method sendPeriodicEvent (line 180) | public synchronized void sendPeriodicEvent(final String methodName) {
method sendPeriodicEvent (line 190) | public synchronized void sendPeriodicEvent(final String methodName, fi...
method sendEvent (line 201) | private synchronized void sendEvent(final String eventId, final String...
method getAppId (line 224) | private synchronized String getAppId() {
method getAppVersionName (line 239) | private synchronized String getAppVersionName(final String packageName) {
method getNetworkType (line 253) | private synchronized String getNetworkType() {
method setupEventMap (line 279) | private synchronized void setupEventMap(final Map<String, Object> map) {
method putToSingleEventMap (line 297) | private synchronized void putToSingleEventMap(final String methodName,...
method putToPeriodicEventMap (line 315) | private synchronized void putToPeriodicEventMap(final String methodNam...
method createNetworkTypeMap (line 352) | private synchronized Map<Integer, String> createNetworkTypeMap() {
method increaseResultCodeCount (line 385) | private synchronized void increaseResultCodeCount(final String methodN...
method increaseMapValue (line 398) | private synchronized void increaseMapValue(final String key, final Map...
method getOrDefault (line 412) | private synchronized <K, V> V getOrDefault(final Map<K, V> map, final ...
method putIfAbsent (line 425) | private synchronized <K, V> void putIfAbsent(final Map<K, V> map, fina...
method objectCast (line 440) | private synchronized <S, D> D objectCast(final S source, final Class<D...
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/rn/ar/utils/Converter.java
class Converter (line 47) | public class Converter {
method hasValidKey (line 50) | public static boolean hasValidKey(ReadableMap rm, String key, Readable...
method hasValidElement (line 54) | public static boolean hasValidElement(ReadableArray ra, int index, Rea...
method toColorRGBA (line 58) | public static ColorRGBA toColorRGBA(final ReadableMap rm) {
method arTrackableToWritableMap (line 80) | public static WritableMap arTrackableToWritableMap(List<ARTrackable> a...
method arCameraConfigToWritableMap (line 88) | public static WritableMap arCameraConfigToWritableMap(ARCameraConfig c...
method arCameraIntrinsicsToWritableMap (line 93) | public static WritableMap arCameraIntrinsicsToWritableMap(ARCameraIntr...
method arSceneMeshToWritableMap (line 98) | public static WritableMap arSceneMeshToWritableMap(ARSceneMesh arScene...
method IntToLightEnum (line 103) | public static int IntToLightEnum(int val) {
method IntToFocusModeEnum (line 125) | public static ARConfigBase.FocusMode IntToFocusModeEnum(int val) {
method IntToPowerModeEnum (line 132) | public static ARConfigBase.PowerMode IntToPowerModeEnum(int val) {
method IntToUpdateModeEnum (line 144) | public static ARConfigBase.UpdateMode IntToUpdateModeEnum(int val) {
method IntToPlaneFindingModeEnum (line 151) | public static ARConfigBase.PlaneFindingMode IntToPlaneFindingModeEnum(...
method toWritableMap (line 163) | public static WritableMap toWritableMap(final Map<String, Object> map) {
method toWritableArray (line 203) | private static WritableArray toWritableArray(List<Object> array) {
method toAugmentedImageDBModelList (line 235) | public static List<AugmentedImageDBModel> toAugmentedImageDBModelList(...
FILE: react-native-hms-ar/android/src/main/java/com/huawei/hms/rn/ar/utils/EnumGenerator.java
class EnumGenerator (line 32) | public class EnumGenerator {
method getConstants (line 34) | public static Map<String, Object> getConstants() {
method getSemanticMode (line 53) | public static Map<String, Object> getSemanticMode() {
method getPowerMode (line 62) | public static Map<String, Object> getPowerMode() {
method getFocusMode (line 71) | public static Map<String, Object> getFocusMode() {
method getUpdateMode (line 78) | public static Map<String, Object> getUpdateMode() {
method getPlaneFindingMode (line 85) | public static Map<String, Object> getPlaneFindingMode() {
method getCameraLensFacing (line 94) | public static Map<String, Object> getCameraLensFacing() {
method getLightMode (line 101) | public static Map<String, Object> getLightMode() {
method getTracingState (line 111) | public static Map<String, Object> getTracingState() {
method getHandTypes (line 120) | public static Map<String, Object> getHandTypes() {
method getHandSkeletonType (line 128) | public static Map<String, Object> getHandSkeletonType() {
method getBodySkeletonType (line 156) | public static Map<String, Object> getBodySkeletonType() {
method getSemanticPlaneLabel (line 186) | public static Map<String, Object> getSemanticPlaneLabel() {
method getPlaneTypes (line 200) | public static Map<String, Object> getPlaneTypes() {
method getCoordinateSystemType (line 209) | public static Map<String, Object> getCoordinateSystemType() {
FILE: react-native-hms-ar/example/App.js
class Hand (line 108) | class Hand extends React.Component {
method render (line 113) | render() {
class Body (line 143) | class Body extends React.Component {
method render (line 148) | render() {
class Face (line 170) | class Face extends React.Component {
method render (line 179) | render() {
class World (line 238) | class World extends React.Component {
method render (line 243) | render() {
class WorldBody (line 319) | class WorldBody extends React.Component {
method render (line 324) | render() {
class SceneMesh (line 347) | class SceneMesh extends React.Component {
method render (line 352) | render() {
class App (line 412) | class App extends React.Component {
method constructor (line 413) | constructor() {
method componentDidMount (line 427) | componentDidMount() {
method componentWillUnmount (line 438) | componentWillUnmount() {
method render (line 457) | render() {
FILE: react-native-hms-ar/example/android/app/src/main/java/com/huawei/hms/rn/ar/demo/MainActivity.java
class MainActivity (line 21) | public class MainActivity extends ReactActivity {
method getMainComponentName (line 22) | @Override
FILE: react-native-hms-ar/example/android/app/src/main/java/com/huawei/hms/rn/ar/demo/MainApplication.java
class MainApplication (line 29) | public class MainApplication extends Application implements ReactApplica...
method getUseDeveloperSupport (line 32) | @Override
method getPackages (line 37) | @Override
method getJSMainModuleName (line 43) | @Override
method getReactNativeHost (line 49) | @Override
method onCreate (line 54) | @Override
FILE: react-native-hms-ar/src/index.d.ts
type AugmentedImageObject (line 21) | interface AugmentedImageObject {
type PlaneText (line 39) | interface PlaneText extends RGBAColor {
type PlaneImage (line 47) | interface PlaneImage {
type RGBAColor (line 55) | interface RGBAColor {
type Semantic (line 62) | interface Semantic {
type HandDetail (line 67) | interface HandDetail {
type Hand (line 145) | interface Hand {
type Hand (line 149) | interface Hand {
type HandProps (line 153) | interface HandProps extends BaseProps {
type BodyDetail (line 161) | interface BodyDetail {
type Body (line 219) | interface Body {
type BodyProps (line 223) | interface BodyProps extends BaseProps {
type Healty (line 231) | interface Healty {
type FaceDetail (line 249) | interface FaceDetail {
type Face (line 317) | interface Face {
type FaceProps (line 321) | interface FaceProps extends BaseProps {
type WorldDetail (line 329) | interface WorldDetail {
type World (line 446) | interface World {
type WorldProps (line 450) | interface WorldProps extends BaseProps {
type AugmentedImageDetail (line 458) | interface AugmentedImageDetail {
type AugmentedImage (line 521) | interface AugmentedImage {
type AugmentedImageProps (line 525) | interface AugmentedImageProps extends DrawProps, HandleCameraProps {
type WorldBodyDetail (line 533) | interface WorldBodyDetail {
type WorldBody (line 651) | interface WorldBody {
type WorldBodyProps (line 655) | interface WorldBodyProps extends BaseProps {
type SceneMeshDetail (line 663) | interface SceneMeshDetail {
type SceneMesh (line 693) | interface SceneMesh {
type SceneMeshProps (line 697) | interface SceneMeshProps extends BaseProps {
class ARView (line 705) | class ARView extends Component< HandProps | FaceProps | WorldBodyProps |...
class HmsARModule (line 709) | class HmsARModule {
type BaseProps (line 747) | interface BaseProps extends DrawProps, MessageListenerProps, HandleCamer...
type DrawProps (line 749) | interface DrawProps {
type MessageListenerProps (line 756) | interface MessageListenerProps {
type HandleCameraProps (line 760) | interface HandleCameraProps {
type LightMode (line 768) | enum LightMode {
type CameraLensFacing (line 799) | enum CameraLensFacing {
type SemanticMode (line 815) | enum SemanticMode {
type PowerMode (line 841) | enum PowerMode {
type FocusMode (line 867) | enum FocusMode {
type UpdateMode (line 883) | enum UpdateMode {
type PlaneFindingMode (line 899) | enum PlaneFindingMode {
type TracingState (line 925) | enum TracingState {
type HandTypes (line 951) | enum HandTypes {
type HandSkeletonType (line 972) | enum HandSkeletonType {
type BodySkeletonType (line 1093) | enum BodySkeletonType {
type SemanticPlaneLabel (line 1223) | enum SemanticPlaneLabel {
type PlaneTypes (line 1274) | enum PlaneTypes {
type CoordinateSystemType (line 1300) | enum CoordinateSystemType {
FILE: react-native-hms-ar/src/index.js
class ARView (line 23) | class ARView extends React.Component {
method constructor (line 24) | constructor(props) {
method componentDidMount (line 28) | componentDidMount() {
method render (line 48) | render() {
FILE: react-native-hms-availability/android/src/main/java/com/huawei/hms/rn/availability/HMSAvailabilityModule.java
class HMSAvailabilityModule (line 37) | public class HMSAvailabilityModule extends ReactContextBaseJavaModule {
method HMSAvailabilityModule (line 41) | HMSAvailabilityModule(ReactApplicationContext reactContext) {
method getName (line 46) | @NonNull
method getConstants (line 52) | @Override
method isHuaweiMobileServicesAvailableWithoutParam (line 67) | @ReactMethod
method isHuaweiMobileServicesAvailableWithParam (line 74) | @ReactMethod
method getApiMap (line 81) | @ReactMethod
method getServicesVersionCode (line 88) | @ReactMethod
method getErrorString (line 94) | @ReactMethod
method isUserResolvableError (line 100) | @ReactMethod
method isHuaweiMobileNoticeAvailable (line 106) | @ReactMethod
method resolveError (line 113) | @ReactMethod
method setServicesVersionCode (line 119) | @ReactMethod
method showErrorDialogFragment (line 125) | @ReactMethod
method sendEvent (line 136) | private void sendEvent(ReactContext reactContext, String eventName) {
method showErrorNotification (line 140) | @ReactMethod
FILE: react-native-hms-availability/android/src/main/java/com/huawei/hms/rn/availability/HMSAvailabilityPackage.java
class HMSAvailabilityPackage (line 30) | public class HMSAvailabilityPackage implements ReactPackage {
method createNativeModules (line 31) | @NonNull
method createViewManagers (line 37) | @Override
FILE: react-native-hms-availability/android/src/main/java/com/huawei/hms/rn/availability/Util.java
class Util (line 24) | public class Util {
method Util (line 26) | private Util() {
method mapToWM (line 29) | public static WritableMap mapToWM(Map<String, Integer> map) {
FILE: react-native-hms-availability/example/android/app/src/main/java/com/huawei/hms/rn/availability/demo/MainActivity.java
class MainActivity (line 21) | public class MainActivity extends ReactActivity {
method getMainComponentName (line 22) | @Override
FILE: react-native-hms-availability/example/android/app/src/main/java/com/huawei/hms/rn/availability/demo/MainApplication.java
class MainApplication (line 29) | public class MainApplication extends Application implements ReactApplica...
method getUseDeveloperSupport (line 31) | @Override
method getPackages (line 36) | @Override
method getJSMainModuleName (line 43) | @Override
method getReactNativeHost (line 49) | @Override
method onCreate (line 54) | @Override
FILE: react-native-hms-availability/example/src/App.js
class App (line 41) | class App extends React.Component {
method componentDidMount (line 43) | componentDidMount() {
method componentWillUnmount (line 49) | componentWillUnmount(){
method isHuaweiMobileServicesAvailable (line 53) | isHuaweiMobileServicesAvailable() {
method getApiMap (line 60) | getApiMap() {
method getServicesVersionCode (line 66) | getServicesVersionCode() {
method getErrorString (line 72) | getErrorString(errorCode = ErrorCode.HMS_CORE_APK_OUT_OF_DATE) {
method resolveError (line 78) | resolveError() {
method isUserResolvableError (line 84) | isUserResolvableError() {
method isHuaweiMobileNoticeAvailable (line 90) | isHuaweiMobileNoticeAvailable() {
method setServicesVersionCode (line 96) | setServicesVersionCode() {
method showErrorDialogFragment (line 102) | showErrorDialogFragment() {
method showErrorNotification (line 108) | showErrorNotification() {
method render (line 113) | render(){
FILE: react-native-hms-availability/src/Availability.js
class HMSAvailability (line 20) | class HMSAvailability {
method OnErrorDialogFragmentCancelledListenerAdd (line 25) | static OnErrorDialogFragmentCancelledListenerAdd(handler){
method OnErrorDialogFragmentCancelledListenerRemove (line 31) | static OnErrorDialogFragmentCancelledListenerRemove(handler){
method isHuaweiMobileServicesAvailable (line 36) | static isHuaweiMobileServicesAvailable(minApkVersion){
method getApiMap (line 44) | static getApiMap(){
method getServicesVersionCode (line 48) | static getServicesVersionCode(){
method setServicesVersionCode (line 52) | static setServicesVersionCode(versionCode){
method getErrorString (line 56) | static getErrorString(errorCode){
method resolveError (line 60) | static resolveError(errorCode, requestCode){
method isUserResolvableError (line 64) | static isUserResolvableError(errorCode){
method isHuaweiMobileNoticeAvailable (line 68) | static isHuaweiMobileNoticeAvailable(){
method setServicesVersionCode (line 72) | static setServicesVersionCode(versionCode){
method showErrorDialogFragment (line 76) | static showErrorDialogFragment(errorCode, resultCode){
method showErrorNotification (line 80) | static showErrorNotification(errorCode){
FILE: react-native-hms-availability/src/index.d.ts
type ErrorCode (line 19) | enum ErrorCode {
type ApiMap (line 28) | interface ApiMap {
class HMSAvailability (line 39) | class HMSAvailability{
FILE: react-native-hms-awareness/android/src/main/java/com/huawei/hms/rn/awareness/HMSAwarenessPackage.java
class HMSAwarenessPackage (line 33) | public class HMSAwarenessPackage implements ReactPackage {
method createNativeModules (line 34) | @NonNull
method createViewManagers (line 44) | @NonNull
FILE: react-native-hms-awareness/android/src/main/java/com/huawei/hms/rn/awareness/constants/Constants.java
class Constants (line 38) | public class Constants {
method getAllConstants (line 324) | public static Map<String, Object> getAllConstants() {
FILE: react-native-hms-awareness/android/src/main/java/com/huawei/hms/rn/awareness/constants/LocaleConstants.java
class LocaleConstants (line 33) | public class LocaleConstants {
FILE: react-native-hms-awareness/android/src/main/java/com/huawei/hms/rn/awareness/logger/HMSLogger.java
class HMSLogger (line 36) | public final class HMSLogger {
method HMSLogger (line 76) | private HMSLogger(final Context context) {
method getInstance (line 95) | public static synchronized HMSLogger getInstance(final Context context) {
method getContext (line 111) | private synchronized Context getContext() {
method enableLogger (line 118) | public synchronized void enableLogger() {
method disableLogger (line 126) | public synchronized void disableLogger() {
method startMethodExecutionTimer (line 136) | public synchronized void startMethodExecutionTimer(final String method...
method sendSingleEvent (line 145) | public synchronized void sendSingleEvent(final String methodName) {
method sendSingleEvent (line 155) | public synchronized void sendSingleEvent(final String methodName, fina...
method sendPeriodicEvent (line 164) | public synchronized void sendPeriodicEvent(final String methodName) {
method sendPeriodicEvent (line 174) | public synchronized void sendPeriodicEvent(final String methodName, fi...
method sendEvent (line 185) | private synchronized void sendEvent(final String eventId, final String...
method getAppId (line 208) | private synchronized String getAppId() {
method getAppVersionName (line 223) | private synchronized String getAppVersionName(final String packageName) {
method getNetworkType (line 237) | private synchronized String getNetworkType() {
method setupEventMap (line 263) | private synchronized void setupEventMap(final Map<String, Object> map) {
method putToSingleEventMap (line 281) | private synchronized void putToSingleEventMap(final String methodName,...
method putToPeriodicEventMap (line 298) | private synchronized void putToPeriodicEventMap(final String methodNam...
method createNetworkTypeMap (line 335) | private synchronized Map<Integer, String> createNetworkTypeMap() {
method increaseResultCodeCount (line 368) | private synchronized void increaseResultCodeCount(final String methodN...
method increaseMapValue (line 381) | private synchronized void increaseMapValue(final String key, final Map...
method getOrDefault (line 395) | private synchronized <K, V> V getOrDefault(final Map<K, V> map, final ...
method putIfAbsent (line 408) | private synchronized <K, V> void putIfAbsent(final Map<K, V> map, fina...
method objectCast (line 423) | private synchronized <S, D> D objectCast(final S source, final Class<D...
FILE: react-native-hms-awareness/android/src/main/java/com/huawei/hms/rn/awareness/modules/HMSAwarenessBarrierModule.java
class HMSAwarenessBarrierModule (line 48) | public class HMSAwarenessBarrierModule extends ReactContextBaseJavaModule {
method HMSAwarenessBarrierModule (line 56) | public HMSAwarenessBarrierModule(ReactApplicationContext reactContext) {
method getName (line 78) | @NonNull
method setBackgroundNotification (line 90) | @ReactMethod
method queryBarrier (line 121) | @ReactMethod
method queryAllBarrier (line 131) | @ReactMethod
method updateBarrier (line 144) | @ReactMethod
method combinationBarrier (line 157) | @ReactMethod
method deleteBarrier (line 168) | @ReactMethod
method deleteAllBarrier (line 178) | @ReactMethod
method getConstants (line 188) | @Nullable
FILE: react-native-hms-awareness/android/src/main/java/com/huawei/hms/rn/awareness/modules/HMSAwarenessCaptureModule.java
class HMSAwarenessCaptureModule (line 31) | public class HMSAwarenessCaptureModule extends ReactContextBaseJavaModule {
method HMSAwarenessCaptureModule (line 35) | public HMSAwarenessCaptureModule(ReactApplicationContext reactContext) {
method getName (line 40) | @NonNull
method getBeaconStatus (line 52) | @ReactMethod
method getBehavior (line 63) | @ReactMethod
method getHeadsetStatus (line 73) | @ReactMethod
method getLocation (line 83) | @ReactMethod
method getCurrentLocation (line 93) | @ReactMethod
method getTimeCategories (line 103) | @ReactMethod
method getTimeCategoriesByUser (line 114) | @ReactMethod
method getTimeCategoriesByCountryCode (line 125) | @ReactMethod
method getTimeCategoriesByIP (line 135) | @ReactMethod
method getTimeCategoriesForFuture (line 146) | @ReactMethod
method getLightIntensity (line 156) | @ReactMethod
method getWeatherByDevice (line 166) | @ReactMethod
method getWeatherByPosition (line 177) | @ReactMethod
method getBluetoothStatus (line 187) | @ReactMethod
method querySupportingCapabilities (line 197) | @ReactMethod
method enableUpdateWindow (line 209) | @ReactMethod
method getScreenStatus (line 219) | @ReactMethod
method getWifiStatus (line 229) | @ReactMethod
method getApplicationStatus (line 239) | @ReactMethod
method getDarkModeStatus (line 249) | @RequiresApi(api = Build.VERSION_CODES.Q)
FILE: react-native-hms-awareness/android/src/main/java/com/huawei/hms/rn/awareness/modules/HMSLoggerModule.java
class HMSLoggerModule (line 31) | public class HMSLoggerModule extends ReactContextBaseJavaModule {
method HMSLoggerModule (line 36) | public HMSLoggerModule(ReactApplicationContext reactContext) {
method getName (line 41) | @NonNull
method enableLogger (line 52) | @ReactMethod
method disableLogger (line 68) | @ReactMethod
FILE: react-native-hms-awareness/android/src/main/java/com/huawei/hms/rn/awareness/utils/BackgroundBarrierReceiver.java
class BackgroundBarrierReceiver (line 29) | public class BackgroundBarrierReceiver extends BroadcastReceiver {
method onReceive (line 32) | @Override
FILE: react-native-hms-awareness/android/src/main/java/com/huawei/hms/rn/awareness/utils/BarrierReceiver.java
class BarrierReceiver (line 37) | public class BarrierReceiver extends BroadcastReceiver {
method BarrierReceiver (line 40) | public BarrierReceiver(ReactContext reactContext) {
method onReceive (line 44) | @Override
method isAppOnForeground (line 67) | public static boolean isAppOnForeground(Context context) {
FILE: react-native-hms-awareness/android/src/main/java/com/huawei/hms/rn/awareness/utils/DataUtils.java
class DataUtils (line 85) | public class DataUtils {
type IntType (line 87) | public enum IntType {
method IntType (line 93) | IntType(int IntType) {
method barrierStatusConvertToMap (line 108) | public static WritableMap barrierStatusConvertToMap(BarrierStatus obj) {
method barrierStatusConvertToJSONObject (line 136) | public static JSONObject barrierStatusConvertToJSONObject(BarrierStatu...
method barrierStatusMapConvertToJSONObject (line 162) | public static JSONObject barrierStatusMapConvertToJSONObject(BarrierSt...
method barrierQueryResConvertToMap (line 195) | public static void barrierQueryResConvertToMap(BarrierQueryResponse ob...
method weatherPositionReqObjToWeatherPosition (line 222) | public static WeatherPosition weatherPositionReqObjToWeatherPosition(R...
method beaconStatusResponseConvertToMap (line 253) | public static void beaconStatusResponseConvertToMap(BeaconStatusRespon...
method behaviorResponseConvertToMap (line 292) | public static void behaviorResponseConvertToMap(BehaviorResponse obj, ...
method headsetStatusResponseConvertToMap (line 329) | public static void headsetStatusResponseConvertToMap(HeadsetStatusResp...
method timeCategoriesResponseConvertToMap (line 351) | public static void timeCategoriesResponseConvertToMap(TimeCategoriesRe...
method locationResponseConvertToMap (line 372) | public static void locationResponseConvertToMap(LocationResponse obj, ...
method ambientLightResponseConvertToMap (line 426) | public static void ambientLightResponseConvertToMap(AmbientLightRespon...
method weatherStatusResponseConvertToMap (line 448) | public static void weatherStatusResponseConvertToMap(WeatherStatusResp...
method bluetoothStatusResponseConvertToMap (line 497) | public static void bluetoothStatusResponseConvertToMap(BluetoothStatus...
method capabilityResponseConvertToMap (line 521) | public static void capabilityResponseConvertToMap(CapabilityResponse o...
method screenStatusResponseConvertToMap (line 543) | public static void screenStatusResponseConvertToMap(ScreenStatusRespon...
method wifiStatusResponseConvertToMap (line 563) | public static void wifiStatusResponseConvertToMap(WifiStatusResponse o...
method applicationStatusResponseConvertToMap (line 583) | public static void applicationStatusResponseConvertToMap(ApplicationSt...
method darkModeStatusResponseConvertToMap (line 604) | public static void darkModeStatusResponseConvertToMap(DarkModeStatusRe...
method valueConvertToMap (line 630) | public static <T> void valueConvertToMap(String key, T instance, Strin...
method valueConvertToMap (line 651) | public static <T> WritableMap valueConvertToMap(String key, T instance) {
method darkModeStatusConvertToJSONObject (line 669) | private static JSONObject darkModeStatusConvertToJSONObject(DarkModeSt...
method applicationStatusConvertToJSONObject (line 690) | private static JSONObject applicationStatusConvertToJSONObject(Applica...
method wifiStatusConvertToJSONObject (line 712) | private static JSONObject wifiStatusConvertToJSONObject(WifiStatus obj) {
method screenStatusConvertToJSONObject (line 736) | private static JSONObject screenStatusConvertToJSONObject(ScreenStatus...
method detectedBehaviorConvertToJSONObject (line 758) | private static JSONObject detectedBehaviorConvertToJSONObject(Detected...
method weatherSituationConvertToJSONObject (line 780) | private static JSONObject weatherSituationConvertToJSONObject(WeatherS...
method cityConvertToJSONObject (line 803) | private static JSONObject cityConvertToJSONObject(City obj) {
method situationConvertToJSONObject (line 826) | private static JSONObject situationConvertToJSONObject(Situation obj) {
method aqiConvertToJSONObject (line 861) | private static JSONObject aqiConvertToJSONObject(Aqi obj) {
method dailyWeatherConvertToJSONObject (line 888) | private static JSONObject dailyWeatherConvertToJSONObject(DailyWeather...
method dailySituationConvertToJSONObject (line 921) | private static JSONObject dailySituationConvertToJSONObject(DailySitua...
method hourlyWeatherConvertToJSONObject (line 948) | private static JSONObject hourlyWeatherConvertToJSONObject(HourlyWeath...
method liveInfoConvertToJSONObject (line 978) | private static JSONObject liveInfoConvertToJSONObject(LiveInfo obj) {
method dailyLiveInfoConvertToJSONObject (line 1006) | private static JSONObject dailyLiveInfoConvertToJSONObject(DailyLiveIn...
method intArrayConvertToJSONArray (line 1029) | private static JSONArray intArrayConvertToJSONArray(int[] intArray, In...
method readableArrayConvertToIntArray (line 1066) | public static int[] readableArrayConvertToIntArray(ReadableArray reada...
method toWritableMap (line 1085) | public static WritableMap toWritableMap(final JSONObject j) {
method toWritableArray (line 1124) | public static WritableArray toWritableArray(final JSONArray jsonArray) {
method errorMessage (line 1166) | public static <T> void errorMessage(ReactContext context, String metho...
method errorMessage (line 1214) | public static <T> void errorMessage(String method, T error, Promise pr...
FILE: react-native-hms-awareness/android/src/main/java/com/huawei/hms/rn/awareness/utils/TaskService.java
class TaskService (line 39) | public class TaskService extends HeadlessJsTaskService {
method getNotification (line 44) | public Notification getNotification() {
method onCreate (line 61) | @Override
method getMainActivityClass (line 72) | public Class getMainActivityClass() {
method getTaskConfig (line 84) | @Nullable
FILE: react-native-hms-awareness/android/src/main/java/com/huawei/hms/rn/awareness/wrapper/AwarenessBarrierWrapper.java
class AwarenessBarrierWrapper (line 58) | public class AwarenessBarrierWrapper {
method AwarenessBarrierWrapper (line 72) | public AwarenessBarrierWrapper(@NonNull ReactContext reactContext, @No...
method queryBarrier (line 77) | public void queryBarrier(ReadableArray array, Promise promise) {
method queryAllBarrier (line 98) | public void queryAllBarrier(Promise promise) {
method deleteBarrier (line 114) | public void deleteBarrier(ReadableArray labels, Promise promise) {
method deleteAllBarrier (line 136) | public void deleteAllBarrier(Promise promise) {
method updateBarrier (line 153) | public void updateBarrier(String barrierType, ReadableMap map, Promise...
method addBarrier (line 188) | private void addBarrier(String barrierReceiverAction, ReadableMap map,...
method barrierReceiverActionControl (line 221) | private String barrierReceiverActionControl(ReadableMap map, Promise p...
method barrierLabelControl (line 239) | private String barrierLabelControl(ReadableMap map, Promise promise) {
method headsetBarrier (line 255) | private void headsetBarrier(ReadableMap map, Promise promise) {
method ambientLightBarrier (line 282) | private void ambientLightBarrier(ReadableMap map, Promise promise) {
method ambientLightBarrierAbove (line 304) | private void ambientLightBarrierAbove(ReadableMap map, Promise promise) {
method ambientLightBarrierBelow (line 313) | private void ambientLightBarrierBelow(ReadableMap map, Promise promise) {
method ambientLightBarrierRange (line 322) | private void ambientLightBarrierRange(ReadableMap map, Promise promise) {
method wifiBarrier (line 333) | private void wifiBarrier(ReadableMap map, Promise promise) {
method wifiKeeping (line 359) | private void wifiKeeping(ReadableMap map, Promise promise) {
method wifiConnecting (line 374) | private void wifiConnecting(ReadableMap map) {
method wifiDisconnecting (line 384) | private void wifiDisconnecting(ReadableMap map) {
method wifiEnabling (line 394) | private void wifiEnabling() {
method wifiDisabling (line 398) | private void wifiDisabling() {
method screenBarrier (line 402) | private void screenBarrier(ReadableMap map, Promise promise) {
method bluetoothBarrier (line 431) | private void bluetoothBarrier(ReadableMap map, Promise promise) {
method bluetoothKeeping (line 453) | private void bluetoothKeeping(ReadableMap map, Promise promise) {
method bluetoothConnecting (line 463) | private void bluetoothConnecting(ReadableMap map, Promise promise) {
method bluetoothDisconnecting (line 472) | private void bluetoothDisconnecting(ReadableMap map, Promise promise) {
method behaviorBarrier (line 481) | private void behaviorBarrier(ReadableMap map, Promise promise) {
method locationBarrier (line 512) | private void locationBarrier(ReadableMap map, Promise promise) {
method locationEnter (line 536) | @SuppressLint("MissingPermission")
method locationExit (line 549) | @SuppressLint("MissingPermission")
method locationStay (line 561) | @SuppressLint("MissingPermission")
method timeBarrier (line 575) | private void timeBarrier(ReadableMap map, Promise promise) {
method inSunriseOrSunsetPeriod (line 602) | @SuppressLint("MissingPermission")
method duringPeriodOfDay (line 616) | @SuppressLint("MissingPermission")
method duringTimePeriod (line 627) | private void duringTimePeriod(ReadableMap map, Promise promise) {
method duringPeriodOfWeek (line 638) | @SuppressLint("MissingPermission")
method inTimeCategory (line 653) | @SuppressLint("MissingPermission")
method getTimeZone (line 663) | private TimeZone getTimeZone(ReadableMap map) {
method beaconBarrier (line 674) | private void beaconBarrier(ReadableMap map, Promise promise) {
method createBeaconBarrier (line 688) | @SuppressLint("MissingPermission")
method enableUpdateWindow (line 746) | private void enableUpdateWindow(ReadableMap map, Promise promise) {
method getCurrentActivity (line 763) | private Activity getCurrentActivity() {
FILE: react-native-hms-awareness/android/src/main/java/com/huawei/hms/rn/awareness/wrapper/AwarenessCaptureWrapper.java
class AwarenessCaptureWrapper (line 43) | public class AwarenessCaptureWrapper {
method AwarenessCaptureWrapper (line 51) | public AwarenessCaptureWrapper(ReactContext reactContext) {
method getBeaconStatus (line 55) | @SuppressLint("MissingPermission")
method getBehavior (line 103) | public void getBehavior(Promise promise) {
method getHeadsetStatus (line 117) | @SuppressLint("MissingPermission")
method getLocation (line 132) | @SuppressLint("MissingPermission")
Copy disabled (too large)
Download .json
Condensed preview — 1595 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (11,320K chars).
[
{
"path": ".github/ISSUE_TEMPLATE/issue-with-the-sample-code.md",
"chars": 863,
"preview": "---\nname: Issue with the sample code\nabout: Are you having issues when running the code in this repo?\ntitle: ''\nlabels: "
},
{
"path": "LICENSE",
"chars": 9139,
"preview": "Apache License\n\nVersion 2.0, January 2004\n\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, "
},
{
"path": "README.md",
"chars": 19416,
"preview": "# HMS React-Native Plugins\n\n[](./LICENSE)\n\nThis repo c"
},
{
"path": "react-native-hms-account/LICENSE",
"chars": 9138,
"preview": "Apache License\n\nVersion 2.0, January 2004\n\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, "
},
{
"path": "react-native-hms-account/README.md",
"chars": 2587,
"preview": "<p align=\"center\">\n <h1 align=\"center\">React-Native HMS Account</h1>\n</p>\n\n\n<p align=\"center\">\n <a href=\"https://www.n"
},
{
"path": "react-native-hms-account/android/build.gradle",
"chars": 1122,
"preview": "apply plugin: 'com.android.library'\napply plugin: 'maven-publish'\n\nbuildscript {\n repositories {\n mavenCentral"
},
{
"path": "react-native-hms-account/android/gradle/wrapper/gradle-wrapper.properties",
"chars": 202,
"preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributi"
},
{
"path": "react-native-hms-account/android/gradle.properties",
"chars": 81,
"preview": "android.useAndroidX=true\nandroid.enableJetifier=true\norg.gradle.jvmargs=-Xmx4608m"
},
{
"path": "react-native-hms-account/android/gradlew",
"chars": 5766,
"preview": "#!/usr/bin/env sh\n\n#\n# Copyright 2015 the original author or authors.\n#\n# Licensed under the Apache License, Version 2.0"
},
{
"path": "react-native-hms-account/android/gradlew.bat",
"chars": 2674,
"preview": "@rem\n@rem Copyright 2015 the original author or authors.\n@rem\n@rem Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "react-native-hms-account/android/src/main/AndroidManifest.xml",
"chars": 206,
"preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n package=\"com.huawei.hms.rn.account\">\n\n <"
},
{
"path": "react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/HMSAccountPackage.java",
"chars": 2241,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/constants/ClassConstants.java",
"chars": 2289,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/logger/HMSLogger.java",
"chars": 15327,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSAccount.java",
"chars": 8068,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSAccountAuthManager.java",
"chars": 4981,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSAccountAuthService.java",
"chars": 8159,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSHuaweiIdAuthManager.java",
"chars": 5020,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSHuaweiIdAuthTool.java",
"chars": 5204,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSNetworkTool.java",
"chars": 3910,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/modules/HMSReadSMSManager.java",
"chars": 8040,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/utils/Utils.java",
"chars": 18647,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/android/src/main/java/com/huawei/hms/rn/account/views/HMSHuaweiIdAuthButton.java",
"chars": 2732,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/example/.gitignore",
"chars": 891,
"preview": "# OSX\n#\n.DS_Store\n\n# Xcode\n#\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.p"
},
{
"path": "react-native-hms-account/example/App.js",
"chars": 11589,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/example/README.md",
"chars": 4234,
"preview": "# React-Native HMS Account - Demo\n\n---\n\n## Contents\n\n- [Introduction](#1-introduction)\n- [Installation](#2-installation)"
},
{
"path": "react-native-hms-account/example/android/app/BUCK",
"chars": 1346,
"preview": "# To learn about Buck see [Docs](https://buckbuild.com/).\n# To run your application with Buck:\n# - install Buck\n# - `npm"
},
{
"path": "react-native-hms-account/example/android/app/build.gradle",
"chars": 8894,
"preview": "apply plugin: \"com.android.application\"\napply plugin: 'com.huawei.agconnect'\napply plugin: 'com.facebook.react'\n\nimport "
},
{
"path": "react-native-hms-account/example/android/app/proguard-rules.pro",
"chars": 271,
"preview": "-ignorewarnings \n\n-keepattributes *Annotation* \n-keepattributes Exceptions \n-keepattributes InnerClasses \n-keepattribute"
},
{
"path": "react-native-hms-account/example/android/app/src/main/AndroidManifest.xml",
"chars": 1327,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n pack"
},
{
"path": "react-native-hms-account/example/android/app/src/main/java/com/huawei/hms/rn/account/demo/MainActivity.java",
"chars": 890,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/example/android/app/src/main/java/com/huawei/hms/rn/account/demo/MainApplication.java",
"chars": 1834,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/example/android/app/src/main/res/values/styles.xml",
"chars": 246,
"preview": "<resources>\n\n <!-- Base application theme. -->\n <style name=\"AppTheme\" parent=\"Theme.AppCompat.Light.NoActionBar\">"
},
{
"path": "react-native-hms-account/example/android/build.gradle",
"chars": 944,
"preview": "// Top-level build file where you can add configuration options common to all sub-projects/modules.\n\nbuildscript {\n e"
},
{
"path": "react-native-hms-account/example/android/gradle/wrapper/gradle-wrapper.properties",
"chars": 200,
"preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributi"
},
{
"path": "react-native-hms-account/example/android/gradle.properties",
"chars": 1332,
"preview": "# Project-wide Gradle settings.\n\n# IDE (e.g. Android Studio) users:\n# Gradle settings configured through the IDE *will o"
},
{
"path": "react-native-hms-account/example/android/gradlew",
"chars": 5766,
"preview": "#!/usr/bin/env sh\n\n#\n# Copyright 2015 the original author or authors.\n#\n# Licensed under the Apache License, Version 2.0"
},
{
"path": "react-native-hms-account/example/android/gradlew.bat",
"chars": 2674,
"preview": "@rem\n@rem Copyright 2015 the original author or authors.\n@rem\n@rem Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "react-native-hms-account/example/android/settings.gradle",
"chars": 270,
"preview": "rootProject.name = 'huawei.hms.rn.account.demo'\napply from: file(\"../node_modules/@react-native-community/cli-platform-a"
},
{
"path": "react-native-hms-account/example/app.json",
"chars": 78,
"preview": "{\n \"name\": \"huawei.hms.rn.account.demo\",\n \"displayName\": \"RN Account Demo\"\n}"
},
{
"path": "react-native-hms-account/example/babel.config.js",
"chars": 721,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/example/index.js",
"chars": 811,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/example/metro.config.js",
"chars": 837,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/example/package.json",
"chars": 720,
"preview": "{\n \"name\": \"@hmscore/react-native-hms-account-demo\",\n \"version\": \"6.12.0-301\",\n \"scripts\": {\n \"android\": \"react-na"
},
{
"path": "react-native-hms-account/package.json",
"chars": 1000,
"preview": "{\n \"name\": \"@hmscore/react-native-hms-account\",\n \"title\": \"React Native Hms Account\",\n \"description\": \"React Native H"
},
{
"path": "react-native-hms-account/src/index.d.ts",
"chars": 5975,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-account/src/index.js",
"chars": 2179,
"preview": "/*\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n Licensed under the Apache License, V"
},
{
"path": "react-native-hms-ads/LICENSE",
"chars": 9138,
"preview": "Apache License\n\nVersion 2.0, January 2004\n\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, "
},
{
"path": "react-native-hms-ads/OpenSourceSoftwareNotice.html",
"chars": 5526,
"preview": "<p style=\"text-align:center\"><span style=\"font-size:10.5pt\"><span style=\"font-family:"Times New Roman",serif\">"
},
{
"path": "react-native-hms-ads/README.md",
"chars": 2582,
"preview": "<p align=\"center\">\n <h1 align=\"center\">React-Native HMS Ads</h1>\n</p>\n\n<p align=\"center\">\n <a href=\"https://www.npmjs."
},
{
"path": "react-native-hms-ads/android/build.gradle",
"chars": 1591,
"preview": "apply plugin: 'com.android.library'\napply plugin: 'maven-publish'\n\nbuildscript {\n repositories {\n google()\n "
},
{
"path": "react-native-hms-ads/android/gradle/wrapper/gradle-wrapper.properties",
"chars": 202,
"preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributi"
},
{
"path": "react-native-hms-ads/android/gradle.properties",
"chars": 81,
"preview": "android.useAndroidX=true\nandroid.enableJetifier=true\norg.gradle.jvmargs=-Xmx4096m"
},
{
"path": "react-native-hms-ads/android/gradlew",
"chars": 5764,
"preview": "#!/usr/bin/env sh\n\n#\n# Copyright 2015 the original author or authors.\n#\n# Licensed under the Apache License, Version 2.0"
},
{
"path": "react-native-hms-ads/android/gradlew.bat",
"chars": 2953,
"preview": "@rem\n@rem Copyright 2015 the original author or authors.\n@rem\n@rem Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "react-native-hms-ads/android/src/main/AndroidManifest.xml",
"chars": 399,
"preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n package=\"com.huawei.hms.rn.ads\">\n\n <uses-per"
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsBannerView.java",
"chars": 9962,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsInstallReferrerModule.java",
"chars": 7536,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsInstreamView.java",
"chars": 14897,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsInterstitialAdModule.java",
"chars": 8969,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsModule.java",
"chars": 21642,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsNativeView.java",
"chars": 32604,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsOaidModule.java",
"chars": 3688,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPackage.java",
"chars": 1967,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsRewardAdModule.java",
"chars": 13616,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsSplashActivity.java",
"chars": 10089,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsSplashAdModule.java",
"chars": 9011,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsVastModule.java",
"chars": 10796,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsVastView.java",
"chars": 18337,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/custome/CustomVideoController.java",
"chars": 2792,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/logger/HMSLogger.java",
"chars": 15350,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/utils/CommonUtils.java",
"chars": 1639,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/utils/Constants.java",
"chars": 892,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/utils/ReactUtils.java",
"chars": 44874,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-ads/android/src/main/java/com/huawei/hms/rn/ads/utils/ResourceUtils.java",
"chars": 2312,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/android/src/main/res/drawable/native_button_rounded_corners_shape.xml",
"chars": 452,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\">\n <solid and"
},
{
"path": "react-native-hms-ads/android/src/main/res/drawable/native_flag_rounded_corners_shape.xml",
"chars": 448,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\">\n <solid and"
},
{
"path": "react-native-hms-ads/android/src/main/res/layout/activity_splash.xml",
"chars": 3284,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?><!--\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n"
},
{
"path": "react-native-hms-ads/android/src/main/res/layout/activity_video_player.xml",
"chars": 2533,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?><!--\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n"
},
{
"path": "react-native-hms-ads/android/src/main/res/layout/button_layout.xml",
"chars": 1302,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?><!--\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n"
},
{
"path": "react-native-hms-ads/android/src/main/res/layout/media_view.xml",
"chars": 1541,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?><!--\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n"
},
{
"path": "react-native-hms-ads/android/src/main/res/layout/native_small_template.xml",
"chars": 4440,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?><!--\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n"
},
{
"path": "react-native-hms-ads/android/src/main/res/layout/native_video_template.xml",
"chars": 4483,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?><!--\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n"
},
{
"path": "react-native-hms-ads/android/src/main/res/layout/vast_template.xml",
"chars": 1547,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?><!--\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n"
},
{
"path": "react-native-hms-ads/android/src/main/res/values/strings.xml",
"chars": 306,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n <string name=\"demo_bt_play_video\">Play a video.</string>\n <str"
},
{
"path": "react-native-hms-ads/example/App.js",
"chars": 49641,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/example/LICENSE",
"chars": 9138,
"preview": "Apache License\n\nVersion 2.0, January 2004\n\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, "
},
{
"path": "react-native-hms-ads/example/README.md",
"chars": 4219,
"preview": "# React-Native HMS Ads - Demo\n\n---\n\n## Contents\n\n- [Introduction](#1-introduction)\n- [Installation](#2-installation)\n- ["
},
{
"path": "react-native-hms-ads/example/android/app/build.gradle",
"chars": 8272,
"preview": "apply plugin: \"com.android.application\"\napply plugin: \"com.facebook.react\"\n\nimport com.android.build.OutputFile\n\n/**\n * "
},
{
"path": "react-native-hms-ads/example/android/app/proguard-rules.pro",
"chars": 271,
"preview": "-ignorewarnings \n\n-keepattributes *Annotation* \n-keepattributes Exceptions \n-keepattributes InnerClasses \n-keepattribute"
},
{
"path": "react-native-hms-ads/example/android/app/src/debug/AndroidManifest.xml",
"chars": 496,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n xmlns:to"
},
{
"path": "react-native-hms-ads/example/android/app/src/main/AndroidManifest.xml",
"chars": 1012,
"preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n package=\"com.huawei.hms.rn.ads.demo\">\n\n <uses-"
},
{
"path": "react-native-hms-ads/example/android/app/src/main/java/com/huawei/hms/rn/ads/demo/MainActivity.java",
"chars": 873,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/example/android/app/src/main/java/com/huawei/hms/rn/ads/demo/MainApplication.java",
"chars": 1905,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/example/android/app/src/main/res/values/styles.xml",
"chars": 246,
"preview": "<resources>\n\n <!-- Base application theme. -->\n <style name=\"AppTheme\" parent=\"Theme.AppCompat.Light.NoActionBar\">"
},
{
"path": "react-native-hms-ads/example/android/build.gradle",
"chars": 911,
"preview": "// Top-level build file where you can add configuration options common to all sub-projects/modules.\n\nbuildscript {\n e"
},
{
"path": "react-native-hms-ads/example/android/gradle/wrapper/gradle-wrapper.properties",
"chars": 200,
"preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributi"
},
{
"path": "react-native-hms-ads/example/android/gradle.properties",
"chars": 107,
"preview": "android.useAndroidX=true\nandroid.enableJetifier=true\norg.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=512m"
},
{
"path": "react-native-hms-ads/example/android/gradlew",
"chars": 5766,
"preview": "#!/usr/bin/env sh\n\n#\n# Copyright 2015 the original author or authors.\n#\n# Licensed under the Apache License, Version 2.0"
},
{
"path": "react-native-hms-ads/example/android/gradlew.bat",
"chars": 2674,
"preview": "@rem\n@rem Copyright 2015 the original author or authors.\n@rem\n@rem Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "react-native-hms-ads/example/android/settings.gradle",
"chars": 256,
"preview": "rootProject.name = 'RNHmsAdsDemo'\napply from: file(\"../node_modules/@react-native-community/cli-platform-android/native_"
},
{
"path": "react-native-hms-ads/example/app.json",
"chars": 61,
"preview": "{\n \"name\": \"RNHmsAdsDemo\",\n \"displayName\": \"RNHmsAdsDemo\"\n}"
},
{
"path": "react-native-hms-ads/example/babel.config.js",
"chars": 722,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/example/index.js",
"chars": 814,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/example/jest.config.js",
"chars": 761,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/example/metro.config.js",
"chars": 837,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/example/package.json",
"chars": 629,
"preview": "{\n \"name\": \"@hmscore/react-native-hms-ads-demo\",\n \"version\": \"13.4.73-300\",\n \"private\": true,\n \"scripts\": {\n \"and"
},
{
"path": "react-native-hms-ads/package.json",
"chars": 998,
"preview": "{\n \"name\": \"@hmscore/react-native-hms-ads\",\n \"title\": \"React Native HMS Ads Kit\",\n \"description\": \"React Native HMS A"
},
{
"path": "react-native-hms-ads/src/Ads.js",
"chars": 750,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/src/Banner.js",
"chars": 2326,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/src/InstallReferrer.js",
"chars": 993,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/src/Instream.js",
"chars": 3936,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/src/Interstitial.js",
"chars": 1094,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/src/Native.js",
"chars": 4087,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/src/Oaid.js",
"chars": 758,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/src/Reward.js",
"chars": 1039,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/src/Splash.js",
"chars": 1012,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/src/Vast.js",
"chars": 752,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/src/VastView.js",
"chars": 2837,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/src/index.d.ts",
"chars": 60231,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/src/index.js",
"chars": 1224,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-ads/src/utils.js",
"chars": 1158,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n * \n * Licensed under the Apache License, "
},
{
"path": "react-native-hms-adsprime/LICENSE",
"chars": 9138,
"preview": "Apache License\n\nVersion 2.0, January 2004\n\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, "
},
{
"path": "react-native-hms-adsprime/OpenSourceSoftwareNotice.html",
"chars": 5526,
"preview": "<p style=\"text-align:center\"><span style=\"font-size:10.5pt\"><span style=\"font-family:"Times New Roman",serif\">"
},
{
"path": "react-native-hms-adsprime/README.md",
"chars": 2630,
"preview": "<p align=\"center\">\n <h1 align=\"center\">React-Native HMS Ads Prime</h1>\n</p>\n\n<p align=\"center\">\n <a href=\"https://www."
},
{
"path": "react-native-hms-adsprime/android/build.gradle",
"chars": 1531,
"preview": "apply plugin: 'com.android.library'\napply plugin: 'maven-publish'\n\nbuildscript {\n repositories {\n google()\n "
},
{
"path": "react-native-hms-adsprime/android/gradle/wrapper/gradle-wrapper.properties",
"chars": 202,
"preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributi"
},
{
"path": "react-native-hms-adsprime/android/gradle.properties",
"chars": 81,
"preview": "android.useAndroidX=true\nandroid.enableJetifier=true\norg.gradle.jvmargs=-Xmx4096m"
},
{
"path": "react-native-hms-adsprime/android/gradlew",
"chars": 5764,
"preview": "#!/usr/bin/env sh\n\n#\n# Copyright 2015 the original author or authors.\n#\n# Licensed under the Apache License, Version 2.0"
},
{
"path": "react-native-hms-adsprime/android/gradlew.bat",
"chars": 2953,
"preview": "@rem\n@rem Copyright 2015 the original author or authors.\n@rem\n@rem Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "react-native-hms-adsprime/android/src/main/AndroidManifest.xml",
"chars": 404,
"preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n package=\"com.huawei.hms.rn.ads\">\n\n <uses-per"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeBannerView.java",
"chars": 10019,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeInstallReferrerModule.java",
"chars": 7557,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeInstreamView.java",
"chars": 14961,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeInterstitialAdModule.java",
"chars": 8986,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeModule.java",
"chars": 21795,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeNativeView.java",
"chars": 32628,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeOaidModule.java",
"chars": 3710,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimePackage.java",
"chars": 2024,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeRewardAdModule.java",
"chars": 13629,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeSplashActivity.java",
"chars": 10111,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeSplashAdModule.java",
"chars": 9068,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeVastModule.java",
"chars": 10824,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/HMSAdsPrimeVastView.java",
"chars": 18479,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/custome/CustomVideoController.java",
"chars": 2789,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/logger/HMSLogger.java",
"chars": 15352,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/utils/CommonUtils.java",
"chars": 1635,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/utils/Constants.java",
"chars": 889,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/utils/ReactUtils.java",
"chars": 44929,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/java/com/huawei/hms/rn/ads/utils/ResourceUtils.java",
"chars": 2309,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/android/src/main/res/drawable/native_button_rounded_corners_shape.xml",
"chars": 452,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\">\n <solid and"
},
{
"path": "react-native-hms-adsprime/android/src/main/res/drawable/native_flag_rounded_corners_shape.xml",
"chars": 448,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<shape xmlns:android=\"http://schemas.android.com/apk/res/android\">\n <solid and"
},
{
"path": "react-native-hms-adsprime/android/src/main/res/layout/activity_splash.xml",
"chars": 3284,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?><!--\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n"
},
{
"path": "react-native-hms-adsprime/android/src/main/res/layout/activity_video_player.xml",
"chars": 2533,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?><!--\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n"
},
{
"path": "react-native-hms-adsprime/android/src/main/res/layout/button_layout.xml",
"chars": 1302,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?><!--\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n"
},
{
"path": "react-native-hms-adsprime/android/src/main/res/layout/media_view.xml",
"chars": 1541,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?><!--\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n"
},
{
"path": "react-native-hms-adsprime/android/src/main/res/layout/native_small_template.xml",
"chars": 4440,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?><!--\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n"
},
{
"path": "react-native-hms-adsprime/android/src/main/res/layout/native_video_template.xml",
"chars": 4483,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?><!--\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n"
},
{
"path": "react-native-hms-adsprime/android/src/main/res/layout/vast_template.xml",
"chars": 1557,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?><!--\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n"
},
{
"path": "react-native-hms-adsprime/android/src/main/res/values/strings.xml",
"chars": 954,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?><!--\n Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n\n"
},
{
"path": "react-native-hms-adsprime/example/.gitattributes",
"chars": 16,
"preview": "*.pbxproj -text\n"
},
{
"path": "react-native-hms-adsprime/example/.gitignore",
"chars": 970,
"preview": "# OSX\n#\n.DS_Store\n\n# node.js\n#\nnode_modules/\nnpm-debug.log\nyarn-error.log\n\n# Xcode\n#\nbuild/\n*.pbxuser\n!default.pbxuser\n*"
},
{
"path": "react-native-hms-adsprime/example/App.js",
"chars": 50079,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/example/LICENSE",
"chars": 9138,
"preview": "Apache License\n\nVersion 2.0, January 2004\n\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, "
},
{
"path": "react-native-hms-adsprime/example/README.md",
"chars": 4237,
"preview": "# React-Native HMS Ads Prime - Demo\n\n---\n\n## Contents\n\n- [Introduction](#1-introduction)\n- [Installation](#2-installatio"
},
{
"path": "react-native-hms-adsprime/example/android/app/build.gradle",
"chars": 8314,
"preview": "apply plugin: \"com.android.application\"\napply plugin: \"com.facebook.react\"\n\nimport com.android.build.OutputFile\n\n/**\n * "
},
{
"path": "react-native-hms-adsprime/example/android/app/proguard-rules.pro",
"chars": 271,
"preview": "-ignorewarnings \n\n-keepattributes *Annotation* \n-keepattributes Exceptions \n-keepattributes InnerClasses \n-keepattribute"
},
{
"path": "react-native-hms-adsprime/example/android/app/src/debug/AndroidManifest.xml",
"chars": 497,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n xmlns:to"
},
{
"path": "react-native-hms-adsprime/example/android/app/src/main/AndroidManifest.xml",
"chars": 1022,
"preview": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n package=\"com.huawei.hms.rn.ads.demo\">\n\n <uses-"
},
{
"path": "react-native-hms-adsprime/example/android/app/src/main/java/com/huawei/hms/rn/ads/demo/MainActivity.java",
"chars": 875,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/example/android/app/src/main/java/com/huawei/hms/rn/ads/demo/MainApplication.java",
"chars": 1803,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/example/android/app/src/main/res/values/styles.xml",
"chars": 246,
"preview": "<resources>\n\n <!-- Base application theme. -->\n <style name=\"AppTheme\" parent=\"Theme.AppCompat.Light.NoActionBar\">"
},
{
"path": "react-native-hms-adsprime/example/android/build.gradle",
"chars": 862,
"preview": "// Top-level build file where you can add configuration options common to all sub-projects/modules.\n\nbuildscript {\n e"
},
{
"path": "react-native-hms-adsprime/example/android/gradle/wrapper/gradle-wrapper.properties",
"chars": 200,
"preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributi"
},
{
"path": "react-native-hms-adsprime/example/android/gradle.properties",
"chars": 108,
"preview": "android.useAndroidX=true\nandroid.enableJetifier=true\norg.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=512m\n"
},
{
"path": "react-native-hms-adsprime/example/android/gradlew",
"chars": 5766,
"preview": "#!/usr/bin/env sh\n\n#\n# Copyright 2015 the original author or authors.\n#\n# Licensed under the Apache License, Version 2.0"
},
{
"path": "react-native-hms-adsprime/example/android/gradlew.bat",
"chars": 2674,
"preview": "@rem\n@rem Copyright 2015 the original author or authors.\n@rem\n@rem Licensed under the Apache License, Version 2.0 (the \""
},
{
"path": "react-native-hms-adsprime/example/android/settings.gradle",
"chars": 261,
"preview": "rootProject.name = 'RNHmsAdsPrimeDemo'\napply from: file(\"../node_modules/@react-native-community/cli-platform-android/na"
},
{
"path": "react-native-hms-adsprime/example/app.json",
"chars": 71,
"preview": "{\n \"name\": \"RNHmsAdsPrimeDemo\",\n \"displayName\": \"RNHmsAdsPrimeDemo\"\n}"
},
{
"path": "react-native-hms-adsprime/example/babel.config.js",
"chars": 719,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/example/index.js",
"chars": 811,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/example/jest.config.js",
"chars": 758,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/example/metro.config.js",
"chars": 834,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/example/package.json",
"chars": 639,
"preview": "{\n \"name\": \"@hmscore/react-native-hms-adsprime-demo\",\n \"version\": \"13.4.73-300\",\n \"private\": true,\n \"scripts\": {\n "
},
{
"path": "react-native-hms-adsprime/package.json",
"chars": 1111,
"preview": "{\n \"name\": \"@hmscore/react-native-hms-adsprime\",\n \"title\": \"React Native HMS Ads Prime Kit\",\n \"description\": \"React N"
},
{
"path": "react-native-hms-adsprime/src/AdsPrime.js",
"chars": 757,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/src/Banner.js",
"chars": 2388,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/src/InstallReferrer.js",
"chars": 1005,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/src/Instream.js",
"chars": 4020,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/src/Interstitial.js",
"chars": 1106,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/src/Native.js",
"chars": 4172,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/src/Oaid.js",
"chars": 765,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/src/Reward.js",
"chars": 1051,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/src/Splash.js",
"chars": 1024,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/src/Vast.js",
"chars": 749,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/src/VastView.js",
"chars": 2884,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/src/index.d.ts",
"chars": 60198,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/src/index.js",
"chars": 1237,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-adsprime/src/utils.js",
"chars": 1155,
"preview": "/*\n * Copyright 2020-2024. Huawei Technologies Co., Ltd. All rights reserved.\n *\n * Licensed under the Apache License, V"
},
{
"path": "react-native-hms-analytics/LICENSE",
"chars": 9138,
"preview": "Apache License\n\nVersion 2.0, January 2004\n\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, "
}
]
// ... and 1395 more files (download for full content)
About this extraction
This page contains the full source code of the HMS-Core/hms-react-native-plugin GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1595 files (10.3 MB), approximately 2.8M tokens, and a symbol index with 7966 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.