diff options
56 files changed, 437 insertions, 77 deletions
diff --git a/Software/Android_Studio/ColorCapture/app/build.gradle b/Software/Android_Studio/ColorCapture/app/build.gradle index 9a9df5b1a..83ed47583 100644 --- a/Software/Android_Studio/ColorCapture/app/build.gradle +++ b/Software/Android_Studio/ColorCapture/app/build.gradle @@ -67,5 +67,4 @@ dependencies { annotationProcessor 'com.google.dagger:dagger-android-processor:2.11' annotationProcessor 'com.google.dagger:dagger-compiler:2.11' compile 'com.yanzhenjie.zbar:zbar:1.0.0' - implementation project(':onboarding') } 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 700cb74ca..7f97483b6 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,5 +1,6 @@ package com.twine.colorcapture.dagger; +import com.twine.colorcapture.dialogs.welcome.WelcomeDialog; import com.twine.colorcapture.views.capture.CaptureFragment; import com.twine.colorcapture.views.mycolors.MyColorsFragment; import com.twine.colorcapture.views.loading.LoadingActivity; @@ -25,4 +26,6 @@ public interface ApplicationComponent void inject(MyColorsFragment view); void inject(CaptureFragment view); + + void inject(WelcomeDialog welcomeDialog); } 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 5726fdb71..1a017a7fc 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,6 +1,7 @@ package com.twine.colorcapture.dagger; import com.squareup.otto.Bus; +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; @@ -48,4 +49,11 @@ public class ViewModelsModule { return new CaptureFragmentVM(); } + + @Provides + @Singleton + public WelcomeDialogVM provideWelcomeDialogVM(INotificationProvider notificationProvider) + { + return new WelcomeDialogVM(notificationProvider); + } } 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..5f92fff0e --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/welcome/WelcomeDialog.java @@ -0,0 +1,22 @@ +package com.twine.colorcapture.dialogs.welcome; + +import com.twine.colorcapture.App; +import com.twine.colorcapture.R; +import com.twine.colorcapture.mvvm.DialogBase; +import com.twine.colorcapture.databinding.DialogWelcomeBinding; + +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..f89ef2559 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/dialogs/welcome/WelcomeDialogVM.java @@ -0,0 +1,24 @@ +package com.twine.colorcapture.dialogs.welcome; + +import com.twine.colorcapture.mvvm.DialogViewModelBase; +import com.twine.colorcapture.mvvm.RelayCommand; +import com.twine.colorcapture.notification.INotificationProvider; + +import javax.inject.Inject; + +public class WelcomeDialogVM extends DialogViewModelBase +{ + public RelayCommand startCommand; + + @Inject + public WelcomeDialogVM(INotificationProvider notificationProvider) + { + super(notificationProvider); + startCommand = new RelayCommand(this::close); + } + + public String getText() + { + return "Hi Roy"; + } +} 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 7878d1b81..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,10 +1,10 @@ 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; @@ -29,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. @@ -68,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); @@ -79,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/DialogBase.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DialogBase.java new file mode 100644 index 000000000..e17fb7724 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DialogBase.java @@ -0,0 +1,100 @@ +package com.twine.colorcapture.mvvm; + +import android.app.Dialog; +import android.app.DialogFragment; +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.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.twine.colorcapture.R; + + +import java.lang.reflect.Method; + +import javax.inject.Inject; + +import butterknife.ButterKnife; + +public abstract class DialogBase<BindingView extends ViewDataBinding, VM extends DialogViewModelBase> extends DialogFragment +{ + /** + * 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) + { + + inject(); + + binding = DataBindingUtil.inflate(LayoutInflater.from(getActivity()),getLayoutId(), null, false); + + Method method = null; + try + { + method = binding.getClass().getDeclaredMethod("setVm", vm.getClass()); + method.invoke(binding, vm); + + ButterKnife.bind(this, binding.getRoot()); + + return binding.getRoot(); + } + catch (Exception ex) + { + ex.printStackTrace(); + return null; + } + } + + @Override + public void onStart() + { + super.onStart(); + + getDialog().getWindow().setBackgroundDrawable(getActivity().getDrawable(R.color.colorBlueMask)); + + +// Dialog dialog = getDialog(); +// if (dialog != null) +// { +// int width = ViewGroup.LayoutParams.WRAP_CONTENT; +// int height = ViewGroup.LayoutParams.WRAP_CONTENT; +// dialog.getWindow().setLayout(width, height); +// dialog.getWindow().setA +// } + } + + public abstract int getLayoutId(); + + public abstract void inject(); + + public VM getVM() + { + return vm; + } +} 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..77c044178 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/mvvm/DialogViewModelBase.java @@ -0,0 +1,18 @@ +package com.twine.colorcapture.mvvm; + +import com.twine.colorcapture.notification.INotificationProvider; + +public abstract class DialogViewModelBase extends ViewModelBase +{ + protected INotificationProvider notificationProvider; + + public DialogViewModelBase(INotificationProvider notificationProvider) + { + this.notificationProvider = notificationProvider; + } + + public void close() + { + notificationProvider.closeDialog(); + } +} 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 88cee5a8f..70dd04372 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,5 +1,6 @@ package com.twine.colorcapture.navigation; +import android.app.Activity; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.content.Context; @@ -23,7 +24,7 @@ import javax.inject.Inject; */ public class AndroidNavigationProvider extends ExtendedObject implements INavigationProvider { - private AppCompatActivity activity; + private Activity activity; private FragmentBase currentFragment; private String currentFragmentName; private int fragment_container; @@ -40,7 +41,7 @@ public class AndroidNavigationProvider extends ExtendedObject implements INaviga } @Override - public void registerNavigationActivity(AppCompatActivity activity, int fragmentContainerId) + public void registerNavigationActivity(Activity activity, int fragmentContainerId) { this.activity = activity; this.fragment_container = fragmentContainerId; 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 60440d4e3..dc4bb83d4 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; @@ -21,7 +21,7 @@ public interface INavigationProvider * @param activity the activity * @param fragmentContainerId the fragment container id */ - void registerNavigationActivity(AppCompatActivity activity, int fragmentContainerId); + void registerNavigationActivity(Activity activity, int fragmentContainerId); /** * Navigate to the specified fragment name. 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..f3081754c 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,15 @@ 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.dialogs.welcome.WelcomeDialog; +import com.twine.colorcapture.mvvm.DialogBase; import com.twine.colorcapture.mvvm.IView; @@ -15,6 +20,8 @@ public class AndroidNotificationProvider implements INotificationProvider { private Context context; + private Activity activity; + private DialogBase lastDialog; /** * Instantiates a new Android notification provider. @@ -25,33 +32,41 @@ 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(); } - + @Override - public void showMessage(IView view, String message) + public void showDialog(DialogBase dialog) { - showMessage(view, message, null); + lastDialog = dialog; + FragmentTransaction ft = activity.getFragmentManager().beginTransaction(); + Fragment prev = activity.getFragmentManager().findFragmentByTag("dialog"); + if (prev != null) { + ft.remove(prev); + } + ft.addToBackStack(null); + + //show the dialog. + dialog.show(ft, "dialog"); } - + @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..7f972f3a3 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,9 @@ package com.twine.colorcapture.notification; +import android.app.Activity; + import com.twine.colorcapture.core.IAction; +import com.twine.colorcapture.mvvm.DialogBase; import com.twine.colorcapture.mvvm.IView; @@ -9,29 +12,24 @@ import com.twine.colorcapture.mvvm.IView; */ public interface INotificationProvider { - + + void registerMainActivity(Activity activity); + /** * Toast. * * @param message the message */ void toast(String message); - + /** - * Show message. - * - * @param view the view - * @param message the message + * Display the specified dialog. + * @param dialog */ - void showMessage(IView view, String message); - + void showDialog(DialogBase dialog); + /** - * Show message. - * - * @param view the view - * @param message the message - * @param action the action + * 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/views/loading/LoadingActivity.java b/Software/Android_Studio/ColorCapture/app/src/main/java/com/twine/colorcapture/views/loading/LoadingActivity.java index 1f14b0d0c..ae38d2368 100644 --- 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 @@ -29,19 +29,9 @@ public class LoadingActivity extends ActivityBase<ActivityLoadingBinding, Loadin public INavigationProvider navigationProvider; @Override - protected void onCreate(Bundle savedInstanceState) + protected void onCreating(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - new Handler().postDelayed(() -> - { -// Intent intent = new Intent(getApplicationContext(), MainActivity.class); -// intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY); -// startActivity(intent); - - navigationProvider.navigateTo(NavigationActivity.Main,true); - - },5000); } @Override 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 index fcf4aaac7..a7a3affff 100644 --- 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 @@ -1,11 +1,14 @@ package com.twine.colorcapture.views.loading; import android.os.CountDownTimer; +import android.os.Handler; import com.squareup.otto.Bus; +import com.twine.colorcapture.core.Task; 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; @@ -19,9 +22,7 @@ public class LoadingActivityVM extends ViewModelBase<ILoadingActivity> @Inject public LoadingActivityVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider) { - this.navigationProvider = navigationProvider; - loadingProgress = new DependencyProperty<>(0); } @@ -30,21 +31,22 @@ public class LoadingActivityVM extends ViewModelBase<ILoadingActivity> { super.onViewAttached(view); -// new CountDownTimer(5000,50) -// { -// -// @Override -// public void onTick(long l) { -// -// loadingProgress.set(loadingProgress.get() + 50); -// } -// -// @Override -// public void onFinish() { -// -// loadingProgress.set(2000); -// navigationProvider.navigateTo(NavigationFragment.MyColors, false); -// } -// }.start(); + new Task.TaskBuilder().setAction(() -> + { + try + { + Thread.sleep(5000); + } catch (InterruptedException e) + { + e.printStackTrace(); + } + + + }).setContinueWith(() -> + { + + navigationProvider.navigateTo(NavigationActivity.Main,true); + + }).build().start(); } } 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 61bf052b1..f50d4a5c4 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,19 +1,25 @@ package com.twine.colorcapture.views.main; +import android.app.Fragment; +import android.app.FragmentTransaction; +import android.graphics.drawable.Drawable; import android.os.Bundle; 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.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.navigation.INavigationProvider; import com.twine.colorcapture.navigation.NavigationFragment; +import com.twine.colorcapture.notification.INotificationProvider; import javax.inject.Inject; @@ -25,6 +31,9 @@ public class MainActivity extends ActivityBase<ActivityMainBinding, MainActivity @Inject public INavigationProvider navigationProvider; + @Inject + public INotificationProvider notificationProvider; + @BindView(R.id.btnMenu) ToggleImageButton btnMenu; @@ -41,11 +50,10 @@ public class MainActivity extends ActivityBase<ActivityMainBinding, MainActivity } @Override - protected void onCreate(Bundle savedInstanceState) + protected void onCreating(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - navigationProvider.registerNavigationActivity(this, R.id.fragment_container); + notificationProvider.registerMainActivity(this); Log.d("TCC", "Registering event listener..."); 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 9410f4174..b5ddc1c2d 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,6 +1,7 @@ package com.twine.colorcapture.views.main; import com.squareup.otto.Bus; +import com.twine.colorcapture.dialogs.welcome.WelcomeDialog; import com.twine.colorcapture.mvvm.DependencyProperty; import com.twine.colorcapture.mvvm.ViewModelBase; import com.twine.colorcapture.navigation.INavigationProvider; @@ -19,6 +20,7 @@ public class MainActivityVM extends ViewModelBase<IMainActivity> } private INavigationProvider navigationProvider; + private INotificationProvider notificationProvider; private CurrentTab currentTab; public DependencyProperty<Boolean> isMoreToggled; @@ -29,6 +31,7 @@ public class MainActivityVM extends ViewModelBase<IMainActivity> public MainActivityVM(Bus eventBus, INotificationProvider notificationProvider, INavigationProvider navigationProvider) { this.navigationProvider = navigationProvider; + this.notificationProvider = notificationProvider; isMoreToggled = new DependencyProperty<Boolean>(false,this::onMoreToggled); isCaptureToggled = new DependencyProperty<Boolean>(false,this::onCaptureToggled); isMyColorsToggled = new DependencyProperty<Boolean>(false,this::onMyColorsToggled); @@ -47,6 +50,13 @@ public class MainActivityVM extends ViewModelBase<IMainActivity> } } + @Override + protected void onViewAttached(IMainActivity view) + { + super.onViewAttached(view); + notificationProvider.showDialog(new WelcomeDialog()); + } + private void onMyColorsToggled(DependencyProperty<Boolean> booleanDependencyProperty, Boolean value) { setCurrentTab(CurrentTab.MyColors); 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 Binary files differnew file mode 100644 index 000000000..a18946b8e --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/darkening.png 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 Binary files differnew file mode 100644 index 000000000..33849c970 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-hdpi/twine_card.png 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 Binary files differnew file mode 100644 index 000000000..58cf40d6a --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/darkening.png 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 Binary files differnew file mode 100644 index 000000000..1b77e264e --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-mdpi/twine_card.png 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 Binary files differnew file mode 100644 index 000000000..f50441f22 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/darkening.png 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 Binary files differnew file mode 100644 index 000000000..4eb5dc787 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xhdpi/twine_card.png 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 Binary files differnew file mode 100644 index 000000000..ff47c2bd1 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/darkening.png 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 Binary files differnew file mode 100644 index 000000000..d095059bb --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxhdpi/twine_card.png 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 Binary files differnew file mode 100644 index 000000000..d55bc070d --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/darkening.png 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 Binary files differnew file mode 100644 index 000000000..857f83930 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/drawable-xxxhdpi/twine_card.png 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/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/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/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 Binary files differnew file mode 100644 index 000000000..0341d05db --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_black.otf 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 Binary files differnew file mode 100644 index 000000000..2b9144e5c --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_bold.otf 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 Binary files differnew file mode 100644 index 000000000..27af39094 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_light.otf 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 Binary files differnew file mode 100644 index 000000000..04b2a8853 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_medium.otf 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 Binary files differnew file mode 100644 index 000000000..2703ba3f3 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_regular.otf 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 Binary files differnew file mode 100644 index 000000000..666c69931 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/font/flexo_thin.otf 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 index 9fb6a6d0e..8ab79ffe2 100644 --- 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 @@ -51,7 +51,7 @@ android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_centerHorizontal="true" - bind:srcCompat="@drawable/twine_logo" /> + android:src="@drawable/twine_logo" /> </RelativeLayout> </FrameLayout> 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..cacc97715 --- /dev/null +++ b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/dialog_welcome.xml @@ -0,0 +1,104 @@ +<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:layoutDirection="ltr" + android:layout_width="match_parent" + android:layout_height="match_parent" + 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/fragment_capture.xml b/Software/Android_Studio/ColorCapture/app/src/main/res/layout/fragment_capture.xml index 0dd8ed653..a175b87d2 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 @@ -109,11 +109,12 @@ android:paddingLeft="40dp" android:paddingRight="40dp"> - <TextView + <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" /> </FrameLayout> 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 index 07b373724..9921a92a5 100644 --- 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 @@ -30,7 +30,7 @@ android:adjustViewBounds="true" android:background="@color/colorPrimaryDark" android:scaleType="fitXY" - app:srcCompat="@drawable/hand_phone" /> + android:src="@drawable/hand_phone" /> <TextView android:id="@+id/txtUserName" 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 4eaef06cb..d6c70f6c7 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 @@ -10,4 +10,7 @@ <color name="colorTransparent">#00000000</color> <color name="colorPrimaryBackground">#0e2340</color> + + <color name="colorBlueMask">#EB09172A</color> + <color name="colorWhiteMask">#B71D3150</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 934bc49fb..841774671 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 @@ -5,4 +5,10 @@ <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> </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/DB/TCC/TCC.mdf b/Software/DB/TCC/TCC.mdf Binary files differindex 7d00d6cd5..afd2508ab 100644 --- a/Software/DB/TCC/TCC.mdf +++ b/Software/DB/TCC/TCC.mdf diff --git a/Software/DB/TCC/TCC_log.ldf b/Software/DB/TCC/TCC_log.ldf Binary files differindex 2d7b5e18a..6f82f9552 100644 --- a/Software/DB/TCC/TCC_log.ldf +++ b/Software/DB/TCC/TCC_log.ldf diff --git a/Software/Graphics/Mobile/zeplin/drawable-hdpi/darkening.png b/Software/Graphics/Mobile/zeplin/drawable-hdpi/darkening.png Binary files differnew file mode 100644 index 000000000..a18946b8e --- /dev/null +++ b/Software/Graphics/Mobile/zeplin/drawable-hdpi/darkening.png diff --git a/Software/Graphics/Mobile/zeplin/drawable-hdpi/twine_card.png b/Software/Graphics/Mobile/zeplin/drawable-hdpi/twine_card.png Binary files differnew file mode 100644 index 000000000..33849c970 --- /dev/null +++ b/Software/Graphics/Mobile/zeplin/drawable-hdpi/twine_card.png diff --git a/Software/Graphics/Mobile/zeplin/drawable-mdpi/darkening.png b/Software/Graphics/Mobile/zeplin/drawable-mdpi/darkening.png Binary files differnew file mode 100644 index 000000000..58cf40d6a --- /dev/null +++ b/Software/Graphics/Mobile/zeplin/drawable-mdpi/darkening.png diff --git a/Software/Graphics/Mobile/zeplin/drawable-mdpi/twine_card.png b/Software/Graphics/Mobile/zeplin/drawable-mdpi/twine_card.png Binary files differnew file mode 100644 index 000000000..1b77e264e --- /dev/null +++ b/Software/Graphics/Mobile/zeplin/drawable-mdpi/twine_card.png diff --git a/Software/Graphics/Mobile/zeplin/drawable-xhdpi/darkening.png b/Software/Graphics/Mobile/zeplin/drawable-xhdpi/darkening.png Binary files differnew file mode 100644 index 000000000..f50441f22 --- /dev/null +++ b/Software/Graphics/Mobile/zeplin/drawable-xhdpi/darkening.png diff --git a/Software/Graphics/Mobile/zeplin/drawable-xhdpi/twine_card.png b/Software/Graphics/Mobile/zeplin/drawable-xhdpi/twine_card.png Binary files differnew file mode 100644 index 000000000..4eb5dc787 --- /dev/null +++ b/Software/Graphics/Mobile/zeplin/drawable-xhdpi/twine_card.png diff --git a/Software/Graphics/Mobile/zeplin/drawable-xxhdpi/darkening.png b/Software/Graphics/Mobile/zeplin/drawable-xxhdpi/darkening.png Binary files differnew file mode 100644 index 000000000..ff47c2bd1 --- /dev/null +++ b/Software/Graphics/Mobile/zeplin/drawable-xxhdpi/darkening.png diff --git a/Software/Graphics/Mobile/zeplin/drawable-xxhdpi/twine_card.png b/Software/Graphics/Mobile/zeplin/drawable-xxhdpi/twine_card.png Binary files differnew file mode 100644 index 000000000..d095059bb --- /dev/null +++ b/Software/Graphics/Mobile/zeplin/drawable-xxhdpi/twine_card.png diff --git a/Software/Graphics/Mobile/zeplin/drawable-xxxhdpi/darkening.png b/Software/Graphics/Mobile/zeplin/drawable-xxxhdpi/darkening.png Binary files differnew file mode 100644 index 000000000..d55bc070d --- /dev/null +++ b/Software/Graphics/Mobile/zeplin/drawable-xxxhdpi/darkening.png diff --git a/Software/Graphics/Mobile/zeplin/drawable-xxxhdpi/twine_card.png b/Software/Graphics/Mobile/zeplin/drawable-xxxhdpi/twine_card.png Binary files differnew file mode 100644 index 000000000..857f83930 --- /dev/null +++ b/Software/Graphics/Mobile/zeplin/drawable-xxxhdpi/twine_card.png |
