diff --git a/app/build.gradle b/app/build.gradle
index 44ce8e8168fd35852be13dfa0a75d861ff50bafc..570367950b18f699e4dec692eaa60f7f0025eabe 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -4,11 +4,13 @@ apply plugin: 'me.tatarka.retrolambda'
android {
compileSdkVersion 25
+ //noinspection GradleDependency
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.tecsynt.nynja"
minSdkVersion 17
+ //noinspection OldTargetApi
targetSdkVersion 25
versionCode 1
versionName "0.0.01"
@@ -83,6 +85,7 @@ dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// Support libraries
+ compile "com.android.support:support-v4:$supportLibraryVersion"
compile "com.android.support:appcompat-v7:$supportLibraryVersion"
compile "com.android.support:design:$supportLibraryVersion"
compile 'com.android.support.constraint:constraint-layout:1.0.2'
@@ -119,6 +122,13 @@ dependencies {
compile "io.reactivex.rxjava2:rxandroid:2.0.1"
compile "io.reactivex.rxjava2:rxjava:$rxJavaVersion"
+// MQTT
+ compile 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2'
+ compile ('org.eclipse.paho:org.eclipse.paho.android.service:1.0.2') {
+ exclude module: 'support-v4'
+ }
+
+
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a77ca1903cba422b1c460bf94d927758282e499b..544eb9fd4531856c0832f3ba99e0ae0e95a1f1ee 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,15 +1,15 @@
+ xmlns:android="http://schemas.android.com/apk/res/android">
-
-
-
+
+
+
-
-
-
+
+
+
+ android:supportsRtl="true"
+ android:theme="@style/AppTheme">
+
+
+
+
-
+
-
+
-
+
-
+
-
+
\ No newline at end of file
diff --git a/app/src/main/java/com/tecsynt/nynja/server/PahoService.java b/app/src/main/java/com/tecsynt/nynja/server/PahoService.java
new file mode 100644
index 0000000000000000000000000000000000000000..8a8d645e560e28a0844a1df8051704c8b69e4617
--- /dev/null
+++ b/app/src/main/java/com/tecsynt/nynja/server/PahoService.java
@@ -0,0 +1,95 @@
+package com.tecsynt.nynja.server;
+
+import android.app.Service;
+import android.content.Context;
+import android.content.Intent;
+import android.os.IBinder;
+import android.support.annotation.Nullable;
+
+import org.eclipse.paho.android.service.MqttAndroidClient;
+import org.eclipse.paho.client.mqttv3.IMqttActionListener;
+import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
+import org.eclipse.paho.client.mqttv3.IMqttToken;
+import org.eclipse.paho.client.mqttv3.MqttCallback;
+import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
+import org.eclipse.paho.client.mqttv3.MqttException;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+
+import timber.log.Timber;
+
+
+public class PahoService extends Service {
+ private static final String TAG = "PahoService ";
+ private static final String SERVER_URL = "tcp://ns.synrc.com:1883"; //1883 default port for mqtt
+ private static final String DEFAULT_CLIENT_ID = "emqttd_" + System.currentTimeMillis();
+ private static final String USERNAME_TO_API = "api";
+
+ public static Intent newInstance(Context context) {
+ return new Intent(context, PahoService.class);
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ }
+
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ connectToServer();
+ return START_STICKY;
+ }
+
+ @Nullable
+ @Override
+ public IBinder onBind(Intent intent) {
+ //TODO create connection to activity
+ return null;
+ }
+
+ private void connectToServer() {
+ MqttAndroidClient serverClient = new MqttAndroidClient(getApplicationContext(), SERVER_URL, DEFAULT_CLIENT_ID);
+ serverClient.setCallback(new MqttCallback() {
+
+ @Override
+ public void connectionLost(Throwable cause) {
+ Timber.e(cause);
+ }
+
+ @Override
+ public void messageArrived(String topic, MqttMessage message) throws Exception {
+ Timber.d(TAG + "Message arrived, Topic:" + topic + ", Message:" + message.toString());
+ }
+
+ @Override
+ public void deliveryComplete(IMqttDeliveryToken token) {
+ Timber.d(TAG + "Deliver of message complete" + token);
+ }
+ });
+
+ MqttConnectOptions mqttConnectOptions = new MqttConnectOptions();
+ mqttConnectOptions.setUserName(USERNAME_TO_API);
+ mqttConnectOptions.setCleanSession(false);
+ try {
+ serverClient.connect(mqttConnectOptions, null, new IMqttActionListener() {
+ @Override
+ public void onSuccess(IMqttToken asyncActionToken) {
+ Timber.d(TAG + "connect success");
+ }
+
+
+ @Override
+ public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
+ Timber.e(exception);
+ Timber.d(TAG + exception.toString());
+ }
+ });
+ } catch (MqttException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/app/src/main/java/com/tecsynt/nynja/server/com/softwarejoint/bert/Bert.java b/app/src/main/java/com/tecsynt/nynja/server/com/softwarejoint/bert/Bert.java
new file mode 100644
index 0000000000000000000000000000000000000000..987023d8a61c4fc9048d445fed83b10f71be91a7
--- /dev/null
+++ b/app/src/main/java/com/tecsynt/nynja/server/com/softwarejoint/bert/Bert.java
@@ -0,0 +1,115 @@
+package com.tecsynt.nynja.server.com.softwarejoint.bert;
+
+import android.annotation.SuppressLint;
+
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.HashMap;
+
+abstract class Bert {
+
+ Charset utf8Charset;
+
+ boolean encodeStringAsBinary;
+ boolean encodeMapKeysAsAtom;
+ boolean encodeMapKeysAsString;
+ boolean encodeMapAsPropList;
+
+ boolean decodeAtomAsString;
+ boolean decodePropListsAsMap;
+ boolean decodeMapKeysAsString;
+ int maxMapElements;
+
+ DistributionHeader.VERSION minorVersion;
+
+ private ArrayList