Skip to content

Instantly share code, notes, and snippets.

View vestrel00's full-sized avatar
👨‍💻
Working, life, and the universe!

Vandolf Estrellado vestrel00

👨‍💻
Working, life, and the universe!
View GitHub Profile
@vestrel00
vestrel00 / BaseFragmentModule.java
Created July 26, 2017 15:27
A: 3 - ui/common/BaseFragmentModule.java
@Module
public abstract class BaseFragmentModule {
public static final String FRAGMENT = "BaseFragmentModule.fragment";
static final String CHILD_FRAGMENT_MANAGER = "BaseFragmentModule.childFragmentManager";
@Provides
@Named(CHILD_FRAGMENT_MANAGER)
@PerFragment
@vestrel00
vestrel00 / BaseChildFragment.java
Created July 26, 2017 15:43
A: 3 - ui/common/BaseChildFragment.java
@Module
public abstract class BaseChildFragmentModule {
public static final String CHILD_FRAGMENT = "BaseChildFragmentModule.childFragment";
}
@vestrel00
vestrel00 / SingletonUtil.java
Last active July 26, 2017 15:53
A: 4 - util/SingletonUtil.java
@Singleton
public final class SingletonUtil {
@Inject
SingletonUtil() {
}
public String doSomething() {
return "SingletonUtil: " + hashCode();
}
@vestrel00
vestrel00 / PerActivityUtil.java
Created July 26, 2017 15:53
A: 4 - util/PerActivityUtil.java
@PerActivity
public final class PerActivityUtil {
private final Activity activity;
@Inject
PerActivityUtil(Activity activity) {
this.activity = activity;
}
@vestrel00
vestrel00 / PerFragmentUtil.java
Created July 26, 2017 16:04
A: 4 - util/PerFragmentUtil.java
@PerFragment
public final class PerFragmentUtil {
private final Fragment fragment;
@Inject
PerFragmentUtil(@Named(BaseFragmentModule.FRAGMENT) Fragment fragment) {
this.fragment = fragment;
}
@vestrel00
vestrel00 / PerChildFragmentUtil.java
Created July 26, 2017 16:08
A: 4 - util/PerChildFragmentUtil.java
@PerChildFragment
public final class PerChildFragmentUtil {
private final Fragment childFragment;
@Inject
PerChildFragmentUtil(@Named(BaseChildFragmentModule.CHILD_FRAGMENT) Fragment childFragment) {
this.childFragment = childFragment;
}
@vestrel00
vestrel00 / MainFragment.java
Created July 26, 2017 16:32
A: 5 - ui/main/MainFragment.java
public final class MainFragment extends BaseFragment implements View.OnClickListener {
@Inject
MainFragmentListener listener;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.main_fragment, container, false);
}
@vestrel00
vestrel00 / MainFragmentListener.java
Created July 26, 2017 16:46
A: 5 - ui/main/MainFragmentListener.java
interface MainFragmentListener {
void onExample1Clicked();
void onExample2Clicked();
void onExample3Clicked();
}
@vestrel00
vestrel00 / MainFragmentModule.java
Created July 26, 2017 16:47
A: 5 - ui/main/MainFragmentModule.java
@Module(includes = BaseFragmentModule.class)
abstract class MainFragmentModule {
@Binds
@Named(BaseFragmentModule.FRAGMENT)
@PerFragment
abstract Fragment fragment(MainFragment mainFragment);
}
@vestrel00
vestrel00 / MainFragmentSubcomponent.java
Last active July 26, 2017 17:33
A: 5 - ui/main/MainFragmentSubcomponent.java
// TODO (ContributesAndroidInjector) remove this in favor of @ContributesAndroidInjector
@PerFragment
@Subcomponent(modules = MainFragmentModule.class)
public interface MainFragmentSubcomponent extends AndroidInjector<MainFragment> {
@Subcomponent.Builder
abstract class Builder extends AndroidInjector.Builder<MainFragment> {
}
}