// Path: common/src/main/java/fr/guddy/android_modular_reloaded/common/SharedViewModel.java
// public class SharedViewModel extends ViewModel {
// 
//     //region Fields
//     private final MutableLiveData<LiveDataFlowContext> mFlowContextLiveData;
//     private FlowContext mFlowContext;
//     //endregion
// 
//     //region Constructor
//     public SharedViewModel() {
//         mFlowContextLiveData = new MutableLiveData<>();
//         mFlowContext = new FlowContext();
//         mFlowContextLiveData.setValue(new LiveDataFlowContext(false, mFlowContext));
//     }
//     //endregion
// 
//     //region Visible API
//     public LiveData<LiveDataFlowContext> getFlowContextLiveData() {
//         return mFlowContextLiveData;
//     }
// 
//     public Bundle args() {
//         return mFlowContext.args();
//     }
// 
//     public void safeTrigger(final EventEnum pEvent) {
//         final LiveDataFlowContext lValue = mFlowContextLiveData.getValue();
//         if(lValue != null) {
//             lValue.flowContext.safeTrigger(pEvent);
//         }
//     }
//     //endregion
// 
//     //region Visible for testing API
//     @VisibleForTesting
//     public void setFlowContext(final FlowContext pFlowContext) {
//         mFlowContext = pFlowContext;
//         mFlowContextLiveData.setValue(new LiveDataFlowContext(true, pFlowContext));
//     }
//     //endregion
// 
//     public static final class LiveDataFlowContext {
//         public final boolean forceEnterInitialState;
//         public final FlowContext flowContext;
// 
//         private LiveDataFlowContext(final boolean pForceEnterInitialState, @NonNull final FlowContext pFlowContext) {
//             forceEnterInitialState = pForceEnterInitialState;
//             flowContext = pFlowContext;
//         }
//     }
// }


import android.arch.lifecycle.ViewModelProviders;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.TextInputEditText;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import au.com.ds.ef.EventEnum;
import au.com.ds.ef.StateEnum;
import fr.guddy.android_modular_reloaded.common.SharedViewModel;
package fr.guddy.android_modular_reloaded.first;



public class FragmentFirst extends Fragment {
    //region Constants
    private static final String ARG_KEY_PRE_FILLED_LOGIN = "PRE_FILLED_LOGIN";
    //endregion

    //region Bound views
    private TextInputEditText mEditTextLogin;
    //endregion

    //region Fields
// Path: common/src/main/java/fr/guddy/android_modular_reloaded/common/SharedViewModel.java
// public class SharedViewModel extends ViewModel {
// 
//     //region Fields
//     private final MutableLiveData<LiveDataFlowContext> mFlowContextLiveData;
//     private FlowContext mFlowContext;
//     //endregion
// 
//     //region Constructor
//     public SharedViewModel() {
//         mFlowContextLiveData = new MutableLiveData<>();
//         mFlowContext = new FlowContext();
//         mFlowContextLiveData.setValue(new LiveDataFlowContext(false, mFlowContext));
//     }
//     //endregion
// 
//     //region Visible API
//     public LiveData<LiveDataFlowContext> getFlowContextLiveData() {
//         return mFlowContextLiveData;
//     }
// 
//     public Bundle args() {
//         return mFlowContext.args();
//     }
// 
//     public void safeTrigger(final EventEnum pEvent) {
//         final LiveDataFlowContext lValue = mFlowContextLiveData.getValue();
//         if(lValue != null) {
//             lValue.flowContext.safeTrigger(pEvent);
//         }
//     }
//     //endregion
// 
//     //region Visible for testing API
//     @VisibleForTesting
//     public void setFlowContext(final FlowContext pFlowContext) {
//         mFlowContext = pFlowContext;
//         mFlowContextLiveData.setValue(new LiveDataFlowContext(true, pFlowContext));
//     }
//     //endregion
// 
//     public static final class LiveDataFlowContext {
//         public final boolean forceEnterInitialState;
//         public final FlowContext flowContext;
// 
//         private LiveDataFlowContext(final boolean pForceEnterInitialState, @NonNull final FlowContext pFlowContext) {
//             forceEnterInitialState = pForceEnterInitialState;
//             flowContext = pFlowContext;
//         }
//     }
// }


// Path: first/src/main/java/fr/guddy/android_modular_reloaded/first/FragmentFirst.java
import android.arch.lifecycle.ViewModelProviders;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.TextInputEditText;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import au.com.ds.ef.EventEnum;
import au.com.ds.ef.StateEnum;
import fr.guddy.android_modular_reloaded.common.SharedViewModel;

package fr.guddy.android_modular_reloaded.first;



public class FragmentFirst extends Fragment {
    //region Constants
    private static final String ARG_KEY_PRE_FILLED_LOGIN = "PRE_FILLED_LOGIN";
    //endregion

    //region Bound views
    private TextInputEditText mEditTextLogin;
    //endregion

    //region Fields
    private SharedViewModel mSharedViewModel;