aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Android_Studio
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2019-05-05 10:31:06 +0300
committerShlomo Hecht <shlomo@twine-s.com>2019-05-05 10:31:06 +0300
commit79bd7bb6a22f1da1a77fcc3f527a0955028f2447 (patch)
tree3e1c30dbbf7b6ccf70aa5631ad2f42ee356b4e25 /Software/Android_Studio
parent4129b6caa72f8bafeeefe1a4a88a0d5e1568e245 (diff)
parent661c55343a468a9c150e8d163711567f89a02889 (diff)
downloadTango-79bd7bb6a22f1da1a77fcc3f527a0955028f2447.tar.gz
Tango-79bd7bb6a22f1da1a77fcc3f527a0955028f2447.zip
merge tpf
Diffstat (limited to 'Software/Android_Studio')
-rw-r--r--Software/Android_Studio/ColorCapture/app/build.gradle92
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/AndroidManifest.xml17
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/cpp/ColorCaptureLib/ColorCaptureLib.cpp4
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/cpp/native-lib.cpp149
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/App.java3
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/controls/CircleActionButton.java227
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/controls/ToggleImageButton.java148
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/AnimationsHelper.java70
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/CountUpTimer.java29
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/Event.java59
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/IAction.java4
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/IEventHandler.java18
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/ObservableCollection.java213
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/Task.java64
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/ApplicationComponent.java45
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/EventBusModule.java2
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/NavigationModule.java4
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/ViewModelsModule.java113
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/WebModule.java29
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/confirm/ConfirmDialog.java22
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/confirm/ConfirmDialogVM.java41
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/error/ErrorDialog.java22
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/error/ErrorDialogVM.java10
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/processing/ProcessingDialog.java23
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/processing/ProcessingDialogVM.java14
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/progress/ProgressDialog.java21
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/progress/ProgressDialogVM.java10
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/success/SuccessDialog.java23
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/success/SuccessDialogVM.java10
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/welcome/WelcomeDialog.java32
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/welcome/WelcomeDialogVM.java28
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/integration/ExternalBridgeClient.java119
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/integration/ExternalBridgeMachine.java33
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/integration/ExternalBridgeScanner.java131
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/logging/LogManager.java35
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/messages/ColorDetectedMessage.java18
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/messages/MachineRegisteredMessage.java18
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/models/ColorResult.java54
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/models/ColorResultVM.java40
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/ActivityBase.java23
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/BindingAdapters.java32
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/BindingConverters.java17
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DependencyProperty.java13
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DialogBase.java163
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DialogViewModelBase.java36
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/ExtendedObject.java4
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/FragmentBase.java10
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/MessageDialogViewModelBase.java25
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/RelayCommand.java1
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/ViewModelBase.java41
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/AndroidNavigationProvider.java288
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/INavigationObjectReceiver.java6
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/INavigationProvider.java61
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/NavigationActivity.java8
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/NavigationFragment.java15
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/PreventHistory.java13
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/TabState.java (renamed from Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/NavigationView.java)6
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/TabStateManager.java25
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/notification/AndroidNotificationProvider.java173
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/notification/INotificationProvider.java67
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/opencv/ImageProcessor.java11
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/settings/SettingsManager.java96
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/utils/BitmapUtils.java25
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/utils/ThreadingUtils.java15
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragment.java297
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragmentVM.java247
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/ICaptureFragment.java18
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/home/HomeFragment.java75
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/home/HomeFragmentVM.java31
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/home/IHomeFragment.java10
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/ILoadingActivity.java (renamed from Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/ILoadingFragment.java)2
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingActivity.java46
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingActivityVM.java79
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingFragment.java45
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingFragmentVM.java58
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/IMainActivity.java1
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivity.java141
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivityVM.java81
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/mycolors/IMyColorsFragment.java9
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/mycolors/MyColorsFragment.java35
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/mycolors/MyColorsFragmentVM.java83
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/register/IRegisterFragment.java7
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/register/RegisterFragment.java28
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/register/RegisterFragmentVM.java90
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/rename/IRenameFragment.java7
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/rename/RenameFragment.java62
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/rename/RenameFragmentVM.java50
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/result/IResultFragment.java7
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/result/ResultFragment.java28
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/result/ResultFragmentVM.java117
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtoemail/ISendToEmailActivity.java7
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtoemail/SendToEmailActivity.java30
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtoemail/SendToEmailActivityVM.java21
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtomachine/ISendToMachineFragment.java7
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtomachine/SendToMachineFragment.java28
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtomachine/SendToMachineFragmentVM.java133
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/ITCCService.java24
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/IWebServiceAPI.java30
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/TCCService.java191
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/WebApiFactory.java105
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DefinitionRequest.java5
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DefinitionResponse.java135
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DetectionColor.java56
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DetectionRequest.java27
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DetectionResponse.java27
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/LoginRequest.java49
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/LoginResponse.java16
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/MachineRegistrationRequest.java16
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/MachineRegistrationResponse.java24
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/common/ErrorCodeOuterClass.java630
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/common/ErrorResponseOuterClass.java440
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/common/MessageContainerOuterClass.java1293
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/common/MessageTypeOuterClass.java2252
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/ConnectRequestOuterClass.java579
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/ConnectResponseOuterClass.java639
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/DeviceInformationOuterClass.java1541
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/DisconnectRequestOuterClass.java440
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/DisconnectResponseOuterClass.java440
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/KeepAliveRequestOuterClass.java440
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/KeepAliveResponseOuterClass.java440
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ColorProfileRequestOuterClass.java777
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ColorProfileResponseOuterClass.java506
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/DirectSynchronizationRequestOuterClass.java441
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/DirectSynchronizationResponseOuterClass.java508
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLoginIntentOuterClass.java154
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLoginRequestOuterClass.java1088
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLoginResponseOuterClass.java842
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLogoutRequestOuterClass.java441
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLogoutResponseOuterClass.java441
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeUdpDiscoveryPacketOuterClass.java717
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/OverrideDataBaseRequestOuterClass.java508
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/OverrideDataBaseResponseOuterClass.java506
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/StartApplicationLogsRequestOuterClass.java441
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/StartApplicationLogsResponseOuterClass.java508
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/StopApplicationLogsRequestOuterClass.java441
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/StopApplicationLogsResponseOuterClass.java441
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/tcc/DetectionBenchmarkOuterClass.java830
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/tcc/DetectionColorOuterClass.java631
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/tcc/DetectionInputOuterClass.java1269
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/tcc/DetectionOutputOuterClass.java1542
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/anim/zoom_in.xml8
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/anim/zoom_out.xml11
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/about.pngbin0 -> 1998 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/darkening.pngbin0 -> 12656 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/delete_thin.pngbin0 -> 2039 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/down.pngbin0 -> 406 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/email.pngbin0 -> 2129 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/error.pngbin0 -> 6542 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/got_it.pngbin0 -> 8625 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/how_to.pngbin0 -> 2350 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icon.pngbin0 -> 1868 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icon_twine_card.pngbin0 -> 1989 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icons_arrow_up.pngbin0 -> 413 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icons_close.pngbin0 -> 367 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icons_delete.pngbin0 -> 2140 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icons_rename.pngbin0 -> 1664 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/info.pngbin0 -> 1699 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/logo.pngbin0 -> 14712 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/more_normal.pngbin0 -> 2778 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/more_selected.pngbin0 -> 6366 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/my_colors.pngbin0 -> 3888 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/selected.pngbin0 -> 8549 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/snapmatch.pngbin0 -> 181461 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/success.pngbin0 -> 6471 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twine_card.pngbin0 -> 4292 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twine_card_icon.pngbin0 -> 5155 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twine_logo.pngbin0 -> 11261 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twinesnap_normal.pngbin0 -> 3585 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twinesnap_selected.pngbin0 -> 7914 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/about.pngbin0 -> 1229 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/darkening.pngbin0 -> 5616 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/delete_thin.pngbin0 -> 1240 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/down.pngbin0 -> 272 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/email.pngbin0 -> 1199 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/error.pngbin0 -> 3836 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/got_it.pngbin0 -> 5061 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/how_to.pngbin0 -> 1435 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icon.pngbin0 -> 1260 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icon_twine_card.pngbin0 -> 1215 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icons_arrow_up.pngbin0 -> 270 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icons_close.pngbin0 -> 284 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icons_delete.pngbin0 -> 1278 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icons_rename.pngbin0 -> 976 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/info.pngbin0 -> 1066 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/logo.pngbin0 -> 9261 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/more_normal.pngbin0 -> 1658 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/more_selected.pngbin0 -> 3457 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/my_colors.pngbin0 -> 2340 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/selected.pngbin0 -> 4651 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/snapmatch.pngbin0 -> 98923 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/success.pngbin0 -> 3836 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twine_card.pngbin0 -> 3305 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twine_card_icon.pngbin0 -> 2864 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twine_logo.pngbin0 -> 7143 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twinesnap_normal.pngbin0 -> 2208 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twinesnap_selected.pngbin0 -> 4338 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/about.pngbin0 -> 2748 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/darkening.pngbin0 -> 19232 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/delete_thin.pngbin0 -> 2827 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/down.pngbin0 -> 531 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/email.pngbin0 -> 3051 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/error.pngbin0 -> 9549 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/got_it.pngbin0 -> 12540 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/how_to.pngbin0 -> 3118 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icon.pngbin0 -> 2545 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icon_twine_card.pngbin0 -> 2661 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icons_arrow_up.pngbin0 -> 539 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icons_close.pngbin0 -> 424 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icons_delete.pngbin0 -> 3094 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icons_rename.pngbin0 -> 2382 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/info.pngbin0 -> 2417 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/logo.pngbin0 -> 21247 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/more_normal.pngbin0 -> 3755 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/more_selected.pngbin0 -> 9912 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/my_colors.pngbin0 -> 5574 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/selected.pngbin0 -> 12524 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/snapmatch.pngbin0 -> 281457 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/success.pngbin0 -> 9419 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twine_card.pngbin0 -> 5560 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twine_card_icon.pngbin0 -> 7906 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twine_logo.pngbin0 -> 16023 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twinesnap_normal.pngbin0 -> 4973 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twinesnap_selected.pngbin0 -> 12333 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/about.pngbin0 -> 4258 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/darkening.pngbin0 -> 43010 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/delete_thin.pngbin0 -> 4926 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/down.pngbin0 -> 794 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/email.pngbin0 -> 5520 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/error.pngbin0 -> 16261 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/got_it.pngbin0 -> 21131 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/how_to.pngbin0 -> 4930 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icon.pngbin0 -> 3805 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icon_twine_card.pngbin0 -> 4793 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icons_arrow_up.pngbin0 -> 804 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icons_close.pngbin0 -> 542 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icons_delete.pngbin0 -> 5369 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icons_rename.pngbin0 -> 4474 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/info.pngbin0 -> 3553 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/logo.pngbin0 -> 35163 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/more_normal.pngbin0 -> 6055 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/more_selected.pngbin0 -> 19207 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/my_colors.pngbin0 -> 8326 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/selected.pngbin0 -> 23601 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/snapmatch.pngbin0 -> 550027 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/success.pngbin0 -> 15971 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twine_card.pngbin0 -> 7547 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twine_card_icon.pngbin0 -> 14760 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twine_logo.pngbin0 -> 26389 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twinesnap_normal.pngbin0 -> 7911 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twinesnap_selected.pngbin0 -> 23276 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/about.pngbin0 -> 5859 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/darkening.pngbin0 -> 73736 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/delete_thin.pngbin0 -> 7208 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/down.pngbin0 -> 972 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/email.pngbin0 -> 7860 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/error.pngbin0 -> 23926 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/got_it.pngbin0 -> 31440 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/how_to.pngbin0 -> 6656 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icon.pngbin0 -> 5130 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icon_twine_card.pngbin0 -> 6794 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icons_arrow_up.pngbin0 -> 880 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icons_close.pngbin0 -> 719 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icons_delete.pngbin0 -> 7523 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icons_rename.pngbin0 -> 6740 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/info.pngbin0 -> 5016 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/logo.pngbin0 -> 51829 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/more_normal.pngbin0 -> 8485 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/more_selected.pngbin0 -> 31105 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/my_colors.pngbin0 -> 11825 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/selected.pngbin0 -> 37818 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/snapmatch.pngbin0 -> 894264 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/success.pngbin0 -> 23794 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twine_card.pngbin0 -> 9807 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twine_card_icon.pngbin0 -> 24126 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twine_logo.pngbin0 -> 38186 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twinesnap_normal.pngbin0 -> 10943 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twinesnap_selected.pngbin0 -> 37678 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable/accent_gradient.xml8
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable/background_gradient.xml8
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable/border.xml8
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable/border_gradient.xml8
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable/border_primary_background.xml14
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable/border_shadow.xml19
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable/button_empty_border.xml8
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable/button_gradient_fill.xml12
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable/button_gradient_fill_ripple.xml5
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable/button_transparent_fill_ripple.xml21
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable/dialog_background.xml8
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable/error.pngbin0 -> 6291 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable/gradient_progress.xml23
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable/list_view_selectable.xml4
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable/progress_ring_background.xml28
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/drawable/welcome_dialog_border.xml9
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_black.otfbin0 -> 112924 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_bold.otfbin0 -> 112436 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_light.otfbin0 -> 112116 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_medium.otfbin0 -> 112016 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_regular.otfbin0 -> 111924 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_thin.otfbin0 -> 112040 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/activity_loading.xml69
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/activity_main.xml70
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/activity_send_to_email.xml66
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/circle_action_button.xml81
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/color_result_item.xml135
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_confirm.xml87
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_error.xml81
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_processing.xml39
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_progress.xml64
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_success.xml81
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_welcome.xml107
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/external_machine_item.xml48
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_capture.xml53
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_home.xml42
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_loading.xml57
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_mycolors.xml45
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_register.xml83
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_rename.xml83
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_result.xml248
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_send_to_machine.xml70
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/layout/side_menu.xml180
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-hdpi/ic_launcher.pngbin2963 -> 4407 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-hdpi/ic_launcher_round.pngbin4905 -> 6054 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-mdpi/ic_launcher.pngbin2060 -> 2304 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-mdpi/ic_launcher_round.pngbin2783 -> 3179 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xhdpi/ic_launcher.pngbin4490 -> 6532 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xhdpi/ic_launcher_round.pngbin6895 -> 8926 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxhdpi/ic_launcher.pngbin6387 -> 12164 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.pngbin10413 -> 16791 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxxhdpi/ic_launcher.pngbin9128 -> 21793 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.pngbin15132 -> 27968 bytes
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/values/colors.xml21
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/values/strings.xml16
-rw-r--r--Software/Android_Studio/ColorCapture/app/src/main/res/values/styles.xml23
-rw-r--r--Software/Android_Studio/ColorCapture/build.gradle3
-rw-r--r--Software/Android_Studio/ColorCapture/settings.gradle2
-rw-r--r--Software/Android_Studio/settings.jarbin0 -> 5837 bytes
336 files changed, 29242 insertions, 733 deletions
diff --git a/Software/Android_Studio/ColorCapture/app/build.gradle b/Software/Android_Studio/ColorCapture/app/build.gradle
index 57a59ea11..ae4fcfeb1 100644
--- a/Software/Android_Studio/ColorCapture/app/build.gradle
+++ b/Software/Android_Studio/ColorCapture/app/build.gradle
@@ -17,14 +17,24 @@ android {
ndk {
// Tells Gradle to build outputs for the following ABIs and package
// them into your APK.
- abiFilters 'armeabi-v7a' //Supported on most devices.
+ // abiFilters 'armeabi-v7a' //Supported on most devices.
}
}
buildTypes {
+
+ debug {
+ buildConfigField "String", "WEB_SERVICE_ADDRESS", "\"http://10.100.102.46:45455/api/\""
+ buildConfigField "String", "WEB_SERVICE_APP_ID", "\"Tdf793i4ughsiduf8749509237885ehgfdlkghlT\""
+ }
+
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+
+ buildConfigField "String", "WEB_SERVICE_ADDRESS", "\"http://twinetcc.azurewebsites.net/api/\""
+ buildConfigField "String", "WEB_SERVICE_APP_ID", "\"Tdf793i4ughsiduf8749509237885ehgfdlkghlT\""
}
+
}
dataBinding {
@@ -41,6 +51,63 @@ android {
path "CMakeLists.txt"
}
}
+
+ splits {
+
+ // Configures multiple APKs based on ABI.
+ abi {
+
+ // Enables building multiple APKs per ABI.
+ enable true
+
+ // By default all ABIs are included, so use reset() and include to specify that we only
+ // want APKs for x86 and x86_64.
+
+ // Resets the list of ABIs that Gradle should create APKs for to none.
+ reset()
+
+ // Specifies a list of ABIs that Gradle should create APKs for.
+ include "armeabi-v7a", "arm64-v8a", "x86"
+
+ // Specifies that we do not want to also generate a universal APK that includes all ABIs.
+ universalApk false
+ }
+ }
+}
+
+// Map for the version code that gives each ABI a value.
+ext.abiCodes = ['armeabi-v7a':1, 'arm64-v8a':2, 'x86':3]
+
+import com.android.build.OutputFile
+
+// For each APK output variant, override versionCode with a combination of
+// ext.abiCodes * 1000 + variant.versionCode. In this example, variant.versionCode
+// is equal to defaultConfig.versionCode. If you configure product flavors that
+// define their own versionCode, variant.versionCode uses that value instead.
+android.applicationVariants.all { variant ->
+
+ // Assigns a different version code for each output APK
+ // other than the universal APK.
+ variant.outputs.each { output ->
+
+ // Stores the value of ext.abiCodes that is associated with the ABI for this variant.
+ def baseAbiVersionCode =
+ // Determines the ABI for this variant and returns the mapped value.
+ project.ext.abiCodes.get(output.getFilter(OutputFile.ABI))
+
+ // Because abiCodes.get() returns null for ABIs that are not mapped by ext.abiCodes,
+ // the following code does not override the version code for universal APKs.
+ // However, because we want universal APKs to have the lowest version code,
+ // this outcome is desirable.
+ if (baseAbiVersionCode != null) {
+
+ // Assigns the new version code to versionCodeOverride, which changes the version code
+ // for only the output APK, not for the variant itself. Skipping this step simply
+ // causes Gradle to use the value of variant.versionCode for the APK.
+ output.versionCodeOverride =
+ baseAbiVersionCode * 1000 + variant.versionCode
+ }
+ }
}
dependencies {
@@ -66,5 +133,26 @@ dependencies {
annotationProcessor 'com.jakewharton:butterknife-compiler:8.7.0'
annotationProcessor 'com.google.dagger:dagger-android-processor:2.11'
annotationProcessor 'com.google.dagger:dagger-compiler:2.11'
- implementation project(':onboarding')
+ compile 'com.yanzhenjie.zbar:zbar:1.0.0'
+ compile 'com.squareup.retrofit2:retrofit:2.3.0'
+ compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
+ compile 'com.squareup.retrofit2:converter-gson:2.1.0'
+ implementation 'com.github.yoanngoular:bitmapconverter:0.2.0'
+ compile 'com.github.CardinalNow:Android-CircleProgressIndicator:v0.2'
+ implementation 'com.github.florent37:shapeofview:1.3.2'
+
+}
+
+
+task createPMR(type: Exec, description: 'Update all PMR files') {
+
+ commandLine '..\\..\\Visual_Studio\\Build\\Utilities\\Debug\\proto-tc.exe', '-i', '..\\..\\..\\PMR\\Messages', '-o', 'src\\main\\java', '-l', 'Java', '-c', 'Common,TCC,Integration,Connection'
+
+ ext.output = {
+ return standardOutput.toString()
+ }
+}
+
+tasks.withType(JavaCompile) {
+ compileTask -> compileTask.dependsOn createPMR
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/AndroidManifest.xml b/Software/Android_Studio/ColorCapture/app/src/main/AndroidManifest.xml
index f0e6277c9..441817928 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/AndroidManifest.xml
+++ b/Software/Android_Studio/ColorCapture/app/src/main/AndroidManifest.xml
@@ -3,6 +3,7 @@
package="com.twine.colorcapture">
<uses-permission android:name="android.permission.CAMERA" />
+ <uses-permission android:name="android.permission.INTERNET" />
<uses-feature
android:name="android.hardware.camera"
@@ -25,13 +26,27 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="false"
android:theme="@style/AppTheme">
- <activity android:name=".views.main.MainActivity">
+ <activity
+ android:name=".views.loading.LoadingActivity"
+ android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.BROWSABLE" />
+
+ <data
+ android:scheme="http"
+ android:host="twine-s.com" />
+ </intent-filter>
</activity>
+ <activity android:name=".views.main.MainActivity"/>
+ <activity android:name=".views.sendtoemail.SendToEmailActivity" />
</application>
</manifest> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/cpp/ColorCaptureLib/ColorCaptureLib.cpp b/Software/Android_Studio/ColorCapture/app/src/main/cpp/ColorCaptureLib/ColorCaptureLib.cpp
index 0b91e7b08..7437923f2 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/cpp/ColorCaptureLib/ColorCaptureLib.cpp
+++ b/Software/Android_Studio/ColorCapture/app/src/main/cpp/ColorCaptureLib/ColorCaptureLib.cpp
@@ -732,13 +732,15 @@ vector<Point> ColorCaptureLib::GetArcusVertices(Mat image)
aruco::DetectorParameters* params = new aruco::DetectorParameters();
params->cornerRefinementMethod = aruco::CORNER_REFINE_SUBPIX;
+ params->perspectiveRemovePixelPerCell = 50;
+ params->minDistanceToBorder = 0;
Ptr<aruco::Dictionary> dictionary = aruco::getPredefinedDictionary(aruco::DICT_4X4_50);
aruco::detectMarkers(image, dictionary, corners, ids, &(*params));
if (corners.size() == 4)
{
- aruco::drawDetectedMarkers(image, corners, ids);
+ //aruco::drawDetectedMarkers(image, corners, ids);
vertices =
{
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/cpp/native-lib.cpp b/Software/Android_Studio/ColorCapture/app/src/main/cpp/native-lib.cpp
index 3afccbec0..c2bee04e8 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/cpp/native-lib.cpp
+++ b/Software/Android_Studio/ColorCapture/app/src/main/cpp/native-lib.cpp
@@ -8,53 +8,67 @@
using namespace cv;
-Mat *mCanny = NULL;
-
-enum RotateFlags {
+enum RotateFlags
+{
ROTATE_90DEG_CLOCKWISE = 0, //Rotate 90 degrees clockwise
ROTATE_180DEG = 1, //Rotate 180 degrees clockwise
ROTATE_90_DEFCOUNTERCLOCKWISEDEG = 2, //Rotate 270 degrees clockwise
};
-void rot90(cv::Mat &matImage, int rotflag) {
+void rot90(cv::Mat &matImage, int rotflag)
+{
//1=CW, 2=CCW, 3=180
- if (rotflag == 1) {
+ if (rotflag == 1)
+ {
transpose(matImage, matImage);
flip(matImage, matImage, 1); //transpose+flip(1)=CW
- } else if (rotflag == 2) {
+ }
+ else if (rotflag == 2)
+ {
transpose(matImage, matImage);
flip(matImage, matImage, 0); //transpose+flip(0)=CCW
- } else if (rotflag == 3) {
+ }
+ else if (rotflag == 3)
+ {
flip(matImage, matImage, -1); //flip(-1)=180
- } else if (rotflag != 0) { //if not 0,1,2,3:
+ }
+ else if (rotflag != 0)
+ { //if not 0,1,2,3:
cout << "Unknown rotation flag(" << rotflag << ")" << endl;
}
}
extern "C" JNIEXPORT jboolean JNICALL
Java_com_twine_colorcapture_opencv_ImageProcessor_ProcessImage(
- JNIEnv *env, jobject instance, jint width,
- jint height, jbyteArray NV21FrameData,
- jintArray outPixels,jintArray wrapedOutPixels)
+ JNIEnv *env,
+ jobject instance,
+ jint frameWidth,
+ jint frameHeight,
+ jint sampleWidth,
+ jint sampleHeight,
+ jint histogramMethod,
+ jdouble similarityTolerance,
+ jboolean enableDoubleChecking,
+ jbyteArray frameData,
+ jintArray frameOutPixels,
+ jintArray sampleOutPixels)
{
- jbyte *pNV21FrameData = env->GetByteArrayElements(NV21FrameData, 0);
- jint *poutPixels = env->GetIntArrayElements(outPixels, 0);
- jint *pwrapedPixels = env->GetIntArrayElements(wrapedOutPixels, 0);
- ////
+ jbyte *pFrameData = env->GetByteArrayElements(frameData, 0);
+ jint *pFrameOutPixels = env->GetIntArrayElements(frameOutPixels, 0);
+ jint *pSampleOutPixels = env->GetIntArrayElements(sampleOutPixels, 0);
- jboolean has_result = false;
- try {
- ColorCaptureLib capture;
+ jboolean has_result = jboolean(false);
- if (mCanny == NULL) {
- mCanny = new Mat(height, width, CV_8UC1);
- }
+ try
+ {
+ ColorCaptureLib capture;
- Mat yuv(height + height / 2, width, CV_8UC1, (unsigned char *) pNV21FrameData);
+ Mat yuv(frameHeight + frameHeight / 2, frameWidth, CV_8UC1,
+ (unsigned char *) pFrameData);
Mat rgb;
- Mat result(width, height, CV_8UC4, (unsigned char *) poutPixels);
+ Mat result(frameWidth, frameHeight, CV_8UC4, (unsigned char *) pFrameOutPixels);
cvtColor(yuv, rgb, COLOR_YUV2RGB_NV21);
Mat gray;
@@ -62,69 +76,62 @@ Java_com_twine_colorcapture_opencv_ImageProcessor_ProcessImage(
cvtColor(rgb, gray, CV_RGB2GRAY);
cv::Laplacian(gray, dst, CV_64F);
- cv::Scalar mu, sigma;
- cv::meanStdDev(dst, mu, sigma);
-
- double focusMeasure = sigma.val[0] * sigma.val[0];
-
- __android_log_print(ANDROID_LOG_ERROR, "FOCUS", "\n Focus measure is %f \n", focusMeasure);
+// cv::Scalar mu, sigma;
+// cv::meanStdDev(dst, mu, sigma);
- rot90(rgb,ROTATE_180DEG);
+// double focusMeasure = sigma.val[0] * sigma.val[0];
+//
+// __android_log_print(ANDROID_LOG_ERROR, "FOCUS", "\n Focus measure is %f \n", focusMeasure);
- //resize(src, dst, dst.size(), 0, 0, interpolation);
+ rot90(rgb, ROTATE_180DEG);
-/* Point2f src_center(rgb.cols / 2.0F, rgb.rows / 2.0F);
- Mat rot_mat = getRotationMatrix2D(src_center, -90, 1.0);
- warpAffine(rgb, rgb, rot_mat, rgb.size());*/
+ vector<Point> vertices = capture.GetArcusVertices(rgb);
- vector<Point> vertices = capture.GetQRVertices4(rgb);
+ int w = sampleWidth;
+ int h = sampleHeight;
- for (size_t i = 0; i < vertices.size(); i++) {
- circle(rgb, vertices[i], 2, CV_RGB(0, 0, 255), -1);
- }
+ Mat sampleMat(h, w, CV_8UC4, (unsigned char *) pSampleOutPixels);
- int w = 300;
- int h = 330;
+ if (vertices.size() == 4)
+ {
+ Mat detectedMat = capture.ApplyHomography(rgb, vertices, Size(w, h));
- Mat wraped(h,w,CV_8UC4, (unsigned char *) pwrapedPixels);
+ bool passed_double_checking = true;
- if (vertices.size() == 4) {
+ if (enableDoubleChecking)
+ {
+ vertices = capture.GetArcusVertices(detectedMat);
+ if (vertices.size() == 4)
+ {
+ passed_double_checking = true;
+ }
+ else
+ {
+ passed_double_checking = false;
+ }
+ }
- has_result = jboolean(true);
+ if (passed_double_checking)
+ {
+ has_result = jboolean(true);
+ }
- Mat m = capture.ApplyHomography(rgb, vertices, Size(w, h));
- cvtColor(m, wraped, COLOR_RGB2BGRA);
- //BhBlocks b(image, w / columns, h / rows);
- //b.drawBlocks(image, Scalar(0, 0, 0), 1);
+ cvtColor(detectedMat, sampleMat, COLOR_RGB2BGRA);
+ detectedMat.release();
}
cvtColor(rgb, result, COLOR_RGB2BGRA);
-/* vector<Point> vertices = capture.GetQRVertices4(image);
-
- for (size_t i = 0; i < vertices.size(); i++)
- {
- circle(image, vertices[i], 2, CV_RGB(0, 0, 255), -1);
- }
-
- int w = 330;
- int h = 300;
- int columns = 11;
- int rows = 10;
-
- if (vertices.size() == 4)
- {
- capture.ApplyHomography(image, vertices, Size(w, h));
- BhBlocks b(image, w / columns, h / rows);
- b.drawBlocks(image, Scalar(0, 0, 0), 1);
- }*/
-
-
- jsize size = env->GetArrayLength(outPixels);
+ env->ReleaseByteArrayElements(frameData, pFrameData, 0);
+ env->ReleaseIntArrayElements(frameOutPixels, pFrameOutPixels, 0);
+ env->ReleaseIntArrayElements(sampleOutPixels, pSampleOutPixels, 0);
- env->ReleaseByteArrayElements(NV21FrameData, pNV21FrameData, 0);
- env->ReleaseIntArrayElements(outPixels, poutPixels, 0);
- env->ReleaseIntArrayElements(wrapedOutPixels, pwrapedPixels, 0);
+ yuv.release();
+ rgb.release();
+ result.release();
+ sampleMat.release();
+ dst.release();
+ gray.release();
}
catch (Exception ex)
{
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/App.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/App.java
index d703526e2..335b4fe52 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/App.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/App.java
@@ -7,6 +7,7 @@ import android.content.Context;
import com.twine.colorcapture.dagger.ApplicationComponent;
import com.twine.colorcapture.dagger.ApplicationModule;
import com.twine.colorcapture.dagger.DaggerApplicationComponent;
+import com.twine.colorcapture.web.WebApiFactory;
import net.danlew.android.joda.JodaTimeAndroid;
@@ -53,7 +54,7 @@ public class App extends Application
//TangoDB.init();
//MessageFactory.init();
- //WebApiFactory.init("http://10.0.2.2:45455/api/");
+ WebApiFactory.init(BuildConfig.WEB_SERVICE_ADDRESS);
Thread.setDefaultUncaughtExceptionHandler((thread, throwable) -> {
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/controls/CircleActionButton.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/controls/CircleActionButton.java
new file mode 100644
index 000000000..afa02c511
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/controls/CircleActionButton.java
@@ -0,0 +1,227 @@
+package com.twine.colorcapture.controls;
+
+import android.animation.Animator;
+import android.animation.ValueAnimator;
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.databinding.BindingAdapter;
+import android.databinding.InverseBindingAdapter;
+import android.graphics.drawable.Drawable;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.v7.widget.AppCompatTextView;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.animation.AlphaAnimation;
+import android.widget.Button;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+
+import com.github.florent37.shapeofview.shapes.RoundRectView;
+import com.twine.colorcapture.R;
+
+public class CircleActionButton extends FrameLayout implements View.OnTouchListener
+{
+ private RoundRectView circleActionButton;
+ private Button btn;
+ private FrameLayout frameAfterPadding;
+ private int initial_circle_width;
+ private ValueAnimator animationDown;
+ private ValueAnimator animationUp;
+ private AlphaAnimation alphaAnimationDown;
+ private AlphaAnimation alphaAnimationUp;
+ private Drawable icon;
+ private AppCompatTextView textView;
+
+ public CircleActionButton(@NonNull Context context, @Nullable AttributeSet attrs)
+ {
+ super(context, attrs);
+ init(context, attrs);
+ }
+
+ private void init(Context context, AttributeSet attrs)
+ {
+ inflate(context, R.layout.circle_action_button, this);
+
+ btn = findViewById(R.id.actionButtonCircleButton);
+ circleActionButton = findViewById(R.id.actionButtonCircle);
+ frameAfterPadding = findViewById(R.id.frameAfterPadding);
+ ImageView imageView = findViewById(R.id.circleActionButtonImageView);
+ textView = findViewById(R.id.circleActionButtonTextView);
+
+ btn.setOnTouchListener(this);
+
+ TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.CircleActionButton);
+
+ int textSize = a.getDimensionPixelSize(R.styleable.CircleActionButton_textSize, 0);
+
+ if (textSize > 0)
+ {
+ textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
+ }
+
+ icon = getContext().getDrawable(a.getResourceId(R.styleable.CircleActionButton_src, 0));
+ CharSequence text = a.getText(R.styleable.CircleActionButton_text);
+
+ imageView.setImageDrawable(icon);
+ textView.setText(text);
+
+ a.recycle();
+ }
+
+ @Override
+ public boolean onTouch(View view, MotionEvent motionEvent)
+ {
+ if (motionEvent.getAction() == MotionEvent.ACTION_DOWN)
+ {
+ animateDown();
+ }
+ else if (motionEvent.getAction() == MotionEvent.ACTION_UP)
+ {
+ //animateUp();
+ performClick();
+ }
+
+ return true;
+ }
+
+ private void animateDown()
+ {
+ cancelAnimations();
+
+ if (initial_circle_width == 0)
+ {
+ initial_circle_width = circleActionButton.getMeasuredWidth();
+ }
+
+
+ alphaAnimationDown = new AlphaAnimation(1f, 0.5f);
+ alphaAnimationDown.setDuration(50);
+ alphaAnimationDown.setFillAfter(true);
+ circleActionButton.startAnimation(alphaAnimationDown);
+
+ final CircleActionButton that = this;
+
+ ValueAnimator anim = ValueAnimator.ofInt(initial_circle_width, frameAfterPadding.getMeasuredWidth());
+ animationDown = anim;
+ anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
+ {
+ @Override
+ public void onAnimationUpdate(ValueAnimator valueAnimator)
+ {
+ int val = (Integer) valueAnimator.getAnimatedValue();
+ ViewGroup.LayoutParams layoutParams = circleActionButton.getLayoutParams();
+ layoutParams.width = val;
+ circleActionButton.setLayoutParams(layoutParams);
+ }
+ });
+ anim.addListener(new Animator.AnimatorListener()
+ {
+ @Override
+ public void onAnimationStart(Animator animator)
+ {
+
+ }
+
+ @Override
+ public void onAnimationEnd(Animator animator)
+ {
+ that.animateUp();
+ }
+
+ @Override
+ public void onAnimationCancel(Animator animator)
+ {
+
+ }
+
+ @Override
+ public void onAnimationRepeat(Animator animator)
+ {
+
+ }
+ });
+ anim.setDuration(50);
+ anim.start();
+ }
+
+ public void animateUp()
+ {
+ cancelAnimations();
+
+ alphaAnimationUp = new AlphaAnimation(0.5f, 1f);
+ alphaAnimationUp.setDuration(500);
+ alphaAnimationUp.setFillAfter(true);
+ alphaAnimationUp.setStartTime(1000);
+ circleActionButton.startAnimation(alphaAnimationUp);
+
+ ValueAnimator anim = ValueAnimator.ofInt(circleActionButton.getMeasuredWidth(), initial_circle_width);
+ animationUp = anim;
+ anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener()
+ {
+ @Override
+ public void onAnimationUpdate(ValueAnimator valueAnimator)
+ {
+ int val = (Integer) valueAnimator.getAnimatedValue();
+ ViewGroup.LayoutParams layoutParams = circleActionButton.getLayoutParams();
+ layoutParams.width = val;
+ circleActionButton.setLayoutParams(layoutParams);
+ }
+ });
+ anim.setDuration(500);
+ anim.setStartDelay(1000);
+ anim.start();
+ }
+
+ private void cancelAnimations()
+ {
+ if (animationDown != null)
+ {
+ animationDown.cancel();
+ animationDown = null;
+ }
+
+ if (animationUp != null)
+ {
+ animationUp.cancel();
+ animationUp = null;
+ }
+
+ if (alphaAnimationDown != null)
+ {
+ alphaAnimationDown.cancel();
+ alphaAnimationDown = null;
+ }
+
+ if (alphaAnimationUp != null)
+ {
+ alphaAnimationUp.cancel();
+ alphaAnimationUp = null;
+ }
+ }
+
+ public void setText(String text)
+ {
+ this.textView.setText(text);
+ }
+
+ public String getText()
+ {
+ return this.textView.getText().toString();
+ }
+
+ @BindingAdapter("text")
+ public static void setText(CircleActionButton view, String value)
+ {
+ view.setText(value);
+ }
+
+ @InverseBindingAdapter(attribute = "text")
+ public static String getText(CircleActionButton view)
+ {
+ return view.getText();
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/controls/ToggleImageButton.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/controls/ToggleImageButton.java
new file mode 100644
index 000000000..e23f3e7e7
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/controls/ToggleImageButton.java
@@ -0,0 +1,148 @@
+package com.twine.colorcapture.controls;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.databinding.BindingAdapter;
+import android.databinding.BindingMethod;
+import android.databinding.BindingMethods;
+import android.databinding.InverseBindingAdapter;
+import android.databinding.InverseBindingListener;
+import android.databinding.InverseBindingMethod;
+import android.databinding.InverseBindingMethods;
+import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.widget.Checkable;
+import android.widget.CompoundButton;
+
+import com.twine.colorcapture.R;
+
+@BindingMethods({
+ @BindingMethod(type = ToggleImageButton.class, attribute = "checked", method = "setChecked"),
+})
+@InverseBindingMethods({
+ @InverseBindingMethod(type = ToggleImageButton.class, attribute = "checked", method = "getChecked"),
+})
+public class ToggleImageButton extends android.support.v7.widget.AppCompatImageButton implements Checkable
+{
+ private OnCheckedChangeListener onCheckedChangeListener;
+ private Drawable normalImage;
+ private Drawable checkedImage;
+
+ public ToggleImageButton(Context context)
+ {
+ super(context);
+ }
+
+ public ToggleImageButton(Context context, AttributeSet attrs)
+ {
+ super(context, attrs);
+ setAttributes(attrs);
+ }
+
+ public ToggleImageButton(Context context, AttributeSet attrs, int defStyle)
+ {
+ super(context, attrs, defStyle);
+ setAttributes(attrs);
+ }
+
+ private void setAttributes(AttributeSet attrs)
+ {
+ TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.ToggleImageButton);
+
+ normalImage = getContext().getDrawable(a.getResourceId(R.styleable.ToggleImageButton_normalImage, 0));
+ checkedImage = getContext().getDrawable(a.getResourceId(R.styleable.ToggleImageButton_checkedImage, 0));
+
+ setChecked(a.getBoolean(R.styleable.ToggleImageButton_android_checked, false));
+ a.recycle();
+ }
+
+ @Override
+ public boolean isChecked()
+ {
+ return isSelected();
+ }
+
+ @Override
+ public void setChecked(boolean checked)
+ {
+ Log.d("DATA BINDING", "setChecked: ");
+ setSelected(checked);
+
+ if (checked)
+ {
+ setImageDrawable(checkedImage);
+ }
+ else
+ {
+ setImageDrawable(normalImage);
+ }
+
+ if (onCheckedChangeListener != null)
+ {
+ onCheckedChangeListener.onCheckedChanged(this, checked);
+ }
+ }
+
+ public Boolean getChecked()
+ {
+ Log.d("DATA BINDING", "getChecked: ");
+ return isChecked();
+ }
+
+ @Override
+ public void toggle()
+ {
+ setChecked(!isChecked());
+ }
+
+ @Override
+ public boolean performClick()
+ {
+ if (!isChecked())
+ {
+ setChecked(true);
+ }
+ else
+ {
+ return true;
+ }
+
+ return super.performClick();
+ }
+
+ public OnCheckedChangeListener getOnCheckedChangeListener()
+ {
+ return onCheckedChangeListener;
+ }
+
+ public void setOnCheckedChangeListener(OnCheckedChangeListener onCheckedChangeListener)
+ {
+ this.onCheckedChangeListener = onCheckedChangeListener;
+ }
+
+ public static interface OnCheckedChangeListener
+ {
+ public void onCheckedChanged(ToggleImageButton buttonView, boolean isChecked);
+ }
+
+ @BindingAdapter(value = "checkedAttrChanged")
+ public static void setListener(ToggleImageButton btn, final InverseBindingListener attrChange)
+ {
+ btn.setOnCheckedChangeListener((e, r) -> attrChange.onChange());
+ }
+
+ @BindingAdapter("checked")
+ public static void setChecked(ToggleImageButton view, Boolean value)
+ {
+ Log.d("DATA BINDING", "setChecked: ");
+ view.setChecked(value);
+ }
+
+ @InverseBindingAdapter(attribute = "checked")
+ public static Boolean getChecked(ToggleImageButton view)
+ {
+ Log.d("DATA BINDING", "getChecked: ");
+ return view.isChecked();
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/AnimationsHelper.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/AnimationsHelper.java
new file mode 100644
index 000000000..219056c1b
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/AnimationsHelper.java
@@ -0,0 +1,70 @@
+package com.twine.colorcapture.core;
+
+import android.view.View;
+import android.view.animation.AlphaAnimation;
+import android.view.animation.Animation;
+import android.view.animation.Animation.AnimationListener;
+import android.view.animation.ScaleAnimation;
+
+import java.io.IOException;
+
+/**
+ * Contains helper methods related to animations.
+ */
+public class AnimationsHelper
+{
+ /**
+ * Animates the specified view scale transform.
+ */
+ public static void animateScale(View v, float startScale, float endScale, int duration, boolean keepResult, IAction onCompleted)
+ {
+ Animation anim = new ScaleAnimation(
+ startScale, endScale, // Start and end values for the X axis scaling
+ 1f, 1f, // Start and end values for the Y axis scaling
+ Animation.RELATIVE_TO_SELF, 0f, // Pivot point of X scaling
+ Animation.RELATIVE_TO_SELF, 0f); // Pivot point of Y scaling
+ anim.setFillAfter(keepResult); // Needed to keep the result of the animation
+ anim.setDuration(duration);
+ anim.setAnimationListener(new AnimationListener()
+ {
+ @Override
+ public void onAnimationStart(Animation animation)
+ {
+
+ }
+
+ @Override
+ public void onAnimationEnd(Animation animation)
+ {
+ if (onCompleted != null)
+ {
+ try
+ {
+ onCompleted.invoke();
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ @Override
+ public void onAnimationRepeat(Animation animation)
+ {
+
+ }
+ });
+ v.startAnimation(anim);
+ }
+
+ /**
+ * Animates the specified view alpha channel.
+ */
+ public static void animateAlpha(View v, float from, float to, int duration, boolean keepResult)
+ {
+ AlphaAnimation animation1 = new AlphaAnimation(from, to);
+ animation1.setDuration(duration);
+ animation1.setFillAfter(keepResult);
+ v.startAnimation(animation1);
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/CountUpTimer.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/CountUpTimer.java
new file mode 100644
index 000000000..597b46430
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/CountUpTimer.java
@@ -0,0 +1,29 @@
+package com.twine.colorcapture.core;
+
+import android.os.CountDownTimer;
+
+public abstract class CountUpTimer extends CountDownTimer
+{
+ private int duration;
+
+ protected CountUpTimer(int durationMs, long interval)
+ {
+ super(durationMs, interval);
+ this.duration = durationMs;
+ }
+
+ public abstract void onTick(float milli);
+
+ @Override
+ public void onTick(long msUntilFinished)
+ {
+ float milli = (float) ((duration - msUntilFinished));
+ onTick(milli);
+ }
+
+ @Override
+ public void onFinish()
+ {
+ onTick((float)duration);
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/Event.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/Event.java
new file mode 100644
index 000000000..1109ba02f
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/Event.java
@@ -0,0 +1,59 @@
+package com.twine.colorcapture.core;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * Represents C# like event simulation by holding a collection of event handlers.
+ *
+ * @param <T> the event handler type parameter
+ */
+public class Event<T>
+{
+ private List<IEventHandler<T>> listeners = new ArrayList<>();
+
+ /**
+ * Remove listener.
+ *
+ * @param listener the listener
+ */
+ public void removeListener(IEventHandler<T> listener)
+ {
+ listeners.remove(listener);
+ }
+
+ /**
+ * Add listener.
+ *
+ * @param listener the listener
+ */
+ public void addListener(IEventHandler<T> listener)
+ {
+ listeners.add(listener);
+ }
+
+ /**
+ * Invoke the event for all listeners.
+ *
+ * @param sender the sender
+ * @param e the e
+ */
+ public void invoke(Object sender, T e)
+ {
+
+ for (int i = 0; i < listeners.size(); i++)
+ {
+ listeners.get(i).invoke(sender, e);
+ }
+ }
+
+
+ /**
+ * Clears the collection of event handlers.
+ */
+ public void reset()
+ {
+ listeners.clear();
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/IAction.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/IAction.java
index 5766f6cf3..2a6724efb 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/IAction.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/IAction.java
@@ -1,5 +1,7 @@
package com.twine.colorcapture.core;
+import java.io.IOException;
+
/**
* Represents an void Action delegate.
*/
@@ -8,5 +10,5 @@ public interface IAction
/**
* Invokes the action.
*/
- void invoke();
+ void invoke() throws Exception;
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/IEventHandler.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/IEventHandler.java
new file mode 100644
index 000000000..5d212eed8
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/IEventHandler.java
@@ -0,0 +1,18 @@
+package com.twine.colorcapture.core;
+
+/**
+ * Represents an {@link Event} handler delegate.
+ *
+ * @param <T> the type parameter
+ */
+public interface IEventHandler<T>
+{
+
+ /**
+ * Invokes the handler callback.
+ *
+ * @param sender the sender
+ * @param args the event arguments.
+ */
+ void invoke(Object sender, T args);
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/ObservableCollection.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/ObservableCollection.java
new file mode 100644
index 000000000..3262a72a8
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/ObservableCollection.java
@@ -0,0 +1,213 @@
+package com.twine.colorcapture.core;
+
+import android.support.annotation.NonNull;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+
+
+/**
+ * Represents an observable collection with change notification.
+ *
+ * @param <T> the type parameter
+ */
+public class ObservableCollection<T> implements List<T> {
+
+ /**
+ * The interface On changed listener.
+ */
+ public interface OnChangedListener {
+ /**
+ * On change.
+ */
+ void onChange();
+ }
+
+ private List<T> list;
+ private OnChangedListener onChangedListener;
+
+ /**
+ * Sets on change listener.
+ *
+ * @param listener the listener
+ */
+ public void setOnChangeListener(OnChangedListener listener) {
+ this.onChangedListener = listener;
+ }
+
+
+ /**
+ * Clear on change listener.
+ */
+ public void clearOnChangeListener()
+ {
+ this.onChangedListener = null;
+ }
+
+ /**
+ * On change.
+ */
+ protected void onChange() {
+ if (this.onChangedListener != null) {
+ this.onChangedListener.onChange();
+ }
+ }
+
+ /**
+ * Instantiates a new Observable collection.
+ */
+ public ObservableCollection() {
+ list = new ArrayList<>();
+ }
+
+ @Override
+ public int size() {
+ return list.size();
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return list.isEmpty();
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return list.contains(o);
+ }
+
+ @NonNull
+ @Override
+ public Iterator<T> iterator() {
+ return list.iterator();
+ }
+
+ @NonNull
+ @Override
+ public Object[] toArray() {
+ return list.toArray();
+ }
+
+ @NonNull
+ @Override
+ public <T1> T1[] toArray(@NonNull T1[] t1s) {
+ return list.toArray(t1s);
+ }
+
+ @Override
+ public boolean add(T t) {
+ boolean result = list.add(t);
+ onChange();
+ return result;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ boolean result = list.remove(o);
+ onChange();
+ return result;
+ }
+
+ @Override
+ public boolean containsAll(@NonNull Collection<?> collection) {
+ return list.containsAll(collection);
+ }
+
+ @Override
+ public boolean addAll(@NonNull Collection<? extends T> collection) {
+ boolean result = list.addAll(collection);
+ onChange();
+ return result;
+ }
+
+ @Override
+ public boolean addAll(int i, @NonNull Collection<? extends T> collection) {
+ boolean result = list.addAll(i, collection);
+ onChange();
+ return result;
+ }
+
+ @Override
+ public boolean removeAll(@NonNull Collection<?> collection) {
+ boolean result = list.removeAll(collection);
+ onChange();
+ return result;
+ }
+
+ @Override
+ public boolean retainAll(@NonNull Collection<?> collection) {
+ boolean result = list.retainAll(collection);
+ onChange();
+ return result;
+ }
+
+ @Override
+ public void clear() {
+ list.clear();
+ onChange();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return list.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return list.hashCode();
+ }
+
+ @Override
+ public T get(int i) {
+ return list.get(i);
+ }
+
+ @Override
+ public T set(int i, T t) {
+ T result = list.set(i, t);
+ onChange();
+ return result;
+ }
+
+ @Override
+ public void add(int i, T t) {
+ list.add(i,t);
+ onChange();
+ }
+
+ @Override
+ public T remove(int i) {
+ T result = list.remove(i);
+ onChange();
+ return result;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return list.indexOf(o);
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return list.lastIndexOf(o);
+ }
+
+ @NonNull
+ @Override
+ public ListIterator<T> listIterator() {
+ return listIterator();
+ }
+
+ @NonNull
+ @Override
+ public ListIterator<T> listIterator(int i) {
+ return listIterator(i);
+ }
+
+ @NonNull
+ @Override
+ public List<T> subList(int i, int i1) {
+ return list.subList(i,i1);
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/Task.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/Task.java
index 2858fbc3c..5148b9e6f 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/Task.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/core/Task.java
@@ -2,33 +2,72 @@ package com.twine.colorcapture.core;
import android.os.AsyncTask;
-public class Task extends AsyncTask<String, Integer, String> {
+import java.io.IOException;
+
+public class Task extends AsyncTask<String, Integer, String>
+{
private IAction action;
private IAction continueWithAction;
+ private IAction1<Exception> errorAction;
+ private boolean hasError;
+ private Exception error;
+
- public Task(IAction action) {
+ public Task(IAction action)
+ {
this.action = action;
}
- public Task(IAction action, IAction continueWithAction) {
+ public Task(IAction action, IAction continueWithAction)
+ {
this.action = action;
this.continueWithAction = continueWithAction;
}
+ public Task(IAction action, IAction continueWithAction, IAction1<Exception> errorAction)
+ {
+ this.action = action;
+ this.continueWithAction = continueWithAction;
+ this.errorAction = errorAction;
+ }
+
@Override
- protected String doInBackground(String... strings) {
- action.invoke();
+ protected String doInBackground(String... strings)
+ {
+ try
+ {
+ action.invoke();
+ } catch (Exception ex)
+ {
+ hasError = true;
+ error = ex;
+ }
return null;
}
@Override
- protected void onPostExecute(String s) {
+ protected void onPostExecute(String s)
+ {
super.onPostExecute(s);
- if (continueWithAction != null)
+ if (continueWithAction != null && !hasError)
+ {
+ try
+ {
+ continueWithAction.invoke();
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ if (hasError)
{
- continueWithAction.invoke();
+ if (errorAction != null)
+ {
+ errorAction.invoke(error);
+ }
}
}
@@ -42,6 +81,7 @@ public class Task extends AsyncTask<String, Integer, String> {
private Task task;
private IAction action;
private IAction continueWithAction;
+ private IAction1<Exception> errorAction;
public TaskBuilder setAction(IAction action)
{
@@ -55,9 +95,15 @@ public class Task extends AsyncTask<String, Integer, String> {
return this;
}
+ public TaskBuilder setError(IAction1<Exception> action)
+ {
+ this.errorAction = action;
+ return this;
+ }
+
public Task build()
{
- return new Task(action,continueWithAction);
+ return new Task(action, continueWithAction, errorAction);
}
}
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/ApplicationComponent.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/ApplicationComponent.java
index b3a790039..db2848fa1 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/ApplicationComponent.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/ApplicationComponent.java
@@ -1,10 +1,20 @@
package com.twine.colorcapture.dagger;
+import com.twine.colorcapture.dialogs.confirm.ConfirmDialog;
+import com.twine.colorcapture.dialogs.error.ErrorDialog;
+import com.twine.colorcapture.dialogs.processing.ProcessingDialog;
+import com.twine.colorcapture.dialogs.progress.ProgressDialog;
+import com.twine.colorcapture.dialogs.success.SuccessDialog;
+import com.twine.colorcapture.dialogs.welcome.WelcomeDialog;
import com.twine.colorcapture.views.capture.CaptureFragment;
-import com.twine.colorcapture.views.home.HomeFragment;
-import com.twine.colorcapture.views.loading.LoadingFragment;
+import com.twine.colorcapture.views.mycolors.MyColorsFragment;
+import com.twine.colorcapture.views.loading.LoadingActivity;
import com.twine.colorcapture.views.main.MainActivity;
-import com.twine.colorcapture.views.main.MainActivityVM;
+import com.twine.colorcapture.views.register.RegisterFragment;
+import com.twine.colorcapture.views.rename.RenameFragment;
+import com.twine.colorcapture.views.result.ResultFragment;
+import com.twine.colorcapture.views.sendtoemail.SendToEmailActivity;
+import com.twine.colorcapture.views.sendtomachine.SendToMachineFragment;
import javax.inject.Singleton;
@@ -15,17 +25,36 @@ import dagger.Component;
*/
@Singleton
-@Component(modules = {ApplicationModule.class, ViewModelsModule.class, EventBusModule.class, NotificationModule.class, NavigationModule.class})
+@Component(modules = {ApplicationModule.class, ViewModelsModule.class, EventBusModule.class, NotificationModule.class, NavigationModule.class, WebModule.class})
public interface ApplicationComponent
{
-
void inject(MainActivity view);
- void inject(LoadingFragment view);
+ void inject(LoadingActivity view);
- void inject(HomeFragment view);
+ void inject(MyColorsFragment view);
void inject(CaptureFragment view);
- MainActivityVM provideMainActivityVM();
+ void inject(WelcomeDialog welcomeDialog);
+
+ void inject(ResultFragment resultFragment);
+
+ void inject(ProcessingDialog processingDialog);
+
+ void inject(RegisterFragment registerFragment);
+
+ void inject(ProgressDialog progressDialog);
+
+ void inject(ErrorDialog errorDialog);
+
+ void inject(SuccessDialog successDialog);
+
+ void inject(SendToMachineFragment sendToMachineFragment);
+
+ void inject(ConfirmDialog confirmDialog);
+
+ void inject(RenameFragment renameFragment);
+
+ void inject(SendToEmailActivity sendToEmailActivity);
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/EventBusModule.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/EventBusModule.java
index f76e91d70..3e785d304 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/EventBusModule.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/EventBusModule.java
@@ -19,6 +19,6 @@ public class EventBusModule {
@Singleton
public Bus provideEventBus()
{
- return new Bus(ThreadEnforcer.MAIN);
+ return new Bus(ThreadEnforcer.ANY);
}
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/NavigationModule.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/NavigationModule.java
index 476f248e0..7ccb6b06e 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/NavigationModule.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/NavigationModule.java
@@ -14,8 +14,8 @@ public class NavigationModule
{
@Provides
@Singleton
- public INavigationProvider provideNavigation()
+ public INavigationProvider provideNavigation(Context context)
{
- return new AndroidNavigationProvider();
+ return new AndroidNavigationProvider(context);
}
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/ViewModelsModule.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/ViewModelsModule.java
index ff2e83a61..f83826b21 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/ViewModelsModule.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/ViewModelsModule.java
@@ -1,12 +1,24 @@
package com.twine.colorcapture.dagger;
import com.squareup.otto.Bus;
+import com.twine.colorcapture.dialogs.confirm.ConfirmDialogVM;
+import com.twine.colorcapture.dialogs.error.ErrorDialogVM;
+import com.twine.colorcapture.dialogs.processing.ProcessingDialogVM;
+import com.twine.colorcapture.dialogs.progress.ProgressDialogVM;
+import com.twine.colorcapture.dialogs.success.SuccessDialogVM;
+import com.twine.colorcapture.dialogs.welcome.WelcomeDialogVM;
import com.twine.colorcapture.navigation.INavigationProvider;
import com.twine.colorcapture.notification.INotificationProvider;
import com.twine.colorcapture.views.capture.CaptureFragmentVM;
-import com.twine.colorcapture.views.home.HomeFragmentVM;
-import com.twine.colorcapture.views.loading.LoadingFragmentVM;
+import com.twine.colorcapture.views.loading.LoadingActivityVM;
+import com.twine.colorcapture.views.mycolors.MyColorsFragmentVM;
import com.twine.colorcapture.views.main.MainActivityVM;
+import com.twine.colorcapture.views.register.RegisterFragmentVM;
+import com.twine.colorcapture.views.rename.RenameFragmentVM;
+import com.twine.colorcapture.views.result.ResultFragmentVM;
+import com.twine.colorcapture.views.sendtoemail.SendToEmailActivityVM;
+import com.twine.colorcapture.views.sendtomachine.SendToMachineFragmentVM;
+import com.twine.colorcapture.web.ITCCService;
import javax.inject.Singleton;
@@ -20,32 +32,109 @@ import dagger.Provides;
@Module
public class ViewModelsModule
{
-
+
@Provides
@Singleton
public MainActivityVM provideMainActivityVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider)
{
return new MainActivityVM(eventBus, notificationProvider, navigationProvider);
}
-
+
+ @Provides
+ @Singleton
+ public LoadingActivityVM provideLoadingFragmentVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider, ITCCService tccService)
+ {
+ return new LoadingActivityVM(eventBus, notificationProvider, navigationProvider, tccService);
+ }
+
+ @Provides
+ @Singleton
+ public SendToEmailActivityVM provideSendToEmailActivityVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider, ITCCService tccService)
+ {
+ return new SendToEmailActivityVM();
+ }
+
+ @Provides
+ @Singleton
+ public MyColorsFragmentVM provideMyColorsFragmentVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider)
+ {
+ return new MyColorsFragmentVM(navigationProvider, notificationProvider);
+ }
+
+ @Provides
+ @Singleton
+ public CaptureFragmentVM provideCaptureFragmentVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider, ITCCService tccService)
+ {
+ return new CaptureFragmentVM(eventBus, tccService, navigationProvider, notificationProvider);
+ }
+
@Provides
@Singleton
- public LoadingFragmentVM provideLoadingFragmentVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider)
+ public ProcessingDialogVM provideProcessingDialogVM()
{
- return new LoadingFragmentVM(eventBus, notificationProvider, navigationProvider);
+ return new ProcessingDialogVM();
}
-
+
@Provides
@Singleton
- public HomeFragmentVM provideHomeFragmentVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider)
+ public ResultFragmentVM provideResultFragmentVM(Bus eventBus, INavigationProvider navigationProvider, ITCCService tccService)
{
- return new HomeFragmentVM(navigationProvider);
+ return new ResultFragmentVM(eventBus, navigationProvider, tccService);
}
-
+
+ @Provides
+ @Singleton
+ public RegisterFragmentVM provideRegisterFragmentVM(INotificationProvider notificationProvider, INavigationProvider navigationProvider, ITCCService tccService, Bus eventBus)
+ {
+ return new RegisterFragmentVM(notificationProvider, navigationProvider, tccService, eventBus);
+ }
+
+ @Provides
+ @Singleton
+ public RenameFragmentVM provideRenameFragmentVM(INavigationProvider navigationProvider)
+ {
+ return new RenameFragmentVM(navigationProvider);
+ }
+
+ @Provides
+ @Singleton
+ public SendToMachineFragmentVM provideSendMachineFragmentVM(INotificationProvider notificationProvider, INavigationProvider navigationProvider, ITCCService tccService)
+ {
+ return new SendToMachineFragmentVM(notificationProvider, navigationProvider, tccService);
+ }
+
+ @Provides
+ @Singleton
+ public ProgressDialogVM provideProgressDialogVM()
+ {
+ return new ProgressDialogVM();
+ }
+
+ @Provides
+ @Singleton
+ public ErrorDialogVM provideErrorDialogVM()
+ {
+ return new ErrorDialogVM();
+ }
+
+ @Provides
+ @Singleton
+ public SuccessDialogVM provideSuccessDialogVM()
+ {
+ return new SuccessDialogVM();
+ }
+
+ @Provides
+ @Singleton
+ public ConfirmDialogVM provideConfirmDialogVM()
+ {
+ return new ConfirmDialogVM();
+ }
+
@Provides
@Singleton
- public CaptureFragmentVM provideCaptureFragmentVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider)
+ public WelcomeDialogVM provideWelcomeDialogVM()
{
- return new CaptureFragmentVM();
+ return new WelcomeDialogVM();
}
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/WebModule.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/WebModule.java
new file mode 100644
index 000000000..755f7b19c
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dagger/WebModule.java
@@ -0,0 +1,29 @@
+package com.twine.colorcapture.dagger;
+
+import com.twine.colorcapture.web.ITCCService;
+import com.twine.colorcapture.web.IWebServiceAPI;
+import com.twine.colorcapture.web.TCCService;
+import com.twine.colorcapture.web.WebApiFactory;
+
+import javax.inject.Singleton;
+
+import dagger.Module;
+import dagger.Provides;
+
+@Module
+public class WebModule
+{
+ @Provides
+ @Singleton
+ public IWebServiceAPI providerWebServiceAPI()
+ {
+ return WebApiFactory.getWebServiceApi();
+ }
+
+ @Provides
+ @Singleton
+ public ITCCService provideTCCService(IWebServiceAPI webServiceAPI)
+ {
+ return new TCCService(webServiceAPI);
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/confirm/ConfirmDialog.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/confirm/ConfirmDialog.java
new file mode 100644
index 000000000..9b67c2a08
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/confirm/ConfirmDialog.java
@@ -0,0 +1,22 @@
+package com.twine.colorcapture.dialogs.confirm;
+
+import com.twine.colorcapture.App;
+import com.twine.colorcapture.R;
+import com.twine.colorcapture.databinding.DialogConfirmBinding;
+import com.twine.colorcapture.mvvm.DialogBase;
+
+public class ConfirmDialog extends DialogBase<DialogConfirmBinding,ConfirmDialogVM>
+{
+
+ @Override
+ public int getLayoutId()
+ {
+ return R.layout.dialog_confirm;
+ }
+
+ @Override
+ public void inject()
+ {
+ App.getComponent().inject(this);
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/confirm/ConfirmDialogVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/confirm/ConfirmDialogVM.java
new file mode 100644
index 000000000..5fa0db57c
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/confirm/ConfirmDialogVM.java
@@ -0,0 +1,41 @@
+package com.twine.colorcapture.dialogs.confirm;
+
+import com.twine.colorcapture.mvvm.DependencyProperty;
+import com.twine.colorcapture.mvvm.MessageDialogViewModelBase;
+import com.twine.colorcapture.mvvm.RelayCommand;
+
+public class ConfirmDialogVM extends MessageDialogViewModelBase
+{
+ private boolean confirmed;
+
+ public DependencyProperty<String> confirmText;
+ public RelayCommand confirmCommand;
+
+ public ConfirmDialogVM()
+ {
+ super();
+ confirmText = new DependencyProperty<>("OK");
+ confirmCommand = new RelayCommand(this::onConfirmed);
+ }
+
+ private void onConfirmed()
+ {
+ confirmed = true;
+ close();
+ }
+
+ public void setConfirmText(String confirmText)
+ {
+ this.confirmText.set(confirmText);
+ }
+
+ public boolean isConfirmed()
+ {
+ return this.confirmed;
+ }
+
+ public void setConfirmed(Boolean confirmed)
+ {
+ this.confirmed = confirmed;
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/error/ErrorDialog.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/error/ErrorDialog.java
new file mode 100644
index 000000000..65bb346b3
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/error/ErrorDialog.java
@@ -0,0 +1,22 @@
+package com.twine.colorcapture.dialogs.error;
+
+import com.twine.colorcapture.App;
+import com.twine.colorcapture.R;
+import com.twine.colorcapture.databinding.DialogErrorBinding;
+import com.twine.colorcapture.mvvm.DialogBase;
+
+public class ErrorDialog extends DialogBase<DialogErrorBinding,ErrorDialogVM>
+{
+
+ @Override
+ public int getLayoutId()
+ {
+ return R.layout.dialog_error;
+ }
+
+ @Override
+ public void inject()
+ {
+ App.getComponent().inject(this);
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/error/ErrorDialogVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/error/ErrorDialogVM.java
new file mode 100644
index 000000000..6dee3dfe1
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/error/ErrorDialogVM.java
@@ -0,0 +1,10 @@
+package com.twine.colorcapture.dialogs.error;
+
+import com.twine.colorcapture.mvvm.DependencyProperty;
+import com.twine.colorcapture.mvvm.DialogViewModelBase;
+import com.twine.colorcapture.mvvm.MessageDialogViewModelBase;
+
+public class ErrorDialogVM extends MessageDialogViewModelBase
+{
+
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/processing/ProcessingDialog.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/processing/ProcessingDialog.java
new file mode 100644
index 000000000..eca58f720
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/processing/ProcessingDialog.java
@@ -0,0 +1,23 @@
+package com.twine.colorcapture.dialogs.processing;
+
+import android.app.DialogFragment;
+
+import com.twine.colorcapture.App;
+import com.twine.colorcapture.R;
+import com.twine.colorcapture.databinding.DialogProcessingBinding;
+import com.twine.colorcapture.mvvm.DialogBase;
+
+public class ProcessingDialog extends DialogBase<DialogProcessingBinding, ProcessingDialogVM>
+{
+ @Override
+ public int getLayoutId()
+ {
+ return R.layout.dialog_processing;
+ }
+
+ @Override
+ public void inject()
+ {
+ App.getComponent().inject(this);
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/processing/ProcessingDialogVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/processing/ProcessingDialogVM.java
new file mode 100644
index 000000000..20848d357
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/processing/ProcessingDialogVM.java
@@ -0,0 +1,14 @@
+package com.twine.colorcapture.dialogs.processing;
+
+import com.twine.colorcapture.mvvm.DialogViewModelBase;
+
+import javax.inject.Inject;
+
+public class ProcessingDialogVM extends DialogViewModelBase
+{
+ @Inject
+ public ProcessingDialogVM()
+ {
+
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/progress/ProgressDialog.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/progress/ProgressDialog.java
new file mode 100644
index 000000000..865eb4d5b
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/progress/ProgressDialog.java
@@ -0,0 +1,21 @@
+package com.twine.colorcapture.dialogs.progress;
+
+import com.twine.colorcapture.App;
+import com.twine.colorcapture.R;
+import com.twine.colorcapture.databinding.DialogProgressBinding;
+import com.twine.colorcapture.mvvm.DialogBase;
+
+public class ProgressDialog extends DialogBase<DialogProgressBinding,ProgressDialogVM>
+{
+ @Override
+ public int getLayoutId()
+ {
+ return R.layout.dialog_progress;
+ }
+
+ @Override
+ public void inject()
+ {
+ App.getComponent().inject(this);
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/progress/ProgressDialogVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/progress/ProgressDialogVM.java
new file mode 100644
index 000000000..24d0da2ea
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/progress/ProgressDialogVM.java
@@ -0,0 +1,10 @@
+package com.twine.colorcapture.dialogs.progress;
+
+import com.twine.colorcapture.mvvm.DependencyProperty;
+import com.twine.colorcapture.mvvm.DialogViewModelBase;
+import com.twine.colorcapture.mvvm.MessageDialogViewModelBase;
+
+public class ProgressDialogVM extends MessageDialogViewModelBase
+{
+
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/success/SuccessDialog.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/success/SuccessDialog.java
new file mode 100644
index 000000000..b15fcf9a0
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/success/SuccessDialog.java
@@ -0,0 +1,23 @@
+package com.twine.colorcapture.dialogs.success;
+
+import android.app.DialogFragment;
+
+import com.twine.colorcapture.App;
+import com.twine.colorcapture.R;
+import com.twine.colorcapture.databinding.DialogSuccessBinding;
+import com.twine.colorcapture.mvvm.DialogBase;
+
+public class SuccessDialog extends DialogBase<DialogSuccessBinding,SuccessDialogVM>
+{
+ @Override
+ public int getLayoutId()
+ {
+ return R.layout.dialog_success;
+ }
+
+ @Override
+ public void inject()
+ {
+ App.getComponent().inject(this);
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/success/SuccessDialogVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/success/SuccessDialogVM.java
new file mode 100644
index 000000000..466f32879
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/success/SuccessDialogVM.java
@@ -0,0 +1,10 @@
+package com.twine.colorcapture.dialogs.success;
+
+import com.twine.colorcapture.mvvm.DependencyProperty;
+import com.twine.colorcapture.mvvm.DialogViewModelBase;
+import com.twine.colorcapture.mvvm.MessageDialogViewModelBase;
+
+public class SuccessDialogVM extends MessageDialogViewModelBase
+{
+
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/welcome/WelcomeDialog.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/welcome/WelcomeDialog.java
new file mode 100644
index 000000000..dbb7fbb0c
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/welcome/WelcomeDialog.java
@@ -0,0 +1,32 @@
+package com.twine.colorcapture.dialogs.welcome;
+
+import android.graphics.Interpolator;
+import android.os.CountDownTimer;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.twine.colorcapture.App;
+import com.twine.colorcapture.R;
+import com.twine.colorcapture.core.AnimationsHelper;
+import com.twine.colorcapture.core.CountUpTimer;
+import com.twine.colorcapture.mvvm.DialogBase;
+import com.twine.colorcapture.databinding.DialogWelcomeBinding;
+
+import java.util.Timer;
+
+public class WelcomeDialog extends DialogBase<DialogWelcomeBinding, WelcomeDialogVM>
+{
+
+ @Override
+ public int getLayoutId()
+ {
+ return R.layout.dialog_welcome;
+ }
+
+ @Override
+ public void inject()
+ {
+ App.getComponent().inject(this);
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/welcome/WelcomeDialogVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/welcome/WelcomeDialogVM.java
new file mode 100644
index 000000000..acfc08e05
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/welcome/WelcomeDialogVM.java
@@ -0,0 +1,28 @@
+package com.twine.colorcapture.dialogs.welcome;
+
+import com.twine.colorcapture.mvvm.DialogViewModelBase;
+import com.twine.colorcapture.mvvm.RelayCommand;
+
+import javax.inject.Inject;
+
+public class WelcomeDialogVM extends DialogViewModelBase
+{
+ public RelayCommand startCommand;
+
+ @Inject
+ public WelcomeDialogVM()
+ {
+ startCommand = new RelayCommand(this::close);
+ }
+
+ public String getText()
+ {
+ return "Hi Roy";
+ }
+
+ @Override
+ protected void onBackPressed()
+ {
+ super.onBackPressed();
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/integration/ExternalBridgeClient.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/integration/ExternalBridgeClient.java
new file mode 100644
index 000000000..99436a6b2
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/integration/ExternalBridgeClient.java
@@ -0,0 +1,119 @@
+package com.twine.colorcapture.integration;
+
+import com.google.protobuf.ByteString;
+import com.twine.colorcapture.core.IAction;
+import com.twine.colorcapture.core.IAction1;
+import com.twine.colorcapture.core.Task;
+import com.twine.colorcapture.web.messages.DetectionColor;
+import com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer;
+import com.twine.tango.pmr.common.MessageTypeOuterClass;
+import com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest;
+import com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse;
+import com.twine.tango.pmr.tcc.DetectionColorOuterClass;
+
+import java.io.InputStream;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.net.SocketException;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.Arrays;
+import java.util.UUID;
+
+public class ExternalBridgeClient
+{
+ private static final int EXTERNAL_BRIDGE_PORT = 1984;
+
+ public void sendColorProfile(ExternalBridgeMachine machine, DetectionColor detectionColor, IAction success, IAction1<Exception> error)
+ {
+ Thread t = new Thread(() ->
+ {
+ try
+ {
+ Socket tcpClient = new Socket();
+ tcpClient.setSoTimeout(10000);
+ tcpClient.connect(new InetSocketAddress(machine.getIpAddress(), EXTERNAL_BRIDGE_PORT), 2000);
+
+ //Create detection color
+ DetectionColorOuterClass.DetectionColor.Builder color = DetectionColorOuterClass.DetectionColor.newBuilder();
+ color.setR(detectionColor.getR());
+ color.setG(detectionColor.getG());
+ color.setB(detectionColor.getB());
+
+ //Create Message
+ ColorProfileRequest.Builder message = ColorProfileRequest.newBuilder();
+ message.setAppID("SnapMatch");
+ message.setDetectionColor(color);
+
+ //Create container
+ MessageContainer.Builder container = MessageContainer.newBuilder();
+ container.setToken(UUID.randomUUID().toString());
+ container.setType(MessageTypeOuterClass.MessageType.ColorProfileRequest);
+ container.setData(ByteString.copyFrom(message.build().toByteArray()));
+
+ //Create data
+ byte[] data = container.build().toByteArray();
+ byte[] size = ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN).putInt(data.length).array();
+ byte[] packet = concatByteArrays(size, data);
+
+ //Write data
+ tcpClient.getOutputStream().write(packet);
+
+ //Wait for response...
+ InputStream stream = tcpClient.getInputStream();
+
+ //Initializing expected message size.
+ size = new byte[4];
+
+ //Block reading from socket.
+ int read = stream.read(size, 0, size.length);
+ if (read == -1)
+ {
+ throw new SocketException("Error reading from TCP adapter.");
+ }
+
+ //Get expected size.
+ int expectedSize = ByteBuffer.wrap(size).order(ByteOrder.LITTLE_ENDIAN).getInt();
+
+ //Init response message size.
+ data = new byte[expectedSize];
+ read = 0;
+
+ //Read the whole message.
+ while (read < expectedSize)
+ {
+ read += stream.read(data, read, Math.min(stream.available(), expectedSize - read));
+ }
+
+ //Init response container and message.
+ MessageContainer responseContainer = MessageContainer.parseFrom(data);
+ ColorProfileResponse response = ColorProfileResponse.parseFrom(responseContainer.getData());
+
+ tcpClient.close();
+
+ if (response.getApproved())
+ {
+ //Approved !!!
+ success.invoke();
+ }
+ else
+ {
+ //Declined
+ error.invoke(new Exception("The machine owner has declined the request."));
+ }
+ }
+ catch (Exception ex)
+ {
+ error.invoke(ex);
+ }
+ });
+ t.start();
+ }
+
+ private byte[] concatByteArrays(byte[] first, byte[] second)
+ {
+ byte[] result = Arrays.copyOf(first, first.length + second.length);
+ System.arraycopy(second, 0, result, first.length, second.length);
+ return result;
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/integration/ExternalBridgeMachine.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/integration/ExternalBridgeMachine.java
new file mode 100644
index 000000000..e88b3bace
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/integration/ExternalBridgeMachine.java
@@ -0,0 +1,33 @@
+package com.twine.colorcapture.integration;
+
+public class ExternalBridgeMachine
+{
+ private String ipAddress;
+ private String serialNumber;
+
+ public String getIpAddress()
+ {
+ return ipAddress;
+ }
+
+ public void setIpAddress(String ipAddress)
+ {
+ this.ipAddress = ipAddress;
+ }
+
+ public String getSerialNumber()
+ {
+ return serialNumber;
+ }
+
+ public void setSerialNumber(String serialNumber)
+ {
+ this.serialNumber = serialNumber;
+ }
+
+ public ExternalBridgeMachine(String ipAddress, String serialNumber)
+ {
+ this.ipAddress = ipAddress;
+ this.serialNumber = serialNumber;
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/integration/ExternalBridgeScanner.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/integration/ExternalBridgeScanner.java
new file mode 100644
index 000000000..9c87987bd
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/integration/ExternalBridgeScanner.java
@@ -0,0 +1,131 @@
+package com.twine.colorcapture.integration;
+
+import android.os.StrictMode;
+
+import com.twine.colorcapture.core.Event;
+import com.twine.colorcapture.core.IEventHandler;
+import com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket;
+
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.List;
+
+import static br.com.zbra.androidlinq.Linq.stream;
+
+public class ExternalBridgeScanner
+{
+ private Thread udpDiscoveryThread;
+ private boolean isStarted;
+ private List<ExternalBridgeMachine> machines;
+ private Event<ExternalBridgeMachine> machineDiscoveredEvent;
+ private Event<ExternalBridgeMachine> machineDisconnectedEvent;
+ private static final int EXTERNAL_BRIDGE_DISCOVERY_PORT = 8888;
+
+ public ExternalBridgeScanner()
+ {
+ machines = new ArrayList<>();
+ machineDiscoveredEvent = new Event<>();
+ machineDisconnectedEvent = new Event<>();
+ }
+
+ public void start()
+ {
+ if (!isStarted)
+ {
+ machines.clear();
+ isStarted = true;
+ udpDiscoveryThread = new Thread(this::udpDiscoveryMethod);
+ udpDiscoveryThread.start();
+ }
+ }
+
+ public void stop()
+ {
+ if (isStarted)
+ {
+ isStarted = false;
+ }
+ }
+
+ public void addMachineDiscoveredEventHandler(IEventHandler<ExternalBridgeMachine> handler)
+ {
+ machineDiscoveredEvent.addListener(handler);
+ }
+
+ public void addMachineDisconnectedEventHandler(IEventHandler<ExternalBridgeMachine> handler)
+ {
+ machineDisconnectedEvent.addListener(handler);
+ }
+
+ private void udpDiscoveryMethod()
+ {
+ StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
+ StrictMode.setThreadPolicy(policy);
+
+ while (isStarted)
+ {
+ DatagramSocket client = null;
+
+ try
+ {
+ client = new DatagramSocket(8888);
+ client.setReuseAddress(true);
+ client.setBroadcast(true);
+
+ byte[] buffer = new byte[100];
+ DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
+
+ client.receive(packet);
+ byte[] message = new byte[packet.getLength()];
+ ByteBuffer wrapper = ByteBuffer.wrap(message);
+ wrapper.put(buffer, 0, message.length);
+
+ ExternalBridgeUdpDiscoveryPacket discoveryMessage = ExternalBridgeUdpDiscoveryPacket.parseFrom(message);
+
+ String address = packet.getAddress().toString().replaceAll("/", "");
+
+ try
+ {
+ Socket tcpClient = new Socket();
+ tcpClient.connect(new InetSocketAddress(address, EXTERNAL_BRIDGE_DISCOVERY_PORT), 2000);
+ tcpClient.close();
+ }
+ catch (Exception ex)
+ {
+ ExternalBridgeMachine disconnectedMachine = stream(machines).firstOrNull(x -> x.getSerialNumber().equals(discoveryMessage.getSerialNumber()) && x.getIpAddress().equals(address));
+
+ if (disconnectedMachine != null)
+ {
+ machines.remove(disconnectedMachine);
+ machineDisconnectedEvent.invoke(this, disconnectedMachine);
+ }
+
+ continue;
+ }
+
+ if (!stream(machines).any(x -> x.getSerialNumber().equals(discoveryMessage.getSerialNumber()) && x.getIpAddress().equals(address)))
+ {
+ ExternalBridgeMachine newMachine = new ExternalBridgeMachine(address, discoveryMessage.getSerialNumber());
+ machines.add(0, newMachine);
+ machineDiscoveredEvent.invoke(this, newMachine);
+ }
+
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ finally
+ {
+ if (client != null)
+ {
+ client.close();
+ }
+ }
+ }
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/logging/LogManager.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/logging/LogManager.java
new file mode 100644
index 000000000..a15e0752d
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/logging/LogManager.java
@@ -0,0 +1,35 @@
+package com.twine.colorcapture.logging;
+
+import android.util.Log;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+
+public class LogManager
+{
+ private static final String TAG = "TCC";
+
+ public static void log(String message)
+ {
+ Log.d(TAG, message);
+ }
+
+ public static Exception log(Exception ex)
+ {
+ Log.e(TAG, ex.toString());
+ return ex;
+ }
+
+ public static Exception log(Exception ex, String message)
+ {
+ Log.e(TAG, message, ex);
+ return ex;
+ }
+
+ public static void log(String message, Object obj)
+ {
+ Gson gson = new GsonBuilder().setPrettyPrinting().create();
+ String json = gson.toJson(obj);
+ Log.d(TAG, message + "\n" + json);
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/messages/ColorDetectedMessage.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/messages/ColorDetectedMessage.java
new file mode 100644
index 000000000..18316977e
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/messages/ColorDetectedMessage.java
@@ -0,0 +1,18 @@
+package com.twine.colorcapture.messages;
+
+import com.twine.colorcapture.web.messages.DetectionResponse;
+
+public class ColorDetectedMessage
+{
+ private DetectionResponse detectionResponse;
+
+ public DetectionResponse getDetectionResponse()
+ {
+ return detectionResponse;
+ }
+
+ public void setDetectionResponse(DetectionResponse detectionResponse)
+ {
+ this.detectionResponse = detectionResponse;
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/messages/MachineRegisteredMessage.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/messages/MachineRegisteredMessage.java
new file mode 100644
index 000000000..b2ba233f2
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/messages/MachineRegisteredMessage.java
@@ -0,0 +1,18 @@
+package com.twine.colorcapture.messages;
+
+import com.twine.colorcapture.web.messages.MachineRegistrationResponse;
+
+public class MachineRegisteredMessage
+{
+ private MachineRegistrationResponse machineRegistrationResponse;
+
+ public MachineRegistrationResponse getMachineRegistrationResponse()
+ {
+ return machineRegistrationResponse;
+ }
+
+ public void setMachineRegistrationResponse(MachineRegistrationResponse machineRegistrationResponse)
+ {
+ this.machineRegistrationResponse = machineRegistrationResponse;
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/models/ColorResult.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/models/ColorResult.java
new file mode 100644
index 000000000..a4c726ef6
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/models/ColorResult.java
@@ -0,0 +1,54 @@
+package com.twine.colorcapture.models;
+
+import android.databinding.BaseObservable;
+
+import com.twine.colorcapture.mvvm.ExtendedObject;
+import com.twine.colorcapture.web.messages.DetectionColor;
+import com.twine.colorcapture.web.messages.DetectionResponse;
+
+import org.joda.time.DateTime;
+
+public class ColorResult extends BaseObservable
+{
+ private DetectionResponse detectionResponse;
+ private String date;
+ private String name;
+
+ public DetectionResponse getDetectionResponse()
+ {
+ return detectionResponse;
+ }
+
+ public void setDetectionResponse(DetectionResponse detectionResponse)
+ {
+ this.detectionResponse = detectionResponse;
+ }
+
+ public String getDate()
+ {
+ return date;
+ }
+
+ public void setDate(String date)
+ {
+ this.date = date;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ notifyChange();
+ }
+
+ public ColorResult(DetectionResponse detectionResponse, String date, String name)
+ {
+ this.detectionResponse = detectionResponse;
+ this.date = date;
+ this.name = name;
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/models/ColorResultVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/models/ColorResultVM.java
new file mode 100644
index 000000000..02dd14b8b
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/models/ColorResultVM.java
@@ -0,0 +1,40 @@
+package com.twine.colorcapture.models;
+
+import com.twine.colorcapture.core.IAction1;
+import com.twine.colorcapture.mvvm.RelayCommand;
+import com.twine.colorcapture.mvvm.ViewModelBase;
+
+public class ColorResultVM extends ViewModelBase
+{
+ private ColorResult result;
+ public RelayCommand deleteCommand;
+ private IAction1<ColorResultVM> onDeleteListener;
+
+ public ColorResultVM()
+ {
+ deleteCommand = new RelayCommand(this::handleDeleteCommand);
+ }
+
+ private void handleDeleteCommand()
+ {
+ if (onDeleteListener != null)
+ {
+ onDeleteListener.invoke(this);
+ }
+ }
+
+ public ColorResult getResult()
+ {
+ return result;
+ }
+
+ public void setResult(ColorResult result)
+ {
+ this.result = result;
+ }
+
+ public void setOnDeleteListener(IAction1<ColorResultVM> listener)
+ {
+ onDeleteListener = listener;
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/ActivityBase.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/ActivityBase.java
index 386d9c525..7863cac80 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/ActivityBase.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/ActivityBase.java
@@ -1,16 +1,19 @@
package com.twine.colorcapture.mvvm;
+import android.app.Activity;
import android.content.Intent;
import android.databinding.DataBindingUtil;
import android.databinding.ViewDataBinding;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
import android.widget.EditText;
import android.widget.Toast;
import com.mobsandgeeks.saripaar.ValidationError;
import com.mobsandgeeks.saripaar.Validator;
+import com.twine.colorcapture.R;
import java.lang.reflect.Method;
import java.util.List;
@@ -26,7 +29,7 @@ import io.reactivex.functions.Consumer;
* @param <BindingView> the type parameter
* @param <VM> the type parameter
*/
-public abstract class ActivityBase<BindingView extends ViewDataBinding, VM extends ViewModelBase> extends AppCompatActivity implements IView, Validator.ValidationListener {
+public abstract class ActivityBase<BindingView extends ViewDataBinding, VM extends ViewModelBase> extends Activity implements IView, Validator.ValidationListener {
/**
* The constant ACTIVITY_CALLBACK_INTENT.
@@ -48,7 +51,14 @@ public abstract class ActivityBase<BindingView extends ViewDataBinding, VM exten
public BindingView binding;
@Override
- protected void onCreate(Bundle savedInstanceState) {
+ protected void onCreate(Bundle savedInstanceState)
+ {
+ Window window = getWindow();
+ window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+ window.setStatusBarColor(getResources().getColor(R.color.colorPrimaryBackground));
+
+ overridePendingTransition(R.anim.zoom_in,R.anim.zoom_out);
+
super.onCreate(savedInstanceState);
inject();
@@ -58,8 +68,6 @@ public abstract class ActivityBase<BindingView extends ViewDataBinding, VM exten
Method method = binding.getClass().getDeclaredMethod("setVm", vm.getClass());
method.invoke(binding, vm);
- attachView();
-
ButterKnife.bind(this, binding.getRoot());
validator = new Validator(this);
@@ -69,11 +77,16 @@ public abstract class ActivityBase<BindingView extends ViewDataBinding, VM exten
if (key != null && !key.isEmpty()) {
ActivityCallbackService.getInstance().runAndRemove(key);
}
+
+ onCreating(savedInstanceState);
+ attachView();
} catch (Exception e) {
e.printStackTrace();
}
}
+
+ protected abstract void onCreating(Bundle savedInstanceState);
@SuppressWarnings("unchecked")
@Override
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/BindingAdapters.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/BindingAdapters.java
new file mode 100644
index 000000000..8be2b5b9d
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/BindingAdapters.java
@@ -0,0 +1,32 @@
+package com.twine.colorcapture.mvvm;
+
+import android.databinding.BindingAdapter;
+import android.databinding.BindingConversion;
+import android.databinding.BindingMethod;
+import android.databinding.BindingMethods;
+import android.databinding.InverseBindingAdapter;
+import android.databinding.InverseBindingListener;
+import android.databinding.InverseBindingMethod;
+import android.databinding.InverseBindingMethods;
+import android.util.Log;
+import android.widget.ListView;
+
+import com.twine.colorcapture.controls.ToggleImageButton;
+
+public class BindingAdapters
+{
+ /**
+ * Binds a {@link ListView} item click to a listener.
+ *
+ * @param view the view
+ * @param listener the listener
+ */
+ @BindingAdapter("android:onItemClick")
+ public static void listViewClickAdapter(ListView view, ListView.OnItemClickListener listener)
+ {
+ if (view != null && listener != null)
+ {
+ view.setOnItemClickListener(listener);
+ }
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/BindingConverters.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/BindingConverters.java
new file mode 100644
index 000000000..929d1ee0e
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/BindingConverters.java
@@ -0,0 +1,17 @@
+package com.twine.colorcapture.mvvm;
+
+import android.databinding.BindingConversion;
+import android.databinding.InverseBindingMethod;
+
+public class BindingConverters
+{
+// @BindingConversion
+// public static boolean toInt(Boolean value) {
+// return value;
+// }
+//
+// @InverseBindingMethod()
+// public static int toObject(int number) {
+// return number;
+// }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DependencyProperty.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DependencyProperty.java
index 6856c071d..930e16dec 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DependencyProperty.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DependencyProperty.java
@@ -5,6 +5,7 @@ import android.databinding.ObservableField;
public class DependencyProperty <T> extends ObservableField<T>
{
private boolean blockNotify;
+ private boolean blockCallback;
/**
* The interface On property changed callback.
@@ -76,6 +77,14 @@ public class DependencyProperty <T> extends ObservableField<T>
{
blockNotify = true;
set(value);
+ blockNotify = false;
+ }
+
+ public void setNoCallback(T value)
+ {
+ blockCallback = true;
+ set(value);
+ blockCallback = false;
}
@Override
@@ -85,8 +94,6 @@ public class DependencyProperty <T> extends ObservableField<T>
{
super.notifyChange();
}
-
- blockNotify = false;
}
private void init()
@@ -98,7 +105,7 @@ public class DependencyProperty <T> extends ObservableField<T>
@Override
public void onPropertyChanged(android.databinding.Observable observable, int i)
{
- if (that.callback != null)
+ if (that.callback != null && !that.blockCallback)
{
that.callback.onPropertyChanged(that, that.get());
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DialogBase.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DialogBase.java
new file mode 100644
index 000000000..e132d1b56
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DialogBase.java
@@ -0,0 +1,163 @@
+package com.twine.colorcapture.mvvm;
+
+import android.animation.ValueAnimator;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.content.DialogInterface;
+import android.databinding.DataBindingUtil;
+import android.databinding.ViewDataBinding;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
+
+import com.twine.colorcapture.R;
+import com.twine.colorcapture.core.AnimationsHelper;
+import com.twine.colorcapture.core.CountUpTimer;
+import com.twine.colorcapture.core.IAction1;
+
+import java.lang.reflect.Method;
+
+import javax.inject.Inject;
+
+import butterknife.ButterKnife;
+
+public abstract class DialogBase<BindingView extends ViewDataBinding, VM extends DialogViewModelBase> extends DialogFragment
+{
+ private boolean isUserDismiss;
+ private IAction1<VM> onDismissListener;
+ private View rootView;
+ private boolean dismissed;
+
+
+ /**
+ * The Vm.
+ */
+ @Inject
+ VM vm;
+
+
+ /**
+ * The Binding.
+ */
+ BindingView binding;
+
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setStyle(DialogFragment.STYLE_NO_FRAME, R.style.AppTheme);
+ }
+
+ @Nullable
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
+ {
+
+ Window window = getDialog().getWindow();
+ window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+ window.setStatusBarColor(getResources().getColor(R.color.colorPrimaryBackground));
+
+ inject();
+
+ binding = DataBindingUtil.inflate(LayoutInflater.from(getActivity()), getLayoutId(), null, false);
+
+ rootView = binding.getRoot();
+ //rootView.setAlpha(0);
+
+ Method method = null;
+ try
+ {
+ method = binding.getClass().getDeclaredMethod("setVm", vm.getClass());
+ method.invoke(binding, vm);
+
+ vm.setCloseAction(() ->
+ {
+ isUserDismiss = true;
+ dismiss();
+
+ });
+
+ ButterKnife.bind(this, binding.getRoot());
+
+ return binding.getRoot();
+ }
+ catch (Exception ex)
+ {
+ ex.printStackTrace();
+ return null;
+ }
+ }
+
+ @Override
+ public void onDismiss(DialogInterface dialog)
+ {
+ super.onDismiss(dialog);
+
+ if (!isUserDismiss)
+ {
+ vm.notifyBackpressed();
+ }
+
+ isUserDismiss = false;
+
+ if (onDismissListener != null)
+ {
+ onDismissListener.invoke(vm);
+ }
+
+ dismissed = true;
+ }
+
+ @Override
+ public void onResume()
+ {
+ super.onResume();
+
+ if (dismissed)
+ {
+ dismiss();
+ }
+ }
+
+ @Override
+ public void onStart()
+ {
+ super.onStart();
+ getDialog().getWindow().setBackgroundDrawableResource(android.R.color.transparent);
+
+ View group = this.getView();
+
+ group.post(() ->
+ {
+ ValueAnimator animator = ValueAnimator.ofFloat(0, 1);
+ animator.setDuration(300);
+ animator.addUpdateListener((x) ->
+ {
+ group.setAlpha((Float) x.getAnimatedValue());
+ });
+ animator.start();
+ });
+ }
+
+ public abstract int getLayoutId();
+
+ public abstract void inject();
+
+ public VM getVM()
+ {
+ return vm;
+ }
+
+ public void setOnDismissListener(IAction1<VM> onDismissListener)
+ {
+ this.onDismissListener = onDismissListener;
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DialogViewModelBase.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DialogViewModelBase.java
new file mode 100644
index 000000000..99ef24549
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DialogViewModelBase.java
@@ -0,0 +1,36 @@
+package com.twine.colorcapture.mvvm;
+
+import com.twine.colorcapture.core.IAction;
+
+import java.io.IOException;
+
+public abstract class DialogViewModelBase extends ViewModelBase
+{
+ private IAction closeAction;
+
+ public void close()
+ {
+ try
+ {
+ closeAction.invoke();
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ public void setCloseAction(IAction action)
+ {
+ closeAction = action;
+ }
+
+ public void notifyBackpressed()
+ {
+ onBackPressed();
+ }
+
+ protected void onBackPressed()
+ {
+
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/ExtendedObject.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/ExtendedObject.java
index 8ee60bec7..184c4fb6d 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/ExtendedObject.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/ExtendedObject.java
@@ -1,6 +1,8 @@
package com.twine.colorcapture.mvvm;
-public class ExtendedObject
+import android.databinding.BaseObservable;
+
+public class ExtendedObject extends BaseObservable
{
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/FragmentBase.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/FragmentBase.java
index d9cb58725..12520c28e 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/FragmentBase.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/FragmentBase.java
@@ -1,5 +1,6 @@
package com.twine.colorcapture.mvvm;
+import android.animation.Animator;
import android.app.Fragment;
import android.databinding.DataBindingUtil;
import android.databinding.ViewDataBinding;
@@ -8,10 +9,14 @@ import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.animation.Animation;
+import android.view.animation.Animation.AnimationListener;
+import android.view.animation.AnimationUtils;
import android.widget.EditText;
import android.widget.Toast;
import com.mobsandgeeks.saripaar.ValidationError;
import com.mobsandgeeks.saripaar.Validator;
+import com.twine.colorcapture.R;
import com.twine.colorcapture.core.IAction1;
import java.lang.reflect.Method;
@@ -162,4 +167,9 @@ public abstract class FragmentBase<BindingView extends ViewDataBinding, VM exten
{
}
+
+ public VM getVM()
+ {
+ return vm;
+ }
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/MessageDialogViewModelBase.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/MessageDialogViewModelBase.java
new file mode 100644
index 000000000..f2026ecc6
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/MessageDialogViewModelBase.java
@@ -0,0 +1,25 @@
+package com.twine.colorcapture.mvvm;
+
+public class MessageDialogViewModelBase extends DialogViewModelBase
+{
+ public DependencyProperty<String> title;
+ public DependencyProperty<String> message;
+ public RelayCommand closeCommand;
+
+ public MessageDialogViewModelBase()
+ {
+ title = new DependencyProperty<>("");
+ message = new DependencyProperty<>("");
+ closeCommand = new RelayCommand(this::close);
+ }
+
+ public void setTitle(String title)
+ {
+ this.title.set(title);
+ }
+
+ public void setMessage(String message)
+ {
+ this.message.set(message);
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/RelayCommand.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/RelayCommand.java
index 9574c864f..f46b98c17 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/RelayCommand.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/RelayCommand.java
@@ -1,6 +1,7 @@
package com.twine.colorcapture.mvvm;
import android.databinding.BindingAdapter;
+import android.graphics.Color;
import android.view.View;
public class RelayCommand
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/ViewModelBase.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/ViewModelBase.java
index 7edead907..a9f0550c0 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/ViewModelBase.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/ViewModelBase.java
@@ -1,7 +1,11 @@
package com.twine.colorcapture.mvvm;
+import android.os.Handler;
+import android.os.Looper;
import android.util.Log;
+import com.twine.colorcapture.core.IAction;
+
import java.lang.reflect.Field;
/**
@@ -54,4 +58,41 @@ public abstract class ViewModelBase<T extends IView> extends ExtendedObject
}
}
}
+
+ protected void invokeUI(IAction action)
+ {
+ Handler handler = new Handler(Looper.getMainLooper());
+ handler.post(new Runnable() {
+ public void run() {
+ try
+ {
+ action.invoke();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+
+ protected void onNavigatedTo()
+ {
+
+ }
+
+ protected void onNavigatedFrom()
+ {
+
+ }
+
+ public void notifyNavigatedTo()
+ {
+ onNavigatedTo();
+ }
+
+ public void notifyNavigatedFrom()
+ {
+ onNavigatedFrom();
+ }
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/AndroidNavigationProvider.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/AndroidNavigationProvider.java
index 68a6a3068..07bb16ecc 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/AndroidNavigationProvider.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/AndroidNavigationProvider.java
@@ -1,125 +1,255 @@
package com.twine.colorcapture.navigation;
+import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
+import android.util.Log;
import com.twine.colorcapture.R;
import com.twine.colorcapture.mvvm.ExtendedObject;
import com.twine.colorcapture.mvvm.FragmentBase;
import com.twine.colorcapture.core.IAction1;
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Stack;
+
+import javax.inject.Inject;
+
/**
* Represents an android navigation provider.
*/
public class AndroidNavigationProvider extends ExtendedObject implements INavigationProvider
{
- private AppCompatActivity activity;
+ private Activity activity;
private FragmentBase currentFragment;
+ private String currentFragmentName;
private int fragment_container;
- private String basePackagePath;
+ private String basePackagePath = "com.twine.colorcapture.views";
private boolean isFirst = true;
-
+ private Context context;
+ private List<FragmentNavigatedListener> fragmentNavigatedListeners;
+ private Stack<NavigationFragment> history;
+
+ @Inject
+ public AndroidNavigationProvider(Context context)
+ {
+ this.context = context;
+ fragmentNavigatedListeners = new ArrayList<>();
+ history = new Stack<>();
+ }
+
@Override
- public void registerNavigationActivity(AppCompatActivity activity, int fragmentContainerId, String basePackagePath)
+ public void registerNavigationActivity(Activity activity, int fragmentContainerId)
{
this.activity = activity;
this.fragment_container = fragmentContainerId;
- this.basePackagePath = basePackagePath;
}
-
-
+
+ @Override
+ public void navigateTo(NavigationFragment fragmentValue, boolean pushCurrentToHistory, boolean pushNextToHistory)
+ {
+ navigateTo(fragmentValue.name(), pushCurrentToHistory, pushNextToHistory);
+ }
+
+ @Override
+ public <T> void navigateWithObjectTo(NavigationFragment fragmentValue, boolean pushCurrentToHistory, boolean pushNextToHistory, T obj)
+ {
+ navigateToInternal(fragmentValue.name(), null, pushCurrentToHistory, pushNextToHistory, obj);
+ }
+
+ @Override
+ public void navigateTo(NavigationFragment fragmentValue, IAction1<FragmentBase> onCreateListener, boolean pushCurrentToHistory, boolean pushNextToHistory)
+ {
+ navigateTo(fragmentValue.name(), onCreateListener, pushCurrentToHistory, pushNextToHistory);
+ }
+
+ @Override
+ public void navigateTo(String fragmentName, boolean pushCurrentToHistory, boolean pushNextToHistory)
+ {
+ navigateTo(fragmentName, null, pushCurrentToHistory, pushNextToHistory);
+ }
+
+ @Override
+ public void navigateBack()
+ {
+ if (canNavigateBack())
+ {
+ navigateTo(history.pop(), false, false);
+ }
+ }
+
+ @Override
+ public void notifyApplicationResume()
+ {
+ if (currentFragment != null)
+ {
+ currentFragment.getVM().notifyNavigatedTo();
+ }
+ }
+
@Override
- public void navigateTo(Enum fragmentValue, boolean addToHistory)
+ public NavigationFragment getCurrentFragment()
{
- navigateTo(fragmentValue.name(),addToHistory);
+ return NavigationFragment.valueOf(currentFragmentName);
}
-
+
@Override
- public void navigateTo(Enum fragmentValue, IAction1<FragmentBase> onCreateListener, boolean addToHistory)
+ public boolean canNavigateBack()
{
- navigateTo(fragmentValue.name(), onCreateListener,addToHistory);
+ return history.size() > 0 && history.peek() != NavigationFragment.valueOf(currentFragmentName);
}
-
+
@Override
- public void navigateTo(String fragmentName, boolean addToHistory)
+ public void reset()
{
- navigateTo(fragmentName, null,addToHistory);
+ history.clear();
+ currentFragment = null;
+ currentFragmentName = null;
+ isFirst = true;
}
-
+
@Override
- public void navigateTo(String fragmentName, IAction1<FragmentBase> onCreateListener, boolean addToHistory)
+ public void navigateTo(String fragmentName, IAction1<FragmentBase> onCreateListener, boolean pushCurrentToHistory, boolean pushNextToHistory)
+ {
+ navigateToInternal(fragmentName, onCreateListener, pushCurrentToHistory, pushNextToHistory, null);
+ }
+
+ public void navigateToInternal(String fragmentName, IAction1<FragmentBase> onCreateListener, boolean pushCurrentToHistory, boolean pushNextToHistory, Object navigationObject)
{
- if (activity == null)
+ if (activity == null || fragmentName == currentFragmentName)
{
//logManager.log(new NullPointerException("No navigation activity registered."));
return;
}
-
+
+ boolean reverseAnimation = false;
+
+ boolean preventCurrentHistory = false;
+ boolean preventNextHistory = false;
+
+ try
+ {
+ if (currentFragmentName != null)
+ {
+ preventCurrentHistory = NavigationFragment.class.getField(currentFragmentName).getAnnotations().length > 0;
+ }
+ preventNextHistory = NavigationFragment.class.getField(fragmentName).getAnnotations().length > 0;
+ } catch (NoSuchFieldException e)
+ {
+ e.printStackTrace();
+ }
+
+ if (pushCurrentToHistory && currentFragmentName != null && !preventCurrentHistory)
+ {
+ if (!history.contains(NavigationFragment.valueOf(currentFragmentName)))
+ {
+ history.push(NavigationFragment.valueOf(currentFragmentName));
+ }
+ }
+
+ if (pushNextToHistory && !preventNextHistory)
+ {
+ if (!history.contains(NavigationFragment.valueOf(fragmentName)))
+ {
+ history.push(NavigationFragment.valueOf(fragmentName));
+ }
+ }
+
+ if (currentFragmentName != null)
+ {
+ List<NavigationFragment> values = Arrays.asList(NavigationFragment.values());
+
+ int newIndex = values.indexOf(NavigationFragment.valueOf(fragmentName));
+ int oldIndex = values.indexOf(NavigationFragment.valueOf(currentFragmentName));
+
+ if (oldIndex > newIndex)
+ {
+ reverseAnimation = true;
+ }
+ }
+
+ String originalName = fragmentName;
fragmentName = basePackagePath + "." + fragmentName.toLowerCase() + "." + fragmentName + "Fragment";
-
+
FragmentManager fragmentManager = activity.getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
FragmentBase fragment;
-
+
fragment = (FragmentBase) fragmentManager.findFragmentByTag(fragmentName);
-
+
if (fragment == null)
{
try
{
fragment = (FragmentBase) Class.forName(fragmentName).newInstance();
- }
- catch (Exception ex)
+ } catch (Exception ex)
{
//logManager.log(ex,"Fragment " + fragmentName + " not found.");
return;
}
}
-// Slide enterSlide = new Slide();
-// enterSlide.setSlideEdge(Gravity.END);
-// enterSlide.setDuration(300);
-//
-// Fade enterFade = new Fade(Fade.IN);
-// enterFade.setDuration(300);
-//
-// TransitionSet enterGroup = new TransitionSet();
-// enterGroup.addTransition(enterSlide);
-// enterGroup.addTransition(enterFade);
-//
-// Slide exitSlide = new Slide();
-// Fade exitFade = new Fade(Fade.OUT);
-//
-// exitSlide.setSlideEdge(Gravity.START);
-// exitSlide.setDuration(300);
-// exitFade.setDuration(300);
-//
-// TransitionSet exitGroup = new TransitionSet();
-// exitGroup.addTransition(exitSlide);
-// exitGroup.addTransition(exitFade);
-//
-// fragment.setEnterTransition(enterGroup);
-// fragment.setExitTransition(exitGroup);
-
fragment.setOnCreateListener(onCreateListener);
-
+
if (!isFirst)
{
- fragmentTransaction.setCustomAnimations(R.animator.slide_in_left, R.animator.slide_out_left, R.animator.slide_out_right, R.animator.slide_in_right);
+ if (!reverseAnimation)
+ {
+ fragmentTransaction.setCustomAnimations(R.animator.slide_out_right, R.animator.slide_in_right, R.animator.slide_in_left, R.animator.slide_out_left);
+ }
+ else
+ {
+ fragmentTransaction.setCustomAnimations(R.animator.slide_in_left, R.animator.slide_out_left, R.animator.slide_out_right, R.animator.slide_in_right);
+ }
}
-
+
isFirst = false;
-
+
fragmentTransaction.replace(fragment_container, fragment);
-
- if (addToHistory)
- {
- fragmentTransaction.addToBackStack(fragmentName);
- }
-
+
+// if (addToHistory)
+// {
+// fragmentTransaction.addToBackStack(fragmentName);
+// }
+
fragmentTransaction.commit();
+ final FragmentBase fragmentTo = fragment;
+ final FragmentBase fragmentFrom = currentFragment;
+
+ fragment.setOnCreateListener((f) ->
+ {
+ activity.runOnUiThread(() ->
+ {
+ if (fragmentTo.getVM() instanceof INavigationObjectReceiver && navigationObject != null)
+ {
+ ((INavigationObjectReceiver)fragmentTo.getVM()).onNavigationObjectReceived(navigationObject);
+ }
+
+ new Handler().postDelayed(() ->
+ {
+
+ fragmentTo.getVM().notifyNavigatedTo();
+
+ if (fragmentFrom != null && !fragmentTo.getClass().getSimpleName().equals(fragmentFrom.getClass().getSimpleName()))
+ {
+ fragmentFrom.getVM().notifyNavigatedFrom();
+ }
+
+ }, 300);
+ });
+ });
+
+
+
+
// try
// {
// //noinspection ConstantConditions
@@ -128,7 +258,45 @@ public class AndroidNavigationProvider extends ExtendedObject implements INaviga
// {
// logManager.log(ex);
// }
-
+
currentFragment = fragment;
+
+ currentFragmentName = originalName;
+
+ NavigationFragment f = NavigationFragment.valueOf(originalName);
+ for (FragmentNavigatedListener listener : fragmentNavigatedListeners)
+ {
+ listener.onNavigated(f);
+ }
+ }
+
+ @Override
+ public void navigateTo(NavigationActivity activityValue, boolean addToHistory)
+ {
+ String name = activityValue.name();
+ String activityName = basePackagePath + "." + name.toLowerCase() + "." + name + "Activity";
+ try
+ {
+ Class cls = Class.forName(activityName);
+ Intent intent = new Intent(context, cls);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+ if (!addToHistory)
+ {
+ intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY);
+ }
+
+ context.startActivity(intent);
+
+ } catch (ClassNotFoundException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void addFragmentNavigationListener(FragmentNavigatedListener listener)
+ {
+ fragmentNavigatedListeners.add(listener);
}
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/INavigationObjectReceiver.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/INavigationObjectReceiver.java
new file mode 100644
index 000000000..1dad1d735
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/INavigationObjectReceiver.java
@@ -0,0 +1,6 @@
+package com.twine.colorcapture.navigation;
+
+public interface INavigationObjectReceiver<T>
+{
+ void onNavigationObjectReceived(T obj);
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/INavigationProvider.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/INavigationProvider.java
index a6567d576..f5453bd89 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/INavigationProvider.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/INavigationProvider.java
@@ -1,6 +1,6 @@
package com.twine.colorcapture.navigation;
-import android.support.v7.app.AppCompatActivity;
+import android.app.Activity;
import com.twine.colorcapture.mvvm.FragmentBase;
import com.twine.colorcapture.core.IAction1;
@@ -10,42 +10,81 @@ import com.twine.colorcapture.core.IAction1;
*/
public interface INavigationProvider
{
+ interface FragmentNavigatedListener
+ {
+ void onNavigated(NavigationFragment fragment);
+ }
+
/**
* Register navigation activity.
*
* @param activity the activity
* @param fragmentContainerId the fragment container id
- * @param basePackagePath the base package path
*/
- void registerNavigationActivity(AppCompatActivity activity, int fragmentContainerId, String basePackagePath);
-
+ void registerNavigationActivity(Activity activity, int fragmentContainerId);
+
/**
* Navigate to the specified fragment name.
*
* @param fragmentName the fragment name
*/
- void navigateTo(String fragmentName, boolean addToHistory);
-
+ void navigateTo(String fragmentName, boolean pushCurrentToHistory, boolean pushNextToHistory);
+
+ /**
+ * Navigates to the previous fragment.
+ */
+ void navigateBack();
+
+ /**
+ * Sends navigation notification to the current fragment.
+ */
+ void notifyApplicationResume();
+
+ /**
+ * Gets the current navigation fragment.
+ *
+ * @return
+ */
+ NavigationFragment getCurrentFragment();
+
+ /**
+ * Gets a value determining whether there is any fragment to navigate back to in the history.
+ *
+ * @return
+ */
+ boolean canNavigateBack();
+
+ /**
+ * Resets the navigation manager. (call on navigation activity destroyed)
+ */
+ void reset();
+
/**
* Navigate to to the specified fragment name.
*
* @param fragmentName the fragment name
* @param onCreateListener the on create listener
*/
- void navigateTo(String fragmentName, IAction1<FragmentBase> onCreateListener, boolean addToHistory);
-
+ void navigateTo(String fragmentName, IAction1<FragmentBase> onCreateListener, boolean pushCurrentToHistory, boolean pushNextToHistory);
+
/**
* Navigate to to the specified enum value fragment name.
*
* @param fragmentValue the fragment value
*/
- void navigateTo(Enum fragmentValue, boolean addToHistory);
-
+ void navigateTo(NavigationFragment fragmentValue, boolean pushCurrentToHistory, boolean pushNextToHistory);
+
+ <T> void navigateWithObjectTo(NavigationFragment fragmentValue, boolean pushCurrentToHistory, boolean pushNextToHistory, T obj);
+
/**
* Navigate to to the specified enum value fragment name.
*
* @param fragmentValue the fragment value
* @param onCreateListener the on create listener
*/
- void navigateTo(Enum fragmentValue, IAction1<FragmentBase> onCreateListener, boolean addToHistory);
+ void navigateTo(NavigationFragment fragmentValue, IAction1<FragmentBase> onCreateListener, boolean pushCurrentToHistory, boolean pushNextToHistory);
+
+ void navigateTo(NavigationActivity activityValue, boolean addToHistory);
+
+ void addFragmentNavigationListener(FragmentNavigatedListener listener);
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/NavigationActivity.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/NavigationActivity.java
new file mode 100644
index 000000000..760e0f8b6
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/NavigationActivity.java
@@ -0,0 +1,8 @@
+package com.twine.colorcapture.navigation;
+
+public enum NavigationActivity
+{
+ Loading,
+ Main,
+ SendToEmail,
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/NavigationFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/NavigationFragment.java
new file mode 100644
index 000000000..0731287e8
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/NavigationFragment.java
@@ -0,0 +1,15 @@
+package com.twine.colorcapture.navigation;
+
+public enum NavigationFragment
+{
+ MyColors,
+ Capture,
+ Result,
+ @PreventHistory
+ Register,
+ @PreventHistory
+ SendToMachine,
+ @PreventHistory
+ Rename
+
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/PreventHistory.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/PreventHistory.java
new file mode 100644
index 000000000..331d13597
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/PreventHistory.java
@@ -0,0 +1,13 @@
+package com.twine.colorcapture.navigation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD})
+public @interface PreventHistory
+{
+
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/NavigationView.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/TabState.java
index d336d1930..2682ded78 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/NavigationView.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/TabState.java
@@ -1,8 +1,8 @@
package com.twine.colorcapture.navigation;
-public enum NavigationView
+public enum TabState
{
- Loading,
- Home,
Capture,
+ MyColors,
+ More
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/TabStateManager.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/TabStateManager.java
new file mode 100644
index 000000000..89156af17
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/navigation/TabStateManager.java
@@ -0,0 +1,25 @@
+package com.twine.colorcapture.navigation;
+
+import com.twine.colorcapture.mvvm.DependencyProperty;
+
+public class TabStateManager
+{
+ private static TabStateManager instance;
+
+ public DependencyProperty<TabState> state;
+
+ public static TabStateManager getInstance()
+ {
+ if (instance == null)
+ {
+ instance = new TabStateManager();
+ }
+
+ return instance;
+ }
+
+ public TabStateManager()
+ {
+ state = new DependencyProperty<>(TabState.Capture);
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/notification/AndroidNotificationProvider.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/notification/AndroidNotificationProvider.java
index d07502af4..528bea2e2 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/notification/AndroidNotificationProvider.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/notification/AndroidNotificationProvider.java
@@ -1,10 +1,25 @@
package com.twine.colorcapture.notification;
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.FragmentTransaction;
import android.content.Context;
import android.support.v7.app.AlertDialog;
import android.widget.Toast;
import com.twine.colorcapture.core.IAction;
+import com.twine.colorcapture.core.IAction1;
+import com.twine.colorcapture.dialogs.confirm.ConfirmDialog;
+import com.twine.colorcapture.dialogs.confirm.ConfirmDialogVM;
+import com.twine.colorcapture.dialogs.error.ErrorDialog;
+import com.twine.colorcapture.dialogs.error.ErrorDialogVM;
+import com.twine.colorcapture.dialogs.progress.ProgressDialog;
+import com.twine.colorcapture.dialogs.progress.ProgressDialogVM;
+import com.twine.colorcapture.dialogs.success.SuccessDialog;
+import com.twine.colorcapture.dialogs.success.SuccessDialogVM;
+import com.twine.colorcapture.dialogs.welcome.WelcomeDialog;
+import com.twine.colorcapture.mvvm.DialogBase;
+import com.twine.colorcapture.mvvm.DialogViewModelBase;
import com.twine.colorcapture.mvvm.IView;
@@ -15,6 +30,8 @@ public class AndroidNotificationProvider implements INotificationProvider
{
private Context context;
+ private Activity activity;
+ private DialogBase lastDialog;
/**
* Instantiates a new Android notification provider.
@@ -25,33 +42,153 @@ public class AndroidNotificationProvider implements INotificationProvider
{
this.context = context;
}
-
+
+ @Override
+ public void registerMainActivity(Activity activity)
+ {
+ this.activity = activity;
+ }
+
@Override
public void toast(String message)
{
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
-
+
+ @SuppressWarnings("unchecked")
@Override
- public void showMessage(IView view, String message)
+ public <VM extends DialogViewModelBase> void showDialog(DialogBase dialog, IAction1<VM> onDismiss)
{
- showMessage(view, message, null);
+ closeDialog();
+ lastDialog = dialog;
+ FragmentTransaction ft = activity.getFragmentManager().beginTransaction();
+ Fragment prev = activity.getFragmentManager().findFragmentByTag("dialog");
+ if (prev != null) {
+ ft.remove(prev);
+ }
+ ft.addToBackStack(null);
+
+ dialog.setOnDismissListener(onDismiss);
+
+ //show the dialog.
+ dialog.show(ft, "dialog");
}
-
+
+ @Override
+ public ProgressDialogVM showProgress(String title, String message, IAction1<ProgressDialogVM> onDismiss)
+ {
+ closeDialog();
+ ProgressDialog dialog = new ProgressDialog();
+ dialog.inject();
+
+ lastDialog = dialog;
+ FragmentTransaction ft = activity.getFragmentManager().beginTransaction();
+ Fragment prev = activity.getFragmentManager().findFragmentByTag("dialog");
+ if (prev != null) {
+ ft.remove(prev);
+ }
+ ft.addToBackStack(null);
+
+ dialog.setOnDismissListener(onDismiss);
+
+ //show the dialog.
+ dialog.show(ft, "dialog");
+
+ ProgressDialogVM vm = dialog.getVM();
+
+ vm.setTitle(title);
+ vm.setMessage(message);
+
+ return vm;
+ }
+
+ @Override
+ public void showSuccess(String title, String message, IAction1<SuccessDialogVM> onDismiss)
+ {
+ closeDialog();
+ SuccessDialog dialog = new SuccessDialog();
+ dialog.inject();
+
+ lastDialog = dialog;
+ FragmentTransaction ft = activity.getFragmentManager().beginTransaction();
+ Fragment prev = activity.getFragmentManager().findFragmentByTag("dialog");
+ if (prev != null) {
+ ft.remove(prev);
+ }
+ ft.addToBackStack(null);
+
+ dialog.setOnDismissListener(onDismiss);
+
+ //show the dialog.
+ dialog.show(ft, "dialog");
+
+ SuccessDialogVM vm = dialog.getVM();
+
+ vm.setTitle(title);
+ vm.setMessage(message);
+ }
+
+ @Override
+ public void showError(String title, String message, IAction1<ErrorDialogVM> onDismiss)
+ {
+ closeDialog();
+ ErrorDialog dialog = new ErrorDialog();
+ dialog.inject();
+
+ lastDialog = dialog;
+ FragmentTransaction ft = activity.getFragmentManager().beginTransaction();
+ Fragment prev = activity.getFragmentManager().findFragmentByTag("dialog");
+ if (prev != null) {
+ ft.remove(prev);
+ }
+ ft.addToBackStack(null);
+
+ dialog.setOnDismissListener(onDismiss);
+
+ //show the dialog.
+ dialog.show(ft, "dialog");
+
+ ErrorDialogVM vm = dialog.getVM();
+
+ vm.setTitle(title);
+ vm.setMessage(message);
+ }
+
+ @Override
+ public void showConfirm(String title, String message,String confirmText, IAction1<ConfirmDialogVM> onDismiss)
+ {
+ closeDialog();
+ ConfirmDialog dialog = new ConfirmDialog();
+ dialog.inject();
+
+ lastDialog = dialog;
+ FragmentTransaction ft = activity.getFragmentManager().beginTransaction();
+ Fragment prev = activity.getFragmentManager().findFragmentByTag("dialog");
+ if (prev != null) {
+ ft.remove(prev);
+ }
+ ft.addToBackStack(null);
+
+ dialog.setOnDismissListener(onDismiss);
+
+ //show the dialog.
+ dialog.show(ft, "dialog");
+
+ ConfirmDialogVM vm = dialog.getVM();
+
+ vm.setConfirmed(false);
+ vm.setTitle(title);
+ vm.setMessage(message);
+ vm.setConfirmText(confirmText);
+ }
+
@Override
- public void showMessage(IView view, String message, IAction action)
+ public void closeDialog()
{
- AlertDialog.Builder builder = new AlertDialog.Builder((Context) view);
- builder.setMessage("Look at this dialog!")
- .setCancelable(false)
- .setTitle("Tango")
- .setMessage(message)
- .setIcon(android.R.drawable.ic_dialog_info)
- .setPositiveButton("OK", (dialog, id) ->
- {
- if (action != null) action.invoke();
- });
- AlertDialog alert = builder.create();
- alert.show();
+ if (lastDialog != null)
+ {
+ lastDialog.dismiss();
+ lastDialog = null;
+ }
}
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/notification/INotificationProvider.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/notification/INotificationProvider.java
index 8103fff38..121ce0919 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/notification/INotificationProvider.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/notification/INotificationProvider.java
@@ -1,6 +1,16 @@
package com.twine.colorcapture.notification;
+import android.app.Activity;
+
import com.twine.colorcapture.core.IAction;
+import com.twine.colorcapture.core.IAction1;
+import com.twine.colorcapture.dialogs.confirm.ConfirmDialogVM;
+import com.twine.colorcapture.dialogs.error.ErrorDialogVM;
+import com.twine.colorcapture.dialogs.progress.ProgressDialogVM;
+import com.twine.colorcapture.dialogs.success.SuccessDialog;
+import com.twine.colorcapture.dialogs.success.SuccessDialogVM;
+import com.twine.colorcapture.mvvm.DialogBase;
+import com.twine.colorcapture.mvvm.DialogViewModelBase;
import com.twine.colorcapture.mvvm.IView;
@@ -9,29 +19,60 @@ import com.twine.colorcapture.mvvm.IView;
*/
public interface INotificationProvider
{
-
+
+ void registerMainActivity(Activity activity);
+
/**
* Toast.
*
* @param message the message
*/
void toast(String message);
-
+
/**
- * Show message.
+ * Display the specified dialog.
*
- * @param view the view
- * @param message the message
+ * @param dialog
*/
- void showMessage(IView view, String message);
-
+ <VM extends DialogViewModelBase> void showDialog(DialogBase dialog, IAction1<VM> onDismiss);
+
/**
- * Show message.
+ * Displays a progress dialog...
*
- * @param view the view
- * @param message the message
- * @param action the action
+ * @param title
+ * @param message
+ */
+ ProgressDialogVM showProgress(String title, String message, IAction1<ProgressDialogVM> onDismiss);
+
+ /**
+ * Displays a success dialog.
+ *
+ * @param title
+ * @param message
+ * @param onDismiss
+ */
+ void showSuccess(String title, String message, IAction1<SuccessDialogVM> onDismiss);
+
+ /**
+ * Displays an error dialog.
+ *
+ * @param title
+ * @param message
+ * @param onDismiss
+ */
+ void showError(String title, String message, IAction1<ErrorDialogVM> onDismiss);
+
+ /**
+ * Displays a confirmation dialog.
+ *
+ * @param title
+ * @param message
+ * @param onDismiss
+ */
+ void showConfirm(String title, String message, String confirmText, IAction1<ConfirmDialogVM> onDismiss);
+
+ /**
+ * Closes the last dialog.
*/
- void showMessage(IView view, String message, IAction action);
-
+ void closeDialog();
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/opencv/ImageProcessor.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/opencv/ImageProcessor.java
index 02dde50e7..49f61c7a3 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/opencv/ImageProcessor.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/opencv/ImageProcessor.java
@@ -2,5 +2,14 @@ package com.twine.colorcapture.opencv;
public class ImageProcessor
{
- public native boolean ProcessImage(int width, int height, byte[] NV21FrameData, int[] pixels,int[] wpixels);
+ public native boolean ProcessImage(int frameWidth,
+ int frameHeight,
+ int sampleWidth,
+ int sampleHeight,
+ int histogramMethod,
+ double similarityTolerance,
+ boolean enableDoubleChecking,
+ byte[] frameData,
+ int[] frameOutPixels,
+ int[] sampleOutPixels);
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/settings/SettingsManager.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/settings/SettingsManager.java
new file mode 100644
index 000000000..b90f11a13
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/settings/SettingsManager.java
@@ -0,0 +1,96 @@
+package com.twine.colorcapture.settings;
+
+import android.content.SharedPreferences;
+
+import com.google.gson.Gson;
+import com.twine.colorcapture.logging.LogManager;
+import com.twine.colorcapture.models.ColorResult;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static android.content.Context.MODE_PRIVATE;
+import static com.twine.colorcapture.App.getContext;
+
+public class SettingsManager
+{
+ private static final String SETTINGS_FILE_NAME = "TCC_Settings";
+ private static SettingsManager instance;
+ private boolean isWelcomeScreenShown;
+ private List<ColorResult> results;
+
+ public boolean isWelcomeScreenShown()
+ {
+ return isWelcomeScreenShown;
+ }
+
+ public void setWelcomeScreenShown(boolean welcomeScreenShown)
+ {
+ isWelcomeScreenShown = welcomeScreenShown;
+ }
+
+ public List<ColorResult> getResults()
+ {
+ return results;
+ }
+
+ public static SettingsManager getInstance()
+ {
+ if (instance == null)
+ {
+ instance = load();
+ }
+
+ return instance;
+ }
+
+ public static void save()
+ {
+ try
+ {
+ LogManager.log("Saving settings...");
+ Gson gson = new Gson();
+ String value = gson.toJson(getInstance());
+ SharedPreferences.Editor editor = getContext().getSharedPreferences(SETTINGS_FILE_NAME, MODE_PRIVATE).edit();
+ editor.putString("settings", value);
+ editor.apply();
+
+ LogManager.log("Settings:", getInstance());
+ }
+ catch (Exception ex)
+ {
+ LogManager.log(ex, "Error saving settings.");
+ }
+ }
+
+ private static SettingsManager load()
+ {
+ SettingsManager result = new SettingsManager();
+
+ try
+ {
+ LogManager.log("Loading settings...");
+ SharedPreferences prefs = getContext().getSharedPreferences(SETTINGS_FILE_NAME, MODE_PRIVATE);
+ String value = prefs.getString("settings", null);
+
+ if (value != null)
+ {
+ Gson gson = new Gson();
+ result = gson.fromJson(value, SettingsManager.class);
+ }
+ }
+ catch (Exception ex)
+ {
+ LogManager.log(ex, "Error loading settings.");
+ }
+
+ LogManager.log("Settings:", result);
+
+ return result;
+ }
+
+ public SettingsManager()
+ {
+ results = new ArrayList<>();
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/utils/BitmapUtils.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/utils/BitmapUtils.java
new file mode 100644
index 000000000..7f53974b8
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/utils/BitmapUtils.java
@@ -0,0 +1,25 @@
+package com.twine.colorcapture.utils;
+
+import android.graphics.Bitmap;
+import android.util.Base64;
+
+import java.io.ByteArrayOutputStream;
+import java.nio.ByteBuffer;
+
+public class BitmapUtils
+{
+ public static byte[] getBitmapBytes(Bitmap bitmap)
+ {
+ ByteArrayOutputStream stream = new ByteArrayOutputStream();
+ bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
+ byte[] byteArray = stream.toByteArray();
+ return byteArray;
+ }
+
+ public static String getBitmapBase64String(Bitmap bitmap)
+ {
+ byte[] data = getBitmapBytes(bitmap);
+ String encoded = Base64.encodeToString(data, Base64.DEFAULT);
+ return encoded;
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/utils/ThreadingUtils.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/utils/ThreadingUtils.java
new file mode 100644
index 000000000..bbb0fecf4
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/utils/ThreadingUtils.java
@@ -0,0 +1,15 @@
+package com.twine.colorcapture.utils;
+
+public class ThreadingUtils
+{
+ public static void sleep(int millis)
+ {
+ try
+ {
+ Thread.sleep(millis);
+ } catch (InterruptedException e)
+ {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragment.java
index 4da196dda..fa8c1cde5 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragment.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragment.java
@@ -1,7 +1,9 @@
package com.twine.colorcapture.views.capture;
+import android.Manifest;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
+import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.ImageFormat;
import android.hardware.Camera;
@@ -10,6 +12,10 @@ import android.hardware.Camera.Size;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
+import android.support.annotation.NonNull;
+import android.support.v4.app.ActivityCompat;
+import android.support.v4.content.ContextCompat;
+import android.util.Log;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
@@ -22,42 +28,44 @@ import android.widget.ImageView;
import com.twine.colorcapture.App;
import com.twine.colorcapture.R;
-import com.twine.colorcapture.core.Task;
+import com.twine.colorcapture.core.IAction1;
+import com.twine.colorcapture.core.Task.TaskBuilder;
import com.twine.colorcapture.databinding.FragmentCaptureBinding;
import com.twine.colorcapture.mvvm.FragmentBase;
import com.twine.colorcapture.opencv.ImageProcessor;
+import com.yanzhenjie.zbar.Image;
+import com.yanzhenjie.zbar.ImageScanner;
+import com.yanzhenjie.zbar.Symbol;
+import com.yanzhenjie.zbar.SymbolSet;
import java.io.IOException;
import java.util.List;
+import butterknife.BindView;
+
@SuppressWarnings("ALL")
public class CaptureFragment extends FragmentBase<FragmentCaptureBinding, CaptureFragmentVM> implements ICaptureFragment, SurfaceHolder.Callback, Camera.PreviewCallback
{
private Camera camera = null;
- private ImageView imagePreview = null;
private ImageView imagewrappedPreview = null;
- private Bitmap bitmap = null;
- private Bitmap wrappedBitmap = null;
- private int[] pixels = null;
- private int[] wrappedPixels = null;
- private byte[] frameData = null;
private int imageFormat;
- private boolean bProcessing = false;
private int cameraId;
- private int previewWidth;
- private int previewHeight;
- private ImageProcessor processor;
- private Handler mHandler;
private SurfaceView surfaceView;
+ private ICaptureFragmentListener listener;
+ private IAction1<Boolean> cameraAccessAction;
+
+ @BindView(R.id.imageViewResultFrame)
+ ImageView imageViewResultFrame;
+
ObjectAnimator animator;
View scannerLayout;
View scannerBar;
+ SurfaceHolder surfaceHolder;
+ boolean isCameraStarted;
public CaptureFragment()
{
// Required empty public constructor
- mHandler = new Handler(Looper.getMainLooper());
- processor = new ImageProcessor();
}
@Override
@@ -65,7 +73,6 @@ public class CaptureFragment extends FragmentBase<FragmentCaptureBinding, Captur
{
super.onCreated();
- imagePreview = getView().findViewById(R.id.imagePreview);
imagewrappedPreview = getView().findViewById(R.id.imagePreviewWrapped);
surfaceView = new SurfaceView(this.getActivity());
@@ -78,10 +85,14 @@ public class CaptureFragment extends FragmentBase<FragmentCaptureBinding, Captur
startScanAnimation();
- new Handler().postDelayed(() ->
- {
- surfraceFrame.addView(surfaceView, new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
- },500);
+ surfraceFrame.addView(surfaceView, new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
+ }
+
+ @Override
+ public void onPause()
+ {
+ super.onPause();
+ stopCamera();
}
private void startScanAnimation()
@@ -91,21 +102,26 @@ public class CaptureFragment extends FragmentBase<FragmentCaptureBinding, Captur
scannerBar = getView().findViewById(R.id.scannerBar);
animator = null;
ViewTreeObserver vto = scannerLayout.getViewTreeObserver();
- vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
+ vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener()
+ {
@Override
- public void onGlobalLayout() {
+ public void onGlobalLayout()
+ {
scannerLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN)
+ {
scannerLayout.getViewTreeObserver().
removeGlobalOnLayoutListener(this);
- } else {
+ }
+ else
+ {
scannerLayout.getViewTreeObserver().
removeOnGlobalLayoutListener(this);
}
- float destination = (float)(scannerLayout.getY() +
+ float destination = (float) (scannerLayout.getY() +
scannerLayout.getHeight());
animator = ObjectAnimator.ofFloat(scannerBar, "translationY",
@@ -146,94 +162,26 @@ public class CaptureFragment extends FragmentBase<FragmentCaptureBinding, Captur
if (imageFormat == ImageFormat.NV21)
{
//We only accept the NV21(YUV420) format.
- if (!bProcessing)
- {
- frameData = data;
- processImage();
- }
+ listener.onFrameAvailable(data);
}
}
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder)
{
- int numberOfCameras = Camera.getNumberOfCameras();
- for (int i = 0; i < numberOfCameras; i++)
- {
- CameraInfo info = new CameraInfo();
- Camera.getCameraInfo(i, info);
- if (info.facing == CameraInfo.CAMERA_FACING_BACK)
- {
- cameraId = i;
- break;
- }
- }
-
- camera = Camera.open(cameraId);
-
- try
- {
- camera.setPreviewDisplay(surfaceHolder);
- camera.setPreviewCallback(this);
- }
- catch (IOException e)
- {
- camera.release();
- camera = null;
- }
+ this.surfaceHolder = surfaceHolder;
}
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2)
{
- Camera.Parameters parameters;
-
- setCameraDisplayOrientation();
-
- parameters = camera.getParameters();
-
- List<Size> sizes = parameters.getSupportedPreviewSizes();
-
- for (Camera.Size size : parameters.getSupportedPreviewSizes())
- {
- if (size.width >= 1200 & size.width <= 1280)
- {
- parameters.setPreviewSize(1280, 720);
- parameters.setPictureSize(1280, 720);
- break;
- }
- }
-
- int width = parameters.getPreviewSize().width;
- int height = parameters.getPreviewSize().height;
-
- imageFormat = parameters.getPreviewFormat();
-
- parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
-
- camera.setParameters(parameters);
-
- parameters = camera.getParameters();
-
- previewWidth = parameters.getPreviewSize().width;
- previewHeight = parameters.getPreviewSize().height;
-
- bitmap = Bitmap.createBitmap(previewHeight, previewWidth, Bitmap.Config.ARGB_8888);
- wrappedBitmap = Bitmap.createBitmap(300, 330, Bitmap.Config.ARGB_8888);
-
- pixels = new int[previewWidth * previewHeight];
- wrappedPixels = new int[330 * 300];
-
- camera.startPreview();
+ this.surfaceHolder = surfaceHolder;
}
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder)
{
- camera.setPreviewCallback(null);
- camera.stopPreview();
- camera.release();
- camera = null;
+ this.surfaceHolder = surfaceHolder;
}
private void setCameraDisplayOrientation()
@@ -273,23 +221,150 @@ public class CaptureFragment extends FragmentBase<FragmentCaptureBinding, Captur
}
- private void processImage()
+ @Override
+ public void setListener(ICaptureFragmentListener listener)
+ {
+ this.listener = listener;
+ }
+
+ @Override
+ public void onFrameResult(Bitmap frameBitmap, Bitmap correctedBitmap, String barcode)
+ {
+ getActivity().runOnUiThread(() ->
+ {
+ imagewrappedPreview.setImageBitmap(correctedBitmap);
+ imageViewResultFrame.setImageBitmap(frameBitmap);
+ });
+ }
+
+ @Override
+ public void startCamera()
{
- new Task.TaskBuilder()
- .setAction(() ->
+ if (isCameraStarted) return;
+
+ requestCameraAccess((granted) ->
+ {
+ if (granted)
+ {
+ try
+ {
+ int numberOfCameras = Camera.getNumberOfCameras();
+ for (int i = 0; i < numberOfCameras; i++)
+ {
+ CameraInfo info = new CameraInfo();
+ Camera.getCameraInfo(i, info);
+ if (info.facing == CameraInfo.CAMERA_FACING_BACK)
+ {
+ cameraId = i;
+ break;
+ }
+ }
+
+ camera = Camera.open(cameraId);
+
+
+ camera.setPreviewDisplay(surfaceHolder);
+ camera.setPreviewCallback(this);
+
+ Camera.Parameters parameters;
+
+ setCameraDisplayOrientation();
+
+ parameters = camera.getParameters();
+
+// List<Size> sizes = parameters.getSupportedPreviewSizes();
+//
+// for (Camera.Size size : parameters.getSupportedPreviewSizes())
+// {
+// if (size.width >= 1200 & size.width <= 1280)
+// {
+// parameters.setPreviewSize(1280, 720);
+// parameters.setPictureSize(1280, 720);
+// break;
+// }
+// }
+
+ imageFormat = parameters.getPreviewFormat();
+
+ parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
+
+ camera.setParameters(parameters);
+
+ parameters = camera.getParameters();
+
+ int width = parameters.getPreviewSize().width;
+ int height = parameters.getPreviewSize().height;
+
+ listener.onPreviewSettingsAvailable(width, height);
+
+ camera.startPreview();
+ isCameraStarted = true;
+ } catch (Exception ex)
+ {
+ camera.release();
+ camera = null;
+ }
+ }
+ });
+ }
+
+ @Override
+ public void stopCamera()
+ {
+ if (isCameraStarted)
+ {
+ isCameraStarted = false;
+
+ camera.setPreviewCallback(null);
+ camera.stopPreview();
+ camera.release();
+ camera = null;
+ }
+ }
+
+ @Override
+ public boolean isCameraStarted()
+ {
+ return isCameraStarted;
+ }
+
+ public void requestCameraAccess(IAction1<Boolean> action)
+ {
+ cameraAccessAction = action;
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
+ {
+ if (ContextCompat.checkSelfPermission(this.getActivity(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
+ {
+ requestPermissions(new String[]{Manifest.permission.CAMERA},
+ 1);
+ }
+ else
+ {
+ cameraAccessAction.invoke(true);
+ }
+ }
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)
+ {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+
+ switch (requestCode)
+ {
+ case 1:
+ {
+ if (grantResults.length > 0
+ && grantResults[0] == PackageManager.PERMISSION_GRANTED)
{
- bProcessing = true;
- processor.ProcessImage(previewWidth, previewHeight, frameData, pixels, wrappedPixels);
- bitmap.setPixels(pixels, 0, previewHeight, 0, 0, previewHeight, previewWidth);
- wrappedBitmap.setPixels(wrappedPixels, 0, 300, 0, 0, 300, 330);
- })
- .setContinueWith(() ->
+ cameraAccessAction.invoke(true);
+ }
+ else
{
- imagePreview.setImageBitmap(bitmap);
- imagewrappedPreview.setImageBitmap(wrappedBitmap);
- bProcessing = false;
- })
- .build()
- .start();
+ cameraAccessAction.invoke(false);
+ }
+ }
+ }
}
} \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragmentVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragmentVM.java
index 6be978036..c0b89fba8 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragmentVM.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/CaptureFragmentVM.java
@@ -1,8 +1,253 @@
package com.twine.colorcapture.views.capture;
+import android.graphics.Bitmap;
+import android.media.MediaActionSound;
+import android.util.Log;
+
+import com.squareup.otto.Bus;
+import com.twine.colorcapture.core.Task.TaskBuilder;
+import com.twine.colorcapture.dialogs.processing.ProcessingDialog;
+import com.twine.colorcapture.dialogs.welcome.WelcomeDialog;
+import com.twine.colorcapture.models.ColorResult;
+import com.twine.colorcapture.mvvm.DependencyProperty;
import com.twine.colorcapture.mvvm.ViewModelBase;
+import com.twine.colorcapture.navigation.INavigationProvider;
+import com.twine.colorcapture.navigation.NavigationFragment;
+import com.twine.colorcapture.navigation.TabState;
+import com.twine.colorcapture.navigation.TabStateManager;
+import com.twine.colorcapture.notification.INotificationProvider;
+import com.twine.colorcapture.opencv.ImageProcessor;
+import com.twine.colorcapture.settings.SettingsManager;
+import com.twine.colorcapture.utils.ThreadingUtils;
+import com.twine.colorcapture.views.capture.ICaptureFragment.ICaptureFragmentListener;
+import com.twine.colorcapture.web.ITCCService;
+import com.twine.colorcapture.web.messages.DefinitionResponse;
+import com.twine.colorcapture.web.messages.DetectionResponse;
+import com.yanzhenjie.zbar.Image;
+import com.yanzhenjie.zbar.ImageScanner;
+import com.yanzhenjie.zbar.Symbol;
+import com.yanzhenjie.zbar.SymbolSet;
+
+import org.joda.time.LocalDateTime;
+import org.joda.time.format.DateTimeFormat;
+import org.joda.time.format.DateTimeFormatter;
+
+import java.util.Locale;
+import java.util.concurrent.atomic.AtomicBoolean;
-public class CaptureFragmentVM extends ViewModelBase<ICaptureFragment>
+public class CaptureFragmentVM extends ViewModelBase<ICaptureFragment> implements ICaptureFragmentListener
{
+ private ImageProcessor processor;
+ private Bitmap frameBitmap = null;
+ private Bitmap sampleBitmap = null;
+ private int[] framePixels = null;
+ private int[] samplePixels = null;
+ private int previewWidth;
+ private int previewHeight;
+ private boolean isProcessing;
+ private byte[] frameData;
+ private String barcode;
+ private ITCCService tccService;
+ private DefinitionResponse definition;
+ private INavigationProvider navigationProvider;
+ private INotificationProvider notificationProvider;
+ private boolean preventDetection;
+ private Bus eventBus;
+
+ public DependencyProperty<Boolean> isCardDetected;
+ public DependencyProperty<Boolean> isDetecting;
+
+ public CaptureFragmentVM(Bus eventBus, ITCCService tccService, INavigationProvider navigationProvider, INotificationProvider notificationProvider)
+ {
+ this.eventBus = eventBus;
+
+ isCardDetected = new DependencyProperty<Boolean>();
+ isDetecting = new DependencyProperty<Boolean>();
+ this.navigationProvider = navigationProvider;
+ this.notificationProvider = notificationProvider;
+ this.tccService = tccService;
+ processor = new ImageProcessor();
+
+ try
+ {
+ definition = tccService.getDefinition();
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ protected void onViewAttached(ICaptureFragment view)
+ {
+ super.onViewAttached(view);
+ view.setListener(this);
+ }
+
+ @SuppressWarnings("SuspiciousNameCombination")
+ @Override
+ public void onFrameAvailable(byte[] frame)
+ {
+ if (!isProcessing && !preventDetection)
+ {
+ isProcessing = true;
+
+ frameData = frame;
+
+ new TaskBuilder()
+ .setAction(() ->
+ {
+ isProcessing = true;
+
+ boolean detected = processor.ProcessImage(
+ previewWidth,
+ previewHeight,
+ definition.getSampleWidth(),
+ definition.getSampleHeight(),
+ definition.getHistogramMethod(),
+ definition.getSimilarityTolerance(),
+ definition.isEnableDoubleChecking(),
+ frameData,
+ framePixels,
+ samplePixels);
+
+ frameBitmap.setPixels(framePixels, 0, previewHeight, 0, 0, previewHeight, previewWidth);
+
+ if (detected)
+ {
+ sampleBitmap.setPixels(samplePixels, 0, definition.getSampleWidth(), 0, 0, definition.getSampleWidth(), definition.getSampleHeight());
+
+ Log.d("BARCODE", "scanning barcode...");
+ ImageScanner scanner = new ImageScanner();
+ Image img = new Image(frameBitmap.getWidth(), frameBitmap.getHeight(), "RGB4");
+ img.setData(framePixels);
+ int result = scanner.scanImage(img.convert("Y800"));
+
+ if (result != 0)
+ {
+ Log.d("BARCODE", "Got positive result...");
+
+ String text = null;
+
+ SymbolSet symSet = scanner.getResults();
+ for (Symbol sym : symSet)
+ text = sym.getData();
+
+
+ barcode = text;
+
+ Log.d("BARCODE", "Barcode text is: " + text);
+
+ //ToneGenerator toneGen1 = new ToneGenerator(AudioManager.STREAM_MUSIC, 100);
+ //toneGen1.startTone(ToneGenerator.TONE_CDMA_PIP, 150);
+
+ MediaActionSound sound = new MediaActionSound();
+ sound.play(MediaActionSound.SHUTTER_CLICK);
+
+ isCardDetected.set(true);
+ preventDetection = true;
+ view.onFrameResult(frameBitmap, sampleBitmap, barcode);
+ view.stopCamera();
+
+ ThreadingUtils.sleep(1000);
+
+ isDetecting.set(true);
+
+ AtomicBoolean abort = new AtomicBoolean(false);
+
+ notificationProvider.showDialog(new ProcessingDialog(), (vm) ->
+ {
+ //TODO: Cancel and return to capture
+ abort.set(true);
+ });
+
+ DetectionResponse response = tccService.detect(sampleBitmap, barcode);
+
+ ThreadingUtils.sleep(1000);
+
+ isDetecting.set(false);
+
+ if (!abort.get())
+ {
+ LocalDateTime date = LocalDateTime.now();
+ DateTimeFormatter fmt = DateTimeFormat.forPattern("d MMMM, yyyy, hh:mm:ss").withLocale(Locale.ENGLISH);
+ String name = date.toString(fmt);
+
+ ColorResult colorResult = new ColorResult(response, date.toString(), name);
+
+ SettingsManager.getInstance().getResults().add(colorResult);
+ SettingsManager.save();
+
+ notificationProvider.closeDialog();
+ navigationProvider.navigateWithObjectTo(NavigationFragment.Result, true, false, colorResult);
+ }
+ else
+ {
+ isCardDetected.set(false);
+ onNavigatedTo();
+ }
+ }
+ }
+
+ })
+ .setContinueWith(() ->
+ {
+ isProcessing = false;
+ })
+ .setError((ex) ->
+ {
+ isProcessing = false;
+ ex.printStackTrace();
+ })
+ .build()
+ .start();
+ }
+ }
+
+ @SuppressWarnings("SuspiciousNameCombination")
+ @Override
+ public void onPreviewSettingsAvailable(int previewWidth, int previewHeight)
+ {
+ this.previewWidth = previewWidth;
+ this.previewHeight = previewHeight;
+ frameBitmap = Bitmap.createBitmap(previewHeight, previewWidth, Bitmap.Config.ARGB_8888);
+ sampleBitmap = Bitmap.createBitmap(definition.getSampleWidth(), definition.getSampleHeight(), Bitmap.Config.ARGB_8888);
+ framePixels = new int[previewWidth * previewHeight];
+ samplePixels = new int[definition.getSampleWidth() * definition.getSampleHeight()];
+ }
+
+ @Override
+ protected void onNavigatedTo()
+ {
+ super.onNavigatedTo();
+ TabStateManager.getInstance().state.set(TabState.Capture);
+
+ preventDetection = false;
+
+ boolean showDialog = !SettingsManager.getInstance().isWelcomeScreenShown();
+
+ if (showDialog)
+ {
+ notificationProvider.showDialog(new WelcomeDialog(), (vm) ->
+ {
+ isCardDetected.set(false);
+ view.startCamera();
+ });
+
+ SettingsManager.getInstance().setWelcomeScreenShown(true);
+ SettingsManager.save();
+ }
+ else
+ {
+ isCardDetected.set(false);
+ view.startCamera();
+ }
+ }
+ @Override
+ protected void onNavigatedFrom()
+ {
+ super.onNavigatedFrom();
+ view.stopCamera();
+ }
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/ICaptureFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/ICaptureFragment.java
index c88d632b6..162de4b2e 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/ICaptureFragment.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/capture/ICaptureFragment.java
@@ -1,7 +1,25 @@
package com.twine.colorcapture.views.capture;
+import android.graphics.Bitmap;
+
import com.twine.colorcapture.mvvm.IView;
public interface ICaptureFragment extends IView
{
+ void setListener(ICaptureFragmentListener listener);
+
+ void onFrameResult(Bitmap frameBitmap,Bitmap correctedBitmap,String barcode);
+
+ void startCamera();
+
+ void stopCamera();
+
+ boolean isCameraStarted();
+
+ interface ICaptureFragmentListener
+ {
+ void onFrameAvailable(byte[] frame);
+
+ void onPreviewSettingsAvailable(int previewWidth, int previewHeight);
+ }
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/home/HomeFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/home/HomeFragment.java
deleted file mode 100644
index 76bdfe20f..000000000
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/home/HomeFragment.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package com.twine.colorcapture.views.home;
-import android.Manifest;
-import android.content.pm.PackageManager;
-import android.os.Build;
-import android.support.annotation.NonNull;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.content.ContextCompat;
-
-import com.twine.colorcapture.App;
-import com.twine.colorcapture.R;
-import com.twine.colorcapture.core.IAction1;
-import com.twine.colorcapture.databinding.FragmentHomeBinding;
-import com.twine.colorcapture.mvvm.FragmentBase;
-
-public class HomeFragment extends FragmentBase<FragmentHomeBinding, HomeFragmentVM> implements IHomeFragment
-{
- private IAction1<Boolean> cameraAccessAction;
-
- public HomeFragment()
- {
- // Required empty public constructor
- }
-
- @Override
- protected int getLayoutId()
- {
- return R.layout.fragment_home;
- }
-
- @Override
- protected void inject()
- {
- App.getComponent().inject(this);
- }
-
- @Override
- public String getTitle()
- {
- return "Home";
- }
-
- @Override
- public void requestCameraAccess(IAction1<Boolean> action)
- {
- cameraAccessAction = action;
-
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
- if (ContextCompat.checkSelfPermission(this.getActivity(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
- ActivityCompat.requestPermissions(this.getActivity(),
- new String[]{Manifest.permission.CAMERA},
- 1);
- }
- else
- {
- cameraAccessAction.invoke(true);
- }
- }
- }
-
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
-
- switch (requestCode) {
- case 1: {
- if (grantResults.length > 0
- && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- cameraAccessAction.invoke(true);
- } else {
- cameraAccessAction.invoke(false);
- }
- }
- }
- }
-}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/home/HomeFragmentVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/home/HomeFragmentVM.java
deleted file mode 100644
index d7b8e3ba7..000000000
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/home/HomeFragmentVM.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.twine.colorcapture.views.home;
-
-import com.twine.colorcapture.mvvm.RelayCommand;
-import com.twine.colorcapture.mvvm.ViewModelBase;
-import com.twine.colorcapture.navigation.INavigationProvider;
-import com.twine.colorcapture.navigation.NavigationView;
-
-import javax.inject.Inject;
-
-public class HomeFragmentVM extends ViewModelBase<IHomeFragment>
-{
- private INavigationProvider navigationProvider;
- public RelayCommand startCaptureCommand;
-
- @Inject
- public HomeFragmentVM(INavigationProvider navigationProvider)
- {
- this.navigationProvider = navigationProvider;
-
- startCaptureCommand = new RelayCommand(() ->
- {
- view.requestCameraAccess((granted) ->
- {
- if (granted)
- {
- this.navigationProvider.navigateTo(NavigationView.Capture, true);
- }
- });
- });
- }
-}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/home/IHomeFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/home/IHomeFragment.java
deleted file mode 100644
index 17f94c7db..000000000
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/home/IHomeFragment.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.twine.colorcapture.views.home;
-
-import com.twine.colorcapture.core.IAction;
-import com.twine.colorcapture.core.IAction1;
-import com.twine.colorcapture.mvvm.IView;
-
-public interface IHomeFragment extends IView
-{
- void requestCameraAccess(IAction1<Boolean> action);
-}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/ILoadingFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/ILoadingActivity.java
index b887f59e2..a9d7d44ce 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/ILoadingFragment.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/ILoadingActivity.java
@@ -2,6 +2,6 @@ package com.twine.colorcapture.views.loading;
import com.twine.colorcapture.mvvm.IView;
-public interface ILoadingFragment extends IView
+public interface ILoadingActivity extends IView
{
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingActivity.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingActivity.java
new file mode 100644
index 000000000..ae38d2368
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingActivity.java
@@ -0,0 +1,46 @@
+package com.twine.colorcapture.views.loading;
+
+
+import android.app.Fragment;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.view.Window;
+import android.view.WindowManager;
+
+import com.twine.colorcapture.App;
+import com.twine.colorcapture.R;
+import com.twine.colorcapture.databinding.ActivityLoadingBinding;
+import com.twine.colorcapture.mvvm.ActivityBase;
+import com.twine.colorcapture.navigation.INavigationProvider;
+import com.twine.colorcapture.navigation.NavigationActivity;
+import com.twine.colorcapture.views.main.MainActivity;
+
+import javax.inject.Inject;
+
+import io.reactivex.functions.Consumer;
+
+/**
+ * A simple {@link Fragment} subclass.
+ */
+public class LoadingActivity extends ActivityBase<ActivityLoadingBinding, LoadingActivityVM> implements ILoadingActivity
+{
+ @Inject
+ public INavigationProvider navigationProvider;
+
+ @Override
+ protected void onCreating(Bundle savedInstanceState)
+ {
+
+ }
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.activity_loading;
+ }
+
+ @Override
+ protected void inject() {
+ App.getComponent().inject(this);
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingActivityVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingActivityVM.java
new file mode 100644
index 000000000..5f2a0e8ac
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingActivityVM.java
@@ -0,0 +1,79 @@
+package com.twine.colorcapture.views.loading;
+
+import android.annotation.SuppressLint;
+import android.os.CountDownTimer;
+import android.os.Handler;
+import android.util.Log;
+
+import com.squareup.otto.Bus;
+import com.twine.colorcapture.BuildConfig;
+import com.twine.colorcapture.core.Task;
+import com.twine.colorcapture.integration.ExternalBridgeScanner;
+import com.twine.colorcapture.mvvm.DependencyProperty;
+import com.twine.colorcapture.mvvm.ViewModelBase;
+import com.twine.colorcapture.navigation.INavigationProvider;
+import com.twine.colorcapture.navigation.NavigationActivity;
+import com.twine.colorcapture.navigation.NavigationFragment;
+import com.twine.colorcapture.notification.INotificationProvider;
+import com.twine.colorcapture.utils.ThreadingUtils;
+import com.twine.colorcapture.web.ITCCService;
+import com.twine.colorcapture.web.IWebServiceAPI;
+import com.twine.colorcapture.web.WebApiFactory;
+import com.twine.colorcapture.web.messages.DefinitionRequest;
+import com.twine.colorcapture.web.messages.DefinitionResponse;
+import com.twine.colorcapture.web.messages.LoginRequest;
+import com.twine.colorcapture.web.messages.LoginResponse;
+
+import java.io.IOException;
+
+import javax.inject.Inject;
+
+import io.reactivex.disposables.Disposable;
+
+public class LoadingActivityVM extends ViewModelBase<ILoadingActivity>
+{
+ private INavigationProvider navigationProvider;
+ private ITCCService tccService;
+ private boolean initialized;
+ public DependencyProperty<Integer> loadingProgress;
+
+
+ @Inject
+ public LoadingActivityVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider, ITCCService tccService)
+ {
+ this.tccService = tccService;
+ this.navigationProvider = navigationProvider;
+ loadingProgress = new DependencyProperty<>(0);
+ }
+
+ @Override
+ protected void onViewAttached(ILoadingActivity view)
+ {
+ super.onViewAttached(view);
+ init();
+ }
+
+ private void init()
+ {
+ if (!initialized)
+ {
+ new Task.TaskBuilder().setAction(() ->
+ {
+ tccService.getDefinition();
+ ThreadingUtils.sleep(3000);
+ }).setContinueWith(() ->
+ {
+ initialized = true;
+ navigationProvider.navigateTo(NavigationActivity.Main, true);
+
+ }).setError((ex) ->
+ {
+ new Handler().postDelayed(this::init,5000);
+ }).build().start();
+ }
+ else
+ {
+ navigationProvider.navigateTo(NavigationActivity.Main, true);
+ }
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingFragment.java
deleted file mode 100644
index 4a549b59b..000000000
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingFragment.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.twine.colorcapture.views.loading;
-
-
-import android.app.Fragment;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import com.twine.colorcapture.App;
-import com.twine.colorcapture.R;
-import com.twine.colorcapture.databinding.FragmentLoadingBinding;
-import com.twine.colorcapture.mvvm.FragmentBase;
-
-import io.reactivex.functions.Consumer;
-
-/**
- * A simple {@link Fragment} subclass.
- */
-public class LoadingFragment extends FragmentBase<FragmentLoadingBinding, LoadingFragmentVM> implements ILoadingFragment
-{
-
- public LoadingFragment()
- {
- // Required empty public constructor
- }
-
- @Override
- protected int getLayoutId()
- {
- return R.layout.fragment_loading;
- }
-
- @Override
- protected void inject()
- {
- App.getComponent().inject(this);
- }
-
- @Override
- public String getTitle()
- {
- return "Loading";
- }
-}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingFragmentVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingFragmentVM.java
deleted file mode 100644
index 49b8c07f9..000000000
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingFragmentVM.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.twine.colorcapture.views.loading;
-
-import android.os.CountDownTimer;
-import android.os.Handler;
-
-import com.squareup.otto.Bus;
-import com.twine.colorcapture.mvvm.DependencyProperty;
-import com.twine.colorcapture.mvvm.ViewModelBase;
-import com.twine.colorcapture.navigation.INavigationProvider;
-import com.twine.colorcapture.navigation.NavigationView;
-import com.twine.colorcapture.notification.INotificationProvider;
-
-import javax.inject.Inject;
-
-public class LoadingFragmentVM extends ViewModelBase<ILoadingFragment>
-{
- private INavigationProvider navigationProvider;
- public DependencyProperty<Integer> loadingProgress;
-
- @Inject
- public LoadingFragmentVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider)
- {
-
- this.navigationProvider = navigationProvider;
-
- loadingProgress = new DependencyProperty<>(0);
- }
-
- @Override
- protected void onViewAttached(ILoadingFragment view)
- {
- super.onViewAttached(view);
-
- new CountDownTimer(2000,50)
- {
-
- @Override
- public void onTick(long l) {
-
- loadingProgress.set(loadingProgress.get() + 50);
- }
-
- @Override
- public void onFinish() {
-
- loadingProgress.set(2000);
- navigationProvider.navigateTo(NavigationView.Home, false);
- }
- }.start();
-
-/* new Handler().postDelayed(() ->
- {
-
-
-
- }, 2000);*/
- }
-}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/IMainActivity.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/IMainActivity.java
index 866a0ece7..0835d4eef 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/IMainActivity.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/IMainActivity.java
@@ -4,4 +4,5 @@ import com.twine.colorcapture.mvvm.IView;
public interface IMainActivity extends IView
{
+ void cloneMenu();
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivity.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivity.java
index 46d3f1679..f40b78a4b 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivity.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivity.java
@@ -1,96 +1,135 @@
package com.twine.colorcapture.views.main;
+import android.app.Fragment;
+import android.app.FragmentManager;
import android.app.FragmentTransaction;
-import android.graphics.Color;
-import android.support.v7.app.AppCompatActivity;
+import android.graphics.drawable.Drawable;
import android.os.Bundle;
-import android.widget.TextView;
+import android.support.v4.widget.DrawerLayout;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageButton;
+import android.widget.LinearLayout;
import com.twine.colorcapture.App;
import com.twine.colorcapture.R;
+import com.twine.colorcapture.controls.ToggleImageButton;
import com.twine.colorcapture.databinding.ActivityMainBinding;
+import com.twine.colorcapture.dialogs.welcome.WelcomeDialog;
import com.twine.colorcapture.mvvm.ActivityBase;
+import com.twine.colorcapture.mvvm.FragmentBase;
import com.twine.colorcapture.navigation.INavigationProvider;
-import com.twine.colorcapture.navigation.NavigationView;
-import com.twine.onboarding.PaperOnboardingFragment;
-import com.twine.onboarding.PaperOnboardingPage;
-
-import java.util.ArrayList;
+import com.twine.colorcapture.navigation.NavigationFragment;
+import com.twine.colorcapture.notification.INotificationProvider;
import javax.inject.Inject;
+import butterknife.BindView;
+
public class MainActivity extends ActivityBase<ActivityMainBinding, MainActivityVM> implements IMainActivity
{
- private boolean displayOnboarding = false;
+ private boolean passOnCreate;
@Inject
public INavigationProvider navigationProvider;
-
+
+ @Inject
+ public INotificationProvider notificationProvider;
+
+ @BindView(R.id.btnMenu)
+ ImageButton btnMenu;
+
+ @BindView(R.id.header)
+ LinearLayout frameHeader;
+
+ @BindView(R.id.drawerLayout)
+ DrawerLayout drawerLayout;
+
// Used to load the 'native-lib' library on application startup.
static
{
System.loadLibrary("opencv_java3");
System.loadLibrary("native-lib");
}
-
+
@Override
- protected void onCreate(Bundle savedInstanceState)
+ protected void onCreating(Bundle savedInstanceState)
{
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
+ navigationProvider.registerNavigationActivity(this, R.id.fragment_container);
+ notificationProvider.registerMainActivity(this);
- navigationProvider.registerNavigationActivity(this, R.id.fragment_container, "com.twine.colorcapture.views");
+ Log.d("TCC", "Registering event listener...");
- if (displayOnboarding) {
- PaperOnboardingPage scr1 = new PaperOnboardingPage("Welcome to true color capture",
- "All hotels and hostels are sorted by hospitality rating",
- Color.parseColor("#678FB4"), R.drawable.hand_fabric, R.drawable.onboarding_pager_round_icon);
- PaperOnboardingPage scr2 = new PaperOnboardingPage("Banks",
- "We carefully verify all banks before add them into the app",
- Color.parseColor("#65B0B4"), R.drawable.hand_phone, R.drawable.onboarding_pager_round_icon);
- PaperOnboardingPage scr3 = new PaperOnboardingPage("Stores",
- "All local stores are categorized for your convenience",
- Color.parseColor("#9B90BC"), R.drawable.take_picture, R.drawable.onboarding_pager_round_icon);
+ btnMenu.setOnClickListener((x) ->
+ {
+ Log.d("TCC", "Clicked...");
+ drawerLayout.openDrawer(Gravity.START);
+ });
- ArrayList<PaperOnboardingPage> elements = new ArrayList<>();
- elements.add(scr1);
- elements.add(scr2);
- elements.add(scr3);
+ navigationProvider.navigateTo(NavigationFragment.Capture, false, true);
+ passOnCreate = true;
+ }
- PaperOnboardingFragment onboardingFragment = PaperOnboardingFragment.newInstance(elements);
+ @Override
+ protected int getLayoutId()
+ {
+ return R.layout.activity_main;
+ }
- onboardingFragment.setOnRightOutListener(() ->
- {
+ @Override
+ protected void inject()
+ {
+ App.getComponent().inject(this);
+ }
- navigationProvider.navigateTo(NavigationView.Loading, false);
+ private void showHeader()
+ {
+ frameHeader.setVisibility(View.VISIBLE);
+ }
- });
+ private void hideHeader()
+ {
+ frameHeader.setVisibility(View.GONE);
+ }
- FragmentTransaction fragmentTransaction = this.getFragmentManager().beginTransaction();
- fragmentTransaction.add(R.id.fragment_container, onboardingFragment);
- fragmentTransaction.commit();
+ @Override
+ public void onBackPressed()
+ {
+ if (navigationProvider.canNavigateBack())
+ {
+ navigationProvider.navigateBack();
}
else
- {
- navigationProvider.navigateTo(NavigationView.Loading, false);
+ {
+ super.onBackPressed();
}
}
-
+
@Override
- protected int getLayoutId()
+ protected void onResume()
{
- return R.layout.activity_main;
+ super.onResume();
+
+ if (!passOnCreate)
+ {
+ navigationProvider.notifyApplicationResume();
+ }
+
+ passOnCreate = false;
}
-
+
@Override
- protected void inject()
+ protected void onDestroy()
{
- App.getComponent().inject(this);
+ navigationProvider.reset();
+ super.onDestroy();
+ }
+
+ @Override
+ public void cloneMenu()
+ {
+ drawerLayout.closeDrawer(Gravity.START);
}
-
- /**
- * A native method that is implemented by the 'native-lib' native library,
- * which is packaged with this application.
- */
- public native String stringFromJNI();
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivityVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivityVM.java
index dc08f701c..23f3e3868 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivityVM.java
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/main/MainActivityVM.java
@@ -1,22 +1,99 @@
package com.twine.colorcapture.views.main;
import com.squareup.otto.Bus;
+import com.twine.colorcapture.dialogs.welcome.WelcomeDialog;
+import com.twine.colorcapture.integration.ExternalBridgeScanner;
import com.twine.colorcapture.mvvm.DependencyProperty;
import com.twine.colorcapture.mvvm.RelayCommand;
import com.twine.colorcapture.mvvm.ViewModelBase;
import com.twine.colorcapture.navigation.INavigationProvider;
-import com.twine.colorcapture.navigation.NavigationView;
+import com.twine.colorcapture.navigation.NavigationFragment;
+import com.twine.colorcapture.navigation.TabState;
+import com.twine.colorcapture.navigation.TabStateManager;
import com.twine.colorcapture.notification.INotificationProvider;
import javax.inject.Inject;
public class MainActivityVM extends ViewModelBase<IMainActivity>
{
+ public enum CurrentTab
+ {
+ More,
+ Capture,
+ MyColors
+ }
+
private INavigationProvider navigationProvider;
-
+ private INotificationProvider notificationProvider;
+ private CurrentTab currentTab;
+
+ public TabStateManager tabStateManager;
+
+ public RelayCommand captureCommand;
+ public RelayCommand myColorsCommand;
+ public RelayCommand moreCommand;
+
+ public RelayCommand howToUseCommand;
+
@Inject
public MainActivityVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider)
{
+ tabStateManager = TabStateManager.getInstance();
+
this.navigationProvider = navigationProvider;
+ this.notificationProvider = notificationProvider;
+ currentTab = CurrentTab.Capture;
+ navigationProvider.addFragmentNavigationListener(this::onNavigation);
+
+ howToUseCommand = new RelayCommand(this::handleHowToUseCommand);
+
+ captureCommand = new RelayCommand(this::handleCaptureCommand);
+ myColorsCommand = new RelayCommand(this::handleMyColorsCommand);
+ moreCommand = new RelayCommand(this::handleMoreCommand);
+ }
+
+ private void handleMoreCommand()
+ {
+
+ }
+
+ private void handleMyColorsCommand()
+ {
+ if (navigationProvider.getCurrentFragment() != NavigationFragment.MyColors)
+ {
+ navigationProvider.navigateTo(NavigationFragment.MyColors, true, false);
+ }
+ }
+
+ private void handleCaptureCommand()
+ {
+ if (navigationProvider.getCurrentFragment() != NavigationFragment.Capture)
+ {
+ navigationProvider.navigateTo(NavigationFragment.Capture, false, true);
+ }
+ }
+
+ @Override
+ protected void onNavigatedTo()
+ {
+ super.onNavigatedTo();
+ tabStateManager.state.set(TabState.Capture);
+ }
+
+ private void handleHowToUseCommand()
+ {
+ view.cloneMenu();
+ notificationProvider.showDialog(new WelcomeDialog(), (vm) -> { });
+ }
+
+ private void onNavigation(NavigationFragment navigationFragment)
+ {
+
+ }
+
+ @Override
+ protected void onViewAttached(IMainActivity view)
+ {
+ super.onViewAttached(view);
}
}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/mycolors/IMyColorsFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/mycolors/IMyColorsFragment.java
new file mode 100644
index 000000000..27f9c0419
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/mycolors/IMyColorsFragment.java
@@ -0,0 +1,9 @@
+package com.twine.colorcapture.views.mycolors;
+
+import com.twine.colorcapture.core.IAction1;
+import com.twine.colorcapture.mvvm.IView;
+
+public interface IMyColorsFragment extends IView
+{
+
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/mycolors/MyColorsFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/mycolors/MyColorsFragment.java
new file mode 100644
index 000000000..8df527308
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/mycolors/MyColorsFragment.java
@@ -0,0 +1,35 @@
+package com.twine.colorcapture.views.mycolors;
+
+import com.twine.colorcapture.App;
+import com.twine.colorcapture.R;
+import com.twine.colorcapture.core.IAction1;
+import com.twine.colorcapture.mvvm.FragmentBase;
+import com.twine.colorcapture.databinding.FragmentMycolorsBinding;
+
+public class MyColorsFragment extends FragmentBase<FragmentMycolorsBinding, MyColorsFragmentVM> implements IMyColorsFragment
+{
+ private IAction1<Boolean> cameraAccessAction;
+
+ public MyColorsFragment()
+ {
+ // Required empty public constructor
+ }
+
+ @Override
+ protected int getLayoutId()
+ {
+ return R.layout.fragment_mycolors;
+ }
+
+ @Override
+ protected void inject()
+ {
+ App.getComponent().inject(this);
+ }
+
+ @Override
+ public String getTitle()
+ {
+ return "MyColors";
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/mycolors/MyColorsFragmentVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/mycolors/MyColorsFragmentVM.java
new file mode 100644
index 000000000..6b0fc7b27
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/mycolors/MyColorsFragmentVM.java
@@ -0,0 +1,83 @@
+package com.twine.colorcapture.views.mycolors;
+
+import android.databinding.ObservableArrayList;
+import android.databinding.ObservableList;
+import android.view.View;
+import android.widget.AdapterView;
+
+import com.twine.colorcapture.BR;
+import com.twine.colorcapture.R;
+import com.twine.colorcapture.integration.ExternalBridgeMachine;
+import com.twine.colorcapture.logging.LogManager;
+import com.twine.colorcapture.models.ColorResult;
+import com.twine.colorcapture.models.ColorResultVM;
+import com.twine.colorcapture.mvvm.ViewModelBase;
+import com.twine.colorcapture.navigation.INavigationProvider;
+import com.twine.colorcapture.navigation.NavigationFragment;
+import com.twine.colorcapture.navigation.TabState;
+import com.twine.colorcapture.navigation.TabStateManager;
+import com.twine.colorcapture.notification.INotificationProvider;
+import com.twine.colorcapture.settings.SettingsManager;
+
+import java.util.Collections;
+
+import javax.inject.Inject;
+
+import me.tatarka.bindingcollectionadapter2.ItemBinding;
+
+import static br.com.zbra.androidlinq.Linq.stream;
+
+public class MyColorsFragmentVM extends ViewModelBase<IMyColorsFragment>
+{
+ private INavigationProvider navigationProvider;
+ private INotificationProvider notificationProvider;
+ public ObservableList<ColorResultVM> results;
+ public ItemBinding<String> resultBinding;
+
+ @Inject
+ public MyColorsFragmentVM(INavigationProvider navigationProvider, INotificationProvider notificationProvider)
+ {
+ this.notificationProvider = notificationProvider;
+ this.navigationProvider = navigationProvider;
+
+ results = new ObservableArrayList<>();
+ resultBinding = ItemBinding.of(BR.result, R.layout.color_result_item);
+ }
+
+ public void onResultSelected(AdapterView<?> adapterView, View view, int i, long l)
+ {
+ ColorResultVM colorResultVM = (ColorResultVM) adapterView.getAdapter().getItem(i);
+ navigationProvider.navigateWithObjectTo(NavigationFragment.Result, true, false, colorResultVM.getResult());
+ }
+
+ @Override
+ protected void onNavigatedTo()
+ {
+ super.onNavigatedTo();
+
+ TabStateManager.getInstance().state.set(TabState.MyColors);
+
+ results.clear();
+
+ for (ColorResult result : stream(SettingsManager.getInstance().getResults()).reverse())
+ {
+ ColorResultVM vm = new ColorResultVM();
+ vm.setResult(result);
+ results.add(vm);
+ vm.setOnDeleteListener(this::onResultDeleted);
+ }
+ }
+
+ private void onResultDeleted(ColorResultVM colorResultVM)
+ {
+ notificationProvider.showConfirm("Delete color", "Are you sure you want to delete the selected color?", "Delete", (vm) ->
+ {
+ if (vm.isConfirmed())
+ {
+ results.remove(colorResultVM);
+ SettingsManager.getInstance().getResults().remove(colorResultVM.getResult());
+ SettingsManager.save();
+ }
+ });
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/register/IRegisterFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/register/IRegisterFragment.java
new file mode 100644
index 000000000..7780bb52f
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/register/IRegisterFragment.java
@@ -0,0 +1,7 @@
+package com.twine.colorcapture.views.register;
+
+import com.twine.colorcapture.mvvm.IView;
+
+public interface IRegisterFragment extends IView
+{
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/register/RegisterFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/register/RegisterFragment.java
new file mode 100644
index 000000000..ffb2c44c4
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/register/RegisterFragment.java
@@ -0,0 +1,28 @@
+package com.twine.colorcapture.views.register;
+
+import com.twine.colorcapture.App;
+import com.twine.colorcapture.R;
+import com.twine.colorcapture.databinding.FragmentRegisterBinding;
+import com.twine.colorcapture.mvvm.FragmentBase;
+
+public class RegisterFragment extends FragmentBase<FragmentRegisterBinding,RegisterFragmentVM>
+{
+
+ @Override
+ protected int getLayoutId()
+ {
+ return R.layout.fragment_register;
+ }
+
+ @Override
+ protected void inject()
+ {
+ App.getComponent().inject(this);
+ }
+
+ @Override
+ public String getTitle()
+ {
+ return "Register";
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/register/RegisterFragmentVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/register/RegisterFragmentVM.java
new file mode 100644
index 000000000..3002bf243
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/register/RegisterFragmentVM.java
@@ -0,0 +1,90 @@
+package com.twine.colorcapture.views.register;
+
+import android.util.Log;
+
+import com.squareup.otto.Bus;
+import com.twine.colorcapture.core.Task;
+import com.twine.colorcapture.dialogs.progress.ProgressDialogVM;
+import com.twine.colorcapture.messages.MachineRegisteredMessage;
+import com.twine.colorcapture.mvvm.DependencyProperty;
+import com.twine.colorcapture.mvvm.RelayCommand;
+import com.twine.colorcapture.mvvm.ViewModelBase;
+import com.twine.colorcapture.navigation.INavigationProvider;
+import com.twine.colorcapture.notification.INotificationProvider;
+import com.twine.colorcapture.utils.ThreadingUtils;
+import com.twine.colorcapture.views.result.IResultFragment;
+import com.twine.colorcapture.web.ITCCService;
+import com.twine.colorcapture.web.messages.MachineRegistrationResponse;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import javax.inject.Inject;
+
+public class RegisterFragmentVM extends ViewModelBase<IResultFragment>
+{
+ private Bus eventBus;
+ private INotificationProvider notificationProvider;
+ private INavigationProvider navigationProvider;
+ private ITCCService tccService;
+ public DependencyProperty<String> serialNumber;
+ public RelayCommand registerCommand;
+
+ @Inject
+ public RegisterFragmentVM(INotificationProvider notificationProvider, INavigationProvider navigationProvider, ITCCService tccService, Bus eventBus)
+ {
+ this.eventBus = eventBus;
+ this.eventBus.register(this);
+ this.tccService = tccService;
+ this.navigationProvider = navigationProvider;
+ this.notificationProvider = notificationProvider;
+ serialNumber = new DependencyProperty<>("");
+ registerCommand = new RelayCommand(this::handleRegisterCommand);
+ }
+
+ private void handleRegisterCommand()
+ {
+ AtomicBoolean abort = new AtomicBoolean(false);
+
+ ProgressDialogVM pVM = notificationProvider.showProgress("Register your system","Please wait while we register\nyour system...", (vm) ->
+ {
+ abort.set(true);
+ });
+
+ new Task.TaskBuilder().setAction(() ->
+ {
+
+ try
+ {
+ ThreadingUtils.sleep(5000);
+
+ MachineRegistrationResponse response = tccService.register(serialNumber.get());
+
+ if (!abort.get())
+ {
+ pVM.close();
+
+ Log.i("REGISTER", "Registered !");
+
+ notificationProvider.showSuccess("Registering your system","Your device has been succesfully\nregistred.",(e) ->
+ {
+ MachineRegisteredMessage msg = new MachineRegisteredMessage();
+ msg.setMachineRegistrationResponse(response);
+ eventBus.post(msg);
+ navigationProvider.navigateBack();
+ });
+ }
+ else
+ {
+ Log.i("REGISTER", "Aborted !");
+ }
+ }
+ catch (Exception ex)
+ {
+ pVM.close();
+ notificationProvider.showError("Registering your system","Device registration failed.\nPlease check your serial number.",(e) -> {});
+ Log.i("REGISTER", ex.getMessage());
+ }
+
+ }).build().start();
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/rename/IRenameFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/rename/IRenameFragment.java
new file mode 100644
index 000000000..9cd9e9a54
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/rename/IRenameFragment.java
@@ -0,0 +1,7 @@
+package com.twine.colorcapture.views.rename;
+
+import com.twine.colorcapture.mvvm.IView;
+
+public interface IRenameFragment extends IView
+{
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/rename/RenameFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/rename/RenameFragment.java
new file mode 100644
index 000000000..228ccd66d
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/rename/RenameFragment.java
@@ -0,0 +1,62 @@
+package com.twine.colorcapture.views.rename;
+
+import android.content.Context;
+import android.databinding.Bindable;
+import android.support.v7.widget.AppCompatEditText;
+import android.view.View;
+import android.view.inputmethod.InputMethodManager;
+
+import com.twine.colorcapture.App;
+import com.twine.colorcapture.R;
+import com.twine.colorcapture.databinding.FragmentRenameBinding;
+import com.twine.colorcapture.mvvm.FragmentBase;
+
+import butterknife.BindView;
+
+public class RenameFragment extends FragmentBase<FragmentRenameBinding, RenameFragmentVM>
+{
+ @BindView(R.id.txtName)
+ public AppCompatEditText txtName;
+
+ @Override
+ protected int getLayoutId()
+ {
+ return R.layout.fragment_rename;
+ }
+
+ @Override
+ protected void inject()
+ {
+ App.getComponent().inject(this);
+ }
+
+ @Override
+ public String getTitle()
+ {
+ return "Rename";
+ }
+
+ @Override
+ protected void onCreated()
+ {
+ super.onCreated();
+
+ InputMethodManager imgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+ txtName.requestFocus();
+ txtName.selectAll();
+ imgr.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_NOT_ALWAYS);
+ }
+
+ @Override
+ public void onPause()
+ {
+ super.onPause();
+
+ // Check if no view has focus:
+ View view = getActivity().getCurrentFocus();
+ if (view != null) {
+ InputMethodManager inputManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+ inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
+ }
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/rename/RenameFragmentVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/rename/RenameFragmentVM.java
new file mode 100644
index 000000000..e860d0aac
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/rename/RenameFragmentVM.java
@@ -0,0 +1,50 @@
+package com.twine.colorcapture.views.rename;
+
+import com.twine.colorcapture.models.ColorResult;
+import com.twine.colorcapture.models.ColorResultVM;
+import com.twine.colorcapture.mvvm.DependencyProperty;
+import com.twine.colorcapture.mvvm.RelayCommand;
+import com.twine.colorcapture.mvvm.ViewModelBase;
+import com.twine.colorcapture.navigation.INavigationObjectReceiver;
+import com.twine.colorcapture.navigation.INavigationProvider;
+import com.twine.colorcapture.navigation.TabState;
+import com.twine.colorcapture.navigation.TabStateManager;
+import com.twine.colorcapture.settings.SettingsManager;
+
+public class RenameFragmentVM extends ViewModelBase<IRenameFragment> implements INavigationObjectReceiver<ColorResult>
+{
+ private INavigationProvider navigationProvider;
+
+ public DependencyProperty<ColorResult> colorResult;
+ public DependencyProperty<String> name;
+ public RelayCommand renameCommand;
+
+ public RenameFragmentVM(INavigationProvider navigationProvider)
+ {
+ this.navigationProvider = navigationProvider;
+ colorResult = new DependencyProperty<>();
+ renameCommand = new RelayCommand(this::handleRenameCommand);
+ name = new DependencyProperty<>("");
+ }
+
+ private void handleRenameCommand()
+ {
+ colorResult.get().setName(name.get());
+ SettingsManager.save();
+ navigationProvider.navigateBack();
+ }
+
+ @Override
+ protected void onNavigatedTo()
+ {
+ super.onNavigatedTo();
+ TabStateManager.getInstance().state.set(TabState.MyColors);
+ }
+
+ @Override
+ public void onNavigationObjectReceived(ColorResult colorResult)
+ {
+ this.colorResult.set(colorResult);
+ this.name.set(colorResult.getName());
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/result/IResultFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/result/IResultFragment.java
new file mode 100644
index 000000000..2b7c40414
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/result/IResultFragment.java
@@ -0,0 +1,7 @@
+package com.twine.colorcapture.views.result;
+
+import com.twine.colorcapture.mvvm.IView;
+
+public interface IResultFragment extends IView
+{
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/result/ResultFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/result/ResultFragment.java
new file mode 100644
index 000000000..d634d2634
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/result/ResultFragment.java
@@ -0,0 +1,28 @@
+package com.twine.colorcapture.views.result;
+
+import com.twine.colorcapture.App;
+import com.twine.colorcapture.R;
+import com.twine.colorcapture.databinding.FragmentResultBinding;
+import com.twine.colorcapture.mvvm.FragmentBase;
+
+public class ResultFragment extends FragmentBase<FragmentResultBinding,ResultFragmentVM>
+{
+
+ @Override
+ protected int getLayoutId()
+ {
+ return R.layout.fragment_result;
+ }
+
+ @Override
+ protected void inject()
+ {
+ App.getComponent().inject(this);
+ }
+
+ @Override
+ public String getTitle()
+ {
+ return "Result";
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/result/ResultFragmentVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/result/ResultFragmentVM.java
new file mode 100644
index 000000000..2e58e2777
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/result/ResultFragmentVM.java
@@ -0,0 +1,117 @@
+package com.twine.colorcapture.views.result;
+
+import android.util.Log;
+
+import com.squareup.otto.Bus;
+import com.squareup.otto.Subscribe;
+import com.twine.colorcapture.messages.MachineRegisteredMessage;
+import com.twine.colorcapture.models.ColorResult;
+import com.twine.colorcapture.models.ColorResultVM;
+import com.twine.colorcapture.mvvm.DependencyProperty;
+import com.twine.colorcapture.mvvm.RelayCommand;
+import com.twine.colorcapture.mvvm.ViewModelBase;
+import com.twine.colorcapture.navigation.INavigationObjectReceiver;
+import com.twine.colorcapture.navigation.INavigationProvider;
+import com.twine.colorcapture.navigation.NavigationActivity;
+import com.twine.colorcapture.navigation.NavigationFragment;
+import com.twine.colorcapture.navigation.TabState;
+import com.twine.colorcapture.navigation.TabStateManager;
+import com.twine.colorcapture.settings.SettingsManager;
+import com.twine.colorcapture.web.ITCCService;
+import com.twine.colorcapture.web.messages.DetectionResponse;
+
+import org.joda.time.LocalDateTime;
+import org.joda.time.format.DateTimeFormat;
+import org.joda.time.format.DateTimeFormatter;
+
+import java.util.Locale;
+
+import javax.inject.Inject;
+
+public class ResultFragmentVM extends ViewModelBase<IResultFragment> implements INavigationObjectReceiver<ColorResult>
+{
+ private INavigationProvider navigationProvider;
+ private ITCCService tccService;
+ public ColorResult colorResult;
+
+ public DependencyProperty<Boolean> isCameraColorToggled;
+ public DependencyProperty<DetectionResponse> detectionResponse;
+ public DependencyProperty<Boolean> isMachineRegistred;
+ public RelayCommand toggleCameraColorCommand;
+ public RelayCommand emailCommand;
+ public RelayCommand renameCommand;
+ public RelayCommand sendToMachineCommand;
+ public RelayCommand registerMachineCommand;
+
+
+ @Inject
+ public ResultFragmentVM(Bus eventBus, INavigationProvider navigationProvider, ITCCService tccService)
+ {
+ this.navigationProvider = navigationProvider;
+ this.tccService = tccService;
+
+ isCameraColorToggled = new DependencyProperty<>(false);
+ isMachineRegistred = new DependencyProperty<>(false);
+ detectionResponse = new DependencyProperty<>(new DetectionResponse());
+ toggleCameraColorCommand = new RelayCommand(this::toggleCameraColor);
+ emailCommand = new RelayCommand(this::handleEmailCommand);
+ renameCommand = new RelayCommand(this::handleRenameCommand);
+ sendToMachineCommand = new RelayCommand(this::handleSendToMachineCommand);
+ registerMachineCommand = new RelayCommand(this::handlerRegisterMachineCommand);
+
+ eventBus.register(this);
+ }
+
+ @Subscribe
+ public void handleMachineRegisteredMessage(MachineRegisteredMessage msg)
+ {
+ isMachineRegistred.set(true);
+ }
+
+ private void handlerRegisterMachineCommand()
+ {
+ navigationProvider.navigateTo(NavigationFragment.Register, true, false);
+ }
+
+ private void handleSendToMachineCommand()
+ {
+ navigationProvider.navigateWithObjectTo(NavigationFragment.SendToMachine, true, false, detectionResponse.get().getProcessedColor());
+ }
+
+ private void handleRenameCommand()
+ {
+ navigationProvider.navigateWithObjectTo(NavigationFragment.Rename, true, false, colorResult);
+ }
+
+ private void handleEmailCommand()
+ {
+ navigationProvider.navigateTo(NavigationActivity.SendToEmail, false);
+ }
+
+ private void toggleCameraColor()
+ {
+ isCameraColorToggled.set(!isCameraColorToggled.get());
+ }
+
+ @Override
+ public void onNavigationObjectReceived(ColorResult colorResult)
+ {
+ this.colorResult = colorResult;
+ this.detectionResponse.set(colorResult.getDetectionResponse());
+ }
+
+ @Override
+ protected void onNavigatedTo()
+ {
+ super.onNavigatedTo();
+
+ try
+ {
+ isMachineRegistred.set(tccService.getDefinition().isRegistered());
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtoemail/ISendToEmailActivity.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtoemail/ISendToEmailActivity.java
new file mode 100644
index 000000000..980d2eb49
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtoemail/ISendToEmailActivity.java
@@ -0,0 +1,7 @@
+package com.twine.colorcapture.views.sendtoemail;
+
+import com.twine.colorcapture.mvvm.IView;
+
+public interface ISendToEmailActivity extends IView
+{
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtoemail/SendToEmailActivity.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtoemail/SendToEmailActivity.java
new file mode 100644
index 000000000..d886de513
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtoemail/SendToEmailActivity.java
@@ -0,0 +1,30 @@
+package com.twine.colorcapture.views.sendtoemail;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+import com.twine.colorcapture.App;
+import com.twine.colorcapture.R;
+import com.twine.colorcapture.databinding.ActivitySendToEmailBinding;
+import com.twine.colorcapture.mvvm.ActivityBase;
+
+public class SendToEmailActivity extends ActivityBase<ActivitySendToEmailBinding, SendToEmailActivityVM> implements ISendToEmailActivity
+{
+ @Override
+ protected void onCreating(Bundle savedInstanceState)
+ {
+
+ }
+
+ @Override
+ protected int getLayoutId()
+ {
+ return R.layout.activity_send_to_email;
+ }
+
+ @Override
+ protected void inject()
+ {
+ App.getComponent().inject(this);
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtoemail/SendToEmailActivityVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtoemail/SendToEmailActivityVM.java
new file mode 100644
index 000000000..77467fff4
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtoemail/SendToEmailActivityVM.java
@@ -0,0 +1,21 @@
+package com.twine.colorcapture.views.sendtoemail;
+
+import com.twine.colorcapture.models.ColorResult;
+import com.twine.colorcapture.mvvm.RelayCommand;
+import com.twine.colorcapture.mvvm.ViewModelBase;
+
+public class SendToEmailActivityVM extends ViewModelBase<ISendToEmailActivity>
+{
+ public RelayCommand sendCommand;
+ public ColorResult colorResult;
+
+ public SendToEmailActivityVM()
+ {
+ sendCommand = new RelayCommand(this::handleSendCommand);
+ }
+
+ private void handleSendCommand()
+ {
+
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtomachine/ISendToMachineFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtomachine/ISendToMachineFragment.java
new file mode 100644
index 000000000..b9fbddac0
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtomachine/ISendToMachineFragment.java
@@ -0,0 +1,7 @@
+package com.twine.colorcapture.views.sendtomachine;
+
+import com.twine.colorcapture.mvvm.IView;
+
+public interface ISendToMachineFragment extends IView
+{
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtomachine/SendToMachineFragment.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtomachine/SendToMachineFragment.java
new file mode 100644
index 000000000..848a760fe
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtomachine/SendToMachineFragment.java
@@ -0,0 +1,28 @@
+package com.twine.colorcapture.views.sendtomachine;
+
+import com.twine.colorcapture.App;
+import com.twine.colorcapture.R;
+import com.twine.colorcapture.databinding.FragmentSendToMachineBinding;
+import com.twine.colorcapture.mvvm.FragmentBase;
+
+public class SendToMachineFragment extends FragmentBase<FragmentSendToMachineBinding, SendToMachineFragmentVM>
+{
+
+ @Override
+ protected int getLayoutId()
+ {
+ return R.layout.fragment_send_to_machine;
+ }
+
+ @Override
+ protected void inject()
+ {
+ App.getComponent().inject(this);
+ }
+
+ @Override
+ public String getTitle()
+ {
+ return "Send to Machine";
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtomachine/SendToMachineFragmentVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtomachine/SendToMachineFragmentVM.java
new file mode 100644
index 000000000..a51d0eb71
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtomachine/SendToMachineFragmentVM.java
@@ -0,0 +1,133 @@
+package com.twine.colorcapture.views.sendtomachine;
+
+import android.databinding.ObservableArrayList;
+import android.databinding.ObservableList;
+import android.view.View;
+import android.widget.AdapterView;
+
+import com.twine.colorcapture.BR;
+import com.twine.colorcapture.R;
+import com.twine.colorcapture.integration.ExternalBridgeClient;
+import com.twine.colorcapture.integration.ExternalBridgeMachine;
+import com.twine.colorcapture.integration.ExternalBridgeScanner;
+import com.twine.colorcapture.mvvm.ViewModelBase;
+import com.twine.colorcapture.navigation.INavigationObjectReceiver;
+import com.twine.colorcapture.navigation.INavigationProvider;
+import com.twine.colorcapture.notification.INotificationProvider;
+import com.twine.colorcapture.web.ITCCService;
+import com.twine.colorcapture.web.messages.DetectionColor;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import javax.inject.Inject;
+
+import me.tatarka.bindingcollectionadapter2.ItemBinding;
+
+import static br.com.zbra.androidlinq.Linq.stream;
+
+public class SendToMachineFragmentVM extends ViewModelBase<ISendToMachineFragment> implements INavigationObjectReceiver<DetectionColor>
+{
+ private ExternalBridgeScanner scanner;
+ private DetectionColor detectionColor;
+ private INotificationProvider notificationProvider;
+ private INavigationProvider navigationProvider;
+ private ITCCService tccService;
+
+ public ObservableList<ExternalBridgeMachine> machines;
+ public ItemBinding<String> machineBinding;
+
+ @Inject
+ public SendToMachineFragmentVM(INotificationProvider notificationProvider, INavigationProvider navigationProvider, ITCCService tccService)
+ {
+ this.notificationProvider = notificationProvider;
+ this.navigationProvider = navigationProvider;
+ this.tccService = tccService;
+
+ machines = new ObservableArrayList<>();
+ scanner = new ExternalBridgeScanner();
+ machineBinding = ItemBinding.of(BR.machine, R.layout.external_machine_item);
+
+ scanner.addMachineDiscoveredEventHandler(this::onMachineDiscovered);
+ scanner.addMachineDisconnectedEventHandler(this::onMachineDisconnected);
+ }
+
+ private void onMachineDisconnected(Object o, ExternalBridgeMachine machine)
+ {
+ if (stream(tccService.getOrganizationMachines()).any(x -> x.equals(machine.getSerialNumber())))
+ {
+ invokeUI(() ->
+ {
+ machines.remove(machine);
+ });
+ }
+ }
+
+ private void onMachineDiscovered(Object o, ExternalBridgeMachine machine)
+ {
+ if (stream(tccService.getOrganizationMachines()).any(x -> x.equals(machine.getSerialNumber())))
+ {
+ invokeUI(() ->
+ {
+ machines.add(0, machine);
+ });
+ }
+ }
+
+ @Override
+ protected void onNavigatedTo()
+ {
+ super.onNavigatedTo();
+ machines.clear();
+ scanner.start();
+ }
+
+ @Override
+ protected void onNavigatedFrom()
+ {
+ machines.clear();
+ super.onNavigatedFrom();
+ scanner.stop();
+ }
+
+ @Override
+ public void onNavigationObjectReceived(DetectionColor detectionColor)
+ {
+ this.detectionColor = detectionColor;
+ }
+
+ public void onMachineSelected(AdapterView<?> adapterView, View view, int i, long l)
+ {
+ ExternalBridgeMachine machine = (ExternalBridgeMachine) adapterView.getAdapter().getItem(i);
+
+ AtomicBoolean canceled = new AtomicBoolean(false);
+
+ notificationProvider.showProgress("Send To Machine", "Sending your color...", (vm) ->
+ {
+ canceled.set(true);
+ });
+
+ ExternalBridgeClient client = new ExternalBridgeClient();
+ client.sendColorProfile(machine, detectionColor, () ->
+ {
+ if (!canceled.get())
+ {
+ invokeUI(() ->
+ {
+ notificationProvider.showSuccess("Sending To Machine", "Color sent successfully.", null);
+ navigationProvider.navigateBack();
+ });
+ }
+
+ }, (ex) ->
+ {
+ if (!canceled.get())
+ {
+ invokeUI(() ->
+ {
+ notificationProvider.showError("Sending To Machine", ex.getMessage(), null);
+ navigationProvider.navigateBack();
+ });
+ }
+ });
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/ITCCService.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/ITCCService.java
new file mode 100644
index 000000000..362abe121
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/ITCCService.java
@@ -0,0 +1,24 @@
+package com.twine.colorcapture.web;
+
+import android.graphics.Bitmap;
+
+import com.twine.colorcapture.web.messages.DefinitionResponse;
+import com.twine.colorcapture.web.messages.DetectionRequest;
+import com.twine.colorcapture.web.messages.DetectionResponse;
+import com.twine.colorcapture.web.messages.MachineRegistrationResponse;
+
+import java.io.IOException;
+import java.util.List;
+
+public interface ITCCService
+{
+ DefinitionResponse getDefinition() throws Exception;
+
+ DetectionResponse detect(Bitmap bitmap, String barcode) throws Exception;
+
+ MachineRegistrationResponse register(String serialNumber) throws Exception;
+
+ boolean isRegistered();
+
+ List<String> getOrganizationMachines();
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/IWebServiceAPI.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/IWebServiceAPI.java
new file mode 100644
index 000000000..fe292a839
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/IWebServiceAPI.java
@@ -0,0 +1,30 @@
+package com.twine.colorcapture.web;
+
+import com.twine.colorcapture.web.messages.DefinitionRequest;
+import com.twine.colorcapture.web.messages.DefinitionResponse;
+import com.twine.colorcapture.web.messages.DetectionRequest;
+import com.twine.colorcapture.web.messages.DetectionResponse;
+import com.twine.colorcapture.web.messages.LoginRequest;
+import com.twine.colorcapture.web.messages.LoginResponse;
+import com.twine.colorcapture.web.messages.MachineRegistrationRequest;
+import com.twine.colorcapture.web.messages.MachineRegistrationResponse;
+
+import io.reactivex.Observable;
+import retrofit2.Call;
+import retrofit2.http.Body;
+import retrofit2.http.POST;
+
+public interface IWebServiceAPI
+{
+ @POST("ColorDetection/Login")
+ Call<LoginResponse> login(@Body LoginRequest request);
+
+ @POST("ColorDetection/GetDefinition")
+ Call<DefinitionResponse> getDefinition(@Body DefinitionRequest request);
+
+ @POST("ColorDetection/Detect")
+ Call<DetectionResponse> detect(@Body DetectionRequest request);
+
+ @POST("ColorDetection/Register")
+ Call<MachineRegistrationResponse> register(@Body MachineRegistrationRequest request);
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/TCCService.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/TCCService.java
new file mode 100644
index 000000000..6999d2f0e
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/TCCService.java
@@ -0,0 +1,191 @@
+package com.twine.colorcapture.web;
+
+import android.content.SharedPreferences;
+import android.graphics.Bitmap;
+import android.os.Build;
+import android.provider.Settings;
+import android.util.Base64;
+
+import com.twine.colorcapture.BuildConfig;
+import com.twine.colorcapture.logging.LogManager;
+import com.twine.colorcapture.utils.BitmapUtils;
+import com.twine.colorcapture.web.messages.DefinitionRequest;
+import com.twine.colorcapture.web.messages.DefinitionResponse;
+import com.twine.colorcapture.web.messages.DetectionRequest;
+import com.twine.colorcapture.web.messages.DetectionResponse;
+import com.twine.colorcapture.web.messages.LoginRequest;
+import com.twine.colorcapture.web.messages.LoginResponse;
+import com.twine.colorcapture.web.messages.MachineRegistrationRequest;
+import com.twine.colorcapture.web.messages.MachineRegistrationResponse;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.UUID;
+
+import javax.inject.Inject;
+
+import retrofit2.HttpException;
+import retrofit2.Response;
+
+import static android.content.Context.MODE_PRIVATE;
+import static com.twine.colorcapture.App.getContext;
+
+public class TCCService implements ITCCService
+{
+ private DefinitionResponse definition;
+ private IWebServiceAPI webAPI;
+ private LoginResponse loginResponse;
+ private static final String DEVICE_ID_PREF_NAME = "DeviceIdFile";
+ private boolean isRegistered;
+ private List<String> organizationMachines;
+
+ @Inject
+ public TCCService(IWebServiceAPI webServiceAPI)
+ {
+ this.webAPI = webServiceAPI;
+ }
+
+ @Override
+ public DefinitionResponse getDefinition() throws Exception
+ {
+ LogManager.log("Retrieving definition...");
+
+ ensureAuthenticated();
+
+ if (definition == null)
+ {
+ Response<DefinitionResponse> response = webAPI.getDefinition(new DefinitionRequest()).execute();
+
+ if (response.isSuccessful())
+ {
+ definition = response.body();
+ isRegistered = definition.isRegistered();
+ organizationMachines = definition.getOrganizationMachines();
+
+ LogManager.log("Definition retrieved.", definition);
+ }
+ else
+ {
+ throw LogManager.log(new Exception(response.message()));
+ }
+ }
+
+ return definition;
+ }
+
+ @Override
+ public DetectionResponse detect(Bitmap bitmap, String barcode) throws Exception
+ {
+ ensureAuthenticated();
+
+ DetectionRequest request = new DetectionRequest();
+
+ request.setBitmapString(BitmapUtils.getBitmapBase64String(bitmap));
+ request.setBarcode(barcode);
+
+ Response<DetectionResponse> response = webAPI.detect(request).execute();
+
+ if (response.isSuccessful())
+ {
+ return response.body();
+ }
+ else
+ {
+ throw new Exception(response.message());
+ }
+ }
+
+ @Override
+ public MachineRegistrationResponse register(String serialNumber) throws Exception
+ {
+ LogManager.log("Registering machine...");
+
+ ensureAuthenticated();
+
+ MachineRegistrationRequest request = new MachineRegistrationRequest();
+ request.setSerialnumber(serialNumber);
+
+ LogManager.log("Sending machine registration request:", request);
+
+ Response<MachineRegistrationResponse> response = webAPI.register(request).execute();
+
+ if (response.isSuccessful())
+ {
+ MachineRegistrationResponse r = response.body();
+
+ LogManager.log("Machine registration successful.", r);
+
+ isRegistered = true;
+ organizationMachines = r.getOrganizationMachines();
+ return r;
+ }
+ else
+ {
+ throw LogManager.log(new Exception(response.message()), "Machine registration failed.");
+ }
+ }
+
+ private void ensureAuthenticated() throws Exception
+ {
+ if (loginResponse == null)
+ {
+ login();
+ }
+ }
+
+ private LoginResponse login() throws Exception
+ {
+ LogManager.log("Logging in to TCC service...");
+
+ LoginRequest request = new LoginRequest();
+ request.setAppId(BuildConfig.WEB_SERVICE_APP_ID);
+
+ String deviceId;
+
+ LogManager.log("Getting device id from shared preferences...");
+
+ SharedPreferences prefs = getContext().getSharedPreferences(DEVICE_ID_PREF_NAME, MODE_PRIVATE);
+ deviceId = prefs.getString("DeviceId", null);
+
+ if (deviceId == null)
+ {
+ LogManager.log("Device id was not found in shared preferences. Generating device id...");
+ deviceId = UUID.randomUUID().toString();
+ SharedPreferences.Editor editor = getContext().getSharedPreferences(DEVICE_ID_PREF_NAME, MODE_PRIVATE).edit();
+ editor.putString("DeviceId", deviceId);
+ editor.apply();
+ }
+
+ LogManager.log("Device id: " + deviceId + ".");
+
+ request.setDeviceId(deviceId);
+ request.setDevice(Build.MANUFACTURER + " " + Build.MODEL);
+ request.setOsVersion(Build.VERSION_CODES.class.getFields()[android.os.Build.VERSION.SDK_INT].getName());
+
+ LogManager.log("Sending log-in request:", request);
+
+ Response<LoginResponse> response = webAPI.login(request).execute();
+
+ if (response.isSuccessful())
+ {
+ loginResponse = response.body();
+ LogManager.log("Login response received:", loginResponse);
+ WebApiFactory.setAuthenticationToken(loginResponse.getAccessToken());
+ return loginResponse;
+ }
+ else
+ {
+ throw LogManager.log(new Exception(response.message()), "LogIn request failed.");
+ }
+ }
+
+ public boolean isRegistered()
+ {
+ return isRegistered;
+ }
+
+ public List<String> getOrganizationMachines()
+ {
+ return organizationMachines;
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/WebApiFactory.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/WebApiFactory.java
new file mode 100644
index 000000000..17c4f2d43
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/WebApiFactory.java
@@ -0,0 +1,105 @@
+package com.twine.colorcapture.web;
+
+import com.google.gson.FieldNamingPolicy;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.twine.colorcapture.logging.LogManager;
+
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
+
+import okhttp3.Interceptor;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+import retrofit2.Retrofit;
+import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
+import retrofit2.converter.gson.GsonConverterFactory;
+
+
+/**
+ * Represents the system restful api factory.
+ */
+public class WebApiFactory
+{
+ private static String baseUrl;
+ private static String accessToken;
+
+
+ /**
+ * Initializes the remote base url.
+ *
+ * @param base_url the base url
+ */
+ public static void init(String base_url)
+ {
+ baseUrl = base_url;
+ }
+
+ /**
+ * Gets synchronization api.
+ *
+ * @return the synchronization api
+ */
+ public static IWebServiceAPI getWebServiceApi()
+ {
+ return createAPI(IWebServiceAPI.class, 60);
+ }
+
+ /**
+ * Creates the specified API interface instance.
+ *
+ * @param cls
+ * @param timeout
+ * @param <T>
+ * @return
+ */
+ private static <T> T createAPI(Class<?> cls, int timeout)
+ {
+ OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
+ httpClient.addInterceptor(new Interceptor()
+ {
+ @Override
+ public Response intercept(Chain chain) throws IOException
+ {
+ Request request;
+
+ if (accessToken != null)
+ {
+ request = chain.request().newBuilder().addHeader("Authorization", accessToken).build();
+ }
+ else
+ {
+ request = chain.request().newBuilder().build();
+ }
+
+ return chain.proceed(request);
+ }
+ });
+
+ httpClient.readTimeout(timeout, TimeUnit.SECONDS);
+ httpClient.writeTimeout(timeout, TimeUnit.SECONDS);
+
+ Gson gson = new GsonBuilder()
+ .setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
+ .setLenient()
+ .setDateFormat("yyyy-MM-dd")
+ .create();
+
+ Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl(baseUrl)
+
+// .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
+ .addConverterFactory(GsonConverterFactory.create(gson))
+ .client(httpClient.build())
+ .build();
+
+ return (T) retrofit.create(cls);
+ }
+
+ public static void setAuthenticationToken(String authenticationToken)
+ {
+ accessToken = authenticationToken;
+ }
+}
+
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DefinitionRequest.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DefinitionRequest.java
new file mode 100644
index 000000000..2847847b2
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DefinitionRequest.java
@@ -0,0 +1,5 @@
+package com.twine.colorcapture.web.messages;
+
+public class DefinitionRequest
+{
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DefinitionResponse.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DefinitionResponse.java
new file mode 100644
index 000000000..d5da8ffe6
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DefinitionResponse.java
@@ -0,0 +1,135 @@
+package com.twine.colorcapture.web.messages;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class DefinitionResponse
+{
+ private String templateString;
+ private int sampleWidth;
+ private int sampleHeight;
+ private int cameraWidth;
+ private int cameraHeight;
+ private int histogramMethod;
+ private double similarityTolerance;
+ private boolean enableDoubleChecking;
+ private boolean enforceBarcodeDetection;
+ private boolean isRegistered;
+ private List<String> organizationMachines;
+
+ public boolean isRegistered()
+ {
+ return isRegistered;
+ }
+
+ public void setRegistered(boolean registered)
+ {
+ isRegistered = registered;
+ }
+
+ public List<String> getOrganizationMachines()
+ {
+ return organizationMachines;
+ }
+
+ public void setOrganizationMachines(List<String> organizationMachines)
+ {
+ this.organizationMachines = organizationMachines;
+ }
+
+ public String getTemplateString()
+ {
+ return templateString;
+ }
+
+ public void setTemplateString(String templateString)
+ {
+ this.templateString = templateString;
+ }
+
+ public int getSampleWidth()
+ {
+ return sampleWidth;
+ }
+
+ public void setSampleWidth(int sampleWidth)
+ {
+ this.sampleWidth = sampleWidth;
+ }
+
+ public int getSampleHeight()
+ {
+ return sampleHeight;
+ }
+
+ public void setSampleHeight(int sampleHeight)
+ {
+ this.sampleHeight = sampleHeight;
+ }
+
+ public int getCameraWidth()
+ {
+ return cameraWidth;
+ }
+
+ public void setCameraWidth(int cameraWidth)
+ {
+ this.cameraWidth = cameraWidth;
+ }
+
+ public int getCameraHeight()
+ {
+ return cameraHeight;
+ }
+
+ public void setCameraHeight(int cameraHeight)
+ {
+ this.cameraHeight = cameraHeight;
+ }
+
+ public int getHistogramMethod()
+ {
+ return histogramMethod;
+ }
+
+ public void setHistogramMethod(int histogramMethod)
+ {
+ this.histogramMethod = histogramMethod;
+ }
+
+
+ public double getSimilarityTolerance()
+ {
+ return similarityTolerance;
+ }
+
+ public void setSimilarityTolerance(double similarityTolerance)
+ {
+ this.similarityTolerance = similarityTolerance;
+ }
+
+ public boolean isEnableDoubleChecking()
+ {
+ return enableDoubleChecking;
+ }
+
+ public void setEnableDoubleChecking(boolean enableDoubleChecking)
+ {
+ this.enableDoubleChecking = enableDoubleChecking;
+ }
+
+ public boolean isEnforceBarcodeDetection()
+ {
+ return enforceBarcodeDetection;
+ }
+
+ public void setEnforceBarcodeDetection(boolean enforceBarcodeDetection)
+ {
+ this.enforceBarcodeDetection = enforceBarcodeDetection;
+ }
+
+ public DefinitionResponse()
+ {
+ organizationMachines = new ArrayList<>();
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DetectionColor.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DetectionColor.java
new file mode 100644
index 000000000..f464b61a9
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DetectionColor.java
@@ -0,0 +1,56 @@
+package com.twine.colorcapture.web.messages;
+
+import android.graphics.Color;
+
+public class DetectionColor
+{
+ private int r;
+ private int g;
+ private int b;
+
+ public int getR()
+ {
+ return r;
+ }
+
+ public void setR(int r)
+ {
+ this.r = r;
+ }
+
+ public int getG()
+ {
+ return g;
+ }
+
+ public void setG(int g)
+ {
+ this.g = g;
+ }
+
+ public int getB()
+ {
+ return b;
+ }
+
+ public void setB(int b)
+ {
+ this.b = b;
+ }
+
+ public String getName()
+ {
+ return String.format("%d, %d, %d", r, g, b);
+ }
+
+ @Override
+ public String toString()
+ {
+ return getName();
+ }
+
+ public int getColor()
+ {
+ return Color.rgb(r, g, b);
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DetectionRequest.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DetectionRequest.java
new file mode 100644
index 000000000..5686a6947
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DetectionRequest.java
@@ -0,0 +1,27 @@
+package com.twine.colorcapture.web.messages;
+
+public class DetectionRequest
+{
+ private String bitmapString;
+ private String barcode;
+
+ public String getBitmapString()
+ {
+ return bitmapString;
+ }
+
+ public void setBitmapString(String bitmapString)
+ {
+ this.bitmapString = bitmapString;
+ }
+
+ public String getBarcode()
+ {
+ return barcode;
+ }
+
+ public void setBarcode(String barcode)
+ {
+ this.barcode = barcode;
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DetectionResponse.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DetectionResponse.java
new file mode 100644
index 000000000..2e33a04b5
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/DetectionResponse.java
@@ -0,0 +1,27 @@
+package com.twine.colorcapture.web.messages;
+
+public class DetectionResponse
+{
+ private DetectionColor rawColor;
+ private DetectionColor processedColor;
+
+ public DetectionColor getRawColor()
+ {
+ return rawColor;
+ }
+
+ public void setRawColor(DetectionColor rawColor)
+ {
+ this.rawColor = rawColor;
+ }
+
+ public DetectionColor getProcessedColor()
+ {
+ return processedColor;
+ }
+
+ public void setProcessedColor(DetectionColor processedColor)
+ {
+ this.processedColor = processedColor;
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/LoginRequest.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/LoginRequest.java
new file mode 100644
index 000000000..c49dcafe8
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/LoginRequest.java
@@ -0,0 +1,49 @@
+package com.twine.colorcapture.web.messages;
+
+public class LoginRequest
+{
+ private String appId;
+ private String device;
+ private String deviceId;
+ private String osVersion;
+
+ public String getAppId()
+ {
+ return appId;
+ }
+
+ public void setAppId(String appId)
+ {
+ this.appId = appId;
+ }
+
+ public String getDevice()
+ {
+ return device;
+ }
+
+ public void setDevice(String device)
+ {
+ this.device = device;
+ }
+
+ public String getDeviceId()
+ {
+ return deviceId;
+ }
+
+ public void setDeviceId(String deviceId)
+ {
+ this.deviceId = deviceId;
+ }
+
+ public String getOsVersion()
+ {
+ return osVersion;
+ }
+
+ public void setOsVersion(String osVersion)
+ {
+ this.osVersion = osVersion;
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/LoginResponse.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/LoginResponse.java
new file mode 100644
index 000000000..4c719f32e
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/LoginResponse.java
@@ -0,0 +1,16 @@
+package com.twine.colorcapture.web.messages;
+
+public class LoginResponse
+{
+ private String accessToken;
+
+ public String getAccessToken()
+ {
+ return accessToken;
+ }
+
+ public void setAccessToken(String accessToken)
+ {
+ this.accessToken = accessToken;
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/MachineRegistrationRequest.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/MachineRegistrationRequest.java
new file mode 100644
index 000000000..1adb8b21b
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/MachineRegistrationRequest.java
@@ -0,0 +1,16 @@
+package com.twine.colorcapture.web.messages;
+
+public class MachineRegistrationRequest
+{
+ public String getSerialnumber()
+ {
+ return serialnumber;
+ }
+
+ public void setSerialnumber(String serialnumber)
+ {
+ this.serialnumber = serialnumber;
+ }
+
+ private String serialnumber;
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/MachineRegistrationResponse.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/MachineRegistrationResponse.java
new file mode 100644
index 000000000..8430eab94
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/web/messages/MachineRegistrationResponse.java
@@ -0,0 +1,24 @@
+package com.twine.colorcapture.web.messages;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class MachineRegistrationResponse
+{
+ private List<String> organizationMachines;
+
+ public List<String> getOrganizationMachines()
+ {
+ return organizationMachines;
+ }
+
+ public void setOrganizationMachines(List<String> organizationMachines)
+ {
+ this.organizationMachines = organizationMachines;
+ }
+
+ public MachineRegistrationResponse()
+ {
+ organizationMachines = new ArrayList<>();
+ }
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/common/ErrorCodeOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/common/ErrorCodeOuterClass.java
new file mode 100644
index 000000000..c9af7f875
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/common/ErrorCodeOuterClass.java
@@ -0,0 +1,630 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: ErrorCode.proto
+
+package com.twine.tango.pmr.common;
+
+public final class ErrorCodeOuterClass {
+ private ErrorCodeOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ /**
+ * Protobuf enum {@code Tango.PMR.Common.ErrorCode}
+ */
+ public enum ErrorCode
+ implements com.google.protobuf.ProtocolMessageEnum {
+ /**
+ * <pre>
+ *General (Needs to be organized)
+ * </pre>
+ *
+ * <code>NONE = 0;</code>
+ */
+ NONE(0),
+ /**
+ * <code>GENERAL_ERROR = 1;</code>
+ */
+ GENERAL_ERROR(1),
+ /**
+ * <code>BAD_CRC = 2;</code>
+ */
+ BAD_CRC(2),
+ /**
+ * <pre>
+ *Can be returned by SetDigitalOutResponse.
+ * </pre>
+ *
+ * <code>INVALID_DIGITAL_PIN_NUMBER = 3;</code>
+ */
+ INVALID_DIGITAL_PIN_NUMBER(3),
+ /**
+ * <pre>
+ *Should be returned if no ConnectionRequest with a valid password was made.
+ * </pre>
+ *
+ * <code>UNAUTHORIZED_CONNECTION = 4;</code>
+ */
+ UNAUTHORIZED_CONNECTION(4),
+ /**
+ * <pre>
+ *Should be returned to a continuous response when aborted by the requesting client.
+ * </pre>
+ *
+ * <code>CONTINUOUS_RESPONSE_ABORTED = 5;</code>
+ */
+ CONTINUOUS_RESPONSE_ABORTED(5),
+ /**
+ * <code>JOB_FAILED = 6;</code>
+ */
+ JOB_FAILED(6),
+ /**
+ * <code>INVALID_PARAMETER = 7;</code>
+ */
+ INVALID_PARAMETER(7),
+ /**
+ * <pre>
+ *IO
+ * </pre>
+ *
+ * <code>INVALID_UPLOAD_ID = 1000;</code>
+ */
+ INVALID_UPLOAD_ID(1000),
+ /**
+ * <pre>
+ *Returned by ExecuteProcessResponse when the FileName was not found.
+ * </pre>
+ *
+ * <code>FILE_NOT_FOUND = 1001;</code>
+ */
+ FILE_NOT_FOUND(1001),
+ /**
+ * <pre>
+ *Returned by KillProcessResponse when the process id was not found.
+ * </pre>
+ *
+ * <code>INVALID_PROCESS_ID = 1002;</code>
+ */
+ INVALID_PROCESS_ID(1002),
+ /**
+ * <pre>
+ *Returned by FileChunkUploadResponse when the uploaded file size exceeds the expected Length from FileUploadRequest.
+ * </pre>
+ *
+ * <code>FILE_LENGTH_OUT_OF_RANGE = 1003;</code>
+ */
+ FILE_LENGTH_OUT_OF_RANGE(1003),
+ /**
+ * <code>FILE_REQUEST_DISK_ERR = 1004;</code>
+ */
+ FILE_REQUEST_DISK_ERR(1004),
+ /**
+ * <code>FILE_REQUEST_INT_ERR = 1005;</code>
+ */
+ FILE_REQUEST_INT_ERR(1005),
+ /**
+ * <code>FILE_REQUEST_NOT_READY = 1006;</code>
+ */
+ FILE_REQUEST_NOT_READY(1006),
+ /**
+ * <code>FILE_REQUEST_NO_FILE = 1007;</code>
+ */
+ FILE_REQUEST_NO_FILE(1007),
+ /**
+ * <code>FILE_REQUEST_NO_PATH = 1008;</code>
+ */
+ FILE_REQUEST_NO_PATH(1008),
+ /**
+ * <code>FILE_REQUEST_INVALID_NAME = 1009;</code>
+ */
+ FILE_REQUEST_INVALID_NAME(1009),
+ /**
+ * <code>FILE_REQUEST_DENIED = 1010;</code>
+ */
+ FILE_REQUEST_DENIED(1010),
+ /**
+ * <code>FILE_REQUEST_EXIST = 1011;</code>
+ */
+ FILE_REQUEST_EXIST(1011),
+ /**
+ * <code>FILE_REQUEST_INVALID_OBJECT = 1012;</code>
+ */
+ FILE_REQUEST_INVALID_OBJECT(1012),
+ /**
+ * <code>FILE_REQUEST_WRITE_PROTECTED = 1013;</code>
+ */
+ FILE_REQUEST_WRITE_PROTECTED(1013),
+ /**
+ * <code>FILE_REQUEST_INVALID_DRIVE = 1014;</code>
+ */
+ FILE_REQUEST_INVALID_DRIVE(1014),
+ /**
+ * <code>FILE_REQUEST_NOT_ENABLED = 1015;</code>
+ */
+ FILE_REQUEST_NOT_ENABLED(1015),
+ /**
+ * <code>FILE_REQUEST_NO_FILESYSTEM = 1016;</code>
+ */
+ FILE_REQUEST_NO_FILESYSTEM(1016),
+ /**
+ * <code>FILE_REQUEST_MKFS_ABORTED = 1017;</code>
+ */
+ FILE_REQUEST_MKFS_ABORTED(1017),
+ /**
+ * <code>FILE_REQUEST_TIMEOUT = 1018;</code>
+ */
+ FILE_REQUEST_TIMEOUT(1018),
+ /**
+ * <code>FILE_REQUEST_LOCKED = 1019;</code>
+ */
+ FILE_REQUEST_LOCKED(1019),
+ /**
+ * <code>FILE_REQUEST_NOT_ENOUGH_CORE = 1020;</code>
+ */
+ FILE_REQUEST_NOT_ENOUGH_CORE(1020),
+ /**
+ * <code>FILE_REQUEST_TOO_MANY_OPEN_FILES = 1021;</code>
+ */
+ FILE_REQUEST_TOO_MANY_OPEN_FILES(1021),
+ /**
+ * <code>FILE_REQUEST_INVALID_PARAMETER = 1022;</code>
+ */
+ FILE_REQUEST_INVALID_PARAMETER(1022),
+ /**
+ * <pre>
+ *Job Failure
+ * </pre>
+ *
+ * <code>JOB_UNSPECIFIED_ERROR = 2000;</code>
+ */
+ JOB_UNSPECIFIED_ERROR(2000),
+ /**
+ * <code>JOB_THREAD_BREAK = 2001;</code>
+ */
+ JOB_THREAD_BREAK(2001),
+ /**
+ * <code>JOB_WINDER_DANCER_FAIL = 2002;</code>
+ */
+ JOB_WINDER_DANCER_FAIL(2002),
+ /**
+ * <code>JOB_POOLER_DANCER_FAIL = 2003;</code>
+ */
+ JOB_POOLER_DANCER_FAIL(2003),
+ /**
+ * <code>JOB_FEEDER_DANCER_FAIL = 2004;</code>
+ */
+ JOB_FEEDER_DANCER_FAIL(2004),
+ /**
+ * <code>JOB_OUT_OF_DYE = 2005;</code>
+ */
+ JOB_OUT_OF_DYE(2005),
+ /**
+ * <code>JOB_OTHER_ALARM = 2006;</code>
+ */
+ JOB_OTHER_ALARM(2006),
+ /**
+ * <pre>
+ *Occurs when ResumeCurrentJobRequest was called but no job is in progress.
+ * </pre>
+ *
+ * <code>NO_JOB_IN_PROGRESS = 2007;</code>
+ */
+ NO_JOB_IN_PROGRESS(2007),
+ /**
+ * <code>JOB_TEMPERATURE_ALARM = 2008;</code>
+ */
+ JOB_TEMPERATURE_ALARM(2008),
+ /**
+ * <code>JOB_LS_ALARM = 2009;</code>
+ */
+ JOB_LS_ALARM(2009),
+ /**
+ * <code>JOB_PRESSURE_ALARM = 2010;</code>
+ */
+ JOB_PRESSURE_ALARM(2010),
+ /**
+ * <code>JOB_CURRENT_ALARM = 2011;</code>
+ */
+ JOB_CURRENT_ALARM(2011),
+ /**
+ * <code>JOB_MOTOR_ALARM = 2012;</code>
+ */
+ JOB_MOTOR_ALARM(2012),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ * <pre>
+ *General (Needs to be organized)
+ * </pre>
+ *
+ * <code>NONE = 0;</code>
+ */
+ public static final int NONE_VALUE = 0;
+ /**
+ * <code>GENERAL_ERROR = 1;</code>
+ */
+ public static final int GENERAL_ERROR_VALUE = 1;
+ /**
+ * <code>BAD_CRC = 2;</code>
+ */
+ public static final int BAD_CRC_VALUE = 2;
+ /**
+ * <pre>
+ *Can be returned by SetDigitalOutResponse.
+ * </pre>
+ *
+ * <code>INVALID_DIGITAL_PIN_NUMBER = 3;</code>
+ */
+ public static final int INVALID_DIGITAL_PIN_NUMBER_VALUE = 3;
+ /**
+ * <pre>
+ *Should be returned if no ConnectionRequest with a valid password was made.
+ * </pre>
+ *
+ * <code>UNAUTHORIZED_CONNECTION = 4;</code>
+ */
+ public static final int UNAUTHORIZED_CONNECTION_VALUE = 4;
+ /**
+ * <pre>
+ *Should be returned to a continuous response when aborted by the requesting client.
+ * </pre>
+ *
+ * <code>CONTINUOUS_RESPONSE_ABORTED = 5;</code>
+ */
+ public static final int CONTINUOUS_RESPONSE_ABORTED_VALUE = 5;
+ /**
+ * <code>JOB_FAILED = 6;</code>
+ */
+ public static final int JOB_FAILED_VALUE = 6;
+ /**
+ * <code>INVALID_PARAMETER = 7;</code>
+ */
+ public static final int INVALID_PARAMETER_VALUE = 7;
+ /**
+ * <pre>
+ *IO
+ * </pre>
+ *
+ * <code>INVALID_UPLOAD_ID = 1000;</code>
+ */
+ public static final int INVALID_UPLOAD_ID_VALUE = 1000;
+ /**
+ * <pre>
+ *Returned by ExecuteProcessResponse when the FileName was not found.
+ * </pre>
+ *
+ * <code>FILE_NOT_FOUND = 1001;</code>
+ */
+ public static final int FILE_NOT_FOUND_VALUE = 1001;
+ /**
+ * <pre>
+ *Returned by KillProcessResponse when the process id was not found.
+ * </pre>
+ *
+ * <code>INVALID_PROCESS_ID = 1002;</code>
+ */
+ public static final int INVALID_PROCESS_ID_VALUE = 1002;
+ /**
+ * <pre>
+ *Returned by FileChunkUploadResponse when the uploaded file size exceeds the expected Length from FileUploadRequest.
+ * </pre>
+ *
+ * <code>FILE_LENGTH_OUT_OF_RANGE = 1003;</code>
+ */
+ public static final int FILE_LENGTH_OUT_OF_RANGE_VALUE = 1003;
+ /**
+ * <code>FILE_REQUEST_DISK_ERR = 1004;</code>
+ */
+ public static final int FILE_REQUEST_DISK_ERR_VALUE = 1004;
+ /**
+ * <code>FILE_REQUEST_INT_ERR = 1005;</code>
+ */
+ public static final int FILE_REQUEST_INT_ERR_VALUE = 1005;
+ /**
+ * <code>FILE_REQUEST_NOT_READY = 1006;</code>
+ */
+ public static final int FILE_REQUEST_NOT_READY_VALUE = 1006;
+ /**
+ * <code>FILE_REQUEST_NO_FILE = 1007;</code>
+ */
+ public static final int FILE_REQUEST_NO_FILE_VALUE = 1007;
+ /**
+ * <code>FILE_REQUEST_NO_PATH = 1008;</code>
+ */
+ public static final int FILE_REQUEST_NO_PATH_VALUE = 1008;
+ /**
+ * <code>FILE_REQUEST_INVALID_NAME = 1009;</code>
+ */
+ public static final int FILE_REQUEST_INVALID_NAME_VALUE = 1009;
+ /**
+ * <code>FILE_REQUEST_DENIED = 1010;</code>
+ */
+ public static final int FILE_REQUEST_DENIED_VALUE = 1010;
+ /**
+ * <code>FILE_REQUEST_EXIST = 1011;</code>
+ */
+ public static final int FILE_REQUEST_EXIST_VALUE = 1011;
+ /**
+ * <code>FILE_REQUEST_INVALID_OBJECT = 1012;</code>
+ */
+ public static final int FILE_REQUEST_INVALID_OBJECT_VALUE = 1012;
+ /**
+ * <code>FILE_REQUEST_WRITE_PROTECTED = 1013;</code>
+ */
+ public static final int FILE_REQUEST_WRITE_PROTECTED_VALUE = 1013;
+ /**
+ * <code>FILE_REQUEST_INVALID_DRIVE = 1014;</code>
+ */
+ public static final int FILE_REQUEST_INVALID_DRIVE_VALUE = 1014;
+ /**
+ * <code>FILE_REQUEST_NOT_ENABLED = 1015;</code>
+ */
+ public static final int FILE_REQUEST_NOT_ENABLED_VALUE = 1015;
+ /**
+ * <code>FILE_REQUEST_NO_FILESYSTEM = 1016;</code>
+ */
+ public static final int FILE_REQUEST_NO_FILESYSTEM_VALUE = 1016;
+ /**
+ * <code>FILE_REQUEST_MKFS_ABORTED = 1017;</code>
+ */
+ public static final int FILE_REQUEST_MKFS_ABORTED_VALUE = 1017;
+ /**
+ * <code>FILE_REQUEST_TIMEOUT = 1018;</code>
+ */
+ public static final int FILE_REQUEST_TIMEOUT_VALUE = 1018;
+ /**
+ * <code>FILE_REQUEST_LOCKED = 1019;</code>
+ */
+ public static final int FILE_REQUEST_LOCKED_VALUE = 1019;
+ /**
+ * <code>FILE_REQUEST_NOT_ENOUGH_CORE = 1020;</code>
+ */
+ public static final int FILE_REQUEST_NOT_ENOUGH_CORE_VALUE = 1020;
+ /**
+ * <code>FILE_REQUEST_TOO_MANY_OPEN_FILES = 1021;</code>
+ */
+ public static final int FILE_REQUEST_TOO_MANY_OPEN_FILES_VALUE = 1021;
+ /**
+ * <code>FILE_REQUEST_INVALID_PARAMETER = 1022;</code>
+ */
+ public static final int FILE_REQUEST_INVALID_PARAMETER_VALUE = 1022;
+ /**
+ * <pre>
+ *Job Failure
+ * </pre>
+ *
+ * <code>JOB_UNSPECIFIED_ERROR = 2000;</code>
+ */
+ public static final int JOB_UNSPECIFIED_ERROR_VALUE = 2000;
+ /**
+ * <code>JOB_THREAD_BREAK = 2001;</code>
+ */
+ public static final int JOB_THREAD_BREAK_VALUE = 2001;
+ /**
+ * <code>JOB_WINDER_DANCER_FAIL = 2002;</code>
+ */
+ public static final int JOB_WINDER_DANCER_FAIL_VALUE = 2002;
+ /**
+ * <code>JOB_POOLER_DANCER_FAIL = 2003;</code>
+ */
+ public static final int JOB_POOLER_DANCER_FAIL_VALUE = 2003;
+ /**
+ * <code>JOB_FEEDER_DANCER_FAIL = 2004;</code>
+ */
+ public static final int JOB_FEEDER_DANCER_FAIL_VALUE = 2004;
+ /**
+ * <code>JOB_OUT_OF_DYE = 2005;</code>
+ */
+ public static final int JOB_OUT_OF_DYE_VALUE = 2005;
+ /**
+ * <code>JOB_OTHER_ALARM = 2006;</code>
+ */
+ public static final int JOB_OTHER_ALARM_VALUE = 2006;
+ /**
+ * <pre>
+ *Occurs when ResumeCurrentJobRequest was called but no job is in progress.
+ * </pre>
+ *
+ * <code>NO_JOB_IN_PROGRESS = 2007;</code>
+ */
+ public static final int NO_JOB_IN_PROGRESS_VALUE = 2007;
+ /**
+ * <code>JOB_TEMPERATURE_ALARM = 2008;</code>
+ */
+ public static final int JOB_TEMPERATURE_ALARM_VALUE = 2008;
+ /**
+ * <code>JOB_LS_ALARM = 2009;</code>
+ */
+ public static final int JOB_LS_ALARM_VALUE = 2009;
+ /**
+ * <code>JOB_PRESSURE_ALARM = 2010;</code>
+ */
+ public static final int JOB_PRESSURE_ALARM_VALUE = 2010;
+ /**
+ * <code>JOB_CURRENT_ALARM = 2011;</code>
+ */
+ public static final int JOB_CURRENT_ALARM_VALUE = 2011;
+ /**
+ * <code>JOB_MOTOR_ALARM = 2012;</code>
+ */
+ public static final int JOB_MOTOR_ALARM_VALUE = 2012;
+
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static ErrorCode valueOf(int value) {
+ return forNumber(value);
+ }
+
+ public static ErrorCode forNumber(int value) {
+ switch (value) {
+ case 0: return NONE;
+ case 1: return GENERAL_ERROR;
+ case 2: return BAD_CRC;
+ case 3: return INVALID_DIGITAL_PIN_NUMBER;
+ case 4: return UNAUTHORIZED_CONNECTION;
+ case 5: return CONTINUOUS_RESPONSE_ABORTED;
+ case 6: return JOB_FAILED;
+ case 7: return INVALID_PARAMETER;
+ case 1000: return INVALID_UPLOAD_ID;
+ case 1001: return FILE_NOT_FOUND;
+ case 1002: return INVALID_PROCESS_ID;
+ case 1003: return FILE_LENGTH_OUT_OF_RANGE;
+ case 1004: return FILE_REQUEST_DISK_ERR;
+ case 1005: return FILE_REQUEST_INT_ERR;
+ case 1006: return FILE_REQUEST_NOT_READY;
+ case 1007: return FILE_REQUEST_NO_FILE;
+ case 1008: return FILE_REQUEST_NO_PATH;
+ case 1009: return FILE_REQUEST_INVALID_NAME;
+ case 1010: return FILE_REQUEST_DENIED;
+ case 1011: return FILE_REQUEST_EXIST;
+ case 1012: return FILE_REQUEST_INVALID_OBJECT;
+ case 1013: return FILE_REQUEST_WRITE_PROTECTED;
+ case 1014: return FILE_REQUEST_INVALID_DRIVE;
+ case 1015: return FILE_REQUEST_NOT_ENABLED;
+ case 1016: return FILE_REQUEST_NO_FILESYSTEM;
+ case 1017: return FILE_REQUEST_MKFS_ABORTED;
+ case 1018: return FILE_REQUEST_TIMEOUT;
+ case 1019: return FILE_REQUEST_LOCKED;
+ case 1020: return FILE_REQUEST_NOT_ENOUGH_CORE;
+ case 1021: return FILE_REQUEST_TOO_MANY_OPEN_FILES;
+ case 1022: return FILE_REQUEST_INVALID_PARAMETER;
+ case 2000: return JOB_UNSPECIFIED_ERROR;
+ case 2001: return JOB_THREAD_BREAK;
+ case 2002: return JOB_WINDER_DANCER_FAIL;
+ case 2003: return JOB_POOLER_DANCER_FAIL;
+ case 2004: return JOB_FEEDER_DANCER_FAIL;
+ case 2005: return JOB_OUT_OF_DYE;
+ case 2006: return JOB_OTHER_ALARM;
+ case 2007: return NO_JOB_IN_PROGRESS;
+ case 2008: return JOB_TEMPERATURE_ALARM;
+ case 2009: return JOB_LS_ALARM;
+ case 2010: return JOB_PRESSURE_ALARM;
+ case 2011: return JOB_CURRENT_ALARM;
+ case 2012: return JOB_MOTOR_ALARM;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<ErrorCode>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static final com.google.protobuf.Internal.EnumLiteMap<
+ ErrorCode> internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<ErrorCode>() {
+ public ErrorCode findValueByNumber(int number) {
+ return ErrorCode.forNumber(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ return getDescriptor().getValues().get(ordinal());
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.common.ErrorCodeOuterClass.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final ErrorCode[] VALUES = values();
+
+ public static ErrorCode valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ if (desc.getIndex() == -1) {
+ return UNRECOGNIZED;
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int value;
+
+ private ErrorCode(int value) {
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:Tango.PMR.Common.ErrorCode)
+ }
+
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\017ErrorCode.proto\022\020Tango.PMR.Common*\252\t\n\t" +
+ "ErrorCode\022\010\n\004NONE\020\000\022\021\n\rGENERAL_ERROR\020\001\022\013" +
+ "\n\007BAD_CRC\020\002\022\036\n\032INVALID_DIGITAL_PIN_NUMBE" +
+ "R\020\003\022\033\n\027UNAUTHORIZED_CONNECTION\020\004\022\037\n\033CONT" +
+ "INUOUS_RESPONSE_ABORTED\020\005\022\016\n\nJOB_FAILED\020" +
+ "\006\022\025\n\021INVALID_PARAMETER\020\007\022\026\n\021INVALID_UPLO" +
+ "AD_ID\020\350\007\022\023\n\016FILE_NOT_FOUND\020\351\007\022\027\n\022INVALID" +
+ "_PROCESS_ID\020\352\007\022\035\n\030FILE_LENGTH_OUT_OF_RAN" +
+ "GE\020\353\007\022\032\n\025FILE_REQUEST_DISK_ERR\020\354\007\022\031\n\024FIL" +
+ "E_REQUEST_INT_ERR\020\355\007\022\033\n\026FILE_REQUEST_NOT",
+ "_READY\020\356\007\022\031\n\024FILE_REQUEST_NO_FILE\020\357\007\022\031\n\024" +
+ "FILE_REQUEST_NO_PATH\020\360\007\022\036\n\031FILE_REQUEST_" +
+ "INVALID_NAME\020\361\007\022\030\n\023FILE_REQUEST_DENIED\020\362" +
+ "\007\022\027\n\022FILE_REQUEST_EXIST\020\363\007\022 \n\033FILE_REQUE" +
+ "ST_INVALID_OBJECT\020\364\007\022!\n\034FILE_REQUEST_WRI" +
+ "TE_PROTECTED\020\365\007\022\037\n\032FILE_REQUEST_INVALID_" +
+ "DRIVE\020\366\007\022\035\n\030FILE_REQUEST_NOT_ENABLED\020\367\007\022" +
+ "\037\n\032FILE_REQUEST_NO_FILESYSTEM\020\370\007\022\036\n\031FILE" +
+ "_REQUEST_MKFS_ABORTED\020\371\007\022\031\n\024FILE_REQUEST" +
+ "_TIMEOUT\020\372\007\022\030\n\023FILE_REQUEST_LOCKED\020\373\007\022!\n",
+ "\034FILE_REQUEST_NOT_ENOUGH_CORE\020\374\007\022%\n FILE" +
+ "_REQUEST_TOO_MANY_OPEN_FILES\020\375\007\022#\n\036FILE_" +
+ "REQUEST_INVALID_PARAMETER\020\376\007\022\032\n\025JOB_UNSP" +
+ "ECIFIED_ERROR\020\320\017\022\025\n\020JOB_THREAD_BREAK\020\321\017\022" +
+ "\033\n\026JOB_WINDER_DANCER_FAIL\020\322\017\022\033\n\026JOB_POOL" +
+ "ER_DANCER_FAIL\020\323\017\022\033\n\026JOB_FEEDER_DANCER_F" +
+ "AIL\020\324\017\022\023\n\016JOB_OUT_OF_DYE\020\325\017\022\024\n\017JOB_OTHER" +
+ "_ALARM\020\326\017\022\027\n\022NO_JOB_IN_PROGRESS\020\327\017\022\032\n\025JO" +
+ "B_TEMPERATURE_ALARM\020\330\017\022\021\n\014JOB_LS_ALARM\020\331" +
+ "\017\022\027\n\022JOB_PRESSURE_ALARM\020\332\017\022\026\n\021JOB_CURREN",
+ "T_ALARM\020\333\017\022\024\n\017JOB_MOTOR_ALARM\020\334\017B\034\n\032com." +
+ "twine.tango.pmr.commonb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/common/ErrorResponseOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/common/ErrorResponseOuterClass.java
new file mode 100644
index 000000000..a214acca5
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/common/ErrorResponseOuterClass.java
@@ -0,0 +1,440 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: ErrorResponse.proto
+
+package com.twine.tango.pmr.common;
+
+public final class ErrorResponseOuterClass {
+ private ErrorResponseOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface ErrorResponseOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Common.ErrorResponse)
+ com.google.protobuf.MessageOrBuilder {
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Common.ErrorResponse}
+ */
+ public static final class ErrorResponse extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Common.ErrorResponse)
+ ErrorResponseOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use ErrorResponse.newBuilder() to construct.
+ private ErrorResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private ErrorResponse() {
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private ErrorResponse(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.common.ErrorResponseOuterClass.internal_static_Tango_PMR_Common_ErrorResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.common.ErrorResponseOuterClass.internal_static_Tango_PMR_Common_ErrorResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse.class, com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse.Builder.class);
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse other = (com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse) obj;
+
+ boolean result = true;
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Common.ErrorResponse}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Common.ErrorResponse)
+ com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.common.ErrorResponseOuterClass.internal_static_Tango_PMR_Common_ErrorResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.common.ErrorResponseOuterClass.internal_static_Tango_PMR_Common_ErrorResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse.class, com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.common.ErrorResponseOuterClass.internal_static_Tango_PMR_Common_ErrorResponse_descriptor;
+ }
+
+ public com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse getDefaultInstanceForType() {
+ return com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse build() {
+ com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse buildPartial() {
+ com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse result = new com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse(this);
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse) {
+ return mergeFrom((com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse other) {
+ if (other == com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse.getDefaultInstance()) return this;
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Common.ErrorResponse)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Common.ErrorResponse)
+ private static final com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse();
+ }
+
+ public static com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<ErrorResponse>
+ PARSER = new com.google.protobuf.AbstractParser<ErrorResponse>() {
+ public ErrorResponse parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new ErrorResponse(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<ErrorResponse> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<ErrorResponse> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.common.ErrorResponseOuterClass.ErrorResponse getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Common_ErrorResponse_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Common_ErrorResponse_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\023ErrorResponse.proto\022\020Tango.PMR.Common\"" +
+ "\017\n\rErrorResponseB\034\n\032com.twine.tango.pmr." +
+ "commonb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Common_ErrorResponse_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Common_ErrorResponse_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Common_ErrorResponse_descriptor,
+ new java.lang.String[] { });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/common/MessageContainerOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/common/MessageContainerOuterClass.java
new file mode 100644
index 000000000..1d43e553b
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/common/MessageContainerOuterClass.java
@@ -0,0 +1,1293 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: MessageContainer.proto
+
+package com.twine.tango.pmr.common;
+
+public final class MessageContainerOuterClass {
+ private MessageContainerOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface MessageContainerOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Common.MessageContainer)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>.Tango.PMR.Common.MessageType Type = 1;</code>
+ */
+ int getTypeValue();
+ /**
+ * <code>.Tango.PMR.Common.MessageType Type = 1;</code>
+ */
+ com.twine.tango.pmr.common.MessageTypeOuterClass.MessageType getType();
+
+ /**
+ * <code>string Token = 2;</code>
+ */
+ java.lang.String getToken();
+ /**
+ * <code>string Token = 2;</code>
+ */
+ com.google.protobuf.ByteString
+ getTokenBytes();
+
+ /**
+ * <code>uint32 Timeout = 3;</code>
+ */
+ int getTimeout();
+
+ /**
+ * <code>bool Continuous = 4;</code>
+ */
+ boolean getContinuous();
+
+ /**
+ * <code>uint32 ContinuousTimeout = 5;</code>
+ */
+ int getContinuousTimeout();
+
+ /**
+ * <code>bool Completed = 6;</code>
+ */
+ boolean getCompleted();
+
+ /**
+ * <code>bytes Data = 7;</code>
+ */
+ com.google.protobuf.ByteString getData();
+
+ /**
+ * <code>uint32 CRC = 8;</code>
+ */
+ int getCRC();
+
+ /**
+ * <code>.Tango.PMR.Common.ErrorCode Error = 9;</code>
+ */
+ int getErrorValue();
+ /**
+ * <code>.Tango.PMR.Common.ErrorCode Error = 9;</code>
+ */
+ com.twine.tango.pmr.common.ErrorCodeOuterClass.ErrorCode getError();
+
+ /**
+ * <code>string ErrorMessage = 10;</code>
+ */
+ java.lang.String getErrorMessage();
+ /**
+ * <code>string ErrorMessage = 10;</code>
+ */
+ com.google.protobuf.ByteString
+ getErrorMessageBytes();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Common.MessageContainer}
+ */
+ public static final class MessageContainer extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Common.MessageContainer)
+ MessageContainerOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use MessageContainer.newBuilder() to construct.
+ private MessageContainer(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private MessageContainer() {
+ type_ = 0;
+ token_ = "";
+ timeout_ = 0;
+ continuous_ = false;
+ continuousTimeout_ = 0;
+ completed_ = false;
+ data_ = com.google.protobuf.ByteString.EMPTY;
+ cRC_ = 0;
+ error_ = 0;
+ errorMessage_ = "";
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private MessageContainer(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+ int rawValue = input.readEnum();
+
+ type_ = rawValue;
+ break;
+ }
+ case 18: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ token_ = s;
+ break;
+ }
+ case 24: {
+
+ timeout_ = input.readUInt32();
+ break;
+ }
+ case 32: {
+
+ continuous_ = input.readBool();
+ break;
+ }
+ case 40: {
+
+ continuousTimeout_ = input.readUInt32();
+ break;
+ }
+ case 48: {
+
+ completed_ = input.readBool();
+ break;
+ }
+ case 58: {
+
+ data_ = input.readBytes();
+ break;
+ }
+ case 64: {
+
+ cRC_ = input.readUInt32();
+ break;
+ }
+ case 72: {
+ int rawValue = input.readEnum();
+
+ error_ = rawValue;
+ break;
+ }
+ case 82: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ errorMessage_ = s;
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.common.MessageContainerOuterClass.internal_static_Tango_PMR_Common_MessageContainer_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.common.MessageContainerOuterClass.internal_static_Tango_PMR_Common_MessageContainer_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer.class, com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer.Builder.class);
+ }
+
+ public static final int TYPE_FIELD_NUMBER = 1;
+ private int type_;
+ /**
+ * <code>.Tango.PMR.Common.MessageType Type = 1;</code>
+ */
+ public int getTypeValue() {
+ return type_;
+ }
+ /**
+ * <code>.Tango.PMR.Common.MessageType Type = 1;</code>
+ */
+ public com.twine.tango.pmr.common.MessageTypeOuterClass.MessageType getType() {
+ com.twine.tango.pmr.common.MessageTypeOuterClass.MessageType result = com.twine.tango.pmr.common.MessageTypeOuterClass.MessageType.valueOf(type_);
+ return result == null ? com.twine.tango.pmr.common.MessageTypeOuterClass.MessageType.UNRECOGNIZED : result;
+ }
+
+ public static final int TOKEN_FIELD_NUMBER = 2;
+ private volatile java.lang.Object token_;
+ /**
+ * <code>string Token = 2;</code>
+ */
+ public java.lang.String getToken() {
+ java.lang.Object ref = token_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ token_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string Token = 2;</code>
+ */
+ public com.google.protobuf.ByteString
+ getTokenBytes() {
+ java.lang.Object ref = token_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ token_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int TIMEOUT_FIELD_NUMBER = 3;
+ private int timeout_;
+ /**
+ * <code>uint32 Timeout = 3;</code>
+ */
+ public int getTimeout() {
+ return timeout_;
+ }
+
+ public static final int CONTINUOUS_FIELD_NUMBER = 4;
+ private boolean continuous_;
+ /**
+ * <code>bool Continuous = 4;</code>
+ */
+ public boolean getContinuous() {
+ return continuous_;
+ }
+
+ public static final int CONTINUOUSTIMEOUT_FIELD_NUMBER = 5;
+ private int continuousTimeout_;
+ /**
+ * <code>uint32 ContinuousTimeout = 5;</code>
+ */
+ public int getContinuousTimeout() {
+ return continuousTimeout_;
+ }
+
+ public static final int COMPLETED_FIELD_NUMBER = 6;
+ private boolean completed_;
+ /**
+ * <code>bool Completed = 6;</code>
+ */
+ public boolean getCompleted() {
+ return completed_;
+ }
+
+ public static final int DATA_FIELD_NUMBER = 7;
+ private com.google.protobuf.ByteString data_;
+ /**
+ * <code>bytes Data = 7;</code>
+ */
+ public com.google.protobuf.ByteString getData() {
+ return data_;
+ }
+
+ public static final int CRC_FIELD_NUMBER = 8;
+ private int cRC_;
+ /**
+ * <code>uint32 CRC = 8;</code>
+ */
+ public int getCRC() {
+ return cRC_;
+ }
+
+ public static final int ERROR_FIELD_NUMBER = 9;
+ private int error_;
+ /**
+ * <code>.Tango.PMR.Common.ErrorCode Error = 9;</code>
+ */
+ public int getErrorValue() {
+ return error_;
+ }
+ /**
+ * <code>.Tango.PMR.Common.ErrorCode Error = 9;</code>
+ */
+ public com.twine.tango.pmr.common.ErrorCodeOuterClass.ErrorCode getError() {
+ com.twine.tango.pmr.common.ErrorCodeOuterClass.ErrorCode result = com.twine.tango.pmr.common.ErrorCodeOuterClass.ErrorCode.valueOf(error_);
+ return result == null ? com.twine.tango.pmr.common.ErrorCodeOuterClass.ErrorCode.UNRECOGNIZED : result;
+ }
+
+ public static final int ERRORMESSAGE_FIELD_NUMBER = 10;
+ private volatile java.lang.Object errorMessage_;
+ /**
+ * <code>string ErrorMessage = 10;</code>
+ */
+ public java.lang.String getErrorMessage() {
+ java.lang.Object ref = errorMessage_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ errorMessage_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string ErrorMessage = 10;</code>
+ */
+ public com.google.protobuf.ByteString
+ getErrorMessageBytes() {
+ java.lang.Object ref = errorMessage_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ errorMessage_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (type_ != com.twine.tango.pmr.common.MessageTypeOuterClass.MessageType.None.getNumber()) {
+ output.writeEnum(1, type_);
+ }
+ if (!getTokenBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, token_);
+ }
+ if (timeout_ != 0) {
+ output.writeUInt32(3, timeout_);
+ }
+ if (continuous_ != false) {
+ output.writeBool(4, continuous_);
+ }
+ if (continuousTimeout_ != 0) {
+ output.writeUInt32(5, continuousTimeout_);
+ }
+ if (completed_ != false) {
+ output.writeBool(6, completed_);
+ }
+ if (!data_.isEmpty()) {
+ output.writeBytes(7, data_);
+ }
+ if (cRC_ != 0) {
+ output.writeUInt32(8, cRC_);
+ }
+ if (error_ != com.twine.tango.pmr.common.ErrorCodeOuterClass.ErrorCode.NONE.getNumber()) {
+ output.writeEnum(9, error_);
+ }
+ if (!getErrorMessageBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 10, errorMessage_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (type_ != com.twine.tango.pmr.common.MessageTypeOuterClass.MessageType.None.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(1, type_);
+ }
+ if (!getTokenBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, token_);
+ }
+ if (timeout_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(3, timeout_);
+ }
+ if (continuous_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(4, continuous_);
+ }
+ if (continuousTimeout_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(5, continuousTimeout_);
+ }
+ if (completed_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(6, completed_);
+ }
+ if (!data_.isEmpty()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(7, data_);
+ }
+ if (cRC_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeUInt32Size(8, cRC_);
+ }
+ if (error_ != com.twine.tango.pmr.common.ErrorCodeOuterClass.ErrorCode.NONE.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(9, error_);
+ }
+ if (!getErrorMessageBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, errorMessage_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer other = (com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer) obj;
+
+ boolean result = true;
+ result = result && type_ == other.type_;
+ result = result && getToken()
+ .equals(other.getToken());
+ result = result && (getTimeout()
+ == other.getTimeout());
+ result = result && (getContinuous()
+ == other.getContinuous());
+ result = result && (getContinuousTimeout()
+ == other.getContinuousTimeout());
+ result = result && (getCompleted()
+ == other.getCompleted());
+ result = result && getData()
+ .equals(other.getData());
+ result = result && (getCRC()
+ == other.getCRC());
+ result = result && error_ == other.error_;
+ result = result && getErrorMessage()
+ .equals(other.getErrorMessage());
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + TYPE_FIELD_NUMBER;
+ hash = (53 * hash) + type_;
+ hash = (37 * hash) + TOKEN_FIELD_NUMBER;
+ hash = (53 * hash) + getToken().hashCode();
+ hash = (37 * hash) + TIMEOUT_FIELD_NUMBER;
+ hash = (53 * hash) + getTimeout();
+ hash = (37 * hash) + CONTINUOUS_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getContinuous());
+ hash = (37 * hash) + CONTINUOUSTIMEOUT_FIELD_NUMBER;
+ hash = (53 * hash) + getContinuousTimeout();
+ hash = (37 * hash) + COMPLETED_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getCompleted());
+ hash = (37 * hash) + DATA_FIELD_NUMBER;
+ hash = (53 * hash) + getData().hashCode();
+ hash = (37 * hash) + CRC_FIELD_NUMBER;
+ hash = (53 * hash) + getCRC();
+ hash = (37 * hash) + ERROR_FIELD_NUMBER;
+ hash = (53 * hash) + error_;
+ hash = (37 * hash) + ERRORMESSAGE_FIELD_NUMBER;
+ hash = (53 * hash) + getErrorMessage().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Common.MessageContainer}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Common.MessageContainer)
+ com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainerOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.common.MessageContainerOuterClass.internal_static_Tango_PMR_Common_MessageContainer_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.common.MessageContainerOuterClass.internal_static_Tango_PMR_Common_MessageContainer_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer.class, com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ type_ = 0;
+
+ token_ = "";
+
+ timeout_ = 0;
+
+ continuous_ = false;
+
+ continuousTimeout_ = 0;
+
+ completed_ = false;
+
+ data_ = com.google.protobuf.ByteString.EMPTY;
+
+ cRC_ = 0;
+
+ error_ = 0;
+
+ errorMessage_ = "";
+
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.common.MessageContainerOuterClass.internal_static_Tango_PMR_Common_MessageContainer_descriptor;
+ }
+
+ public com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer getDefaultInstanceForType() {
+ return com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer build() {
+ com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer buildPartial() {
+ com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer result = new com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer(this);
+ result.type_ = type_;
+ result.token_ = token_;
+ result.timeout_ = timeout_;
+ result.continuous_ = continuous_;
+ result.continuousTimeout_ = continuousTimeout_;
+ result.completed_ = completed_;
+ result.data_ = data_;
+ result.cRC_ = cRC_;
+ result.error_ = error_;
+ result.errorMessage_ = errorMessage_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer) {
+ return mergeFrom((com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer other) {
+ if (other == com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer.getDefaultInstance()) return this;
+ if (other.type_ != 0) {
+ setTypeValue(other.getTypeValue());
+ }
+ if (!other.getToken().isEmpty()) {
+ token_ = other.token_;
+ onChanged();
+ }
+ if (other.getTimeout() != 0) {
+ setTimeout(other.getTimeout());
+ }
+ if (other.getContinuous() != false) {
+ setContinuous(other.getContinuous());
+ }
+ if (other.getContinuousTimeout() != 0) {
+ setContinuousTimeout(other.getContinuousTimeout());
+ }
+ if (other.getCompleted() != false) {
+ setCompleted(other.getCompleted());
+ }
+ if (other.getData() != com.google.protobuf.ByteString.EMPTY) {
+ setData(other.getData());
+ }
+ if (other.getCRC() != 0) {
+ setCRC(other.getCRC());
+ }
+ if (other.error_ != 0) {
+ setErrorValue(other.getErrorValue());
+ }
+ if (!other.getErrorMessage().isEmpty()) {
+ errorMessage_ = other.errorMessage_;
+ onChanged();
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private int type_ = 0;
+ /**
+ * <code>.Tango.PMR.Common.MessageType Type = 1;</code>
+ */
+ public int getTypeValue() {
+ return type_;
+ }
+ /**
+ * <code>.Tango.PMR.Common.MessageType Type = 1;</code>
+ */
+ public Builder setTypeValue(int value) {
+ type_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.Common.MessageType Type = 1;</code>
+ */
+ public com.twine.tango.pmr.common.MessageTypeOuterClass.MessageType getType() {
+ com.twine.tango.pmr.common.MessageTypeOuterClass.MessageType result = com.twine.tango.pmr.common.MessageTypeOuterClass.MessageType.valueOf(type_);
+ return result == null ? com.twine.tango.pmr.common.MessageTypeOuterClass.MessageType.UNRECOGNIZED : result;
+ }
+ /**
+ * <code>.Tango.PMR.Common.MessageType Type = 1;</code>
+ */
+ public Builder setType(com.twine.tango.pmr.common.MessageTypeOuterClass.MessageType value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ type_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.Common.MessageType Type = 1;</code>
+ */
+ public Builder clearType() {
+
+ type_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object token_ = "";
+ /**
+ * <code>string Token = 2;</code>
+ */
+ public java.lang.String getToken() {
+ java.lang.Object ref = token_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ token_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string Token = 2;</code>
+ */
+ public com.google.protobuf.ByteString
+ getTokenBytes() {
+ java.lang.Object ref = token_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ token_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string Token = 2;</code>
+ */
+ public Builder setToken(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ token_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string Token = 2;</code>
+ */
+ public Builder clearToken() {
+
+ token_ = getDefaultInstance().getToken();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string Token = 2;</code>
+ */
+ public Builder setTokenBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ token_ = value;
+ onChanged();
+ return this;
+ }
+
+ private int timeout_ ;
+ /**
+ * <code>uint32 Timeout = 3;</code>
+ */
+ public int getTimeout() {
+ return timeout_;
+ }
+ /**
+ * <code>uint32 Timeout = 3;</code>
+ */
+ public Builder setTimeout(int value) {
+
+ timeout_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>uint32 Timeout = 3;</code>
+ */
+ public Builder clearTimeout() {
+
+ timeout_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private boolean continuous_ ;
+ /**
+ * <code>bool Continuous = 4;</code>
+ */
+ public boolean getContinuous() {
+ return continuous_;
+ }
+ /**
+ * <code>bool Continuous = 4;</code>
+ */
+ public Builder setContinuous(boolean value) {
+
+ continuous_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>bool Continuous = 4;</code>
+ */
+ public Builder clearContinuous() {
+
+ continuous_ = false;
+ onChanged();
+ return this;
+ }
+
+ private int continuousTimeout_ ;
+ /**
+ * <code>uint32 ContinuousTimeout = 5;</code>
+ */
+ public int getContinuousTimeout() {
+ return continuousTimeout_;
+ }
+ /**
+ * <code>uint32 ContinuousTimeout = 5;</code>
+ */
+ public Builder setContinuousTimeout(int value) {
+
+ continuousTimeout_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>uint32 ContinuousTimeout = 5;</code>
+ */
+ public Builder clearContinuousTimeout() {
+
+ continuousTimeout_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private boolean completed_ ;
+ /**
+ * <code>bool Completed = 6;</code>
+ */
+ public boolean getCompleted() {
+ return completed_;
+ }
+ /**
+ * <code>bool Completed = 6;</code>
+ */
+ public Builder setCompleted(boolean value) {
+
+ completed_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>bool Completed = 6;</code>
+ */
+ public Builder clearCompleted() {
+
+ completed_ = false;
+ onChanged();
+ return this;
+ }
+
+ private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>bytes Data = 7;</code>
+ */
+ public com.google.protobuf.ByteString getData() {
+ return data_;
+ }
+ /**
+ * <code>bytes Data = 7;</code>
+ */
+ public Builder setData(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ data_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>bytes Data = 7;</code>
+ */
+ public Builder clearData() {
+
+ data_ = getDefaultInstance().getData();
+ onChanged();
+ return this;
+ }
+
+ private int cRC_ ;
+ /**
+ * <code>uint32 CRC = 8;</code>
+ */
+ public int getCRC() {
+ return cRC_;
+ }
+ /**
+ * <code>uint32 CRC = 8;</code>
+ */
+ public Builder setCRC(int value) {
+
+ cRC_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>uint32 CRC = 8;</code>
+ */
+ public Builder clearCRC() {
+
+ cRC_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int error_ = 0;
+ /**
+ * <code>.Tango.PMR.Common.ErrorCode Error = 9;</code>
+ */
+ public int getErrorValue() {
+ return error_;
+ }
+ /**
+ * <code>.Tango.PMR.Common.ErrorCode Error = 9;</code>
+ */
+ public Builder setErrorValue(int value) {
+ error_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.Common.ErrorCode Error = 9;</code>
+ */
+ public com.twine.tango.pmr.common.ErrorCodeOuterClass.ErrorCode getError() {
+ com.twine.tango.pmr.common.ErrorCodeOuterClass.ErrorCode result = com.twine.tango.pmr.common.ErrorCodeOuterClass.ErrorCode.valueOf(error_);
+ return result == null ? com.twine.tango.pmr.common.ErrorCodeOuterClass.ErrorCode.UNRECOGNIZED : result;
+ }
+ /**
+ * <code>.Tango.PMR.Common.ErrorCode Error = 9;</code>
+ */
+ public Builder setError(com.twine.tango.pmr.common.ErrorCodeOuterClass.ErrorCode value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ error_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.Common.ErrorCode Error = 9;</code>
+ */
+ public Builder clearError() {
+
+ error_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object errorMessage_ = "";
+ /**
+ * <code>string ErrorMessage = 10;</code>
+ */
+ public java.lang.String getErrorMessage() {
+ java.lang.Object ref = errorMessage_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ errorMessage_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string ErrorMessage = 10;</code>
+ */
+ public com.google.protobuf.ByteString
+ getErrorMessageBytes() {
+ java.lang.Object ref = errorMessage_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ errorMessage_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string ErrorMessage = 10;</code>
+ */
+ public Builder setErrorMessage(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ errorMessage_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string ErrorMessage = 10;</code>
+ */
+ public Builder clearErrorMessage() {
+
+ errorMessage_ = getDefaultInstance().getErrorMessage();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string ErrorMessage = 10;</code>
+ */
+ public Builder setErrorMessageBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ errorMessage_ = value;
+ onChanged();
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Common.MessageContainer)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Common.MessageContainer)
+ private static final com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer();
+ }
+
+ public static com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<MessageContainer>
+ PARSER = new com.google.protobuf.AbstractParser<MessageContainer>() {
+ public MessageContainer parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new MessageContainer(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<MessageContainer> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<MessageContainer> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.common.MessageContainerOuterClass.MessageContainer getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Common_MessageContainer_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Common_MessageContainer_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\026MessageContainer.proto\022\020Tango.PMR.Comm" +
+ "on\032\021MessageType.proto\032\017ErrorCode.proto\"\376" +
+ "\001\n\020MessageContainer\022+\n\004Type\030\001 \001(\0162\035.Tang" +
+ "o.PMR.Common.MessageType\022\r\n\005Token\030\002 \001(\t\022" +
+ "\017\n\007Timeout\030\003 \001(\r\022\022\n\nContinuous\030\004 \001(\010\022\031\n\021" +
+ "ContinuousTimeout\030\005 \001(\r\022\021\n\tCompleted\030\006 \001" +
+ "(\010\022\014\n\004Data\030\007 \001(\014\022\013\n\003CRC\030\010 \001(\r\022*\n\005Error\030\t" +
+ " \001(\0162\033.Tango.PMR.Common.ErrorCode\022\024\n\014Err" +
+ "orMessage\030\n \001(\tB\034\n\032com.twine.tango.pmr.c" +
+ "ommonb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ com.twine.tango.pmr.common.MessageTypeOuterClass.getDescriptor(),
+ com.twine.tango.pmr.common.ErrorCodeOuterClass.getDescriptor(),
+ }, assigner);
+ internal_static_Tango_PMR_Common_MessageContainer_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Common_MessageContainer_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Common_MessageContainer_descriptor,
+ new java.lang.String[] { "Type", "Token", "Timeout", "Continuous", "ContinuousTimeout", "Completed", "Data", "CRC", "Error", "ErrorMessage", });
+ com.twine.tango.pmr.common.MessageTypeOuterClass.getDescriptor();
+ com.twine.tango.pmr.common.ErrorCodeOuterClass.getDescriptor();
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/common/MessageTypeOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/common/MessageTypeOuterClass.java
new file mode 100644
index 000000000..47eea883d
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/common/MessageTypeOuterClass.java
@@ -0,0 +1,2252 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: MessageType.proto
+
+package com.twine.tango.pmr.common;
+
+public final class MessageTypeOuterClass {
+ private MessageTypeOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ /**
+ * Protobuf enum {@code Tango.PMR.Common.MessageType}
+ */
+ public enum MessageType
+ implements com.google.protobuf.ProtocolMessageEnum {
+ /**
+ * <pre>
+ *The first enumeration value must be zero so..
+ * </pre>
+ *
+ * <code>None = 0;</code>
+ */
+ None(0),
+ /**
+ * <pre>
+ *Common
+ * </pre>
+ *
+ * <code>ErrorResponse = 1;</code>
+ */
+ ErrorResponse(1),
+ /**
+ * <pre>
+ *Stubs
+ * </pre>
+ *
+ * <code>CalculateRequest = 3;</code>
+ */
+ CalculateRequest(3),
+ /**
+ * <code>CalculateResponse = 4;</code>
+ */
+ CalculateResponse(4),
+ /**
+ * <code>ProgressRequest = 5;</code>
+ */
+ ProgressRequest(5),
+ /**
+ * <code>ProgressResponse = 6;</code>
+ */
+ ProgressResponse(6),
+ /**
+ * <code>StubCartridgeReadRequest = 7;</code>
+ */
+ StubCartridgeReadRequest(7),
+ /**
+ * <code>StubCartridgeReadResponse = 8;</code>
+ */
+ StubCartridgeReadResponse(8),
+ /**
+ * <code>StubCartridgeWriteRequest = 9;</code>
+ */
+ StubCartridgeWriteRequest(9),
+ /**
+ * <code>StubCartridgeWriteResponse = 10;</code>
+ */
+ StubCartridgeWriteResponse(10),
+ /**
+ * <code>StubDispenserRequest = 11;</code>
+ */
+ StubDispenserRequest(11),
+ /**
+ * <code>StubDispenserResponse = 12;</code>
+ */
+ StubDispenserResponse(12),
+ /**
+ * <code>StubGPIOInputSetupRequest = 13;</code>
+ */
+ StubGPIOInputSetupRequest(13),
+ /**
+ * <code>StubGPIOInputSetupResponse = 14;</code>
+ */
+ StubGPIOInputSetupResponse(14),
+ /**
+ * <code>StubGPIOReadBitRequest = 15;</code>
+ */
+ StubGPIOReadBitRequest(15),
+ /**
+ * <code>StubGPIOReadBitResponse = 16;</code>
+ */
+ StubGPIOReadBitResponse(16),
+ /**
+ * <code>StubGPIOReadByteRequest = 17;</code>
+ */
+ StubGPIOReadByteRequest(17),
+ /**
+ * <code>StubGPIOReadByteResponse = 18;</code>
+ */
+ StubGPIOReadByteResponse(18),
+ /**
+ * <code>StubGPIOWriteBitRequest = 19;</code>
+ */
+ StubGPIOWriteBitRequest(19),
+ /**
+ * <code>StubGPIOWriteBitResponse = 20;</code>
+ */
+ StubGPIOWriteBitResponse(20),
+ /**
+ * <code>StubGPIOWriteByteRequest = 21;</code>
+ */
+ StubGPIOWriteByteRequest(21),
+ /**
+ * <code>StubGPIOWriteByteResponse = 22;</code>
+ */
+ StubGPIOWriteByteResponse(22),
+ /**
+ * <code>StubHeaterRequest = 23;</code>
+ */
+ StubHeaterRequest(23),
+ /**
+ * <code>StubHeaterResponse = 24;</code>
+ */
+ StubHeaterResponse(24),
+ /**
+ * <code>StubI2CRequest = 25;</code>
+ */
+ StubI2CRequest(25),
+ /**
+ * <code>StubI2CResponse = 26;</code>
+ */
+ StubI2CResponse(26),
+ /**
+ * <code>StubOptLimitSwitchRequest = 27;</code>
+ */
+ StubOptLimitSwitchRequest(27),
+ /**
+ * <code>StubOptLimitSwitchResponse = 28;</code>
+ */
+ StubOptLimitSwitchResponse(28),
+ /**
+ * <code>StubSteperMotorRequest = 29;</code>
+ */
+ StubSteperMotorRequest(29),
+ /**
+ * <code>StubSteperMotorResponse = 30;</code>
+ */
+ StubSteperMotorResponse(30),
+ /**
+ * <code>StubValveRequest = 31;</code>
+ */
+ StubValveRequest(31),
+ /**
+ * <code>StubValveResponse = 32;</code>
+ */
+ StubValveResponse(32),
+ /**
+ * <code>StubExtFlashReadRequest = 33;</code>
+ */
+ StubExtFlashReadRequest(33),
+ /**
+ * <code>StubExtFlashReadResponse = 34;</code>
+ */
+ StubExtFlashReadResponse(34),
+ /**
+ * <code>StubExtFlashWriteRequest = 35;</code>
+ */
+ StubExtFlashWriteRequest(35),
+ /**
+ * <code>StubExtFlashWriteResponse = 36;</code>
+ */
+ StubExtFlashWriteResponse(36),
+ /**
+ * <code>StubFPGAReadBackRegRequest = 37;</code>
+ */
+ StubFPGAReadBackRegRequest(37),
+ /**
+ * <code>StubFPGAReadBackRegResponse = 38;</code>
+ */
+ StubFPGAReadBackRegResponse(38),
+ /**
+ * <code>StubFPGAReadVersionRequest = 39;</code>
+ */
+ StubFPGAReadVersionRequest(39),
+ /**
+ * <code>StubFPGAReadVersionResponse = 40;</code>
+ */
+ StubFPGAReadVersionResponse(40),
+ /**
+ * <code>StubL6470DriverRequest = 41;</code>
+ */
+ StubL6470DriverRequest(41),
+ /**
+ * <code>StubL6470DriverResponse = 42;</code>
+ */
+ StubL6470DriverResponse(42),
+ /**
+ * <code>StubMotorInitRequest = 43;</code>
+ */
+ StubMotorInitRequest(43),
+ /**
+ * <code>StubMotorInitResponse = 44;</code>
+ */
+ StubMotorInitResponse(44),
+ /**
+ * <code>StubMotorRunRequest = 45;</code>
+ */
+ StubMotorRunRequest(45),
+ /**
+ * <code>StubMotorRunResponse = 46;</code>
+ */
+ StubMotorRunResponse(46),
+ /**
+ * <code>StubMotorStopRequest = 47;</code>
+ */
+ StubMotorStopRequest(47),
+ /**
+ * <code>StubMotorStopResponse = 48;</code>
+ */
+ StubMotorStopResponse(48),
+ /**
+ * <code>StubMotorStatusRequest = 49;</code>
+ */
+ StubMotorStatusRequest(49),
+ /**
+ * <code>StubMotorStatusResponse = 50;</code>
+ */
+ StubMotorStatusResponse(50),
+ /**
+ * <code>StubMotorMovRequest = 51;</code>
+ */
+ StubMotorMovRequest(51),
+ /**
+ * <code>StubMotorMovResponse = 52;</code>
+ */
+ StubMotorMovResponse(52),
+ /**
+ * <code>StubMotorSpeedRequest = 53;</code>
+ */
+ StubMotorSpeedRequest(53),
+ /**
+ * <code>StubMotorSpeedResponse = 54;</code>
+ */
+ StubMotorSpeedResponse(54),
+ /**
+ * <code>StubMotorPositionRequest = 55;</code>
+ */
+ StubMotorPositionRequest(55),
+ /**
+ * <code>StubMotorPositionResponse = 56;</code>
+ */
+ StubMotorPositionResponse(56),
+ /**
+ * <code>StubHWVersionRequest = 57;</code>
+ */
+ StubHWVersionRequest(57),
+ /**
+ * <code>StubHWVersionResponse = 58;</code>
+ */
+ StubHWVersionResponse(58),
+ /**
+ * <code>StubF3Gpo01WriteRequest = 59;</code>
+ */
+ StubF3Gpo01WriteRequest(59),
+ /**
+ * <code>StubF3Gpo01WriteResponse = 60;</code>
+ */
+ StubF3Gpo01WriteResponse(60),
+ /**
+ * <code>StubHeatingTestRequest = 61;</code>
+ */
+ StubHeatingTestRequest(61),
+ /**
+ * <code>StubHeatingTestResponse = 62;</code>
+ */
+ StubHeatingTestResponse(62),
+ /**
+ * <code>StubHeatingTestPollRequest = 63;</code>
+ */
+ StubHeatingTestPollRequest(63),
+ /**
+ * <code>StubHeatingTestPollResponse = 64;</code>
+ */
+ StubHeatingTestPollResponse(64),
+ /**
+ * <code>StubMotorRequest = 65;</code>
+ */
+ StubMotorRequest(65),
+ /**
+ * <code>StubMotorResponse = 66;</code>
+ */
+ StubMotorResponse(66),
+ /**
+ * <code>StubMotorHomeMarkRequest = 67;</code>
+ */
+ StubMotorHomeMarkRequest(67),
+ /**
+ * <code>StubMotorHomeMarkResponse = 68;</code>
+ */
+ StubMotorHomeMarkResponse(68),
+ /**
+ * <code>StubMotorRunStepTickRequest = 69;</code>
+ */
+ StubMotorRunStepTickRequest(69),
+ /**
+ * <code>StubMotorRunStepTickResponse = 70;</code>
+ */
+ StubMotorRunStepTickResponse(70),
+ /**
+ * <code>StubFpgaReadRegRequest = 71;</code>
+ */
+ StubFpgaReadRegRequest(71),
+ /**
+ * <code>StubFpgaReadRegResponse = 72;</code>
+ */
+ StubFpgaReadRegResponse(72),
+ /**
+ * <code>StubFpgaWriteRegRequest = 73;</code>
+ */
+ StubFpgaWriteRegRequest(73),
+ /**
+ * <code>StubFpgaWriteRegResponse = 74;</code>
+ */
+ StubFpgaWriteRegResponse(74),
+ /**
+ * <code>StubReadEmbeddedVersionRequest = 75;</code>
+ */
+ StubReadEmbeddedVersionRequest(75),
+ /**
+ * <code>StubReadEmbeddedVersionResponse = 76;</code>
+ */
+ StubReadEmbeddedVersionResponse(76),
+ /**
+ * <code>StubTivaReadRegRequest = 77;</code>
+ */
+ StubTivaReadRegRequest(77),
+ /**
+ * <code>StubTivaReadRegResponse = 78;</code>
+ */
+ StubTivaReadRegResponse(78),
+ /**
+ * <code>StubTivaWriteRegRequest = 79;</code>
+ */
+ StubTivaWriteRegRequest(79),
+ /**
+ * <code>StubTivaWriteRegResponse = 80;</code>
+ */
+ StubTivaWriteRegResponse(80),
+ /**
+ * <code>StubDancerPositionRequest = 81;</code>
+ */
+ StubDancerPositionRequest(81),
+ /**
+ * <code>StubDancerPositionResponse = 82;</code>
+ */
+ StubDancerPositionResponse(82),
+ /**
+ * <code>StubSpeedSensorRequest = 83;</code>
+ */
+ StubSpeedSensorRequest(83),
+ /**
+ * <code>StubSpeedSensorResponse = 84;</code>
+ */
+ StubSpeedSensorResponse(84),
+ /**
+ * <code>StubRealTimeUsageRequest = 85;</code>
+ */
+ StubRealTimeUsageRequest(85),
+ /**
+ * <code>StubRealTimeUsageResponse = 86;</code>
+ */
+ StubRealTimeUsageResponse(86),
+ /**
+ * <code>StubIntADCReadRequest = 87;</code>
+ */
+ StubIntADCReadRequest(87),
+ /**
+ * <code>StubIntADCReadResponse = 88;</code>
+ */
+ StubIntADCReadResponse(88),
+ /**
+ * <code>StubTempSensorRequest = 89;</code>
+ */
+ StubTempSensorRequest(89),
+ /**
+ * <code>StubTempSensorResponse = 90;</code>
+ */
+ StubTempSensorResponse(90),
+ /**
+ * <code>StubI2CReadBytesRequest = 91;</code>
+ */
+ StubI2CReadBytesRequest(91),
+ /**
+ * <code>StubI2CReadBytesResponse = 92;</code>
+ */
+ StubI2CReadBytesResponse(92),
+ /**
+ * <code>StubI2CWriteBytesRequest = 93;</code>
+ */
+ StubI2CWriteBytesRequest(93),
+ /**
+ * <code>StubI2CWriteBytesResponse = 94;</code>
+ */
+ StubI2CWriteBytesResponse(94),
+ /**
+ * <code>StubExtFlashWriteWordsRequest = 95;</code>
+ */
+ StubExtFlashWriteWordsRequest(95),
+ /**
+ * <code>StubExtFlashWriteWordsResponse = 96;</code>
+ */
+ StubExtFlashWriteWordsResponse(96),
+ /**
+ * <code>StubExtFlashReadWordsRequest = 97;</code>
+ */
+ StubExtFlashReadWordsRequest(97),
+ /**
+ * <code>StubExtFlashReadWordsResponse = 98;</code>
+ */
+ StubExtFlashReadWordsResponse(98),
+ /**
+ * <code>StubJobRequest = 99;</code>
+ */
+ StubJobRequest(99),
+ /**
+ * <code>StubJobResponse = 100;</code>
+ */
+ StubJobResponse(100),
+ /**
+ * <code>StubAbortJobRequest = 101;</code>
+ */
+ StubAbortJobRequest(101),
+ /**
+ * <code>StubAbortJobResponse = 102;</code>
+ */
+ StubAbortJobResponse(102),
+ /**
+ * <code>StubMidTankPressureSensorRequest = 103;</code>
+ */
+ StubMidTankPressureSensorRequest(103),
+ /**
+ * <pre>
+ *------------------------------------
+ * </pre>
+ *
+ * <code>StubMidTankPressureSensorResponse = 104;</code>
+ */
+ StubMidTankPressureSensorResponse(104),
+ /**
+ * <pre>
+ *Integration
+ * </pre>
+ *
+ * <code>ExternalBridgeUdpDiscoveryPacket = 1000;</code>
+ */
+ ExternalBridgeUdpDiscoveryPacket(1000),
+ /**
+ * <code>ExternalBridgeLoginRequest = 1001;</code>
+ */
+ ExternalBridgeLoginRequest(1001),
+ /**
+ * <code>ExternalBridgeLoginResponse = 1002;</code>
+ */
+ ExternalBridgeLoginResponse(1002),
+ /**
+ * <code>ExternalBridgeLogoutRequest = 1003;</code>
+ */
+ ExternalBridgeLogoutRequest(1003),
+ /**
+ * <code>ExternalBridgeLogoutResponse = 1004;</code>
+ */
+ ExternalBridgeLogoutResponse(1004),
+ /**
+ * <code>DirectSynchronizationRequest = 1005;</code>
+ */
+ DirectSynchronizationRequest(1005),
+ /**
+ * <code>DirectSynchronizationResponse = 1006;</code>
+ */
+ DirectSynchronizationResponse(1006),
+ /**
+ * <code>OverrideDataBaseRequest = 1007;</code>
+ */
+ OverrideDataBaseRequest(1007),
+ /**
+ * <code>OverrideDataBaseResponse = 1008;</code>
+ */
+ OverrideDataBaseResponse(1008),
+ /**
+ * <code>StartApplicationLogsRequest = 1009;</code>
+ */
+ StartApplicationLogsRequest(1009),
+ /**
+ * <code>StartApplicationLogsResponse = 1010;</code>
+ */
+ StartApplicationLogsResponse(1010),
+ /**
+ * <code>StopApplicationLogsRequest = 1011;</code>
+ */
+ StopApplicationLogsRequest(1011),
+ /**
+ * <code>StopApplicationLogsResponse = 1012;</code>
+ */
+ StopApplicationLogsResponse(1012),
+ /**
+ * <code>ColorProfileRequest = 1013;</code>
+ */
+ ColorProfileRequest(1013),
+ /**
+ * <code>ColorProfileResponse = 1014;</code>
+ */
+ ColorProfileResponse(1014),
+ /**
+ * <pre>
+ *Diagnostics
+ * </pre>
+ *
+ * <code>StartDiagnosticsRequest = 2000;</code>
+ */
+ StartDiagnosticsRequest(2000),
+ /**
+ * <code>StartDiagnosticsResponse = 2001;</code>
+ */
+ StartDiagnosticsResponse(2001),
+ /**
+ * <code>MotorAbortHomingRequest = 2002;</code>
+ */
+ MotorAbortHomingRequest(2002),
+ /**
+ * <code>MotorAbortHomingResponse = 2003;</code>
+ */
+ MotorAbortHomingResponse(2003),
+ /**
+ * <code>MotorHomingRequest = 2004;</code>
+ */
+ MotorHomingRequest(2004),
+ /**
+ * <code>MotorHomingResponse = 2005;</code>
+ */
+ MotorHomingResponse(2005),
+ /**
+ * <code>MotorJoggingRequest = 2006;</code>
+ */
+ MotorJoggingRequest(2006),
+ /**
+ * <code>MotorJoggingResponse = 2007;</code>
+ */
+ MotorJoggingResponse(2007),
+ /**
+ * <code>MotorAbortJoggingRequest = 2008;</code>
+ */
+ MotorAbortJoggingRequest(2008),
+ /**
+ * <code>MotorAbortJoggingResponse = 2009;</code>
+ */
+ MotorAbortJoggingResponse(2009),
+ /**
+ * <code>DispenserAbortHomingRequest = 2010;</code>
+ */
+ DispenserAbortHomingRequest(2010),
+ /**
+ * <code>DispenserAbortHomingResponse = 2011;</code>
+ */
+ DispenserAbortHomingResponse(2011),
+ /**
+ * <code>DispenserHomingRequest = 2012;</code>
+ */
+ DispenserHomingRequest(2012),
+ /**
+ * <code>DispenserHomingResponse = 2013;</code>
+ */
+ DispenserHomingResponse(2013),
+ /**
+ * <code>DispenserJoggingRequest = 2014;</code>
+ */
+ DispenserJoggingRequest(2014),
+ /**
+ * <code>DispenserJoggingResponse = 2015;</code>
+ */
+ DispenserJoggingResponse(2015),
+ /**
+ * <code>DispenserAbortJoggingRequest = 2016;</code>
+ */
+ DispenserAbortJoggingRequest(2016),
+ /**
+ * <code>DispenserAbortJoggingResponse = 2017;</code>
+ */
+ DispenserAbortJoggingResponse(2017),
+ /**
+ * <code>SetDigitalOutRequest = 2018;</code>
+ */
+ SetDigitalOutRequest(2018),
+ /**
+ * <code>SetDigitalOutResponse = 2019;</code>
+ */
+ SetDigitalOutResponse(2019),
+ /**
+ * <code>ThreadJoggingRequest = 2020;</code>
+ */
+ ThreadJoggingRequest(2020),
+ /**
+ * <code>ThreadJoggingResponse = 2021;</code>
+ */
+ ThreadJoggingResponse(2021),
+ /**
+ * <code>ThreadAbortJoggingRequest = 2022;</code>
+ */
+ ThreadAbortJoggingRequest(2022),
+ /**
+ * <code>ThreadAbortJoggingResponse = 2023;</code>
+ */
+ ThreadAbortJoggingResponse(2023),
+ /**
+ * <code>SetComponentValueRequest = 2024;</code>
+ */
+ SetComponentValueRequest(2024),
+ /**
+ * <code>SetComponentValueResponse = 2025;</code>
+ */
+ SetComponentValueResponse(2025),
+ /**
+ * <code>ResolveEventRequest = 2026;</code>
+ */
+ ResolveEventRequest(2026),
+ /**
+ * <code>ResolveEventResponse = 2027;</code>
+ */
+ ResolveEventResponse(2027),
+ /**
+ * <code>StopDiagnosticsRequest = 2028;</code>
+ */
+ StopDiagnosticsRequest(2028),
+ /**
+ * <code>StopDiagnosticsResponse = 2029;</code>
+ */
+ StopDiagnosticsResponse(2029),
+ /**
+ * <code>StartEventsNotificationRequest = 2030;</code>
+ */
+ StartEventsNotificationRequest(2030),
+ /**
+ * <code>StartEventsNotificationResponse = 2031;</code>
+ */
+ StartEventsNotificationResponse(2031),
+ /**
+ * <code>StopEventsNotificationRequest = 2032;</code>
+ */
+ StopEventsNotificationRequest(2032),
+ /**
+ * <code>StopEventsNotificationResponse = 2033;</code>
+ */
+ StopEventsNotificationResponse(2033),
+ /**
+ * <code>SetHeaterStateRequest = 2034;</code>
+ */
+ SetHeaterStateRequest(2034),
+ /**
+ * <code>SetHeaterStateResponse = 2035;</code>
+ */
+ SetHeaterStateResponse(2035),
+ /**
+ * <code>SetBlowerStateRequest = 2036;</code>
+ */
+ SetBlowerStateRequest(2036),
+ /**
+ * <code>SetBlowerStateResponse = 2037;</code>
+ */
+ SetBlowerStateResponse(2037),
+ /**
+ * <code>SetValveStateRequest = 2038;</code>
+ */
+ SetValveStateRequest(2038),
+ /**
+ * <code>SetValveStateResponse = 2039;</code>
+ */
+ SetValveStateResponse(2039),
+ /**
+ * <pre>
+ *Printing
+ * </pre>
+ *
+ * <code>JobRequest = 3000;</code>
+ */
+ JobRequest(3000),
+ /**
+ * <code>JobResponse = 3001;</code>
+ */
+ JobResponse(3001),
+ /**
+ * <code>AbortJobRequest = 3002;</code>
+ */
+ AbortJobRequest(3002),
+ /**
+ * <code>AbortJobResponse = 3003;</code>
+ */
+ AbortJobResponse(3003),
+ /**
+ * <code>UploadProcessParametersRequest = 3004;</code>
+ */
+ UploadProcessParametersRequest(3004),
+ /**
+ * <code>UploadProcessParametersResponse = 3005;</code>
+ */
+ UploadProcessParametersResponse(3005),
+ /**
+ * <code>CurrentJobRequest = 3006;</code>
+ */
+ CurrentJobRequest(3006),
+ /**
+ * <code>CurrentJobResponse = 3007;</code>
+ */
+ CurrentJobResponse(3007),
+ /**
+ * <code>ResumeCurrentJobRequest = 3008;</code>
+ */
+ ResumeCurrentJobRequest(3008),
+ /**
+ * <code>ResumeCurrentJobResponse = 3009;</code>
+ */
+ ResumeCurrentJobResponse(3009),
+ /**
+ * <pre>
+ *Debugging
+ * </pre>
+ *
+ * <code>StartDebugLogRequest = 4000;</code>
+ */
+ StartDebugLogRequest(4000),
+ /**
+ * <code>StartDebugLogResponse = 4001;</code>
+ */
+ StartDebugLogResponse(4001),
+ /**
+ * <code>StopDebugLogRequest = 4002;</code>
+ */
+ StopDebugLogRequest(4002),
+ /**
+ * <code>StopDebugLogResponse = 4003;</code>
+ */
+ StopDebugLogResponse(4003),
+ /**
+ * <pre>
+ *Hardware
+ * </pre>
+ *
+ * <code>UploadHardwareConfigurationRequest = 5000;</code>
+ */
+ UploadHardwareConfigurationRequest(5000),
+ /**
+ * <code>UploadHardwareConfigurationResponse = 5001;</code>
+ */
+ UploadHardwareConfigurationResponse(5001),
+ /**
+ * <code>SystemResetRequest = 5002;</code>
+ */
+ SystemResetRequest(5002),
+ /**
+ * <code>SystemResetResponse = 5003;</code>
+ */
+ SystemResetResponse(5003),
+ /**
+ * <pre>
+ *Connection
+ * </pre>
+ *
+ * <code>KeepAliveRequest = 6000;</code>
+ */
+ KeepAliveRequest(6000),
+ /**
+ * <code>KeepAliveResponse = 6001;</code>
+ */
+ KeepAliveResponse(6001),
+ /**
+ * <code>ConnectRequest = 6002;</code>
+ */
+ ConnectRequest(6002),
+ /**
+ * <code>ConnectResponse = 6003;</code>
+ */
+ ConnectResponse(6003),
+ /**
+ * <code>DisconnectRequest = 6004;</code>
+ */
+ DisconnectRequest(6004),
+ /**
+ * <code>DisconnectResponse = 6005;</code>
+ */
+ DisconnectResponse(6005),
+ /**
+ * <pre>
+ *IO
+ * </pre>
+ *
+ * <code>FileUploadRequest = 7000;</code>
+ */
+ FileUploadRequest(7000),
+ /**
+ * <code>FileUploadResponse = 7001;</code>
+ */
+ FileUploadResponse(7001),
+ /**
+ * <code>FileChunkUploadRequest = 7002;</code>
+ */
+ FileChunkUploadRequest(7002),
+ /**
+ * <code>FileChunkUploadResponse = 7003;</code>
+ */
+ FileChunkUploadResponse(7003),
+ /**
+ * <code>ExecuteProcessRequest = 7004;</code>
+ */
+ ExecuteProcessRequest(7004),
+ /**
+ * <code>ExecuteProcessResponse = 7005;</code>
+ */
+ ExecuteProcessResponse(7005),
+ /**
+ * <code>KillProcessRequest = 7006;</code>
+ */
+ KillProcessRequest(7006),
+ /**
+ * <code>KillProcessResponse = 7007;</code>
+ */
+ KillProcessResponse(7007),
+ /**
+ * <code>CreateRequest = 7008;</code>
+ */
+ CreateRequest(7008),
+ /**
+ * <code>CreateResponse = 7009;</code>
+ */
+ CreateResponse(7009),
+ /**
+ * <code>DeleteRequest = 7010;</code>
+ */
+ DeleteRequest(7010),
+ /**
+ * <code>DeleteResponse = 7011;</code>
+ */
+ DeleteResponse(7011),
+ /**
+ * <code>GetStorageInfoRequest = 7012;</code>
+ */
+ GetStorageInfoRequest(7012),
+ /**
+ * <code>GetStorageInfoResponse = 7013;</code>
+ */
+ GetStorageInfoResponse(7013),
+ /**
+ * <code>GetFilesRequest = 7014;</code>
+ */
+ GetFilesRequest(7014),
+ /**
+ * <code>GetFilesResponse = 7015;</code>
+ */
+ GetFilesResponse(7015),
+ /**
+ * <code>FileDownloadRequest = 7016;</code>
+ */
+ FileDownloadRequest(7016),
+ /**
+ * <code>FileDownloadResponse = 7017;</code>
+ */
+ FileDownloadResponse(7017),
+ /**
+ * <code>FileChunkDownloadRequest = 7018;</code>
+ */
+ FileChunkDownloadRequest(7018),
+ /**
+ * <code>FileChunkDownloadResponse = 7019;</code>
+ */
+ FileChunkDownloadResponse(7019),
+ /**
+ * <code>ValidateVersionRequest = 7020;</code>
+ */
+ ValidateVersionRequest(7020),
+ /**
+ * <code>ValidateVersionResponse = 7021;</code>
+ */
+ ValidateVersionResponse(7021),
+ /**
+ * <code>ActivateVersionRequest = 7022;</code>
+ */
+ ActivateVersionRequest(7022),
+ /**
+ * <code>ActivateVersionResponse = 7023;</code>
+ */
+ ActivateVersionResponse(7023),
+ /**
+ * <pre>
+ *EmbeddedParameters
+ * </pre>
+ *
+ * <code>DispenserDataRequest = 8000;</code>
+ */
+ DispenserDataRequest(8000),
+ /**
+ * <code>DispenserDataResponse = 8001;</code>
+ */
+ DispenserDataResponse(8001),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ * <pre>
+ *The first enumeration value must be zero so..
+ * </pre>
+ *
+ * <code>None = 0;</code>
+ */
+ public static final int None_VALUE = 0;
+ /**
+ * <pre>
+ *Common
+ * </pre>
+ *
+ * <code>ErrorResponse = 1;</code>
+ */
+ public static final int ErrorResponse_VALUE = 1;
+ /**
+ * <pre>
+ *Stubs
+ * </pre>
+ *
+ * <code>CalculateRequest = 3;</code>
+ */
+ public static final int CalculateRequest_VALUE = 3;
+ /**
+ * <code>CalculateResponse = 4;</code>
+ */
+ public static final int CalculateResponse_VALUE = 4;
+ /**
+ * <code>ProgressRequest = 5;</code>
+ */
+ public static final int ProgressRequest_VALUE = 5;
+ /**
+ * <code>ProgressResponse = 6;</code>
+ */
+ public static final int ProgressResponse_VALUE = 6;
+ /**
+ * <code>StubCartridgeReadRequest = 7;</code>
+ */
+ public static final int StubCartridgeReadRequest_VALUE = 7;
+ /**
+ * <code>StubCartridgeReadResponse = 8;</code>
+ */
+ public static final int StubCartridgeReadResponse_VALUE = 8;
+ /**
+ * <code>StubCartridgeWriteRequest = 9;</code>
+ */
+ public static final int StubCartridgeWriteRequest_VALUE = 9;
+ /**
+ * <code>StubCartridgeWriteResponse = 10;</code>
+ */
+ public static final int StubCartridgeWriteResponse_VALUE = 10;
+ /**
+ * <code>StubDispenserRequest = 11;</code>
+ */
+ public static final int StubDispenserRequest_VALUE = 11;
+ /**
+ * <code>StubDispenserResponse = 12;</code>
+ */
+ public static final int StubDispenserResponse_VALUE = 12;
+ /**
+ * <code>StubGPIOInputSetupRequest = 13;</code>
+ */
+ public static final int StubGPIOInputSetupRequest_VALUE = 13;
+ /**
+ * <code>StubGPIOInputSetupResponse = 14;</code>
+ */
+ public static final int StubGPIOInputSetupResponse_VALUE = 14;
+ /**
+ * <code>StubGPIOReadBitRequest = 15;</code>
+ */
+ public static final int StubGPIOReadBitRequest_VALUE = 15;
+ /**
+ * <code>StubGPIOReadBitResponse = 16;</code>
+ */
+ public static final int StubGPIOReadBitResponse_VALUE = 16;
+ /**
+ * <code>StubGPIOReadByteRequest = 17;</code>
+ */
+ public static final int StubGPIOReadByteRequest_VALUE = 17;
+ /**
+ * <code>StubGPIOReadByteResponse = 18;</code>
+ */
+ public static final int StubGPIOReadByteResponse_VALUE = 18;
+ /**
+ * <code>StubGPIOWriteBitRequest = 19;</code>
+ */
+ public static final int StubGPIOWriteBitRequest_VALUE = 19;
+ /**
+ * <code>StubGPIOWriteBitResponse = 20;</code>
+ */
+ public static final int StubGPIOWriteBitResponse_VALUE = 20;
+ /**
+ * <code>StubGPIOWriteByteRequest = 21;</code>
+ */
+ public static final int StubGPIOWriteByteRequest_VALUE = 21;
+ /**
+ * <code>StubGPIOWriteByteResponse = 22;</code>
+ */
+ public static final int StubGPIOWriteByteResponse_VALUE = 22;
+ /**
+ * <code>StubHeaterRequest = 23;</code>
+ */
+ public static final int StubHeaterRequest_VALUE = 23;
+ /**
+ * <code>StubHeaterResponse = 24;</code>
+ */
+ public static final int StubHeaterResponse_VALUE = 24;
+ /**
+ * <code>StubI2CRequest = 25;</code>
+ */
+ public static final int StubI2CRequest_VALUE = 25;
+ /**
+ * <code>StubI2CResponse = 26;</code>
+ */
+ public static final int StubI2CResponse_VALUE = 26;
+ /**
+ * <code>StubOptLimitSwitchRequest = 27;</code>
+ */
+ public static final int StubOptLimitSwitchRequest_VALUE = 27;
+ /**
+ * <code>StubOptLimitSwitchResponse = 28;</code>
+ */
+ public static final int StubOptLimitSwitchResponse_VALUE = 28;
+ /**
+ * <code>StubSteperMotorRequest = 29;</code>
+ */
+ public static final int StubSteperMotorRequest_VALUE = 29;
+ /**
+ * <code>StubSteperMotorResponse = 30;</code>
+ */
+ public static final int StubSteperMotorResponse_VALUE = 30;
+ /**
+ * <code>StubValveRequest = 31;</code>
+ */
+ public static final int StubValveRequest_VALUE = 31;
+ /**
+ * <code>StubValveResponse = 32;</code>
+ */
+ public static final int StubValveResponse_VALUE = 32;
+ /**
+ * <code>StubExtFlashReadRequest = 33;</code>
+ */
+ public static final int StubExtFlashReadRequest_VALUE = 33;
+ /**
+ * <code>StubExtFlashReadResponse = 34;</code>
+ */
+ public static final int StubExtFlashReadResponse_VALUE = 34;
+ /**
+ * <code>StubExtFlashWriteRequest = 35;</code>
+ */
+ public static final int StubExtFlashWriteRequest_VALUE = 35;
+ /**
+ * <code>StubExtFlashWriteResponse = 36;</code>
+ */
+ public static final int StubExtFlashWriteResponse_VALUE = 36;
+ /**
+ * <code>StubFPGAReadBackRegRequest = 37;</code>
+ */
+ public static final int StubFPGAReadBackRegRequest_VALUE = 37;
+ /**
+ * <code>StubFPGAReadBackRegResponse = 38;</code>
+ */
+ public static final int StubFPGAReadBackRegResponse_VALUE = 38;
+ /**
+ * <code>StubFPGAReadVersionRequest = 39;</code>
+ */
+ public static final int StubFPGAReadVersionRequest_VALUE = 39;
+ /**
+ * <code>StubFPGAReadVersionResponse = 40;</code>
+ */
+ public static final int StubFPGAReadVersionResponse_VALUE = 40;
+ /**
+ * <code>StubL6470DriverRequest = 41;</code>
+ */
+ public static final int StubL6470DriverRequest_VALUE = 41;
+ /**
+ * <code>StubL6470DriverResponse = 42;</code>
+ */
+ public static final int StubL6470DriverResponse_VALUE = 42;
+ /**
+ * <code>StubMotorInitRequest = 43;</code>
+ */
+ public static final int StubMotorInitRequest_VALUE = 43;
+ /**
+ * <code>StubMotorInitResponse = 44;</code>
+ */
+ public static final int StubMotorInitResponse_VALUE = 44;
+ /**
+ * <code>StubMotorRunRequest = 45;</code>
+ */
+ public static final int StubMotorRunRequest_VALUE = 45;
+ /**
+ * <code>StubMotorRunResponse = 46;</code>
+ */
+ public static final int StubMotorRunResponse_VALUE = 46;
+ /**
+ * <code>StubMotorStopRequest = 47;</code>
+ */
+ public static final int StubMotorStopRequest_VALUE = 47;
+ /**
+ * <code>StubMotorStopResponse = 48;</code>
+ */
+ public static final int StubMotorStopResponse_VALUE = 48;
+ /**
+ * <code>StubMotorStatusRequest = 49;</code>
+ */
+ public static final int StubMotorStatusRequest_VALUE = 49;
+ /**
+ * <code>StubMotorStatusResponse = 50;</code>
+ */
+ public static final int StubMotorStatusResponse_VALUE = 50;
+ /**
+ * <code>StubMotorMovRequest = 51;</code>
+ */
+ public static final int StubMotorMovRequest_VALUE = 51;
+ /**
+ * <code>StubMotorMovResponse = 52;</code>
+ */
+ public static final int StubMotorMovResponse_VALUE = 52;
+ /**
+ * <code>StubMotorSpeedRequest = 53;</code>
+ */
+ public static final int StubMotorSpeedRequest_VALUE = 53;
+ /**
+ * <code>StubMotorSpeedResponse = 54;</code>
+ */
+ public static final int StubMotorSpeedResponse_VALUE = 54;
+ /**
+ * <code>StubMotorPositionRequest = 55;</code>
+ */
+ public static final int StubMotorPositionRequest_VALUE = 55;
+ /**
+ * <code>StubMotorPositionResponse = 56;</code>
+ */
+ public static final int StubMotorPositionResponse_VALUE = 56;
+ /**
+ * <code>StubHWVersionRequest = 57;</code>
+ */
+ public static final int StubHWVersionRequest_VALUE = 57;
+ /**
+ * <code>StubHWVersionResponse = 58;</code>
+ */
+ public static final int StubHWVersionResponse_VALUE = 58;
+ /**
+ * <code>StubF3Gpo01WriteRequest = 59;</code>
+ */
+ public static final int StubF3Gpo01WriteRequest_VALUE = 59;
+ /**
+ * <code>StubF3Gpo01WriteResponse = 60;</code>
+ */
+ public static final int StubF3Gpo01WriteResponse_VALUE = 60;
+ /**
+ * <code>StubHeatingTestRequest = 61;</code>
+ */
+ public static final int StubHeatingTestRequest_VALUE = 61;
+ /**
+ * <code>StubHeatingTestResponse = 62;</code>
+ */
+ public static final int StubHeatingTestResponse_VALUE = 62;
+ /**
+ * <code>StubHeatingTestPollRequest = 63;</code>
+ */
+ public static final int StubHeatingTestPollRequest_VALUE = 63;
+ /**
+ * <code>StubHeatingTestPollResponse = 64;</code>
+ */
+ public static final int StubHeatingTestPollResponse_VALUE = 64;
+ /**
+ * <code>StubMotorRequest = 65;</code>
+ */
+ public static final int StubMotorRequest_VALUE = 65;
+ /**
+ * <code>StubMotorResponse = 66;</code>
+ */
+ public static final int StubMotorResponse_VALUE = 66;
+ /**
+ * <code>StubMotorHomeMarkRequest = 67;</code>
+ */
+ public static final int StubMotorHomeMarkRequest_VALUE = 67;
+ /**
+ * <code>StubMotorHomeMarkResponse = 68;</code>
+ */
+ public static final int StubMotorHomeMarkResponse_VALUE = 68;
+ /**
+ * <code>StubMotorRunStepTickRequest = 69;</code>
+ */
+ public static final int StubMotorRunStepTickRequest_VALUE = 69;
+ /**
+ * <code>StubMotorRunStepTickResponse = 70;</code>
+ */
+ public static final int StubMotorRunStepTickResponse_VALUE = 70;
+ /**
+ * <code>StubFpgaReadRegRequest = 71;</code>
+ */
+ public static final int StubFpgaReadRegRequest_VALUE = 71;
+ /**
+ * <code>StubFpgaReadRegResponse = 72;</code>
+ */
+ public static final int StubFpgaReadRegResponse_VALUE = 72;
+ /**
+ * <code>StubFpgaWriteRegRequest = 73;</code>
+ */
+ public static final int StubFpgaWriteRegRequest_VALUE = 73;
+ /**
+ * <code>StubFpgaWriteRegResponse = 74;</code>
+ */
+ public static final int StubFpgaWriteRegResponse_VALUE = 74;
+ /**
+ * <code>StubReadEmbeddedVersionRequest = 75;</code>
+ */
+ public static final int StubReadEmbeddedVersionRequest_VALUE = 75;
+ /**
+ * <code>StubReadEmbeddedVersionResponse = 76;</code>
+ */
+ public static final int StubReadEmbeddedVersionResponse_VALUE = 76;
+ /**
+ * <code>StubTivaReadRegRequest = 77;</code>
+ */
+ public static final int StubTivaReadRegRequest_VALUE = 77;
+ /**
+ * <code>StubTivaReadRegResponse = 78;</code>
+ */
+ public static final int StubTivaReadRegResponse_VALUE = 78;
+ /**
+ * <code>StubTivaWriteRegRequest = 79;</code>
+ */
+ public static final int StubTivaWriteRegRequest_VALUE = 79;
+ /**
+ * <code>StubTivaWriteRegResponse = 80;</code>
+ */
+ public static final int StubTivaWriteRegResponse_VALUE = 80;
+ /**
+ * <code>StubDancerPositionRequest = 81;</code>
+ */
+ public static final int StubDancerPositionRequest_VALUE = 81;
+ /**
+ * <code>StubDancerPositionResponse = 82;</code>
+ */
+ public static final int StubDancerPositionResponse_VALUE = 82;
+ /**
+ * <code>StubSpeedSensorRequest = 83;</code>
+ */
+ public static final int StubSpeedSensorRequest_VALUE = 83;
+ /**
+ * <code>StubSpeedSensorResponse = 84;</code>
+ */
+ public static final int StubSpeedSensorResponse_VALUE = 84;
+ /**
+ * <code>StubRealTimeUsageRequest = 85;</code>
+ */
+ public static final int StubRealTimeUsageRequest_VALUE = 85;
+ /**
+ * <code>StubRealTimeUsageResponse = 86;</code>
+ */
+ public static final int StubRealTimeUsageResponse_VALUE = 86;
+ /**
+ * <code>StubIntADCReadRequest = 87;</code>
+ */
+ public static final int StubIntADCReadRequest_VALUE = 87;
+ /**
+ * <code>StubIntADCReadResponse = 88;</code>
+ */
+ public static final int StubIntADCReadResponse_VALUE = 88;
+ /**
+ * <code>StubTempSensorRequest = 89;</code>
+ */
+ public static final int StubTempSensorRequest_VALUE = 89;
+ /**
+ * <code>StubTempSensorResponse = 90;</code>
+ */
+ public static final int StubTempSensorResponse_VALUE = 90;
+ /**
+ * <code>StubI2CReadBytesRequest = 91;</code>
+ */
+ public static final int StubI2CReadBytesRequest_VALUE = 91;
+ /**
+ * <code>StubI2CReadBytesResponse = 92;</code>
+ */
+ public static final int StubI2CReadBytesResponse_VALUE = 92;
+ /**
+ * <code>StubI2CWriteBytesRequest = 93;</code>
+ */
+ public static final int StubI2CWriteBytesRequest_VALUE = 93;
+ /**
+ * <code>StubI2CWriteBytesResponse = 94;</code>
+ */
+ public static final int StubI2CWriteBytesResponse_VALUE = 94;
+ /**
+ * <code>StubExtFlashWriteWordsRequest = 95;</code>
+ */
+ public static final int StubExtFlashWriteWordsRequest_VALUE = 95;
+ /**
+ * <code>StubExtFlashWriteWordsResponse = 96;</code>
+ */
+ public static final int StubExtFlashWriteWordsResponse_VALUE = 96;
+ /**
+ * <code>StubExtFlashReadWordsRequest = 97;</code>
+ */
+ public static final int StubExtFlashReadWordsRequest_VALUE = 97;
+ /**
+ * <code>StubExtFlashReadWordsResponse = 98;</code>
+ */
+ public static final int StubExtFlashReadWordsResponse_VALUE = 98;
+ /**
+ * <code>StubJobRequest = 99;</code>
+ */
+ public static final int StubJobRequest_VALUE = 99;
+ /**
+ * <code>StubJobResponse = 100;</code>
+ */
+ public static final int StubJobResponse_VALUE = 100;
+ /**
+ * <code>StubAbortJobRequest = 101;</code>
+ */
+ public static final int StubAbortJobRequest_VALUE = 101;
+ /**
+ * <code>StubAbortJobResponse = 102;</code>
+ */
+ public static final int StubAbortJobResponse_VALUE = 102;
+ /**
+ * <code>StubMidTankPressureSensorRequest = 103;</code>
+ */
+ public static final int StubMidTankPressureSensorRequest_VALUE = 103;
+ /**
+ * <pre>
+ *------------------------------------
+ * </pre>
+ *
+ * <code>StubMidTankPressureSensorResponse = 104;</code>
+ */
+ public static final int StubMidTankPressureSensorResponse_VALUE = 104;
+ /**
+ * <pre>
+ *Integration
+ * </pre>
+ *
+ * <code>ExternalBridgeUdpDiscoveryPacket = 1000;</code>
+ */
+ public static final int ExternalBridgeUdpDiscoveryPacket_VALUE = 1000;
+ /**
+ * <code>ExternalBridgeLoginRequest = 1001;</code>
+ */
+ public static final int ExternalBridgeLoginRequest_VALUE = 1001;
+ /**
+ * <code>ExternalBridgeLoginResponse = 1002;</code>
+ */
+ public static final int ExternalBridgeLoginResponse_VALUE = 1002;
+ /**
+ * <code>ExternalBridgeLogoutRequest = 1003;</code>
+ */
+ public static final int ExternalBridgeLogoutRequest_VALUE = 1003;
+ /**
+ * <code>ExternalBridgeLogoutResponse = 1004;</code>
+ */
+ public static final int ExternalBridgeLogoutResponse_VALUE = 1004;
+ /**
+ * <code>DirectSynchronizationRequest = 1005;</code>
+ */
+ public static final int DirectSynchronizationRequest_VALUE = 1005;
+ /**
+ * <code>DirectSynchronizationResponse = 1006;</code>
+ */
+ public static final int DirectSynchronizationResponse_VALUE = 1006;
+ /**
+ * <code>OverrideDataBaseRequest = 1007;</code>
+ */
+ public static final int OverrideDataBaseRequest_VALUE = 1007;
+ /**
+ * <code>OverrideDataBaseResponse = 1008;</code>
+ */
+ public static final int OverrideDataBaseResponse_VALUE = 1008;
+ /**
+ * <code>StartApplicationLogsRequest = 1009;</code>
+ */
+ public static final int StartApplicationLogsRequest_VALUE = 1009;
+ /**
+ * <code>StartApplicationLogsResponse = 1010;</code>
+ */
+ public static final int StartApplicationLogsResponse_VALUE = 1010;
+ /**
+ * <code>StopApplicationLogsRequest = 1011;</code>
+ */
+ public static final int StopApplicationLogsRequest_VALUE = 1011;
+ /**
+ * <code>StopApplicationLogsResponse = 1012;</code>
+ */
+ public static final int StopApplicationLogsResponse_VALUE = 1012;
+ /**
+ * <code>ColorProfileRequest = 1013;</code>
+ */
+ public static final int ColorProfileRequest_VALUE = 1013;
+ /**
+ * <code>ColorProfileResponse = 1014;</code>
+ */
+ public static final int ColorProfileResponse_VALUE = 1014;
+ /**
+ * <pre>
+ *Diagnostics
+ * </pre>
+ *
+ * <code>StartDiagnosticsRequest = 2000;</code>
+ */
+ public static final int StartDiagnosticsRequest_VALUE = 2000;
+ /**
+ * <code>StartDiagnosticsResponse = 2001;</code>
+ */
+ public static final int StartDiagnosticsResponse_VALUE = 2001;
+ /**
+ * <code>MotorAbortHomingRequest = 2002;</code>
+ */
+ public static final int MotorAbortHomingRequest_VALUE = 2002;
+ /**
+ * <code>MotorAbortHomingResponse = 2003;</code>
+ */
+ public static final int MotorAbortHomingResponse_VALUE = 2003;
+ /**
+ * <code>MotorHomingRequest = 2004;</code>
+ */
+ public static final int MotorHomingRequest_VALUE = 2004;
+ /**
+ * <code>MotorHomingResponse = 2005;</code>
+ */
+ public static final int MotorHomingResponse_VALUE = 2005;
+ /**
+ * <code>MotorJoggingRequest = 2006;</code>
+ */
+ public static final int MotorJoggingRequest_VALUE = 2006;
+ /**
+ * <code>MotorJoggingResponse = 2007;</code>
+ */
+ public static final int MotorJoggingResponse_VALUE = 2007;
+ /**
+ * <code>MotorAbortJoggingRequest = 2008;</code>
+ */
+ public static final int MotorAbortJoggingRequest_VALUE = 2008;
+ /**
+ * <code>MotorAbortJoggingResponse = 2009;</code>
+ */
+ public static final int MotorAbortJoggingResponse_VALUE = 2009;
+ /**
+ * <code>DispenserAbortHomingRequest = 2010;</code>
+ */
+ public static final int DispenserAbortHomingRequest_VALUE = 2010;
+ /**
+ * <code>DispenserAbortHomingResponse = 2011;</code>
+ */
+ public static final int DispenserAbortHomingResponse_VALUE = 2011;
+ /**
+ * <code>DispenserHomingRequest = 2012;</code>
+ */
+ public static final int DispenserHomingRequest_VALUE = 2012;
+ /**
+ * <code>DispenserHomingResponse = 2013;</code>
+ */
+ public static final int DispenserHomingResponse_VALUE = 2013;
+ /**
+ * <code>DispenserJoggingRequest = 2014;</code>
+ */
+ public static final int DispenserJoggingRequest_VALUE = 2014;
+ /**
+ * <code>DispenserJoggingResponse = 2015;</code>
+ */
+ public static final int DispenserJoggingResponse_VALUE = 2015;
+ /**
+ * <code>DispenserAbortJoggingRequest = 2016;</code>
+ */
+ public static final int DispenserAbortJoggingRequest_VALUE = 2016;
+ /**
+ * <code>DispenserAbortJoggingResponse = 2017;</code>
+ */
+ public static final int DispenserAbortJoggingResponse_VALUE = 2017;
+ /**
+ * <code>SetDigitalOutRequest = 2018;</code>
+ */
+ public static final int SetDigitalOutRequest_VALUE = 2018;
+ /**
+ * <code>SetDigitalOutResponse = 2019;</code>
+ */
+ public static final int SetDigitalOutResponse_VALUE = 2019;
+ /**
+ * <code>ThreadJoggingRequest = 2020;</code>
+ */
+ public static final int ThreadJoggingRequest_VALUE = 2020;
+ /**
+ * <code>ThreadJoggingResponse = 2021;</code>
+ */
+ public static final int ThreadJoggingResponse_VALUE = 2021;
+ /**
+ * <code>ThreadAbortJoggingRequest = 2022;</code>
+ */
+ public static final int ThreadAbortJoggingRequest_VALUE = 2022;
+ /**
+ * <code>ThreadAbortJoggingResponse = 2023;</code>
+ */
+ public static final int ThreadAbortJoggingResponse_VALUE = 2023;
+ /**
+ * <code>SetComponentValueRequest = 2024;</code>
+ */
+ public static final int SetComponentValueRequest_VALUE = 2024;
+ /**
+ * <code>SetComponentValueResponse = 2025;</code>
+ */
+ public static final int SetComponentValueResponse_VALUE = 2025;
+ /**
+ * <code>ResolveEventRequest = 2026;</code>
+ */
+ public static final int ResolveEventRequest_VALUE = 2026;
+ /**
+ * <code>ResolveEventResponse = 2027;</code>
+ */
+ public static final int ResolveEventResponse_VALUE = 2027;
+ /**
+ * <code>StopDiagnosticsRequest = 2028;</code>
+ */
+ public static final int StopDiagnosticsRequest_VALUE = 2028;
+ /**
+ * <code>StopDiagnosticsResponse = 2029;</code>
+ */
+ public static final int StopDiagnosticsResponse_VALUE = 2029;
+ /**
+ * <code>StartEventsNotificationRequest = 2030;</code>
+ */
+ public static final int StartEventsNotificationRequest_VALUE = 2030;
+ /**
+ * <code>StartEventsNotificationResponse = 2031;</code>
+ */
+ public static final int StartEventsNotificationResponse_VALUE = 2031;
+ /**
+ * <code>StopEventsNotificationRequest = 2032;</code>
+ */
+ public static final int StopEventsNotificationRequest_VALUE = 2032;
+ /**
+ * <code>StopEventsNotificationResponse = 2033;</code>
+ */
+ public static final int StopEventsNotificationResponse_VALUE = 2033;
+ /**
+ * <code>SetHeaterStateRequest = 2034;</code>
+ */
+ public static final int SetHeaterStateRequest_VALUE = 2034;
+ /**
+ * <code>SetHeaterStateResponse = 2035;</code>
+ */
+ public static final int SetHeaterStateResponse_VALUE = 2035;
+ /**
+ * <code>SetBlowerStateRequest = 2036;</code>
+ */
+ public static final int SetBlowerStateRequest_VALUE = 2036;
+ /**
+ * <code>SetBlowerStateResponse = 2037;</code>
+ */
+ public static final int SetBlowerStateResponse_VALUE = 2037;
+ /**
+ * <code>SetValveStateRequest = 2038;</code>
+ */
+ public static final int SetValveStateRequest_VALUE = 2038;
+ /**
+ * <code>SetValveStateResponse = 2039;</code>
+ */
+ public static final int SetValveStateResponse_VALUE = 2039;
+ /**
+ * <pre>
+ *Printing
+ * </pre>
+ *
+ * <code>JobRequest = 3000;</code>
+ */
+ public static final int JobRequest_VALUE = 3000;
+ /**
+ * <code>JobResponse = 3001;</code>
+ */
+ public static final int JobResponse_VALUE = 3001;
+ /**
+ * <code>AbortJobRequest = 3002;</code>
+ */
+ public static final int AbortJobRequest_VALUE = 3002;
+ /**
+ * <code>AbortJobResponse = 3003;</code>
+ */
+ public static final int AbortJobResponse_VALUE = 3003;
+ /**
+ * <code>UploadProcessParametersRequest = 3004;</code>
+ */
+ public static final int UploadProcessParametersRequest_VALUE = 3004;
+ /**
+ * <code>UploadProcessParametersResponse = 3005;</code>
+ */
+ public static final int UploadProcessParametersResponse_VALUE = 3005;
+ /**
+ * <code>CurrentJobRequest = 3006;</code>
+ */
+ public static final int CurrentJobRequest_VALUE = 3006;
+ /**
+ * <code>CurrentJobResponse = 3007;</code>
+ */
+ public static final int CurrentJobResponse_VALUE = 3007;
+ /**
+ * <code>ResumeCurrentJobRequest = 3008;</code>
+ */
+ public static final int ResumeCurrentJobRequest_VALUE = 3008;
+ /**
+ * <code>ResumeCurrentJobResponse = 3009;</code>
+ */
+ public static final int ResumeCurrentJobResponse_VALUE = 3009;
+ /**
+ * <pre>
+ *Debugging
+ * </pre>
+ *
+ * <code>StartDebugLogRequest = 4000;</code>
+ */
+ public static final int StartDebugLogRequest_VALUE = 4000;
+ /**
+ * <code>StartDebugLogResponse = 4001;</code>
+ */
+ public static final int StartDebugLogResponse_VALUE = 4001;
+ /**
+ * <code>StopDebugLogRequest = 4002;</code>
+ */
+ public static final int StopDebugLogRequest_VALUE = 4002;
+ /**
+ * <code>StopDebugLogResponse = 4003;</code>
+ */
+ public static final int StopDebugLogResponse_VALUE = 4003;
+ /**
+ * <pre>
+ *Hardware
+ * </pre>
+ *
+ * <code>UploadHardwareConfigurationRequest = 5000;</code>
+ */
+ public static final int UploadHardwareConfigurationRequest_VALUE = 5000;
+ /**
+ * <code>UploadHardwareConfigurationResponse = 5001;</code>
+ */
+ public static final int UploadHardwareConfigurationResponse_VALUE = 5001;
+ /**
+ * <code>SystemResetRequest = 5002;</code>
+ */
+ public static final int SystemResetRequest_VALUE = 5002;
+ /**
+ * <code>SystemResetResponse = 5003;</code>
+ */
+ public static final int SystemResetResponse_VALUE = 5003;
+ /**
+ * <pre>
+ *Connection
+ * </pre>
+ *
+ * <code>KeepAliveRequest = 6000;</code>
+ */
+ public static final int KeepAliveRequest_VALUE = 6000;
+ /**
+ * <code>KeepAliveResponse = 6001;</code>
+ */
+ public static final int KeepAliveResponse_VALUE = 6001;
+ /**
+ * <code>ConnectRequest = 6002;</code>
+ */
+ public static final int ConnectRequest_VALUE = 6002;
+ /**
+ * <code>ConnectResponse = 6003;</code>
+ */
+ public static final int ConnectResponse_VALUE = 6003;
+ /**
+ * <code>DisconnectRequest = 6004;</code>
+ */
+ public static final int DisconnectRequest_VALUE = 6004;
+ /**
+ * <code>DisconnectResponse = 6005;</code>
+ */
+ public static final int DisconnectResponse_VALUE = 6005;
+ /**
+ * <pre>
+ *IO
+ * </pre>
+ *
+ * <code>FileUploadRequest = 7000;</code>
+ */
+ public static final int FileUploadRequest_VALUE = 7000;
+ /**
+ * <code>FileUploadResponse = 7001;</code>
+ */
+ public static final int FileUploadResponse_VALUE = 7001;
+ /**
+ * <code>FileChunkUploadRequest = 7002;</code>
+ */
+ public static final int FileChunkUploadRequest_VALUE = 7002;
+ /**
+ * <code>FileChunkUploadResponse = 7003;</code>
+ */
+ public static final int FileChunkUploadResponse_VALUE = 7003;
+ /**
+ * <code>ExecuteProcessRequest = 7004;</code>
+ */
+ public static final int ExecuteProcessRequest_VALUE = 7004;
+ /**
+ * <code>ExecuteProcessResponse = 7005;</code>
+ */
+ public static final int ExecuteProcessResponse_VALUE = 7005;
+ /**
+ * <code>KillProcessRequest = 7006;</code>
+ */
+ public static final int KillProcessRequest_VALUE = 7006;
+ /**
+ * <code>KillProcessResponse = 7007;</code>
+ */
+ public static final int KillProcessResponse_VALUE = 7007;
+ /**
+ * <code>CreateRequest = 7008;</code>
+ */
+ public static final int CreateRequest_VALUE = 7008;
+ /**
+ * <code>CreateResponse = 7009;</code>
+ */
+ public static final int CreateResponse_VALUE = 7009;
+ /**
+ * <code>DeleteRequest = 7010;</code>
+ */
+ public static final int DeleteRequest_VALUE = 7010;
+ /**
+ * <code>DeleteResponse = 7011;</code>
+ */
+ public static final int DeleteResponse_VALUE = 7011;
+ /**
+ * <code>GetStorageInfoRequest = 7012;</code>
+ */
+ public static final int GetStorageInfoRequest_VALUE = 7012;
+ /**
+ * <code>GetStorageInfoResponse = 7013;</code>
+ */
+ public static final int GetStorageInfoResponse_VALUE = 7013;
+ /**
+ * <code>GetFilesRequest = 7014;</code>
+ */
+ public static final int GetFilesRequest_VALUE = 7014;
+ /**
+ * <code>GetFilesResponse = 7015;</code>
+ */
+ public static final int GetFilesResponse_VALUE = 7015;
+ /**
+ * <code>FileDownloadRequest = 7016;</code>
+ */
+ public static final int FileDownloadRequest_VALUE = 7016;
+ /**
+ * <code>FileDownloadResponse = 7017;</code>
+ */
+ public static final int FileDownloadResponse_VALUE = 7017;
+ /**
+ * <code>FileChunkDownloadRequest = 7018;</code>
+ */
+ public static final int FileChunkDownloadRequest_VALUE = 7018;
+ /**
+ * <code>FileChunkDownloadResponse = 7019;</code>
+ */
+ public static final int FileChunkDownloadResponse_VALUE = 7019;
+ /**
+ * <code>ValidateVersionRequest = 7020;</code>
+ */
+ public static final int ValidateVersionRequest_VALUE = 7020;
+ /**
+ * <code>ValidateVersionResponse = 7021;</code>
+ */
+ public static final int ValidateVersionResponse_VALUE = 7021;
+ /**
+ * <code>ActivateVersionRequest = 7022;</code>
+ */
+ public static final int ActivateVersionRequest_VALUE = 7022;
+ /**
+ * <code>ActivateVersionResponse = 7023;</code>
+ */
+ public static final int ActivateVersionResponse_VALUE = 7023;
+ /**
+ * <pre>
+ *EmbeddedParameters
+ * </pre>
+ *
+ * <code>DispenserDataRequest = 8000;</code>
+ */
+ public static final int DispenserDataRequest_VALUE = 8000;
+ /**
+ * <code>DispenserDataResponse = 8001;</code>
+ */
+ public static final int DispenserDataResponse_VALUE = 8001;
+
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static MessageType valueOf(int value) {
+ return forNumber(value);
+ }
+
+ public static MessageType forNumber(int value) {
+ switch (value) {
+ case 0: return None;
+ case 1: return ErrorResponse;
+ case 3: return CalculateRequest;
+ case 4: return CalculateResponse;
+ case 5: return ProgressRequest;
+ case 6: return ProgressResponse;
+ case 7: return StubCartridgeReadRequest;
+ case 8: return StubCartridgeReadResponse;
+ case 9: return StubCartridgeWriteRequest;
+ case 10: return StubCartridgeWriteResponse;
+ case 11: return StubDispenserRequest;
+ case 12: return StubDispenserResponse;
+ case 13: return StubGPIOInputSetupRequest;
+ case 14: return StubGPIOInputSetupResponse;
+ case 15: return StubGPIOReadBitRequest;
+ case 16: return StubGPIOReadBitResponse;
+ case 17: return StubGPIOReadByteRequest;
+ case 18: return StubGPIOReadByteResponse;
+ case 19: return StubGPIOWriteBitRequest;
+ case 20: return StubGPIOWriteBitResponse;
+ case 21: return StubGPIOWriteByteRequest;
+ case 22: return StubGPIOWriteByteResponse;
+ case 23: return StubHeaterRequest;
+ case 24: return StubHeaterResponse;
+ case 25: return StubI2CRequest;
+ case 26: return StubI2CResponse;
+ case 27: return StubOptLimitSwitchRequest;
+ case 28: return StubOptLimitSwitchResponse;
+ case 29: return StubSteperMotorRequest;
+ case 30: return StubSteperMotorResponse;
+ case 31: return StubValveRequest;
+ case 32: return StubValveResponse;
+ case 33: return StubExtFlashReadRequest;
+ case 34: return StubExtFlashReadResponse;
+ case 35: return StubExtFlashWriteRequest;
+ case 36: return StubExtFlashWriteResponse;
+ case 37: return StubFPGAReadBackRegRequest;
+ case 38: return StubFPGAReadBackRegResponse;
+ case 39: return StubFPGAReadVersionRequest;
+ case 40: return StubFPGAReadVersionResponse;
+ case 41: return StubL6470DriverRequest;
+ case 42: return StubL6470DriverResponse;
+ case 43: return StubMotorInitRequest;
+ case 44: return StubMotorInitResponse;
+ case 45: return StubMotorRunRequest;
+ case 46: return StubMotorRunResponse;
+ case 47: return StubMotorStopRequest;
+ case 48: return StubMotorStopResponse;
+ case 49: return StubMotorStatusRequest;
+ case 50: return StubMotorStatusResponse;
+ case 51: return StubMotorMovRequest;
+ case 52: return StubMotorMovResponse;
+ case 53: return StubMotorSpeedRequest;
+ case 54: return StubMotorSpeedResponse;
+ case 55: return StubMotorPositionRequest;
+ case 56: return StubMotorPositionResponse;
+ case 57: return StubHWVersionRequest;
+ case 58: return StubHWVersionResponse;
+ case 59: return StubF3Gpo01WriteRequest;
+ case 60: return StubF3Gpo01WriteResponse;
+ case 61: return StubHeatingTestRequest;
+ case 62: return StubHeatingTestResponse;
+ case 63: return StubHeatingTestPollRequest;
+ case 64: return StubHeatingTestPollResponse;
+ case 65: return StubMotorRequest;
+ case 66: return StubMotorResponse;
+ case 67: return StubMotorHomeMarkRequest;
+ case 68: return StubMotorHomeMarkResponse;
+ case 69: return StubMotorRunStepTickRequest;
+ case 70: return StubMotorRunStepTickResponse;
+ case 71: return StubFpgaReadRegRequest;
+ case 72: return StubFpgaReadRegResponse;
+ case 73: return StubFpgaWriteRegRequest;
+ case 74: return StubFpgaWriteRegResponse;
+ case 75: return StubReadEmbeddedVersionRequest;
+ case 76: return StubReadEmbeddedVersionResponse;
+ case 77: return StubTivaReadRegRequest;
+ case 78: return StubTivaReadRegResponse;
+ case 79: return StubTivaWriteRegRequest;
+ case 80: return StubTivaWriteRegResponse;
+ case 81: return StubDancerPositionRequest;
+ case 82: return StubDancerPositionResponse;
+ case 83: return StubSpeedSensorRequest;
+ case 84: return StubSpeedSensorResponse;
+ case 85: return StubRealTimeUsageRequest;
+ case 86: return StubRealTimeUsageResponse;
+ case 87: return StubIntADCReadRequest;
+ case 88: return StubIntADCReadResponse;
+ case 89: return StubTempSensorRequest;
+ case 90: return StubTempSensorResponse;
+ case 91: return StubI2CReadBytesRequest;
+ case 92: return StubI2CReadBytesResponse;
+ case 93: return StubI2CWriteBytesRequest;
+ case 94: return StubI2CWriteBytesResponse;
+ case 95: return StubExtFlashWriteWordsRequest;
+ case 96: return StubExtFlashWriteWordsResponse;
+ case 97: return StubExtFlashReadWordsRequest;
+ case 98: return StubExtFlashReadWordsResponse;
+ case 99: return StubJobRequest;
+ case 100: return StubJobResponse;
+ case 101: return StubAbortJobRequest;
+ case 102: return StubAbortJobResponse;
+ case 103: return StubMidTankPressureSensorRequest;
+ case 104: return StubMidTankPressureSensorResponse;
+ case 1000: return ExternalBridgeUdpDiscoveryPacket;
+ case 1001: return ExternalBridgeLoginRequest;
+ case 1002: return ExternalBridgeLoginResponse;
+ case 1003: return ExternalBridgeLogoutRequest;
+ case 1004: return ExternalBridgeLogoutResponse;
+ case 1005: return DirectSynchronizationRequest;
+ case 1006: return DirectSynchronizationResponse;
+ case 1007: return OverrideDataBaseRequest;
+ case 1008: return OverrideDataBaseResponse;
+ case 1009: return StartApplicationLogsRequest;
+ case 1010: return StartApplicationLogsResponse;
+ case 1011: return StopApplicationLogsRequest;
+ case 1012: return StopApplicationLogsResponse;
+ case 1013: return ColorProfileRequest;
+ case 1014: return ColorProfileResponse;
+ case 2000: return StartDiagnosticsRequest;
+ case 2001: return StartDiagnosticsResponse;
+ case 2002: return MotorAbortHomingRequest;
+ case 2003: return MotorAbortHomingResponse;
+ case 2004: return MotorHomingRequest;
+ case 2005: return MotorHomingResponse;
+ case 2006: return MotorJoggingRequest;
+ case 2007: return MotorJoggingResponse;
+ case 2008: return MotorAbortJoggingRequest;
+ case 2009: return MotorAbortJoggingResponse;
+ case 2010: return DispenserAbortHomingRequest;
+ case 2011: return DispenserAbortHomingResponse;
+ case 2012: return DispenserHomingRequest;
+ case 2013: return DispenserHomingResponse;
+ case 2014: return DispenserJoggingRequest;
+ case 2015: return DispenserJoggingResponse;
+ case 2016: return DispenserAbortJoggingRequest;
+ case 2017: return DispenserAbortJoggingResponse;
+ case 2018: return SetDigitalOutRequest;
+ case 2019: return SetDigitalOutResponse;
+ case 2020: return ThreadJoggingRequest;
+ case 2021: return ThreadJoggingResponse;
+ case 2022: return ThreadAbortJoggingRequest;
+ case 2023: return ThreadAbortJoggingResponse;
+ case 2024: return SetComponentValueRequest;
+ case 2025: return SetComponentValueResponse;
+ case 2026: return ResolveEventRequest;
+ case 2027: return ResolveEventResponse;
+ case 2028: return StopDiagnosticsRequest;
+ case 2029: return StopDiagnosticsResponse;
+ case 2030: return StartEventsNotificationRequest;
+ case 2031: return StartEventsNotificationResponse;
+ case 2032: return StopEventsNotificationRequest;
+ case 2033: return StopEventsNotificationResponse;
+ case 2034: return SetHeaterStateRequest;
+ case 2035: return SetHeaterStateResponse;
+ case 2036: return SetBlowerStateRequest;
+ case 2037: return SetBlowerStateResponse;
+ case 2038: return SetValveStateRequest;
+ case 2039: return SetValveStateResponse;
+ case 3000: return JobRequest;
+ case 3001: return JobResponse;
+ case 3002: return AbortJobRequest;
+ case 3003: return AbortJobResponse;
+ case 3004: return UploadProcessParametersRequest;
+ case 3005: return UploadProcessParametersResponse;
+ case 3006: return CurrentJobRequest;
+ case 3007: return CurrentJobResponse;
+ case 3008: return ResumeCurrentJobRequest;
+ case 3009: return ResumeCurrentJobResponse;
+ case 4000: return StartDebugLogRequest;
+ case 4001: return StartDebugLogResponse;
+ case 4002: return StopDebugLogRequest;
+ case 4003: return StopDebugLogResponse;
+ case 5000: return UploadHardwareConfigurationRequest;
+ case 5001: return UploadHardwareConfigurationResponse;
+ case 5002: return SystemResetRequest;
+ case 5003: return SystemResetResponse;
+ case 6000: return KeepAliveRequest;
+ case 6001: return KeepAliveResponse;
+ case 6002: return ConnectRequest;
+ case 6003: return ConnectResponse;
+ case 6004: return DisconnectRequest;
+ case 6005: return DisconnectResponse;
+ case 7000: return FileUploadRequest;
+ case 7001: return FileUploadResponse;
+ case 7002: return FileChunkUploadRequest;
+ case 7003: return FileChunkUploadResponse;
+ case 7004: return ExecuteProcessRequest;
+ case 7005: return ExecuteProcessResponse;
+ case 7006: return KillProcessRequest;
+ case 7007: return KillProcessResponse;
+ case 7008: return CreateRequest;
+ case 7009: return CreateResponse;
+ case 7010: return DeleteRequest;
+ case 7011: return DeleteResponse;
+ case 7012: return GetStorageInfoRequest;
+ case 7013: return GetStorageInfoResponse;
+ case 7014: return GetFilesRequest;
+ case 7015: return GetFilesResponse;
+ case 7016: return FileDownloadRequest;
+ case 7017: return FileDownloadResponse;
+ case 7018: return FileChunkDownloadRequest;
+ case 7019: return FileChunkDownloadResponse;
+ case 7020: return ValidateVersionRequest;
+ case 7021: return ValidateVersionResponse;
+ case 7022: return ActivateVersionRequest;
+ case 7023: return ActivateVersionResponse;
+ case 8000: return DispenserDataRequest;
+ case 8001: return DispenserDataResponse;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<MessageType>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static final com.google.protobuf.Internal.EnumLiteMap<
+ MessageType> internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<MessageType>() {
+ public MessageType findValueByNumber(int number) {
+ return MessageType.forNumber(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ return getDescriptor().getValues().get(ordinal());
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.common.MessageTypeOuterClass.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final MessageType[] VALUES = values();
+
+ public static MessageType valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ if (desc.getIndex() == -1) {
+ return UNRECOGNIZED;
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int value;
+
+ private MessageType(int value) {
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:Tango.PMR.Common.MessageType)
+ }
+
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\021MessageType.proto\022\020Tango.PMR.Common*\212/" +
+ "\n\013MessageType\022\010\n\004None\020\000\022\021\n\rErrorResponse" +
+ "\020\001\022\024\n\020CalculateRequest\020\003\022\025\n\021CalculateRes" +
+ "ponse\020\004\022\023\n\017ProgressRequest\020\005\022\024\n\020Progress" +
+ "Response\020\006\022\034\n\030StubCartridgeReadRequest\020\007" +
+ "\022\035\n\031StubCartridgeReadResponse\020\010\022\035\n\031StubC" +
+ "artridgeWriteRequest\020\t\022\036\n\032StubCartridgeW" +
+ "riteResponse\020\n\022\030\n\024StubDispenserRequest\020\013" +
+ "\022\031\n\025StubDispenserResponse\020\014\022\035\n\031StubGPIOI" +
+ "nputSetupRequest\020\r\022\036\n\032StubGPIOInputSetup",
+ "Response\020\016\022\032\n\026StubGPIOReadBitRequest\020\017\022\033" +
+ "\n\027StubGPIOReadBitResponse\020\020\022\033\n\027StubGPIOR" +
+ "eadByteRequest\020\021\022\034\n\030StubGPIOReadByteResp" +
+ "onse\020\022\022\033\n\027StubGPIOWriteBitRequest\020\023\022\034\n\030S" +
+ "tubGPIOWriteBitResponse\020\024\022\034\n\030StubGPIOWri" +
+ "teByteRequest\020\025\022\035\n\031StubGPIOWriteByteResp" +
+ "onse\020\026\022\025\n\021StubHeaterRequest\020\027\022\026\n\022StubHea" +
+ "terResponse\020\030\022\022\n\016StubI2CRequest\020\031\022\023\n\017Stu" +
+ "bI2CResponse\020\032\022\035\n\031StubOptLimitSwitchRequ" +
+ "est\020\033\022\036\n\032StubOptLimitSwitchResponse\020\034\022\032\n",
+ "\026StubSteperMotorRequest\020\035\022\033\n\027StubSteperM" +
+ "otorResponse\020\036\022\024\n\020StubValveRequest\020\037\022\025\n\021" +
+ "StubValveResponse\020 \022\033\n\027StubExtFlashReadR" +
+ "equest\020!\022\034\n\030StubExtFlashReadResponse\020\"\022\034" +
+ "\n\030StubExtFlashWriteRequest\020#\022\035\n\031StubExtF" +
+ "lashWriteResponse\020$\022\036\n\032StubFPGAReadBackR" +
+ "egRequest\020%\022\037\n\033StubFPGAReadBackRegRespon" +
+ "se\020&\022\036\n\032StubFPGAReadVersionRequest\020\'\022\037\n\033" +
+ "StubFPGAReadVersionResponse\020(\022\032\n\026StubL64" +
+ "70DriverRequest\020)\022\033\n\027StubL6470DriverResp",
+ "onse\020*\022\030\n\024StubMotorInitRequest\020+\022\031\n\025Stub" +
+ "MotorInitResponse\020,\022\027\n\023StubMotorRunReque" +
+ "st\020-\022\030\n\024StubMotorRunResponse\020.\022\030\n\024StubMo" +
+ "torStopRequest\020/\022\031\n\025StubMotorStopRespons" +
+ "e\0200\022\032\n\026StubMotorStatusRequest\0201\022\033\n\027StubM" +
+ "otorStatusResponse\0202\022\027\n\023StubMotorMovRequ" +
+ "est\0203\022\030\n\024StubMotorMovResponse\0204\022\031\n\025StubM" +
+ "otorSpeedRequest\0205\022\032\n\026StubMotorSpeedResp" +
+ "onse\0206\022\034\n\030StubMotorPositionRequest\0207\022\035\n\031" +
+ "StubMotorPositionResponse\0208\022\030\n\024StubHWVer",
+ "sionRequest\0209\022\031\n\025StubHWVersionResponse\020:" +
+ "\022\033\n\027StubF3Gpo01WriteRequest\020;\022\034\n\030StubF3G" +
+ "po01WriteResponse\020<\022\032\n\026StubHeatingTestRe" +
+ "quest\020=\022\033\n\027StubHeatingTestResponse\020>\022\036\n\032" +
+ "StubHeatingTestPollRequest\020?\022\037\n\033StubHeat" +
+ "ingTestPollResponse\020@\022\024\n\020StubMotorReques" +
+ "t\020A\022\025\n\021StubMotorResponse\020B\022\034\n\030StubMotorH" +
+ "omeMarkRequest\020C\022\035\n\031StubMotorHomeMarkRes" +
+ "ponse\020D\022\037\n\033StubMotorRunStepTickRequest\020E" +
+ "\022 \n\034StubMotorRunStepTickResponse\020F\022\032\n\026St",
+ "ubFpgaReadRegRequest\020G\022\033\n\027StubFpgaReadRe" +
+ "gResponse\020H\022\033\n\027StubFpgaWriteRegRequest\020I" +
+ "\022\034\n\030StubFpgaWriteRegResponse\020J\022\"\n\036StubRe" +
+ "adEmbeddedVersionRequest\020K\022#\n\037StubReadEm" +
+ "beddedVersionResponse\020L\022\032\n\026StubTivaReadR" +
+ "egRequest\020M\022\033\n\027StubTivaReadRegResponse\020N" +
+ "\022\033\n\027StubTivaWriteRegRequest\020O\022\034\n\030StubTiv" +
+ "aWriteRegResponse\020P\022\035\n\031StubDancerPositio" +
+ "nRequest\020Q\022\036\n\032StubDancerPositionResponse" +
+ "\020R\022\032\n\026StubSpeedSensorRequest\020S\022\033\n\027StubSp",
+ "eedSensorResponse\020T\022\034\n\030StubRealTimeUsage" +
+ "Request\020U\022\035\n\031StubRealTimeUsageResponse\020V" +
+ "\022\031\n\025StubIntADCReadRequest\020W\022\032\n\026StubIntAD" +
+ "CReadResponse\020X\022\031\n\025StubTempSensorRequest" +
+ "\020Y\022\032\n\026StubTempSensorResponse\020Z\022\033\n\027StubI2" +
+ "CReadBytesRequest\020[\022\034\n\030StubI2CReadBytesR" +
+ "esponse\020\\\022\034\n\030StubI2CWriteBytesRequest\020]\022" +
+ "\035\n\031StubI2CWriteBytesResponse\020^\022!\n\035StubEx" +
+ "tFlashWriteWordsRequest\020_\022\"\n\036StubExtFlas" +
+ "hWriteWordsResponse\020`\022 \n\034StubExtFlashRea",
+ "dWordsRequest\020a\022!\n\035StubExtFlashReadWords" +
+ "Response\020b\022\022\n\016StubJobRequest\020c\022\023\n\017StubJo" +
+ "bResponse\020d\022\027\n\023StubAbortJobRequest\020e\022\030\n\024" +
+ "StubAbortJobResponse\020f\022$\n StubMidTankPre" +
+ "ssureSensorRequest\020g\022%\n!StubMidTankPress" +
+ "ureSensorResponse\020h\022%\n ExternalBridgeUdp" +
+ "DiscoveryPacket\020\350\007\022\037\n\032ExternalBridgeLogi" +
+ "nRequest\020\351\007\022 \n\033ExternalBridgeLoginRespon" +
+ "se\020\352\007\022 \n\033ExternalBridgeLogoutRequest\020\353\007\022" +
+ "!\n\034ExternalBridgeLogoutResponse\020\354\007\022!\n\034Di",
+ "rectSynchronizationRequest\020\355\007\022\"\n\035DirectS" +
+ "ynchronizationResponse\020\356\007\022\034\n\027OverrideDat" +
+ "aBaseRequest\020\357\007\022\035\n\030OverrideDataBaseRespo" +
+ "nse\020\360\007\022 \n\033StartApplicationLogsRequest\020\361\007" +
+ "\022!\n\034StartApplicationLogsResponse\020\362\007\022\037\n\032S" +
+ "topApplicationLogsRequest\020\363\007\022 \n\033StopAppl" +
+ "icationLogsResponse\020\364\007\022\030\n\023ColorProfileRe" +
+ "quest\020\365\007\022\031\n\024ColorProfileResponse\020\366\007\022\034\n\027S" +
+ "tartDiagnosticsRequest\020\320\017\022\035\n\030StartDiagno" +
+ "sticsResponse\020\321\017\022\034\n\027MotorAbortHomingRequ",
+ "est\020\322\017\022\035\n\030MotorAbortHomingResponse\020\323\017\022\027\n" +
+ "\022MotorHomingRequest\020\324\017\022\030\n\023MotorHomingRes" +
+ "ponse\020\325\017\022\030\n\023MotorJoggingRequest\020\326\017\022\031\n\024Mo" +
+ "torJoggingResponse\020\327\017\022\035\n\030MotorAbortJoggi" +
+ "ngRequest\020\330\017\022\036\n\031MotorAbortJoggingRespons" +
+ "e\020\331\017\022 \n\033DispenserAbortHomingRequest\020\332\017\022!" +
+ "\n\034DispenserAbortHomingResponse\020\333\017\022\033\n\026Dis" +
+ "penserHomingRequest\020\334\017\022\034\n\027DispenserHomin" +
+ "gResponse\020\335\017\022\034\n\027DispenserJoggingRequest\020" +
+ "\336\017\022\035\n\030DispenserJoggingResponse\020\337\017\022!\n\034Dis",
+ "penserAbortJoggingRequest\020\340\017\022\"\n\035Dispense" +
+ "rAbortJoggingResponse\020\341\017\022\031\n\024SetDigitalOu" +
+ "tRequest\020\342\017\022\032\n\025SetDigitalOutResponse\020\343\017\022" +
+ "\031\n\024ThreadJoggingRequest\020\344\017\022\032\n\025ThreadJogg" +
+ "ingResponse\020\345\017\022\036\n\031ThreadAbortJoggingRequ" +
+ "est\020\346\017\022\037\n\032ThreadAbortJoggingResponse\020\347\017\022" +
+ "\035\n\030SetComponentValueRequest\020\350\017\022\036\n\031SetCom" +
+ "ponentValueResponse\020\351\017\022\030\n\023ResolveEventRe" +
+ "quest\020\352\017\022\031\n\024ResolveEventResponse\020\353\017\022\033\n\026S" +
+ "topDiagnosticsRequest\020\354\017\022\034\n\027StopDiagnost",
+ "icsResponse\020\355\017\022#\n\036StartEventsNotificatio" +
+ "nRequest\020\356\017\022$\n\037StartEventsNotificationRe" +
+ "sponse\020\357\017\022\"\n\035StopEventsNotificationReque" +
+ "st\020\360\017\022#\n\036StopEventsNotificationResponse\020" +
+ "\361\017\022\032\n\025SetHeaterStateRequest\020\362\017\022\033\n\026SetHea" +
+ "terStateResponse\020\363\017\022\032\n\025SetBlowerStateReq" +
+ "uest\020\364\017\022\033\n\026SetBlowerStateResponse\020\365\017\022\031\n\024" +
+ "SetValveStateRequest\020\366\017\022\032\n\025SetValveState" +
+ "Response\020\367\017\022\017\n\nJobRequest\020\270\027\022\020\n\013JobRespo" +
+ "nse\020\271\027\022\024\n\017AbortJobRequest\020\272\027\022\025\n\020AbortJob",
+ "Response\020\273\027\022#\n\036UploadProcessParametersRe" +
+ "quest\020\274\027\022$\n\037UploadProcessParametersRespo" +
+ "nse\020\275\027\022\026\n\021CurrentJobRequest\020\276\027\022\027\n\022Curren" +
+ "tJobResponse\020\277\027\022\034\n\027ResumeCurrentJobReque" +
+ "st\020\300\027\022\035\n\030ResumeCurrentJobResponse\020\301\027\022\031\n\024" +
+ "StartDebugLogRequest\020\240\037\022\032\n\025StartDebugLog" +
+ "Response\020\241\037\022\030\n\023StopDebugLogRequest\020\242\037\022\031\n" +
+ "\024StopDebugLogResponse\020\243\037\022\'\n\"UploadHardwa" +
+ "reConfigurationRequest\020\210\'\022(\n#UploadHardw" +
+ "areConfigurationResponse\020\211\'\022\027\n\022SystemRes",
+ "etRequest\020\212\'\022\030\n\023SystemResetResponse\020\213\'\022\025" +
+ "\n\020KeepAliveRequest\020\360.\022\026\n\021KeepAliveRespon" +
+ "se\020\361.\022\023\n\016ConnectRequest\020\362.\022\024\n\017ConnectRes" +
+ "ponse\020\363.\022\026\n\021DisconnectRequest\020\364.\022\027\n\022Disc" +
+ "onnectResponse\020\365.\022\026\n\021FileUploadRequest\020\330" +
+ "6\022\027\n\022FileUploadResponse\020\3316\022\033\n\026FileChunkU" +
+ "ploadRequest\020\3326\022\034\n\027FileChunkUploadRespon" +
+ "se\020\3336\022\032\n\025ExecuteProcessRequest\020\3346\022\033\n\026Exe" +
+ "cuteProcessResponse\020\3356\022\027\n\022KillProcessReq" +
+ "uest\020\3366\022\030\n\023KillProcessResponse\020\3376\022\022\n\rCre",
+ "ateRequest\020\3406\022\023\n\016CreateResponse\020\3416\022\022\n\rDe" +
+ "leteRequest\020\3426\022\023\n\016DeleteResponse\020\3436\022\032\n\025G" +
+ "etStorageInfoRequest\020\3446\022\033\n\026GetStorageInf" +
+ "oResponse\020\3456\022\024\n\017GetFilesRequest\020\3466\022\025\n\020Ge" +
+ "tFilesResponse\020\3476\022\030\n\023FileDownloadRequest" +
+ "\020\3506\022\031\n\024FileDownloadResponse\020\3516\022\035\n\030FileCh" +
+ "unkDownloadRequest\020\3526\022\036\n\031FileChunkDownlo" +
+ "adResponse\020\3536\022\033\n\026ValidateVersionRequest\020" +
+ "\3546\022\034\n\027ValidateVersionResponse\020\3556\022\033\n\026Acti" +
+ "vateVersionRequest\020\3566\022\034\n\027ActivateVersion",
+ "Response\020\3576\022\031\n\024DispenserDataRequest\020\300>\022\032" +
+ "\n\025DispenserDataResponse\020\301>B\034\n\032com.twine." +
+ "tango.pmr.commonb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/ConnectRequestOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/ConnectRequestOuterClass.java
new file mode 100644
index 000000000..bdafc4d0f
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/ConnectRequestOuterClass.java
@@ -0,0 +1,579 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: ConnectRequest.proto
+
+package com.twine.tango.pmr.connection;
+
+public final class ConnectRequestOuterClass {
+ private ConnectRequestOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface ConnectRequestOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Connection.ConnectRequest)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>string Password = 1;</code>
+ */
+ java.lang.String getPassword();
+ /**
+ * <code>string Password = 1;</code>
+ */
+ com.google.protobuf.ByteString
+ getPasswordBytes();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Connection.ConnectRequest}
+ */
+ public static final class ConnectRequest extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Connection.ConnectRequest)
+ ConnectRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use ConnectRequest.newBuilder() to construct.
+ private ConnectRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private ConnectRequest() {
+ password_ = "";
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private ConnectRequest(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ password_ = s;
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.connection.ConnectRequestOuterClass.internal_static_Tango_PMR_Connection_ConnectRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.connection.ConnectRequestOuterClass.internal_static_Tango_PMR_Connection_ConnectRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest.class, com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest.Builder.class);
+ }
+
+ public static final int PASSWORD_FIELD_NUMBER = 1;
+ private volatile java.lang.Object password_;
+ /**
+ * <code>string Password = 1;</code>
+ */
+ public java.lang.String getPassword() {
+ java.lang.Object ref = password_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ password_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string Password = 1;</code>
+ */
+ public com.google.protobuf.ByteString
+ getPasswordBytes() {
+ java.lang.Object ref = password_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ password_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (!getPasswordBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 1, password_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!getPasswordBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, password_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest other = (com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest) obj;
+
+ boolean result = true;
+ result = result && getPassword()
+ .equals(other.getPassword());
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
+ hash = (53 * hash) + getPassword().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Connection.ConnectRequest}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Connection.ConnectRequest)
+ com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.connection.ConnectRequestOuterClass.internal_static_Tango_PMR_Connection_ConnectRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.connection.ConnectRequestOuterClass.internal_static_Tango_PMR_Connection_ConnectRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest.class, com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ password_ = "";
+
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.connection.ConnectRequestOuterClass.internal_static_Tango_PMR_Connection_ConnectRequest_descriptor;
+ }
+
+ public com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest getDefaultInstanceForType() {
+ return com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest build() {
+ com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest buildPartial() {
+ com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest result = new com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest(this);
+ result.password_ = password_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest) {
+ return mergeFrom((com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest other) {
+ if (other == com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest.getDefaultInstance()) return this;
+ if (!other.getPassword().isEmpty()) {
+ password_ = other.password_;
+ onChanged();
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private java.lang.Object password_ = "";
+ /**
+ * <code>string Password = 1;</code>
+ */
+ public java.lang.String getPassword() {
+ java.lang.Object ref = password_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ password_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string Password = 1;</code>
+ */
+ public com.google.protobuf.ByteString
+ getPasswordBytes() {
+ java.lang.Object ref = password_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ password_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string Password = 1;</code>
+ */
+ public Builder setPassword(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ password_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string Password = 1;</code>
+ */
+ public Builder clearPassword() {
+
+ password_ = getDefaultInstance().getPassword();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string Password = 1;</code>
+ */
+ public Builder setPasswordBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ password_ = value;
+ onChanged();
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Connection.ConnectRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Connection.ConnectRequest)
+ private static final com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest();
+ }
+
+ public static com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<ConnectRequest>
+ PARSER = new com.google.protobuf.AbstractParser<ConnectRequest>() {
+ public ConnectRequest parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new ConnectRequest(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<ConnectRequest> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<ConnectRequest> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.connection.ConnectRequestOuterClass.ConnectRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Connection_ConnectRequest_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Connection_ConnectRequest_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\024ConnectRequest.proto\022\024Tango.PMR.Connec" +
+ "tion\"\"\n\016ConnectRequest\022\020\n\010Password\030\001 \001(\t" +
+ "B \n\036com.twine.tango.pmr.connectionb\006prot" +
+ "o3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Connection_ConnectRequest_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Connection_ConnectRequest_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Connection_ConnectRequest_descriptor,
+ new java.lang.String[] { "Password", });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/ConnectResponseOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/ConnectResponseOuterClass.java
new file mode 100644
index 000000000..72af98904
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/ConnectResponseOuterClass.java
@@ -0,0 +1,639 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: ConnectResponse.proto
+
+package com.twine.tango.pmr.connection;
+
+public final class ConnectResponseOuterClass {
+ private ConnectResponseOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface ConnectResponseOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Connection.ConnectResponse)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 1;</code>
+ */
+ boolean hasDeviceInformation();
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 1;</code>
+ */
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation getDeviceInformation();
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 1;</code>
+ */
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformationOrBuilder getDeviceInformationOrBuilder();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Connection.ConnectResponse}
+ */
+ public static final class ConnectResponse extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Connection.ConnectResponse)
+ ConnectResponseOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use ConnectResponse.newBuilder() to construct.
+ private ConnectResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private ConnectResponse() {
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private ConnectResponse(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.Builder subBuilder = null;
+ if (deviceInformation_ != null) {
+ subBuilder = deviceInformation_.toBuilder();
+ }
+ deviceInformation_ = input.readMessage(com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.parser(), extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(deviceInformation_);
+ deviceInformation_ = subBuilder.buildPartial();
+ }
+
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.connection.ConnectResponseOuterClass.internal_static_Tango_PMR_Connection_ConnectResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.connection.ConnectResponseOuterClass.internal_static_Tango_PMR_Connection_ConnectResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse.class, com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse.Builder.class);
+ }
+
+ public static final int DEVICEINFORMATION_FIELD_NUMBER = 1;
+ private com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation deviceInformation_;
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 1;</code>
+ */
+ public boolean hasDeviceInformation() {
+ return deviceInformation_ != null;
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 1;</code>
+ */
+ public com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation getDeviceInformation() {
+ return deviceInformation_ == null ? com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.getDefaultInstance() : deviceInformation_;
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 1;</code>
+ */
+ public com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformationOrBuilder getDeviceInformationOrBuilder() {
+ return getDeviceInformation();
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (deviceInformation_ != null) {
+ output.writeMessage(1, getDeviceInformation());
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (deviceInformation_ != null) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(1, getDeviceInformation());
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse other = (com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse) obj;
+
+ boolean result = true;
+ result = result && (hasDeviceInformation() == other.hasDeviceInformation());
+ if (hasDeviceInformation()) {
+ result = result && getDeviceInformation()
+ .equals(other.getDeviceInformation());
+ }
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ if (hasDeviceInformation()) {
+ hash = (37 * hash) + DEVICEINFORMATION_FIELD_NUMBER;
+ hash = (53 * hash) + getDeviceInformation().hashCode();
+ }
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Connection.ConnectResponse}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Connection.ConnectResponse)
+ com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.connection.ConnectResponseOuterClass.internal_static_Tango_PMR_Connection_ConnectResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.connection.ConnectResponseOuterClass.internal_static_Tango_PMR_Connection_ConnectResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse.class, com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ if (deviceInformationBuilder_ == null) {
+ deviceInformation_ = null;
+ } else {
+ deviceInformation_ = null;
+ deviceInformationBuilder_ = null;
+ }
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.connection.ConnectResponseOuterClass.internal_static_Tango_PMR_Connection_ConnectResponse_descriptor;
+ }
+
+ public com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse getDefaultInstanceForType() {
+ return com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse build() {
+ com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse buildPartial() {
+ com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse result = new com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse(this);
+ if (deviceInformationBuilder_ == null) {
+ result.deviceInformation_ = deviceInformation_;
+ } else {
+ result.deviceInformation_ = deviceInformationBuilder_.build();
+ }
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse) {
+ return mergeFrom((com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse other) {
+ if (other == com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse.getDefaultInstance()) return this;
+ if (other.hasDeviceInformation()) {
+ mergeDeviceInformation(other.getDeviceInformation());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation deviceInformation_ = null;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation, com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.Builder, com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformationOrBuilder> deviceInformationBuilder_;
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 1;</code>
+ */
+ public boolean hasDeviceInformation() {
+ return deviceInformationBuilder_ != null || deviceInformation_ != null;
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 1;</code>
+ */
+ public com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation getDeviceInformation() {
+ if (deviceInformationBuilder_ == null) {
+ return deviceInformation_ == null ? com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.getDefaultInstance() : deviceInformation_;
+ } else {
+ return deviceInformationBuilder_.getMessage();
+ }
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 1;</code>
+ */
+ public Builder setDeviceInformation(com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation value) {
+ if (deviceInformationBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ deviceInformation_ = value;
+ onChanged();
+ } else {
+ deviceInformationBuilder_.setMessage(value);
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 1;</code>
+ */
+ public Builder setDeviceInformation(
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.Builder builderForValue) {
+ if (deviceInformationBuilder_ == null) {
+ deviceInformation_ = builderForValue.build();
+ onChanged();
+ } else {
+ deviceInformationBuilder_.setMessage(builderForValue.build());
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 1;</code>
+ */
+ public Builder mergeDeviceInformation(com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation value) {
+ if (deviceInformationBuilder_ == null) {
+ if (deviceInformation_ != null) {
+ deviceInformation_ =
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.newBuilder(deviceInformation_).mergeFrom(value).buildPartial();
+ } else {
+ deviceInformation_ = value;
+ }
+ onChanged();
+ } else {
+ deviceInformationBuilder_.mergeFrom(value);
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 1;</code>
+ */
+ public Builder clearDeviceInformation() {
+ if (deviceInformationBuilder_ == null) {
+ deviceInformation_ = null;
+ onChanged();
+ } else {
+ deviceInformation_ = null;
+ deviceInformationBuilder_ = null;
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 1;</code>
+ */
+ public com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.Builder getDeviceInformationBuilder() {
+
+ onChanged();
+ return getDeviceInformationFieldBuilder().getBuilder();
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 1;</code>
+ */
+ public com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformationOrBuilder getDeviceInformationOrBuilder() {
+ if (deviceInformationBuilder_ != null) {
+ return deviceInformationBuilder_.getMessageOrBuilder();
+ } else {
+ return deviceInformation_ == null ?
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.getDefaultInstance() : deviceInformation_;
+ }
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 1;</code>
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation, com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.Builder, com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformationOrBuilder>
+ getDeviceInformationFieldBuilder() {
+ if (deviceInformationBuilder_ == null) {
+ deviceInformationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation, com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.Builder, com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformationOrBuilder>(
+ getDeviceInformation(),
+ getParentForChildren(),
+ isClean());
+ deviceInformation_ = null;
+ }
+ return deviceInformationBuilder_;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Connection.ConnectResponse)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Connection.ConnectResponse)
+ private static final com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse();
+ }
+
+ public static com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<ConnectResponse>
+ PARSER = new com.google.protobuf.AbstractParser<ConnectResponse>() {
+ public ConnectResponse parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new ConnectResponse(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<ConnectResponse> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<ConnectResponse> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.connection.ConnectResponseOuterClass.ConnectResponse getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Connection_ConnectResponse_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Connection_ConnectResponse_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\025ConnectResponse.proto\022\024Tango.PMR.Conne" +
+ "ction\032\027DeviceInformation.proto\"U\n\017Connec" +
+ "tResponse\022B\n\021DeviceInformation\030\001 \001(\0132\'.T" +
+ "ango.PMR.Connection.DeviceInformationB \n" +
+ "\036com.twine.tango.pmr.connectionb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.getDescriptor(),
+ }, assigner);
+ internal_static_Tango_PMR_Connection_ConnectResponse_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Connection_ConnectResponse_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Connection_ConnectResponse_descriptor,
+ new java.lang.String[] { "DeviceInformation", });
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.getDescriptor();
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/DeviceInformationOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/DeviceInformationOuterClass.java
new file mode 100644
index 000000000..d8f1b7770
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/DeviceInformationOuterClass.java
@@ -0,0 +1,1541 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: DeviceInformation.proto
+
+package com.twine.tango.pmr.connection;
+
+public final class DeviceInformationOuterClass {
+ private DeviceInformationOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface DeviceInformationOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Connection.DeviceInformation)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>string Name = 1;</code>
+ */
+ java.lang.String getName();
+ /**
+ * <code>string Name = 1;</code>
+ */
+ com.google.protobuf.ByteString
+ getNameBytes();
+
+ /**
+ * <code>string Version = 2;</code>
+ */
+ java.lang.String getVersion();
+ /**
+ * <code>string Version = 2;</code>
+ */
+ com.google.protobuf.ByteString
+ getVersionBytes();
+
+ /**
+ * <code>string BuildDate = 3;</code>
+ */
+ java.lang.String getBuildDate();
+ /**
+ * <code>string BuildDate = 3;</code>
+ */
+ com.google.protobuf.ByteString
+ getBuildDateBytes();
+
+ /**
+ * <code>string BoardRevision = 4;</code>
+ */
+ java.lang.String getBoardRevision();
+ /**
+ * <code>string BoardRevision = 4;</code>
+ */
+ com.google.protobuf.ByteString
+ getBoardRevisionBytes();
+
+ /**
+ * <code>string AssemblyVersion = 5;</code>
+ */
+ java.lang.String getAssemblyVersion();
+ /**
+ * <code>string AssemblyVersion = 5;</code>
+ */
+ com.google.protobuf.ByteString
+ getAssemblyVersionBytes();
+
+ /**
+ * <code>string FPGA1Version = 6;</code>
+ */
+ java.lang.String getFPGA1Version();
+ /**
+ * <code>string FPGA1Version = 6;</code>
+ */
+ com.google.protobuf.ByteString
+ getFPGA1VersionBytes();
+
+ /**
+ * <code>string FPGA2Version = 7;</code>
+ */
+ java.lang.String getFPGA2Version();
+ /**
+ * <code>string FPGA2Version = 7;</code>
+ */
+ com.google.protobuf.ByteString
+ getFPGA2VersionBytes();
+
+ /**
+ * <code>string FPGA3Version = 8;</code>
+ */
+ java.lang.String getFPGA3Version();
+ /**
+ * <code>string FPGA3Version = 8;</code>
+ */
+ com.google.protobuf.ByteString
+ getFPGA3VersionBytes();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Connection.DeviceInformation}
+ */
+ public static final class DeviceInformation extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Connection.DeviceInformation)
+ DeviceInformationOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use DeviceInformation.newBuilder() to construct.
+ private DeviceInformation(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private DeviceInformation() {
+ name_ = "";
+ version_ = "";
+ buildDate_ = "";
+ boardRevision_ = "";
+ assemblyVersion_ = "";
+ fPGA1Version_ = "";
+ fPGA2Version_ = "";
+ fPGA3Version_ = "";
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private DeviceInformation(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ name_ = s;
+ break;
+ }
+ case 18: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ version_ = s;
+ break;
+ }
+ case 26: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ buildDate_ = s;
+ break;
+ }
+ case 34: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ boardRevision_ = s;
+ break;
+ }
+ case 42: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ assemblyVersion_ = s;
+ break;
+ }
+ case 50: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ fPGA1Version_ = s;
+ break;
+ }
+ case 58: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ fPGA2Version_ = s;
+ break;
+ }
+ case 66: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ fPGA3Version_ = s;
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.connection.DeviceInformationOuterClass.internal_static_Tango_PMR_Connection_DeviceInformation_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.connection.DeviceInformationOuterClass.internal_static_Tango_PMR_Connection_DeviceInformation_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.class, com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.Builder.class);
+ }
+
+ public static final int NAME_FIELD_NUMBER = 1;
+ private volatile java.lang.Object name_;
+ /**
+ * <code>string Name = 1;</code>
+ */
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string Name = 1;</code>
+ */
+ public com.google.protobuf.ByteString
+ getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int VERSION_FIELD_NUMBER = 2;
+ private volatile java.lang.Object version_;
+ /**
+ * <code>string Version = 2;</code>
+ */
+ public java.lang.String getVersion() {
+ java.lang.Object ref = version_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ version_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string Version = 2;</code>
+ */
+ public com.google.protobuf.ByteString
+ getVersionBytes() {
+ java.lang.Object ref = version_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ version_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int BUILDDATE_FIELD_NUMBER = 3;
+ private volatile java.lang.Object buildDate_;
+ /**
+ * <code>string BuildDate = 3;</code>
+ */
+ public java.lang.String getBuildDate() {
+ java.lang.Object ref = buildDate_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ buildDate_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string BuildDate = 3;</code>
+ */
+ public com.google.protobuf.ByteString
+ getBuildDateBytes() {
+ java.lang.Object ref = buildDate_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ buildDate_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int BOARDREVISION_FIELD_NUMBER = 4;
+ private volatile java.lang.Object boardRevision_;
+ /**
+ * <code>string BoardRevision = 4;</code>
+ */
+ public java.lang.String getBoardRevision() {
+ java.lang.Object ref = boardRevision_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ boardRevision_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string BoardRevision = 4;</code>
+ */
+ public com.google.protobuf.ByteString
+ getBoardRevisionBytes() {
+ java.lang.Object ref = boardRevision_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ boardRevision_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int ASSEMBLYVERSION_FIELD_NUMBER = 5;
+ private volatile java.lang.Object assemblyVersion_;
+ /**
+ * <code>string AssemblyVersion = 5;</code>
+ */
+ public java.lang.String getAssemblyVersion() {
+ java.lang.Object ref = assemblyVersion_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ assemblyVersion_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string AssemblyVersion = 5;</code>
+ */
+ public com.google.protobuf.ByteString
+ getAssemblyVersionBytes() {
+ java.lang.Object ref = assemblyVersion_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ assemblyVersion_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int FPGA1VERSION_FIELD_NUMBER = 6;
+ private volatile java.lang.Object fPGA1Version_;
+ /**
+ * <code>string FPGA1Version = 6;</code>
+ */
+ public java.lang.String getFPGA1Version() {
+ java.lang.Object ref = fPGA1Version_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ fPGA1Version_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string FPGA1Version = 6;</code>
+ */
+ public com.google.protobuf.ByteString
+ getFPGA1VersionBytes() {
+ java.lang.Object ref = fPGA1Version_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ fPGA1Version_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int FPGA2VERSION_FIELD_NUMBER = 7;
+ private volatile java.lang.Object fPGA2Version_;
+ /**
+ * <code>string FPGA2Version = 7;</code>
+ */
+ public java.lang.String getFPGA2Version() {
+ java.lang.Object ref = fPGA2Version_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ fPGA2Version_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string FPGA2Version = 7;</code>
+ */
+ public com.google.protobuf.ByteString
+ getFPGA2VersionBytes() {
+ java.lang.Object ref = fPGA2Version_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ fPGA2Version_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int FPGA3VERSION_FIELD_NUMBER = 8;
+ private volatile java.lang.Object fPGA3Version_;
+ /**
+ * <code>string FPGA3Version = 8;</code>
+ */
+ public java.lang.String getFPGA3Version() {
+ java.lang.Object ref = fPGA3Version_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ fPGA3Version_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string FPGA3Version = 8;</code>
+ */
+ public com.google.protobuf.ByteString
+ getFPGA3VersionBytes() {
+ java.lang.Object ref = fPGA3Version_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ fPGA3Version_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (!getNameBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
+ }
+ if (!getVersionBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, version_);
+ }
+ if (!getBuildDateBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 3, buildDate_);
+ }
+ if (!getBoardRevisionBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 4, boardRevision_);
+ }
+ if (!getAssemblyVersionBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 5, assemblyVersion_);
+ }
+ if (!getFPGA1VersionBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 6, fPGA1Version_);
+ }
+ if (!getFPGA2VersionBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 7, fPGA2Version_);
+ }
+ if (!getFPGA3VersionBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 8, fPGA3Version_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!getNameBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
+ }
+ if (!getVersionBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, version_);
+ }
+ if (!getBuildDateBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, buildDate_);
+ }
+ if (!getBoardRevisionBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, boardRevision_);
+ }
+ if (!getAssemblyVersionBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, assemblyVersion_);
+ }
+ if (!getFPGA1VersionBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, fPGA1Version_);
+ }
+ if (!getFPGA2VersionBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, fPGA2Version_);
+ }
+ if (!getFPGA3VersionBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, fPGA3Version_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation other = (com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation) obj;
+
+ boolean result = true;
+ result = result && getName()
+ .equals(other.getName());
+ result = result && getVersion()
+ .equals(other.getVersion());
+ result = result && getBuildDate()
+ .equals(other.getBuildDate());
+ result = result && getBoardRevision()
+ .equals(other.getBoardRevision());
+ result = result && getAssemblyVersion()
+ .equals(other.getAssemblyVersion());
+ result = result && getFPGA1Version()
+ .equals(other.getFPGA1Version());
+ result = result && getFPGA2Version()
+ .equals(other.getFPGA2Version());
+ result = result && getFPGA3Version()
+ .equals(other.getFPGA3Version());
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + NAME_FIELD_NUMBER;
+ hash = (53 * hash) + getName().hashCode();
+ hash = (37 * hash) + VERSION_FIELD_NUMBER;
+ hash = (53 * hash) + getVersion().hashCode();
+ hash = (37 * hash) + BUILDDATE_FIELD_NUMBER;
+ hash = (53 * hash) + getBuildDate().hashCode();
+ hash = (37 * hash) + BOARDREVISION_FIELD_NUMBER;
+ hash = (53 * hash) + getBoardRevision().hashCode();
+ hash = (37 * hash) + ASSEMBLYVERSION_FIELD_NUMBER;
+ hash = (53 * hash) + getAssemblyVersion().hashCode();
+ hash = (37 * hash) + FPGA1VERSION_FIELD_NUMBER;
+ hash = (53 * hash) + getFPGA1Version().hashCode();
+ hash = (37 * hash) + FPGA2VERSION_FIELD_NUMBER;
+ hash = (53 * hash) + getFPGA2Version().hashCode();
+ hash = (37 * hash) + FPGA3VERSION_FIELD_NUMBER;
+ hash = (53 * hash) + getFPGA3Version().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Connection.DeviceInformation}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Connection.DeviceInformation)
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformationOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.connection.DeviceInformationOuterClass.internal_static_Tango_PMR_Connection_DeviceInformation_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.connection.DeviceInformationOuterClass.internal_static_Tango_PMR_Connection_DeviceInformation_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.class, com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ name_ = "";
+
+ version_ = "";
+
+ buildDate_ = "";
+
+ boardRevision_ = "";
+
+ assemblyVersion_ = "";
+
+ fPGA1Version_ = "";
+
+ fPGA2Version_ = "";
+
+ fPGA3Version_ = "";
+
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.connection.DeviceInformationOuterClass.internal_static_Tango_PMR_Connection_DeviceInformation_descriptor;
+ }
+
+ public com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation getDefaultInstanceForType() {
+ return com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation build() {
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation buildPartial() {
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation result = new com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation(this);
+ result.name_ = name_;
+ result.version_ = version_;
+ result.buildDate_ = buildDate_;
+ result.boardRevision_ = boardRevision_;
+ result.assemblyVersion_ = assemblyVersion_;
+ result.fPGA1Version_ = fPGA1Version_;
+ result.fPGA2Version_ = fPGA2Version_;
+ result.fPGA3Version_ = fPGA3Version_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation) {
+ return mergeFrom((com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation other) {
+ if (other == com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.getDefaultInstance()) return this;
+ if (!other.getName().isEmpty()) {
+ name_ = other.name_;
+ onChanged();
+ }
+ if (!other.getVersion().isEmpty()) {
+ version_ = other.version_;
+ onChanged();
+ }
+ if (!other.getBuildDate().isEmpty()) {
+ buildDate_ = other.buildDate_;
+ onChanged();
+ }
+ if (!other.getBoardRevision().isEmpty()) {
+ boardRevision_ = other.boardRevision_;
+ onChanged();
+ }
+ if (!other.getAssemblyVersion().isEmpty()) {
+ assemblyVersion_ = other.assemblyVersion_;
+ onChanged();
+ }
+ if (!other.getFPGA1Version().isEmpty()) {
+ fPGA1Version_ = other.fPGA1Version_;
+ onChanged();
+ }
+ if (!other.getFPGA2Version().isEmpty()) {
+ fPGA2Version_ = other.fPGA2Version_;
+ onChanged();
+ }
+ if (!other.getFPGA3Version().isEmpty()) {
+ fPGA3Version_ = other.fPGA3Version_;
+ onChanged();
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private java.lang.Object name_ = "";
+ /**
+ * <code>string Name = 1;</code>
+ */
+ public java.lang.String getName() {
+ java.lang.Object ref = name_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ name_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string Name = 1;</code>
+ */
+ public com.google.protobuf.ByteString
+ getNameBytes() {
+ java.lang.Object ref = name_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ name_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string Name = 1;</code>
+ */
+ public Builder setName(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ name_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string Name = 1;</code>
+ */
+ public Builder clearName() {
+
+ name_ = getDefaultInstance().getName();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string Name = 1;</code>
+ */
+ public Builder setNameBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ name_ = value;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object version_ = "";
+ /**
+ * <code>string Version = 2;</code>
+ */
+ public java.lang.String getVersion() {
+ java.lang.Object ref = version_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ version_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string Version = 2;</code>
+ */
+ public com.google.protobuf.ByteString
+ getVersionBytes() {
+ java.lang.Object ref = version_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ version_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string Version = 2;</code>
+ */
+ public Builder setVersion(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ version_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string Version = 2;</code>
+ */
+ public Builder clearVersion() {
+
+ version_ = getDefaultInstance().getVersion();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string Version = 2;</code>
+ */
+ public Builder setVersionBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ version_ = value;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object buildDate_ = "";
+ /**
+ * <code>string BuildDate = 3;</code>
+ */
+ public java.lang.String getBuildDate() {
+ java.lang.Object ref = buildDate_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ buildDate_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string BuildDate = 3;</code>
+ */
+ public com.google.protobuf.ByteString
+ getBuildDateBytes() {
+ java.lang.Object ref = buildDate_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ buildDate_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string BuildDate = 3;</code>
+ */
+ public Builder setBuildDate(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ buildDate_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string BuildDate = 3;</code>
+ */
+ public Builder clearBuildDate() {
+
+ buildDate_ = getDefaultInstance().getBuildDate();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string BuildDate = 3;</code>
+ */
+ public Builder setBuildDateBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ buildDate_ = value;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object boardRevision_ = "";
+ /**
+ * <code>string BoardRevision = 4;</code>
+ */
+ public java.lang.String getBoardRevision() {
+ java.lang.Object ref = boardRevision_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ boardRevision_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string BoardRevision = 4;</code>
+ */
+ public com.google.protobuf.ByteString
+ getBoardRevisionBytes() {
+ java.lang.Object ref = boardRevision_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ boardRevision_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string BoardRevision = 4;</code>
+ */
+ public Builder setBoardRevision(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ boardRevision_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string BoardRevision = 4;</code>
+ */
+ public Builder clearBoardRevision() {
+
+ boardRevision_ = getDefaultInstance().getBoardRevision();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string BoardRevision = 4;</code>
+ */
+ public Builder setBoardRevisionBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ boardRevision_ = value;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object assemblyVersion_ = "";
+ /**
+ * <code>string AssemblyVersion = 5;</code>
+ */
+ public java.lang.String getAssemblyVersion() {
+ java.lang.Object ref = assemblyVersion_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ assemblyVersion_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string AssemblyVersion = 5;</code>
+ */
+ public com.google.protobuf.ByteString
+ getAssemblyVersionBytes() {
+ java.lang.Object ref = assemblyVersion_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ assemblyVersion_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string AssemblyVersion = 5;</code>
+ */
+ public Builder setAssemblyVersion(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ assemblyVersion_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string AssemblyVersion = 5;</code>
+ */
+ public Builder clearAssemblyVersion() {
+
+ assemblyVersion_ = getDefaultInstance().getAssemblyVersion();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string AssemblyVersion = 5;</code>
+ */
+ public Builder setAssemblyVersionBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ assemblyVersion_ = value;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object fPGA1Version_ = "";
+ /**
+ * <code>string FPGA1Version = 6;</code>
+ */
+ public java.lang.String getFPGA1Version() {
+ java.lang.Object ref = fPGA1Version_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ fPGA1Version_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string FPGA1Version = 6;</code>
+ */
+ public com.google.protobuf.ByteString
+ getFPGA1VersionBytes() {
+ java.lang.Object ref = fPGA1Version_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ fPGA1Version_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string FPGA1Version = 6;</code>
+ */
+ public Builder setFPGA1Version(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ fPGA1Version_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string FPGA1Version = 6;</code>
+ */
+ public Builder clearFPGA1Version() {
+
+ fPGA1Version_ = getDefaultInstance().getFPGA1Version();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string FPGA1Version = 6;</code>
+ */
+ public Builder setFPGA1VersionBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ fPGA1Version_ = value;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object fPGA2Version_ = "";
+ /**
+ * <code>string FPGA2Version = 7;</code>
+ */
+ public java.lang.String getFPGA2Version() {
+ java.lang.Object ref = fPGA2Version_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ fPGA2Version_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string FPGA2Version = 7;</code>
+ */
+ public com.google.protobuf.ByteString
+ getFPGA2VersionBytes() {
+ java.lang.Object ref = fPGA2Version_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ fPGA2Version_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string FPGA2Version = 7;</code>
+ */
+ public Builder setFPGA2Version(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ fPGA2Version_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string FPGA2Version = 7;</code>
+ */
+ public Builder clearFPGA2Version() {
+
+ fPGA2Version_ = getDefaultInstance().getFPGA2Version();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string FPGA2Version = 7;</code>
+ */
+ public Builder setFPGA2VersionBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ fPGA2Version_ = value;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object fPGA3Version_ = "";
+ /**
+ * <code>string FPGA3Version = 8;</code>
+ */
+ public java.lang.String getFPGA3Version() {
+ java.lang.Object ref = fPGA3Version_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ fPGA3Version_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string FPGA3Version = 8;</code>
+ */
+ public com.google.protobuf.ByteString
+ getFPGA3VersionBytes() {
+ java.lang.Object ref = fPGA3Version_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ fPGA3Version_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string FPGA3Version = 8;</code>
+ */
+ public Builder setFPGA3Version(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ fPGA3Version_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string FPGA3Version = 8;</code>
+ */
+ public Builder clearFPGA3Version() {
+
+ fPGA3Version_ = getDefaultInstance().getFPGA3Version();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string FPGA3Version = 8;</code>
+ */
+ public Builder setFPGA3VersionBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ fPGA3Version_ = value;
+ onChanged();
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Connection.DeviceInformation)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Connection.DeviceInformation)
+ private static final com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation();
+ }
+
+ public static com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<DeviceInformation>
+ PARSER = new com.google.protobuf.AbstractParser<DeviceInformation>() {
+ public DeviceInformation parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new DeviceInformation(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<DeviceInformation> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<DeviceInformation> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Connection_DeviceInformation_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Connection_DeviceInformation_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\027DeviceInformation.proto\022\024Tango.PMR.Con" +
+ "nection\"\267\001\n\021DeviceInformation\022\014\n\004Name\030\001 " +
+ "\001(\t\022\017\n\007Version\030\002 \001(\t\022\021\n\tBuildDate\030\003 \001(\t\022" +
+ "\025\n\rBoardRevision\030\004 \001(\t\022\027\n\017AssemblyVersio" +
+ "n\030\005 \001(\t\022\024\n\014FPGA1Version\030\006 \001(\t\022\024\n\014FPGA2Ve" +
+ "rsion\030\007 \001(\t\022\024\n\014FPGA3Version\030\010 \001(\tB \n\036com" +
+ ".twine.tango.pmr.connectionb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Connection_DeviceInformation_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Connection_DeviceInformation_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Connection_DeviceInformation_descriptor,
+ new java.lang.String[] { "Name", "Version", "BuildDate", "BoardRevision", "AssemblyVersion", "FPGA1Version", "FPGA2Version", "FPGA3Version", });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/DisconnectRequestOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/DisconnectRequestOuterClass.java
new file mode 100644
index 000000000..da1607118
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/DisconnectRequestOuterClass.java
@@ -0,0 +1,440 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: DisconnectRequest.proto
+
+package com.twine.tango.pmr.connection;
+
+public final class DisconnectRequestOuterClass {
+ private DisconnectRequestOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface DisconnectRequestOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Connection.DisconnectRequest)
+ com.google.protobuf.MessageOrBuilder {
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Connection.DisconnectRequest}
+ */
+ public static final class DisconnectRequest extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Connection.DisconnectRequest)
+ DisconnectRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use DisconnectRequest.newBuilder() to construct.
+ private DisconnectRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private DisconnectRequest() {
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private DisconnectRequest(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.connection.DisconnectRequestOuterClass.internal_static_Tango_PMR_Connection_DisconnectRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.connection.DisconnectRequestOuterClass.internal_static_Tango_PMR_Connection_DisconnectRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest.class, com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest.Builder.class);
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest other = (com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest) obj;
+
+ boolean result = true;
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Connection.DisconnectRequest}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Connection.DisconnectRequest)
+ com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.connection.DisconnectRequestOuterClass.internal_static_Tango_PMR_Connection_DisconnectRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.connection.DisconnectRequestOuterClass.internal_static_Tango_PMR_Connection_DisconnectRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest.class, com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.connection.DisconnectRequestOuterClass.internal_static_Tango_PMR_Connection_DisconnectRequest_descriptor;
+ }
+
+ public com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest getDefaultInstanceForType() {
+ return com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest build() {
+ com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest buildPartial() {
+ com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest result = new com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest(this);
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest) {
+ return mergeFrom((com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest other) {
+ if (other == com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest.getDefaultInstance()) return this;
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Connection.DisconnectRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Connection.DisconnectRequest)
+ private static final com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest();
+ }
+
+ public static com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<DisconnectRequest>
+ PARSER = new com.google.protobuf.AbstractParser<DisconnectRequest>() {
+ public DisconnectRequest parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new DisconnectRequest(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<DisconnectRequest> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<DisconnectRequest> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.connection.DisconnectRequestOuterClass.DisconnectRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Connection_DisconnectRequest_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Connection_DisconnectRequest_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\027DisconnectRequest.proto\022\024Tango.PMR.Con" +
+ "nection\"\023\n\021DisconnectRequestB \n\036com.twin" +
+ "e.tango.pmr.connectionb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Connection_DisconnectRequest_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Connection_DisconnectRequest_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Connection_DisconnectRequest_descriptor,
+ new java.lang.String[] { });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/DisconnectResponseOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/DisconnectResponseOuterClass.java
new file mode 100644
index 000000000..abe961f92
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/DisconnectResponseOuterClass.java
@@ -0,0 +1,440 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: DisconnectResponse.proto
+
+package com.twine.tango.pmr.connection;
+
+public final class DisconnectResponseOuterClass {
+ private DisconnectResponseOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface DisconnectResponseOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Connection.DisconnectResponse)
+ com.google.protobuf.MessageOrBuilder {
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Connection.DisconnectResponse}
+ */
+ public static final class DisconnectResponse extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Connection.DisconnectResponse)
+ DisconnectResponseOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use DisconnectResponse.newBuilder() to construct.
+ private DisconnectResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private DisconnectResponse() {
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private DisconnectResponse(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.connection.DisconnectResponseOuterClass.internal_static_Tango_PMR_Connection_DisconnectResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.connection.DisconnectResponseOuterClass.internal_static_Tango_PMR_Connection_DisconnectResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse.class, com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse.Builder.class);
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse other = (com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse) obj;
+
+ boolean result = true;
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Connection.DisconnectResponse}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Connection.DisconnectResponse)
+ com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.connection.DisconnectResponseOuterClass.internal_static_Tango_PMR_Connection_DisconnectResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.connection.DisconnectResponseOuterClass.internal_static_Tango_PMR_Connection_DisconnectResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse.class, com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.connection.DisconnectResponseOuterClass.internal_static_Tango_PMR_Connection_DisconnectResponse_descriptor;
+ }
+
+ public com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse getDefaultInstanceForType() {
+ return com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse build() {
+ com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse buildPartial() {
+ com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse result = new com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse(this);
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse) {
+ return mergeFrom((com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse other) {
+ if (other == com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse.getDefaultInstance()) return this;
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Connection.DisconnectResponse)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Connection.DisconnectResponse)
+ private static final com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse();
+ }
+
+ public static com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<DisconnectResponse>
+ PARSER = new com.google.protobuf.AbstractParser<DisconnectResponse>() {
+ public DisconnectResponse parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new DisconnectResponse(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<DisconnectResponse> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<DisconnectResponse> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.connection.DisconnectResponseOuterClass.DisconnectResponse getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Connection_DisconnectResponse_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Connection_DisconnectResponse_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\030DisconnectResponse.proto\022\024Tango.PMR.Co" +
+ "nnection\"\024\n\022DisconnectResponseB \n\036com.tw" +
+ "ine.tango.pmr.connectionb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Connection_DisconnectResponse_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Connection_DisconnectResponse_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Connection_DisconnectResponse_descriptor,
+ new java.lang.String[] { });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/KeepAliveRequestOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/KeepAliveRequestOuterClass.java
new file mode 100644
index 000000000..14cd960e1
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/KeepAliveRequestOuterClass.java
@@ -0,0 +1,440 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: KeepAliveRequest.proto
+
+package com.twine.tango.pmr.connection;
+
+public final class KeepAliveRequestOuterClass {
+ private KeepAliveRequestOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface KeepAliveRequestOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Connection.KeepAliveRequest)
+ com.google.protobuf.MessageOrBuilder {
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Connection.KeepAliveRequest}
+ */
+ public static final class KeepAliveRequest extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Connection.KeepAliveRequest)
+ KeepAliveRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use KeepAliveRequest.newBuilder() to construct.
+ private KeepAliveRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private KeepAliveRequest() {
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private KeepAliveRequest(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.internal_static_Tango_PMR_Connection_KeepAliveRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.internal_static_Tango_PMR_Connection_KeepAliveRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest.class, com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest.Builder.class);
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest other = (com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest) obj;
+
+ boolean result = true;
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Connection.KeepAliveRequest}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Connection.KeepAliveRequest)
+ com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.internal_static_Tango_PMR_Connection_KeepAliveRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.internal_static_Tango_PMR_Connection_KeepAliveRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest.class, com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.internal_static_Tango_PMR_Connection_KeepAliveRequest_descriptor;
+ }
+
+ public com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest getDefaultInstanceForType() {
+ return com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest build() {
+ com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest buildPartial() {
+ com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest result = new com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest(this);
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest) {
+ return mergeFrom((com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest other) {
+ if (other == com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest.getDefaultInstance()) return this;
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Connection.KeepAliveRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Connection.KeepAliveRequest)
+ private static final com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest();
+ }
+
+ public static com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<KeepAliveRequest>
+ PARSER = new com.google.protobuf.AbstractParser<KeepAliveRequest>() {
+ public KeepAliveRequest parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new KeepAliveRequest(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<KeepAliveRequest> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<KeepAliveRequest> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.connection.KeepAliveRequestOuterClass.KeepAliveRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Connection_KeepAliveRequest_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Connection_KeepAliveRequest_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\026KeepAliveRequest.proto\022\024Tango.PMR.Conn" +
+ "ection\"\022\n\020KeepAliveRequestB \n\036com.twine." +
+ "tango.pmr.connectionb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Connection_KeepAliveRequest_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Connection_KeepAliveRequest_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Connection_KeepAliveRequest_descriptor,
+ new java.lang.String[] { });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/KeepAliveResponseOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/KeepAliveResponseOuterClass.java
new file mode 100644
index 000000000..1002eda81
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/connection/KeepAliveResponseOuterClass.java
@@ -0,0 +1,440 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: KeepAliveResponse.proto
+
+package com.twine.tango.pmr.connection;
+
+public final class KeepAliveResponseOuterClass {
+ private KeepAliveResponseOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface KeepAliveResponseOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Connection.KeepAliveResponse)
+ com.google.protobuf.MessageOrBuilder {
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Connection.KeepAliveResponse}
+ */
+ public static final class KeepAliveResponse extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Connection.KeepAliveResponse)
+ KeepAliveResponseOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use KeepAliveResponse.newBuilder() to construct.
+ private KeepAliveResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private KeepAliveResponse() {
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private KeepAliveResponse(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.internal_static_Tango_PMR_Connection_KeepAliveResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.internal_static_Tango_PMR_Connection_KeepAliveResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse.class, com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse.Builder.class);
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse other = (com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse) obj;
+
+ boolean result = true;
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Connection.KeepAliveResponse}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Connection.KeepAliveResponse)
+ com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.internal_static_Tango_PMR_Connection_KeepAliveResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.internal_static_Tango_PMR_Connection_KeepAliveResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse.class, com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.internal_static_Tango_PMR_Connection_KeepAliveResponse_descriptor;
+ }
+
+ public com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse getDefaultInstanceForType() {
+ return com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse build() {
+ com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse buildPartial() {
+ com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse result = new com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse(this);
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse) {
+ return mergeFrom((com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse other) {
+ if (other == com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse.getDefaultInstance()) return this;
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Connection.KeepAliveResponse)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Connection.KeepAliveResponse)
+ private static final com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse();
+ }
+
+ public static com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<KeepAliveResponse>
+ PARSER = new com.google.protobuf.AbstractParser<KeepAliveResponse>() {
+ public KeepAliveResponse parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new KeepAliveResponse(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<KeepAliveResponse> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<KeepAliveResponse> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.connection.KeepAliveResponseOuterClass.KeepAliveResponse getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Connection_KeepAliveResponse_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Connection_KeepAliveResponse_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\027KeepAliveResponse.proto\022\024Tango.PMR.Con" +
+ "nection\"\023\n\021KeepAliveResponseB \n\036com.twin" +
+ "e.tango.pmr.connectionb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Connection_KeepAliveResponse_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Connection_KeepAliveResponse_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Connection_KeepAliveResponse_descriptor,
+ new java.lang.String[] { });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ColorProfileRequestOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ColorProfileRequestOuterClass.java
new file mode 100644
index 000000000..659695a13
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ColorProfileRequestOuterClass.java
@@ -0,0 +1,777 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: ColorProfileRequest.proto
+
+package com.twine.tango.pmr.integration;
+
+public final class ColorProfileRequestOuterClass {
+ private ColorProfileRequestOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface ColorProfileRequestOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Integration.ColorProfileRequest)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ java.lang.String getAppID();
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ com.google.protobuf.ByteString
+ getAppIDBytes();
+
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor DetectionColor = 2;</code>
+ */
+ boolean hasDetectionColor();
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor DetectionColor = 2;</code>
+ */
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor getDetectionColor();
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor DetectionColor = 2;</code>
+ */
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder getDetectionColorOrBuilder();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.ColorProfileRequest}
+ */
+ public static final class ColorProfileRequest extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Integration.ColorProfileRequest)
+ ColorProfileRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use ColorProfileRequest.newBuilder() to construct.
+ private ColorProfileRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private ColorProfileRequest() {
+ appID_ = "";
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private ColorProfileRequest(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ appID_ = s;
+ break;
+ }
+ case 18: {
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder subBuilder = null;
+ if (detectionColor_ != null) {
+ subBuilder = detectionColor_.toBuilder();
+ }
+ detectionColor_ = input.readMessage(com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.parser(), extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(detectionColor_);
+ detectionColor_ = subBuilder.buildPartial();
+ }
+
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.internal_static_Tango_PMR_Integration_ColorProfileRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.internal_static_Tango_PMR_Integration_ColorProfileRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest.class, com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest.Builder.class);
+ }
+
+ public static final int APPID_FIELD_NUMBER = 1;
+ private volatile java.lang.Object appID_;
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ public java.lang.String getAppID() {
+ java.lang.Object ref = appID_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ appID_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ public com.google.protobuf.ByteString
+ getAppIDBytes() {
+ java.lang.Object ref = appID_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ appID_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int DETECTIONCOLOR_FIELD_NUMBER = 2;
+ private com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor detectionColor_;
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor DetectionColor = 2;</code>
+ */
+ public boolean hasDetectionColor() {
+ return detectionColor_ != null;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor DetectionColor = 2;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor getDetectionColor() {
+ return detectionColor_ == null ? com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.getDefaultInstance() : detectionColor_;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor DetectionColor = 2;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder getDetectionColorOrBuilder() {
+ return getDetectionColor();
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (!getAppIDBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 1, appID_);
+ }
+ if (detectionColor_ != null) {
+ output.writeMessage(2, getDetectionColor());
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!getAppIDBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, appID_);
+ }
+ if (detectionColor_ != null) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(2, getDetectionColor());
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest other = (com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest) obj;
+
+ boolean result = true;
+ result = result && getAppID()
+ .equals(other.getAppID());
+ result = result && (hasDetectionColor() == other.hasDetectionColor());
+ if (hasDetectionColor()) {
+ result = result && getDetectionColor()
+ .equals(other.getDetectionColor());
+ }
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + APPID_FIELD_NUMBER;
+ hash = (53 * hash) + getAppID().hashCode();
+ if (hasDetectionColor()) {
+ hash = (37 * hash) + DETECTIONCOLOR_FIELD_NUMBER;
+ hash = (53 * hash) + getDetectionColor().hashCode();
+ }
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.ColorProfileRequest}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Integration.ColorProfileRequest)
+ com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.internal_static_Tango_PMR_Integration_ColorProfileRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.internal_static_Tango_PMR_Integration_ColorProfileRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest.class, com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ appID_ = "";
+
+ if (detectionColorBuilder_ == null) {
+ detectionColor_ = null;
+ } else {
+ detectionColor_ = null;
+ detectionColorBuilder_ = null;
+ }
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.internal_static_Tango_PMR_Integration_ColorProfileRequest_descriptor;
+ }
+
+ public com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest getDefaultInstanceForType() {
+ return com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest build() {
+ com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest buildPartial() {
+ com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest result = new com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest(this);
+ result.appID_ = appID_;
+ if (detectionColorBuilder_ == null) {
+ result.detectionColor_ = detectionColor_;
+ } else {
+ result.detectionColor_ = detectionColorBuilder_.build();
+ }
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest) {
+ return mergeFrom((com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest other) {
+ if (other == com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest.getDefaultInstance()) return this;
+ if (!other.getAppID().isEmpty()) {
+ appID_ = other.appID_;
+ onChanged();
+ }
+ if (other.hasDetectionColor()) {
+ mergeDetectionColor(other.getDetectionColor());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private java.lang.Object appID_ = "";
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ public java.lang.String getAppID() {
+ java.lang.Object ref = appID_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ appID_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ public com.google.protobuf.ByteString
+ getAppIDBytes() {
+ java.lang.Object ref = appID_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ appID_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ public Builder setAppID(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ appID_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ public Builder clearAppID() {
+
+ appID_ = getDefaultInstance().getAppID();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ public Builder setAppIDBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ appID_ = value;
+ onChanged();
+ return this;
+ }
+
+ private com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor detectionColor_ = null;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder> detectionColorBuilder_;
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor DetectionColor = 2;</code>
+ */
+ public boolean hasDetectionColor() {
+ return detectionColorBuilder_ != null || detectionColor_ != null;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor DetectionColor = 2;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor getDetectionColor() {
+ if (detectionColorBuilder_ == null) {
+ return detectionColor_ == null ? com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.getDefaultInstance() : detectionColor_;
+ } else {
+ return detectionColorBuilder_.getMessage();
+ }
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor DetectionColor = 2;</code>
+ */
+ public Builder setDetectionColor(com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor value) {
+ if (detectionColorBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ detectionColor_ = value;
+ onChanged();
+ } else {
+ detectionColorBuilder_.setMessage(value);
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor DetectionColor = 2;</code>
+ */
+ public Builder setDetectionColor(
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder builderForValue) {
+ if (detectionColorBuilder_ == null) {
+ detectionColor_ = builderForValue.build();
+ onChanged();
+ } else {
+ detectionColorBuilder_.setMessage(builderForValue.build());
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor DetectionColor = 2;</code>
+ */
+ public Builder mergeDetectionColor(com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor value) {
+ if (detectionColorBuilder_ == null) {
+ if (detectionColor_ != null) {
+ detectionColor_ =
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.newBuilder(detectionColor_).mergeFrom(value).buildPartial();
+ } else {
+ detectionColor_ = value;
+ }
+ onChanged();
+ } else {
+ detectionColorBuilder_.mergeFrom(value);
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor DetectionColor = 2;</code>
+ */
+ public Builder clearDetectionColor() {
+ if (detectionColorBuilder_ == null) {
+ detectionColor_ = null;
+ onChanged();
+ } else {
+ detectionColor_ = null;
+ detectionColorBuilder_ = null;
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor DetectionColor = 2;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder getDetectionColorBuilder() {
+
+ onChanged();
+ return getDetectionColorFieldBuilder().getBuilder();
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor DetectionColor = 2;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder getDetectionColorOrBuilder() {
+ if (detectionColorBuilder_ != null) {
+ return detectionColorBuilder_.getMessageOrBuilder();
+ } else {
+ return detectionColor_ == null ?
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.getDefaultInstance() : detectionColor_;
+ }
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor DetectionColor = 2;</code>
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder>
+ getDetectionColorFieldBuilder() {
+ if (detectionColorBuilder_ == null) {
+ detectionColorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder>(
+ getDetectionColor(),
+ getParentForChildren(),
+ isClean());
+ detectionColor_ = null;
+ }
+ return detectionColorBuilder_;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Integration.ColorProfileRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Integration.ColorProfileRequest)
+ private static final com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest();
+ }
+
+ public static com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<ColorProfileRequest>
+ PARSER = new com.google.protobuf.AbstractParser<ColorProfileRequest>() {
+ public ColorProfileRequest parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new ColorProfileRequest(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<ColorProfileRequest> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<ColorProfileRequest> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.integration.ColorProfileRequestOuterClass.ColorProfileRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Integration_ColorProfileRequest_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Integration_ColorProfileRequest_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\031ColorProfileRequest.proto\022\025Tango.PMR.I" +
+ "ntegration\032\024DetectionColor.proto\"[\n\023Colo" +
+ "rProfileRequest\022\r\n\005AppID\030\001 \001(\t\0225\n\016Detect" +
+ "ionColor\030\002 \001(\0132\035.Tango.PMR.TCC.Detection" +
+ "ColorB!\n\037com.twine.tango.pmr.integration" +
+ "b\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.getDescriptor(),
+ }, assigner);
+ internal_static_Tango_PMR_Integration_ColorProfileRequest_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Integration_ColorProfileRequest_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Integration_ColorProfileRequest_descriptor,
+ new java.lang.String[] { "AppID", "DetectionColor", });
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.getDescriptor();
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ColorProfileResponseOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ColorProfileResponseOuterClass.java
new file mode 100644
index 000000000..53e36224f
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ColorProfileResponseOuterClass.java
@@ -0,0 +1,506 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: ColorProfileResponse.proto
+
+package com.twine.tango.pmr.integration;
+
+public final class ColorProfileResponseOuterClass {
+ private ColorProfileResponseOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface ColorProfileResponseOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Integration.ColorProfileResponse)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>bool Approved = 1;</code>
+ */
+ boolean getApproved();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.ColorProfileResponse}
+ */
+ public static final class ColorProfileResponse extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Integration.ColorProfileResponse)
+ ColorProfileResponseOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use ColorProfileResponse.newBuilder() to construct.
+ private ColorProfileResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private ColorProfileResponse() {
+ approved_ = false;
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private ColorProfileResponse(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+
+ approved_ = input.readBool();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.internal_static_Tango_PMR_Integration_ColorProfileResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.internal_static_Tango_PMR_Integration_ColorProfileResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse.class, com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse.Builder.class);
+ }
+
+ public static final int APPROVED_FIELD_NUMBER = 1;
+ private boolean approved_;
+ /**
+ * <code>bool Approved = 1;</code>
+ */
+ public boolean getApproved() {
+ return approved_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (approved_ != false) {
+ output.writeBool(1, approved_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (approved_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(1, approved_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse other = (com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse) obj;
+
+ boolean result = true;
+ result = result && (getApproved()
+ == other.getApproved());
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + APPROVED_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getApproved());
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.ColorProfileResponse}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Integration.ColorProfileResponse)
+ com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.internal_static_Tango_PMR_Integration_ColorProfileResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.internal_static_Tango_PMR_Integration_ColorProfileResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse.class, com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ approved_ = false;
+
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.internal_static_Tango_PMR_Integration_ColorProfileResponse_descriptor;
+ }
+
+ public com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse getDefaultInstanceForType() {
+ return com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse build() {
+ com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse buildPartial() {
+ com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse result = new com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse(this);
+ result.approved_ = approved_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse) {
+ return mergeFrom((com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse other) {
+ if (other == com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse.getDefaultInstance()) return this;
+ if (other.getApproved() != false) {
+ setApproved(other.getApproved());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private boolean approved_ ;
+ /**
+ * <code>bool Approved = 1;</code>
+ */
+ public boolean getApproved() {
+ return approved_;
+ }
+ /**
+ * <code>bool Approved = 1;</code>
+ */
+ public Builder setApproved(boolean value) {
+
+ approved_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>bool Approved = 1;</code>
+ */
+ public Builder clearApproved() {
+
+ approved_ = false;
+ onChanged();
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Integration.ColorProfileResponse)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Integration.ColorProfileResponse)
+ private static final com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse();
+ }
+
+ public static com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<ColorProfileResponse>
+ PARSER = new com.google.protobuf.AbstractParser<ColorProfileResponse>() {
+ public ColorProfileResponse parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new ColorProfileResponse(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<ColorProfileResponse> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<ColorProfileResponse> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.integration.ColorProfileResponseOuterClass.ColorProfileResponse getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Integration_ColorProfileResponse_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Integration_ColorProfileResponse_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\032ColorProfileResponse.proto\022\025Tango.PMR." +
+ "Integration\"(\n\024ColorProfileResponse\022\020\n\010A" +
+ "pproved\030\001 \001(\010B!\n\037com.twine.tango.pmr.int" +
+ "egrationb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Integration_ColorProfileResponse_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Integration_ColorProfileResponse_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Integration_ColorProfileResponse_descriptor,
+ new java.lang.String[] { "Approved", });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/DirectSynchronizationRequestOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/DirectSynchronizationRequestOuterClass.java
new file mode 100644
index 000000000..b2d324b39
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/DirectSynchronizationRequestOuterClass.java
@@ -0,0 +1,441 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: DirectSynchronizationRequest.proto
+
+package com.twine.tango.pmr.integration;
+
+public final class DirectSynchronizationRequestOuterClass {
+ private DirectSynchronizationRequestOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface DirectSynchronizationRequestOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Integration.DirectSynchronizationRequest)
+ com.google.protobuf.MessageOrBuilder {
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.DirectSynchronizationRequest}
+ */
+ public static final class DirectSynchronizationRequest extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Integration.DirectSynchronizationRequest)
+ DirectSynchronizationRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use DirectSynchronizationRequest.newBuilder() to construct.
+ private DirectSynchronizationRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private DirectSynchronizationRequest() {
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private DirectSynchronizationRequest(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.internal_static_Tango_PMR_Integration_DirectSynchronizationRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.internal_static_Tango_PMR_Integration_DirectSynchronizationRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest.class, com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest.Builder.class);
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest other = (com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest) obj;
+
+ boolean result = true;
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.DirectSynchronizationRequest}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Integration.DirectSynchronizationRequest)
+ com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.internal_static_Tango_PMR_Integration_DirectSynchronizationRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.internal_static_Tango_PMR_Integration_DirectSynchronizationRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest.class, com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.internal_static_Tango_PMR_Integration_DirectSynchronizationRequest_descriptor;
+ }
+
+ public com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest getDefaultInstanceForType() {
+ return com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest build() {
+ com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest buildPartial() {
+ com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest result = new com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest(this);
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest) {
+ return mergeFrom((com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest other) {
+ if (other == com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest.getDefaultInstance()) return this;
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Integration.DirectSynchronizationRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Integration.DirectSynchronizationRequest)
+ private static final com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest();
+ }
+
+ public static com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<DirectSynchronizationRequest>
+ PARSER = new com.google.protobuf.AbstractParser<DirectSynchronizationRequest>() {
+ public DirectSynchronizationRequest parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new DirectSynchronizationRequest(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<DirectSynchronizationRequest> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<DirectSynchronizationRequest> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.integration.DirectSynchronizationRequestOuterClass.DirectSynchronizationRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Integration_DirectSynchronizationRequest_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Integration_DirectSynchronizationRequest_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\"DirectSynchronizationRequest.proto\022\025Ta" +
+ "ngo.PMR.Integration\"\036\n\034DirectSynchroniza" +
+ "tionRequestB!\n\037com.twine.tango.pmr.integ" +
+ "rationb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Integration_DirectSynchronizationRequest_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Integration_DirectSynchronizationRequest_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Integration_DirectSynchronizationRequest_descriptor,
+ new java.lang.String[] { });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/DirectSynchronizationResponseOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/DirectSynchronizationResponseOuterClass.java
new file mode 100644
index 000000000..e1187ec4b
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/DirectSynchronizationResponseOuterClass.java
@@ -0,0 +1,508 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: DirectSynchronizationResponse.proto
+
+package com.twine.tango.pmr.integration;
+
+public final class DirectSynchronizationResponseOuterClass {
+ private DirectSynchronizationResponseOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface DirectSynchronizationResponseOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Integration.DirectSynchronizationResponse)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>bytes LocalDB = 1;</code>
+ */
+ com.google.protobuf.ByteString getLocalDB();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.DirectSynchronizationResponse}
+ */
+ public static final class DirectSynchronizationResponse extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Integration.DirectSynchronizationResponse)
+ DirectSynchronizationResponseOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use DirectSynchronizationResponse.newBuilder() to construct.
+ private DirectSynchronizationResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private DirectSynchronizationResponse() {
+ localDB_ = com.google.protobuf.ByteString.EMPTY;
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private DirectSynchronizationResponse(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+
+ localDB_ = input.readBytes();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.internal_static_Tango_PMR_Integration_DirectSynchronizationResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.internal_static_Tango_PMR_Integration_DirectSynchronizationResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse.class, com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse.Builder.class);
+ }
+
+ public static final int LOCALDB_FIELD_NUMBER = 1;
+ private com.google.protobuf.ByteString localDB_;
+ /**
+ * <code>bytes LocalDB = 1;</code>
+ */
+ public com.google.protobuf.ByteString getLocalDB() {
+ return localDB_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (!localDB_.isEmpty()) {
+ output.writeBytes(1, localDB_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!localDB_.isEmpty()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(1, localDB_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse other = (com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse) obj;
+
+ boolean result = true;
+ result = result && getLocalDB()
+ .equals(other.getLocalDB());
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + LOCALDB_FIELD_NUMBER;
+ hash = (53 * hash) + getLocalDB().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.DirectSynchronizationResponse}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Integration.DirectSynchronizationResponse)
+ com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.internal_static_Tango_PMR_Integration_DirectSynchronizationResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.internal_static_Tango_PMR_Integration_DirectSynchronizationResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse.class, com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ localDB_ = com.google.protobuf.ByteString.EMPTY;
+
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.internal_static_Tango_PMR_Integration_DirectSynchronizationResponse_descriptor;
+ }
+
+ public com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse getDefaultInstanceForType() {
+ return com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse build() {
+ com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse buildPartial() {
+ com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse result = new com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse(this);
+ result.localDB_ = localDB_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse) {
+ return mergeFrom((com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse other) {
+ if (other == com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse.getDefaultInstance()) return this;
+ if (other.getLocalDB() != com.google.protobuf.ByteString.EMPTY) {
+ setLocalDB(other.getLocalDB());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private com.google.protobuf.ByteString localDB_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>bytes LocalDB = 1;</code>
+ */
+ public com.google.protobuf.ByteString getLocalDB() {
+ return localDB_;
+ }
+ /**
+ * <code>bytes LocalDB = 1;</code>
+ */
+ public Builder setLocalDB(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ localDB_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>bytes LocalDB = 1;</code>
+ */
+ public Builder clearLocalDB() {
+
+ localDB_ = getDefaultInstance().getLocalDB();
+ onChanged();
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Integration.DirectSynchronizationResponse)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Integration.DirectSynchronizationResponse)
+ private static final com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse();
+ }
+
+ public static com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<DirectSynchronizationResponse>
+ PARSER = new com.google.protobuf.AbstractParser<DirectSynchronizationResponse>() {
+ public DirectSynchronizationResponse parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new DirectSynchronizationResponse(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<DirectSynchronizationResponse> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<DirectSynchronizationResponse> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.integration.DirectSynchronizationResponseOuterClass.DirectSynchronizationResponse getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Integration_DirectSynchronizationResponse_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Integration_DirectSynchronizationResponse_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n#DirectSynchronizationResponse.proto\022\025T" +
+ "ango.PMR.Integration\"0\n\035DirectSynchroniz" +
+ "ationResponse\022\017\n\007LocalDB\030\001 \001(\014B!\n\037com.tw" +
+ "ine.tango.pmr.integrationb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Integration_DirectSynchronizationResponse_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Integration_DirectSynchronizationResponse_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Integration_DirectSynchronizationResponse_descriptor,
+ new java.lang.String[] { "LocalDB", });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLoginIntentOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLoginIntentOuterClass.java
new file mode 100644
index 000000000..fe3c62e51
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLoginIntentOuterClass.java
@@ -0,0 +1,154 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: ExternalBridgeLoginIntent.proto
+
+package com.twine.tango.pmr.integration;
+
+public final class ExternalBridgeLoginIntentOuterClass {
+ private ExternalBridgeLoginIntentOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ /**
+ * Protobuf enum {@code Tango.PMR.Integration.ExternalBridgeLoginIntent}
+ */
+ public enum ExternalBridgeLoginIntent
+ implements com.google.protobuf.ProtocolMessageEnum {
+ /**
+ * <code>ColorProfile = 0;</code>
+ */
+ ColorProfile(0),
+ /**
+ * <code>Diagnostics = 1;</code>
+ */
+ Diagnostics(1),
+ /**
+ * <code>FullControl = 2;</code>
+ */
+ FullControl(2),
+ UNRECOGNIZED(-1),
+ ;
+
+ /**
+ * <code>ColorProfile = 0;</code>
+ */
+ public static final int ColorProfile_VALUE = 0;
+ /**
+ * <code>Diagnostics = 1;</code>
+ */
+ public static final int Diagnostics_VALUE = 1;
+ /**
+ * <code>FullControl = 2;</code>
+ */
+ public static final int FullControl_VALUE = 2;
+
+
+ public final int getNumber() {
+ if (this == UNRECOGNIZED) {
+ throw new java.lang.IllegalArgumentException(
+ "Can't get the number of an unknown enum value.");
+ }
+ return value;
+ }
+
+ /**
+ * @deprecated Use {@link #forNumber(int)} instead.
+ */
+ @java.lang.Deprecated
+ public static ExternalBridgeLoginIntent valueOf(int value) {
+ return forNumber(value);
+ }
+
+ public static ExternalBridgeLoginIntent forNumber(int value) {
+ switch (value) {
+ case 0: return ColorProfile;
+ case 1: return Diagnostics;
+ case 2: return FullControl;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap<ExternalBridgeLoginIntent>
+ internalGetValueMap() {
+ return internalValueMap;
+ }
+ private static final com.google.protobuf.Internal.EnumLiteMap<
+ ExternalBridgeLoginIntent> internalValueMap =
+ new com.google.protobuf.Internal.EnumLiteMap<ExternalBridgeLoginIntent>() {
+ public ExternalBridgeLoginIntent findValueByNumber(int number) {
+ return ExternalBridgeLoginIntent.forNumber(number);
+ }
+ };
+
+ public final com.google.protobuf.Descriptors.EnumValueDescriptor
+ getValueDescriptor() {
+ return getDescriptor().getValues().get(ordinal());
+ }
+ public final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptorForType() {
+ return getDescriptor();
+ }
+ public static final com.google.protobuf.Descriptors.EnumDescriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLoginIntentOuterClass.getDescriptor().getEnumTypes().get(0);
+ }
+
+ private static final ExternalBridgeLoginIntent[] VALUES = values();
+
+ public static ExternalBridgeLoginIntent valueOf(
+ com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
+ if (desc.getType() != getDescriptor()) {
+ throw new java.lang.IllegalArgumentException(
+ "EnumValueDescriptor is not for this type.");
+ }
+ if (desc.getIndex() == -1) {
+ return UNRECOGNIZED;
+ }
+ return VALUES[desc.getIndex()];
+ }
+
+ private final int value;
+
+ private ExternalBridgeLoginIntent(int value) {
+ this.value = value;
+ }
+
+ // @@protoc_insertion_point(enum_scope:Tango.PMR.Integration.ExternalBridgeLoginIntent)
+ }
+
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\037ExternalBridgeLoginIntent.proto\022\025Tango" +
+ ".PMR.Integration*O\n\031ExternalBridgeLoginI" +
+ "ntent\022\020\n\014ColorProfile\020\000\022\017\n\013Diagnostics\020\001" +
+ "\022\017\n\013FullControl\020\002B!\n\037com.twine.tango.pmr" +
+ ".integrationb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLoginRequestOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLoginRequestOuterClass.java
new file mode 100644
index 000000000..696118559
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLoginRequestOuterClass.java
@@ -0,0 +1,1088 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: ExternalBridgeLoginRequest.proto
+
+package com.twine.tango.pmr.integration;
+
+public final class ExternalBridgeLoginRequestOuterClass {
+ private ExternalBridgeLoginRequestOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface ExternalBridgeLoginRequestOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Integration.ExternalBridgeLoginRequest)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ java.lang.String getAppID();
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ com.google.protobuf.ByteString
+ getAppIDBytes();
+
+ /**
+ * <code>string UserGuid = 2;</code>
+ */
+ java.lang.String getUserGuid();
+ /**
+ * <code>string UserGuid = 2;</code>
+ */
+ com.google.protobuf.ByteString
+ getUserGuidBytes();
+
+ /**
+ * <code>string HostName = 3;</code>
+ */
+ java.lang.String getHostName();
+ /**
+ * <code>string HostName = 3;</code>
+ */
+ com.google.protobuf.ByteString
+ getHostNameBytes();
+
+ /**
+ * <code>string Password = 4;</code>
+ */
+ java.lang.String getPassword();
+ /**
+ * <code>string Password = 4;</code>
+ */
+ com.google.protobuf.ByteString
+ getPasswordBytes();
+
+ /**
+ * <code>.Tango.PMR.Integration.ExternalBridgeLoginIntent Intent = 5;</code>
+ */
+ int getIntentValue();
+ /**
+ * <code>.Tango.PMR.Integration.ExternalBridgeLoginIntent Intent = 5;</code>
+ */
+ com.twine.tango.pmr.integration.ExternalBridgeLoginIntentOuterClass.ExternalBridgeLoginIntent getIntent();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.ExternalBridgeLoginRequest}
+ */
+ public static final class ExternalBridgeLoginRequest extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Integration.ExternalBridgeLoginRequest)
+ ExternalBridgeLoginRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use ExternalBridgeLoginRequest.newBuilder() to construct.
+ private ExternalBridgeLoginRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private ExternalBridgeLoginRequest() {
+ appID_ = "";
+ userGuid_ = "";
+ hostName_ = "";
+ password_ = "";
+ intent_ = 0;
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private ExternalBridgeLoginRequest(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ appID_ = s;
+ break;
+ }
+ case 18: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ userGuid_ = s;
+ break;
+ }
+ case 26: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ hostName_ = s;
+ break;
+ }
+ case 34: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ password_ = s;
+ break;
+ }
+ case 40: {
+ int rawValue = input.readEnum();
+
+ intent_ = rawValue;
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLoginRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLoginRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest.class, com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest.Builder.class);
+ }
+
+ public static final int APPID_FIELD_NUMBER = 1;
+ private volatile java.lang.Object appID_;
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ public java.lang.String getAppID() {
+ java.lang.Object ref = appID_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ appID_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ public com.google.protobuf.ByteString
+ getAppIDBytes() {
+ java.lang.Object ref = appID_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ appID_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int USERGUID_FIELD_NUMBER = 2;
+ private volatile java.lang.Object userGuid_;
+ /**
+ * <code>string UserGuid = 2;</code>
+ */
+ public java.lang.String getUserGuid() {
+ java.lang.Object ref = userGuid_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ userGuid_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string UserGuid = 2;</code>
+ */
+ public com.google.protobuf.ByteString
+ getUserGuidBytes() {
+ java.lang.Object ref = userGuid_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ userGuid_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int HOSTNAME_FIELD_NUMBER = 3;
+ private volatile java.lang.Object hostName_;
+ /**
+ * <code>string HostName = 3;</code>
+ */
+ public java.lang.String getHostName() {
+ java.lang.Object ref = hostName_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ hostName_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string HostName = 3;</code>
+ */
+ public com.google.protobuf.ByteString
+ getHostNameBytes() {
+ java.lang.Object ref = hostName_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ hostName_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int PASSWORD_FIELD_NUMBER = 4;
+ private volatile java.lang.Object password_;
+ /**
+ * <code>string Password = 4;</code>
+ */
+ public java.lang.String getPassword() {
+ java.lang.Object ref = password_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ password_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string Password = 4;</code>
+ */
+ public com.google.protobuf.ByteString
+ getPasswordBytes() {
+ java.lang.Object ref = password_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ password_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int INTENT_FIELD_NUMBER = 5;
+ private int intent_;
+ /**
+ * <code>.Tango.PMR.Integration.ExternalBridgeLoginIntent Intent = 5;</code>
+ */
+ public int getIntentValue() {
+ return intent_;
+ }
+ /**
+ * <code>.Tango.PMR.Integration.ExternalBridgeLoginIntent Intent = 5;</code>
+ */
+ public com.twine.tango.pmr.integration.ExternalBridgeLoginIntentOuterClass.ExternalBridgeLoginIntent getIntent() {
+ com.twine.tango.pmr.integration.ExternalBridgeLoginIntentOuterClass.ExternalBridgeLoginIntent result = com.twine.tango.pmr.integration.ExternalBridgeLoginIntentOuterClass.ExternalBridgeLoginIntent.valueOf(intent_);
+ return result == null ? com.twine.tango.pmr.integration.ExternalBridgeLoginIntentOuterClass.ExternalBridgeLoginIntent.UNRECOGNIZED : result;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (!getAppIDBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 1, appID_);
+ }
+ if (!getUserGuidBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, userGuid_);
+ }
+ if (!getHostNameBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 3, hostName_);
+ }
+ if (!getPasswordBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 4, password_);
+ }
+ if (intent_ != com.twine.tango.pmr.integration.ExternalBridgeLoginIntentOuterClass.ExternalBridgeLoginIntent.ColorProfile.getNumber()) {
+ output.writeEnum(5, intent_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!getAppIDBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, appID_);
+ }
+ if (!getUserGuidBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, userGuid_);
+ }
+ if (!getHostNameBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, hostName_);
+ }
+ if (!getPasswordBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, password_);
+ }
+ if (intent_ != com.twine.tango.pmr.integration.ExternalBridgeLoginIntentOuterClass.ExternalBridgeLoginIntent.ColorProfile.getNumber()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeEnumSize(5, intent_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest other = (com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest) obj;
+
+ boolean result = true;
+ result = result && getAppID()
+ .equals(other.getAppID());
+ result = result && getUserGuid()
+ .equals(other.getUserGuid());
+ result = result && getHostName()
+ .equals(other.getHostName());
+ result = result && getPassword()
+ .equals(other.getPassword());
+ result = result && intent_ == other.intent_;
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + APPID_FIELD_NUMBER;
+ hash = (53 * hash) + getAppID().hashCode();
+ hash = (37 * hash) + USERGUID_FIELD_NUMBER;
+ hash = (53 * hash) + getUserGuid().hashCode();
+ hash = (37 * hash) + HOSTNAME_FIELD_NUMBER;
+ hash = (53 * hash) + getHostName().hashCode();
+ hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
+ hash = (53 * hash) + getPassword().hashCode();
+ hash = (37 * hash) + INTENT_FIELD_NUMBER;
+ hash = (53 * hash) + intent_;
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.ExternalBridgeLoginRequest}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Integration.ExternalBridgeLoginRequest)
+ com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLoginRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLoginRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest.class, com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ appID_ = "";
+
+ userGuid_ = "";
+
+ hostName_ = "";
+
+ password_ = "";
+
+ intent_ = 0;
+
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLoginRequest_descriptor;
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest getDefaultInstanceForType() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest build() {
+ com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest buildPartial() {
+ com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest result = new com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest(this);
+ result.appID_ = appID_;
+ result.userGuid_ = userGuid_;
+ result.hostName_ = hostName_;
+ result.password_ = password_;
+ result.intent_ = intent_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest) {
+ return mergeFrom((com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest other) {
+ if (other == com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest.getDefaultInstance()) return this;
+ if (!other.getAppID().isEmpty()) {
+ appID_ = other.appID_;
+ onChanged();
+ }
+ if (!other.getUserGuid().isEmpty()) {
+ userGuid_ = other.userGuid_;
+ onChanged();
+ }
+ if (!other.getHostName().isEmpty()) {
+ hostName_ = other.hostName_;
+ onChanged();
+ }
+ if (!other.getPassword().isEmpty()) {
+ password_ = other.password_;
+ onChanged();
+ }
+ if (other.intent_ != 0) {
+ setIntentValue(other.getIntentValue());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private java.lang.Object appID_ = "";
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ public java.lang.String getAppID() {
+ java.lang.Object ref = appID_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ appID_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ public com.google.protobuf.ByteString
+ getAppIDBytes() {
+ java.lang.Object ref = appID_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ appID_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ public Builder setAppID(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ appID_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ public Builder clearAppID() {
+
+ appID_ = getDefaultInstance().getAppID();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string AppID = 1;</code>
+ */
+ public Builder setAppIDBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ appID_ = value;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object userGuid_ = "";
+ /**
+ * <code>string UserGuid = 2;</code>
+ */
+ public java.lang.String getUserGuid() {
+ java.lang.Object ref = userGuid_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ userGuid_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string UserGuid = 2;</code>
+ */
+ public com.google.protobuf.ByteString
+ getUserGuidBytes() {
+ java.lang.Object ref = userGuid_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ userGuid_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string UserGuid = 2;</code>
+ */
+ public Builder setUserGuid(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ userGuid_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string UserGuid = 2;</code>
+ */
+ public Builder clearUserGuid() {
+
+ userGuid_ = getDefaultInstance().getUserGuid();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string UserGuid = 2;</code>
+ */
+ public Builder setUserGuidBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ userGuid_ = value;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object hostName_ = "";
+ /**
+ * <code>string HostName = 3;</code>
+ */
+ public java.lang.String getHostName() {
+ java.lang.Object ref = hostName_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ hostName_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string HostName = 3;</code>
+ */
+ public com.google.protobuf.ByteString
+ getHostNameBytes() {
+ java.lang.Object ref = hostName_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ hostName_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string HostName = 3;</code>
+ */
+ public Builder setHostName(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ hostName_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string HostName = 3;</code>
+ */
+ public Builder clearHostName() {
+
+ hostName_ = getDefaultInstance().getHostName();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string HostName = 3;</code>
+ */
+ public Builder setHostNameBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ hostName_ = value;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object password_ = "";
+ /**
+ * <code>string Password = 4;</code>
+ */
+ public java.lang.String getPassword() {
+ java.lang.Object ref = password_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ password_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string Password = 4;</code>
+ */
+ public com.google.protobuf.ByteString
+ getPasswordBytes() {
+ java.lang.Object ref = password_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ password_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string Password = 4;</code>
+ */
+ public Builder setPassword(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ password_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string Password = 4;</code>
+ */
+ public Builder clearPassword() {
+
+ password_ = getDefaultInstance().getPassword();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string Password = 4;</code>
+ */
+ public Builder setPasswordBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ password_ = value;
+ onChanged();
+ return this;
+ }
+
+ private int intent_ = 0;
+ /**
+ * <code>.Tango.PMR.Integration.ExternalBridgeLoginIntent Intent = 5;</code>
+ */
+ public int getIntentValue() {
+ return intent_;
+ }
+ /**
+ * <code>.Tango.PMR.Integration.ExternalBridgeLoginIntent Intent = 5;</code>
+ */
+ public Builder setIntentValue(int value) {
+ intent_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.Integration.ExternalBridgeLoginIntent Intent = 5;</code>
+ */
+ public com.twine.tango.pmr.integration.ExternalBridgeLoginIntentOuterClass.ExternalBridgeLoginIntent getIntent() {
+ com.twine.tango.pmr.integration.ExternalBridgeLoginIntentOuterClass.ExternalBridgeLoginIntent result = com.twine.tango.pmr.integration.ExternalBridgeLoginIntentOuterClass.ExternalBridgeLoginIntent.valueOf(intent_);
+ return result == null ? com.twine.tango.pmr.integration.ExternalBridgeLoginIntentOuterClass.ExternalBridgeLoginIntent.UNRECOGNIZED : result;
+ }
+ /**
+ * <code>.Tango.PMR.Integration.ExternalBridgeLoginIntent Intent = 5;</code>
+ */
+ public Builder setIntent(com.twine.tango.pmr.integration.ExternalBridgeLoginIntentOuterClass.ExternalBridgeLoginIntent value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ intent_ = value.getNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.Integration.ExternalBridgeLoginIntent Intent = 5;</code>
+ */
+ public Builder clearIntent() {
+
+ intent_ = 0;
+ onChanged();
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Integration.ExternalBridgeLoginRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Integration.ExternalBridgeLoginRequest)
+ private static final com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest();
+ }
+
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<ExternalBridgeLoginRequest>
+ PARSER = new com.google.protobuf.AbstractParser<ExternalBridgeLoginRequest>() {
+ public ExternalBridgeLoginRequest parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new ExternalBridgeLoginRequest(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<ExternalBridgeLoginRequest> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<ExternalBridgeLoginRequest> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeLoginRequestOuterClass.ExternalBridgeLoginRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Integration_ExternalBridgeLoginRequest_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Integration_ExternalBridgeLoginRequest_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n ExternalBridgeLoginRequest.proto\022\025Tang" +
+ "o.PMR.Integration\032\037ExternalBridgeLoginIn" +
+ "tent.proto\"\243\001\n\032ExternalBridgeLoginReques" +
+ "t\022\r\n\005AppID\030\001 \001(\t\022\020\n\010UserGuid\030\002 \001(\t\022\020\n\010Ho" +
+ "stName\030\003 \001(\t\022\020\n\010Password\030\004 \001(\t\022@\n\006Intent" +
+ "\030\005 \001(\01620.Tango.PMR.Integration.ExternalB" +
+ "ridgeLoginIntentB!\n\037com.twine.tango.pmr." +
+ "integrationb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ com.twine.tango.pmr.integration.ExternalBridgeLoginIntentOuterClass.getDescriptor(),
+ }, assigner);
+ internal_static_Tango_PMR_Integration_ExternalBridgeLoginRequest_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Integration_ExternalBridgeLoginRequest_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Integration_ExternalBridgeLoginRequest_descriptor,
+ new java.lang.String[] { "AppID", "UserGuid", "HostName", "Password", "Intent", });
+ com.twine.tango.pmr.integration.ExternalBridgeLoginIntentOuterClass.getDescriptor();
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLoginResponseOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLoginResponseOuterClass.java
new file mode 100644
index 000000000..030e13199
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLoginResponseOuterClass.java
@@ -0,0 +1,842 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: ExternalBridgeLoginResponse.proto
+
+package com.twine.tango.pmr.integration;
+
+public final class ExternalBridgeLoginResponseOuterClass {
+ private ExternalBridgeLoginResponseOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface ExternalBridgeLoginResponseOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Integration.ExternalBridgeLoginResponse)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>bool Authenticated = 1;</code>
+ */
+ boolean getAuthenticated();
+
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ java.lang.String getSerialNumber();
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ com.google.protobuf.ByteString
+ getSerialNumberBytes();
+
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 3;</code>
+ */
+ boolean hasDeviceInformation();
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 3;</code>
+ */
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation getDeviceInformation();
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 3;</code>
+ */
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformationOrBuilder getDeviceInformationOrBuilder();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.ExternalBridgeLoginResponse}
+ */
+ public static final class ExternalBridgeLoginResponse extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Integration.ExternalBridgeLoginResponse)
+ ExternalBridgeLoginResponseOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use ExternalBridgeLoginResponse.newBuilder() to construct.
+ private ExternalBridgeLoginResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private ExternalBridgeLoginResponse() {
+ authenticated_ = false;
+ serialNumber_ = "";
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private ExternalBridgeLoginResponse(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+
+ authenticated_ = input.readBool();
+ break;
+ }
+ case 18: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ serialNumber_ = s;
+ break;
+ }
+ case 26: {
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.Builder subBuilder = null;
+ if (deviceInformation_ != null) {
+ subBuilder = deviceInformation_.toBuilder();
+ }
+ deviceInformation_ = input.readMessage(com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.parser(), extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(deviceInformation_);
+ deviceInformation_ = subBuilder.buildPartial();
+ }
+
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLoginResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLoginResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse.class, com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse.Builder.class);
+ }
+
+ public static final int AUTHENTICATED_FIELD_NUMBER = 1;
+ private boolean authenticated_;
+ /**
+ * <code>bool Authenticated = 1;</code>
+ */
+ public boolean getAuthenticated() {
+ return authenticated_;
+ }
+
+ public static final int SERIALNUMBER_FIELD_NUMBER = 2;
+ private volatile java.lang.Object serialNumber_;
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ public java.lang.String getSerialNumber() {
+ java.lang.Object ref = serialNumber_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ serialNumber_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ public com.google.protobuf.ByteString
+ getSerialNumberBytes() {
+ java.lang.Object ref = serialNumber_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ serialNumber_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int DEVICEINFORMATION_FIELD_NUMBER = 3;
+ private com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation deviceInformation_;
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 3;</code>
+ */
+ public boolean hasDeviceInformation() {
+ return deviceInformation_ != null;
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 3;</code>
+ */
+ public com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation getDeviceInformation() {
+ return deviceInformation_ == null ? com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.getDefaultInstance() : deviceInformation_;
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 3;</code>
+ */
+ public com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformationOrBuilder getDeviceInformationOrBuilder() {
+ return getDeviceInformation();
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (authenticated_ != false) {
+ output.writeBool(1, authenticated_);
+ }
+ if (!getSerialNumberBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, serialNumber_);
+ }
+ if (deviceInformation_ != null) {
+ output.writeMessage(3, getDeviceInformation());
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (authenticated_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(1, authenticated_);
+ }
+ if (!getSerialNumberBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, serialNumber_);
+ }
+ if (deviceInformation_ != null) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(3, getDeviceInformation());
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse other = (com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse) obj;
+
+ boolean result = true;
+ result = result && (getAuthenticated()
+ == other.getAuthenticated());
+ result = result && getSerialNumber()
+ .equals(other.getSerialNumber());
+ result = result && (hasDeviceInformation() == other.hasDeviceInformation());
+ if (hasDeviceInformation()) {
+ result = result && getDeviceInformation()
+ .equals(other.getDeviceInformation());
+ }
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + AUTHENTICATED_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getAuthenticated());
+ hash = (37 * hash) + SERIALNUMBER_FIELD_NUMBER;
+ hash = (53 * hash) + getSerialNumber().hashCode();
+ if (hasDeviceInformation()) {
+ hash = (37 * hash) + DEVICEINFORMATION_FIELD_NUMBER;
+ hash = (53 * hash) + getDeviceInformation().hashCode();
+ }
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.ExternalBridgeLoginResponse}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Integration.ExternalBridgeLoginResponse)
+ com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLoginResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLoginResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse.class, com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ authenticated_ = false;
+
+ serialNumber_ = "";
+
+ if (deviceInformationBuilder_ == null) {
+ deviceInformation_ = null;
+ } else {
+ deviceInformation_ = null;
+ deviceInformationBuilder_ = null;
+ }
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLoginResponse_descriptor;
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse getDefaultInstanceForType() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse build() {
+ com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse buildPartial() {
+ com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse result = new com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse(this);
+ result.authenticated_ = authenticated_;
+ result.serialNumber_ = serialNumber_;
+ if (deviceInformationBuilder_ == null) {
+ result.deviceInformation_ = deviceInformation_;
+ } else {
+ result.deviceInformation_ = deviceInformationBuilder_.build();
+ }
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse) {
+ return mergeFrom((com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse other) {
+ if (other == com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse.getDefaultInstance()) return this;
+ if (other.getAuthenticated() != false) {
+ setAuthenticated(other.getAuthenticated());
+ }
+ if (!other.getSerialNumber().isEmpty()) {
+ serialNumber_ = other.serialNumber_;
+ onChanged();
+ }
+ if (other.hasDeviceInformation()) {
+ mergeDeviceInformation(other.getDeviceInformation());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private boolean authenticated_ ;
+ /**
+ * <code>bool Authenticated = 1;</code>
+ */
+ public boolean getAuthenticated() {
+ return authenticated_;
+ }
+ /**
+ * <code>bool Authenticated = 1;</code>
+ */
+ public Builder setAuthenticated(boolean value) {
+
+ authenticated_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>bool Authenticated = 1;</code>
+ */
+ public Builder clearAuthenticated() {
+
+ authenticated_ = false;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object serialNumber_ = "";
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ public java.lang.String getSerialNumber() {
+ java.lang.Object ref = serialNumber_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ serialNumber_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ public com.google.protobuf.ByteString
+ getSerialNumberBytes() {
+ java.lang.Object ref = serialNumber_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ serialNumber_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ public Builder setSerialNumber(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ serialNumber_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ public Builder clearSerialNumber() {
+
+ serialNumber_ = getDefaultInstance().getSerialNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ public Builder setSerialNumberBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ serialNumber_ = value;
+ onChanged();
+ return this;
+ }
+
+ private com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation deviceInformation_ = null;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation, com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.Builder, com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformationOrBuilder> deviceInformationBuilder_;
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 3;</code>
+ */
+ public boolean hasDeviceInformation() {
+ return deviceInformationBuilder_ != null || deviceInformation_ != null;
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 3;</code>
+ */
+ public com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation getDeviceInformation() {
+ if (deviceInformationBuilder_ == null) {
+ return deviceInformation_ == null ? com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.getDefaultInstance() : deviceInformation_;
+ } else {
+ return deviceInformationBuilder_.getMessage();
+ }
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 3;</code>
+ */
+ public Builder setDeviceInformation(com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation value) {
+ if (deviceInformationBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ deviceInformation_ = value;
+ onChanged();
+ } else {
+ deviceInformationBuilder_.setMessage(value);
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 3;</code>
+ */
+ public Builder setDeviceInformation(
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.Builder builderForValue) {
+ if (deviceInformationBuilder_ == null) {
+ deviceInformation_ = builderForValue.build();
+ onChanged();
+ } else {
+ deviceInformationBuilder_.setMessage(builderForValue.build());
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 3;</code>
+ */
+ public Builder mergeDeviceInformation(com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation value) {
+ if (deviceInformationBuilder_ == null) {
+ if (deviceInformation_ != null) {
+ deviceInformation_ =
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.newBuilder(deviceInformation_).mergeFrom(value).buildPartial();
+ } else {
+ deviceInformation_ = value;
+ }
+ onChanged();
+ } else {
+ deviceInformationBuilder_.mergeFrom(value);
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 3;</code>
+ */
+ public Builder clearDeviceInformation() {
+ if (deviceInformationBuilder_ == null) {
+ deviceInformation_ = null;
+ onChanged();
+ } else {
+ deviceInformation_ = null;
+ deviceInformationBuilder_ = null;
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 3;</code>
+ */
+ public com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.Builder getDeviceInformationBuilder() {
+
+ onChanged();
+ return getDeviceInformationFieldBuilder().getBuilder();
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 3;</code>
+ */
+ public com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformationOrBuilder getDeviceInformationOrBuilder() {
+ if (deviceInformationBuilder_ != null) {
+ return deviceInformationBuilder_.getMessageOrBuilder();
+ } else {
+ return deviceInformation_ == null ?
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.getDefaultInstance() : deviceInformation_;
+ }
+ }
+ /**
+ * <code>.Tango.PMR.Connection.DeviceInformation DeviceInformation = 3;</code>
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation, com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.Builder, com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformationOrBuilder>
+ getDeviceInformationFieldBuilder() {
+ if (deviceInformationBuilder_ == null) {
+ deviceInformationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation, com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformation.Builder, com.twine.tango.pmr.connection.DeviceInformationOuterClass.DeviceInformationOrBuilder>(
+ getDeviceInformation(),
+ getParentForChildren(),
+ isClean());
+ deviceInformation_ = null;
+ }
+ return deviceInformationBuilder_;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Integration.ExternalBridgeLoginResponse)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Integration.ExternalBridgeLoginResponse)
+ private static final com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse();
+ }
+
+ public static com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<ExternalBridgeLoginResponse>
+ PARSER = new com.google.protobuf.AbstractParser<ExternalBridgeLoginResponse>() {
+ public ExternalBridgeLoginResponse parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new ExternalBridgeLoginResponse(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<ExternalBridgeLoginResponse> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<ExternalBridgeLoginResponse> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeLoginResponseOuterClass.ExternalBridgeLoginResponse getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Integration_ExternalBridgeLoginResponse_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Integration_ExternalBridgeLoginResponse_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n!ExternalBridgeLoginResponse.proto\022\025Tan" +
+ "go.PMR.Integration\032\027DeviceInformation.pr" +
+ "oto\"\216\001\n\033ExternalBridgeLoginResponse\022\025\n\rA" +
+ "uthenticated\030\001 \001(\010\022\024\n\014SerialNumber\030\002 \001(\t" +
+ "\022B\n\021DeviceInformation\030\003 \001(\0132\'.Tango.PMR." +
+ "Connection.DeviceInformationB!\n\037com.twin" +
+ "e.tango.pmr.integrationb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.getDescriptor(),
+ }, assigner);
+ internal_static_Tango_PMR_Integration_ExternalBridgeLoginResponse_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Integration_ExternalBridgeLoginResponse_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Integration_ExternalBridgeLoginResponse_descriptor,
+ new java.lang.String[] { "Authenticated", "SerialNumber", "DeviceInformation", });
+ com.twine.tango.pmr.connection.DeviceInformationOuterClass.getDescriptor();
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLogoutRequestOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLogoutRequestOuterClass.java
new file mode 100644
index 000000000..3c8d971e7
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLogoutRequestOuterClass.java
@@ -0,0 +1,441 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: ExternalBridgeLogoutRequest.proto
+
+package com.twine.tango.pmr.integration;
+
+public final class ExternalBridgeLogoutRequestOuterClass {
+ private ExternalBridgeLogoutRequestOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface ExternalBridgeLogoutRequestOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Integration.ExternalBridgeLogoutRequest)
+ com.google.protobuf.MessageOrBuilder {
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.ExternalBridgeLogoutRequest}
+ */
+ public static final class ExternalBridgeLogoutRequest extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Integration.ExternalBridgeLogoutRequest)
+ ExternalBridgeLogoutRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use ExternalBridgeLogoutRequest.newBuilder() to construct.
+ private ExternalBridgeLogoutRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private ExternalBridgeLogoutRequest() {
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private ExternalBridgeLogoutRequest(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLogoutRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLogoutRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest.class, com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest.Builder.class);
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest other = (com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest) obj;
+
+ boolean result = true;
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.ExternalBridgeLogoutRequest}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Integration.ExternalBridgeLogoutRequest)
+ com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLogoutRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLogoutRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest.class, com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLogoutRequest_descriptor;
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest getDefaultInstanceForType() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest build() {
+ com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest buildPartial() {
+ com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest result = new com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest(this);
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest) {
+ return mergeFrom((com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest other) {
+ if (other == com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest.getDefaultInstance()) return this;
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Integration.ExternalBridgeLogoutRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Integration.ExternalBridgeLogoutRequest)
+ private static final com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest();
+ }
+
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<ExternalBridgeLogoutRequest>
+ PARSER = new com.google.protobuf.AbstractParser<ExternalBridgeLogoutRequest>() {
+ public ExternalBridgeLogoutRequest parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new ExternalBridgeLogoutRequest(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<ExternalBridgeLogoutRequest> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<ExternalBridgeLogoutRequest> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeLogoutRequestOuterClass.ExternalBridgeLogoutRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Integration_ExternalBridgeLogoutRequest_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Integration_ExternalBridgeLogoutRequest_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n!ExternalBridgeLogoutRequest.proto\022\025Tan" +
+ "go.PMR.Integration\"\035\n\033ExternalBridgeLogo" +
+ "utRequestB!\n\037com.twine.tango.pmr.integra" +
+ "tionb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Integration_ExternalBridgeLogoutRequest_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Integration_ExternalBridgeLogoutRequest_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Integration_ExternalBridgeLogoutRequest_descriptor,
+ new java.lang.String[] { });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLogoutResponseOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLogoutResponseOuterClass.java
new file mode 100644
index 000000000..aeae9e3cd
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeLogoutResponseOuterClass.java
@@ -0,0 +1,441 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: ExternalBridgeLogoutResponse.proto
+
+package com.twine.tango.pmr.integration;
+
+public final class ExternalBridgeLogoutResponseOuterClass {
+ private ExternalBridgeLogoutResponseOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface ExternalBridgeLogoutResponseOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Integration.ExternalBridgeLogoutResponse)
+ com.google.protobuf.MessageOrBuilder {
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.ExternalBridgeLogoutResponse}
+ */
+ public static final class ExternalBridgeLogoutResponse extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Integration.ExternalBridgeLogoutResponse)
+ ExternalBridgeLogoutResponseOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use ExternalBridgeLogoutResponse.newBuilder() to construct.
+ private ExternalBridgeLogoutResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private ExternalBridgeLogoutResponse() {
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private ExternalBridgeLogoutResponse(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLogoutResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLogoutResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse.class, com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse.Builder.class);
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse other = (com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse) obj;
+
+ boolean result = true;
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.ExternalBridgeLogoutResponse}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Integration.ExternalBridgeLogoutResponse)
+ com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLogoutResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLogoutResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse.class, com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeLogoutResponse_descriptor;
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse getDefaultInstanceForType() {
+ return com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse build() {
+ com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse buildPartial() {
+ com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse result = new com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse(this);
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse) {
+ return mergeFrom((com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse other) {
+ if (other == com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse.getDefaultInstance()) return this;
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Integration.ExternalBridgeLogoutResponse)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Integration.ExternalBridgeLogoutResponse)
+ private static final com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse();
+ }
+
+ public static com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<ExternalBridgeLogoutResponse>
+ PARSER = new com.google.protobuf.AbstractParser<ExternalBridgeLogoutResponse>() {
+ public ExternalBridgeLogoutResponse parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new ExternalBridgeLogoutResponse(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<ExternalBridgeLogoutResponse> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<ExternalBridgeLogoutResponse> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeLogoutResponseOuterClass.ExternalBridgeLogoutResponse getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Integration_ExternalBridgeLogoutResponse_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Integration_ExternalBridgeLogoutResponse_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\"ExternalBridgeLogoutResponse.proto\022\025Ta" +
+ "ngo.PMR.Integration\"\036\n\034ExternalBridgeLog" +
+ "outResponseB!\n\037com.twine.tango.pmr.integ" +
+ "rationb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Integration_ExternalBridgeLogoutResponse_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Integration_ExternalBridgeLogoutResponse_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Integration_ExternalBridgeLogoutResponse_descriptor,
+ new java.lang.String[] { });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeUdpDiscoveryPacketOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeUdpDiscoveryPacketOuterClass.java
new file mode 100644
index 000000000..b4e82ea38
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/ExternalBridgeUdpDiscoveryPacketOuterClass.java
@@ -0,0 +1,717 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: ExternalBridgeUdpDiscoveryPacket.proto
+
+package com.twine.tango.pmr.integration;
+
+public final class ExternalBridgeUdpDiscoveryPacketOuterClass {
+ private ExternalBridgeUdpDiscoveryPacketOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface ExternalBridgeUdpDiscoveryPacketOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Integration.ExternalBridgeUdpDiscoveryPacket)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>string Time = 1;</code>
+ */
+ java.lang.String getTime();
+ /**
+ * <code>string Time = 1;</code>
+ */
+ com.google.protobuf.ByteString
+ getTimeBytes();
+
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ java.lang.String getSerialNumber();
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ com.google.protobuf.ByteString
+ getSerialNumberBytes();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.ExternalBridgeUdpDiscoveryPacket}
+ */
+ public static final class ExternalBridgeUdpDiscoveryPacket extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Integration.ExternalBridgeUdpDiscoveryPacket)
+ ExternalBridgeUdpDiscoveryPacketOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use ExternalBridgeUdpDiscoveryPacket.newBuilder() to construct.
+ private ExternalBridgeUdpDiscoveryPacket(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private ExternalBridgeUdpDiscoveryPacket() {
+ time_ = "";
+ serialNumber_ = "";
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private ExternalBridgeUdpDiscoveryPacket(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ time_ = s;
+ break;
+ }
+ case 18: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ serialNumber_ = s;
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeUdpDiscoveryPacket_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeUdpDiscoveryPacket_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket.class, com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket.Builder.class);
+ }
+
+ public static final int TIME_FIELD_NUMBER = 1;
+ private volatile java.lang.Object time_;
+ /**
+ * <code>string Time = 1;</code>
+ */
+ public java.lang.String getTime() {
+ java.lang.Object ref = time_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ time_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string Time = 1;</code>
+ */
+ public com.google.protobuf.ByteString
+ getTimeBytes() {
+ java.lang.Object ref = time_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ time_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ public static final int SERIALNUMBER_FIELD_NUMBER = 2;
+ private volatile java.lang.Object serialNumber_;
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ public java.lang.String getSerialNumber() {
+ java.lang.Object ref = serialNumber_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ serialNumber_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ public com.google.protobuf.ByteString
+ getSerialNumberBytes() {
+ java.lang.Object ref = serialNumber_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ serialNumber_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (!getTimeBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 1, time_);
+ }
+ if (!getSerialNumberBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 2, serialNumber_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!getTimeBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, time_);
+ }
+ if (!getSerialNumberBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, serialNumber_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket other = (com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket) obj;
+
+ boolean result = true;
+ result = result && getTime()
+ .equals(other.getTime());
+ result = result && getSerialNumber()
+ .equals(other.getSerialNumber());
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + TIME_FIELD_NUMBER;
+ hash = (53 * hash) + getTime().hashCode();
+ hash = (37 * hash) + SERIALNUMBER_FIELD_NUMBER;
+ hash = (53 * hash) + getSerialNumber().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.ExternalBridgeUdpDiscoveryPacket}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Integration.ExternalBridgeUdpDiscoveryPacket)
+ com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacketOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeUdpDiscoveryPacket_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeUdpDiscoveryPacket_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket.class, com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ time_ = "";
+
+ serialNumber_ = "";
+
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.internal_static_Tango_PMR_Integration_ExternalBridgeUdpDiscoveryPacket_descriptor;
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket getDefaultInstanceForType() {
+ return com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket build() {
+ com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket buildPartial() {
+ com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket result = new com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket(this);
+ result.time_ = time_;
+ result.serialNumber_ = serialNumber_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket) {
+ return mergeFrom((com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket other) {
+ if (other == com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket.getDefaultInstance()) return this;
+ if (!other.getTime().isEmpty()) {
+ time_ = other.time_;
+ onChanged();
+ }
+ if (!other.getSerialNumber().isEmpty()) {
+ serialNumber_ = other.serialNumber_;
+ onChanged();
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private java.lang.Object time_ = "";
+ /**
+ * <code>string Time = 1;</code>
+ */
+ public java.lang.String getTime() {
+ java.lang.Object ref = time_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ time_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string Time = 1;</code>
+ */
+ public com.google.protobuf.ByteString
+ getTimeBytes() {
+ java.lang.Object ref = time_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ time_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string Time = 1;</code>
+ */
+ public Builder setTime(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ time_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string Time = 1;</code>
+ */
+ public Builder clearTime() {
+
+ time_ = getDefaultInstance().getTime();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string Time = 1;</code>
+ */
+ public Builder setTimeBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ time_ = value;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object serialNumber_ = "";
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ public java.lang.String getSerialNumber() {
+ java.lang.Object ref = serialNumber_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ serialNumber_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ public com.google.protobuf.ByteString
+ getSerialNumberBytes() {
+ java.lang.Object ref = serialNumber_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ serialNumber_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ public Builder setSerialNumber(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ serialNumber_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ public Builder clearSerialNumber() {
+
+ serialNumber_ = getDefaultInstance().getSerialNumber();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string SerialNumber = 2;</code>
+ */
+ public Builder setSerialNumberBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ serialNumber_ = value;
+ onChanged();
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Integration.ExternalBridgeUdpDiscoveryPacket)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Integration.ExternalBridgeUdpDiscoveryPacket)
+ private static final com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket();
+ }
+
+ public static com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<ExternalBridgeUdpDiscoveryPacket>
+ PARSER = new com.google.protobuf.AbstractParser<ExternalBridgeUdpDiscoveryPacket>() {
+ public ExternalBridgeUdpDiscoveryPacket parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new ExternalBridgeUdpDiscoveryPacket(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<ExternalBridgeUdpDiscoveryPacket> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<ExternalBridgeUdpDiscoveryPacket> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.integration.ExternalBridgeUdpDiscoveryPacketOuterClass.ExternalBridgeUdpDiscoveryPacket getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Integration_ExternalBridgeUdpDiscoveryPacket_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Integration_ExternalBridgeUdpDiscoveryPacket_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n&ExternalBridgeUdpDiscoveryPacket.proto" +
+ "\022\025Tango.PMR.Integration\"F\n ExternalBridg" +
+ "eUdpDiscoveryPacket\022\014\n\004Time\030\001 \001(\t\022\024\n\014Ser" +
+ "ialNumber\030\002 \001(\tB!\n\037com.twine.tango.pmr.i" +
+ "ntegrationb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Integration_ExternalBridgeUdpDiscoveryPacket_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Integration_ExternalBridgeUdpDiscoveryPacket_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Integration_ExternalBridgeUdpDiscoveryPacket_descriptor,
+ new java.lang.String[] { "Time", "SerialNumber", });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/OverrideDataBaseRequestOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/OverrideDataBaseRequestOuterClass.java
new file mode 100644
index 000000000..b02fae384
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/OverrideDataBaseRequestOuterClass.java
@@ -0,0 +1,508 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: OverrideDataBaseRequest.proto
+
+package com.twine.tango.pmr.integration;
+
+public final class OverrideDataBaseRequestOuterClass {
+ private OverrideDataBaseRequestOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface OverrideDataBaseRequestOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Integration.OverrideDataBaseRequest)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>bytes RemoteDB = 1;</code>
+ */
+ com.google.protobuf.ByteString getRemoteDB();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.OverrideDataBaseRequest}
+ */
+ public static final class OverrideDataBaseRequest extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Integration.OverrideDataBaseRequest)
+ OverrideDataBaseRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use OverrideDataBaseRequest.newBuilder() to construct.
+ private OverrideDataBaseRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private OverrideDataBaseRequest() {
+ remoteDB_ = com.google.protobuf.ByteString.EMPTY;
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private OverrideDataBaseRequest(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+
+ remoteDB_ = input.readBytes();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.internal_static_Tango_PMR_Integration_OverrideDataBaseRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.internal_static_Tango_PMR_Integration_OverrideDataBaseRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest.class, com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest.Builder.class);
+ }
+
+ public static final int REMOTEDB_FIELD_NUMBER = 1;
+ private com.google.protobuf.ByteString remoteDB_;
+ /**
+ * <code>bytes RemoteDB = 1;</code>
+ */
+ public com.google.protobuf.ByteString getRemoteDB() {
+ return remoteDB_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (!remoteDB_.isEmpty()) {
+ output.writeBytes(1, remoteDB_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!remoteDB_.isEmpty()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(1, remoteDB_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest other = (com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest) obj;
+
+ boolean result = true;
+ result = result && getRemoteDB()
+ .equals(other.getRemoteDB());
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + REMOTEDB_FIELD_NUMBER;
+ hash = (53 * hash) + getRemoteDB().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.OverrideDataBaseRequest}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Integration.OverrideDataBaseRequest)
+ com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.internal_static_Tango_PMR_Integration_OverrideDataBaseRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.internal_static_Tango_PMR_Integration_OverrideDataBaseRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest.class, com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ remoteDB_ = com.google.protobuf.ByteString.EMPTY;
+
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.internal_static_Tango_PMR_Integration_OverrideDataBaseRequest_descriptor;
+ }
+
+ public com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest getDefaultInstanceForType() {
+ return com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest build() {
+ com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest buildPartial() {
+ com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest result = new com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest(this);
+ result.remoteDB_ = remoteDB_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest) {
+ return mergeFrom((com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest other) {
+ if (other == com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest.getDefaultInstance()) return this;
+ if (other.getRemoteDB() != com.google.protobuf.ByteString.EMPTY) {
+ setRemoteDB(other.getRemoteDB());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private com.google.protobuf.ByteString remoteDB_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>bytes RemoteDB = 1;</code>
+ */
+ public com.google.protobuf.ByteString getRemoteDB() {
+ return remoteDB_;
+ }
+ /**
+ * <code>bytes RemoteDB = 1;</code>
+ */
+ public Builder setRemoteDB(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ remoteDB_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>bytes RemoteDB = 1;</code>
+ */
+ public Builder clearRemoteDB() {
+
+ remoteDB_ = getDefaultInstance().getRemoteDB();
+ onChanged();
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Integration.OverrideDataBaseRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Integration.OverrideDataBaseRequest)
+ private static final com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest();
+ }
+
+ public static com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<OverrideDataBaseRequest>
+ PARSER = new com.google.protobuf.AbstractParser<OverrideDataBaseRequest>() {
+ public OverrideDataBaseRequest parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new OverrideDataBaseRequest(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<OverrideDataBaseRequest> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<OverrideDataBaseRequest> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.integration.OverrideDataBaseRequestOuterClass.OverrideDataBaseRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Integration_OverrideDataBaseRequest_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Integration_OverrideDataBaseRequest_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\035OverrideDataBaseRequest.proto\022\025Tango.P" +
+ "MR.Integration\"+\n\027OverrideDataBaseReques" +
+ "t\022\020\n\010RemoteDB\030\001 \001(\014B!\n\037com.twine.tango.p" +
+ "mr.integrationb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Integration_OverrideDataBaseRequest_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Integration_OverrideDataBaseRequest_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Integration_OverrideDataBaseRequest_descriptor,
+ new java.lang.String[] { "RemoteDB", });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/OverrideDataBaseResponseOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/OverrideDataBaseResponseOuterClass.java
new file mode 100644
index 000000000..562f4259c
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/OverrideDataBaseResponseOuterClass.java
@@ -0,0 +1,506 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: OverrideDataBaseResponse.proto
+
+package com.twine.tango.pmr.integration;
+
+public final class OverrideDataBaseResponseOuterClass {
+ private OverrideDataBaseResponseOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface OverrideDataBaseResponseOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Integration.OverrideDataBaseResponse)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>bool Successful = 1;</code>
+ */
+ boolean getSuccessful();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.OverrideDataBaseResponse}
+ */
+ public static final class OverrideDataBaseResponse extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Integration.OverrideDataBaseResponse)
+ OverrideDataBaseResponseOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use OverrideDataBaseResponse.newBuilder() to construct.
+ private OverrideDataBaseResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private OverrideDataBaseResponse() {
+ successful_ = false;
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private OverrideDataBaseResponse(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+
+ successful_ = input.readBool();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.internal_static_Tango_PMR_Integration_OverrideDataBaseResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.internal_static_Tango_PMR_Integration_OverrideDataBaseResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse.class, com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse.Builder.class);
+ }
+
+ public static final int SUCCESSFUL_FIELD_NUMBER = 1;
+ private boolean successful_;
+ /**
+ * <code>bool Successful = 1;</code>
+ */
+ public boolean getSuccessful() {
+ return successful_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (successful_ != false) {
+ output.writeBool(1, successful_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (successful_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(1, successful_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse other = (com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse) obj;
+
+ boolean result = true;
+ result = result && (getSuccessful()
+ == other.getSuccessful());
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + SUCCESSFUL_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getSuccessful());
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.OverrideDataBaseResponse}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Integration.OverrideDataBaseResponse)
+ com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.internal_static_Tango_PMR_Integration_OverrideDataBaseResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.internal_static_Tango_PMR_Integration_OverrideDataBaseResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse.class, com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ successful_ = false;
+
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.internal_static_Tango_PMR_Integration_OverrideDataBaseResponse_descriptor;
+ }
+
+ public com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse getDefaultInstanceForType() {
+ return com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse build() {
+ com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse buildPartial() {
+ com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse result = new com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse(this);
+ result.successful_ = successful_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse) {
+ return mergeFrom((com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse other) {
+ if (other == com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse.getDefaultInstance()) return this;
+ if (other.getSuccessful() != false) {
+ setSuccessful(other.getSuccessful());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private boolean successful_ ;
+ /**
+ * <code>bool Successful = 1;</code>
+ */
+ public boolean getSuccessful() {
+ return successful_;
+ }
+ /**
+ * <code>bool Successful = 1;</code>
+ */
+ public Builder setSuccessful(boolean value) {
+
+ successful_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>bool Successful = 1;</code>
+ */
+ public Builder clearSuccessful() {
+
+ successful_ = false;
+ onChanged();
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Integration.OverrideDataBaseResponse)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Integration.OverrideDataBaseResponse)
+ private static final com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse();
+ }
+
+ public static com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<OverrideDataBaseResponse>
+ PARSER = new com.google.protobuf.AbstractParser<OverrideDataBaseResponse>() {
+ public OverrideDataBaseResponse parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new OverrideDataBaseResponse(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<OverrideDataBaseResponse> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<OverrideDataBaseResponse> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.integration.OverrideDataBaseResponseOuterClass.OverrideDataBaseResponse getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Integration_OverrideDataBaseResponse_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Integration_OverrideDataBaseResponse_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\036OverrideDataBaseResponse.proto\022\025Tango." +
+ "PMR.Integration\".\n\030OverrideDataBaseRespo" +
+ "nse\022\022\n\nSuccessful\030\001 \001(\010B!\n\037com.twine.tan" +
+ "go.pmr.integrationb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Integration_OverrideDataBaseResponse_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Integration_OverrideDataBaseResponse_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Integration_OverrideDataBaseResponse_descriptor,
+ new java.lang.String[] { "Successful", });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/StartApplicationLogsRequestOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/StartApplicationLogsRequestOuterClass.java
new file mode 100644
index 000000000..06f5fafa2
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/StartApplicationLogsRequestOuterClass.java
@@ -0,0 +1,441 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StartApplicationLogsRequest.proto
+
+package com.twine.tango.pmr.integration;
+
+public final class StartApplicationLogsRequestOuterClass {
+ private StartApplicationLogsRequestOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface StartApplicationLogsRequestOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Integration.StartApplicationLogsRequest)
+ com.google.protobuf.MessageOrBuilder {
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.StartApplicationLogsRequest}
+ */
+ public static final class StartApplicationLogsRequest extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Integration.StartApplicationLogsRequest)
+ StartApplicationLogsRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use StartApplicationLogsRequest.newBuilder() to construct.
+ private StartApplicationLogsRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private StartApplicationLogsRequest() {
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private StartApplicationLogsRequest(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.internal_static_Tango_PMR_Integration_StartApplicationLogsRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.internal_static_Tango_PMR_Integration_StartApplicationLogsRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest.class, com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest.Builder.class);
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest other = (com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest) obj;
+
+ boolean result = true;
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.StartApplicationLogsRequest}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Integration.StartApplicationLogsRequest)
+ com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.internal_static_Tango_PMR_Integration_StartApplicationLogsRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.internal_static_Tango_PMR_Integration_StartApplicationLogsRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest.class, com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.internal_static_Tango_PMR_Integration_StartApplicationLogsRequest_descriptor;
+ }
+
+ public com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest getDefaultInstanceForType() {
+ return com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest build() {
+ com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest buildPartial() {
+ com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest result = new com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest(this);
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest) {
+ return mergeFrom((com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest other) {
+ if (other == com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest.getDefaultInstance()) return this;
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Integration.StartApplicationLogsRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Integration.StartApplicationLogsRequest)
+ private static final com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest();
+ }
+
+ public static com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<StartApplicationLogsRequest>
+ PARSER = new com.google.protobuf.AbstractParser<StartApplicationLogsRequest>() {
+ public StartApplicationLogsRequest parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new StartApplicationLogsRequest(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<StartApplicationLogsRequest> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<StartApplicationLogsRequest> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.integration.StartApplicationLogsRequestOuterClass.StartApplicationLogsRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Integration_StartApplicationLogsRequest_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Integration_StartApplicationLogsRequest_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n!StartApplicationLogsRequest.proto\022\025Tan" +
+ "go.PMR.Integration\"\035\n\033StartApplicationLo" +
+ "gsRequestB!\n\037com.twine.tango.pmr.integra" +
+ "tionb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Integration_StartApplicationLogsRequest_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Integration_StartApplicationLogsRequest_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Integration_StartApplicationLogsRequest_descriptor,
+ new java.lang.String[] { });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/StartApplicationLogsResponseOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/StartApplicationLogsResponseOuterClass.java
new file mode 100644
index 000000000..5c5a329f3
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/StartApplicationLogsResponseOuterClass.java
@@ -0,0 +1,508 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StartApplicationLogsResponse.proto
+
+package com.twine.tango.pmr.integration;
+
+public final class StartApplicationLogsResponseOuterClass {
+ private StartApplicationLogsResponseOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface StartApplicationLogsResponseOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Integration.StartApplicationLogsResponse)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>bytes LogItem = 1;</code>
+ */
+ com.google.protobuf.ByteString getLogItem();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.StartApplicationLogsResponse}
+ */
+ public static final class StartApplicationLogsResponse extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Integration.StartApplicationLogsResponse)
+ StartApplicationLogsResponseOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use StartApplicationLogsResponse.newBuilder() to construct.
+ private StartApplicationLogsResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private StartApplicationLogsResponse() {
+ logItem_ = com.google.protobuf.ByteString.EMPTY;
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private StartApplicationLogsResponse(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+
+ logItem_ = input.readBytes();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.internal_static_Tango_PMR_Integration_StartApplicationLogsResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.internal_static_Tango_PMR_Integration_StartApplicationLogsResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse.class, com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse.Builder.class);
+ }
+
+ public static final int LOGITEM_FIELD_NUMBER = 1;
+ private com.google.protobuf.ByteString logItem_;
+ /**
+ * <code>bytes LogItem = 1;</code>
+ */
+ public com.google.protobuf.ByteString getLogItem() {
+ return logItem_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (!logItem_.isEmpty()) {
+ output.writeBytes(1, logItem_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!logItem_.isEmpty()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(1, logItem_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse other = (com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse) obj;
+
+ boolean result = true;
+ result = result && getLogItem()
+ .equals(other.getLogItem());
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + LOGITEM_FIELD_NUMBER;
+ hash = (53 * hash) + getLogItem().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.StartApplicationLogsResponse}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Integration.StartApplicationLogsResponse)
+ com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.internal_static_Tango_PMR_Integration_StartApplicationLogsResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.internal_static_Tango_PMR_Integration_StartApplicationLogsResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse.class, com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ logItem_ = com.google.protobuf.ByteString.EMPTY;
+
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.internal_static_Tango_PMR_Integration_StartApplicationLogsResponse_descriptor;
+ }
+
+ public com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse getDefaultInstanceForType() {
+ return com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse build() {
+ com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse buildPartial() {
+ com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse result = new com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse(this);
+ result.logItem_ = logItem_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse) {
+ return mergeFrom((com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse other) {
+ if (other == com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse.getDefaultInstance()) return this;
+ if (other.getLogItem() != com.google.protobuf.ByteString.EMPTY) {
+ setLogItem(other.getLogItem());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private com.google.protobuf.ByteString logItem_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>bytes LogItem = 1;</code>
+ */
+ public com.google.protobuf.ByteString getLogItem() {
+ return logItem_;
+ }
+ /**
+ * <code>bytes LogItem = 1;</code>
+ */
+ public Builder setLogItem(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ logItem_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>bytes LogItem = 1;</code>
+ */
+ public Builder clearLogItem() {
+
+ logItem_ = getDefaultInstance().getLogItem();
+ onChanged();
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Integration.StartApplicationLogsResponse)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Integration.StartApplicationLogsResponse)
+ private static final com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse();
+ }
+
+ public static com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<StartApplicationLogsResponse>
+ PARSER = new com.google.protobuf.AbstractParser<StartApplicationLogsResponse>() {
+ public StartApplicationLogsResponse parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new StartApplicationLogsResponse(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<StartApplicationLogsResponse> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<StartApplicationLogsResponse> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.integration.StartApplicationLogsResponseOuterClass.StartApplicationLogsResponse getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Integration_StartApplicationLogsResponse_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Integration_StartApplicationLogsResponse_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\"StartApplicationLogsResponse.proto\022\025Ta" +
+ "ngo.PMR.Integration\"/\n\034StartApplicationL" +
+ "ogsResponse\022\017\n\007LogItem\030\001 \001(\014B!\n\037com.twin" +
+ "e.tango.pmr.integrationb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Integration_StartApplicationLogsResponse_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Integration_StartApplicationLogsResponse_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Integration_StartApplicationLogsResponse_descriptor,
+ new java.lang.String[] { "LogItem", });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/StopApplicationLogsRequestOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/StopApplicationLogsRequestOuterClass.java
new file mode 100644
index 000000000..9345f8966
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/StopApplicationLogsRequestOuterClass.java
@@ -0,0 +1,441 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StopApplicationLogsRequest.proto
+
+package com.twine.tango.pmr.integration;
+
+public final class StopApplicationLogsRequestOuterClass {
+ private StopApplicationLogsRequestOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface StopApplicationLogsRequestOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Integration.StopApplicationLogsRequest)
+ com.google.protobuf.MessageOrBuilder {
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.StopApplicationLogsRequest}
+ */
+ public static final class StopApplicationLogsRequest extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Integration.StopApplicationLogsRequest)
+ StopApplicationLogsRequestOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use StopApplicationLogsRequest.newBuilder() to construct.
+ private StopApplicationLogsRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private StopApplicationLogsRequest() {
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private StopApplicationLogsRequest(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.internal_static_Tango_PMR_Integration_StopApplicationLogsRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.internal_static_Tango_PMR_Integration_StopApplicationLogsRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest.class, com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest.Builder.class);
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest other = (com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest) obj;
+
+ boolean result = true;
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.StopApplicationLogsRequest}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Integration.StopApplicationLogsRequest)
+ com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequestOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.internal_static_Tango_PMR_Integration_StopApplicationLogsRequest_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.internal_static_Tango_PMR_Integration_StopApplicationLogsRequest_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest.class, com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.internal_static_Tango_PMR_Integration_StopApplicationLogsRequest_descriptor;
+ }
+
+ public com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest getDefaultInstanceForType() {
+ return com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest build() {
+ com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest buildPartial() {
+ com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest result = new com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest(this);
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest) {
+ return mergeFrom((com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest other) {
+ if (other == com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest.getDefaultInstance()) return this;
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Integration.StopApplicationLogsRequest)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Integration.StopApplicationLogsRequest)
+ private static final com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest();
+ }
+
+ public static com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<StopApplicationLogsRequest>
+ PARSER = new com.google.protobuf.AbstractParser<StopApplicationLogsRequest>() {
+ public StopApplicationLogsRequest parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new StopApplicationLogsRequest(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<StopApplicationLogsRequest> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<StopApplicationLogsRequest> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.integration.StopApplicationLogsRequestOuterClass.StopApplicationLogsRequest getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Integration_StopApplicationLogsRequest_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Integration_StopApplicationLogsRequest_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n StopApplicationLogsRequest.proto\022\025Tang" +
+ "o.PMR.Integration\"\034\n\032StopApplicationLogs" +
+ "RequestB!\n\037com.twine.tango.pmr.integrati" +
+ "onb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Integration_StopApplicationLogsRequest_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Integration_StopApplicationLogsRequest_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Integration_StopApplicationLogsRequest_descriptor,
+ new java.lang.String[] { });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/StopApplicationLogsResponseOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/StopApplicationLogsResponseOuterClass.java
new file mode 100644
index 000000000..f990f3df8
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/integration/StopApplicationLogsResponseOuterClass.java
@@ -0,0 +1,441 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StopApplicationLogsResponse.proto
+
+package com.twine.tango.pmr.integration;
+
+public final class StopApplicationLogsResponseOuterClass {
+ private StopApplicationLogsResponseOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface StopApplicationLogsResponseOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.Integration.StopApplicationLogsResponse)
+ com.google.protobuf.MessageOrBuilder {
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.StopApplicationLogsResponse}
+ */
+ public static final class StopApplicationLogsResponse extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.Integration.StopApplicationLogsResponse)
+ StopApplicationLogsResponseOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use StopApplicationLogsResponse.newBuilder() to construct.
+ private StopApplicationLogsResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private StopApplicationLogsResponse() {
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private StopApplicationLogsResponse(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.internal_static_Tango_PMR_Integration_StopApplicationLogsResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.internal_static_Tango_PMR_Integration_StopApplicationLogsResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse.class, com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse.Builder.class);
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse other = (com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse) obj;
+
+ boolean result = true;
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.Integration.StopApplicationLogsResponse}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.Integration.StopApplicationLogsResponse)
+ com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.internal_static_Tango_PMR_Integration_StopApplicationLogsResponse_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.internal_static_Tango_PMR_Integration_StopApplicationLogsResponse_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse.class, com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.internal_static_Tango_PMR_Integration_StopApplicationLogsResponse_descriptor;
+ }
+
+ public com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse getDefaultInstanceForType() {
+ return com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse build() {
+ com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse buildPartial() {
+ com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse result = new com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse(this);
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse) {
+ return mergeFrom((com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse other) {
+ if (other == com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse.getDefaultInstance()) return this;
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.Integration.StopApplicationLogsResponse)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Integration.StopApplicationLogsResponse)
+ private static final com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse();
+ }
+
+ public static com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<StopApplicationLogsResponse>
+ PARSER = new com.google.protobuf.AbstractParser<StopApplicationLogsResponse>() {
+ public StopApplicationLogsResponse parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new StopApplicationLogsResponse(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<StopApplicationLogsResponse> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<StopApplicationLogsResponse> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.integration.StopApplicationLogsResponseOuterClass.StopApplicationLogsResponse getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_Integration_StopApplicationLogsResponse_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_Integration_StopApplicationLogsResponse_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n!StopApplicationLogsResponse.proto\022\025Tan" +
+ "go.PMR.Integration\"\035\n\033StopApplicationLog" +
+ "sResponseB!\n\037com.twine.tango.pmr.integra" +
+ "tionb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_Integration_StopApplicationLogsResponse_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_Integration_StopApplicationLogsResponse_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_Integration_StopApplicationLogsResponse_descriptor,
+ new java.lang.String[] { });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/tcc/DetectionBenchmarkOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/tcc/DetectionBenchmarkOuterClass.java
new file mode 100644
index 000000000..19435128c
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/tcc/DetectionBenchmarkOuterClass.java
@@ -0,0 +1,830 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: DetectionBenchmark.proto
+
+package com.twine.tango.pmr.tcc;
+
+public final class DetectionBenchmarkOuterClass {
+ private DetectionBenchmarkOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface DetectionBenchmarkOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.TCC.DetectionBenchmark)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>int32 Red = 1;</code>
+ */
+ int getRed();
+
+ /**
+ * <code>int32 Green = 2;</code>
+ */
+ int getGreen();
+
+ /**
+ * <code>int32 Blue = 3;</code>
+ */
+ int getBlue();
+
+ /**
+ * <code>double L = 4;</code>
+ */
+ double getL();
+
+ /**
+ * <code>double A = 5;</code>
+ */
+ double getA();
+
+ /**
+ * <code>double B = 6;</code>
+ */
+ double getB();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.TCC.DetectionBenchmark}
+ */
+ public static final class DetectionBenchmark extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.TCC.DetectionBenchmark)
+ DetectionBenchmarkOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use DetectionBenchmark.newBuilder() to construct.
+ private DetectionBenchmark(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private DetectionBenchmark() {
+ red_ = 0;
+ green_ = 0;
+ blue_ = 0;
+ l_ = 0D;
+ a_ = 0D;
+ b_ = 0D;
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private DetectionBenchmark(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+
+ red_ = input.readInt32();
+ break;
+ }
+ case 16: {
+
+ green_ = input.readInt32();
+ break;
+ }
+ case 24: {
+
+ blue_ = input.readInt32();
+ break;
+ }
+ case 33: {
+
+ l_ = input.readDouble();
+ break;
+ }
+ case 41: {
+
+ a_ = input.readDouble();
+ break;
+ }
+ case 49: {
+
+ b_ = input.readDouble();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.internal_static_Tango_PMR_TCC_DetectionBenchmark_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.internal_static_Tango_PMR_TCC_DetectionBenchmark_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.class, com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.Builder.class);
+ }
+
+ public static final int RED_FIELD_NUMBER = 1;
+ private int red_;
+ /**
+ * <code>int32 Red = 1;</code>
+ */
+ public int getRed() {
+ return red_;
+ }
+
+ public static final int GREEN_FIELD_NUMBER = 2;
+ private int green_;
+ /**
+ * <code>int32 Green = 2;</code>
+ */
+ public int getGreen() {
+ return green_;
+ }
+
+ public static final int BLUE_FIELD_NUMBER = 3;
+ private int blue_;
+ /**
+ * <code>int32 Blue = 3;</code>
+ */
+ public int getBlue() {
+ return blue_;
+ }
+
+ public static final int L_FIELD_NUMBER = 4;
+ private double l_;
+ /**
+ * <code>double L = 4;</code>
+ */
+ public double getL() {
+ return l_;
+ }
+
+ public static final int A_FIELD_NUMBER = 5;
+ private double a_;
+ /**
+ * <code>double A = 5;</code>
+ */
+ public double getA() {
+ return a_;
+ }
+
+ public static final int B_FIELD_NUMBER = 6;
+ private double b_;
+ /**
+ * <code>double B = 6;</code>
+ */
+ public double getB() {
+ return b_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (red_ != 0) {
+ output.writeInt32(1, red_);
+ }
+ if (green_ != 0) {
+ output.writeInt32(2, green_);
+ }
+ if (blue_ != 0) {
+ output.writeInt32(3, blue_);
+ }
+ if (l_ != 0D) {
+ output.writeDouble(4, l_);
+ }
+ if (a_ != 0D) {
+ output.writeDouble(5, a_);
+ }
+ if (b_ != 0D) {
+ output.writeDouble(6, b_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (red_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(1, red_);
+ }
+ if (green_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(2, green_);
+ }
+ if (blue_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(3, blue_);
+ }
+ if (l_ != 0D) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeDoubleSize(4, l_);
+ }
+ if (a_ != 0D) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeDoubleSize(5, a_);
+ }
+ if (b_ != 0D) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeDoubleSize(6, b_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark other = (com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark) obj;
+
+ boolean result = true;
+ result = result && (getRed()
+ == other.getRed());
+ result = result && (getGreen()
+ == other.getGreen());
+ result = result && (getBlue()
+ == other.getBlue());
+ result = result && (
+ java.lang.Double.doubleToLongBits(getL())
+ == java.lang.Double.doubleToLongBits(
+ other.getL()));
+ result = result && (
+ java.lang.Double.doubleToLongBits(getA())
+ == java.lang.Double.doubleToLongBits(
+ other.getA()));
+ result = result && (
+ java.lang.Double.doubleToLongBits(getB())
+ == java.lang.Double.doubleToLongBits(
+ other.getB()));
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + RED_FIELD_NUMBER;
+ hash = (53 * hash) + getRed();
+ hash = (37 * hash) + GREEN_FIELD_NUMBER;
+ hash = (53 * hash) + getGreen();
+ hash = (37 * hash) + BLUE_FIELD_NUMBER;
+ hash = (53 * hash) + getBlue();
+ hash = (37 * hash) + L_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getL()));
+ hash = (37 * hash) + A_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getA()));
+ hash = (37 * hash) + B_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getB()));
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.TCC.DetectionBenchmark}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.TCC.DetectionBenchmark)
+ com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmarkOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.internal_static_Tango_PMR_TCC_DetectionBenchmark_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.internal_static_Tango_PMR_TCC_DetectionBenchmark_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.class, com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ red_ = 0;
+
+ green_ = 0;
+
+ blue_ = 0;
+
+ l_ = 0D;
+
+ a_ = 0D;
+
+ b_ = 0D;
+
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.internal_static_Tango_PMR_TCC_DetectionBenchmark_descriptor;
+ }
+
+ public com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark getDefaultInstanceForType() {
+ return com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark build() {
+ com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark buildPartial() {
+ com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark result = new com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark(this);
+ result.red_ = red_;
+ result.green_ = green_;
+ result.blue_ = blue_;
+ result.l_ = l_;
+ result.a_ = a_;
+ result.b_ = b_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark) {
+ return mergeFrom((com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark other) {
+ if (other == com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.getDefaultInstance()) return this;
+ if (other.getRed() != 0) {
+ setRed(other.getRed());
+ }
+ if (other.getGreen() != 0) {
+ setGreen(other.getGreen());
+ }
+ if (other.getBlue() != 0) {
+ setBlue(other.getBlue());
+ }
+ if (other.getL() != 0D) {
+ setL(other.getL());
+ }
+ if (other.getA() != 0D) {
+ setA(other.getA());
+ }
+ if (other.getB() != 0D) {
+ setB(other.getB());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private int red_ ;
+ /**
+ * <code>int32 Red = 1;</code>
+ */
+ public int getRed() {
+ return red_;
+ }
+ /**
+ * <code>int32 Red = 1;</code>
+ */
+ public Builder setRed(int value) {
+
+ red_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>int32 Red = 1;</code>
+ */
+ public Builder clearRed() {
+
+ red_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int green_ ;
+ /**
+ * <code>int32 Green = 2;</code>
+ */
+ public int getGreen() {
+ return green_;
+ }
+ /**
+ * <code>int32 Green = 2;</code>
+ */
+ public Builder setGreen(int value) {
+
+ green_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>int32 Green = 2;</code>
+ */
+ public Builder clearGreen() {
+
+ green_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int blue_ ;
+ /**
+ * <code>int32 Blue = 3;</code>
+ */
+ public int getBlue() {
+ return blue_;
+ }
+ /**
+ * <code>int32 Blue = 3;</code>
+ */
+ public Builder setBlue(int value) {
+
+ blue_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>int32 Blue = 3;</code>
+ */
+ public Builder clearBlue() {
+
+ blue_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private double l_ ;
+ /**
+ * <code>double L = 4;</code>
+ */
+ public double getL() {
+ return l_;
+ }
+ /**
+ * <code>double L = 4;</code>
+ */
+ public Builder setL(double value) {
+
+ l_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>double L = 4;</code>
+ */
+ public Builder clearL() {
+
+ l_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ private double a_ ;
+ /**
+ * <code>double A = 5;</code>
+ */
+ public double getA() {
+ return a_;
+ }
+ /**
+ * <code>double A = 5;</code>
+ */
+ public Builder setA(double value) {
+
+ a_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>double A = 5;</code>
+ */
+ public Builder clearA() {
+
+ a_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ private double b_ ;
+ /**
+ * <code>double B = 6;</code>
+ */
+ public double getB() {
+ return b_;
+ }
+ /**
+ * <code>double B = 6;</code>
+ */
+ public Builder setB(double value) {
+
+ b_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>double B = 6;</code>
+ */
+ public Builder clearB() {
+
+ b_ = 0D;
+ onChanged();
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.TCC.DetectionBenchmark)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.TCC.DetectionBenchmark)
+ private static final com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark();
+ }
+
+ public static com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<DetectionBenchmark>
+ PARSER = new com.google.protobuf.AbstractParser<DetectionBenchmark>() {
+ public DetectionBenchmark parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new DetectionBenchmark(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<DetectionBenchmark> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<DetectionBenchmark> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_TCC_DetectionBenchmark_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_TCC_DetectionBenchmark_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\030DetectionBenchmark.proto\022\rTango.PMR.TC" +
+ "C\"_\n\022DetectionBenchmark\022\013\n\003Red\030\001 \001(\005\022\r\n\005" +
+ "Green\030\002 \001(\005\022\014\n\004Blue\030\003 \001(\005\022\t\n\001L\030\004 \001(\001\022\t\n\001" +
+ "A\030\005 \001(\001\022\t\n\001B\030\006 \001(\001B\031\n\027com.twine.tango.pm" +
+ "r.tccb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_TCC_DetectionBenchmark_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_TCC_DetectionBenchmark_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_TCC_DetectionBenchmark_descriptor,
+ new java.lang.String[] { "Red", "Green", "Blue", "L", "A", "B", });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/tcc/DetectionColorOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/tcc/DetectionColorOuterClass.java
new file mode 100644
index 000000000..e4e7802c4
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/tcc/DetectionColorOuterClass.java
@@ -0,0 +1,631 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: DetectionColor.proto
+
+package com.twine.tango.pmr.tcc;
+
+public final class DetectionColorOuterClass {
+ private DetectionColorOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface DetectionColorOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.TCC.DetectionColor)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>int32 R = 1;</code>
+ */
+ int getR();
+
+ /**
+ * <code>int32 G = 2;</code>
+ */
+ int getG();
+
+ /**
+ * <code>int32 B = 3;</code>
+ */
+ int getB();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.TCC.DetectionColor}
+ */
+ public static final class DetectionColor extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.TCC.DetectionColor)
+ DetectionColorOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use DetectionColor.newBuilder() to construct.
+ private DetectionColor(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private DetectionColor() {
+ r_ = 0;
+ g_ = 0;
+ b_ = 0;
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private DetectionColor(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 8: {
+
+ r_ = input.readInt32();
+ break;
+ }
+ case 16: {
+
+ g_ = input.readInt32();
+ break;
+ }
+ case 24: {
+
+ b_ = input.readInt32();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.tcc.DetectionColorOuterClass.internal_static_Tango_PMR_TCC_DetectionColor_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.tcc.DetectionColorOuterClass.internal_static_Tango_PMR_TCC_DetectionColor_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.class, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder.class);
+ }
+
+ public static final int R_FIELD_NUMBER = 1;
+ private int r_;
+ /**
+ * <code>int32 R = 1;</code>
+ */
+ public int getR() {
+ return r_;
+ }
+
+ public static final int G_FIELD_NUMBER = 2;
+ private int g_;
+ /**
+ * <code>int32 G = 2;</code>
+ */
+ public int getG() {
+ return g_;
+ }
+
+ public static final int B_FIELD_NUMBER = 3;
+ private int b_;
+ /**
+ * <code>int32 B = 3;</code>
+ */
+ public int getB() {
+ return b_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (r_ != 0) {
+ output.writeInt32(1, r_);
+ }
+ if (g_ != 0) {
+ output.writeInt32(2, g_);
+ }
+ if (b_ != 0) {
+ output.writeInt32(3, b_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (r_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(1, r_);
+ }
+ if (g_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(2, g_);
+ }
+ if (b_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(3, b_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor other = (com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor) obj;
+
+ boolean result = true;
+ result = result && (getR()
+ == other.getR());
+ result = result && (getG()
+ == other.getG());
+ result = result && (getB()
+ == other.getB());
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + R_FIELD_NUMBER;
+ hash = (53 * hash) + getR();
+ hash = (37 * hash) + G_FIELD_NUMBER;
+ hash = (53 * hash) + getG();
+ hash = (37 * hash) + B_FIELD_NUMBER;
+ hash = (53 * hash) + getB();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.TCC.DetectionColor}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.TCC.DetectionColor)
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.tcc.DetectionColorOuterClass.internal_static_Tango_PMR_TCC_DetectionColor_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.tcc.DetectionColorOuterClass.internal_static_Tango_PMR_TCC_DetectionColor_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.class, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ r_ = 0;
+
+ g_ = 0;
+
+ b_ = 0;
+
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.tcc.DetectionColorOuterClass.internal_static_Tango_PMR_TCC_DetectionColor_descriptor;
+ }
+
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor getDefaultInstanceForType() {
+ return com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor build() {
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor buildPartial() {
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor result = new com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor(this);
+ result.r_ = r_;
+ result.g_ = g_;
+ result.b_ = b_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor) {
+ return mergeFrom((com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor other) {
+ if (other == com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.getDefaultInstance()) return this;
+ if (other.getR() != 0) {
+ setR(other.getR());
+ }
+ if (other.getG() != 0) {
+ setG(other.getG());
+ }
+ if (other.getB() != 0) {
+ setB(other.getB());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private int r_ ;
+ /**
+ * <code>int32 R = 1;</code>
+ */
+ public int getR() {
+ return r_;
+ }
+ /**
+ * <code>int32 R = 1;</code>
+ */
+ public Builder setR(int value) {
+
+ r_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>int32 R = 1;</code>
+ */
+ public Builder clearR() {
+
+ r_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int g_ ;
+ /**
+ * <code>int32 G = 2;</code>
+ */
+ public int getG() {
+ return g_;
+ }
+ /**
+ * <code>int32 G = 2;</code>
+ */
+ public Builder setG(int value) {
+
+ g_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>int32 G = 2;</code>
+ */
+ public Builder clearG() {
+
+ g_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int b_ ;
+ /**
+ * <code>int32 B = 3;</code>
+ */
+ public int getB() {
+ return b_;
+ }
+ /**
+ * <code>int32 B = 3;</code>
+ */
+ public Builder setB(int value) {
+
+ b_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>int32 B = 3;</code>
+ */
+ public Builder clearB() {
+
+ b_ = 0;
+ onChanged();
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.TCC.DetectionColor)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.TCC.DetectionColor)
+ private static final com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor();
+ }
+
+ public static com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<DetectionColor>
+ PARSER = new com.google.protobuf.AbstractParser<DetectionColor>() {
+ public DetectionColor parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new DetectionColor(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<DetectionColor> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<DetectionColor> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_TCC_DetectionColor_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_TCC_DetectionColor_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\024DetectionColor.proto\022\rTango.PMR.TCC\"1\n" +
+ "\016DetectionColor\022\t\n\001R\030\001 \001(\005\022\t\n\001G\030\002 \001(\005\022\t\n" +
+ "\001B\030\003 \001(\005B\031\n\027com.twine.tango.pmr.tccb\006pro" +
+ "to3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_Tango_PMR_TCC_DetectionColor_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_TCC_DetectionColor_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_TCC_DetectionColor_descriptor,
+ new java.lang.String[] { "R", "G", "B", });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/tcc/DetectionInputOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/tcc/DetectionInputOuterClass.java
new file mode 100644
index 000000000..6e5ced99b
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/tcc/DetectionInputOuterClass.java
@@ -0,0 +1,1269 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: DetectionInput.proto
+
+package com.twine.tango.pmr.tcc;
+
+public final class DetectionInputOuterClass {
+ private DetectionInputOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface DetectionInputOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.TCC.DetectionInput)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>bytes Bitmap = 1;</code>
+ */
+ com.google.protobuf.ByteString getBitmap();
+
+ /**
+ * <code>int32 Columns = 2;</code>
+ */
+ int getColumns();
+
+ /**
+ * <code>int32 Rows = 3;</code>
+ */
+ int getRows();
+
+ /**
+ * <code>int32 TargetIndex = 4;</code>
+ */
+ int getTargetIndex();
+
+ /**
+ * <code>bool RequestDebugImage = 5;</code>
+ */
+ boolean getRequestDebugImage();
+
+ /**
+ * <code>bool RequestColorMatrix = 6;</code>
+ */
+ boolean getRequestColorMatrix();
+
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ java.util.List<com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark>
+ getBenchmarksList();
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark getBenchmarks(int index);
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ int getBenchmarksCount();
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ java.util.List<? extends com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmarkOrBuilder>
+ getBenchmarksOrBuilderList();
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmarkOrBuilder getBenchmarksOrBuilder(
+ int index);
+
+ /**
+ * <code>double number = 10;</code>
+ */
+ double getNumber();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.TCC.DetectionInput}
+ */
+ public static final class DetectionInput extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.TCC.DetectionInput)
+ DetectionInputOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use DetectionInput.newBuilder() to construct.
+ private DetectionInput(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private DetectionInput() {
+ bitmap_ = com.google.protobuf.ByteString.EMPTY;
+ columns_ = 0;
+ rows_ = 0;
+ targetIndex_ = 0;
+ requestDebugImage_ = false;
+ requestColorMatrix_ = false;
+ benchmarks_ = java.util.Collections.emptyList();
+ number_ = 0D;
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private DetectionInput(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+
+ bitmap_ = input.readBytes();
+ break;
+ }
+ case 16: {
+
+ columns_ = input.readInt32();
+ break;
+ }
+ case 24: {
+
+ rows_ = input.readInt32();
+ break;
+ }
+ case 32: {
+
+ targetIndex_ = input.readInt32();
+ break;
+ }
+ case 40: {
+
+ requestDebugImage_ = input.readBool();
+ break;
+ }
+ case 48: {
+
+ requestColorMatrix_ = input.readBool();
+ break;
+ }
+ case 58: {
+ if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
+ benchmarks_ = new java.util.ArrayList<com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark>();
+ mutable_bitField0_ |= 0x00000040;
+ }
+ benchmarks_.add(
+ input.readMessage(com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.parser(), extensionRegistry));
+ break;
+ }
+ case 81: {
+
+ number_ = input.readDouble();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
+ benchmarks_ = java.util.Collections.unmodifiableList(benchmarks_);
+ }
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.tcc.DetectionInputOuterClass.internal_static_Tango_PMR_TCC_DetectionInput_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.tcc.DetectionInputOuterClass.internal_static_Tango_PMR_TCC_DetectionInput_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput.class, com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput.Builder.class);
+ }
+
+ private int bitField0_;
+ public static final int BITMAP_FIELD_NUMBER = 1;
+ private com.google.protobuf.ByteString bitmap_;
+ /**
+ * <code>bytes Bitmap = 1;</code>
+ */
+ public com.google.protobuf.ByteString getBitmap() {
+ return bitmap_;
+ }
+
+ public static final int COLUMNS_FIELD_NUMBER = 2;
+ private int columns_;
+ /**
+ * <code>int32 Columns = 2;</code>
+ */
+ public int getColumns() {
+ return columns_;
+ }
+
+ public static final int ROWS_FIELD_NUMBER = 3;
+ private int rows_;
+ /**
+ * <code>int32 Rows = 3;</code>
+ */
+ public int getRows() {
+ return rows_;
+ }
+
+ public static final int TARGETINDEX_FIELD_NUMBER = 4;
+ private int targetIndex_;
+ /**
+ * <code>int32 TargetIndex = 4;</code>
+ */
+ public int getTargetIndex() {
+ return targetIndex_;
+ }
+
+ public static final int REQUESTDEBUGIMAGE_FIELD_NUMBER = 5;
+ private boolean requestDebugImage_;
+ /**
+ * <code>bool RequestDebugImage = 5;</code>
+ */
+ public boolean getRequestDebugImage() {
+ return requestDebugImage_;
+ }
+
+ public static final int REQUESTCOLORMATRIX_FIELD_NUMBER = 6;
+ private boolean requestColorMatrix_;
+ /**
+ * <code>bool RequestColorMatrix = 6;</code>
+ */
+ public boolean getRequestColorMatrix() {
+ return requestColorMatrix_;
+ }
+
+ public static final int BENCHMARKS_FIELD_NUMBER = 7;
+ private java.util.List<com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark> benchmarks_;
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public java.util.List<com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark> getBenchmarksList() {
+ return benchmarks_;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public java.util.List<? extends com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmarkOrBuilder>
+ getBenchmarksOrBuilderList() {
+ return benchmarks_;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public int getBenchmarksCount() {
+ return benchmarks_.size();
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark getBenchmarks(int index) {
+ return benchmarks_.get(index);
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmarkOrBuilder getBenchmarksOrBuilder(
+ int index) {
+ return benchmarks_.get(index);
+ }
+
+ public static final int NUMBER_FIELD_NUMBER = 10;
+ private double number_;
+ /**
+ * <code>double number = 10;</code>
+ */
+ public double getNumber() {
+ return number_;
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (!bitmap_.isEmpty()) {
+ output.writeBytes(1, bitmap_);
+ }
+ if (columns_ != 0) {
+ output.writeInt32(2, columns_);
+ }
+ if (rows_ != 0) {
+ output.writeInt32(3, rows_);
+ }
+ if (targetIndex_ != 0) {
+ output.writeInt32(4, targetIndex_);
+ }
+ if (requestDebugImage_ != false) {
+ output.writeBool(5, requestDebugImage_);
+ }
+ if (requestColorMatrix_ != false) {
+ output.writeBool(6, requestColorMatrix_);
+ }
+ for (int i = 0; i < benchmarks_.size(); i++) {
+ output.writeMessage(7, benchmarks_.get(i));
+ }
+ if (number_ != 0D) {
+ output.writeDouble(10, number_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!bitmap_.isEmpty()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(1, bitmap_);
+ }
+ if (columns_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(2, columns_);
+ }
+ if (rows_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(3, rows_);
+ }
+ if (targetIndex_ != 0) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeInt32Size(4, targetIndex_);
+ }
+ if (requestDebugImage_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(5, requestDebugImage_);
+ }
+ if (requestColorMatrix_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(6, requestColorMatrix_);
+ }
+ for (int i = 0; i < benchmarks_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(7, benchmarks_.get(i));
+ }
+ if (number_ != 0D) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeDoubleSize(10, number_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput other = (com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput) obj;
+
+ boolean result = true;
+ result = result && getBitmap()
+ .equals(other.getBitmap());
+ result = result && (getColumns()
+ == other.getColumns());
+ result = result && (getRows()
+ == other.getRows());
+ result = result && (getTargetIndex()
+ == other.getTargetIndex());
+ result = result && (getRequestDebugImage()
+ == other.getRequestDebugImage());
+ result = result && (getRequestColorMatrix()
+ == other.getRequestColorMatrix());
+ result = result && getBenchmarksList()
+ .equals(other.getBenchmarksList());
+ result = result && (
+ java.lang.Double.doubleToLongBits(getNumber())
+ == java.lang.Double.doubleToLongBits(
+ other.getNumber()));
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + BITMAP_FIELD_NUMBER;
+ hash = (53 * hash) + getBitmap().hashCode();
+ hash = (37 * hash) + COLUMNS_FIELD_NUMBER;
+ hash = (53 * hash) + getColumns();
+ hash = (37 * hash) + ROWS_FIELD_NUMBER;
+ hash = (53 * hash) + getRows();
+ hash = (37 * hash) + TARGETINDEX_FIELD_NUMBER;
+ hash = (53 * hash) + getTargetIndex();
+ hash = (37 * hash) + REQUESTDEBUGIMAGE_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getRequestDebugImage());
+ hash = (37 * hash) + REQUESTCOLORMATRIX_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getRequestColorMatrix());
+ if (getBenchmarksCount() > 0) {
+ hash = (37 * hash) + BENCHMARKS_FIELD_NUMBER;
+ hash = (53 * hash) + getBenchmarksList().hashCode();
+ }
+ hash = (37 * hash) + NUMBER_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getNumber()));
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.TCC.DetectionInput}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.TCC.DetectionInput)
+ com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInputOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.tcc.DetectionInputOuterClass.internal_static_Tango_PMR_TCC_DetectionInput_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.tcc.DetectionInputOuterClass.internal_static_Tango_PMR_TCC_DetectionInput_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput.class, com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ getBenchmarksFieldBuilder();
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ bitmap_ = com.google.protobuf.ByteString.EMPTY;
+
+ columns_ = 0;
+
+ rows_ = 0;
+
+ targetIndex_ = 0;
+
+ requestDebugImage_ = false;
+
+ requestColorMatrix_ = false;
+
+ if (benchmarksBuilder_ == null) {
+ benchmarks_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000040);
+ } else {
+ benchmarksBuilder_.clear();
+ }
+ number_ = 0D;
+
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.tcc.DetectionInputOuterClass.internal_static_Tango_PMR_TCC_DetectionInput_descriptor;
+ }
+
+ public com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput getDefaultInstanceForType() {
+ return com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput build() {
+ com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput buildPartial() {
+ com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput result = new com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ result.bitmap_ = bitmap_;
+ result.columns_ = columns_;
+ result.rows_ = rows_;
+ result.targetIndex_ = targetIndex_;
+ result.requestDebugImage_ = requestDebugImage_;
+ result.requestColorMatrix_ = requestColorMatrix_;
+ if (benchmarksBuilder_ == null) {
+ if (((bitField0_ & 0x00000040) == 0x00000040)) {
+ benchmarks_ = java.util.Collections.unmodifiableList(benchmarks_);
+ bitField0_ = (bitField0_ & ~0x00000040);
+ }
+ result.benchmarks_ = benchmarks_;
+ } else {
+ result.benchmarks_ = benchmarksBuilder_.build();
+ }
+ result.number_ = number_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput) {
+ return mergeFrom((com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput other) {
+ if (other == com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput.getDefaultInstance()) return this;
+ if (other.getBitmap() != com.google.protobuf.ByteString.EMPTY) {
+ setBitmap(other.getBitmap());
+ }
+ if (other.getColumns() != 0) {
+ setColumns(other.getColumns());
+ }
+ if (other.getRows() != 0) {
+ setRows(other.getRows());
+ }
+ if (other.getTargetIndex() != 0) {
+ setTargetIndex(other.getTargetIndex());
+ }
+ if (other.getRequestDebugImage() != false) {
+ setRequestDebugImage(other.getRequestDebugImage());
+ }
+ if (other.getRequestColorMatrix() != false) {
+ setRequestColorMatrix(other.getRequestColorMatrix());
+ }
+ if (benchmarksBuilder_ == null) {
+ if (!other.benchmarks_.isEmpty()) {
+ if (benchmarks_.isEmpty()) {
+ benchmarks_ = other.benchmarks_;
+ bitField0_ = (bitField0_ & ~0x00000040);
+ } else {
+ ensureBenchmarksIsMutable();
+ benchmarks_.addAll(other.benchmarks_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.benchmarks_.isEmpty()) {
+ if (benchmarksBuilder_.isEmpty()) {
+ benchmarksBuilder_.dispose();
+ benchmarksBuilder_ = null;
+ benchmarks_ = other.benchmarks_;
+ bitField0_ = (bitField0_ & ~0x00000040);
+ benchmarksBuilder_ =
+ com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+ getBenchmarksFieldBuilder() : null;
+ } else {
+ benchmarksBuilder_.addAllMessages(other.benchmarks_);
+ }
+ }
+ }
+ if (other.getNumber() != 0D) {
+ setNumber(other.getNumber());
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ private com.google.protobuf.ByteString bitmap_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>bytes Bitmap = 1;</code>
+ */
+ public com.google.protobuf.ByteString getBitmap() {
+ return bitmap_;
+ }
+ /**
+ * <code>bytes Bitmap = 1;</code>
+ */
+ public Builder setBitmap(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ bitmap_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>bytes Bitmap = 1;</code>
+ */
+ public Builder clearBitmap() {
+
+ bitmap_ = getDefaultInstance().getBitmap();
+ onChanged();
+ return this;
+ }
+
+ private int columns_ ;
+ /**
+ * <code>int32 Columns = 2;</code>
+ */
+ public int getColumns() {
+ return columns_;
+ }
+ /**
+ * <code>int32 Columns = 2;</code>
+ */
+ public Builder setColumns(int value) {
+
+ columns_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>int32 Columns = 2;</code>
+ */
+ public Builder clearColumns() {
+
+ columns_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int rows_ ;
+ /**
+ * <code>int32 Rows = 3;</code>
+ */
+ public int getRows() {
+ return rows_;
+ }
+ /**
+ * <code>int32 Rows = 3;</code>
+ */
+ public Builder setRows(int value) {
+
+ rows_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>int32 Rows = 3;</code>
+ */
+ public Builder clearRows() {
+
+ rows_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private int targetIndex_ ;
+ /**
+ * <code>int32 TargetIndex = 4;</code>
+ */
+ public int getTargetIndex() {
+ return targetIndex_;
+ }
+ /**
+ * <code>int32 TargetIndex = 4;</code>
+ */
+ public Builder setTargetIndex(int value) {
+
+ targetIndex_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>int32 TargetIndex = 4;</code>
+ */
+ public Builder clearTargetIndex() {
+
+ targetIndex_ = 0;
+ onChanged();
+ return this;
+ }
+
+ private boolean requestDebugImage_ ;
+ /**
+ * <code>bool RequestDebugImage = 5;</code>
+ */
+ public boolean getRequestDebugImage() {
+ return requestDebugImage_;
+ }
+ /**
+ * <code>bool RequestDebugImage = 5;</code>
+ */
+ public Builder setRequestDebugImage(boolean value) {
+
+ requestDebugImage_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>bool RequestDebugImage = 5;</code>
+ */
+ public Builder clearRequestDebugImage() {
+
+ requestDebugImage_ = false;
+ onChanged();
+ return this;
+ }
+
+ private boolean requestColorMatrix_ ;
+ /**
+ * <code>bool RequestColorMatrix = 6;</code>
+ */
+ public boolean getRequestColorMatrix() {
+ return requestColorMatrix_;
+ }
+ /**
+ * <code>bool RequestColorMatrix = 6;</code>
+ */
+ public Builder setRequestColorMatrix(boolean value) {
+
+ requestColorMatrix_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>bool RequestColorMatrix = 6;</code>
+ */
+ public Builder clearRequestColorMatrix() {
+
+ requestColorMatrix_ = false;
+ onChanged();
+ return this;
+ }
+
+ private java.util.List<com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark> benchmarks_ =
+ java.util.Collections.emptyList();
+ private void ensureBenchmarksIsMutable() {
+ if (!((bitField0_ & 0x00000040) == 0x00000040)) {
+ benchmarks_ = new java.util.ArrayList<com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark>(benchmarks_);
+ bitField0_ |= 0x00000040;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark, com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.Builder, com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmarkOrBuilder> benchmarksBuilder_;
+
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public java.util.List<com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark> getBenchmarksList() {
+ if (benchmarksBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(benchmarks_);
+ } else {
+ return benchmarksBuilder_.getMessageList();
+ }
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public int getBenchmarksCount() {
+ if (benchmarksBuilder_ == null) {
+ return benchmarks_.size();
+ } else {
+ return benchmarksBuilder_.getCount();
+ }
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark getBenchmarks(int index) {
+ if (benchmarksBuilder_ == null) {
+ return benchmarks_.get(index);
+ } else {
+ return benchmarksBuilder_.getMessage(index);
+ }
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public Builder setBenchmarks(
+ int index, com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark value) {
+ if (benchmarksBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureBenchmarksIsMutable();
+ benchmarks_.set(index, value);
+ onChanged();
+ } else {
+ benchmarksBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public Builder setBenchmarks(
+ int index, com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.Builder builderForValue) {
+ if (benchmarksBuilder_ == null) {
+ ensureBenchmarksIsMutable();
+ benchmarks_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ benchmarksBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public Builder addBenchmarks(com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark value) {
+ if (benchmarksBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureBenchmarksIsMutable();
+ benchmarks_.add(value);
+ onChanged();
+ } else {
+ benchmarksBuilder_.addMessage(value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public Builder addBenchmarks(
+ int index, com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark value) {
+ if (benchmarksBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureBenchmarksIsMutable();
+ benchmarks_.add(index, value);
+ onChanged();
+ } else {
+ benchmarksBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public Builder addBenchmarks(
+ com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.Builder builderForValue) {
+ if (benchmarksBuilder_ == null) {
+ ensureBenchmarksIsMutable();
+ benchmarks_.add(builderForValue.build());
+ onChanged();
+ } else {
+ benchmarksBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public Builder addBenchmarks(
+ int index, com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.Builder builderForValue) {
+ if (benchmarksBuilder_ == null) {
+ ensureBenchmarksIsMutable();
+ benchmarks_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ benchmarksBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public Builder addAllBenchmarks(
+ java.lang.Iterable<? extends com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark> values) {
+ if (benchmarksBuilder_ == null) {
+ ensureBenchmarksIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(
+ values, benchmarks_);
+ onChanged();
+ } else {
+ benchmarksBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public Builder clearBenchmarks() {
+ if (benchmarksBuilder_ == null) {
+ benchmarks_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000040);
+ onChanged();
+ } else {
+ benchmarksBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public Builder removeBenchmarks(int index) {
+ if (benchmarksBuilder_ == null) {
+ ensureBenchmarksIsMutable();
+ benchmarks_.remove(index);
+ onChanged();
+ } else {
+ benchmarksBuilder_.remove(index);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.Builder getBenchmarksBuilder(
+ int index) {
+ return getBenchmarksFieldBuilder().getBuilder(index);
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmarkOrBuilder getBenchmarksOrBuilder(
+ int index) {
+ if (benchmarksBuilder_ == null) {
+ return benchmarks_.get(index); } else {
+ return benchmarksBuilder_.getMessageOrBuilder(index);
+ }
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public java.util.List<? extends com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmarkOrBuilder>
+ getBenchmarksOrBuilderList() {
+ if (benchmarksBuilder_ != null) {
+ return benchmarksBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(benchmarks_);
+ }
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.Builder addBenchmarksBuilder() {
+ return getBenchmarksFieldBuilder().addBuilder(
+ com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.getDefaultInstance());
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.Builder addBenchmarksBuilder(
+ int index) {
+ return getBenchmarksFieldBuilder().addBuilder(
+ index, com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.getDefaultInstance());
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionBenchmark Benchmarks = 7;</code>
+ */
+ public java.util.List<com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.Builder>
+ getBenchmarksBuilderList() {
+ return getBenchmarksFieldBuilder().getBuilderList();
+ }
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark, com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.Builder, com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmarkOrBuilder>
+ getBenchmarksFieldBuilder() {
+ if (benchmarksBuilder_ == null) {
+ benchmarksBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+ com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark, com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmark.Builder, com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.DetectionBenchmarkOrBuilder>(
+ benchmarks_,
+ ((bitField0_ & 0x00000040) == 0x00000040),
+ getParentForChildren(),
+ isClean());
+ benchmarks_ = null;
+ }
+ return benchmarksBuilder_;
+ }
+
+ private double number_ ;
+ /**
+ * <code>double number = 10;</code>
+ */
+ public double getNumber() {
+ return number_;
+ }
+ /**
+ * <code>double number = 10;</code>
+ */
+ public Builder setNumber(double value) {
+
+ number_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>double number = 10;</code>
+ */
+ public Builder clearNumber() {
+
+ number_ = 0D;
+ onChanged();
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.TCC.DetectionInput)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.TCC.DetectionInput)
+ private static final com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput();
+ }
+
+ public static com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<DetectionInput>
+ PARSER = new com.google.protobuf.AbstractParser<DetectionInput>() {
+ public DetectionInput parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new DetectionInput(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<DetectionInput> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<DetectionInput> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.tcc.DetectionInputOuterClass.DetectionInput getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_TCC_DetectionInput_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_TCC_DetectionInput_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\024DetectionInput.proto\022\rTango.PMR.TCC\032\030D" +
+ "etectionBenchmark.proto\"\322\001\n\016DetectionInp" +
+ "ut\022\016\n\006Bitmap\030\001 \001(\014\022\017\n\007Columns\030\002 \001(\005\022\014\n\004R" +
+ "ows\030\003 \001(\005\022\023\n\013TargetIndex\030\004 \001(\005\022\031\n\021Reques" +
+ "tDebugImage\030\005 \001(\010\022\032\n\022RequestColorMatrix\030" +
+ "\006 \001(\010\0225\n\nBenchmarks\030\007 \003(\0132!.Tango.PMR.TC" +
+ "C.DetectionBenchmark\022\016\n\006number\030\n \001(\001B\031\n\027" +
+ "com.twine.tango.pmr.tccb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.getDescriptor(),
+ }, assigner);
+ internal_static_Tango_PMR_TCC_DetectionInput_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_TCC_DetectionInput_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_TCC_DetectionInput_descriptor,
+ new java.lang.String[] { "Bitmap", "Columns", "Rows", "TargetIndex", "RequestDebugImage", "RequestColorMatrix", "Benchmarks", "Number", });
+ com.twine.tango.pmr.tcc.DetectionBenchmarkOuterClass.getDescriptor();
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/tcc/DetectionOutputOuterClass.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/tcc/DetectionOutputOuterClass.java
new file mode 100644
index 000000000..f8c3757f5
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/tango/pmr/tcc/DetectionOutputOuterClass.java
@@ -0,0 +1,1542 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: DetectionOutput.proto
+
+package com.twine.tango.pmr.tcc;
+
+public final class DetectionOutputOuterClass {
+ private DetectionOutputOuterClass() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ public interface DetectionOutputOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:Tango.PMR.TCC.DetectionOutput)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * <code>double number = 1;</code>
+ */
+ double getNumber();
+
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor RawColor = 2;</code>
+ */
+ boolean hasRawColor();
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor RawColor = 2;</code>
+ */
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor getRawColor();
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor RawColor = 2;</code>
+ */
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder getRawColorOrBuilder();
+
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor ProcessedColor = 3;</code>
+ */
+ boolean hasProcessedColor();
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor ProcessedColor = 3;</code>
+ */
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor getProcessedColor();
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor ProcessedColor = 3;</code>
+ */
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder getProcessedColorOrBuilder();
+
+ /**
+ * <code>bytes DebugBitmap = 4;</code>
+ */
+ com.google.protobuf.ByteString getDebugBitmap();
+
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ java.util.List<com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor>
+ getColorMatrixList();
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor getColorMatrix(int index);
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ int getColorMatrixCount();
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ java.util.List<? extends com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder>
+ getColorMatrixOrBuilderList();
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder getColorMatrixOrBuilder(
+ int index);
+
+ /**
+ * <code>bool HasError = 6;</code>
+ */
+ boolean getHasError();
+
+ /**
+ * <code>string ErrorMessage = 7;</code>
+ */
+ java.lang.String getErrorMessage();
+ /**
+ * <code>string ErrorMessage = 7;</code>
+ */
+ com.google.protobuf.ByteString
+ getErrorMessageBytes();
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.TCC.DetectionOutput}
+ */
+ public static final class DetectionOutput extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:Tango.PMR.TCC.DetectionOutput)
+ DetectionOutputOrBuilder {
+ private static final long serialVersionUID = 0L;
+ // Use DetectionOutput.newBuilder() to construct.
+ private DetectionOutput(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
+ super(builder);
+ }
+ private DetectionOutput() {
+ number_ = 0D;
+ debugBitmap_ = com.google.protobuf.ByteString.EMPTY;
+ colorMatrix_ = java.util.Collections.emptyList();
+ hasError_ = false;
+ errorMessage_ = "";
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return this.unknownFields;
+ }
+ private DetectionOutput(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder();
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownFieldProto3(
+ input, unknownFields, extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 9: {
+
+ number_ = input.readDouble();
+ break;
+ }
+ case 18: {
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder subBuilder = null;
+ if (rawColor_ != null) {
+ subBuilder = rawColor_.toBuilder();
+ }
+ rawColor_ = input.readMessage(com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.parser(), extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(rawColor_);
+ rawColor_ = subBuilder.buildPartial();
+ }
+
+ break;
+ }
+ case 26: {
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder subBuilder = null;
+ if (processedColor_ != null) {
+ subBuilder = processedColor_.toBuilder();
+ }
+ processedColor_ = input.readMessage(com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.parser(), extensionRegistry);
+ if (subBuilder != null) {
+ subBuilder.mergeFrom(processedColor_);
+ processedColor_ = subBuilder.buildPartial();
+ }
+
+ break;
+ }
+ case 34: {
+
+ debugBitmap_ = input.readBytes();
+ break;
+ }
+ case 42: {
+ if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
+ colorMatrix_ = new java.util.ArrayList<com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor>();
+ mutable_bitField0_ |= 0x00000010;
+ }
+ colorMatrix_.add(
+ input.readMessage(com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.parser(), extensionRegistry));
+ break;
+ }
+ case 48: {
+
+ hasError_ = input.readBool();
+ break;
+ }
+ case 58: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ errorMessage_ = s;
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
+ colorMatrix_ = java.util.Collections.unmodifiableList(colorMatrix_);
+ }
+ this.unknownFields = unknownFields.build();
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.tcc.DetectionOutputOuterClass.internal_static_Tango_PMR_TCC_DetectionOutput_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.tcc.DetectionOutputOuterClass.internal_static_Tango_PMR_TCC_DetectionOutput_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput.class, com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput.Builder.class);
+ }
+
+ private int bitField0_;
+ public static final int NUMBER_FIELD_NUMBER = 1;
+ private double number_;
+ /**
+ * <code>double number = 1;</code>
+ */
+ public double getNumber() {
+ return number_;
+ }
+
+ public static final int RAWCOLOR_FIELD_NUMBER = 2;
+ private com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor rawColor_;
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor RawColor = 2;</code>
+ */
+ public boolean hasRawColor() {
+ return rawColor_ != null;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor RawColor = 2;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor getRawColor() {
+ return rawColor_ == null ? com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.getDefaultInstance() : rawColor_;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor RawColor = 2;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder getRawColorOrBuilder() {
+ return getRawColor();
+ }
+
+ public static final int PROCESSEDCOLOR_FIELD_NUMBER = 3;
+ private com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor processedColor_;
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor ProcessedColor = 3;</code>
+ */
+ public boolean hasProcessedColor() {
+ return processedColor_ != null;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor ProcessedColor = 3;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor getProcessedColor() {
+ return processedColor_ == null ? com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.getDefaultInstance() : processedColor_;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor ProcessedColor = 3;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder getProcessedColorOrBuilder() {
+ return getProcessedColor();
+ }
+
+ public static final int DEBUGBITMAP_FIELD_NUMBER = 4;
+ private com.google.protobuf.ByteString debugBitmap_;
+ /**
+ * <code>bytes DebugBitmap = 4;</code>
+ */
+ public com.google.protobuf.ByteString getDebugBitmap() {
+ return debugBitmap_;
+ }
+
+ public static final int COLORMATRIX_FIELD_NUMBER = 5;
+ private java.util.List<com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor> colorMatrix_;
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public java.util.List<com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor> getColorMatrixList() {
+ return colorMatrix_;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public java.util.List<? extends com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder>
+ getColorMatrixOrBuilderList() {
+ return colorMatrix_;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public int getColorMatrixCount() {
+ return colorMatrix_.size();
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor getColorMatrix(int index) {
+ return colorMatrix_.get(index);
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder getColorMatrixOrBuilder(
+ int index) {
+ return colorMatrix_.get(index);
+ }
+
+ public static final int HASERROR_FIELD_NUMBER = 6;
+ private boolean hasError_;
+ /**
+ * <code>bool HasError = 6;</code>
+ */
+ public boolean getHasError() {
+ return hasError_;
+ }
+
+ public static final int ERRORMESSAGE_FIELD_NUMBER = 7;
+ private volatile java.lang.Object errorMessage_;
+ /**
+ * <code>string ErrorMessage = 7;</code>
+ */
+ public java.lang.String getErrorMessage() {
+ java.lang.Object ref = errorMessage_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ errorMessage_ = s;
+ return s;
+ }
+ }
+ /**
+ * <code>string ErrorMessage = 7;</code>
+ */
+ public com.google.protobuf.ByteString
+ getErrorMessageBytes() {
+ java.lang.Object ref = errorMessage_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ errorMessage_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (number_ != 0D) {
+ output.writeDouble(1, number_);
+ }
+ if (rawColor_ != null) {
+ output.writeMessage(2, getRawColor());
+ }
+ if (processedColor_ != null) {
+ output.writeMessage(3, getProcessedColor());
+ }
+ if (!debugBitmap_.isEmpty()) {
+ output.writeBytes(4, debugBitmap_);
+ }
+ for (int i = 0; i < colorMatrix_.size(); i++) {
+ output.writeMessage(5, colorMatrix_.get(i));
+ }
+ if (hasError_ != false) {
+ output.writeBool(6, hasError_);
+ }
+ if (!getErrorMessageBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 7, errorMessage_);
+ }
+ unknownFields.writeTo(output);
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (number_ != 0D) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeDoubleSize(1, number_);
+ }
+ if (rawColor_ != null) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(2, getRawColor());
+ }
+ if (processedColor_ != null) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(3, getProcessedColor());
+ }
+ if (!debugBitmap_.isEmpty()) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(4, debugBitmap_);
+ }
+ for (int i = 0; i < colorMatrix_.size(); i++) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(5, colorMatrix_.get(i));
+ }
+ if (hasError_ != false) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(6, hasError_);
+ }
+ if (!getErrorMessageBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, errorMessage_);
+ }
+ size += unknownFields.getSerializedSize();
+ memoizedSize = size;
+ return size;
+ }
+
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput)) {
+ return super.equals(obj);
+ }
+ com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput other = (com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput) obj;
+
+ boolean result = true;
+ result = result && (
+ java.lang.Double.doubleToLongBits(getNumber())
+ == java.lang.Double.doubleToLongBits(
+ other.getNumber()));
+ result = result && (hasRawColor() == other.hasRawColor());
+ if (hasRawColor()) {
+ result = result && getRawColor()
+ .equals(other.getRawColor());
+ }
+ result = result && (hasProcessedColor() == other.hasProcessedColor());
+ if (hasProcessedColor()) {
+ result = result && getProcessedColor()
+ .equals(other.getProcessedColor());
+ }
+ result = result && getDebugBitmap()
+ .equals(other.getDebugBitmap());
+ result = result && getColorMatrixList()
+ .equals(other.getColorMatrixList());
+ result = result && (getHasError()
+ == other.getHasError());
+ result = result && getErrorMessage()
+ .equals(other.getErrorMessage());
+ result = result && unknownFields.equals(other.unknownFields);
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptor().hashCode();
+ hash = (37 * hash) + NUMBER_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
+ java.lang.Double.doubleToLongBits(getNumber()));
+ if (hasRawColor()) {
+ hash = (37 * hash) + RAWCOLOR_FIELD_NUMBER;
+ hash = (53 * hash) + getRawColor().hashCode();
+ }
+ if (hasProcessedColor()) {
+ hash = (37 * hash) + PROCESSEDCOLOR_FIELD_NUMBER;
+ hash = (53 * hash) + getProcessedColor().hashCode();
+ }
+ hash = (37 * hash) + DEBUGBITMAP_FIELD_NUMBER;
+ hash = (53 * hash) + getDebugBitmap().hashCode();
+ if (getColorMatrixCount() > 0) {
+ hash = (37 * hash) + COLORMATRIX_FIELD_NUMBER;
+ hash = (53 * hash) + getColorMatrixList().hashCode();
+ }
+ hash = (37 * hash) + HASERROR_FIELD_NUMBER;
+ hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
+ getHasError());
+ hash = (37 * hash) + ERRORMESSAGE_FIELD_NUMBER;
+ hash = (53 * hash) + getErrorMessage().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput parseFrom(
+ java.nio.ByteBuffer data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput parseFrom(
+ java.nio.ByteBuffer data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code Tango.PMR.TCC.DetectionOutput}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
+ // @@protoc_insertion_point(builder_implements:Tango.PMR.TCC.DetectionOutput)
+ com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutputOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return com.twine.tango.pmr.tcc.DetectionOutputOuterClass.internal_static_Tango_PMR_TCC_DetectionOutput_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return com.twine.tango.pmr.tcc.DetectionOutputOuterClass.internal_static_Tango_PMR_TCC_DetectionOutput_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput.class, com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput.Builder.class);
+ }
+
+ // Construct using com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ getColorMatrixFieldBuilder();
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ number_ = 0D;
+
+ if (rawColorBuilder_ == null) {
+ rawColor_ = null;
+ } else {
+ rawColor_ = null;
+ rawColorBuilder_ = null;
+ }
+ if (processedColorBuilder_ == null) {
+ processedColor_ = null;
+ } else {
+ processedColor_ = null;
+ processedColorBuilder_ = null;
+ }
+ debugBitmap_ = com.google.protobuf.ByteString.EMPTY;
+
+ if (colorMatrixBuilder_ == null) {
+ colorMatrix_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000010);
+ } else {
+ colorMatrixBuilder_.clear();
+ }
+ hasError_ = false;
+
+ errorMessage_ = "";
+
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return com.twine.tango.pmr.tcc.DetectionOutputOuterClass.internal_static_Tango_PMR_TCC_DetectionOutput_descriptor;
+ }
+
+ public com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput getDefaultInstanceForType() {
+ return com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput.getDefaultInstance();
+ }
+
+ public com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput build() {
+ com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput buildPartial() {
+ com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput result = new com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ result.number_ = number_;
+ if (rawColorBuilder_ == null) {
+ result.rawColor_ = rawColor_;
+ } else {
+ result.rawColor_ = rawColorBuilder_.build();
+ }
+ if (processedColorBuilder_ == null) {
+ result.processedColor_ = processedColor_;
+ } else {
+ result.processedColor_ = processedColorBuilder_.build();
+ }
+ result.debugBitmap_ = debugBitmap_;
+ if (colorMatrixBuilder_ == null) {
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ colorMatrix_ = java.util.Collections.unmodifiableList(colorMatrix_);
+ bitField0_ = (bitField0_ & ~0x00000010);
+ }
+ result.colorMatrix_ = colorMatrix_;
+ } else {
+ result.colorMatrix_ = colorMatrixBuilder_.build();
+ }
+ result.hasError_ = hasError_;
+ result.errorMessage_ = errorMessage_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, java.lang.Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ java.lang.Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput) {
+ return mergeFrom((com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput other) {
+ if (other == com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput.getDefaultInstance()) return this;
+ if (other.getNumber() != 0D) {
+ setNumber(other.getNumber());
+ }
+ if (other.hasRawColor()) {
+ mergeRawColor(other.getRawColor());
+ }
+ if (other.hasProcessedColor()) {
+ mergeProcessedColor(other.getProcessedColor());
+ }
+ if (other.getDebugBitmap() != com.google.protobuf.ByteString.EMPTY) {
+ setDebugBitmap(other.getDebugBitmap());
+ }
+ if (colorMatrixBuilder_ == null) {
+ if (!other.colorMatrix_.isEmpty()) {
+ if (colorMatrix_.isEmpty()) {
+ colorMatrix_ = other.colorMatrix_;
+ bitField0_ = (bitField0_ & ~0x00000010);
+ } else {
+ ensureColorMatrixIsMutable();
+ colorMatrix_.addAll(other.colorMatrix_);
+ }
+ onChanged();
+ }
+ } else {
+ if (!other.colorMatrix_.isEmpty()) {
+ if (colorMatrixBuilder_.isEmpty()) {
+ colorMatrixBuilder_.dispose();
+ colorMatrixBuilder_ = null;
+ colorMatrix_ = other.colorMatrix_;
+ bitField0_ = (bitField0_ & ~0x00000010);
+ colorMatrixBuilder_ =
+ com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
+ getColorMatrixFieldBuilder() : null;
+ } else {
+ colorMatrixBuilder_.addAllMessages(other.colorMatrix_);
+ }
+ }
+ }
+ if (other.getHasError() != false) {
+ setHasError(other.getHasError());
+ }
+ if (!other.getErrorMessage().isEmpty()) {
+ errorMessage_ = other.errorMessage_;
+ onChanged();
+ }
+ this.mergeUnknownFields(other.unknownFields);
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+ private int bitField0_;
+
+ private double number_ ;
+ /**
+ * <code>double number = 1;</code>
+ */
+ public double getNumber() {
+ return number_;
+ }
+ /**
+ * <code>double number = 1;</code>
+ */
+ public Builder setNumber(double value) {
+
+ number_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>double number = 1;</code>
+ */
+ public Builder clearNumber() {
+
+ number_ = 0D;
+ onChanged();
+ return this;
+ }
+
+ private com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor rawColor_ = null;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder> rawColorBuilder_;
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor RawColor = 2;</code>
+ */
+ public boolean hasRawColor() {
+ return rawColorBuilder_ != null || rawColor_ != null;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor RawColor = 2;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor getRawColor() {
+ if (rawColorBuilder_ == null) {
+ return rawColor_ == null ? com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.getDefaultInstance() : rawColor_;
+ } else {
+ return rawColorBuilder_.getMessage();
+ }
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor RawColor = 2;</code>
+ */
+ public Builder setRawColor(com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor value) {
+ if (rawColorBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ rawColor_ = value;
+ onChanged();
+ } else {
+ rawColorBuilder_.setMessage(value);
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor RawColor = 2;</code>
+ */
+ public Builder setRawColor(
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder builderForValue) {
+ if (rawColorBuilder_ == null) {
+ rawColor_ = builderForValue.build();
+ onChanged();
+ } else {
+ rawColorBuilder_.setMessage(builderForValue.build());
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor RawColor = 2;</code>
+ */
+ public Builder mergeRawColor(com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor value) {
+ if (rawColorBuilder_ == null) {
+ if (rawColor_ != null) {
+ rawColor_ =
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.newBuilder(rawColor_).mergeFrom(value).buildPartial();
+ } else {
+ rawColor_ = value;
+ }
+ onChanged();
+ } else {
+ rawColorBuilder_.mergeFrom(value);
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor RawColor = 2;</code>
+ */
+ public Builder clearRawColor() {
+ if (rawColorBuilder_ == null) {
+ rawColor_ = null;
+ onChanged();
+ } else {
+ rawColor_ = null;
+ rawColorBuilder_ = null;
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor RawColor = 2;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder getRawColorBuilder() {
+
+ onChanged();
+ return getRawColorFieldBuilder().getBuilder();
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor RawColor = 2;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder getRawColorOrBuilder() {
+ if (rawColorBuilder_ != null) {
+ return rawColorBuilder_.getMessageOrBuilder();
+ } else {
+ return rawColor_ == null ?
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.getDefaultInstance() : rawColor_;
+ }
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor RawColor = 2;</code>
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder>
+ getRawColorFieldBuilder() {
+ if (rawColorBuilder_ == null) {
+ rawColorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder>(
+ getRawColor(),
+ getParentForChildren(),
+ isClean());
+ rawColor_ = null;
+ }
+ return rawColorBuilder_;
+ }
+
+ private com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor processedColor_ = null;
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder> processedColorBuilder_;
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor ProcessedColor = 3;</code>
+ */
+ public boolean hasProcessedColor() {
+ return processedColorBuilder_ != null || processedColor_ != null;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor ProcessedColor = 3;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor getProcessedColor() {
+ if (processedColorBuilder_ == null) {
+ return processedColor_ == null ? com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.getDefaultInstance() : processedColor_;
+ } else {
+ return processedColorBuilder_.getMessage();
+ }
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor ProcessedColor = 3;</code>
+ */
+ public Builder setProcessedColor(com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor value) {
+ if (processedColorBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ processedColor_ = value;
+ onChanged();
+ } else {
+ processedColorBuilder_.setMessage(value);
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor ProcessedColor = 3;</code>
+ */
+ public Builder setProcessedColor(
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder builderForValue) {
+ if (processedColorBuilder_ == null) {
+ processedColor_ = builderForValue.build();
+ onChanged();
+ } else {
+ processedColorBuilder_.setMessage(builderForValue.build());
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor ProcessedColor = 3;</code>
+ */
+ public Builder mergeProcessedColor(com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor value) {
+ if (processedColorBuilder_ == null) {
+ if (processedColor_ != null) {
+ processedColor_ =
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.newBuilder(processedColor_).mergeFrom(value).buildPartial();
+ } else {
+ processedColor_ = value;
+ }
+ onChanged();
+ } else {
+ processedColorBuilder_.mergeFrom(value);
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor ProcessedColor = 3;</code>
+ */
+ public Builder clearProcessedColor() {
+ if (processedColorBuilder_ == null) {
+ processedColor_ = null;
+ onChanged();
+ } else {
+ processedColor_ = null;
+ processedColorBuilder_ = null;
+ }
+
+ return this;
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor ProcessedColor = 3;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder getProcessedColorBuilder() {
+
+ onChanged();
+ return getProcessedColorFieldBuilder().getBuilder();
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor ProcessedColor = 3;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder getProcessedColorOrBuilder() {
+ if (processedColorBuilder_ != null) {
+ return processedColorBuilder_.getMessageOrBuilder();
+ } else {
+ return processedColor_ == null ?
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.getDefaultInstance() : processedColor_;
+ }
+ }
+ /**
+ * <code>.Tango.PMR.TCC.DetectionColor ProcessedColor = 3;</code>
+ */
+ private com.google.protobuf.SingleFieldBuilderV3<
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder>
+ getProcessedColorFieldBuilder() {
+ if (processedColorBuilder_ == null) {
+ processedColorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder>(
+ getProcessedColor(),
+ getParentForChildren(),
+ isClean());
+ processedColor_ = null;
+ }
+ return processedColorBuilder_;
+ }
+
+ private com.google.protobuf.ByteString debugBitmap_ = com.google.protobuf.ByteString.EMPTY;
+ /**
+ * <code>bytes DebugBitmap = 4;</code>
+ */
+ public com.google.protobuf.ByteString getDebugBitmap() {
+ return debugBitmap_;
+ }
+ /**
+ * <code>bytes DebugBitmap = 4;</code>
+ */
+ public Builder setDebugBitmap(com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ debugBitmap_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>bytes DebugBitmap = 4;</code>
+ */
+ public Builder clearDebugBitmap() {
+
+ debugBitmap_ = getDefaultInstance().getDebugBitmap();
+ onChanged();
+ return this;
+ }
+
+ private java.util.List<com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor> colorMatrix_ =
+ java.util.Collections.emptyList();
+ private void ensureColorMatrixIsMutable() {
+ if (!((bitField0_ & 0x00000010) == 0x00000010)) {
+ colorMatrix_ = new java.util.ArrayList<com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor>(colorMatrix_);
+ bitField0_ |= 0x00000010;
+ }
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder> colorMatrixBuilder_;
+
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public java.util.List<com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor> getColorMatrixList() {
+ if (colorMatrixBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(colorMatrix_);
+ } else {
+ return colorMatrixBuilder_.getMessageList();
+ }
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public int getColorMatrixCount() {
+ if (colorMatrixBuilder_ == null) {
+ return colorMatrix_.size();
+ } else {
+ return colorMatrixBuilder_.getCount();
+ }
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor getColorMatrix(int index) {
+ if (colorMatrixBuilder_ == null) {
+ return colorMatrix_.get(index);
+ } else {
+ return colorMatrixBuilder_.getMessage(index);
+ }
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public Builder setColorMatrix(
+ int index, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor value) {
+ if (colorMatrixBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureColorMatrixIsMutable();
+ colorMatrix_.set(index, value);
+ onChanged();
+ } else {
+ colorMatrixBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public Builder setColorMatrix(
+ int index, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder builderForValue) {
+ if (colorMatrixBuilder_ == null) {
+ ensureColorMatrixIsMutable();
+ colorMatrix_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ colorMatrixBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public Builder addColorMatrix(com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor value) {
+ if (colorMatrixBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureColorMatrixIsMutable();
+ colorMatrix_.add(value);
+ onChanged();
+ } else {
+ colorMatrixBuilder_.addMessage(value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public Builder addColorMatrix(
+ int index, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor value) {
+ if (colorMatrixBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureColorMatrixIsMutable();
+ colorMatrix_.add(index, value);
+ onChanged();
+ } else {
+ colorMatrixBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public Builder addColorMatrix(
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder builderForValue) {
+ if (colorMatrixBuilder_ == null) {
+ ensureColorMatrixIsMutable();
+ colorMatrix_.add(builderForValue.build());
+ onChanged();
+ } else {
+ colorMatrixBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public Builder addColorMatrix(
+ int index, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder builderForValue) {
+ if (colorMatrixBuilder_ == null) {
+ ensureColorMatrixIsMutable();
+ colorMatrix_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ colorMatrixBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public Builder addAllColorMatrix(
+ java.lang.Iterable<? extends com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor> values) {
+ if (colorMatrixBuilder_ == null) {
+ ensureColorMatrixIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(
+ values, colorMatrix_);
+ onChanged();
+ } else {
+ colorMatrixBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public Builder clearColorMatrix() {
+ if (colorMatrixBuilder_ == null) {
+ colorMatrix_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000010);
+ onChanged();
+ } else {
+ colorMatrixBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public Builder removeColorMatrix(int index) {
+ if (colorMatrixBuilder_ == null) {
+ ensureColorMatrixIsMutable();
+ colorMatrix_.remove(index);
+ onChanged();
+ } else {
+ colorMatrixBuilder_.remove(index);
+ }
+ return this;
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder getColorMatrixBuilder(
+ int index) {
+ return getColorMatrixFieldBuilder().getBuilder(index);
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder getColorMatrixOrBuilder(
+ int index) {
+ if (colorMatrixBuilder_ == null) {
+ return colorMatrix_.get(index); } else {
+ return colorMatrixBuilder_.getMessageOrBuilder(index);
+ }
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public java.util.List<? extends com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder>
+ getColorMatrixOrBuilderList() {
+ if (colorMatrixBuilder_ != null) {
+ return colorMatrixBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(colorMatrix_);
+ }
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder addColorMatrixBuilder() {
+ return getColorMatrixFieldBuilder().addBuilder(
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.getDefaultInstance());
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder addColorMatrixBuilder(
+ int index) {
+ return getColorMatrixFieldBuilder().addBuilder(
+ index, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.getDefaultInstance());
+ }
+ /**
+ * <code>repeated .Tango.PMR.TCC.DetectionColor ColorMatrix = 5;</code>
+ */
+ public java.util.List<com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder>
+ getColorMatrixBuilderList() {
+ return getColorMatrixFieldBuilder().getBuilderList();
+ }
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder>
+ getColorMatrixFieldBuilder() {
+ if (colorMatrixBuilder_ == null) {
+ colorMatrixBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColor.Builder, com.twine.tango.pmr.tcc.DetectionColorOuterClass.DetectionColorOrBuilder>(
+ colorMatrix_,
+ ((bitField0_ & 0x00000010) == 0x00000010),
+ getParentForChildren(),
+ isClean());
+ colorMatrix_ = null;
+ }
+ return colorMatrixBuilder_;
+ }
+
+ private boolean hasError_ ;
+ /**
+ * <code>bool HasError = 6;</code>
+ */
+ public boolean getHasError() {
+ return hasError_;
+ }
+ /**
+ * <code>bool HasError = 6;</code>
+ */
+ public Builder setHasError(boolean value) {
+
+ hasError_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>bool HasError = 6;</code>
+ */
+ public Builder clearHasError() {
+
+ hasError_ = false;
+ onChanged();
+ return this;
+ }
+
+ private java.lang.Object errorMessage_ = "";
+ /**
+ * <code>string ErrorMessage = 7;</code>
+ */
+ public java.lang.String getErrorMessage() {
+ java.lang.Object ref = errorMessage_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ errorMessage_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * <code>string ErrorMessage = 7;</code>
+ */
+ public com.google.protobuf.ByteString
+ getErrorMessageBytes() {
+ java.lang.Object ref = errorMessage_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ errorMessage_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * <code>string ErrorMessage = 7;</code>
+ */
+ public Builder setErrorMessage(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ errorMessage_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string ErrorMessage = 7;</code>
+ */
+ public Builder clearErrorMessage() {
+
+ errorMessage_ = getDefaultInstance().getErrorMessage();
+ onChanged();
+ return this;
+ }
+ /**
+ * <code>string ErrorMessage = 7;</code>
+ */
+ public Builder setErrorMessageBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ errorMessage_ = value;
+ onChanged();
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFieldsProto3(unknownFields);
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:Tango.PMR.TCC.DetectionOutput)
+ }
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.TCC.DetectionOutput)
+ private static final com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput();
+ }
+
+ public static com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser<DetectionOutput>
+ PARSER = new com.google.protobuf.AbstractParser<DetectionOutput>() {
+ public DetectionOutput parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new DetectionOutput(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser<DetectionOutput> parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser<DetectionOutput> getParserForType() {
+ return PARSER;
+ }
+
+ public com.twine.tango.pmr.tcc.DetectionOutputOuterClass.DetectionOutput getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+ }
+
+ private static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_Tango_PMR_TCC_DetectionOutput_descriptor;
+ private static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_Tango_PMR_TCC_DetectionOutput_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\025DetectionOutput.proto\022\rTango.PMR.TCC\032\024" +
+ "DetectionColor.proto\"\372\001\n\017DetectionOutput" +
+ "\022\016\n\006number\030\001 \001(\001\022/\n\010RawColor\030\002 \001(\0132\035.Tan" +
+ "go.PMR.TCC.DetectionColor\0225\n\016ProcessedCo" +
+ "lor\030\003 \001(\0132\035.Tango.PMR.TCC.DetectionColor" +
+ "\022\023\n\013DebugBitmap\030\004 \001(\014\0222\n\013ColorMatrix\030\005 \003" +
+ "(\0132\035.Tango.PMR.TCC.DetectionColor\022\020\n\010Has" +
+ "Error\030\006 \001(\010\022\024\n\014ErrorMessage\030\007 \001(\tB\031\n\027com" +
+ ".twine.tango.pmr.tccb\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.getDescriptor(),
+ }, assigner);
+ internal_static_Tango_PMR_TCC_DetectionOutput_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_Tango_PMR_TCC_DetectionOutput_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_Tango_PMR_TCC_DetectionOutput_descriptor,
+ new java.lang.String[] { "Number", "RawColor", "ProcessedColor", "DebugBitmap", "ColorMatrix", "HasError", "ErrorMessage", });
+ com.twine.tango.pmr.tcc.DetectionColorOuterClass.getDescriptor();
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/anim/zoom_in.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/anim/zoom_in.xml
new file mode 100644
index 000000000..d6b3668d3
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/anim/zoom_in.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+ android:interpolator="@android:anim/decelerate_interpolator">
+ <scale android:fromXScale="2.0" android:toXScale="1.0"
+ android:fromYScale="2.0" android:toYScale="1.0"
+ android:pivotX="50%p" android:pivotY="50%p"
+ android:duration="@android:integer/config_mediumAnimTime" />
+</set> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/anim/zoom_out.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/anim/zoom_out.xml
new file mode 100644
index 000000000..02008bb2a
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/anim/zoom_out.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+ android:interpolator="@android:anim/decelerate_interpolator"
+ android:zAdjustment="top">
+ <scale android:fromXScale="1.0" android:toXScale=".5"
+ android:fromYScale="1.0" android:toYScale=".5"
+ android:pivotX="50%p" android:pivotY="50%p"
+ android:duration="@android:integer/config_mediumAnimTime" />
+ <alpha android:fromAlpha="1.0" android:toAlpha="0"
+ android:duration="@android:integer/config_mediumAnimTime"/>
+</set> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/about.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/about.png
new file mode 100644
index 000000000..69ff01eea
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/about.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/darkening.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/darkening.png
new file mode 100644
index 000000000..a18946b8e
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/darkening.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/delete_thin.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/delete_thin.png
new file mode 100644
index 000000000..c1a9b62a9
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/delete_thin.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/down.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/down.png
new file mode 100644
index 000000000..47438d35c
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/down.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/email.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/email.png
new file mode 100644
index 000000000..d30bd11a9
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/email.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/error.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/error.png
new file mode 100644
index 000000000..bc9aeb86b
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/error.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/got_it.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/got_it.png
new file mode 100644
index 000000000..11b9d4644
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/got_it.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/how_to.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/how_to.png
new file mode 100644
index 000000000..50aca55cb
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/how_to.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icon.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icon.png
new file mode 100644
index 000000000..5920654e4
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icon.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icon_twine_card.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icon_twine_card.png
new file mode 100644
index 000000000..188126db8
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icon_twine_card.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icons_arrow_up.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icons_arrow_up.png
new file mode 100644
index 000000000..0e55fd7af
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icons_arrow_up.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icons_close.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icons_close.png
new file mode 100644
index 000000000..89c3b1653
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icons_close.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icons_delete.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icons_delete.png
new file mode 100644
index 000000000..c04a02d4d
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icons_delete.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icons_rename.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icons_rename.png
new file mode 100644
index 000000000..203838382
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/icons_rename.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/info.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/info.png
new file mode 100644
index 000000000..79a64c487
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/info.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/logo.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/logo.png
new file mode 100644
index 000000000..d603442d6
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/logo.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/more_normal.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/more_normal.png
new file mode 100644
index 000000000..8f8c4e153
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/more_normal.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/more_selected.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/more_selected.png
new file mode 100644
index 000000000..28b678a74
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/more_selected.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/my_colors.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/my_colors.png
new file mode 100644
index 000000000..64433b097
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/my_colors.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/selected.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/selected.png
new file mode 100644
index 000000000..59b34c80f
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/selected.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/snapmatch.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/snapmatch.png
new file mode 100644
index 000000000..05656ffdc
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/snapmatch.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/success.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/success.png
new file mode 100644
index 000000000..fb413cb53
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/success.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twine_card.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twine_card.png
new file mode 100644
index 000000000..33849c970
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twine_card.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twine_card_icon.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twine_card_icon.png
new file mode 100644
index 000000000..ec9ae5576
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twine_card_icon.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twine_logo.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twine_logo.png
new file mode 100644
index 000000000..bad8273ba
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twine_logo.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twinesnap_normal.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twinesnap_normal.png
new file mode 100644
index 000000000..79705e9ca
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twinesnap_normal.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twinesnap_selected.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twinesnap_selected.png
new file mode 100644
index 000000000..3ca5bf9b7
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twinesnap_selected.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/about.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/about.png
new file mode 100644
index 000000000..65e278cd4
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/about.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/darkening.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/darkening.png
new file mode 100644
index 000000000..58cf40d6a
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/darkening.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/delete_thin.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/delete_thin.png
new file mode 100644
index 000000000..524997a78
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/delete_thin.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/down.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/down.png
new file mode 100644
index 000000000..833f12050
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/down.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/email.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/email.png
new file mode 100644
index 000000000..2220595bf
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/email.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/error.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/error.png
new file mode 100644
index 000000000..db3db4966
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/error.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/got_it.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/got_it.png
new file mode 100644
index 000000000..fbec6bf93
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/got_it.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/how_to.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/how_to.png
new file mode 100644
index 000000000..59ba0e181
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/how_to.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icon.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icon.png
new file mode 100644
index 000000000..f0889f9a3
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icon.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icon_twine_card.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icon_twine_card.png
new file mode 100644
index 000000000..bad44f686
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icon_twine_card.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icons_arrow_up.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icons_arrow_up.png
new file mode 100644
index 000000000..ce8da1355
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icons_arrow_up.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icons_close.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icons_close.png
new file mode 100644
index 000000000..4e9940432
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icons_close.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icons_delete.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icons_delete.png
new file mode 100644
index 000000000..e9a9a108e
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icons_delete.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icons_rename.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icons_rename.png
new file mode 100644
index 000000000..6c7dc083a
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/icons_rename.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/info.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/info.png
new file mode 100644
index 000000000..a9bec6997
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/info.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/logo.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/logo.png
new file mode 100644
index 000000000..d9dc2cf15
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/logo.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/more_normal.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/more_normal.png
new file mode 100644
index 000000000..6c8ce0b9a
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/more_normal.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/more_selected.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/more_selected.png
new file mode 100644
index 000000000..179384dd0
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/more_selected.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/my_colors.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/my_colors.png
new file mode 100644
index 000000000..c38fbefc1
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/my_colors.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/selected.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/selected.png
new file mode 100644
index 000000000..0a5041bb9
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/selected.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/snapmatch.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/snapmatch.png
new file mode 100644
index 000000000..bbd2be018
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/snapmatch.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/success.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/success.png
new file mode 100644
index 000000000..2677f90fc
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/success.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twine_card.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twine_card.png
new file mode 100644
index 000000000..1b77e264e
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twine_card.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twine_card_icon.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twine_card_icon.png
new file mode 100644
index 000000000..e7ff93a39
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twine_card_icon.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twine_logo.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twine_logo.png
new file mode 100644
index 000000000..0c56ba31b
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twine_logo.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twinesnap_normal.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twinesnap_normal.png
new file mode 100644
index 000000000..3999dfb84
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twinesnap_normal.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twinesnap_selected.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twinesnap_selected.png
new file mode 100644
index 000000000..6bd9f3638
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twinesnap_selected.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/about.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/about.png
new file mode 100644
index 000000000..d5701a483
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/about.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/darkening.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/darkening.png
new file mode 100644
index 000000000..f50441f22
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/darkening.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/delete_thin.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/delete_thin.png
new file mode 100644
index 000000000..b6b951c0a
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/delete_thin.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/down.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/down.png
new file mode 100644
index 000000000..b1e67433d
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/down.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/email.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/email.png
new file mode 100644
index 000000000..341d122a6
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/email.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/error.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/error.png
new file mode 100644
index 000000000..41fa3df55
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/error.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/got_it.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/got_it.png
new file mode 100644
index 000000000..46e9288d6
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/got_it.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/how_to.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/how_to.png
new file mode 100644
index 000000000..fbeb31818
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/how_to.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icon.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icon.png
new file mode 100644
index 000000000..40e46cd1f
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icon.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icon_twine_card.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icon_twine_card.png
new file mode 100644
index 000000000..48e6595fa
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icon_twine_card.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icons_arrow_up.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icons_arrow_up.png
new file mode 100644
index 000000000..dc4d23f98
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icons_arrow_up.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icons_close.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icons_close.png
new file mode 100644
index 000000000..f4e9e1c50
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icons_close.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icons_delete.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icons_delete.png
new file mode 100644
index 000000000..55753d24a
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icons_delete.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icons_rename.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icons_rename.png
new file mode 100644
index 000000000..070a2f6e7
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/icons_rename.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/info.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/info.png
new file mode 100644
index 000000000..3e33de5a6
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/info.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/logo.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/logo.png
new file mode 100644
index 000000000..f6b3bf9be
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/logo.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/more_normal.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/more_normal.png
new file mode 100644
index 000000000..a540c41be
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/more_normal.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/more_selected.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/more_selected.png
new file mode 100644
index 000000000..60494cce8
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/more_selected.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/my_colors.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/my_colors.png
new file mode 100644
index 000000000..2eae175fd
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/my_colors.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/selected.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/selected.png
new file mode 100644
index 000000000..e1aa19889
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/selected.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/snapmatch.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/snapmatch.png
new file mode 100644
index 000000000..994d77ffe
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/snapmatch.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/success.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/success.png
new file mode 100644
index 000000000..50819ef94
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/success.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twine_card.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twine_card.png
new file mode 100644
index 000000000..4eb5dc787
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twine_card.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twine_card_icon.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twine_card_icon.png
new file mode 100644
index 000000000..ff3f1c99c
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twine_card_icon.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twine_logo.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twine_logo.png
new file mode 100644
index 000000000..9009dd34a
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twine_logo.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twinesnap_normal.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twinesnap_normal.png
new file mode 100644
index 000000000..bf6509ea2
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twinesnap_normal.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twinesnap_selected.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twinesnap_selected.png
new file mode 100644
index 000000000..f71ff6ea5
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twinesnap_selected.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/about.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/about.png
new file mode 100644
index 000000000..06fedcd88
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/about.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/darkening.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/darkening.png
new file mode 100644
index 000000000..ff47c2bd1
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/darkening.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/delete_thin.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/delete_thin.png
new file mode 100644
index 000000000..f1e190f1c
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/delete_thin.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/down.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/down.png
new file mode 100644
index 000000000..a9950dd2f
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/down.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/email.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/email.png
new file mode 100644
index 000000000..390972794
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/email.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/error.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/error.png
new file mode 100644
index 000000000..019edf5c7
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/error.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/got_it.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/got_it.png
new file mode 100644
index 000000000..f3b8ea00f
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/got_it.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/how_to.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/how_to.png
new file mode 100644
index 000000000..bae6374b6
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/how_to.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icon.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icon.png
new file mode 100644
index 000000000..968ebf639
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icon.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icon_twine_card.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icon_twine_card.png
new file mode 100644
index 000000000..e399b466b
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icon_twine_card.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icons_arrow_up.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icons_arrow_up.png
new file mode 100644
index 000000000..610a339b8
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icons_arrow_up.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icons_close.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icons_close.png
new file mode 100644
index 000000000..91ba9167d
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icons_close.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icons_delete.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icons_delete.png
new file mode 100644
index 000000000..8e54c739c
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icons_delete.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icons_rename.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icons_rename.png
new file mode 100644
index 000000000..eadb2e698
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/icons_rename.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/info.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/info.png
new file mode 100644
index 000000000..3727e7129
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/info.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/logo.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/logo.png
new file mode 100644
index 000000000..fe384b6dd
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/logo.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/more_normal.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/more_normal.png
new file mode 100644
index 000000000..edbed5b5e
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/more_normal.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/more_selected.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/more_selected.png
new file mode 100644
index 000000000..263622f94
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/more_selected.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/my_colors.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/my_colors.png
new file mode 100644
index 000000000..1570ddb97
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/my_colors.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/selected.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/selected.png
new file mode 100644
index 000000000..6c4d944f2
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/selected.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/snapmatch.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/snapmatch.png
new file mode 100644
index 000000000..198fb9f6f
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/snapmatch.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/success.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/success.png
new file mode 100644
index 000000000..4b888bef2
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/success.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twine_card.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twine_card.png
new file mode 100644
index 000000000..d095059bb
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twine_card.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twine_card_icon.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twine_card_icon.png
new file mode 100644
index 000000000..e8c54a75f
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twine_card_icon.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twine_logo.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twine_logo.png
new file mode 100644
index 000000000..ce0f15c34
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twine_logo.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twinesnap_normal.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twinesnap_normal.png
new file mode 100644
index 000000000..6b098152f
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twinesnap_normal.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twinesnap_selected.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twinesnap_selected.png
new file mode 100644
index 000000000..94e490595
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twinesnap_selected.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/about.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/about.png
new file mode 100644
index 000000000..85234de5d
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/about.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/darkening.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/darkening.png
new file mode 100644
index 000000000..d55bc070d
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/darkening.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/delete_thin.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/delete_thin.png
new file mode 100644
index 000000000..33b633fcc
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/delete_thin.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/down.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/down.png
new file mode 100644
index 000000000..357f74139
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/down.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/email.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/email.png
new file mode 100644
index 000000000..29a9ed75a
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/email.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/error.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/error.png
new file mode 100644
index 000000000..f386b553d
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/error.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/got_it.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/got_it.png
new file mode 100644
index 000000000..a30453a41
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/got_it.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/how_to.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/how_to.png
new file mode 100644
index 000000000..0569f95f7
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/how_to.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icon.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icon.png
new file mode 100644
index 000000000..25650a2ff
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icon.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icon_twine_card.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icon_twine_card.png
new file mode 100644
index 000000000..589cf908d
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icon_twine_card.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icons_arrow_up.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icons_arrow_up.png
new file mode 100644
index 000000000..4beb10f63
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icons_arrow_up.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icons_close.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icons_close.png
new file mode 100644
index 000000000..f37a9bbbc
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icons_close.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icons_delete.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icons_delete.png
new file mode 100644
index 000000000..ccc594f43
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icons_delete.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icons_rename.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icons_rename.png
new file mode 100644
index 000000000..640161cce
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/icons_rename.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/info.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/info.png
new file mode 100644
index 000000000..07af24775
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/info.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/logo.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/logo.png
new file mode 100644
index 000000000..b173a3c86
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/logo.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/more_normal.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/more_normal.png
new file mode 100644
index 000000000..1f009161c
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/more_normal.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/more_selected.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/more_selected.png
new file mode 100644
index 000000000..80b2611cf
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/more_selected.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/my_colors.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/my_colors.png
new file mode 100644
index 000000000..b816454ed
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/my_colors.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/selected.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/selected.png
new file mode 100644
index 000000000..705b88dfe
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/selected.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/snapmatch.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/snapmatch.png
new file mode 100644
index 000000000..7bf802396
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/snapmatch.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/success.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/success.png
new file mode 100644
index 000000000..368d10b78
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/success.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twine_card.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twine_card.png
new file mode 100644
index 000000000..857f83930
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twine_card.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twine_card_icon.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twine_card_icon.png
new file mode 100644
index 000000000..e2b2bf09f
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twine_card_icon.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twine_logo.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twine_logo.png
new file mode 100644
index 000000000..d9ff791bc
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twine_logo.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twinesnap_normal.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twinesnap_normal.png
new file mode 100644
index 000000000..f48411cb9
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twinesnap_normal.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twinesnap_selected.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twinesnap_selected.png
new file mode 100644
index 000000000..3741bdb4a
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twinesnap_selected.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/accent_gradient.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/accent_gradient.xml
new file mode 100644
index 000000000..3af99e137
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/accent_gradient.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <gradient
+ android:type="linear"
+ android:angle="0"
+ android:startColor="#26d440"
+ android:endColor="#009fe3" />
+</shape> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/background_gradient.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/background_gradient.xml
new file mode 100644
index 000000000..9a95bd708
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/background_gradient.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <gradient
+ android:type="linear"
+ android:angle="270"
+ android:startColor="@color/colorPrimaryBackground"
+ android:endColor="#07101e" />
+</shape> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/border.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/border.xml
new file mode 100644
index 000000000..2f0177da9
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/border.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle" >
+
+ <corners android:radius="5dp" />
+ <stroke android:width="2px" android:color="#E2E2E2"/>
+
+</shape> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/border_gradient.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/border_gradient.xml
new file mode 100644
index 000000000..90f7fb630
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/border_gradient.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle" >
+
+ <corners android:radius="10dp" />
+ <stroke android:width="8px" android:color="@color/colorGradientAccent1"/>
+
+</shape> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/border_primary_background.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/border_primary_background.xml
new file mode 100644
index 000000000..a69dfcd5e
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/border_primary_background.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item>
+ <layer-list>
+ <item android:bottom="5dp">
+ <shape android:shape="rectangle">
+ <stroke android:color="#979797" android:width="1dp" />
+ <solid android:color="@color/colorPrimaryBackground"/>
+ <corners android:radius="5dp" />
+ </shape>
+ </item>
+ </layer-list>
+ </item>
+</selector> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/border_shadow.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/border_shadow.xml
new file mode 100644
index 000000000..cf3d424af
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/border_shadow.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item>
+ <layer-list>
+ <item>
+ <shape android:shape="rectangle">
+ <solid android:color="#54000000"/>
+ <corners android:radius="2dp" />
+ </shape>
+ </item>
+ <item android:bottom="5dp">
+ <shape android:shape="rectangle">
+ <solid android:color="@color/colorPrimaryBackground"/>
+ <corners android:radius="2dp" />
+ </shape>
+ </item>
+ </layer-list>
+ </item>
+</selector> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/button_empty_border.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/button_empty_border.xml
new file mode 100644
index 000000000..39d77fb44
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/button_empty_border.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle" >
+
+ <corners android:radius="30dp" />
+ <stroke android:width="2px" android:color="#ffffff"/>
+
+</shape> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/button_gradient_fill.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/button_gradient_fill.xml
new file mode 100644
index 000000000..479e0a5ab
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/button_gradient_fill.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle" >
+
+ <gradient
+ android:startColor="#26d440"
+ android:endColor="#009fe3"
+ android:angle="0"/>
+
+ <corners android:radius="30dp" />
+
+</shape> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/button_gradient_fill_ripple.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/button_gradient_fill_ripple.xml
new file mode 100644
index 000000000..7cafa1d09
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/button_gradient_fill_ripple.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+ android:color="@color/colorBlueMask">
+ <item android:drawable="@drawable/button_gradient_fill"/>
+</ripple> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/button_transparent_fill_ripple.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/button_transparent_fill_ripple.xml
new file mode 100644
index 000000000..26f3f959c
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/button_transparent_fill_ripple.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+ android:color="?android:colorControlHighlight"
+ android:exitFadeDuration="@android:integer/config_shortAnimTime">
+ <!-- Use this to define the shape of the ripple effect (rectangle, oval, ring or line). The color specified here isn't used anyway -->
+ <item android:id="@android:id/mask">
+ <shape android:shape="rectangle">
+ <corners android:radius="3dp"/>
+ <!-- This color is needed to be set - doesn't affect anything -->
+ <solid android:color="@android:color/white"/>
+ </shape>
+ </item>
+ <!-- This is the background for your button -->
+ <item>
+ <!-- Use the shape you want here -->
+ <shape android:shape="rectangle">
+ <!-- Use the solid tag to define the background color you want -->
+ <solid android:color="@android:color/transparent"/>
+ </shape>
+ </item>
+</ripple> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/dialog_background.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/dialog_background.xml
new file mode 100644
index 000000000..d05e8d3d2
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/dialog_background.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle" >
+
+ <solid android:color="@color/colorPrimaryBackground"/>
+ <corners android:radius="10dp" />
+
+</shape> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/error.png b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/error.png
new file mode 100644
index 000000000..9ca010730
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/error.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/gradient_progress.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/gradient_progress.xml
new file mode 100644
index 000000000..b942480f0
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/gradient_progress.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <item android:id="@android:id/background">
+ <shape>
+ <corners android:radius="5dp"/>
+ <solid android:color="#fff"/>
+ </shape>
+ </item>
+
+ <item android:id="@android:id/progress">
+ <clip>
+ <shape>
+ <corners android:radius="5dp"/>
+ <gradient
+ android:endColor="@color/colorGradientAccent1"
+ android:startColor="@color/colorGradientAccent2"
+ />
+ </shape>
+ </clip>
+ </item>
+
+</layer-list> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/list_view_selectable.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/list_view_selectable.xml
new file mode 100644
index 000000000..8895ad0ae
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/list_view_selectable.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:drawable="@color/colorAccent" android:state_activated="true" />
+</selector> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/progress_ring_background.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/progress_ring_background.xml
new file mode 100644
index 000000000..608296a00
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/progress_ring_background.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rotate xmlns:android="http://schemas.android.com/apk/res/android"
+ android:pivotX="50%"
+ android:pivotY="50%"
+ android:fromDegrees="0"
+ android:toDegrees="360">
+
+ <shape
+ android:shape="ring"
+ android:innerRadiusRatio="3"
+ android:thicknessRatio="20"
+ android:useLevel="false">
+
+ <size
+ android:width="76dip"
+ android:height="76dip" />
+
+ <gradient
+ android:type="sweep"
+ android:useLevel="false"
+ android:startColor="#161616"
+ android:centerColor="@color/colorGradientAccent1"
+ android:endColor="@color/colorGradientAccent2"
+ android:angle="0"/>
+
+ </shape>
+
+</rotate> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/welcome_dialog_border.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/welcome_dialog_border.xml
new file mode 100644
index 000000000..524641801
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/welcome_dialog_border.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle" >
+
+ <solid android:color="@color/colorWhiteMask"/>
+ <stroke android:color="#4C5070" android:width="1dp" />
+ <corners android:radius="5dp" />
+
+</shape> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_black.otf b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_black.otf
new file mode 100644
index 000000000..0341d05db
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_black.otf
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_bold.otf b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_bold.otf
new file mode 100644
index 000000000..2b9144e5c
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_bold.otf
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_light.otf b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_light.otf
new file mode 100644
index 000000000..27af39094
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_light.otf
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_medium.otf b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_medium.otf
new file mode 100644
index 000000000..04b2a8853
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_medium.otf
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_regular.otf b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_regular.otf
new file mode 100644
index 000000000..2703ba3f3
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_regular.otf
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_thin.otf b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_thin.otf
new file mode 100644
index 000000000..666c69931
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_thin.otf
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/activity_loading.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/activity_loading.xml
new file mode 100644
index 000000000..4e6183a4a
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/activity_loading.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:bind="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <data>
+
+ <variable
+ name="vm"
+ type="com.twine.colorcapture.views.loading.LoadingActivityVM" />
+ </data>
+
+ <FrameLayout
+ android:background="@drawable/background_gradient"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layoutDirection="ltr"
+ android:paddingLeft="40dp"
+ android:paddingRight="40dp"
+ tools:context="com.twine.colorcapture.views.loading.LoadingActivity">
+
+
+ <!--<TextView-->
+ <!--android:id="@+id/textView"-->
+ <!--android:layout_width="wrap_content"-->
+ <!--android:layout_height="wrap_content"-->
+ <!--android:layout_centerHorizontal="true"-->
+ <!--android:layout_centerVertical="true"-->
+ <!--android:text="Loading..."-->
+ <!--android:textSize="21sp" />-->
+
+ <!--<ProgressBar-->
+ <!--android:id="@+id/progressBar"-->
+ <!--style="@android:style/Widget.ProgressBar.Horizontal"-->
+ <!--android:layout_width="301dp"-->
+ <!--android:layout_height="22dp"-->
+ <!--android:layout_below="@+id/textView"-->
+ <!--android:layout_marginTop="15dp"-->
+ <!--android:layout_centerHorizontal="true"-->
+ <!--android:max="2000"-->
+ <!--android:progress="@{vm.loadingProgress}"-->
+ <!--android:progressDrawable="@drawable/gradient_progressbar" />-->
+ <ImageView
+ android:id="@+id/imageView2"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:layout_centerHorizontal="true"
+ android:src="@drawable/twine_logo" />
+
+ <ProgressBar
+ android:id="@+id/progress"
+ android:layout_marginTop="30dp"
+ android:layout_below="@id/imageView2"
+ android:layout_centerInParent="true"
+ android:layout_width="80dp"
+ android:layout_height="80dp"
+ android:indeterminate="true"
+ android:indeterminateDuration="500"
+ android:indeterminateDrawable="@drawable/progress_ring_background"/>
+ </RelativeLayout>
+
+ </FrameLayout>
+</layout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/activity_main.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/activity_main.xml
index f895a273c..7c55188cc 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/activity_main.xml
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/activity_main.xml
@@ -1,9 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:bind="http://schemas.android.com/apk/res-auto">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:bind="http://schemas.android.com/apk/res-auto">
<data>
- <import type="android.view.View"/>
+
+ <import type="android.view.View" />
+ <import type="com.twine.colorcapture.navigation.TabState"/>
+
<variable
name="vm"
type="com.twine.colorcapture.views.main.MainActivityVM" />
@@ -18,19 +22,69 @@
<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:background="@color/colorPrimaryBackground"
tools:context="com.twine.colorcapture.views.main.MainActivity">
- <FrameLayout
- android:id="@+id/fragment_container"
+ <LinearLayout
+ android:id="@+id/header"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="80dp"
+ android:background="@color/colorPrimaryBackground"
+ android:gravity="center_vertical"
+ android:elevation="20dp"
+ android:orientation="horizontal"
+ android:visibility="visible">
+
+ <ImageButton
+ android:id="@+id/btnMenu"
+ android:layout_width="68dp"
+ android:layout_height="65dp"
+ android:layout_alignParentStart="true"
+ android:layout_centerVertical="true"
+ android:layout_marginLeft="20dp"
+ android:background="@drawable/button_transparent_fill_ripple"
+ android:src="@{vm.tabStateManager.state == TabState.More ? @drawable/more_selected : @drawable/more_normal}" />
+
+ <Space
+ android:layout_width="0dp"
+ android:layout_height="1dp"
+ android:layout_weight="1" />
- </FrameLayout>
+ <ImageButton
+ android:id="@+id/imageButton2"
+ android:layout_width="72dp"
+ android:layout_height="65dp"
+ android:layout_alignParentStart="true"
+ android:layout_centerVertical="true"
+ android:background="@drawable/button_transparent_fill_ripple"
+ android:src="@{vm.tabStateManager.state == TabState.Capture ? @drawable/twinesnap_selected : @drawable/twinesnap_normal}"
+ bind:command="@{vm.captureCommand}"/>
+ <Space
+ android:layout_width="0dp"
+ android:layout_height="1dp"
+ android:layout_weight="1" />
+
+ <ImageButton
+ android:id="@+id/imageButton3"
+ android:layout_width="68dp"
+ android:layout_height="65dp"
+ android:layout_marginRight="20dp"
+ android:layout_alignParentStart="true"
+ android:layout_centerVertical="true"
+ android:background="@drawable/button_transparent_fill_ripple"
+ android:src="@{vm.tabStateManager.state == TabState.MyColors ? @drawable/selected : @drawable/my_colors}"
+ bind:command="@{vm.myColorsCommand}"/>
+ </LinearLayout>
+
+ <FrameLayout
+ android:id="@+id/fragment_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@+id/header" />
</RelativeLayout>
- <!--Side Menu-->
- <!--<include layout="@layout/side_menu" bind:vm="@{vm}" />-->
+ <include layout="@layout/side_menu" bind:vm="@{vm}" />
</android.support.v4.widget.DrawerLayout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/activity_send_to_email.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/activity_send_to_email.xml
new file mode 100644
index 000000000..2e97be0b5
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/activity_send_to_email.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:bind="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <data>
+
+ <variable
+ name="vm"
+ type="com.twine.colorcapture.views.sendtoemail.SendToEmailActivityVM" />
+ </data>
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layoutDirection="ltr"
+ tools:context="com.twine.colorcapture.views.sendtoemail.SendToEmailActivity">
+
+ <FrameLayout
+ android:id="@+id/frameTitle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="20dp"
+ android:background="@color/colorPrimaryBackground">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/txtTitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="left|center"
+ android:fontFamily="@font/flexo_bold"
+ android:letterSpacing="0.07"
+ android:text="Share your color"
+ android:textSize="17.3sp" />
+
+ <android.support.v7.widget.AppCompatButton
+ android:id="@+id/btnDone"
+ android:background="@drawable/button_transparent_fill_ripple"
+ android:layout_gravity="right"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="17.3sp"
+ android:letterSpacing="0.07"
+ android:textStyle="bold"
+ android:text="Send"
+ android:layout_marginRight="-10dp"
+ android:fontFamily="@font/flexo_bold"
+ android:textAllCaps="false"
+ bind:command="@{vm.sendCommand}"/>
+
+ </FrameLayout>
+
+ <LinearLayout
+ android:layout_below="@id/frameTitle"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:background="@color/white">
+
+
+
+ </LinearLayout>
+
+ </RelativeLayout>
+</layout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/circle_action_button.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/circle_action_button.xml
new file mode 100644
index 000000000..0f34acc8f
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/circle_action_button.xml
@@ -0,0 +1,81 @@
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:bind="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <com.github.florent37.shapeofview.shapes.RoundRectView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ bind:shape_roundRect_borderColor="#ffffff"
+ bind:shape_roundRect_borderWidth="1dp"
+ bind:shape_roundRect_bottomLeftRadius="40dp"
+ bind:shape_roundRect_bottomRightRadius="40dp"
+ bind:shape_roundRect_topLeftRadius="40dp"
+ bind:shape_roundRect_topRightRadius="40dp">
+
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:padding="5dp">
+
+ <FrameLayout
+ android:id="@+id/frameAfterPadding"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/circleActionButtonTextView"
+ android:layout_gravity="center"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:textSize="17.3sp"
+ android:letterSpacing="0.07"
+ android:fontFamily="@font/flexo_medium"
+ android:text="Email"/>
+
+ <com.github.florent37.shapeofview.shapes.RoundRectView
+ android:id="@+id/actionButtonCircle"
+ android:layout_width="39dp"
+ android:layout_height="39dp"
+ bind:shape_roundRect_borderColor="#ffffff"
+ bind:shape_roundRect_borderWidth="0dp"
+ bind:shape_roundRect_bottomLeftRadius="40dp"
+ bind:shape_roundRect_bottomRightRadius="40dp"
+ bind:shape_roundRect_topLeftRadius="40dp"
+ bind:shape_roundRect_topRightRadius="40dp">
+
+
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/button_gradient_fill">
+
+
+ <ImageView
+ android:id="@+id/circleActionButtonImageView"
+ android:layout_width="33dp"
+ android:layout_height="28dp"
+ android:layout_gravity="center"
+ android:layout_marginTop="2dp"
+ android:src="@drawable/email" />
+
+ </FrameLayout>
+ </com.github.florent37.shapeofview.shapes.RoundRectView>
+
+ </FrameLayout>
+
+ <Button
+ android:id="@+id/actionButtonCircleButton"
+ android:layout_width="match_parent"
+ android:layout_height="37dp"
+ android:minHeight="0dp"
+ android:padding="0dp"
+ android:background="@drawable/button_transparent_fill_ripple"/>
+
+ </FrameLayout>
+
+
+ </com.github.florent37.shapeofview.shapes.RoundRectView>
+
+</FrameLayout> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/color_result_item.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/color_result_item.xml
new file mode 100644
index 000000000..9be44f3da
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/color_result_item.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:bind="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <data>
+
+ <variable
+ name="result"
+ type="com.twine.colorcapture.models.ColorResultVM" />
+ </data>
+
+ <FrameLayout
+ android:background="@drawable/list_view_selectable"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="20dp"
+ android:orientation="vertical">
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <LinearLayout
+ android:id="@+id/frame"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <com.github.florent37.shapeofview.shapes.RoundRectView
+ android:id="@+id/resultRect"
+ android:layout_width="67dp"
+ android:layout_height="67dp"
+ bind:shape_roundRect_borderColor="@android:color/black"
+ bind:shape_roundRect_borderWidth="0dp"
+ bind:shape_roundRect_bottomLeftRadius="5dp"
+ bind:shape_roundRect_bottomRightRadius="5dp"
+ bind:shape_roundRect_topLeftRadius="5dp"
+ bind:shape_roundRect_topRightRadius="5dp">
+
+
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:background="@color/colorAccent"
+ android:background="@{result.result.detectionResponse.getProcessedColor().getColor()}" />
+
+ </com.github.florent37.shapeofview.shapes.RoundRectView>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="5dp">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginTop="5dp"
+ android:fontFamily="@font/flexo_medium"
+ android:letterSpacing="0.07"
+ android:text="@{result.result.name}"
+ android:textSize="15.4sp"
+ tools:text="Nike 100" />
+
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10dp"
+ android:orientation="horizontal">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:fontFamily="@font/flexo_light"
+ android:letterSpacing="0.07"
+ android:text="RGB:"
+ android:textSize="15.4sp" />
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:fontFamily="@font/flexo_light"
+ android:letterSpacing="0.07"
+ android:layout_marginLeft="5dp"
+ android:text="@{result.result.detectionResponse.getProcessedColor().toString()}"
+ tools:text="200, 100, 0"
+ android:textSize="15.4sp" />
+ </LinearLayout>
+ </LinearLayout>
+ </LinearLayout>
+ </RelativeLayout>
+
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:layout_marginLeft="2dp"
+ android:layout_marginTop="20dp"
+ android:layout_marginRight="2dp"
+ android:background="@color/white" />
+ </LinearLayout>
+
+ <FrameLayout
+ android:layout_width="40dp"
+ android:layout_height="40dp"
+ android:layout_gravity="right|center"
+ android:layout_marginRight="10dp"
+ android:layout_marginBottom="10dp">
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:src="@drawable/delete_thin" />
+
+ <Button
+ android:layout_width="40dp"
+ android:layout_height="40dp"
+ android:focusable="false"
+ android:focusableInTouchMode="false"
+ bind:command="@{result.deleteCommand}"
+ android:background="@drawable/button_transparent_fill_ripple" />
+
+ </FrameLayout>
+ </FrameLayout>
+</layout> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_confirm.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_confirm.xml
new file mode 100644
index 000000000..1bad9d630
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_confirm.xml
@@ -0,0 +1,87 @@
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:bind="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <data>
+
+ <variable
+ name="vm"
+ type="com.twine.colorcapture.dialogs.confirm.ConfirmDialogVM" />
+ </data>
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorBlueMask">
+
+ <RelativeLayout
+ android:layout_width="313.9dp"
+ android:layout_height="202.6dp"
+ android:layout_centerVertical="true"
+ android:layout_centerHorizontal="true"
+ android:elevation="10dp"
+ android:background="@drawable/border_primary_background">
+
+ <FrameLayout
+ android:layout_width="40dp"
+ android:layout_alignParentRight="true"
+ android:layout_height="40dp">
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:src="@drawable/icons_close"/>
+
+ <Button
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ bind:command="@{vm.closeCommand}"
+ android:background="@drawable/button_transparent_fill_ripple"/>
+ </FrameLayout>
+
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/txtTitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="15dp"
+ android:fontFamily="@font/flexo_bold"
+ android:gravity="center"
+ android:letterSpacing="0.07"
+ android:textSize="13.4sp"
+ tools:text="Error title"
+ android:text="@{vm.title}" />
+
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/txtTitle"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="20dp"
+ android:fontFamily="@font/flexo_light"
+ android:gravity="center"
+ android:letterSpacing="0.07"
+ android:textSize="13.4sp"
+ tools:text="Success message"
+ android:text="@{vm.message}"/>
+
+ <com.twine.colorcapture.controls.CircleActionButton
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:layout_marginLeft="20dp"
+ android:layout_marginRight="20dp"
+ android:layout_marginBottom="20dp"
+ bind:text="@{vm.confirmText}"
+ bind:command="@{vm.confirmCommand}"
+ tools:text="Delete"
+ bind:textSize="15.3sp"
+ bind:src="@drawable/icons_delete"
+ android:clickable="true" />
+
+ </RelativeLayout>
+ </RelativeLayout>
+</layout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_error.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_error.xml
new file mode 100644
index 000000000..eee19cd3b
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_error.xml
@@ -0,0 +1,81 @@
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:bind="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <data>
+
+ <variable
+ name="vm"
+ type="com.twine.colorcapture.dialogs.error.ErrorDialogVM" />
+ </data>
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorBlueMask">
+
+ <RelativeLayout
+ android:layout_width="313.9dp"
+ android:layout_height="202.6dp"
+ android:layout_centerVertical="true"
+ android:layout_centerHorizontal="true"
+ android:background="@drawable/border_primary_background">
+
+ <FrameLayout
+ android:layout_width="40dp"
+ android:layout_alignParentRight="true"
+ android:layout_height="40dp">
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:src="@drawable/icons_close"/>
+
+ <Button
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ bind:command="@{vm.closeCommand}"
+ android:background="@drawable/button_transparent_fill_ripple"/>
+ </FrameLayout>
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/txtTitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="15dp"
+ android:fontFamily="@font/flexo_bold"
+ android:gravity="center"
+ android:letterSpacing="0.07"
+ android:textSize="13.4sp"
+ tools:text="Error title"
+ android:text="@{vm.title}" />
+
+
+ <ImageView
+ android:id="@+id/progress"
+ android:layout_width="51dp"
+ android:layout_height="70dp"
+ android:layout_marginTop="10dp"
+ android:layout_below="@id/txtTitle"
+ android:layout_centerHorizontal="true"
+ android:src="@drawable/error"/>
+
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/progress"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="20dp"
+ android:fontFamily="@font/flexo_light"
+ android:gravity="center"
+ android:letterSpacing="0.07"
+ android:textSize="13.4sp"
+ tools:text="Success message"
+ android:text="@{vm.message}"/>
+
+ </RelativeLayout>
+ </RelativeLayout>
+</layout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_processing.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_processing.xml
new file mode 100644
index 000000000..2d891b99b
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_processing.xml
@@ -0,0 +1,39 @@
+<layout xmlns:tools="http://schemas.android.com/tools"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:bind="http://schemas.android.com/apk/res-auto">
+
+ <data>
+ <variable
+ name="vm"
+ type="com.twine.colorcapture.dialogs.processing.ProcessingDialogVM" />
+ </data>
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorBlueMask">
+
+ <ProgressBar
+ android:id="@+id/progress"
+ android:layout_centerInParent="true"
+ android:layout_width="80dp"
+ android:layout_height="80dp"
+ android:indeterminate="true"
+ android:indeterminateDuration="500"
+ android:indeterminateDrawable="@drawable/progress_ring_background"/>
+
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_below="@id/progress"
+ android:layout_centerHorizontal="true"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="20dp"
+ android:gravity="center"
+ android:textSize="13.4sp"
+ android:letterSpacing="0.07"
+ android:fontFamily="@font/flexo_medium"
+ android:text="@string/processing_message"/>
+ </RelativeLayout>
+</layout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_progress.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_progress.xml
new file mode 100644
index 000000000..34fe35210
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_progress.xml
@@ -0,0 +1,64 @@
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:bind="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <data>
+
+ <variable
+ name="vm"
+ type="com.twine.colorcapture.dialogs.progress.ProgressDialogVM" />
+ </data>
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorBlueMask">
+
+ <RelativeLayout
+ android:layout_width="313.9dp"
+ android:layout_height="202.6dp"
+ android:layout_centerVertical="true"
+ android:layout_centerHorizontal="true"
+ android:background="@drawable/border_primary_background">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/txtTitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="15dp"
+ android:fontFamily="@font/flexo_bold"
+ android:gravity="center"
+ android:letterSpacing="0.07"
+ android:textSize="13.4sp"
+ tools:text="Progress title"
+ android:text="@{vm.title}" />
+
+ <ProgressBar
+ android:id="@+id/progress"
+ android:layout_width="80dp"
+ android:layout_height="80dp"
+ android:layout_below="@id/txtTitle"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="10dp"
+ android:indeterminate="true"
+ android:indeterminateDrawable="@drawable/progress_ring_background"
+ android:indeterminateDuration="500" />
+
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/progress"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="20dp"
+ android:fontFamily="@font/flexo_light"
+ android:gravity="center"
+ android:letterSpacing="0.07"
+ android:textSize="13.4sp"
+ tools:text="Progress message please wait..."
+ android:text="@{vm.message}"/>
+
+ </RelativeLayout>
+ </RelativeLayout>
+</layout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_success.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_success.xml
new file mode 100644
index 000000000..aa4fb6639
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_success.xml
@@ -0,0 +1,81 @@
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:bind="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <data>
+
+ <variable
+ name="vm"
+ type="com.twine.colorcapture.dialogs.success.SuccessDialogVM" />
+ </data>
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorBlueMask">
+
+ <RelativeLayout
+ android:layout_width="313.9dp"
+ android:layout_height="202.6dp"
+ android:layout_centerVertical="true"
+ android:layout_centerHorizontal="true"
+ android:background="@drawable/border_primary_background">
+
+ <FrameLayout
+ android:layout_width="40dp"
+ android:layout_alignParentRight="true"
+ android:layout_height="40dp">
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:src="@drawable/icons_close"/>
+
+ <Button
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ bind:command="@{vm.closeCommand}"
+ android:background="@drawable/button_transparent_fill_ripple"/>
+ </FrameLayout>
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/txtTitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="15dp"
+ android:fontFamily="@font/flexo_bold"
+ android:gravity="center"
+ android:letterSpacing="0.07"
+ android:textSize="13.4sp"
+ tools:text="Success Title"
+ android:text="@{vm.title}" />
+
+
+ <ImageView
+ android:id="@+id/progress"
+ android:layout_width="51dp"
+ android:layout_height="70dp"
+ android:layout_marginTop="10dp"
+ android:layout_below="@id/txtTitle"
+ android:layout_centerHorizontal="true"
+ android:src="@drawable/success"/>
+
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/progress"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="20dp"
+ android:fontFamily="@font/flexo_light"
+ android:gravity="center"
+ android:letterSpacing="0.07"
+ android:textSize="13.4sp"
+ tools:text="Success message"
+ android:text="@{vm.message}"/>
+
+ </RelativeLayout>
+ </RelativeLayout>
+</layout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_welcome.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_welcome.xml
new file mode 100644
index 000000000..bcc964288
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_welcome.xml
@@ -0,0 +1,107 @@
+<layout xmlns:tools="http://schemas.android.com/tools"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:bind="http://schemas.android.com/apk/res-auto">
+
+ <data>
+ <variable
+ name="vm"
+ type="com.twine.colorcapture.dialogs.welcome.WelcomeDialogVM" />
+ </data>
+
+ <RelativeLayout
+ android:id="@+id/main_relative"
+ android:layoutDirection="ltr"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorBlueMask"
+
+ tools:context="com.twine.colorcapture.dialogs.welcome.WelcomeDialog">
+
+ <RelativeLayout
+ android:id="@+id/frameLayout"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/welcome_dialog_border"
+ android:foregroundGravity="center"
+ android:layout_marginLeft="30dp"
+ android:layout_marginRight="30dp"
+ android:layout_marginTop="50dp"
+ android:layout_marginBottom="100dp">
+
+
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/textView"
+ android:textColor="#ffffff"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerHorizontal="true"
+ android:layout_margin="30dp"
+ android:textSize="17.3sp"
+ android:textStyle="bold"
+ android:fontFamily="@font/flexo_bold"
+ android:text="@string/welcome_title" />
+
+ <ImageView
+ android:id="@+id/imageView3"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@+id/textView"
+ android:layout_alignParentTop="false"
+ android:layout_centerHorizontal="true"
+ android:src="@drawable/twine_card" />
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/textView2"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@+id/imageView3"
+ android:layout_centerHorizontal="true"
+ android:layout_marginStart="20dp"
+ android:layout_marginTop="20dp"
+ android:layout_marginEnd="20dp"
+ android:gravity="center"
+ android:textSize="15.4sp"
+ android:letterSpacing="0.08"
+ android:lineSpacingExtra="7.7sp"
+ android:fontFamily="@font/flexo_regular"
+ android:text="@string/welcome_message"
+ android:singleLine="false"
+ android:textAlignment="center" />
+
+ </RelativeLayout>
+
+ <android.support.v7.widget.AppCompatButton
+ android:id="@+id/button"
+ android:layout_width="wrap_content"
+ android:layout_height="55dp"
+ android:layout_alignBottom="@+id/frameLayout"
+ android:layout_centerHorizontal="true"
+ android:layout_marginBottom="-30dp"
+ android:background="@drawable/button_gradient_fill_ripple"
+ android:paddingStart="70dp"
+ android:paddingEnd="70dp"
+ android:textSize="15.4sp"
+ android:letterSpacing="0.07"
+ android:textStyle="bold"
+ android:text="@string/welcome_go_button"
+ android:fontFamily="@font/flexo_bold"
+ bind:command="@{vm.startCommand}"
+ android:textAllCaps="false" />
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/textView3"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@+id/button"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="50dp"
+ android:textSize="15.4sp"
+ android:textColor="#ffffff"
+ android:fontFamily="@font/flexo_bold"
+ android:letterSpacing="0.09"
+ android:text="@string/welcome_have_a_twine_card_message" />
+
+ </RelativeLayout>
+</layout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/external_machine_item.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/external_machine_item.xml
new file mode 100644
index 000000000..585829bcb
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/external_machine_item.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <data>
+
+ <variable
+ name="machine"
+ type="com.twine.colorcapture.integration.ExternalBridgeMachine" />
+ </data>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@drawable/list_view_selectable"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:id="@+id/imageView2"
+ android:layout_width="60dp"
+ android:layout_height="60dp"
+ android:scaleType="fitCenter"
+ android:layout_marginRight="10dp"
+ android:src="@drawable/icon" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="5dp">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@{machine.serialNumber}"
+ android:textSize="18sp"
+ tools:text="Serial Number" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10dp"
+ android:text="@{machine.ipAddress}"
+ tools:text="IP Address" />
+ </LinearLayout>
+ </LinearLayout>
+</layout> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_capture.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_capture.xml
index 7f8e470d0..a4c4affc8 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_capture.xml
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_capture.xml
@@ -5,12 +5,15 @@
<data>
+ <import type="android.view.View"/>
+
<variable
name="vm"
type="com.twine.colorcapture.views.capture.CaptureFragmentVM" />
</data>
<FrameLayout
+ android:background="@color/colorPrimaryBackground"
android:layout_width="match_parent"
android:layout_height="match_parent" tools:context="com.twine.colorcapture.views.capture.CaptureFragment">
@@ -27,11 +30,11 @@
android:layoutDirection="ltr">
<ImageView
- android:id="@+id/imagePreview"
+ android:id="@+id/imageViewResultFrame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
- android:visibility="gone" />
+ android:visibility="@{vm.isCardDetected ? View.VISIBLE : View.GONE}" />
<ImageView
android:id="@+id/imagePreviewWrapped"
@@ -41,7 +44,7 @@
android:layout_alignParentBottom="true"
android:layout_marginEnd="22dp"
android:layout_marginBottom="28dp"
- app:srcCompat="@android:color/black" />
+ android:visibility="gone" />
</RelativeLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
@@ -51,8 +54,8 @@
<View
android:layout_width="match_parent"
- android:layout_height="100dp"
- android:background="#9A000000" />
+ android:layout_height="30dp"
+ android:background="@color/colorCaptureMask" />
<RelativeLayout
@@ -66,9 +69,9 @@
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
- android:background="#9A000000" />
+ android:background="@color/colorCaptureMask" />
- <LinearLayout
+ <FrameLayout
android:id="@+id/scannerLayout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
@@ -77,17 +80,20 @@
android:layout_toLeftOf="@id/right"
android:layout_toRightOf="@id/left"
android:layout_toStartOf="@+id/right"
- android:background="@drawable/ic_viewfinder"
+ android:background="@{vm.isCardDetected ? @drawable/border_gradient : @drawable/border}"
android:orientation="horizontal">
<View
android:id="@+id/scannerBar"
android:layout_width="match_parent"
- android:layout_height="5dp"
- android:background="@color/colorPrimary" />
+ android:layout_marginTop="5dp"
+ android:layout_marginBottom="5dp"
+ android:layout_height="2dp"
+ android:background="@color/colorGradientAccent2"
+ android:visibility="@{vm.isCardDetected ? View.GONE : View.VISIBLE}"/>
- </LinearLayout>
+ </FrameLayout>
<View
@@ -96,14 +102,33 @@
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
- android:background="#9A000000" />
+ android:background="@color/colorCaptureMask" />
</RelativeLayout>
- <View
+ <FrameLayout
android:layout_width="match_parent"
android:layout_height="100dp"
- android:background="#9A000000" />
+ android:background="@color/colorCaptureMask"
+ android:paddingLeft="40dp"
+ android:paddingRight="40dp">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:textSize="13.4sp"
+ android:fontFamily="@font/flexo_medium"
+ android:text="@string/twine_snap_message"
+ android:visibility="@{vm.isCardDetected ? View.GONE : View.VISIBLE}"/>
+
+ <ImageView
+ android:layout_width="51dp"
+ android:layout_height="70dp"
+ android:layout_gravity="center"
+ android:src="@drawable/got_it"
+ android:visibility="@{vm.isCardDetected ? View.VISIBLE : View.GONE}"/>
+ </FrameLayout>
</LinearLayout>
</FrameLayout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_home.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_home.xml
deleted file mode 100644
index f62a2f6f2..000000000
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_home.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<layout xmlns:tools="http://schemas.android.com/tools"
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:bind="http://schemas.android.com/apk/res-auto">
-
- <data>
- <variable
- name="vm"
- type="com.twine.colorcapture.views.home.HomeFragmentVM" />
- </data>
-
- <RelativeLayout
- android:layoutDirection="ltr"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingLeft="40dp"
- android:paddingRight="40dp"
- tools:context="com.twine.colorcapture.views.home.HomeFragment">
-
-
- <TextView
- android:id="@+id/textView"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_centerHorizontal="true"
- android:layout_centerVertical="true"
- android:text="Home View"
- android:textSize="30sp"
- tools:text="Home View" />
-
- <Button
- android:id="@+id/btnStart"
- android:layout_width="150dp"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_centerHorizontal="true"
- android:layout_marginBottom="36dp"
- android:text="Start"
- bind:command="@{vm.startCaptureCommand}" />
-
- </RelativeLayout>
-</layout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_loading.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_loading.xml
deleted file mode 100644
index 21fbf6485..000000000
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_loading.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<layout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:bind="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools">
-
- <data>
-
- <variable
- name="vm"
- type="com.twine.colorcapture.views.loading.LoadingFragmentVM" />
- </data>
-
- <FrameLayout
- android:background="#000000"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <ImageView
- android:id="@+id/imageView"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:scaleType="fitXY"
- bind:srcCompat="@drawable/loading_background_brush" />
-
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layoutDirection="ltr"
- android:paddingLeft="40dp"
- android:paddingRight="40dp"
- tools:context="com.twine.colorcapture.views.loading.LoadingFragment">
-
-
- <TextView
- android:id="@+id/textView"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_centerHorizontal="true"
- android:layout_centerVertical="true"
- android:text="Loading..."
- android:textSize="21sp" />
-
- <ProgressBar
- android:id="@+id/progressBar"
- style="@android:style/Widget.ProgressBar.Horizontal"
- android:layout_width="301dp"
- android:layout_height="22dp"
- android:layout_below="@+id/textView"
- android:layout_marginTop="15dp"
- android:layout_centerHorizontal="true"
- android:max="2000"
- android:progress="@{vm.loadingProgress}"
- android:progressDrawable="@drawable/gradient_progressbar" />
- </RelativeLayout>
-
- </FrameLayout>
-</layout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_mycolors.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_mycolors.xml
new file mode 100644
index 000000000..1fdcb2710
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_mycolors.xml
@@ -0,0 +1,45 @@
+<layout xmlns:tools="http://schemas.android.com/tools"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:bind="http://schemas.android.com/apk/res-auto">
+
+ <data>
+ <variable
+ name="vm"
+ type="com.twine.colorcapture.views.mycolors.MyColorsFragmentVM" />
+ </data>
+
+ <RelativeLayout
+ android:layoutDirection="ltr"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingLeft="20dp"
+ android:paddingRight="20dp"
+ android:background="@color/colorDarkBackground"
+ tools:context="com.twine.colorcapture.views.mycolors.MyColorsFragment">
+
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/txtTitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginTop="20dp"
+ android:fontFamily="@font/flexo_bold"
+ android:letterSpacing="0.07"
+ android:text="My colors"
+ android:textSize="17.3sp" />
+
+ <ListView
+ android:id="@+id/listResults"
+ android:layout_marginTop="20dp"
+ android:layout_below="@id/txtTitle"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:choiceMode="none"
+ android:onItemClick="@{vm::onResultSelected}"
+ bind:itemBinding="@{vm.resultBinding}"
+ bind:items="@{vm.results}" />
+
+ </RelativeLayout>
+</layout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_register.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_register.xml
new file mode 100644
index 000000000..51e174e29
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_register.xml
@@ -0,0 +1,83 @@
+<layout xmlns:tools="http://schemas.android.com/tools"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:bind="http://schemas.android.com/apk/res-auto">
+
+ <data>
+ <variable
+ name="vm"
+ type="com.twine.colorcapture.views.register.RegisterFragmentVM" />
+ </data>
+
+ <RelativeLayout
+ android:layoutDirection="ltr"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingLeft="20dp"
+ android:paddingRight="20dp"
+ android:background="@color/colorDarkBackground"
+ tools:context="com.twine.colorcapture.views.register.RegisterFragment">
+
+
+ <FrameLayout
+ android:id="@+id/frameTitle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="15dp">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/txtTitlef"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:fontFamily="@font/flexo_bold"
+ android:letterSpacing="0.07"
+ android:layout_gravity="left|center"
+ android:text="Register your system"
+ android:textSize="17.3sp" />
+
+
+ <android.support.v7.widget.AppCompatButton
+ android:id="@+id/btnDone"
+ android:background="@drawable/button_transparent_fill_ripple"
+ android:layout_gravity="right"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="17.3sp"
+ android:letterSpacing="0.07"
+ android:textStyle="bold"
+ android:text="Done"
+ android:layout_marginRight="-10dp"
+ android:fontFamily="@font/flexo_bold"
+ android:textAllCaps="false"
+ bind:command="@{vm.registerCommand}"/>
+ </FrameLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@+id/frameTitle"
+ android:layout_marginTop="50dp"
+ android:orientation="vertical">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:fontFamily="@font/flexo_light"
+ android:letterSpacing="0.07"
+ android:textSize="13.4sp"
+ android:text="Machine Serial Number:" />
+
+ <android.support.v7.widget.AppCompatEditText
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:fontFamily="@font/flexo_light"
+ android:letterSpacing="0.07"
+ android:textSize="15.4sp"
+ android:textDirection="ltr"
+ android:inputType="textCapCharacters"
+ android:text="@={vm.serialNumber}"/>
+
+ </LinearLayout>
+
+ </RelativeLayout>
+</layout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_rename.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_rename.xml
new file mode 100644
index 000000000..fb95f1c14
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_rename.xml
@@ -0,0 +1,83 @@
+<layout xmlns:tools="http://schemas.android.com/tools"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:bind="http://schemas.android.com/apk/res-auto">
+
+ <data>
+ <variable
+ name="vm"
+ type="com.twine.colorcapture.views.rename.RenameFragmentVM" />
+ </data>
+
+ <RelativeLayout
+ android:layoutDirection="ltr"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingLeft="20dp"
+ android:paddingRight="20dp"
+ android:background="@color/colorDarkBackground"
+ tools:context="com.twine.colorcapture.views.rename.RenameFragment">
+
+
+ <FrameLayout
+ android:id="@+id/frameTitle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="15dp">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/txtTitlef"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:fontFamily="@font/flexo_bold"
+ android:letterSpacing="0.07"
+ android:layout_gravity="left|center"
+ android:text="Rename my color"
+ android:textSize="17.3sp" />
+
+
+ <android.support.v7.widget.AppCompatButton
+ android:id="@+id/btnDone"
+ android:background="@drawable/button_transparent_fill_ripple"
+ android:layout_gravity="right"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="17.3sp"
+ android:letterSpacing="0.07"
+ android:textStyle="bold"
+ android:text="Done"
+ android:layout_marginRight="-10dp"
+ android:fontFamily="@font/flexo_bold"
+ android:textAllCaps="false"
+ bind:command="@{vm.renameCommand}"/>
+ </FrameLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@+id/frameTitle"
+ android:layout_marginTop="50dp"
+ android:orientation="vertical">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:fontFamily="@font/flexo_light"
+ android:letterSpacing="0.07"
+ android:textSize="13.4sp"
+ android:text="Name this color as:" />
+
+ <android.support.v7.widget.AppCompatEditText
+ android:id="@+id/txtName"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:fontFamily="@font/flexo_light"
+ android:letterSpacing="0.07"
+ android:textSize="15.4sp"
+ android:textDirection="ltr"
+ android:text="@={vm.name}"/>
+
+ </LinearLayout>
+
+ </RelativeLayout>
+</layout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_result.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_result.xml
new file mode 100644
index 000000000..90242ec30
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_result.xml
@@ -0,0 +1,248 @@
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:bind="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <data>
+
+ <import type="android.view.View" />
+
+ <variable
+ name="vm"
+ type="com.twine.colorcapture.views.result.ResultFragmentVM" />
+ </data>
+
+ <RelativeLayout
+ android:id="@+id/result_main_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorDarkBackground"
+ android:layoutDirection="ltr"
+ android:paddingLeft="20dp"
+ android:paddingRight="20dp"
+ tools:context="com.twine.colorcapture.views.result.ResultFragment">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/txtTitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="15dp"
+ android:fontFamily="@font/flexo_bold"
+ android:gravity="center"
+ android:letterSpacing="0.07"
+ android:text="@{vm.colorResult.name}"
+ android:textSize="17.3sp" />
+
+ <com.github.florent37.shapeofview.shapes.RoundRectView
+ android:id="@+id/resultRect"
+ android:layout_width="match_parent"
+ android:layout_height="84.5dp"
+ android:layout_below="@id/txtTitle"
+ android:layout_marginTop="15dp"
+ android:elevation="4dp"
+ bind:shape_roundRect_borderColor="@android:color/black"
+ bind:shape_roundRect_borderWidth="0dp"
+ bind:shape_roundRect_bottomLeftRadius="5dp"
+ bind:shape_roundRect_bottomRightRadius="5dp"
+ bind:shape_roundRect_topLeftRadius="5dp"
+ bind:shape_roundRect_topRightRadius="5dp">
+
+
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@{vm.detectionResponse.getProcessedColor().getColor()}"/>
+
+ </com.github.florent37.shapeofview.shapes.RoundRectView>
+
+ <LinearLayout
+ android:id="@+id/rgbContainer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/resultRect"
+ android:layout_marginTop="15dp"
+ android:orientation="horizontal">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:fontFamily="@font/flexo_bold"
+ android:letterSpacing="0.11"
+ android:text="RGB:"
+ android:textSize="17.4sp" />
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="5dp"
+ android:fontFamily="@font/flexo_bold"
+ android:letterSpacing="0.11"
+ android:text="@{vm.detectionResponse.getProcessedColor().toString()}"
+ android:textSize="17.4sp" />
+ </LinearLayout>
+
+ <FrameLayout
+ android:id="@+id/frameToggleBtn"
+ android:layout_width="match_parent"
+ android:layout_height="25dp"
+ android:layout_below="@id/rgbContainer"
+ android:layout_marginTop="15dp">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:fontFamily="@font/flexo_light"
+ android:letterSpacing="0.07"
+ android:text="See how your camera got this"
+ android:textSize="15.4sp" />
+
+ <ImageView
+ android:layout_width="17dp"
+ android:layout_height="10dp"
+ android:layout_gravity="right"
+ android:layout_marginTop="5dp"
+ android:src="@{vm.isCameraColorToggled ? @drawable/icons_arrow_up : @drawable/down}" />
+
+ <Button
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/button_transparent_fill_ripple"
+ android:minHeight="0dp"
+ android:padding="0dp"
+ bind:command="@{vm.toggleCameraColorCommand}" />
+ </FrameLayout>
+
+ <FrameLayout
+ android:id="@+id/frameCameraRgbContainer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/frameToggleBtn"
+ android:layout_marginTop="5dp"
+ android:layout_marginBottom="10dp"
+ android:visibility="@{vm.isCameraColorToggled ? View.VISIBLE : View.GONE}">
+
+ <com.github.florent37.shapeofview.shapes.RoundRectView
+ android:layout_width="67.2dp"
+ android:layout_height="59.5dp"
+ android:layout_below="@id/txtTitle"
+ bind:shape_roundRect_borderColor="@android:color/black"
+ bind:shape_roundRect_borderWidth="0dp"
+ bind:shape_roundRect_bottomLeftRadius="5dp"
+ bind:shape_roundRect_bottomRightRadius="5dp"
+ bind:shape_roundRect_topLeftRadius="5dp"
+ bind:shape_roundRect_topRightRadius="5dp">
+
+
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@{vm.detectionResponse.getRawColor().getColor()}"></FrameLayout>
+
+ </com.github.florent37.shapeofview.shapes.RoundRectView>
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center|center_horizontal"
+ android:layout_marginLeft="20dp"
+ android:orientation="horizontal">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:fontFamily="@font/flexo_light"
+ android:letterSpacing="0.11"
+ android:text="RGB:"
+ android:textSize="15.4sp" />
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="5dp"
+ android:fontFamily="@font/flexo_light"
+ android:letterSpacing="0.11"
+ android:text="@{vm.detectionResponse.getRawColor().toString()}"
+ android:textSize="15.4sp" />
+ </LinearLayout>
+
+ </FrameLayout>
+
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:layout_below="@id/frameCameraRgbContainer"
+ android:background="@drawable/button_gradient_fill"></FrameLayout>
+
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:orientation="vertical"
+ android:paddingBottom="20dp"
+ android:paddingLeft="40dp"
+ android:paddingRight="40dp">
+
+ <com.twine.colorcapture.controls.CircleActionButton
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ bind:src="@drawable/email"
+ bind:text="Email"
+ android:clickable="true"
+ bind:command="@{vm.emailCommand}"/>
+
+ <com.twine.colorcapture.controls.CircleActionButton
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="15dp"
+ bind:src="@drawable/icons_rename"
+ bind:text="Rename"
+ android:clickable="true"
+ bind:command="@{vm.renameCommand}"/>
+
+ <com.twine.colorcapture.controls.CircleActionButton
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="15dp"
+ bind:src="@drawable/icon"
+ bind:text=" Send to Machine"
+ android:clickable="true"
+ bind:command="@{vm.sendToMachineCommand}"
+ android:visibility="@{vm.isMachineRegistred ? View.VISIBLE : View.GONE}"/>
+
+ <FrameLayout
+ android:layout_marginLeft="5dp"
+ android:layout_marginRight="5dp"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="15dp"
+ android:visibility="@{vm.isMachineRegistred ? View.GONE : View.VISIBLE}">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="right|center"
+ android:fontFamily="@font/flexo_bold"
+ android:letterSpacing="0.07"
+ android:textSize="15.4sp"
+ android:text="@string/have_a_twine_system"/>
+
+ <ImageView
+ android:layout_width="40dp"
+ android:layout_height="32dp"
+ android:layout_gravity="left"
+ android:src="@drawable/icon" />
+
+ <Button
+ android:layout_width="match_parent"
+ android:layout_height="30dp"
+ android:background="@drawable/button_transparent_fill_ripple"
+ android:minHeight="0dp"
+ android:padding="0dp"
+ bind:command="@{vm.registerMachineCommand}" />
+
+ </FrameLayout>
+ </LinearLayout>
+
+ </RelativeLayout>
+</layout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_send_to_machine.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_send_to_machine.xml
new file mode 100644
index 000000000..6881b50ff
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_send_to_machine.xml
@@ -0,0 +1,70 @@
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:bind="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <data>
+
+ <variable
+ name="vm"
+ type="com.twine.colorcapture.views.sendtomachine.SendToMachineFragmentVM" />
+ </data>
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/colorDarkBackground"
+ android:layoutDirection="ltr"
+ android:paddingLeft="20dp"
+ android:paddingRight="20dp"
+ tools:context="com.twine.colorcapture.views.sendtomachine.SendToMachineFragment">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/txtTitle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerHorizontal="true"
+ android:layout_gravity="center"
+ android:layout_marginTop="15dp"
+ android:fontFamily="@font/flexo_bold"
+ android:letterSpacing="0.07"
+ android:text="Send To Machine"
+ android:textSize="17.3sp" />
+
+ <android.support.v7.widget.AppCompatTextView
+ android:id="@+id/txtScanning"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/txtTitle"
+ android:layout_gravity="center"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="15dp"
+ android:fontFamily="@font/flexo_light"
+ android:letterSpacing="0.07"
+ android:text="Scanning your local network..."
+ android:textSize="15.3sp" />
+
+ <ProgressBar
+ android:layout_below="@id/txtScanning"
+ style="?android:attr/progressBarStyleHorizontal"
+ android:id="@+id/scanProgress"
+ android:layout_width="match_parent"
+ android:layout_height="4dp"
+ android:layout_marginTop="5dp"
+ android:progressDrawable="@drawable/gradient_progress"
+ android:indeterminate="true"
+ tools:progress="100"/>
+
+ <ListView
+ android:id="@+id/listResults"
+ android:layout_marginTop="10dp"
+ android:layout_below="@id/scanProgress"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:choiceMode="none"
+ android:onItemClick="@{vm::onMachineSelected}"
+ bind:itemBinding="@{vm.machineBinding}"
+ bind:items="@{vm.machines}" />
+
+
+ </RelativeLayout>
+</layout>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/side_menu.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/side_menu.xml
new file mode 100644
index 000000000..aa20bd3ef
--- /dev/null
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/side_menu.xml
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:bind="http://schemas.android.com/apk/res-auto">
+
+ <data>
+
+ <variable
+ name="vm"
+ type="com.twine.colorcapture.views.main.MainActivityVM" />
+ </data>
+
+ <RelativeLayout xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="start"
+ android:background="@color/colorPrimaryBackground">
+
+ <LinearLayout
+ android:id="@+id/linear"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="20dp">
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginTop="10dp"
+ android:fontFamily="@font/flexo_bold"
+ android:letterSpacing="0.07"
+ android:text="@string/app_name"
+ android:textSize="17.3sp" />
+
+
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:layout_marginTop="20dp"
+ android:layout_height="wrap_content">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/info" />
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginLeft="15dp"
+ android:fontFamily="@font/flexo_medium"
+ android:letterSpacing="0.06"
+ android:text="About Twine"
+ android:textSize="15.4sp" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:layout_marginTop="20dp"
+ android:background="@drawable/accent_gradient" />
+
+ </LinearLayout>
+
+ <Button
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/button_transparent_fill_ripple"/>
+ </FrameLayout>
+
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:layout_marginTop="40dp"
+ android:layout_height="wrap_content">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/about" />
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginLeft="15dp"
+ android:fontFamily="@font/flexo_medium"
+ android:letterSpacing="0.06"
+ android:text="About SnapMatch"
+ android:textSize="15.4sp" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="2dp"
+ android:layout_marginTop="20dp"
+ android:background="@drawable/accent_gradient" />
+
+ </LinearLayout>
+
+ <Button
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/button_transparent_fill_ripple"/>
+ </FrameLayout>
+
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:layout_marginTop="40dp"
+ android:layout_height="60dp">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/how_to" />
+
+ <android.support.v7.widget.AppCompatTextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginLeft="15dp"
+ android:fontFamily="@font/flexo_medium"
+ android:letterSpacing="0.06"
+ android:text="How to use"
+ android:textSize="15.4sp" />
+ </LinearLayout>
+
+ </LinearLayout>
+
+ <Button
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/button_transparent_fill_ripple"
+ bind:command="@{vm.howToUseCommand}"/>
+ </FrameLayout>
+
+ </LinearLayout>
+
+ <com.twine.colorcapture.controls.CircleActionButton
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:layout_marginLeft="20dp"
+ android:layout_marginRight="20dp"
+ android:layout_marginBottom="60dp"
+ bind:text=" Get a twine TTC™ card"
+ bind:textSize="15.3sp"
+ bind:src="@drawable/icon_twine_card"
+ android:clickable="true" />
+ </RelativeLayout>
+</layout> \ No newline at end of file
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-hdpi/ic_launcher.png b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-hdpi/ic_launcher.png
index 898f3ed59..d0bba595f 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-hdpi/ic_launcher.png
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
index dffca3601..698bb5a95 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-mdpi/ic_launcher.png b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-mdpi/ic_launcher.png
index 64ba76f75..346b6e1b9 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-mdpi/ic_launcher.png
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
index dae5e0823..b4a48b906 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xhdpi/ic_launcher.png
index e5ed46597..ea6b05b48 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xhdpi/ic_launcher.png
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
index 14ed0af35..9bc8d9af9 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
index b0907cac3..547f0e8e3 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
index d8ae03154..157ded94b 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
index 2c18de9e6..a678fba65 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
index beed3cdd2..e31967651 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/values/colors.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/values/colors.xml
index d446dbf48..f3be907a5 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/values/colors.xml
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/values/colors.xml
@@ -5,4 +5,25 @@
<color name="colorAccent">#40d6ff</color>
<color name="colorPlay">#5df15d</color>
<color name="colorStop">#f24954</color>
+
+ <color name="colorMask">#BB000000</color>
+ <color name="colorTransparent">#00000000</color>
+
+ <color name="colorPrimaryBackground">#0e2340</color>
+ <color name="colorDarkBackground">#07101e</color>
+
+ <color name="colorBlueMask">#EB09172A</color>
+ <color name="colorWhiteMask">#B71D3150</color>
+
+ <color name="colorGradientAccent1">#26d440</color>
+ <color name="colorGradientAccent2">#009fe3</color>
+
+ <color name="colorCaptureMask">#9A091330</color>
+
+ <dimen name="circleProgressRadius">30dp</dimen>
+ <dimen name="circleProgressThickness">3dp</dimen>
+ <color name="circleProgressCompleteStartGradient">@color/colorGradientAccent1</color>
+ <color name="circleProgressCompleteEndGradient">@color/colorGradientAccent2</color>
+ <color name="circleProgressIncompleteStartGradient">#686868</color>
+ <color name="circleProgressIncompleteEndGradient">#686868</color>
</resources>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/values/strings.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/values/strings.xml
index 8e5e37080..ebb9cfd4c 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/values/strings.xml
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/values/strings.xml
@@ -1,6 +1,20 @@
<resources>
- <string name="app_name">Color Capture</string>
+ <string name="app_name">SnapMatch</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
+
+ <string name="twine_snap_message">Place your Twine TCC™ card on the object you want to color match</string>
+ <string name="welcome_title">Welcome to twine</string>
+ <string name="welcome_message">
+ <![CDATA[Place your Twine TCC™ card on the object you want to color match. \n\n Make sure that the card is inside the mark…]]>
+ </string>
+ <string name="welcome_go_button">Let\'s start!</string>
+ <string name="welcome_have_a_twine_card_message"><u>Don’t have a Twine TCC™ card?</u></string>
+
+ <string name="processing_message">Our color algorithm is working on it…</string>
+
+ <string name="my_color">My Color</string>
+
+ <string name="have_a_twine_system"><u>Have a Twine system?</u></string>
</resources>
diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/values/styles.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/values/styles.xml
index 743fe092c..aaf895d46 100644
--- a/Software/Android_Studio/ColorCapture/app/src/main/res/values/styles.xml
+++ b/Software/Android_Studio/ColorCapture/app/src/main/res/values/styles.xml
@@ -1,12 +1,33 @@
<resources>
+ <style name="WindowAnimationTransition">
+ <item name="android:windowEnterAnimation">@android:anim/fade_in</item>
+ <item name="android:windowExitAnimation">@android:anim/fade_out</item>
+ </style>
+
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
+
+ <!-- enable window content transitions -->
+ <!--<item name="android:windowActivityTransitions">true</item>-->
+ <!--<item name="android:windowAnimationStyle">@style/WindowAnimationTransition</item>-->
+
<!-- Customize your theme here. -->
<!--<item name="colorPrimary">@color/colorPrimary</item>-->
<!--<item name="colorPrimaryDark">@color/colorPrimaryDark</item>-->
<!--<item name="colorAccent">@color/colorAccent</item>-->
+ <item name="android:textColor">#ffffffff</item>
+ </style>
+ <declare-styleable name="ToggleImageButton">
+ <attr name="android:checked" />
+ <attr name="normalImage" format="reference" />
+ <attr name="checkedImage" format="reference" />
+ </declare-styleable>
- </style>
+ <declare-styleable name="CircleActionButton">
+ <attr name="text" format="string" />
+ <attr name="textSize" format="dimension" />
+ <attr name="src" format="reference" />
+ </declare-styleable>
</resources>
diff --git a/Software/Android_Studio/ColorCapture/build.gradle b/Software/Android_Studio/ColorCapture/build.gradle
index 8d3ef8e5c..23b43f134 100644
--- a/Software/Android_Studio/ColorCapture/build.gradle
+++ b/Software/Android_Studio/ColorCapture/build.gradle
@@ -19,6 +19,9 @@ allprojects {
repositories {
google()
jcenter()
+ maven {
+ url "https://jitpack.io"
+ }
}
}
diff --git a/Software/Android_Studio/ColorCapture/settings.gradle b/Software/Android_Studio/ColorCapture/settings.gradle
index 48771db44..e7b4def49 100644
--- a/Software/Android_Studio/ColorCapture/settings.gradle
+++ b/Software/Android_Studio/ColorCapture/settings.gradle
@@ -1 +1 @@
-include ':app', ':onboarding'
+include ':app'
diff --git a/Software/Android_Studio/settings.jar b/Software/Android_Studio/settings.jar
new file mode 100644
index 000000000..3646d910b
--- /dev/null
+++ b/Software/Android_Studio/settings.jar
Binary files differ