aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Android_Studio/Tango.Stubs.UI/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Android_Studio/Tango.Stubs.UI/src/main/java')
-rw-r--r--Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/App.java4
-rw-r--r--Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/ApplicationComponent.java2
-rw-r--r--Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/ApplicationModule.java30
-rw-r--r--Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/EventBusModule.java24
-rw-r--r--Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/IntegrationModule.java50
-rw-r--r--Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/NavigationModule.java20
-rw-r--r--Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/NotificationModule.java27
-rw-r--r--Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/ViewModelsModule.java11
-rw-r--r--Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/views/main/MainActivityVM.java36
-rw-r--r--Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/views/stub/StubFragmentVM.java9
10 files changed, 190 insertions, 23 deletions
diff --git a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/App.java b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/App.java
index d0437aaa1..96b5b490d 100644
--- a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/App.java
+++ b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/App.java
@@ -1,9 +1,5 @@
package com.twine.tango.stubs.ui;
-import android.app.Application;
-import android.content.Context;
-
-import com.elvishew.xlog.XLog;
import com.twine.tango.sharedui.TangoApplication;
import com.twine.tango.stubs.ui.dagger.ApplicationComponent;
import com.twine.tango.stubs.ui.dagger.ApplicationModule;
diff --git a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/ApplicationComponent.java b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/ApplicationComponent.java
index ab0b84c25..cbd61f9ee 100644
--- a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/ApplicationComponent.java
+++ b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/ApplicationComponent.java
@@ -16,7 +16,7 @@ import dagger.Component;
*/
@Singleton
-@Component(modules = {ApplicationModule.class, ViewModelsModule.class, EventBusModule.class, NotificationModule.class, TransportModule.class, NavigationModule.class})
+@Component(modules = {ApplicationModule.class, ViewModelsModule.class, EventBusModule.class, NotificationModule.class, NavigationModule.class, IntegrationModule.class})
public interface ApplicationComponent
{
diff --git a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/ApplicationModule.java b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/ApplicationModule.java
new file mode 100644
index 000000000..ce664f835
--- /dev/null
+++ b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/ApplicationModule.java
@@ -0,0 +1,30 @@
+package com.twine.tango.stubs.ui.dagger;
+
+import android.app.Application;
+import android.content.Context;
+
+import javax.inject.Singleton;
+
+import dagger.Module;
+import dagger.Provides;
+
+/**
+ * Created by Roy on 11/6/2017.
+ */
+
+@Module
+public class ApplicationModule {
+
+ private Application application;
+
+ public ApplicationModule(Application application) {
+ this.application = application;
+ }
+
+ @Provides
+ @Singleton
+ public Context provideContext()
+ {
+ return application;
+ }
+}
diff --git a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/EventBusModule.java b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/EventBusModule.java
new file mode 100644
index 000000000..3aeb461f7
--- /dev/null
+++ b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/EventBusModule.java
@@ -0,0 +1,24 @@
+package com.twine.tango.stubs.ui.dagger;
+
+import com.squareup.otto.Bus;
+import com.squareup.otto.ThreadEnforcer;
+
+import javax.inject.Singleton;
+
+import dagger.Module;
+import dagger.Provides;
+
+/**
+ * Created by Roy on 11/6/2017.
+ */
+
+@Module
+public class EventBusModule {
+
+ @Provides
+ @Singleton
+ public Bus provideEventBus()
+ {
+ return new Bus(ThreadEnforcer.MAIN);
+ }
+}
diff --git a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/IntegrationModule.java b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/IntegrationModule.java
new file mode 100644
index 000000000..b06d9aa67
--- /dev/null
+++ b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/IntegrationModule.java
@@ -0,0 +1,50 @@
+package com.twine.tango.stubs.ui.dagger;
+
+import com.twine.tango.integration.operators.IMachineOperator;
+import com.twine.tango.integration.operators.MachineOperator;
+import com.twine.tango.integration.providers.IMachineIdentityProvider;
+import com.twine.tango.integration.providers.MachineIdentityProvider;
+import com.twine.tango.integration.services.IExternalBridgeService;
+import com.twine.tango.integration.services.ISynchronizationService;
+import com.twine.tango.integration.services.ExternalBridgeService;
+import com.twine.tango.integration.services.SynchronizationService;
+import com.twine.tango.transport.adapters.TcpTransportAdapter;
+
+import javax.inject.Singleton;
+import dagger.Module;
+import dagger.Provides;
+
+/**
+ * Created by Roy on 11/6/2017.
+ */
+@Module
+public class IntegrationModule
+{
+ @Provides
+ @Singleton
+ public IExternalBridgeService provideBridgeService(IMachineIdentityProvider machineIdentityProvider,IMachineOperator machineOperator)
+ {
+ return new ExternalBridgeService(machineIdentityProvider,machineOperator);
+ }
+
+ @Provides
+ @Singleton
+ public ISynchronizationService provideSynchronizationService(IMachineIdentityProvider machineIdentityProvider, IExternalBridgeService bridgeService)
+ {
+ return new SynchronizationService(machineIdentityProvider, bridgeService);
+ }
+
+ @Provides
+ @Singleton
+ public IMachineIdentityProvider provideMachineIdentityProvider()
+ {
+ return new MachineIdentityProvider();
+ }
+
+ @Provides
+ @Singleton
+ public IMachineOperator providerMachineOperator()
+ {
+ return new MachineOperator(new TcpTransportAdapter("10.0.2.2", 9999));
+ }
+}
diff --git a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/NavigationModule.java b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/NavigationModule.java
new file mode 100644
index 000000000..674157858
--- /dev/null
+++ b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/NavigationModule.java
@@ -0,0 +1,20 @@
+package com.twine.tango.stubs.ui.dagger;
+
+import android.content.Context;
+import com.twine.tango.sharedui.navigation.AndroidNavigationProvider;
+import com.twine.tango.sharedui.navigation.INavigationProvider;
+import javax.inject.Singleton;
+
+import dagger.Module;
+import dagger.Provides;
+
+@Module
+public class NavigationModule
+{
+ @Provides
+ @Singleton
+ public INavigationProvider provideNavigation()
+ {
+ return new AndroidNavigationProvider();
+ }
+}
diff --git a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/NotificationModule.java b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/NotificationModule.java
new file mode 100644
index 000000000..69d6d8f62
--- /dev/null
+++ b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/NotificationModule.java
@@ -0,0 +1,27 @@
+package com.twine.tango.stubs.ui.dagger;
+
+import android.content.Context;
+
+import com.twine.tango.sharedui.notifications.AndroidNotificationProvider;
+import com.twine.tango.sharedui.notifications.INotificationProvider;
+
+import javax.inject.Singleton;
+
+import dagger.Module;
+import dagger.Provides;
+
+/**
+ * Created by Roy on 11/6/2017.
+ */
+
+@Module
+public class NotificationModule {
+
+ @Provides
+ @Singleton
+ public INotificationProvider provideNotificationProvider(Context context)
+ {
+ return new AndroidNotificationProvider(context);
+ }
+
+}
diff --git a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/ViewModelsModule.java b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/ViewModelsModule.java
index 927511efc..b7e494ecf 100644
--- a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/ViewModelsModule.java
+++ b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/dagger/ViewModelsModule.java
@@ -1,6 +1,9 @@
package com.twine.tango.stubs.ui.dagger;
import com.squareup.otto.Bus;
+import com.twine.tango.integration.operators.IMachineOperator;
+import com.twine.tango.integration.services.IExternalBridgeService;
+import com.twine.tango.integration.services.ISynchronizationService;
import com.twine.tango.sharedui.navigation.INavigationProvider;
import com.twine.tango.sharedui.notifications.INotificationProvider;
import com.twine.tango.stubs.ui.views.login.LoginFragmentVM;
@@ -26,9 +29,9 @@ public class ViewModelsModule
@Provides
@Singleton
- public MainActivityVM provideMainActivityVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider, ITransporter transporter)
+ public MainActivityVM provideMainActivityVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider, IMachineOperator machineOperator, ISynchronizationService synchronizationService, IExternalBridgeService externalBridgeService)
{
- return new MainActivityVM(eventBus, notificationProvider, navigationProvider, transporter);
+ return new MainActivityVM(eventBus, notificationProvider, navigationProvider, machineOperator, externalBridgeService, synchronizationService);
}
@Provides
@@ -54,8 +57,8 @@ public class ViewModelsModule
@Provides
@Singleton
- public StubFragmentVM provideStubFragmentVM(Bus eventBus, INotificationProvider notificationProvider, ITransporter transporter)
+ public StubFragmentVM provideStubFragmentVM(Bus eventBus, INotificationProvider notificationProvider, IMachineOperator machineOperator)
{
- return new StubFragmentVM(eventBus, notificationProvider, transporter);
+ return new StubFragmentVM(eventBus, notificationProvider, machineOperator);
}
}
diff --git a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/views/main/MainActivityVM.java b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/views/main/MainActivityVM.java
index e77cc0810..64d69b0e6 100644
--- a/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/views/main/MainActivityVM.java
+++ b/Software/Android_Studio/Tango.Stubs.UI/src/main/java/com/twine/tango/stubs/ui/views/main/MainActivityVM.java
@@ -2,6 +2,9 @@ package com.twine.tango.stubs.ui.views.main;
import com.squareup.otto.Bus;
import com.squareup.otto.Subscribe;
+import com.twine.tango.integration.operators.IMachineOperator;
+import com.twine.tango.integration.services.IExternalBridgeService;
+import com.twine.tango.integration.services.ISynchronizationService;
import com.twine.tango.models.User;
import com.twine.tango.sharedui.mvvm.DependencyProperty;
import com.twine.tango.sharedui.mvvm.RelayCommand;
@@ -10,9 +13,10 @@ import com.twine.tango.sharedui.navigation.INavigationProvider;
import com.twine.tango.sharedui.notifications.INotificationProvider;
import com.twine.tango.stubs.ui.Events.LoginEvent;
import com.twine.tango.stubs.ui.views.main.IMainActivity.Navigation;
-import com.twine.tango.transport.ITransporter;
import com.twine.tango.transport.TransportComponentState;
+import java.io.IOException;
+
import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers;
@@ -24,7 +28,9 @@ public class MainActivityVM extends ViewModelBase<IMainActivity>
private User currentUser;
private INotificationProvider notificationProvider;
private INavigationProvider navigationProvider;
- private ITransporter transporter;
+ private IMachineOperator machineOperator;
+ private ISynchronizationService synchronizationService;
+ private IExternalBridgeService externalBridgeService;
public DependencyProperty<Boolean> isConnected;
@@ -34,33 +40,43 @@ public class MainActivityVM extends ViewModelBase<IMainActivity>
@Inject
- public MainActivityVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider,ITransporter transporter)
+ public MainActivityVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider, IMachineOperator machineOperator, IExternalBridgeService externalBridgeService, ISynchronizationService synchronizationService)
{
this.eventBus = eventBus;
this.notificationProvider = notificationProvider;
this.navigationProvider = navigationProvider;
- this.transporter = transporter;
+ this.machineOperator = machineOperator;
+ this.synchronizationService = synchronizationService;
+ this.externalBridgeService = externalBridgeService;
this.eventBus.register(this);
isConnected = new DependencyProperty<>(false);
- connectCommand = new RelayCommand(this::connect,() -> this.transporter.getState() != TransportComponentState.Connected);
- disconnectCommand = new RelayCommand(this::disconnect,() -> this.transporter.getState() == TransportComponentState.Connected);
+ connectCommand = new RelayCommand(this::connect,() -> this.machineOperator.getState() != TransportComponentState.Connected);
+ disconnectCommand = new RelayCommand(this::disconnect,() -> this.machineOperator.getState() == TransportComponentState.Connected);
- this.transporter.addStateChangedListener((sender,e) ->
- isConnected.set(this.transporter.getState() == TransportComponentState.Connected));
+ this.machineOperator.addStateChangedListener((sender, e) ->
+ isConnected.set(this.machineOperator.getState() == TransportComponentState.Connected));
+
+ try
+ {
+ externalBridgeService.start();
+ } catch (IOException e)
+ {
+ e.printStackTrace();
+ }
}
private void connect()
{
- transporter.connect().observeOn(AndroidSchedulers.mainThread()).subscribe(() ->
+ machineOperator.connect().observeOn(AndroidSchedulers.mainThread()).subscribe(() ->
invalidateCommands(),(ex) ->
notificationProvider.showMessage(view,"Could not connect the Transporter."));
}
private void disconnect()
{
- transporter.disconnect().observeOn(AndroidSchedulers.mainThread()).subscribe(() ->
+ machineOperator.disconnect().observeOn(AndroidSchedulers.mainThread()).subscribe(() ->
invalidateCommands(),(ex) ->
notificationProvider.showMessage(view,"Could not disconnect the Transporter."));
}
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 8a052b38c..fe237bcd8 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
@@ -3,6 +3,7 @@ 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;
import com.twine.tango.sharedui.mvvm.RelayCommand;
import com.twine.tango.sharedui.notifications.INotificationProvider;
import com.twine.tango.stubs.AvailableStub;
@@ -24,21 +25,21 @@ public class StubFragmentVM extends ViewModelBase<IStubFragment>
{
private Bus eventBus;
private INotificationProvider notificationProvider;
- private ITransporter transporter;
+ private IMachineOperator machineOperator;
public DependencyProperty<AvailableStub> availableStub;
public DependencyProperty<StubBase> stub;
public DependencyProperty<String> response;
public RelayCommand runCommand;
@Inject
- public StubFragmentVM(Bus eventBus, INotificationProvider notificationProvider, ITransporter transporter)
+ public StubFragmentVM(Bus eventBus, INotificationProvider notificationProvider, IMachineOperator machineOperator)
{
availableStub = new DependencyProperty<>();
stub = new DependencyProperty<>();
response = new DependencyProperty<>("");
this.eventBus = eventBus;
- this.transporter = transporter;
+ this.machineOperator = machineOperator;
this.notificationProvider = notificationProvider;
this.eventBus.register(this);
@@ -49,7 +50,7 @@ public class StubFragmentVM extends ViewModelBase<IStubFragment>
public void handleStubSelectedEvent(StubSelectedEvent e)
{
availableStub.set(e.getStub());
- stub.set(availableStub.get().createInstance(transporter));
+ stub.set(availableStub.get().createInstance(machineOperator));
}
private void runSelectedStub()