Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

p12 certificate files reading #2

Open
wants to merge 50 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
cb4d114
Removed pods
SudoPlz Feb 28, 2019
82ea78d
Changed pkg name
SudoPlz Feb 28, 2019
02b1a1f
Now throwing an error when the user specifies a wrong uri
SudoPlz Mar 1, 2019
8b8e3d7
onError now actually returns the error message (and not just an error…
SudoPlz Mar 1, 2019
738aa57
Making sure we no longer receive bridge null errors
SudoPlz Mar 1, 2019
b52b948
Version bump 0.4.17
SudoPlz Mar 14, 2019
b7e2c2f
Added disconnectAll
SudoPlz Mar 15, 2019
8da9f89
Added disconnectAll
SudoPlz Mar 15, 2019
c93a143
Merge branch 'bin_4_18'
SudoPlz Mar 15, 2019
7976485
disconnectAll no longer receives an argument
SudoPlz Mar 15, 2019
f4c4346
Bumped version .19
SudoPlz Mar 15, 2019
af86485
Removing the clientRef from disconnectAll
SudoPlz Mar 15, 2019
f68e93e
Published 4.20
SudoPlz Mar 15, 2019
d2748c5
Now disconnecting previous sessions on app reload
SudoPlz Mar 15, 2019
c64397d
Bumped version .21
SudoPlz Mar 15, 2019
b8e471e
Added podspec
SudoPlz May 22, 2019
87d1cc8
Bumped version
SudoPlz May 22, 2019
36911d1
Ok fixed the podspec
SudoPlz May 22, 2019
1a06ec7
Bumped version
SudoPlz May 22, 2019
e2da32b
Fixed podspec
SudoPlz May 22, 2019
ee12682
Removed READ_PHONE_STATE permission
SudoPlz May 28, 2019
775c897
Bumped version (0.4.25)
SudoPlz May 28, 2019
f036a86
android link
taoqf May 30, 2019
ba79e53
add typescript definition
taoqf May 30, 2019
13c16e2
Merge pull request #1 from taoqf/master
SudoPlz Jun 3, 2019
28282b8
Added example
SudoPlz Jun 12, 2019
c89d7bb
Updated README
SudoPlz Jun 12, 2019
bb66f4d
Merged w/ master
SudoPlz Jun 12, 2019
4fec778
Readme minor typo
SudoPlz Jun 12, 2019
a7a51f8
Update linking instructions
kirkryan Mar 26, 2020
d6c7b29
Merge pull request #5 from kirkryan/master
SudoPlz Mar 26, 2020
64b55aa
Update README.md
SudoPlz Aug 5, 2020
4175b4d
Update index.js
befaster Jan 15, 2021
fe26d5b
Merge pull request #10 from befaster/patch-1
SudoPlz Jan 15, 2021
a0eec9e
0.4.26
SudoPlz Jan 15, 2021
1a371a3
Updated outdated steps and errors from Readme.md
Jan 22, 2021
58e8376
Merge pull request #11 from prof-lupin/master
SudoPlz Jan 22, 2021
5e8ffcb
Update README.md
SudoPlz Feb 19, 2021
c3c7386
Implemented missing iOS functions
Mar 2, 2021
408ffc6
Added android implementation
Mar 2, 2021
9ab6d05
Updated package.json
spit4520 Mar 9, 2021
c57d953
Patched .gitignore
spit4520 Mar 9, 2021
e78178a
Removed Tabs for Spaces
spit4520 Mar 11, 2021
587d370
Merge pull request #16 from spit4520/master
SudoPlz Mar 11, 2021
bd936a9
0.5.0
SudoPlz Mar 11, 2021
9ac31d9
fix: ts declaration to allow all options on create client method
cscovinopsh Aug 11, 2021
507c199
Merge pull request #22 from cscovino/master
SudoPlz Aug 19, 2021
f8f39d3
Fix AndroidX build error
Aug 11, 2022
21b5986
Merge pull request #29 from leinailychee/patch-1
SudoPlz Aug 11, 2022
7105d21
0.5.1
SudoPlz Aug 11, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
#
.DS_Store

# vim
#
*.sw*

# Xcode
#
build/
Expand Down
139 changes: 81 additions & 58 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,80 +1,93 @@
[![npm](https://img.shields.io/npm/dt/react-native-mqtt.svg)]()

## Announcements:

No longer actively maintained.
Looking for maintainers.

## Description

[react-native](https://github.com/facebook/react-native) mqtt client module
A [react-native](https://github.com/facebook/react-native) mqtt client module that works

## MQTT Features (inherit from native MQTT framework)
* Use [MQTT Framework](https://github.com/ckrey/MQTT-Client-Framework) for IOS, [Paho MQTT Client](https://eclipse.org/paho/clients/android/) for Android
* Support both IOS and Android
## MQTT Features (inherited from the native MQTT framework)
* Uses [MQTT Framework](https://github.com/ckrey/MQTT-Client-Framework) for IOS, [Paho MQTT Client](https://eclipse.org/paho/clients/android/) for Android
* Supports both IOS and Android
* SSL/TLS
* Native library, support mqtt over tcp
* Native library, support mqtt over tcp (forget websockets, we're on **mobile**)

## Warning
This library in progress developing, api may change, SSL/TLS non verify

## Getting started

### Manual install
### Installation

#### JS
#### Step 1:
```bash
npm install rusfearuth/react-native-mqtt --save
npm install sp-react-native-mqtt --save
```

or

```bash
yarn add rusfearuth/react-native-mqtt
yarn add sp-react-native-mqtt
```

#### Step 2: (Skip this step if you are using RN 0.60 or above as the module will be auto-linked)

```bash
react-native link sp-react-native-mqtt
```

#### iOS
- In XCode, in the project navigator, right click `Libraries` ➜ `Add Files to [your project's name]`
- Go to `node_modules` ➜ `react-native-mqtt` and add `RCTMqtt.xcodeproj`
- In XCode, in the project navigator, select your project. Add `libRCTmqtt.a` and `libicucore.tbd` to your project's `Build Phases` ➜ `Link Binary With Libraries`
- Click `RCTMqtt.xcodeproj` in the project navigator and go the `Build Settings` tab. Make sure 'All' is toggled on (instead of 'Basic'). In the `Search Paths` section, look for `Header Search Paths` and make sure it contains both `$(SRCROOT)/../../react-native/React` - mark as `recursive`.
- Run your project (`Cmd+R`)

#### Step 3:
##### iOS

#### Android
- Modify the ReactInstanceManager.builder() calls chain in `android/app/main/java/.../MainActivity.java` to include:
Add `pod 'MQTTClient'` to your podfile and `pod install`

```java
import com.tuanpm.RCTMqtt.*; // import
<details>
<summary>Alternatively you can manually link the library on iOS (click to expand)</summary>

In XCode, in the project navigator, right click `Libraries` ➜ `Add Files to [your project's name]`
* Go to `node_modules` ➜ `sp-react-native-mqtt` and add `RCTMqtt.xcodeproj`
* In XCode, in the project navigator, select your project. Add `libRCTmqtt.a` and `libicucore.tbd` to your project's `Build Phases` ➜ `Link Binary With Libraries`
* Click `RCTMqtt.xcodeproj` in the project navigator and go the `Build Settings` tab. Make sure 'All' is toggled on (instead of 'Basic'). In the `Search Paths` section, look for `Header Search Paths` and make sure it contains both `$(SRCROOT)/../../react-native/React` - mark as `recursive`.

.addPackage(new RCTMqttPackage()) //for older version
</details>

new RCTMqttPackage() // for newest version of react-native
```

- Append the following lines to `android/settings.gradle` before `include ':app'`:

```
include ':react-native-mqtt'
project(':react-native-mqtt').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-mqtt/android')
##### Android

* Add the following line in `getPackages()` method inside the `ReactNativeHost` object in `android/app/src/main/java/.../MainApplication.java`:

```java

packages.add(new RCTMqttPackage()); // as a child of the getPackages() returned array

```

Don't forget to include `import com.tuanpm.RCTMqtt.*;` with the other imports at the top.

- Insert the following lines inside the dependencies block in `android/app/build.gradle`, don't missing `apply plugin:'java'` on top:
* Append the following lines to `android/settings.gradle` before `include ':app'`:

```
compile project(':react-native-mqtt')
include ':sp-react-native-mqtt'
project(':sp-react-native-mqtt').projectDir = new File(rootProject.projectDir, '../node_modules/sp-react-native-mqtt/android')

```

Notes:

- Insert the following lines inside the dependencies block in `android/app/build.gradle`:

```
dependencies {
compile project(':react-native-mqtt')
}
implementation ':sp-react-native-mqtt'
```



## Usage

```javascript
import MQTT from 'react-native-mqtt';
import MQTT from 'sp-react-native-mqtt';

/* create mqtt client */
MQTT.createClient({
Expand Down Expand Up @@ -108,42 +121,52 @@ MQTT.createClient({
```

## API

* `mqtt.createClient(options)` create new client instance with `options`, async operation
- `uri`: `protocol://host:port`, protocol is [mqtt | mqtts]
- `host`: ipaddress or host name (override by uri if set)
- `port`: port number (override by uri if set)
- `tls`: true/false (override by uri if set to mqtts or wss)
- `user`: string username
- `pass`: string password
- `auth`: true/false - override = true if `user` or `pass` exist
- `clientId`: string client id
- `keepalive`
* `uri`: `protocol://host:port`, protocol is [mqtt | mqtts]
* `host`: ipaddress or host name (override by uri if set)
* `port`: port number (override by uri if set)
* `tls`: true/false (override by uri if set to mqtts or wss)
* `user`: string username
* `pass`: string password
* `auth`: true/false - override = true Set to true if `user` or `pass` exist
* `clientId`: string client id
* `keepalive`

* `client`
- `on(event, callback)`: add event listener for
+ event: `connect` - client connected
+ event: `closed` - client disconnected
+ event: `error` - error
+ event: `message` - message object
- `connect`: begin connection
- `disconnect`: disconnect
- `subscribe(topic, qos)`
- `publish(topic, payload, qos, retain)`
* `on(event, callback)`: add event listener for
* event: `connect` - client connected
* event: `closed` - client disconnected
* event: `error` - error
* event: `message` - message object
* `connect`: begin connection
* `disconnect`: disconnect
* `subscribe(topic, qos)`
* `publish(topic, payload, qos, retain)`

* `message`
- `retain`: *boolean* `false`
- `qos`: *number* `2`
- `data`: *string* `"test message"`
- `topic`: *string* `"/data"`
* `retain`: *boolean* `false`
* `qos`: *number* `2`
* `data`: *string* `"test message"`
* `topic`: *string* `"/data"`

## Todo

* [ ] Use WeakReference for timer
* [ ] Add disconnecting event
* [ ] Add async versions of:
- [ ] connect
- [ ] subscribe
- [ ] disconnect
- [ ] unsubscribe

* [X] Allow for multi nested domains ie: na.est.example.com
* [X] Add isConnected implementation for iOS
* [X] Add isSubbed for iOS & Android
* [X] Add getTopics for iOS & Android

## LICENSE

```
```text
INHERIT FROM MQTT LIBRARY (progress)
```
12 changes: 8 additions & 4 deletions android/build.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
def safeExtGet(prop, fallback) {
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
}

buildscript {
repositories {
google()
Expand All @@ -12,12 +16,12 @@ buildscript {
apply plugin: 'com.android.library'

android {
compileSdkVersion 28
buildToolsVersion "28.0.3"
compileSdkVersion safeExtGet('compileSdkVersion', 28)
buildToolsVersion safeExtGet('buildToolsVersion', '28.0.3')

defaultConfig {
minSdkVersion 16
targetSdkVersion 26
minSdkVersion safeExtGet('minSdkVersion', 16)
targetSdkVersion safeExtGet('targetSdkVersion', 26)
versionCode 1
versionName "1.0"
}
Expand Down
141 changes: 141 additions & 0 deletions android/react-native-mqtt.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id=":react-native-mqtt" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/../../../android" external.system.id="GRADLE" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android-gradle" name="Android-Gradle">
<configuration>
<option name="GRADLE_PROJECT_PATH" value=":react-native-mqtt" />
</configuration>
</facet>
<facet type="android" name="Android">
<configuration>
<option name="SELECTED_BUILD_VARIANT" value="debug" />
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
<afterSyncTasks>
<task>generateDebugSources</task>
</afterSyncTasks>
<option name="ALLOW_USER_CONFIGURATION" value="false" />
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/build/generated/res/rs/debug;file://$MODULE_DIR$/build/generated/res/resValues/debug" />
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
<option name="PROJECT_TYPE" value="1" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
<output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
<output-test url="file://$MODULE_DIR$/build/intermediates/classes/test/debug" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/test/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/generated/not_namespaced_r_class_sources" />
<excludeFolder url="file://$MODULE_DIR$/build/generated/source/r" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/attr" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/check-manifest" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/packaged-aidl" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/packagedAssets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/packaged_res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/public_res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
</content>
<orderEntry type="jdk" jdkName="Android API 27 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Gradle: org.webkit:android-jsc:r174650@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable:27.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline:1.9.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-core-utils:27.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-core:1.1.0@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:runtime:1.1.0@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:common:1.1.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-annotations:27.1.1@jar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:viewmodel:1.1.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.parse.bolts:bolts-tasks:1.4.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.facebook.fresco:drawee:1.9.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.facebook.react:react-native:0.56.0@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.core:runtime:1.1.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable:27.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.facebook.fresco:fbcore:1.9.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline-okhttp3:1.9.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.code.findbugs:jsr305:3.0.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.facebook.fresco:imagepipeline-base:1.9.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.facebook.soloader:soloader:0.3.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.facebook.fbui.textlayoutbuilder:textlayoutbuilder:1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: org.bouncycastle:bcprov-jdk15on:1.54@jar" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.okio:okio:1.14.0@jar" level="project" />
<orderEntry type="library" name="Gradle: javax.inject:javax.inject:1@jar" level="project" />
<orderEntry type="library" name="Gradle: com.facebook.fresco:fresco:1.9.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.okhttp3:okhttp-urlconnection:3.10.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-core-ui:27.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-compat:27.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.facebook.fbui.textlayoutbuilder:staticlayout-proxy:1.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.okhttp3:okhttp:3.10.0@jar" level="project" />
<orderEntry type="library" name="Gradle: org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-fragment:27.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: org.eclipse.paho:org.eclipse.paho.android.service:1.1.1@jar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:appcompat-v7:27.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.core:common:1.1.0@jar" level="project" />
</component>
</module>
Loading