aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Android_Studio
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-03-18 18:11:20 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-03-18 18:11:20 +0200
commit4f4b5f052200fde6ccc6aa06094904cf9bf3106b (patch)
tree7c9b06eeeb747ecafb0b865611886ae8ab314999 /Software/Android_Studio
parenta21d0758fd56a76d934a036a3bfeacea8984ee85 (diff)
downloadTango-4f4b5f052200fde6ccc6aa06094904cf9bf3106b.tar.gz
Tango-4f4b5f052200fde6ccc6aa06094904cf9bf3106b.zip
Refactored android project to use the new logging library.
Implemented continuous request timeout on android.
Diffstat (limited to 'Software/Android_Studio')
-rw-r--r--Software/Android_Studio/Tango.Core/build.gradle9
-rw-r--r--Software/Android_Studio/Tango.Core/src/main/java/com/twine/tango/core/ExtendedObject.java14
-rw-r--r--Software/Android_Studio/Tango.DAL/build.gradle9
-rw-r--r--Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/TangoDB.java11
-rw-r--r--Software/Android_Studio/Tango.Integration/build.gradle2
-rw-r--r--Software/Android_Studio/Tango.Integration/src/main/java/com/twine/tango/integration/services/ExternalBridgeService.java10
-rw-r--r--Software/Android_Studio/Tango.Integration/src/main/java/com/twine/tango/integration/services/SynchronizationService.java20
-rw-r--r--Software/Android_Studio/Tango.Logging/src/main/java/com/twine/tango/logging/LogManager.java10
-rw-r--r--Software/Android_Studio/Tango.PMR/build.gradle6
-rw-r--r--Software/Android_Studio/Tango.PMR/src/main/java/com/twine/tango/pmr/MessageFactory.java8
-rw-r--r--Software/Android_Studio/Tango.SharedUI/build.gradle2
-rw-r--r--Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/TangoApplication.java40
-rw-r--r--Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/ViewModelBase.java5
-rw-r--r--Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/navigation/AndroidNavigationProvider.java24
-rw-r--r--Software/Android_Studio/Tango.Stubs.UI/build.gradle1
-rw-r--r--Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/views/stub/StubFragmentVM.java5
-rw-r--r--Software/Android_Studio/Tango.Stubs/build.gradle2
-rw-r--r--Software/Android_Studio/Tango.Stubs/src/main/java/com/twine/tango/stubs/AvailableStub.java6
-rw-r--r--Software/Android_Studio/Tango.Stubs/src/main/java/com/twine/tango/stubs/StubBase.java12
-rw-r--r--Software/Android_Studio/Tango.Transport/build.gradle8
-rw-r--r--Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportAdapterBase.java6
-rw-r--r--Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportMessage.java11
-rw-r--r--Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransporterBase.java128
-rw-r--r--Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/adapters/TcpTransportAdapter.java10
-rw-r--r--Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/adapters/UsbTransportAdapter.java3
-rw-r--r--Software/Android_Studio/Tango.UnitTesting/src/androidTest/java/com/twine/tango/unittesting/Logging_TST.java3
-rw-r--r--Software/Android_Studio/Tango.UnitTesting/src/androidTest/java/com/twine/tango/unittesting/Synchronization_TST.java4
-rw-r--r--Software/Android_Studio/build.gradle1
28 files changed, 192 insertions, 178 deletions
diff --git a/Software/Android_Studio/Tango.Core/build.gradle b/Software/Android_Studio/Tango.Core/build.gradle
index 55696df8c..036e02ac5 100644
--- a/Software/Android_Studio/Tango.Core/build.gradle
+++ b/Software/Android_Studio/Tango.Core/build.gradle
@@ -20,16 +20,19 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
+
+ dataBinding {
+ enabled = true
+ }
}
dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
-
+ implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:26.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
-
compile globalDependencies.stream
compile globalDependencies.linq
+ implementation project(':Tango.Logging')
}
diff --git a/Software/Android_Studio/Tango.Core/src/main/java/com/twine/tango/core/ExtendedObject.java b/Software/Android_Studio/Tango.Core/src/main/java/com/twine/tango/core/ExtendedObject.java
new file mode 100644
index 000000000..5a7b50d79
--- /dev/null
+++ b/Software/Android_Studio/Tango.Core/src/main/java/com/twine/tango/core/ExtendedObject.java
@@ -0,0 +1,14 @@
+package com.twine.tango.core;
+
+import android.databinding.BaseObservable;
+
+import com.twine.tango.logging.LogManager;
+
+/**
+ * Created by Roy on 3/18/2018.
+ */
+
+public class ExtendedObject extends BaseObservable
+{
+ protected static LogManager logManager = LogManager.getDefault();
+}
diff --git a/Software/Android_Studio/Tango.DAL/build.gradle b/Software/Android_Studio/Tango.DAL/build.gradle
index abaccdd33..fdc899b3a 100644
--- a/Software/Android_Studio/Tango.DAL/build.gradle
+++ b/Software/Android_Studio/Tango.DAL/build.gradle
@@ -34,7 +34,6 @@ dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
-
//DBFlow
compile globalDependencies.rxJavaAndroid
compile globalDependencies.rxJava
@@ -42,16 +41,12 @@ dependencies {
compile "com.github.Raizlabs.DBFlow:dbflow-core:${dbflow_version}"
compile "com.github.Raizlabs.DBFlow:dbflow:${dbflow_version}"
compile "com.github.Raizlabs.DBFlow:dbflow-rx2:${dbflow_version}"
-
-
implementation project(':Tango.Core')
compile 'com.android.support:support-annotations:25.4.0'
-
- compile globalDependencies.logging
compile globalDependencies.storage
compile globalDependencies.joda
-
- compile group: 'commons-io', name: 'commons-io', version: '2.4'
+ compile 'commons-io:commons-io:2.4'
+ implementation project(':Tango.Logging')
}
//Copy data base to assets folder.
diff --git a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/TangoDB.java b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/TangoDB.java
index 53bb6a8e2..cdbaab1bb 100644
--- a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/TangoDB.java
+++ b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/TangoDB.java
@@ -1,8 +1,5 @@
package com.twine.tango.dal;
-import android.os.Environment;
-
-import com.elvishew.xlog.XLog;
import com.raizlabs.android.dbflow.annotation.Database;
import com.raizlabs.android.dbflow.config.DatabaseConfig;
import com.raizlabs.android.dbflow.config.DatabaseDefinition;
@@ -10,6 +7,7 @@ import com.raizlabs.android.dbflow.config.FlowConfig;
import com.raizlabs.android.dbflow.config.FlowManager;
import com.snatik.storage.Storage;
import com.twine.tango.core.ContextHelper;
+import com.twine.tango.core.ExtendedObject;
import org.apache.commons.io.IOUtils;
@@ -23,7 +21,7 @@ import java.io.InputStream;
* Must be initialized before use.
*/
@Database(name = "Tango", version = 1)
-public class TangoDB
+public class TangoDB extends ExtendedObject
{
private static DatabaseDefinition database;
private static String database_path;
@@ -44,8 +42,7 @@ public class TangoDB
createIfNotFound();
} catch (Exception e)
{
- XLog.e("Application failed on 'create database if not' found. will run in DBFlow default mode.");
- XLog.e(e);
+ logManager.log(e,"Application failed on 'create database if not' found. will run in DBFlow default mode.");
}
FlowManager.init(FlowConfig.builder(ContextHelper.getApplicationContext())
@@ -63,7 +60,7 @@ public class TangoDB
backup();
} catch (IOException e)
{
- XLog.e(e);
+ logManager.log(e);
}
}
diff --git a/Software/Android_Studio/Tango.Integration/build.gradle b/Software/Android_Studio/Tango.Integration/build.gradle
index 255fce0f6..ba8a3f663 100644
--- a/Software/Android_Studio/Tango.Integration/build.gradle
+++ b/Software/Android_Studio/Tango.Integration/build.gradle
@@ -39,7 +39,6 @@ dependencies {
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
compile globalDependencies.rxJavaAndroid
compile globalDependencies.rxJava
- compile globalDependencies.logging
compile globalDependencies.dagger
compile globalDependencies.daggerAndroid
implementation project(':Tango.PMR')
@@ -47,4 +46,5 @@ dependencies {
implementation project(':Tango.Core')
implementation project(':Tango.DAL')
implementation project(':Tango.Web')
+ implementation project(':Tango.Logging')
}
diff --git a/Software/Android_Studio/Tango.Integration/src/main/java/com/twine/tango/integration/services/ExternalBridgeService.java b/Software/Android_Studio/Tango.Integration/src/main/java/com/twine/tango/integration/services/ExternalBridgeService.java
index 189c21d3f..aea082d05 100644
--- a/Software/Android_Studio/Tango.Integration/src/main/java/com/twine/tango/integration/services/ExternalBridgeService.java
+++ b/Software/Android_Studio/Tango.Integration/src/main/java/com/twine/tango/integration/services/ExternalBridgeService.java
@@ -6,9 +6,9 @@ import android.net.wifi.WifiManager;
import android.os.StrictMode;
import android.os.SystemClock;
-import com.elvishew.xlog.XLog;
import com.google.protobuf.GeneratedMessageV3;
import com.twine.tango.core.ContextHelper;
+import com.twine.tango.core.ExtendedObject;
import com.twine.tango.core.IEventHandler;
import com.twine.tango.integration.operators.IMachineOperator;
import com.twine.tango.integration.providers.IMachineIdentityProvider;
@@ -100,7 +100,7 @@ public class ExternalBridgeService extends BasicTransporter implements IExternal
}
catch (IOException e)
{
- XLog.e(e);
+ logManager.log(e);
}
SystemClock.sleep(5000);
@@ -180,7 +180,7 @@ public class ExternalBridgeService extends BasicTransporter implements IExternal
}
catch (IOException e)
{
- XLog.e(e);
+ logManager.log(e);
}
SystemClock.sleep(100);
@@ -268,13 +268,13 @@ public class ExternalBridgeService extends BasicTransporter implements IExternal
}
else
{
- XLog.w("Message received from an unauthorized adapter!");
+ logManager.log("Message received from an unauthorized adapter!");
}
}
catch (Exception e)
{
- XLog.e(e);
+ logManager.log(e);
}
}
diff --git a/Software/Android_Studio/Tango.Integration/src/main/java/com/twine/tango/integration/services/SynchronizationService.java b/Software/Android_Studio/Tango.Integration/src/main/java/com/twine/tango/integration/services/SynchronizationService.java
index 53b4c8194..d8423cf22 100644
--- a/Software/Android_Studio/Tango.Integration/src/main/java/com/twine/tango/integration/services/SynchronizationService.java
+++ b/Software/Android_Studio/Tango.Integration/src/main/java/com/twine/tango/integration/services/SynchronizationService.java
@@ -2,10 +2,10 @@ package com.twine.tango.integration.services;
import android.os.AsyncTask;
-import com.elvishew.xlog.XLog;
import com.google.protobuf.ByteString;
import com.snatik.storage.Storage;
import com.twine.tango.core.ContextHelper;
+import com.twine.tango.core.ExtendedObject;
import com.twine.tango.dal.TangoDB;
import com.twine.tango.integration.providers.IMachineIdentityProvider;
import com.twine.tango.integration.services.IExternalBridgeService.MessageReceivedArgs;
@@ -16,14 +16,10 @@ import com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.Di
import com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse;
import com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest;
import com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse;
-import com.twine.tango.pmr.stubs.CalculateRequestOuterClass.CalculateRequest;
-import com.twine.tango.pmr.stubs.CalculateResponseOuterClass.CalculateResponse;
import com.twine.tango.pmr.synchronization.SynchronizeDBRequestOuterClass.SynchronizeDBRequest;
import com.twine.tango.web.WebApiFactory;
import com.twine.tango.web.ISynchronizationAPI;
-import java.io.IOException;
-
import javax.inject.Inject;
import io.reactivex.Completable;
@@ -32,7 +28,7 @@ import io.reactivex.Completable;
/**
* Represents the Tango application local to remote synchronization engine.
*/
-public class SynchronizationService implements ISynchronizationService
+public class SynchronizationService extends ExtendedObject implements ISynchronizationService
{
private IMachineIdentityProvider machineIdentityProvider;
private IExternalBridgeService bridgeService;
@@ -78,12 +74,12 @@ public class SynchronizationService implements ISynchronizationService
},(ex) ->
{
- XLog.e(ex);
+ logManager.log(ex);
});
} catch (Exception e)
{
- XLog.e(e);
+ logManager.log(e);
//Create response.
OverrideDataBaseResponse response = OverrideDataBaseResponse.newBuilder()
.setSuccessful(false)
@@ -98,7 +94,7 @@ public class SynchronizationService implements ISynchronizationService
},(ex) ->
{
- XLog.e(ex);
+ logManager.log(ex);
});
}
});
@@ -129,12 +125,12 @@ public class SynchronizationService implements ISynchronizationService
},(ex) ->
{
- XLog.e(ex);
+ logManager.log(ex);
});
} catch (Exception e)
{
- XLog.e(e);
+ logManager.log(e);
}
});
}
@@ -170,7 +166,7 @@ public class SynchronizationService implements ISynchronizationService
}, (ex) ->
{
- XLog.e(ex);
+ logManager.log(ex);
emitter.onError(ex);
});
diff --git a/Software/Android_Studio/Tango.Logging/src/main/java/com/twine/tango/logging/LogManager.java b/Software/Android_Studio/Tango.Logging/src/main/java/com/twine/tango/logging/LogManager.java
index b3b8041a2..b2a199f22 100644
--- a/Software/Android_Studio/Tango.Logging/src/main/java/com/twine/tango/logging/LogManager.java
+++ b/Software/Android_Studio/Tango.Logging/src/main/java/com/twine/tango/logging/LogManager.java
@@ -94,6 +94,11 @@ public class LogManager
}
}
+ public Exception log(Throwable throwable)
+ {
+ return log(new Exception((throwable)));
+ }
+
public Exception log(Exception exception, LogCategory category, String description)
{
if (!categories.contains(category)) return exception;
@@ -126,6 +131,11 @@ public class LogManager
return exception;
}
+ public Exception log(Exception exception)
+ {
+ return log(exception,"");
+ }
+
public String log(String message, LogCategory category)
{
MessageLogItem log = new MessageLogItem();
diff --git a/Software/Android_Studio/Tango.PMR/build.gradle b/Software/Android_Studio/Tango.PMR/build.gradle
index 1aca6d009..19f6f810d 100644
--- a/Software/Android_Studio/Tango.PMR/build.gradle
+++ b/Software/Android_Studio/Tango.PMR/build.gradle
@@ -23,16 +23,14 @@ android {
}
dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
-
+ implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:26.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
-
compile globalDependencies.protobuf
- compile globalDependencies.logging
compile project(path: ':Tango.Core')
+ implementation project(':Tango.Logging')
}
task createPMR(type: Exec, description: 'Update all PMR files') {
diff --git a/Software/Android_Studio/Tango.PMR/src/main/java/com/twine/tango/pmr/MessageFactory.java b/Software/Android_Studio/Tango.PMR/src/main/java/com/twine/tango/pmr/MessageFactory.java
index 689d2c25a..982b5cdb1 100644
--- a/Software/Android_Studio/Tango.PMR/src/main/java/com/twine/tango/pmr/MessageFactory.java
+++ b/Software/Android_Studio/Tango.PMR/src/main/java/com/twine/tango/pmr/MessageFactory.java
@@ -1,10 +1,10 @@
package com.twine.tango.pmr;
-import com.elvishew.xlog.XLog;
import com.google.protobuf.GeneratedMessageV3;
import com.google.protobuf.InvalidProtocolBufferException;
import com.google.protobuf.Parser;
import com.twine.tango.core.ReflectionsHelper;
+import com.twine.tango.logging.LogManager;
import com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer;
import com.twine.tango.pmr.common.MessageTypeOuterClass.MessageType;
@@ -67,9 +67,9 @@ public class MessageFactory
//Ignore because we are trying to find the right class by brute force.
}
}
-
-
- XLog.e(new ClassNotFoundException("Could not find PMR message class for " + name));
+
+
+ LogManager.getDefault().log(new ClassNotFoundException("Could not find PMR message class for " + name));
return null;
}
diff --git a/Software/Android_Studio/Tango.SharedUI/build.gradle b/Software/Android_Studio/Tango.SharedUI/build.gradle
index 832a8eb22..0696c1e2e 100644
--- a/Software/Android_Studio/Tango.SharedUI/build.gradle
+++ b/Software/Android_Studio/Tango.SharedUI/build.gradle
@@ -47,7 +47,6 @@ dependencies {
implementation 'javax.inject:javax.inject:1'
implementation 'com.jakewharton:butterknife:8.7.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.7.0'
- implementation globalDependencies.logging
implementation project(':Tango.Core')
compile 'com.hrules:horizontalnumberpicker:1.1.1'
//Extensions
@@ -63,4 +62,5 @@ dependencies {
implementation project(':Tango.Transport')
implementation project(':Tango.Integration')
compile 'com.squareup:otto:1.3.8'
+ implementation project(':Tango.Logging')
}
diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/TangoApplication.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/TangoApplication.java
index a2a48ae43..aacb35350 100644
--- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/TangoApplication.java
+++ b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/TangoApplication.java
@@ -4,17 +4,12 @@ import android.annotation.SuppressLint;
import android.app.Application;
import android.content.Context;
-import com.elvishew.xlog.LogConfiguration;
-import com.elvishew.xlog.LogLevel;
-import com.elvishew.xlog.XLog;
-import com.elvishew.xlog.printer.AndroidPrinter;
-import com.elvishew.xlog.printer.Printer;
-import com.elvishew.xlog.printer.file.FilePrinter;
-import com.elvishew.xlog.printer.file.backup.FileSizeBackupStrategy;
-import com.elvishew.xlog.printer.file.naming.DateFileNameGenerator;
import com.google.protobuf.GeneratedMessageV3;
import com.twine.tango.core.ContextHelper;
import com.twine.tango.dal.TangoDB;
+import com.twine.tango.logging.FileLogger;
+import com.twine.tango.logging.LogCatLogger;
+import com.twine.tango.logging.LogManager;
import com.twine.tango.pmr.MessageFactory;
import com.twine.tango.web.WebApiFactory;
@@ -42,27 +37,16 @@ public class TangoApplication extends Application
JodaTimeAndroid.init(context);
ContextHelper.init(context);
+
+ LogManager logManager = LogManager.getDefault();
- LogConfiguration config = new LogConfiguration.Builder()
- .logLevel(LogLevel.ALL)
- .tag("Tango")
- .t()
- .st(1)
-// .b()
- .addObjectFormatter(GeneratedMessageV3.class, msg -> msg.toString()).build();
-
- File sdcard = context.getFilesDir();
- File dir = new File(sdcard.getAbsolutePath() + "/logs");
- boolean b = dir.mkdirs();
-
- Printer androidPrinter = new AndroidPrinter();
- Printer filePrinter = new FilePrinter.Builder(dir.getPath())
- .fileNameGenerator(new DateFileNameGenerator())
- .backupStrategy(new FileSizeBackupStrategy(1024 * 1024))
- .build();
+ LogCatLogger logCatLogger = new LogCatLogger();
+ FileLogger fileLogger = new FileLogger(context);
+
+ logManager.registerLogger(logCatLogger);
+ logManager.registerLogger(fileLogger);
- XLog.init(config, androidPrinter, filePrinter);
- XLog.i("Logger Initialized. logs will be saved to: " + dir.getAbsolutePath());
+ logManager.log("Logger Initialized. logs will be saved to: " + fileLogger.getFileName());
TangoDB.init();
@@ -72,7 +56,7 @@ public class TangoApplication extends Application
Thread.setDefaultUncaughtExceptionHandler((thread, throwable) -> {
throwable.printStackTrace();
- XLog.e(throwable);
+ logManager.log(throwable);
System.exit(1);
//TODO: What to do on application crash ?
});
diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/ViewModelBase.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/ViewModelBase.java
index 60886b7e7..1d2e5ad86 100644
--- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/ViewModelBase.java
+++ b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/ViewModelBase.java
@@ -2,6 +2,8 @@ package com.twine.tango.sharedui.mvvm;
import android.util.Log;
+import com.twine.tango.core.ExtendedObject;
+
import java.lang.reflect.Field;
@@ -10,7 +12,8 @@ import java.lang.reflect.Field;
*
* @param <T> the type parameter
*/
-public abstract class ViewModelBase<T extends IView> {
+public abstract class ViewModelBase<T extends IView> extends ExtendedObject
+{
/**
* The View.
diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/navigation/AndroidNavigationProvider.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/navigation/AndroidNavigationProvider.java
index dcdf4160f..545793a5d 100644
--- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/navigation/AndroidNavigationProvider.java
+++ b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/navigation/AndroidNavigationProvider.java
@@ -4,7 +4,7 @@ import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
-import com.elvishew.xlog.XLog;
+import com.twine.tango.core.ExtendedObject;
import com.twine.tango.core.IAction1;
import com.twine.tango.sharedui.R;
import com.twine.tango.sharedui.containers.FragmentBase;
@@ -12,7 +12,7 @@ import com.twine.tango.sharedui.containers.FragmentBase;
/**
* Represents an android navigation provider.
*/
-public class AndroidNavigationProvider implements INavigationProvider
+public class AndroidNavigationProvider extends ExtendedObject implements INavigationProvider
{
private AppCompatActivity activity;
private FragmentBase currentFragment;
@@ -51,7 +51,7 @@ public class AndroidNavigationProvider implements INavigationProvider
{
if (activity == null)
{
- XLog.e(new NullPointerException("No navigation activity registered."));
+ logManager.log(new NullPointerException("No navigation activity registered."));
return;
}
@@ -70,7 +70,7 @@ public class AndroidNavigationProvider implements INavigationProvider
fragment = (FragmentBase) Class.forName(fragmentName).newInstance();
} catch (Exception ex)
{
- XLog.e("Fragment " + fragmentName + " not found.", ex);
+ logManager.log(ex,"Fragment " + fragmentName + " not found.");
return;
}
}
@@ -106,14 +106,14 @@ public class AndroidNavigationProvider implements INavigationProvider
fragmentTransaction.replace(fragment_container, fragment).addToBackStack(fragmentName);
fragmentTransaction.commit();
- try
- {
- //noinspection ConstantConditions
- //fragment.getView().setFocusableInTouchMode(true);
- } catch (Exception ex)
- {
- XLog.e(ex);
- }
+// try
+// {
+// //noinspection ConstantConditions
+// //fragment.getView().setFocusableInTouchMode(true);
+// } catch (Exception ex)
+// {
+// logManager.log(ex);
+// }
currentFragment = fragment;
}
diff --git a/Software/Android_Studio/Tango.Stubs.UI/build.gradle b/Software/Android_Studio/Tango.Stubs.UI/build.gradle
index 41853210a..6214adf2c 100644
--- a/Software/Android_Studio/Tango.Stubs.UI/build.gradle
+++ b/Software/Android_Studio/Tango.Stubs.UI/build.gradle
@@ -67,4 +67,5 @@ dependencies {
implementation project(':Tango.Transport')
implementation project(':Tango.Core')
implementation project(':Tango.DAL')
+ implementation project(':Tango.Logging')
}
diff --git a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/views/stub/StubFragmentVM.java b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/views/stub/StubFragmentVM.java
index fe237bcd8..f490ccee6 100644
--- a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/views/stub/StubFragmentVM.java
+++ b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/views/stub/StubFragmentVM.java
@@ -1,6 +1,5 @@
package com.twine.tango.stubs.ui.views.stub;
-import com.elvishew.xlog.XLog;
import com.squareup.otto.Bus;
import com.squareup.otto.Subscribe;
import com.twine.tango.integration.operators.IMachineOperator;
@@ -58,11 +57,11 @@ public class StubFragmentVM extends ViewModelBase<IStubFragment>
stub.get().run().observeOn(AndroidSchedulers.mainThread()).subscribe((response) ->
{
this.response.set(this.response.get() + response + "\n");
- XLog.i(response);
+ logManager.log(response);
}, (ex) ->
{
this.response.set(this.response.get() + ex.getMessage() + "\n");
- XLog.e(ex);
+ logManager.log(ex);
});
}
}
diff --git a/Software/Android_Studio/Tango.Stubs/build.gradle b/Software/Android_Studio/Tango.Stubs/build.gradle
index c13f526c0..a6815ffe3 100644
--- a/Software/Android_Studio/Tango.Stubs/build.gradle
+++ b/Software/Android_Studio/Tango.Stubs/build.gradle
@@ -34,7 +34,6 @@ android {
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:26.1.0'
- compile globalDependencies.logging
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
@@ -43,6 +42,7 @@ dependencies {
implementation project(':Tango.Core')
compile project(path: ':Tango.Transport')
implementation project(':Tango.SharedUI')
+ implementation project(':Tango.Logging')
}
task reflectStubs() << {
diff --git a/Software/Android_Studio/Tango.Stubs/src/main/java/com/twine/tango/stubs/AvailableStub.java b/Software/Android_Studio/Tango.Stubs/src/main/java/com/twine/tango/stubs/AvailableStub.java
index f1b2488af..f6b4fe7cd 100644
--- a/Software/Android_Studio/Tango.Stubs/src/main/java/com/twine/tango/stubs/AvailableStub.java
+++ b/Software/Android_Studio/Tango.Stubs/src/main/java/com/twine/tango/stubs/AvailableStub.java
@@ -1,13 +1,13 @@
package com.twine.tango.stubs;
-import com.elvishew.xlog.XLog;
+import com.twine.tango.core.ExtendedObject;
import com.twine.tango.transport.ITransporter;
/**
* Represents a description of an available stub type which can be instantiated and run.
*/
-public class AvailableStub
+public class AvailableStub extends ExtendedObject
{
private Class<?> type;
@@ -101,7 +101,7 @@ public class AvailableStub
return (StubBase) type.getConstructor(ITransporter.class).newInstance(transporter);
} catch (Exception e)
{
- XLog.e(e);
+ logManager.log(e);
}
return null;
diff --git a/Software/Android_Studio/Tango.Stubs/src/main/java/com/twine/tango/stubs/StubBase.java b/Software/Android_Studio/Tango.Stubs/src/main/java/com/twine/tango/stubs/StubBase.java
index 80ac59a8e..f79a12b8f 100644
--- a/Software/Android_Studio/Tango.Stubs/src/main/java/com/twine/tango/stubs/StubBase.java
+++ b/Software/Android_Studio/Tango.Stubs/src/main/java/com/twine/tango/stubs/StubBase.java
@@ -1,6 +1,6 @@
package com.twine.tango.stubs;
-import com.elvishew.xlog.XLog;
+import com.twine.tango.core.ExtendedObject;
import com.twine.tango.core.ReflectionsHelper;
import com.twine.tango.transport.ITransporter;
@@ -15,7 +15,7 @@ import io.reactivex.subjects.PublishSubject;
/**
* Represents na {@link IStub} base class.
*/
-public abstract class StubBase implements IStub {
+public abstract class StubBase extends ExtendedObject implements IStub {
private ITransporter transporter;
private StubState state;
@@ -65,20 +65,20 @@ public abstract class StubBase implements IStub {
public Observable<String> run() {
PublishSubject<String> subject = PublishSubject.create();
-
- XLog.i("Executing stub " + this.getClass().getSimpleName() + "...");
+
+ logManager.log("Executing stub " + this.getClass().getSimpleName() + "...");
setState(StubState.Running);
onRun().subscribe((res) ->
{
subject.onNext(res);
setState(StubState.Passed);
- XLog.i("Stub completed successfully with result " + res);
+ logManager.log("Stub completed successfully with result " + res);
},
(ex) ->
{
setState(StubState.Failed);
- XLog.i("Stub failed.");
+ logManager.log("Stub failed.");
subject.onError(ex);
});
setState(StubState.Running);
diff --git a/Software/Android_Studio/Tango.Transport/build.gradle b/Software/Android_Studio/Tango.Transport/build.gradle
index 685c112db..09ce4b6b7 100644
--- a/Software/Android_Studio/Tango.Transport/build.gradle
+++ b/Software/Android_Studio/Tango.Transport/build.gradle
@@ -22,6 +22,10 @@ android {
}
}
+ dataBinding {
+ enabled = true
+ }
+
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
@@ -41,14 +45,12 @@ dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
-
implementation project(':Tango.PMR')
implementation project(':Tango.Core')
-
compile globalDependencies.rxJavaAndroid
compile globalDependencies.rxJava
- compile globalDependencies.logging
compile globalDependencies.protobuf
compile globalDependencies.joda
compile globalDependencies.usb
+ implementation project(':Tango.Logging')
}
diff --git a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportAdapterBase.java b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportAdapterBase.java
index e88ce5dab..b79492607 100644
--- a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportAdapterBase.java
+++ b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportAdapterBase.java
@@ -1,7 +1,7 @@
package com.twine.tango.transport;
-import com.elvishew.xlog.XLog;
import com.twine.tango.core.Event;
+import com.twine.tango.core.ExtendedObject;
import com.twine.tango.core.IEventHandler;
import com.twine.tango.core.ObjectDisposedException;
@@ -16,7 +16,7 @@ import io.reactivex.Completable;
/**
* Represents an {@link ITransportAdapter} base class.
*/
-public abstract class TransportAdapterBase implements ITransportAdapter
+public abstract class TransportAdapterBase extends ExtendedObject implements ITransportAdapter
{
/**
* The constant MAX_BUFFER_SIZE.
@@ -202,7 +202,7 @@ public abstract class TransportAdapterBase implements ITransportAdapter
{
disconnect().blockingAwait();
setState(TransportComponentState.Failed);
- XLog.e(ex);
+ logManager.log(ex);
}
/**
diff --git a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportMessage.java b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportMessage.java
index a787d62ff..9978dd106 100644
--- a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportMessage.java
+++ b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransportMessage.java
@@ -15,10 +15,16 @@ public class TransportMessage<T> extends TransportMessageBase
private PublishSubject<T> publishSubject;
+ public boolean isAtLeastOnResponseReceived()
+ {
+ return atLeastOnResponseReceived;
+ }
+
+ private boolean atLeastOnResponseReceived;
+
/**
* Instantiates a new Transport message.
*
- * @param adapter the adapter
* @param token the token
* @param message the message
* @param direction the direction
@@ -35,7 +41,7 @@ public class TransportMessage<T> extends TransportMessageBase
@Override
protected void setResult(Object result, boolean completed)
{
-
+ atLeastOnResponseReceived = true;
publishSubject.onNext((T) result);
if (completed) publishSubject.onComplete();
}
@@ -43,6 +49,7 @@ public class TransportMessage<T> extends TransportMessageBase
@Override
protected void setException(Exception error)
{
+ atLeastOnResponseReceived = true;
publishSubject.onError(error);
}
}
diff --git a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransporterBase.java b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransporterBase.java
index 921cd6338..66e7af393 100644
--- a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransporterBase.java
+++ b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/TransporterBase.java
@@ -1,13 +1,17 @@
package com.twine.tango.transport;
+import android.databinding.BaseObservable;
+import android.databinding.Bindable;
import android.os.AsyncTask;
import android.os.SystemClock;
-import com.elvishew.xlog.XLog;
import com.google.protobuf.GeneratedMessageV3;
import com.twine.tango.core.Event;
+import com.twine.tango.core.ExtendedObject;
import com.twine.tango.core.IEventHandler;
import com.twine.tango.core.ObjectDisposedException;
+import com.twine.tango.logging.LogCategory;
+import com.twine.tango.logging.LogManager;
import com.twine.tango.pmr.MessageFactory;
import com.twine.tango.pmr.TangoMessage;
import com.twine.tango.pmr.common.ErrorCodeOuterClass.ErrorCode;
@@ -38,7 +42,7 @@ import static br.com.zbra.androidlinq.Linq.stream;
/**
* Represents an {@link ITransporter} base class.
*/
-public abstract class TransporterBase implements ITransporter
+public abstract class TransporterBase extends ExtendedObject implements ITransporter
{
private ConcurrentLinkedQueue<TransportMessageBase> sendingQueue;
@@ -64,6 +68,7 @@ public abstract class TransporterBase implements ITransporter
//region Properties
+ @Bindable
@Override
public ITransportAdapter getAdapter()
{
@@ -74,12 +79,12 @@ public abstract class TransporterBase implements ITransporter
public void setAdapter(ITransportAdapter adapter)
{
this.adapter = adapter;
-
- XLog.i("Adapter changed:");
+
+ logManager.log("Adapter changed:");
if (this.adapter != null)
{
- XLog.i(adapter.getClass().getName() + ", " + adapter.getAddress() + ", " + adapter.getState());
+ logManager.log(adapter.getClass().getName() + ", " + adapter.getAddress() + ", " + adapter.getState());
adapter.removeStateChangedListener(this::onAdapterStateChanged);
adapter.addStateChangedListener(this::onAdapterStateChanged);
@@ -90,6 +95,8 @@ public abstract class TransporterBase implements ITransporter
adapter.connect().subscribe();
}
}
+
+ notifyPropertyChanged(BR.adapter);
}
@Override
@@ -104,6 +111,7 @@ public abstract class TransporterBase implements ITransporter
this.encoder = encoder;
}
+ @Bindable
@Override
public TransportComponentState getState()
{
@@ -119,6 +127,7 @@ public abstract class TransporterBase implements ITransporter
{
this.state = state;
onStateChanged(this.state);
+ notifyPropertyChanged(BR.state);
}
@Override
@@ -194,7 +203,7 @@ public abstract class TransporterBase implements ITransporter
{
disconnect().blockingAwait();
setState(TransportComponentState.Failed);
- XLog.e("Transporter failed.", ex);
+ logManager.log(ex,"Transporter failed.");
}
/**
@@ -274,13 +283,13 @@ public abstract class TransporterBase implements ITransporter
setState(TransportComponentState.Connected);
startThreads();
-
- XLog.i("Transporter connected...");
+
+ logManager.log("Transporter connected...");
x.onComplete();
}
catch (Exception e)
{
- XLog.e("Error connecting transporter", e);
+ logManager.log(e,"Error connecting transporter");
x.onError(e);
}
}).subscribeOn(Schedulers.io());
@@ -301,8 +310,8 @@ public abstract class TransporterBase implements ITransporter
}
setState(TransportComponentState.Disconnected);
-
- XLog.i("Transporter disconnected...");
+
+ logManager.log("Transporter disconnected...");
x.onComplete();
}
@@ -323,22 +332,21 @@ public abstract class TransporterBase implements ITransporter
@Override
public <Request extends GeneratedMessageV3, Response extends GeneratedMessageV3> Single<TangoMessage<Response>> sendRequest(TangoMessage<Request> request, Period timeout)
{
- XLog.i("Queuing request message: " + request.getContainer().getType() + " Token: " + request.getContainer().getToken());
- XLog.i("Expected response: " + Response.Builder.class.getSimpleName());
+ logManager.log("Queuing request message: " + request.getContainer().getType() + " Token: " + request.getContainer().getToken(), LogCategory.Debug);
+ logManager.log("Expected response: " + Response.Builder.class.getSimpleName(), LogCategory.Debug);
PublishSubject<TangoMessage<Response>> subject = PublishSubject.create();
TransportMessage<TangoMessage<Response>> message = new TransportMessage<>(request.getContainer().getToken(), request, TransportMessageDirection.Request, () -> encoder.encode(request), subject);
sendingQueue.add(message);
- Completable.timer(getRequestTimeout().getSeconds(), TimeUnit.SECONDS)
+ Completable.timer(timeout.getSeconds(), TimeUnit.SECONDS)
.subscribe(() ->
{
if (!subject.hasComplete())
{
- TimeoutException exception = new TimeoutException("Request message " + request.getMessage().getClass().getSimpleName() + " had timed out after " + getRequestTimeout().getSeconds() + " seconds.");
- XLog.e(exception);
- XLog.i("Setting request task exception...");
- subject.onError(exception);
+ Exception ex = logManager.log(new TimeoutException("Request message " + request.getMessage().getClass().getSimpleName() + " had timed out after " + timeout.getSeconds() + " seconds."));
+ logManager.log("Setting request task exception...", LogCategory.Debug);
+ subject.onError(ex);
}
});
@@ -348,8 +356,8 @@ public abstract class TransporterBase implements ITransporter
@Override
public <Request extends GeneratedMessageV3, Response extends GeneratedMessageV3> Observable<TangoMessage<Response>> sendContinuousRequest(TangoMessage<Request> request)
{
- XLog.i("Queuing continuous response request message: " + request.getContainer().getType() + " Token: " + request.getContainer().getToken());
- XLog.i("Expected response: " + Response.Builder.class.getSimpleName());
+ logManager.log("Queuing continuous response request message: " + request.getContainer().getType() + " Token: " + request.getContainer().getToken(), LogCategory.Debug);
+ logManager.log("Expected response: " + Response.Builder.class.getSimpleName(), LogCategory.Debug);
request.getContainer().setContinuous(true);
request.getContainer().setCompleted(false);
@@ -359,6 +367,17 @@ public abstract class TransporterBase implements ITransporter
message.setContinuous(true);
sendingQueue.add(message);
+ Completable.timer(getRequestTimeout().getSeconds(), TimeUnit.SECONDS)
+ .subscribe(() ->
+ {
+ if (!message.isAtLeastOnResponseReceived())
+ {
+ Exception ex = logManager.log(new TimeoutException("Request message " + request.getMessage().getClass().getSimpleName() + " had timed out after " + getRequestTimeout().getSeconds() + " seconds."));
+ logManager.log("Setting request task exception...", LogCategory.Debug);
+ message.setException(ex);
+ }
+ });
+
return subject;
}
@@ -374,34 +393,34 @@ public abstract class TransporterBase implements ITransporter
response.getContainer().setToken(token);
- XLog.i("Queuing response message: " + response.getClass().getSimpleName());
+ logManager.log("Queuing response message: " + response.getClass().getSimpleName(), LogCategory.Debug);
PendingResponse pendingResponse = null;
- XLog.i("Searching for matching request token: " + token);
+ logManager.log("Searching for matching request token: " + token, LogCategory.Debug);
pendingResponse = pendingResponses.get(token);
if (pendingResponse != null)
{
- XLog.i("Found matching request token: " + token + " on adapter: " + adapter.getAddress());
+ logManager.log("Found matching request token: " + token + " on adapter: " + adapter.getAddress(), LogCategory.Debug);
if (!pendingResponse.isContinuous())
{
- XLog.i("Removing matching request token...");
+ logManager.log("Removing matching request token...", LogCategory.Debug);
pendingResponses.remove(token);
}
else if (response.getContainer().getCompleted())
{
- XLog.i("Response completed. Removing matching request token...");
+ logManager.log("Response completed. Removing matching request token...", LogCategory.Debug);
pendingResponses.remove(token);
}
}
else
{
//This should never happen.
- XLog.w("Matching request token was not found...");
- throw new RuntimeException("There was no matching request token and this should never happen!");
+ Exception ex = logManager.log(new RuntimeException("There was no matching request token and this should never happen!"));
+ throw new RuntimeException(ex);
}
PublishSubject<Response> subject = PublishSubject.create();
@@ -472,7 +491,11 @@ public abstract class TransporterBase implements ITransporter
if (adapter.getState() == TransportComponentState.Connected)
{
adapter.write(message.getSerialize().invoke());
- XLog.i("message sent on adapter: " + adapter.getAddress() + "...");
+ logManager.log("message sent on adapter: " + adapter.getAddress() + "...", LogCategory.Debug);
+ }
+ else
+ {
+ logManager.log("Could not send message " + message.getMessage().getClass().getSimpleName() + ". Adapter is disconnected.", LogCategory.Warning);
}
if (message.getDirection() == TransportMessageDirection.Request)
@@ -523,31 +546,21 @@ public abstract class TransporterBase implements ITransporter
if (data != null)
{
- XLog.i("Message received on adapter: " + adapter.getAddress());
- XLog.i("Parsing message container...");
+ logManager.log("Message received on adapter: " + adapter.getAddress(), LogCategory.Debug);
- MessageContainer container;
-
- try
- {
- container = encoder.decodeContainer(data);
- }
- catch (Exception e)
- {
- XLog.e("Invalid message container received!", e);
- continue;
- }
+ logManager.log("Parsing message container...", LogCategory.Debug);
+ MessageContainer container = encoder.decodeContainer(data);
- XLog.i("Searching for pending request token: " + container.getToken());
+ logManager.log("Searching for pending request token: " + container.getToken(), LogCategory.Debug);
TransportMessageBase request = stream(pendingRequests).singleOrDefault(x -> x.getToken().equals(container.getToken()), null);
if (request != null)
{
- XLog.i("Found pending request: " + ((TangoMessage) request.getMessage()).getContainer().getType());
+ logManager.log("Found pending request: " + ((TangoMessage) request.getMessage()).getContainer().getType(), LogCategory.Debug);
if (!request.isContinuous())
{
- XLog.i("Pending request was identified as 'single response'. Removing pending request.");
+ logManager.log("Pending request was identified as 'single response'. Removing pending request.", LogCategory.Debug);
pendingRequests.remove(request);
@@ -555,61 +568,60 @@ public abstract class TransporterBase implements ITransporter
{
if (container.getError() == ErrorCode.NONE)
{
- XLog.i("Response has returned with error: " + container.getError().toString());
+ logManager.log("Parsing inner response message and setting pending request task result...", LogCategory.Debug);
request.setResult(encoder.decode(data), true);
+ logManager.log("Message enquirer released...", LogCategory.Debug);
}
else
{
- XLog.i("Parsing inner response message and setting pending request task result...");
+ logManager.log("Response has returned with error: " + container.getError().toString(), LogCategory.Warning);
request.setException(new ResponseErrorException(container.getError(), (TangoMessage) encoder.decode(data)));
}
}
catch (Exception ex)
{
- XLog.e("Error parsing inner message", ex);
- request.setException(ex);
+ request.setException(logManager.log(ex,"Error parsing response message."));
}
}
else
{
- XLog.i("Pending request was identified as 'continuous response'. keeping pending request.");
+ logManager.log("Pending request was identified as 'continuous response'. keeping pending request.",LogCategory.Debug);
try
{
if (container.getError() == ErrorCode.NONE)
{
- XLog.i("Parsing inner response message and invoking continuous response callback...");
+ logManager.log("Parsing inner response message and invoking continuous response callback...",LogCategory.Debug);
if (container.getCompleted())
{
- XLog.i("Continuous sequence completed.");
+ logManager.log("Continuous sequence completed.",LogCategory.Debug);
}
request.setResult(encoder.decode(data), container.getCompleted());
}
else
{
- XLog.i("Response has returned with error: " + container.getError().toString());
+ logManager.log("Response has returned with error: " + container.getError().toString(),LogCategory.Warning);
request.setException(new ResponseErrorException(container.getError(), (TangoMessage) encoder.decode(data)));
}
}
catch (Exception ex)
{
- XLog.e("Error parsing inner message", ex);
- request.setException(ex);
+ request.setException(logManager.log(ex,"Error parsing response message"));
}
}
}
else
{
- XLog.i("Message was identified as a new request message: " + container.getType().toString());
+ logManager.log("Message was identified as a new request message: " + container.getType().toString(),LogCategory.Debug);
try
{
- XLog.i("Saving request token: " + container.getToken());
+ logManager.log("Saving request token: " + container.getToken(),LogCategory.Debug);
pendingResponses.put(container.getToken(), new PendingResponse(container.getContinuous()));
if (container.getType() == MessageType.KeepAliveRequest)
{
- XLog.i("Submitting keep alive response...");
+ logManager.log("Submitting keep alive response...",LogCategory.Debug);
sendResponse(MessageFactory.createTangoMessage(KeepAliveResponse.class, container.getToken())).observeOn(Schedulers.newThread()).subscribe(() ->
{
}, (ex) ->
@@ -619,7 +631,7 @@ public abstract class TransporterBase implements ITransporter
}
else
{
- XLog.i("Invoking RequestReceived event...");
+ logManager.log("Invoking RequestReceived event...",LogCategory.Debug);
AsyncTask.execute(() -> onRequestReceived(container));
}
}
diff --git a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/adapters/TcpTransportAdapter.java b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/adapters/TcpTransportAdapter.java
index 2d9282f07..129ceabdf 100644
--- a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/adapters/TcpTransportAdapter.java
+++ b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/adapters/TcpTransportAdapter.java
@@ -2,7 +2,6 @@ package com.twine.tango.transport.adapters;
import android.os.SystemClock;
-import com.elvishew.xlog.XLog;
import com.twine.tango.core.ObjectDisposedException;
import com.twine.tango.transport.TransportAdapterBase;
import com.twine.tango.transport.TransportAdapterMode;
@@ -97,13 +96,13 @@ public class TcpTransportAdapter extends TransportAdapterBase
pullThread = new Thread(this::pullThreadMethod);
pullThread.setName("Adapter Pull Thread");
pullThread.start();
- XLog.i("TCP adapter connected...");
+ logManager.log("TCP adapter connected...");
x.onComplete();
}
}
catch (Exception e)
{
- XLog.e("Could not connect the TCP adapter.");
+ logManager.log("Could not connect the TCP adapter.");
x.onError(e);
}
}).subscribeOn(Schedulers.io());
@@ -130,14 +129,13 @@ public class TcpTransportAdapter extends TransportAdapterBase
//Ignore further disposing attempts failure.
}
setState(TransportComponentState.Disconnected);
- XLog.i("TCP adapter disconnected.");
+ logManager.log("TCP adapter disconnected.");
x.onComplete();
}
}
catch (IOException e)
{
- XLog.e("Could not disconnect the TCP adapter.");
- XLog.e(e);
+ logManager.log(e, "Could not disconnect the TCP adapter.");
x.onError(e);
}
diff --git a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/adapters/UsbTransportAdapter.java b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/adapters/UsbTransportAdapter.java
index 0d8d36060..a12a0924d 100644
--- a/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/adapters/UsbTransportAdapter.java
+++ b/Software/Android_Studio/Tango.Transport/src/main/java/com/twine/tango/transport/adapters/UsbTransportAdapter.java
@@ -9,7 +9,6 @@ import android.hardware.usb.UsbDevice;
import android.hardware.usb.UsbDeviceConnection;
import android.hardware.usb.UsbManager;
-import com.elvishew.xlog.XLog;
import com.felhr.usbserial.UsbSerialDevice;
import com.felhr.usbserial.UsbSerialInterface;
import com.twine.tango.core.ContextHelper;
@@ -81,7 +80,7 @@ public class UsbTransportAdapter extends TransportAdapterBase
{
if (device.getVendorId() == Integer.decode(getAddress()))
{
- XLog.i("USB Device found: " + device.getManufacturerName());
+ logManager.log("USB Device found: " + device.getManufacturerName());
usbManager.requestPermission(device, mPermissionIntent);
break;
}
diff --git a/Software/Android_Studio/Tango.UnitTesting/src/androidTest/java/com/twine/tango/unittesting/Logging_TST.java b/Software/Android_Studio/Tango.UnitTesting/src/androidTest/java/com/twine/tango/unittesting/Logging_TST.java
index a1baa6f67..2f02ef972 100644
--- a/Software/Android_Studio/Tango.UnitTesting/src/androidTest/java/com/twine/tango/unittesting/Logging_TST.java
+++ b/Software/Android_Studio/Tango.UnitTesting/src/androidTest/java/com/twine/tango/unittesting/Logging_TST.java
@@ -27,9 +27,6 @@ public class Logging_TST
LogManager logManager = LogManager.getDefault();
- logManager.registerLogger(new LogCatLogger());
- logManager.registerLogger(new FileLogger(appContext));
-
logManager.log("This is a general log message.");
logManager.log("This is a critical log message", LogCategory.Critical);
diff --git a/Software/Android_Studio/Tango.UnitTesting/src/androidTest/java/com/twine/tango/unittesting/Synchronization_TST.java b/Software/Android_Studio/Tango.UnitTesting/src/androidTest/java/com/twine/tango/unittesting/Synchronization_TST.java
index 4635bec7a..d7fef49bc 100644
--- a/Software/Android_Studio/Tango.UnitTesting/src/androidTest/java/com/twine/tango/unittesting/Synchronization_TST.java
+++ b/Software/Android_Studio/Tango.UnitTesting/src/androidTest/java/com/twine/tango/unittesting/Synchronization_TST.java
@@ -4,12 +4,12 @@ import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
-import com.elvishew.xlog.XLog;
import com.twine.tango.dal.dao.TangoDAO;
import com.twine.tango.dal.entities.Organization;
import com.twine.tango.integration.providers.MachineIdentityProvider;
import com.twine.tango.integration.services.ISynchronizationService;
import com.twine.tango.integration.services.SynchronizationService;
+import com.twine.tango.logging.LogManager;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -33,7 +33,7 @@ public class Synchronization_TST
for (Organization org : TangoDAO.getAllOrganizations())
{
- XLog.i(org.getName());
+ LogManager.getDefault().log(org.getName());
}
//ISynchronizationService synchronizer = new SynchronizationService(new MachineIdentityProvider());
diff --git a/Software/Android_Studio/build.gradle b/Software/Android_Studio/build.gradle
index 3152cdfc2..d9421626b 100644
--- a/Software/Android_Studio/build.gradle
+++ b/Software/Android_Studio/build.gradle
@@ -30,7 +30,6 @@ allprojects {
ext {
//Support Libraries dependencies
globalDependencies = [
- logging : 'com.elvishew:xlog:1.4.0',
rxJavaAndroid: 'io.reactivex.rxjava2:rxandroid:2.0.1',
rxJava : 'io.reactivex.rxjava2:rxjava:2.1.5',
dagger : 'com.google.dagger:dagger:2.11',