// Path: app/src/main/java/com/github/aleksandermielczarek/napkinexample/module/FragmentModule.java
// @Module
// @FragmentScope
// public class FragmentModule extends NapkinFragmentModule {
// 
//     public FragmentModule(Fragment fragment) {
//         super(fragment);
//     }
// 
//     @Provides
//     @FragmentString
//     String provideNapkinString() {
//         return "Hello Napkin in Fragment!";
//     }
// }
// 
// Path: app/src/main/java/com/github/aleksandermielczarek/napkinexample/ui/SecondaryFragment.java
// public class SecondaryFragment extends Fragment {
// 
//     @Inject
//     protected SecondaryViewModel secondaryViewModel;
// 
//     @Override
//     public void onCreate(@Nullable Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
// 
//         Napkin.<ActivityComponent>provideActivityComponent(this)
//                 .with(new FragmentModule(this))
//                 .inject(this);
//     }
// 
//     @Nullable
//     @Override
//     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//         FragmentScondaryBinding binding = FragmentScondaryBinding.inflate(inflater, container, false);
//         binding.setViewModel(secondaryViewModel);
//         return binding.getRoot();
//     }
// }


import com.github.aleksandermielczarek.napkin.scope.FragmentScope;
import com.github.aleksandermielczarek.napkinexample.module.FragmentModule;
import com.github.aleksandermielczarek.napkinexample.ui.SecondaryFragment;
import dagger.Subcomponent;
package com.github.aleksandermielczarek.napkinexample.component;



/**
 * Created by Aleksander Mielczarek on 18.11.2016.
 */
@FragmentScope
@Subcomponent(modules = FragmentModule.class)
public interface FragmentComponent {

// Path: app/src/main/java/com/github/aleksandermielczarek/napkinexample/module/FragmentModule.java
// @Module
// @FragmentScope
// public class FragmentModule extends NapkinFragmentModule {
// 
//     public FragmentModule(Fragment fragment) {
//         super(fragment);
//     }
// 
//     @Provides
//     @FragmentString
//     String provideNapkinString() {
//         return "Hello Napkin in Fragment!";
//     }
// }
// 
// Path: app/src/main/java/com/github/aleksandermielczarek/napkinexample/ui/SecondaryFragment.java
// public class SecondaryFragment extends Fragment {
// 
//     @Inject
//     protected SecondaryViewModel secondaryViewModel;
// 
//     @Override
//     public void onCreate(@Nullable Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
// 
//         Napkin.<ActivityComponent>provideActivityComponent(this)
//                 .with(new FragmentModule(this))
//                 .inject(this);
//     }
// 
//     @Nullable
//     @Override
//     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//         FragmentScondaryBinding binding = FragmentScondaryBinding.inflate(inflater, container, false);
//         binding.setViewModel(secondaryViewModel);
//         return binding.getRoot();
//     }
// }


// Path: app/src/main/java/com/github/aleksandermielczarek/napkinexample/component/FragmentComponent.java
import com.github.aleksandermielczarek.napkin.scope.FragmentScope;
import com.github.aleksandermielczarek.napkinexample.module.FragmentModule;
import com.github.aleksandermielczarek.napkinexample.ui.SecondaryFragment;
import dagger.Subcomponent;

package com.github.aleksandermielczarek.napkinexample.component;



/**
 * Created by Aleksander Mielczarek on 18.11.2016.
 */
@FragmentScope
@Subcomponent(modules = FragmentModule.class)
public interface FragmentComponent {

    void inject(SecondaryFragment secondaryFragment);