From 5ed60ca1b49fd67ccca9e80be02924050c2ae87a Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Sun, 14 Apr 2019 16:16:29 +0300 Subject: Working on TCC... --- .../Android_Studio/ColorCapture/app/build.gradle | 2 +- .../colorcapture/controls/CircleActionButton.java | 1 + .../colorcapture/dagger/ApplicationComponent.java | 13 ++- .../colorcapture/dagger/ViewModelsModule.java | 35 +++++++-- .../colorcapture/dialogs/error/ErrorDialog.java | 22 ++++++ .../colorcapture/dialogs/error/ErrorDialogVM.java | 26 ++++++ .../dialogs/progress/ProgressDialog.java | 21 +++++ .../dialogs/progress/ProgressDialogVM.java | 26 ++++++ .../dialogs/registering/RegisteringDialog.java | 22 ------ .../dialogs/registering/RegisteringDialogVM.java | 9 --- .../dialogs/success/SuccessDialog.java | 23 ++++++ .../dialogs/success/SuccessDialogVM.java | 26 ++++++ .../messages/ColorDetectedMessage.java | 18 +++++ .../messages/MachineRegisteredMessage.java | 18 +++++ .../com/twine/colorcapture/mvvm/DialogBase.java | 23 +++++- .../navigation/NavigationFragment.java | 2 + .../notification/AndroidNotificationProvider.java | 87 +++++++++++++++++++++ .../notification/INotificationProvider.java | 27 +++++++ .../views/capture/CaptureFragment.java | 3 +- .../views/capture/CaptureFragmentVM.java | 2 - .../views/register/RegisterFragment.java | 2 - .../views/register/RegisterFragmentVM.java | 35 +++++++-- .../views/result/ResultFragmentVM.java | 11 ++- .../sendtomachine/ISendToMachineFragment.java | 7 ++ .../views/sendtomachine/SendToMachineFragment.java | 28 +++++++ .../sendtomachine/SendToMachineFragmentVM.java | 24 ++++++ .../app/src/main/res/drawable-hdpi/success.png | Bin 0 -> 6471 bytes .../app/src/main/res/drawable-mdpi/success.png | Bin 0 -> 3836 bytes .../app/src/main/res/drawable-xhdpi/success.png | Bin 0 -> 9419 bytes .../app/src/main/res/drawable-xxhdpi/success.png | Bin 0 -> 15971 bytes .../app/src/main/res/drawable-xxxhdpi/success.png | Bin 0 -> 23794 bytes .../app/src/main/res/drawable/error.png | Bin 0 -> 6291 bytes .../app/src/main/res/layout/dialog_error.xml | 63 +++++++++++++++ .../app/src/main/res/layout/dialog_progress.xml | 64 +++++++++++++++ .../app/src/main/res/layout/dialog_registering.xml | 62 --------------- .../app/src/main/res/layout/dialog_success.xml | 63 +++++++++++++++ .../app/src/main/res/layout/fragment_result.xml | 15 +++- .../main/res/layout/fragment_send_to_machine.xml | 40 ++++++++++ .../app/src/main/res/values/styles.xml | 2 - 39 files changed, 699 insertions(+), 123 deletions(-) create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/error/ErrorDialog.java create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/error/ErrorDialogVM.java create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/progress/ProgressDialog.java create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/progress/ProgressDialogVM.java delete mode 100644 Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/registering/RegisteringDialog.java delete mode 100644 Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/registering/RegisteringDialogVM.java create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/success/SuccessDialog.java create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/success/SuccessDialogVM.java create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/messages/ColorDetectedMessage.java create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/messages/MachineRegisteredMessage.java create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtomachine/ISendToMachineFragment.java create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtomachine/SendToMachineFragment.java create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtomachine/SendToMachineFragmentVM.java create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/success.png create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/success.png create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/success.png create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/success.png create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/success.png create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/res/drawable/error.png create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_error.xml create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_progress.xml delete mode 100644 Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_registering.xml create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_success.xml create mode 100644 Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_send_to_machine.xml (limited to 'Software/Android_Studio') diff --git a/Software/Android_Studio/ColorCapture/app/build.gradle b/Software/Android_Studio/ColorCapture/app/build.gradle index 7cfa48485..aac081d1c 100644 --- a/Software/Android_Studio/ColorCapture/app/build.gradle +++ b/Software/Android_Studio/ColorCapture/app/build.gradle @@ -23,7 +23,7 @@ android { buildTypes { debug { - buildConfigField "String", "WEB_SERVICE_ADDRESS", "\"http://10.100.102.43:45455/api/\"" + buildConfigField "String", "WEB_SERVICE_ADDRESS", "\"http://192.168.1.86:45455/api/\"" buildConfigField "String", "WEB_SERVICE_APP_ID", "\"Tdf793i4ughsiduf8749509237885ehgfdlkghlT\"" } 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 index 424671341..242702fe9 100644 --- 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 @@ -68,6 +68,7 @@ public class CircleActionButton extends FrameLayout implements View.OnTouchListe else if (motionEvent.getAction() == MotionEvent.ACTION_UP) { animateUp(); + performClick(); } return true; 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 a6216608f..498e3776d 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,7 +1,9 @@ package com.twine.colorcapture.dagger; +import com.twine.colorcapture.dialogs.error.ErrorDialog; import com.twine.colorcapture.dialogs.processing.ProcessingDialog; -import com.twine.colorcapture.dialogs.registering.RegisteringDialog; +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.mycolors.MyColorsFragment; @@ -9,6 +11,7 @@ import com.twine.colorcapture.views.loading.LoadingActivity; import com.twine.colorcapture.views.main.MainActivity; import com.twine.colorcapture.views.register.RegisterFragment; import com.twine.colorcapture.views.result.ResultFragment; +import com.twine.colorcapture.views.sendtomachine.SendToMachineFragment; import javax.inject.Singleton; @@ -38,5 +41,11 @@ public interface ApplicationComponent void inject(RegisterFragment registerFragment); - void inject(RegisteringDialog registeringDialog); + void inject(ProgressDialog progressDialog); + + void inject(ErrorDialog errorDialog); + + void inject(SuccessDialog successDialog); + + void inject(SendToMachineFragment sendToMachineFragment); } 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 cb8290bb0..40a49f021 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,8 +1,10 @@ package com.twine.colorcapture.dagger; import com.squareup.otto.Bus; +import com.twine.colorcapture.dialogs.error.ErrorDialogVM; import com.twine.colorcapture.dialogs.processing.ProcessingDialogVM; -import com.twine.colorcapture.dialogs.registering.RegisteringDialogVM; +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; @@ -12,8 +14,8 @@ 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.result.ResultFragmentVM; +import com.twine.colorcapture.views.sendtomachine.SendToMachineFragmentVM; import com.twine.colorcapture.web.ITCCService; -import com.twine.colorcapture.web.IWebServiceAPI; import javax.inject.Singleton; @@ -72,16 +74,37 @@ public class ViewModelsModule @Provides @Singleton - public RegisterFragmentVM provideRegisterFragmentVM(INotificationProvider notificationProvider,ITCCService tccService) + public RegisterFragmentVM provideRegisterFragmentVM(INotificationProvider notificationProvider, INavigationProvider navigationProvider, ITCCService tccService,Bus eventBus) { - return new RegisterFragmentVM(notificationProvider,tccService); + return new RegisterFragmentVM(notificationProvider,navigationProvider,tccService,eventBus); } @Provides @Singleton - public RegisteringDialogVM provideRegisteringDialogVM() + public SendToMachineFragmentVM provideSendMachineFragmentVM(INotificationProvider notificationProvider, INavigationProvider navigationProvider) { - return new RegisteringDialogVM(); + return new SendToMachineFragmentVM(notificationProvider,navigationProvider); + } + + @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 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 +{ + + @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..4bc2dbb36 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/error/ErrorDialogVM.java @@ -0,0 +1,26 @@ +package com.twine.colorcapture.dialogs.error; + +import com.twine.colorcapture.mvvm.DependencyProperty; +import com.twine.colorcapture.mvvm.DialogViewModelBase; + +public class ErrorDialogVM extends DialogViewModelBase +{ + public DependencyProperty title; + public DependencyProperty message; + + public ErrorDialogVM() + { + title = new DependencyProperty<>(""); + message = new DependencyProperty<>(""); + } + + 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/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 +{ + @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..4b7dc1d34 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/progress/ProgressDialogVM.java @@ -0,0 +1,26 @@ +package com.twine.colorcapture.dialogs.progress; + +import com.twine.colorcapture.mvvm.DependencyProperty; +import com.twine.colorcapture.mvvm.DialogViewModelBase; + +public class ProgressDialogVM extends DialogViewModelBase +{ + public DependencyProperty title; + public DependencyProperty message; + + public ProgressDialogVM() + { + title = new DependencyProperty<>(""); + message = new DependencyProperty<>(""); + } + + 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/dialogs/registering/RegisteringDialog.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/registering/RegisteringDialog.java deleted file mode 100644 index fa18b2fe2..000000000 --- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/registering/RegisteringDialog.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.twine.colorcapture.dialogs.registering; - -import com.twine.colorcapture.App; -import com.twine.colorcapture.R; -import com.twine.colorcapture.databinding.DialogRegisteringBinding; -import com.twine.colorcapture.mvvm.DialogBase; - -public class RegisteringDialog extends DialogBase -{ - - @Override - public int getLayoutId() - { - return R.layout.dialog_registering; - } - - @Override - public void inject() - { - App.getComponent().inject(this); - } -} diff --git a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/registering/RegisteringDialogVM.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/registering/RegisteringDialogVM.java deleted file mode 100644 index bae4b9bfb..000000000 --- a/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/registering/RegisteringDialogVM.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.twine.colorcapture.dialogs.registering; - -import com.twine.colorcapture.mvvm.DialogViewModelBase; -import com.twine.colorcapture.web.ITCCService; - -public class RegisteringDialogVM extends DialogViewModelBase -{ - -} 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 +{ + @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..b1fb00129 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/success/SuccessDialogVM.java @@ -0,0 +1,26 @@ +package com.twine.colorcapture.dialogs.success; + +import com.twine.colorcapture.mvvm.DependencyProperty; +import com.twine.colorcapture.mvvm.DialogViewModelBase; + +public class SuccessDialogVM extends DialogViewModelBase +{ + public DependencyProperty title; + public DependencyProperty message; + + public SuccessDialogVM() + { + title = new DependencyProperty<>(""); + message = new DependencyProperty<>(""); + } + + 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/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/mvvm/DialogBase.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DialogBase.java index 7f6dfe042..cb7a558c5 100644 --- 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 @@ -14,6 +14,8 @@ 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; @@ -31,6 +33,7 @@ public abstract class DialogBase onDismissListener; private View rootView; + private boolean dismissed; /** @@ -50,8 +53,6 @@ public abstract class DialogBase void showDialog(DialogBase dialog, IAction1 onDismiss) { + closeDialog(); lastDialog = dialog; FragmentTransaction ft = activity.getFragmentManager().beginTransaction(); Fragment prev = activity.getFragmentManager().findFragmentByTag("dialog"); @@ -65,6 +72,86 @@ public class AndroidNotificationProvider implements INotificationProvider dialog.show(ft, "dialog"); } + @Override + public ProgressDialogVM showProgress(String title, String message, IAction1 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 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 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 closeDialog() { 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 a40aeaac4..b1295a8b4 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 @@ -4,6 +4,10 @@ import android.app.Activity; import com.twine.colorcapture.core.IAction; import com.twine.colorcapture.core.IAction1; +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; @@ -31,6 +35,29 @@ public interface INotificationProvider */ void showDialog(DialogBase dialog, IAction1 onDismiss); + /** + * Displays a progress dialog... + * @param title + * @param message + */ + ProgressDialogVM showProgress(String title, String message, IAction1 onDismiss); + + /** + * Displays a success dialog. + * @param title + * @param message + * @param onDismiss + */ + void showSuccess(String title, String message, IAction1 onDismiss); + + /** + * Displays an error dialog. + * @param title + * @param message + * @param onDismiss + */ + void showError(String title, String message, IAction1 onDismiss); + /** * Closes the last dialog. */ 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 b9dddc6f2..4da73e988 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 @@ -336,8 +336,7 @@ public class CaptureFragment extends FragmentBase implements ICaptureFragmentListener 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 index afa551345..ffb2c44c4 100644 --- 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 @@ -1,7 +1,5 @@ package com.twine.colorcapture.views.register; -import android.app.Fragment; - import com.twine.colorcapture.App; import com.twine.colorcapture.R; import com.twine.colorcapture.databinding.FragmentRegisterBinding; 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 index 79f02c866..3641e89ee 100644 --- 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 @@ -2,14 +2,19 @@ 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.registering.RegisteringDialog; +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; @@ -17,15 +22,20 @@ import javax.inject.Inject; public class RegisterFragmentVM extends ViewModelBase { + private Bus eventBus; private INotificationProvider notificationProvider; + private INavigationProvider navigationProvider; private ITCCService tccService; public DependencyProperty serialNumber; public RelayCommand registerCommand; @Inject - public RegisterFragmentVM(INotificationProvider notificationProvider, ITCCService tccService) + 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); @@ -35,7 +45,7 @@ public class RegisterFragmentVM extends ViewModelBase { AtomicBoolean abort = new AtomicBoolean(false); - notificationProvider.showDialog(new RegisteringDialog(), (vm) -> + ProgressDialogVM pVM = notificationProvider.showProgress("Register your system","Please wait while we register\nyour system...", (vm) -> { abort.set(true); }); @@ -45,11 +55,23 @@ public class RegisterFragmentVM extends ViewModelBase try { - tccService.register(serialNumber.get()); + 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 { @@ -58,13 +80,10 @@ public class RegisterFragmentVM extends ViewModelBase } catch (Exception ex) { + pVM.close(); //TODO: display error message! Log.i("REGISTER", ex.getMessage()); } - finally - { - notificationProvider.closeDialog(); - } }).build().start(); } 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 index 63b0aa476..2e5639154 100644 --- 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 @@ -4,7 +4,7 @@ import android.util.Log; import com.squareup.otto.Bus; import com.squareup.otto.Subscribe; -import com.twine.colorcapture.Messages.ColorDetectedMessage; +import com.twine.colorcapture.messages.MachineRegisteredMessage; import com.twine.colorcapture.mvvm.DependencyProperty; import com.twine.colorcapture.mvvm.RelayCommand; import com.twine.colorcapture.mvvm.ViewModelBase; @@ -21,6 +21,7 @@ public class ResultFragmentVM extends ViewModelBase implements public DependencyProperty isCameraColorToggled; public DependencyProperty detectionResponse; + public DependencyProperty isMachineRegistred; public RelayCommand toggleCameraColorCommand; public RelayCommand emailCommand; public RelayCommand renameCommand; @@ -33,6 +34,7 @@ public class ResultFragmentVM extends ViewModelBase implements this.navigationProvider = navigationProvider; isCameraColorToggled = new DependencyProperty<>(false); + isMachineRegistred = new DependencyProperty<>(false); detectionResponse = new DependencyProperty<>(new DetectionResponse()); toggleCameraColorCommand = new RelayCommand(this::toggleCameraColor); emailCommand = new RelayCommand(this::handleEmailCommand); @@ -43,6 +45,12 @@ public class ResultFragmentVM extends ViewModelBase implements eventBus.register(this); } + @Subscribe + public void handleMachineRegisteredMessage(MachineRegisteredMessage msg) + { + isMachineRegistred.set(true); + } + private void handlerRegisterMachineCommand() { navigationProvider.navigateTo(NavigationFragment.Register, true, false); @@ -50,6 +58,7 @@ public class ResultFragmentVM extends ViewModelBase implements private void handleSendToMachineCommand() { + navigationProvider.navigateWithObjectTo(NavigationFragment.SendToMachine, true, false, detectionResponse.get().getProcessedColor()); } private void handleRenameCommand() 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 +{ + + @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..d6eb15d34 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/sendtomachine/SendToMachineFragmentVM.java @@ -0,0 +1,24 @@ +package com.twine.colorcapture.views.sendtomachine; + +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.messages.DetectionColor; + +import javax.inject.Inject; + +public class SendToMachineFragmentVM extends ViewModelBase implements INavigationObjectReceiver +{ + @Inject + public SendToMachineFragmentVM(INotificationProvider notificationProvider, INavigationProvider navigationProvider) + { + + } + + @Override + public void onNavigationObjectReceived(DetectionColor detectionColor) + { + DetectionColor color = detectionColor; + } +} 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 Binary files /dev/null and b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/success.png 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 Binary files /dev/null and b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/success.png 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 Binary files /dev/null and b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/success.png 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 Binary files /dev/null and b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/success.png 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 Binary files /dev/null and b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/success.png differ 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 Binary files /dev/null and b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable/error.png differ 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..bd8dad40c --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_error.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_registering.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_registering.xml deleted file mode 100644 index 4b4044bcf..000000000 --- a/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_registering.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - 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..5cba917ec --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_success.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + 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 index 07091267b..1bf65d15b 100644 --- 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 @@ -200,17 +200,28 @@ android:clickable="true" bind:command="@{vm.renameCommand}"/> + + + android:layout_marginTop="15dp" + android:visibility="@{vm.isMachineRegistred ? View.GONE : View.VISIBLE}"> + + + + + + + + + + + + + + + + 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 608b5ed13..cbf34a8c3 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 @@ -16,8 +16,6 @@ #ffffffff - - -- cgit v1.3.1