From 5da415d6935bd6faa8c49db66f11015a8050bf4d Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Thu, 8 Nov 2018 12:03:06 +0200 Subject: Moved android project and new project. Visual Studio Timeout Task! --- .../com/twine/tango/sharedui/TangoApplication.java | 73 --------- .../sharedui/binding_adapters/BindingAdapters.java | 132 ---------------- .../binding_converters/ObjectToIntConverter.java | 22 --- .../tango/sharedui/containers/ActivityBase.java | 150 ------------------ .../containers/ActivityCallbackService.java | 88 ----------- .../tango/sharedui/containers/FragmentBase.java | 154 ------------------ .../tango/sharedui/containers/FragmentBaseV4.java | 132 ---------------- .../tango/sharedui/editors/IParameterized.java | 51 ------ .../sharedui/editors/ParameterAnnotation.java | 51 ------ .../tango/sharedui/editors/ParameterItem.java | 172 --------------------- .../sharedui/editors/ParameterizedEditor.java | 79 ---------- .../tango/sharedui/mvvm/DependencyProperty.java | 115 -------------- .../com/twine/tango/sharedui/mvvm/FieldUtils.java | 54 ------- .../java/com/twine/tango/sharedui/mvvm/IView.java | 21 --- .../twine/tango/sharedui/mvvm/ReadOnlyField.java | 55 ------- .../twine/tango/sharedui/mvvm/RelayCommand.java | 114 -------------- .../twine/tango/sharedui/mvvm/ViewModelBase.java | 61 -------- .../navigation/AndroidNavigationProvider.java | 120 -------------- .../sharedui/navigation/INavigationProvider.java | 51 ------ .../notifications/AndroidNotificationProvider.java | 57 ------- .../notifications/INotificationProvider.java | 37 ----- .../twine/tango/sharedui/paging/PagerAdapter.java | 82 ---------- .../tango/sharedui/paging/PagerZoomTransform.java | 47 ------ .../tango/sharedui/validation/IViewValidator.java | 23 --- 24 files changed, 1941 deletions(-) delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/TangoApplication.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/binding_adapters/BindingAdapters.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/binding_converters/ObjectToIntConverter.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/containers/ActivityBase.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/containers/ActivityCallbackService.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/containers/FragmentBase.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/containers/FragmentBaseV4.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/editors/IParameterized.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/editors/ParameterAnnotation.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/editors/ParameterItem.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/editors/ParameterizedEditor.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/DependencyProperty.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/FieldUtils.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/IView.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/ReadOnlyField.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/RelayCommand.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/ViewModelBase.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/navigation/AndroidNavigationProvider.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/navigation/INavigationProvider.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/notifications/AndroidNotificationProvider.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/notifications/INotificationProvider.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/paging/PagerAdapter.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/paging/PagerZoomTransform.java delete mode 100644 Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/validation/IViewValidator.java (limited to 'Software/Android_Studio/Tango.SharedUI/src/main/java') diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/TangoApplication.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/TangoApplication.java deleted file mode 100644 index aacb35350..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/TangoApplication.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.twine.tango.sharedui; - -import android.annotation.SuppressLint; -import android.app.Application; -import android.content.Context; - -import com.google.protobuf.GeneratedMessageV3; -import com.twine.tango.core.ContextHelper; -import com.twine.tango.dal.TangoDB; -import com.twine.tango.logging.FileLogger; -import com.twine.tango.logging.LogCatLogger; -import com.twine.tango.logging.LogManager; -import com.twine.tango.pmr.MessageFactory; -import com.twine.tango.web.WebApiFactory; - -import net.danlew.android.joda.JodaTimeAndroid; - -import java.io.File; - - -/** - * Represents a base application structure for all Tango application. - */ -public class TangoApplication extends Application -{ - @SuppressLint("StaticFieldLeak") - protected static Context context; - - @Override - public void onCreate() - { - super.onCreate(); - - context = getApplicationContext(); - - - JodaTimeAndroid.init(context); - - ContextHelper.init(context); - - LogManager logManager = LogManager.getDefault(); - - LogCatLogger logCatLogger = new LogCatLogger(); - FileLogger fileLogger = new FileLogger(context); - - logManager.registerLogger(logCatLogger); - logManager.registerLogger(fileLogger); - - logManager.log("Logger Initialized. logs will be saved to: " + fileLogger.getFileName()); - - - TangoDB.init(); - MessageFactory.init(); - WebApiFactory.init("http://10.0.2.2:45455/api/"); - - Thread.setDefaultUncaughtExceptionHandler((thread, throwable) -> { - - throwable.printStackTrace(); - logManager.log(throwable); - System.exit(1); - //TODO: What to do on application crash ? - }); - } - - /** - * Gets the application context. - * - * @return the context - */ - public static Context getContext() { - return context; - } -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/binding_adapters/BindingAdapters.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/binding_adapters/BindingAdapters.java deleted file mode 100644 index 6b6d4b6e9..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/binding_adapters/BindingAdapters.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.twine.tango.sharedui.binding_adapters; - -import android.databinding.BindingAdapter; -import android.databinding.Observable; -import android.databinding.Observable.OnPropertyChangedCallback; -import android.graphics.Bitmap; -import android.text.method.ScrollingMovementMethod; -import android.widget.ImageView; -import android.widget.ListView; -import android.widget.TextView; - -import com.hrules.horizontalnumberpicker.HorizontalNumberPicker; -import com.twine.tango.sharedui.editors.IParameterized; -import com.twine.tango.sharedui.editors.ParameterItem; -import com.twine.tango.sharedui.editors.ParameterizedEditor; - - -/** - * Contains data binding adapters used by android data binding engine. - * Methods will be auto detected by android. - */ -public class BindingAdapters -{ - - /** - * Binds an {@link ImageView} source to bitmap on memory. - * - * @param view the view - * @param bitmap the bitmap - */ - @BindingAdapter("android:memory_bitmap") - public static void bitmapAdapter(ImageView view, Bitmap bitmap) - { - if (bitmap != null) - { - view.setImageBitmap(bitmap); - } - } - - /** - * 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); - } - } - - /** - * Binds a {@link ListView} selected item position. - * - * @param view the view - * @param position the position - */ - @BindingAdapter("android:selectedItemPosition") - public static void listViewSelectedItemPosition(ListView view, int position) - { - if (view != null) - { - view.setItemChecked(position, true); - } - } - - /** - * Applies an auto 'scroll to bottom' behavior to a {@link TextView}. - * - * @param view the view - * @param scroll the scroll - */ - @BindingAdapter("android:autoScrollToBottom") - public static void scrollToBottomAdapter(TextView view, Boolean scroll) - { - if (view != null) - { - view.setMovementMethod(new ScrollingMovementMethod()); - } - } - - /** - * Binds a {@link HorizontalNumberPicker} value to a {@link ParameterItem}. - * - * @param view the view - * @param item the item - */ - @BindingAdapter("android:editor_range_adapter") - public static void editorSeekBarAdapter(HorizontalNumberPicker view, ParameterItem item) - { - if (view != null && item != null) - { - boolean block = false; - view.setMinValue((int) item.getMinimum()); - view.setMaxValue((int) item.getMaximum()); - view.setValue((int) ((Double) item.getDefaultValue()).doubleValue()); - - view.setListener((numberPicker, i) -> - { - item.property.setNoChange((double) numberPicker.getValue()); - }); - - item.property.addOnPropertyChangedCallback(new OnPropertyChangedCallback() - { - @Override - public void onPropertyChanged(Observable observable, int i) - { - view.setValue((int) ((Double) item.property.get()).doubleValue()); - } - }); - } - } - - /** - * Binds a {@link ParameterizedEditor} to an {@link IParameterized} object. - * - * @param view the view - * @param object the object - */ - @BindingAdapter("android:parameterizedObject") - public static void parameterizedObjectAdapter(ParameterizedEditor view, IParameterized object) - { - if (view != null && object != null) - { - view.setParameterizedObject(object); - } - } - -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/binding_converters/ObjectToIntConverter.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/binding_converters/ObjectToIntConverter.java deleted file mode 100644 index ee6de2b66..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/binding_converters/ObjectToIntConverter.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.twine.tango.sharedui.binding_converters; - -import android.databinding.BindingConversion; -import android.databinding.InverseBindingMethod; -import android.databinding.InverseMethod; - - -/** - * Contains binding converters which will be auto detected by the android data binding engine. - */ -public class ObjectToIntConverter -{ -// @InverseBindingMethod() -// public static int toObject(int number) { -// return number; -// } -// -// @BindingConversion -// public static int toInt(Object object) { -// return Integer.parseInt(object.toString()); -// } -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/containers/ActivityBase.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/containers/ActivityBase.java deleted file mode 100644 index 4526a4f09..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/containers/ActivityBase.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.twine.tango.sharedui.containers; - -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.widget.EditText; -import android.widget.Toast; - -import com.mobsandgeeks.saripaar.ValidationError; -import com.mobsandgeeks.saripaar.Validator; -import com.twine.tango.sharedui.mvvm.IView; -import com.twine.tango.sharedui.mvvm.ViewModelBase; - -import java.lang.reflect.Method; -import java.util.List; - -import javax.inject.Inject; - -import butterknife.ButterKnife; -import io.reactivex.functions.Consumer; - - -/** - * Represents a base activity with extra features. - * - * @param the type parameter - * @param the type parameter - */ -public abstract class ActivityBase extends AppCompatActivity implements IView, Validator.ValidationListener { - - /** - * The constant ACTIVITY_CALLBACK_INTENT. - */ - protected static final String ACTIVITY_CALLBACK_INTENT = "ACTIVITY_CALLBACK_INTENT"; - - private Consumer lastValidationConsumer; - private Validator validator; - - /** - * Holds the standard View Model instance. - */ - @Inject - public VM vm; - - /** - * Holds the activity data binding instance. - */ - public BindingView binding; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - inject(); - binding = DataBindingUtil.setContentView(this, getLayoutId()); - try { - - Method method = binding.getClass().getDeclaredMethod("setVm", vm.getClass()); - method.invoke(binding, vm); - - attachView(); - - ButterKnife.bind(this, binding.getRoot()); - - validator = new Validator(this); - validator.setValidationListener(this); - - String key = getIntent().getStringExtra(ACTIVITY_CALLBACK_INTENT); - if (key != null && !key.isEmpty()) { - ActivityCallbackService.getInstance().runAndRemove(key); - } - - } catch (Exception e) { - e.printStackTrace(); - } - } - - @SuppressWarnings("unchecked") - @Override - public void attachView() { - vm.attachView(this); - } - - @Override - public void validateFields(Consumer consumer) { - lastValidationConsumer = consumer; - validator.validate(); - } - - @Override - public void onValidationSucceeded() { - try { - lastValidationConsumer.accept(true); - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Override - public void onValidationFailed(List errors) { - for (ValidationError error : errors) { - View view = error.getView(); - String message = error.getCollatedErrorMessage(this); - - if (view instanceof EditText) { - view.requestFocus(); - ((EditText) view).setError(message); - } else { - Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); - } - } - - if (lastValidationConsumer != null) { - try { - lastValidationConsumer.accept(false); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - /** - * Gets the activity layout resource id. - * - * @return the layout id - */ - protected abstract int getLayoutId(); - - /** - * Performs dagger dependency injection. - */ - protected abstract void inject(); - - /** - * Starts an activity and receive a callback from the new activity onCreate method. - * - * @param activity the activity - * @param callback the callback - */ - public void startActivityNotify(Class activity, Runnable callback) { - - String key = ActivityCallbackService.getInstance().putCallback(callback); - Intent i = new Intent(getApplicationContext(), activity); - i.putExtra(ACTIVITY_CALLBACK_INTENT, key); - startActivity(i); - } -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/containers/ActivityCallbackService.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/containers/ActivityCallbackService.java deleted file mode 100644 index 842d49561..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/containers/ActivityCallbackService.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.twine.tango.sharedui.containers; - -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - - -/** - * Represents an MVVM activity callback service that is responsible for notifying when activities are loaded and ready. - */ -public class ActivityCallbackService -{ - - private static ActivityCallbackService instance; - - private Map callbacks; - - private ActivityCallbackService() { - callbacks = new HashMap<>(); - } - - /** - * Gets instance. - * - * @return the instance - */ - public static ActivityCallbackService getInstance() { - if (instance == null) { - instance = new ActivityCallbackService(); - } - - return instance; - } - - /** - * Put callback. - * - * @param key the key - * @param callback the callback - */ - public void putCallback(String key, Runnable callback) { - callbacks.put(key,callback); - } - - /** - * Put callback string. - * - * @param callback the callback - * @return the string - */ - public String putCallback(Runnable callback) { - - String key = UUID.randomUUID().toString(); - callbacks.put(key,callback); - return key; - } - - /** - * Remove callback. - * - * @param key the key - */ - public void removeCallback(String key) - { - callbacks.remove(key); - } - - /** - * Run. - * - * @param key the key - */ - public void run(String key) - { - callbacks.get(key).run(); - } - - /** - * Run and remove. - * - * @param key the key - */ - public void runAndRemove(String key) - { - callbacks.get(key).run(); - removeCallback(key); - } -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/containers/FragmentBase.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/containers/FragmentBase.java deleted file mode 100644 index 61ed42764..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/containers/FragmentBase.java +++ /dev/null @@ -1,154 +0,0 @@ -package com.twine.tango.sharedui.containers; - -import android.app.Fragment; -import android.databinding.DataBindingUtil; -import android.databinding.ViewDataBinding; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.EditText; -import android.widget.Toast; - -import com.mobsandgeeks.saripaar.ValidationError; -import com.mobsandgeeks.saripaar.Validator; -import com.twine.tango.core.IAction1; -import com.twine.tango.sharedui.mvvm.IView; -import com.twine.tango.sharedui.mvvm.ViewModelBase; - -import java.lang.reflect.Method; -import java.util.List; - -import javax.inject.Inject; - -import butterknife.ButterKnife; -import io.reactivex.functions.Consumer; - -/** - * Represents a an MVVM fragment with extra features. - * - * @param the type parameter - * @param the type parameter - */ -public abstract class FragmentBase extends Fragment implements IView, Validator.ValidationListener { - - private Consumer lastValidationConsumer; - private Validator validator; - private IAction1 onCreateListener; - - /** - * The Vm. - */ - @Inject - VM vm; - - /** - * The Binding. - */ - BindingView binding; - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - - inject(); - binding = DataBindingUtil.inflate(inflater,getLayoutId(),container,false); - - try { - - Method method = binding.getClass().getDeclaredMethod("setVm", vm.getClass()); - method.invoke(binding, vm); - - attachView(); - - ButterKnife.bind(this, binding.getRoot()); - - validator = new Validator(this); - validator.setValidationListener(this); - - if (onCreateListener != null) - { - onCreateListener.invoke(this); - onCreateListener = null; - } - - return binding.getRoot(); - - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - /** - * Sets on create listener. - * - * @param listener the listener - */ - public void setOnCreateListener(IAction1 listener) - { - onCreateListener = listener; - } - - @SuppressWarnings("unchecked") - @Override - public void attachView() { - vm.attachView(this); - } - - @Override - public void validateFields(Consumer consumer) { - lastValidationConsumer = consumer; - validator.validate(); - } - - @Override - public void onValidationSucceeded() { - try { - lastValidationConsumer.accept(true); - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Override - public void onValidationFailed(List errors) { - for (ValidationError error : errors) { - View view = error.getView(); - String message = error.getCollatedErrorMessage(this.getActivity().getBaseContext()); - - if (view instanceof EditText) { - view.requestFocus(); - ((EditText) view).setError(message); - } else { - Toast.makeText(this.getActivity().getBaseContext(), message, Toast.LENGTH_SHORT).show(); - } - } - - if (lastValidationConsumer != null) { - try { - lastValidationConsumer.accept(false); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - /** - * Gets layout id. - * - * @return the layout id - */ - protected abstract int getLayoutId(); - - /** - * Inject. - */ - protected abstract void inject(); - - /** - * Gets title. - * - * @return the title - */ - public abstract String getTitle(); -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/containers/FragmentBaseV4.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/containers/FragmentBaseV4.java deleted file mode 100644 index 5050a64fc..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/containers/FragmentBaseV4.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.twine.tango.sharedui.containers; - -import android.support.v4.app.Fragment; -import android.databinding.DataBindingUtil; -import android.databinding.ViewDataBinding; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.EditText; -import android.widget.Toast; -import com.mobsandgeeks.saripaar.ValidationError; -import com.mobsandgeeks.saripaar.Validator; -import com.twine.tango.sharedui.mvvm.IView; -import com.twine.tango.sharedui.mvvm.ViewModelBase; -import java.lang.reflect.Method; -import java.util.List; -import javax.inject.Inject; -import butterknife.ButterKnife; -import io.reactivex.functions.Consumer; - -/** - * Represents an MVVM fragment that supports tab navigation. - * - * @param the type parameter - * @param the type parameter - */ -public abstract class FragmentBaseV4 extends Fragment implements IView, Validator.ValidationListener { - - private Consumer lastValidationConsumer; - private Validator validator; - - /** - * The Vm. - */ - @Inject - VM vm; - - /** - * The Binding. - */ - BindingView binding; - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - - inject(); - binding = DataBindingUtil.inflate(inflater,getLayoutId(),container,false); - - try { - - Method method = binding.getClass().getDeclaredMethod("setVm", vm.getClass()); - method.invoke(binding, vm); - - attachView(); - - ButterKnife.bind(this, binding.getRoot()); - - validator = new Validator(this); - validator.setValidationListener(this); - - return binding.getRoot(); - - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - @SuppressWarnings("unchecked") - @Override - public void attachView() { - vm.attachView(this); - } - - @Override - public void validateFields(Consumer consumer) { - lastValidationConsumer = consumer; - validator.validate(); - } - - @Override - public void onValidationSucceeded() { - try { - lastValidationConsumer.accept(true); - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Override - public void onValidationFailed(List errors) { - for (ValidationError error : errors) { - View view = error.getView(); - String message = error.getCollatedErrorMessage(this.getContext()); - - if (view instanceof EditText) { - view.requestFocus(); - ((EditText) view).setError(message); - } else { - Toast.makeText(this.getContext(), message, Toast.LENGTH_SHORT).show(); - } - } - - if (lastValidationConsumer != null) { - try { - lastValidationConsumer.accept(false); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - /** - * Gets layout id. - * - * @return the layout id - */ - protected abstract int getLayoutId(); - - /** - * Inject. - */ - protected abstract void inject(); - - /** - * Gets title. - * - * @return the title - */ - public abstract String getTitle(); -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/editors/IParameterized.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/editors/IParameterized.java deleted file mode 100644 index 95b352987..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/editors/IParameterized.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.twine.tango.sharedui.editors; - -import com.twine.tango.sharedui.mvvm.DependencyProperty; - -import java.lang.annotation.Annotation; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; - -/** - * Represents an object that supports binding of it's parameters through the {@link ParameterizedEditor} view. - */ -public interface IParameterized -{ - - /** - * Gets the object bind-able parameters. - * - * @return the parameters - */ - default List getParameters() - { - List parameters = new ArrayList<>(); - - for (Field field: this.getClass().getDeclaredFields()) - { - ParameterAnnotation annotation = field.getAnnotation(ParameterAnnotation.class); - if (annotation != null) - { - try - { - ParameterItem item = new ParameterItem( - annotation.name(), - annotation.minimum(), - annotation.maximum(), - annotation.defaultValue(), - (DependencyProperty) field.get(this), - annotation.type()); - - parameters.add(item); - - } catch (IllegalAccessException e) - { - e.printStackTrace(); - } - } - } - - return parameters; - } -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/editors/ParameterAnnotation.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/editors/ParameterAnnotation.java deleted file mode 100644 index 102bb0b4f..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/editors/ParameterAnnotation.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.twine.tango.sharedui.editors; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - - -/** - * Represents a {@link ParameterItem} property annotation. - */ -@Target(ElementType.FIELD) -@Retention(RetentionPolicy.RUNTIME) -public @interface ParameterAnnotation -{ - /** - * Parameter display name. - * - * @return the string - */ - String name() default ""; - - /** - * Minimum value. - * - * @return the double - */ - double minimum() default 0; - - /** - * Maximum value. - * - * @return the double - */ - double maximum() default 100; - - /** - * Default value. - * - * @return the double - */ - double defaultValue() default 0; - - /** - * Type of parameter. - * - * @return the class - */ - Class type() default double.class; -} - diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/editors/ParameterItem.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/editors/ParameterItem.java deleted file mode 100644 index a89b1c671..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/editors/ParameterItem.java +++ /dev/null @@ -1,172 +0,0 @@ -package com.twine.tango.sharedui.editors; - -import com.twine.tango.sharedui.mvvm.DependencyProperty; - -/** - * Represents a bind-able parameter which links an {@link IParameterized} object property to an android xml view. - */ -public class ParameterItem -{ - private String name; - private double minimum; - private double maximum; - private double defaultValue; - private Class type; - - /** - * The Property. - */ - public DependencyProperty property; - - /** - * The Number. - */ - public DependencyProperty number; - - /** - * Gets name. - * - * @return the name - */ - public String getName() - { - return name; - } - - /** - * Sets name. - * - * @param name the name - */ - public void setName(String name) - { - this.name = name; - } - - /** - * Gets property. - * - * @return the property - */ - public DependencyProperty getProperty() - { - return property; - } - - /** - * Sets property. - * - * @param property the property - */ - public void setProperty(DependencyProperty property) - { - this.property = property; - } - - /** - * Gets minimum. - * - * @return the minimum - */ - public double getMinimum() - { - return minimum; - } - - /** - * Sets minimum. - * - * @param minimum the minimum - */ - public void setMinimum(double minimum) - { - this.minimum = minimum; - } - - /** - * Gets maximum. - * - * @return the maximum - */ - public double getMaximum() - { - return maximum; - } - - /** - * Sets maximum. - * - * @param maximum the maximum - */ - public void setMaximum(double maximum) - { - this.maximum = maximum; - } - - /** - * Gets default value. - * - * @return the default value - */ - public double getDefaultValue() - { - return defaultValue; - } - - /** - * Sets default value. - * - * @param defaultValue the default value - */ - public void setDefaultValue(double defaultValue) - { - this.defaultValue = defaultValue; - } - - /** - * Gets type. - * - * @return the type - */ - public Class getType() - { - return type; - } - - /** - * Sets type. - * - * @param type the type - */ - public void setType(Class type) - { - this.type = type; - } - - /** - * Instantiates a new Parameter item. - */ - public ParameterItem() - { - } - - /** - * Instantiates a new Parameter item. - * - * @param name the name - * @param minimum the minimum - * @param maximum the maximum - * @param defaultValue the default value - * @param property the property - * @param type the type - */ - public ParameterItem(String name, double minimum, double maximum, double defaultValue, DependencyProperty property, Class type) - { - this.name = name; - this.minimum = minimum; - this.maximum = maximum; - this.defaultValue = defaultValue; - this.property = property; - this.type = type; - } -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/editors/ParameterizedEditor.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/editors/ParameterizedEditor.java deleted file mode 100644 index 64ab322b9..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/editors/ParameterizedEditor.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.twine.tango.sharedui.editors; - -import android.content.Context; -import android.databinding.DataBindingUtil; -import android.databinding.ViewDataBinding; -import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.LinearLayout; -import android.widget.ScrollView; -import android.widget.TextView; - -import com.twine.tango.sharedui.BR; -import com.twine.tango.sharedui.R; - -import java.util.List; - -/** - * Represents a view capable of presenting and controlling an {@link IParameterized} object. - */ -public class ParameterizedEditor extends ScrollView -{ - private IParameterized parameterizedObject; - - /** - * Instantiates a new Parameterized editor. - * - * @param context the context - * @param attrs the attrs - */ - public ParameterizedEditor(Context context, AttributeSet attrs) - { - super(context, attrs); - } - - /** - * Gets parameterized object. - * - * @return the parameterized object - */ - public IParameterized getParameterizedObject() - { - return parameterizedObject; - } - - /** - * Sets parameterized object. - * - * @param parameterizedObject the parameterized object - */ - public void setParameterizedObject(IParameterized parameterizedObject) - { - this.parameterizedObject = parameterizedObject; - propagateParameters(); - } - - private void propagateParameters() - { - this.removeAllViews(); - - LinearLayout layout = new LinearLayout(this.getContext()); - layout.setOrientation(LinearLayout.VERTICAL); - - this.addView(layout); - - List items = parameterizedObject.getParameters(); - - for (ParameterItem item : items) - { - View titleView = LayoutInflater.from(layout.getContext()).inflate(R.layout.editor_title,layout,false); - ((TextView)titleView.findViewById(R.id.editor_title_txtView)).setText(item.getName()); - layout.addView(titleView); - - ViewDataBinding binding = DataBindingUtil.inflate(LayoutInflater.from(layout.getContext()), R.layout.editor_range, layout, false); - binding.setVariable(BR.item, item); - layout.addView(binding.getRoot()); - } - } -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/DependencyProperty.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/DependencyProperty.java deleted file mode 100644 index 95b42f357..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/DependencyProperty.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.twine.tango.sharedui.mvvm; - -import android.databinding.ObservableField; - - -/** - * Represents a property with support for change notification and data binding. - * - * @param the type parameter - */ -public class DependencyProperty extends ObservableField -{ - - private boolean blockNotify; - - /** - * The interface On property changed callback. - * - * @param the type parameter - */ - public interface OnPropertyChangedCallback - { - /** - * On property changed. - * - * @param dp the dp - * @param value the value - */ - void onPropertyChanged(DependencyProperty dp, T value); - } - - private OnPropertyChangedCallback callback; - - /** - * Instantiates a new Dependency property. - * - * @param callback the callback - */ - public DependencyProperty(OnPropertyChangedCallback callback) - { - this.callback = callback; - init(); - } - - /** - * Instantiates a new Dependency property. - * - * @param defaultValue the default value - * @param callback the callback - */ - public DependencyProperty(T defaultValue, OnPropertyChangedCallback callback) - { - this.set(defaultValue); - this.callback = callback; - init(); - } - - /** - * Instantiates a new Dependency property. - * - * @param defaultValue the default value - */ - public DependencyProperty(T defaultValue) - { - this.set(defaultValue); - init(); - } - - /** - * Instantiates a new Dependency property. - */ - public DependencyProperty() - { - init(); - } - - /** - * Sets no change. - * - * @param value the value - */ - public void setNoChange(T value) - { - blockNotify = true; - set(value); - } - - @Override - public void notifyChange() - { - if (!blockNotify) - { - super.notifyChange(); - } - - blockNotify = false; - } - - private void init() - { - final DependencyProperty that = this; - - this.addOnPropertyChangedCallback(new android.databinding.Observable.OnPropertyChangedCallback() - { - @Override - public void onPropertyChanged(android.databinding.Observable observable, int i) - { - if (that.callback != null) - { - that.callback.onPropertyChanged(that, that.get()); - } - } - }); - } -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/FieldUtils.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/FieldUtils.java deleted file mode 100644 index 8ec2fe33b..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/FieldUtils.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.twine.tango.sharedui.mvvm; - -import android.databinding.Observable.OnPropertyChangedCallback; -import android.databinding.ObservableField; -import android.support.annotation.NonNull; - -import io.reactivex.Observable; -import io.reactivex.ObservableEmitter; -import io.reactivex.ObservableOnSubscribe; -import io.reactivex.functions.Cancellable; - - -public class FieldUtils { - /** - * Converts an ObservableField to an Observable. Note that setting null value inside - * ObservableField (except for initial value) throws a NullPointerException. - * @return Observable that contains the latest value in the ObservableField - */ - @NonNull - public static Observable toObservable(@NonNull final ObservableField field) { - - return Observable.create(new ObservableOnSubscribe() { - @Override - public void subscribe(final ObservableEmitter e) throws Exception { - T initialValue = field.get(); - if (initialValue != null) { - e.onNext(initialValue); - } - final OnPropertyChangedCallback callback = new OnPropertyChangedCallback() { - @Override - public void onPropertyChanged(android.databinding.Observable observable, int i) { - e.onNext(field.get()); - } - }; - field.addOnPropertyChangedCallback(callback); - e.setCancellable(new Cancellable() { - @Override - public void cancel() throws Exception { - field.removeOnPropertyChangedCallback(callback); - } - }); - } - }); - } - - /** - * A convenient wrapper for {@code ReadOnlyField#create(Observable)} - * @return DataBinding field created from the specified Observable - */ - @NonNull - public static ReadOnlyField toField(@NonNull final Observable observable) { - return ReadOnlyField.create(observable); - } -} \ No newline at end of file diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/IView.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/IView.java deleted file mode 100644 index 9f0ef2b9f..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/IView.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.twine.tango.sharedui.mvvm; - -import io.reactivex.functions.Consumer; - -/** - * Represents a supervising controller pattern view. - */ -public interface IView -{ - /** - * Attach view. - */ - void attachView(); - - /** - * Validate fields. - * - * @param consumer the consumer - */ - void validateFields(Consumer consumer); -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/ReadOnlyField.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/ReadOnlyField.java deleted file mode 100644 index 067dd953b..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/ReadOnlyField.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.twine.tango.sharedui.mvvm; - -import android.databinding.ObservableField; -import android.support.annotation.NonNull; -import android.util.Log; - -import java.util.HashMap; - -import io.reactivex.Observable; -import io.reactivex.disposables.Disposable; -import io.reactivex.functions.Consumer; - - -public class ReadOnlyField extends ObservableField { - private final Observable source; - private final HashMap subscriptions = new HashMap<>(); - - public static ReadOnlyField create(@NonNull Observable source) { - return new ReadOnlyField<>(source); - } - - private ReadOnlyField(@NonNull Observable source) { - super(); - this.source = source.doOnNext(new Consumer() { - @Override - public void accept(T t) throws Exception { - ReadOnlyField.super.set(t); - } - }).doOnError(new Consumer() { - @Override - public void accept(Throwable throwable) throws Exception { - Log.e("Twine", "onError in source observable", throwable); - } - }).onErrorResumeNext(Observable.empty()).share(); - } - - @Override - public void set(T value) { - } - - @Override - public synchronized void addOnPropertyChangedCallback(OnPropertyChangedCallback callback) { - super.addOnPropertyChangedCallback(callback); - subscriptions.put(callback, source.subscribe()); - } - - @Override - public synchronized void removeOnPropertyChangedCallback(OnPropertyChangedCallback callback) { - super.removeOnPropertyChangedCallback(callback); - Disposable subscription = subscriptions.remove(callback); - if (subscription != null && !subscription.isDisposed()) { - subscription.dispose(); - } - } -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/RelayCommand.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/RelayCommand.java deleted file mode 100644 index e6d638678..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/RelayCommand.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.twine.tango.sharedui.mvvm; - -import android.databinding.BindingAdapter; -import android.view.View; - - -/** - * Represents bind-able relay command. - */ -public class RelayCommand { - - /** - * The interface On command execute. - */ - public interface OnCommandExecute - { - /** - * Execute. - */ - void execute(); - } - - /** - * The interface Command can execute. - */ - public interface CommandCanExecute - { - /** - * Can execute boolean. - * - * @return the boolean - */ - boolean canExecute(); - } - - /** - * The On command execute. - */ - public OnCommandExecute onCommandExecute; - - /** - * The Command can execute. - */ - public CommandCanExecute commandCanExecute; - - private View bindedView; - - /** - * Command binding. - * - * @param view the view - * @param command the command - */ - @BindingAdapter("android:command") - public static void CommandBinding(View view, RelayCommand command) - { - command.bindedView = view; - - view.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - command.execute(); - } - }); - - command.invalidateCommand(); - } - - /** - * Instantiates a new Relay command. - * - * @param onCommandExecute the on command execute - */ - public RelayCommand(OnCommandExecute onCommandExecute) { - this.onCommandExecute = onCommandExecute; - } - - /** - * Instantiates a new Relay command. - * - * @param onCommandExecute the on command execute - * @param commandCanExecute the command can execute - */ - public RelayCommand(OnCommandExecute onCommandExecute, CommandCanExecute commandCanExecute) { - this.onCommandExecute = onCommandExecute; - this.commandCanExecute = commandCanExecute; - } - - /** - * Instantiates a new Relay command. - */ - public RelayCommand() { - - } - - /** - * Execute. - */ - public void execute() - { - onCommandExecute.execute(); - } - - /** - * Invalidate command. - */ - public void invalidateCommand() - { - if (commandCanExecute != null) - { - bindedView.setEnabled(commandCanExecute.canExecute()); - } - } -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/ViewModelBase.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/ViewModelBase.java deleted file mode 100644 index 1d2e5ad86..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/mvvm/ViewModelBase.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.twine.tango.sharedui.mvvm; - -import android.util.Log; - -import com.twine.tango.core.ExtendedObject; - -import java.lang.reflect.Field; - - -/** - * Represents a base View Model. - * - * @param the type parameter - */ -public abstract class ViewModelBase extends ExtendedObject -{ - - /** - * The View. - */ - public T view; //TODO: Maybe use WeakReference to not prevent garbage collector from disposing the activity ? - - /** - * Attach view. - * - * @param view the view - */ - public void attachView(T view) { - this.view = view; - onViewAttached(view); - } - - /** - * On view attached. - * - * @param view the view - */ - protected void onViewAttached(T view) { - Log.i("MVVM",view.getClass().getSimpleName() + " attached to " + this.getClass().getSimpleName()); - } - - /** - * Invalidate commands. - */ - protected void invalidateCommands() - { - for (Field field : this.getClass().getDeclaredFields()) - { - if (field.getType() == RelayCommand.class) - { - try - { - ((RelayCommand)field.get(this)).invalidateCommand(); - } catch (IllegalAccessException e) - { - e.printStackTrace(); - } - } - } - } -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/navigation/AndroidNavigationProvider.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/navigation/AndroidNavigationProvider.java deleted file mode 100644 index 545793a5d..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/navigation/AndroidNavigationProvider.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.twine.tango.sharedui.navigation; - -import android.app.FragmentManager; -import android.app.FragmentTransaction; -import android.support.v7.app.AppCompatActivity; - -import com.twine.tango.core.ExtendedObject; -import com.twine.tango.core.IAction1; -import com.twine.tango.sharedui.R; -import com.twine.tango.sharedui.containers.FragmentBase; - -/** - * Represents an android navigation provider. - */ -public class AndroidNavigationProvider extends ExtendedObject implements INavigationProvider -{ - private AppCompatActivity activity; - private FragmentBase currentFragment; - private int fragment_container; - private String basePackagePath; - - @Override - public void registerNavigationActivity(AppCompatActivity activity, int fragmentContainerId, String basePackagePath) - { - this.activity = activity; - this.fragment_container = fragmentContainerId; - this.basePackagePath = basePackagePath; - } - - - @Override - public void navigateTo(Enum fragmentValue) - { - navigateTo(fragmentValue.name()); - } - - @Override - public void navigateTo(Enum fragmentValue, IAction1 onCreateListener) - { - navigateTo(fragmentValue.name(), onCreateListener); - } - - @Override - public void navigateTo(String fragmentName) - { - navigateTo(fragmentName, null); - } - - @Override - public void navigateTo(String fragmentName, IAction1 onCreateListener) - { - if (activity == null) - { - logManager.log(new NullPointerException("No navigation activity registered.")); - return; - } - - 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) - { - 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); - - fragmentTransaction.setCustomAnimations(R.animator.slide_in_left, R.animator.slide_out_left, R.animator.slide_out_right, R.animator.slide_in_right); - fragmentTransaction.replace(fragment_container, fragment).addToBackStack(fragmentName); - fragmentTransaction.commit(); - -// try -// { -// //noinspection ConstantConditions -// //fragment.getView().setFocusableInTouchMode(true); -// } catch (Exception ex) -// { -// logManager.log(ex); -// } - - currentFragment = fragment; - } -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/navigation/INavigationProvider.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/navigation/INavigationProvider.java deleted file mode 100644 index cc333cfd8..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/navigation/INavigationProvider.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.twine.tango.sharedui.navigation; - -import android.support.v7.app.AppCompatActivity; - -import com.twine.tango.core.IAction1; -import com.twine.tango.sharedui.containers.FragmentBase; - -/** - * Represents an activity fragments navigator. - */ -public interface INavigationProvider -{ - /** - * 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); - - /** - * Navigate to the specified fragment name. - * - * @param fragmentName the fragment name - */ - void navigateTo(String fragmentName); - - /** - * Navigate to to the specified fragment name. - * - * @param fragmentName the fragment name - * @param onCreateListener the on create listener - */ - void navigateTo(String fragmentName, IAction1 onCreateListener); - - /** - * Navigate to to the specified enum value fragment name. - * - * @param fragmentValue the fragment value - */ - void navigateTo(Enum fragmentValue); - - /** - * 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 onCreateListener); -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/notifications/AndroidNotificationProvider.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/notifications/AndroidNotificationProvider.java deleted file mode 100644 index e1a099093..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/notifications/AndroidNotificationProvider.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.twine.tango.sharedui.notifications; - -import android.content.Context; -import android.support.v7.app.AlertDialog; -import android.widget.Toast; - -import com.twine.tango.core.IAction; -import com.twine.tango.sharedui.mvvm.IView; - - -/** - * Represents the default {@link INotificationProvider}. - */ -public class AndroidNotificationProvider implements INotificationProvider -{ - - private Context context; - - /** - * Instantiates a new Android notification provider. - * - * @param context the context - */ - public AndroidNotificationProvider(Context context) - { - this.context = context; - } - - @Override - public void toast(String message) - { - Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); - } - - @Override - public void showMessage(IView view, String message) - { - showMessage(view, message, null); - } - - @Override - public void showMessage(IView view, String message, IAction action) - { - 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(); - } -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/notifications/INotificationProvider.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/notifications/INotificationProvider.java deleted file mode 100644 index 241c8a49c..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/notifications/INotificationProvider.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.twine.tango.sharedui.notifications; - -import com.twine.tango.core.IAction; -import com.twine.tango.sharedui.mvvm.IView; - - -/** - * Represents a notifications provider service. - */ -public interface INotificationProvider -{ - - /** - * Toast. - * - * @param message the message - */ - void toast(String message); - - /** - * Show message. - * - * @param view the view - * @param message the message - */ - void showMessage(IView view, String message); - - /** - * Show message. - * - * @param view the view - * @param message the message - * @param action the action - */ - void showMessage(IView view, String message, IAction action); - -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/paging/PagerAdapter.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/paging/PagerAdapter.java deleted file mode 100644 index a74848816..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/paging/PagerAdapter.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.twine.tango.sharedui.paging; - -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentPagerAdapter; - -import com.twine.tango.sharedui.containers.FragmentBaseV4; - -import java.util.ArrayList; -import java.util.List; - - -/** - * Represents a fragments paging adapter. - */ -public class PagerAdapter extends FragmentPagerAdapter { - - private List fragments; - private int currentPosition; - - /** - * Instantiates a new Pager adapter. - * - * @param fm the fm - */ - public PagerAdapter(FragmentManager fm) { - super(fm); - - fragments = new ArrayList<>(); - } - - /** - * Add fragment. - * - * @param fragment the fragment - */ - public void addFragment(FragmentBaseV4 fragment) - { - fragments.add(fragment); - } - - /** - * Remove fragment. - * - * @param fragment the fragment - */ - public void removeFragment(FragmentBaseV4 fragment) - { - fragments.remove(fragment); - } - - @Override - public Fragment getItem(int position) { - currentPosition = position; - return fragments.get(position); - } - - /** - * Gets current fragment. - * - * @param the type parameter - * @return the current fragment - */ - @SuppressWarnings("unchecked") - public T getCurrentFragment() { - return (T) getItem(currentPosition); - } - - @Override - public int getCount() { - return fragments.size(); - } - - @Override - public CharSequence getPageTitle(int position) { - if (fragments.get(position) != null) { - return fragments.get(position).getTitle(); - } else { - return ""; - } - } -} diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/paging/PagerZoomTransform.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/paging/PagerZoomTransform.java deleted file mode 100644 index 4fefcff13..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/paging/PagerZoomTransform.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.twine.tango.sharedui.paging; - -import android.support.v4.view.ViewPager; -import android.view.View; - -/** - * Represents an interactive view pager transformer. - */ -public class PagerZoomTransform implements ViewPager.PageTransformer { - private static final float MIN_SCALE = 0.85f; - private static final float MIN_ALPHA = 0.5f; - - public void transformPage(View view, float position) { - int pageWidth = view.getWidth(); - int pageHeight = view.getHeight(); - - if (position < -1) { // [-Infinity,-1) - // This page is way off-screen to the left. - view.setAlpha(0); - - } else if (position <= 1) { // [-1,1] - // Modify the default slide transition to shrink the page as well - float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position)); - float vertMargin = pageHeight * (1 - scaleFactor) / 2; - float horzMargin = pageWidth * (1 - scaleFactor) / 2; - if (position < 0) { - view.setTranslationX(horzMargin - vertMargin / 2); - } else { - view.setTranslationX(-horzMargin + vertMargin / 2); - } - - // Scale the page down (between MIN_SCALE and 1) - view.setScaleX(scaleFactor); - view.setScaleY(scaleFactor); - - // Fade the page relative to its size. - view.setAlpha(MIN_ALPHA + - (scaleFactor - MIN_SCALE) / - (1 - MIN_SCALE) * (1 - MIN_ALPHA)); - - } else { // (1,+Infinity] - // This page is way off-screen to the right. - view.setAlpha(0); - } - } -} - diff --git a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/validation/IViewValidator.java b/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/validation/IViewValidator.java deleted file mode 100644 index 710d57e49..000000000 --- a/Software/Android_Studio/Tango.SharedUI/src/main/java/com/twine/tango/sharedui/validation/IViewValidator.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.twine.tango.sharedui.validation; - -import com.mobsandgeeks.saripaar.ValidationError; -import com.mobsandgeeks.saripaar.Validator; - -import java.util.List; - - -/** - * Represents a view with support for auto field validation. - */ -public class IViewValidator implements Validator.ValidationListener { - - @Override - public void onValidationSucceeded() { - - } - - @Override - public void onValidationFailed(List errors) { - - } -} -- cgit v1.3.1