// Path: sample/src/main/java/com/tresorit/zerokitsdk/fragment/ShareTresorFragment.java
// public class ShareTresorFragment extends Fragment {
// 
//     @SuppressWarnings({"WeakerAccess", "CanBeFinal"})
//     @Inject
//     ShareTresorViewModel viewModel;
// 
//     @SuppressWarnings({"WeakerAccess", "CanBeFinal"})
//     @Inject
//     EventBus eventBus;
// 
// 
//     @Nullable
//     @Override
//     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//         DaggerShareTresorComponent.builder().applicationComponent(ZerokitApplication.get(getActivity()).component()).build().inject(this);
//         FragmentShareTresorBinding binding = FragmentShareTresorBinding.inflate(inflater, container, false);
//         binding.setViewmodel(viewModel);
//         return binding.getRoot();
//     }
// 
//     @Override
//     public void onStart() {
//         super.onStart();
//         eventBus.register(viewModel);
//     }
// 
//     @Override
//     public void onStop() {
//         super.onStop();
//         eventBus.unregister(viewModel);
//     }
// }
// 
// Path: sample/src/main/java/com/tresorit/zerokitsdk/module/ShareTresorModule.java
// @Module
// public class ShareTresorModule {
//     @Provides
//     @ActivityScope
//     public ShareTresorViewModel provideShareTresorViewModel(Zerokit zerokit, AdminApi adminApi, EventBus eventBus) {
//         return new ShareTresorViewModel(zerokit, adminApi, eventBus);
//     }
// }
// 
// Path: sample/src/main/java/com/tresorit/zerokitsdk/viewmodel/ShareTresorViewModel.java
// public class ShareTresorViewModel extends BaseObservable {
// 
//     @SuppressWarnings("WeakerAccess")
//     public final View.OnClickListener clickListener;
//     @SuppressWarnings("WeakerAccess")
//     public final ObservableField<Boolean> inProgress;
//     @SuppressWarnings("WeakerAccess")
//     public final ObservableField<String> userId;
//     @SuppressWarnings("WeakerAccess")
//     public final ObservableField<String> textSummary;
//     @SuppressWarnings("WeakerAccess")
//     public final ObservableField<String> sharedWithUserId;
// 
//     @SuppressWarnings("WeakerAccess")
//     final Action<ResponseZerokitError> errorResponseHandlerSdk;
//     @SuppressWarnings("WeakerAccess")
//     final Action<ResponseAdminApiError> errorResponseHandlerAdminapi;
// 
//     final Zerokit zerokit;
// 
//     @SuppressWarnings("WeakerAccess")
//     final AdminApi adminApi;
// 
//     @SuppressWarnings("WeakerAccess")
//     String tresorId;
// 
//     @Inject
//     public ShareTresorViewModel(Zerokit zerokit, AdminApi adminApi, final EventBus eventBus) {
//         this.zerokit = zerokit;
//         this.adminApi = adminApi;
// 
//         this.inProgress = new ObservableField<>(false);
//         this.userId = new ObservableField<>();
//         this.textSummary = new ObservableField<>();
//         this.sharedWithUserId = new ObservableField<>("");
//         this.clickListener = new View.OnClickListener() {
//             @Override
//             public void onClick(View v) {
//                 shareTresor(tresorId, userId.get());
//             }
//         };
//         errorResponseHandlerSdk = new Action<ResponseZerokitError>() {
//             @Override
//             public void call(ResponseZerokitError errorResponse) {
//                 inProgress.set(false);
//                 eventBus.post(new ShowMessageMessage(errorResponse.toString()));
//             }
//         };
//         errorResponseHandlerAdminapi = new Action<ResponseAdminApiError>() {
//             @Override
//             public void call(ResponseAdminApiError errorResponse) {
//                 inProgress.set(false);
//                 eventBus.post(new ShowMessageMessage(errorResponse.toString()));
//             }
//         };
//     }
// 
//     @SuppressWarnings("WeakerAccess")
//     void shareTresor(final String tresorId, final String userName) {
//         inProgress.set(true);
//         sharedWithUserId.set("");
//         this.adminApi.getUserId(userName).enqueue(new Action<String>() {
//             @Override
//             public void call(String userId) {
//                 zerokit.shareTresor(tresorId, userId).enqueue(new Action<String>() {
//                     @Override
//                     public void call(String shareId) {
//                         adminApi.sharedTresor(shareId).enqueue(new Action<Void>() {
//                             @Override
//                             public void call(Void result) {
//                                 sharedWithUserId.set("Shared with: " + userName);
//                                 inProgress.set(false);
//                             }
//                         }, errorResponseHandlerAdminapi);
//                     }
//                 }, errorResponseHandlerSdk);
//             }
//         }, errorResponseHandlerAdminapi);
//     }
// 
//     @Subscribe
//     @SuppressWarnings("unused")
//     public void onEvent(CreateTresorFinishedMessage message) {
//         tresorId = message.getTresorId();
//         textSummary.set("Tresor ID: " + message.getTresorId());
//         sharedWithUserId.set("");
//     }
// 
// }


import com.tresorit.zerokitsdk.fragment.ShareTresorFragment;
import com.tresorit.zerokitsdk.module.ShareTresorModule;
import com.tresorit.zerokitsdk.scopes.ActivityScope;
import com.tresorit.zerokitsdk.viewmodel.ShareTresorViewModel;
import dagger.Component;
package com.tresorit.zerokitsdk.component;



@ActivityScope
@Component(
        modules = {
                ShareTresorModule.class
        },
// Path: sample/src/main/java/com/tresorit/zerokitsdk/fragment/ShareTresorFragment.java
// public class ShareTresorFragment extends Fragment {
// 
//     @SuppressWarnings({"WeakerAccess", "CanBeFinal"})
//     @Inject
//     ShareTresorViewModel viewModel;
// 
//     @SuppressWarnings({"WeakerAccess", "CanBeFinal"})
//     @Inject
//     EventBus eventBus;
// 
// 
//     @Nullable
//     @Override
//     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//         DaggerShareTresorComponent.builder().applicationComponent(ZerokitApplication.get(getActivity()).component()).build().inject(this);
//         FragmentShareTresorBinding binding = FragmentShareTresorBinding.inflate(inflater, container, false);
//         binding.setViewmodel(viewModel);
//         return binding.getRoot();
//     }
// 
//     @Override
//     public void onStart() {
//         super.onStart();
//         eventBus.register(viewModel);
//     }
// 
//     @Override
//     public void onStop() {
//         super.onStop();
//         eventBus.unregister(viewModel);
//     }
// }
// 
// Path: sample/src/main/java/com/tresorit/zerokitsdk/module/ShareTresorModule.java
// @Module
// public class ShareTresorModule {
//     @Provides
//     @ActivityScope
//     public ShareTresorViewModel provideShareTresorViewModel(Zerokit zerokit, AdminApi adminApi, EventBus eventBus) {
//         return new ShareTresorViewModel(zerokit, adminApi, eventBus);
//     }
// }
// 
// Path: sample/src/main/java/com/tresorit/zerokitsdk/viewmodel/ShareTresorViewModel.java
// public class ShareTresorViewModel extends BaseObservable {
// 
//     @SuppressWarnings("WeakerAccess")
//     public final View.OnClickListener clickListener;
//     @SuppressWarnings("WeakerAccess")
//     public final ObservableField<Boolean> inProgress;
//     @SuppressWarnings("WeakerAccess")
//     public final ObservableField<String> userId;
//     @SuppressWarnings("WeakerAccess")
//     public final ObservableField<String> textSummary;
//     @SuppressWarnings("WeakerAccess")
//     public final ObservableField<String> sharedWithUserId;
// 
//     @SuppressWarnings("WeakerAccess")
//     final Action<ResponseZerokitError> errorResponseHandlerSdk;
//     @SuppressWarnings("WeakerAccess")
//     final Action<ResponseAdminApiError> errorResponseHandlerAdminapi;
// 
//     final Zerokit zerokit;
// 
//     @SuppressWarnings("WeakerAccess")
//     final AdminApi adminApi;
// 
//     @SuppressWarnings("WeakerAccess")
//     String tresorId;
// 
//     @Inject
//     public ShareTresorViewModel(Zerokit zerokit, AdminApi adminApi, final EventBus eventBus) {
//         this.zerokit = zerokit;
//         this.adminApi = adminApi;
// 
//         this.inProgress = new ObservableField<>(false);
//         this.userId = new ObservableField<>();
//         this.textSummary = new ObservableField<>();
//         this.sharedWithUserId = new ObservableField<>("");
//         this.clickListener = new View.OnClickListener() {
//             @Override
//             public void onClick(View v) {
//                 shareTresor(tresorId, userId.get());
//             }
//         };
//         errorResponseHandlerSdk = new Action<ResponseZerokitError>() {
//             @Override
//             public void call(ResponseZerokitError errorResponse) {
//                 inProgress.set(false);
//                 eventBus.post(new ShowMessageMessage(errorResponse.toString()));
//             }
//         };
//         errorResponseHandlerAdminapi = new Action<ResponseAdminApiError>() {
//             @Override
//             public void call(ResponseAdminApiError errorResponse) {
//                 inProgress.set(false);
//                 eventBus.post(new ShowMessageMessage(errorResponse.toString()));
//             }
//         };
//     }
// 
//     @SuppressWarnings("WeakerAccess")
//     void shareTresor(final String tresorId, final String userName) {
//         inProgress.set(true);
//         sharedWithUserId.set("");
//         this.adminApi.getUserId(userName).enqueue(new Action<String>() {
//             @Override
//             public void call(String userId) {
//                 zerokit.shareTresor(tresorId, userId).enqueue(new Action<String>() {
//                     @Override
//                     public void call(String shareId) {
//                         adminApi.sharedTresor(shareId).enqueue(new Action<Void>() {
//                             @Override
//                             public void call(Void result) {
//                                 sharedWithUserId.set("Shared with: " + userName);
//                                 inProgress.set(false);
//                             }
//                         }, errorResponseHandlerAdminapi);
//                     }
//                 }, errorResponseHandlerSdk);
//             }
//         }, errorResponseHandlerAdminapi);
//     }
// 
//     @Subscribe
//     @SuppressWarnings("unused")
//     public void onEvent(CreateTresorFinishedMessage message) {
//         tresorId = message.getTresorId();
//         textSummary.set("Tresor ID: " + message.getTresorId());
//         sharedWithUserId.set("");
//     }
// 
// }


// Path: sample/src/main/java/com/tresorit/zerokitsdk/component/ShareTresorComponent.java
import com.tresorit.zerokitsdk.fragment.ShareTresorFragment;
import com.tresorit.zerokitsdk.module.ShareTresorModule;
import com.tresorit.zerokitsdk.scopes.ActivityScope;
import com.tresorit.zerokitsdk.viewmodel.ShareTresorViewModel;
import dagger.Component;

package com.tresorit.zerokitsdk.component;



@ActivityScope
@Component(
        modules = {
                ShareTresorModule.class
        },
        dependencies = {