// Path: app/src/main/java/link/anyauto/smartkey/demo/base/BaseVMAdapter.java
// public class BaseVMAdapter extends BaseObservable implements BaseVM {
// 
//     protected Activity activity;
// 
//     public void setActivity(Activity activity) {
//         this.activity = activity;
//     }
// 
//     public Activity getActivity() {
//         return activity;
//     }
// 
//     @Override
//     public void create(Bundle savedInstanceState) {
// 
//     }
// 
//     @Override
//     public void restart() {
// 
//     }
// 
//     @Override
//     public void start() {
// 
//     }
// 
//     @Override
//     public void stop() {
// 
//     }
// 
//     @Override
//     public void resume() {
// 
//     }
// 
//     @Override
//     public void pause() {
// 
//     }
// 
//     @Override
//     public void destroy() {
// 
//     }
// 
//     @Override
//     public void back() {
//         if(activity != null) {
//             activity.finish();
//         }
//     }
// 
//     @Override
//     public void result(int reqCode, int resCode, Intent data) {
// 
//     }
// 
//     @Override
//     public void configChanged(Configuration newConfig) {
// 
//     }
// }
// 
// Path: app/src/main/java/link/anyauto/smartkey/demo/extras/ForResultReq.java
// @SmartIntent
// public class ForResultReq {
//     public String title;
//     public String label;
//     public String hint;
// }
// 
// Path: sdks/src/main/java/link/anyauto/smartkey/sdks/targets/BackResult.java
// public class BackResult {
//     int code = Activity.RESULT_OK;
//     Intent intent;
//     IntentKeyMapper params;
// 
//     /**
//      * Create a back result, default result code is RESULT_OK.
//      * @return
//      *  the new BackResult instance.
//      */
//     public static BackResult newBackResult() {
//         return new BackResult();
//     }
// 
//     /**
//      * Create a back result with the given result code.
//      * @param resultCode
//      *  the result code
//      * @return
//      *  the new BackResult instance.
//      */
//     public static BackResult newBackResult(int resultCode) {
//         return new BackResult(resultCode);
//     }
// 
//     /**
//      * Create a back result, default result code is RESULT_OK.
//      */
//     public BackResult(){}
// 
//     /**
//      * Create a back result with the given result code.
//      * @param resultCode
//      *  the result code
//      */
//     public BackResult(int resultCode) {
//         code = resultCode;
//     }
// 
//     /**
//      * An intent to send back by this result
//      * @param intent
//      *  the intent
//      * @return
//      *  this
//      */
//     public BackResult intent(Intent intent) {
//         this.intent = intent;
//         return this;
//     }
// 
//     /**
//      * Set result code other than default.
//      * @param resultCode
//      *  the result code
//      * @return
//      *  this
//      */
//     public BackResult resultCode(int resultCode) {
//         code = resultCode;
//         return this;
//     }
// 
//     /**
//      * Params that will send back by this result.
//      * @param params
//      *  the params
//      * @return
//      *  this
//      */
//     public BackResult params(IntentKeyMapper params) {
//         this.params = params;
//         return this;
//     }
// 
//     /**
//      * Finish the activity with your given result code and or intent and or params.
//      * @param activity
//      *  The activity that will be finish, it's finish() will be called in this method.
//      */
//     public void finishWithResult(Activity activity) {
//         Intent in = intent;
//         if(params != null) {
//             in = in == null ? params.buildIntent() : in.putExtras(params.buildIntent().getExtras());
//         }
//         if(in != null) {
//             activity.setResult(code, in);
//         } else {
//             activity.setResult(code);
//         }
//         activity.finish();;
//     }
// }


import android.app.Activity;
import android.databinding.Bindable;
import link.anyauto.smartkey.demo.BR;
import link.anyauto.smartkey.demo.base.BaseVMAdapter;
import link.anyauto.smartkey.demo.extras.ForResultReq;
import link.anyauto.smartkey.demo.extras.ForResultReqIBuilder;
import link.anyauto.smartkey.demo.extras.ForResultResIBuilder;
import link.anyauto.smartkey.sdks.targets.BackResult;
    public String label;

    public String hint;

    public String getInput() {
        return input;
    }

    public void setInput(String input) {
        if(this.input == null || !this.input.equals(input)) {
            this.input = input;
            notifyPropertyChanged(BR.input);
        }
    }

    public String getInput2() {
        return input2;
    }

    public void setInput2(String input2) {
        if(this.input2 == null || !this.input2.equals(input2)) {
            this.input2 = input2;
            notifyPropertyChanged(BR.input2);
        }
    }

    public void confirm() {
        // Yes, it is so easy to return values back to the caller.
        // No need to call set result, no need to put values into intent yourself.
        // The same as passing values to another activity when start.
// Path: app/src/main/java/link/anyauto/smartkey/demo/base/BaseVMAdapter.java
// public class BaseVMAdapter extends BaseObservable implements BaseVM {
// 
//     protected Activity activity;
// 
//     public void setActivity(Activity activity) {
//         this.activity = activity;
//     }
// 
//     public Activity getActivity() {
//         return activity;
//     }
// 
//     @Override
//     public void create(Bundle savedInstanceState) {
// 
//     }
// 
//     @Override
//     public void restart() {
// 
//     }
// 
//     @Override
//     public void start() {
// 
//     }
// 
//     @Override
//     public void stop() {
// 
//     }
// 
//     @Override
//     public void resume() {
// 
//     }
// 
//     @Override
//     public void pause() {
// 
//     }
// 
//     @Override
//     public void destroy() {
// 
//     }
// 
//     @Override
//     public void back() {
//         if(activity != null) {
//             activity.finish();
//         }
//     }
// 
//     @Override
//     public void result(int reqCode, int resCode, Intent data) {
// 
//     }
// 
//     @Override
//     public void configChanged(Configuration newConfig) {
// 
//     }
// }
// 
// Path: app/src/main/java/link/anyauto/smartkey/demo/extras/ForResultReq.java
// @SmartIntent
// public class ForResultReq {
//     public String title;
//     public String label;
//     public String hint;
// }
// 
// Path: sdks/src/main/java/link/anyauto/smartkey/sdks/targets/BackResult.java
// public class BackResult {
//     int code = Activity.RESULT_OK;
//     Intent intent;
//     IntentKeyMapper params;
// 
//     /**
//      * Create a back result, default result code is RESULT_OK.
//      * @return
//      *  the new BackResult instance.
//      */
//     public static BackResult newBackResult() {
//         return new BackResult();
//     }
// 
//     /**
//      * Create a back result with the given result code.
//      * @param resultCode
//      *  the result code
//      * @return
//      *  the new BackResult instance.
//      */
//     public static BackResult newBackResult(int resultCode) {
//         return new BackResult(resultCode);
//     }
// 
//     /**
//      * Create a back result, default result code is RESULT_OK.
//      */
//     public BackResult(){}
// 
//     /**
//      * Create a back result with the given result code.
//      * @param resultCode
//      *  the result code
//      */
//     public BackResult(int resultCode) {
//         code = resultCode;
//     }
// 
//     /**
//      * An intent to send back by this result
//      * @param intent
//      *  the intent
//      * @return
//      *  this
//      */
//     public BackResult intent(Intent intent) {
//         this.intent = intent;
//         return this;
//     }
// 
//     /**
//      * Set result code other than default.
//      * @param resultCode
//      *  the result code
//      * @return
//      *  this
//      */
//     public BackResult resultCode(int resultCode) {
//         code = resultCode;
//         return this;
//     }
// 
//     /**
//      * Params that will send back by this result.
//      * @param params
//      *  the params
//      * @return
//      *  this
//      */
//     public BackResult params(IntentKeyMapper params) {
//         this.params = params;
//         return this;
//     }
// 
//     /**
//      * Finish the activity with your given result code and or intent and or params.
//      * @param activity
//      *  The activity that will be finish, it's finish() will be called in this method.
//      */
//     public void finishWithResult(Activity activity) {
//         Intent in = intent;
//         if(params != null) {
//             in = in == null ? params.buildIntent() : in.putExtras(params.buildIntent().getExtras());
//         }
//         if(in != null) {
//             activity.setResult(code, in);
//         } else {
//             activity.setResult(code);
//         }
//         activity.finish();;
//     }
// }


// Path: app/src/main/java/link/anyauto/smartkey/demo/forresult/ForResultVM.java
import android.app.Activity;
import android.databinding.Bindable;
import link.anyauto.smartkey.demo.BR;
import link.anyauto.smartkey.demo.base.BaseVMAdapter;
import link.anyauto.smartkey.demo.extras.ForResultReq;
import link.anyauto.smartkey.demo.extras.ForResultReqIBuilder;
import link.anyauto.smartkey.demo.extras.ForResultResIBuilder;
import link.anyauto.smartkey.sdks.targets.BackResult;

    public String label;

    public String hint;

    public String getInput() {
        return input;
    }

    public void setInput(String input) {
        if(this.input == null || !this.input.equals(input)) {
            this.input = input;
            notifyPropertyChanged(BR.input);
        }
    }

    public String getInput2() {
        return input2;
    }

    public void setInput2(String input2) {
        if(this.input2 == null || !this.input2.equals(input2)) {
            this.input2 = input2;
            notifyPropertyChanged(BR.input2);
        }
    }

    public void confirm() {
        // Yes, it is so easy to return values back to the caller.
        // No need to call set result, no need to put values into intent yourself.
        // The same as passing values to another activity when start.
        BackResult