diff options
| author | Roy <roy.mail.net@gmail.com> | 2017-12-24 02:27:16 +0200 |
|---|---|---|
| committer | Roy <roy.mail.net@gmail.com> | 2017-12-24 02:27:16 +0200 |
| commit | 53db041e636bb3802dbe3cb911de6ef6ef41446c (patch) | |
| tree | 9be0b0961a31fea4a60f5a9c1741363fa313a13b /Software/Android_Studio/Tango.Stubs.UI/src/main/java | |
| parent | ceac40d058a8554638aa3fa39d4697f3fbfe62f8 (diff) | |
| download | Tango-53db041e636bb3802dbe3cb911de6ef6ef41446c.tar.gz Tango-53db041e636bb3802dbe3cb911de6ef6ef41446c.zip | |
Continue for last commit.
Diffstat (limited to 'Software/Android_Studio/Tango.Stubs.UI/src/main/java')
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() |
