Skip to content

Instantly share code, notes, and snippets.

View skydoves's full-sized avatar
💡
Practice is the only shortcut

Jaewoong Eum skydoves

💡
Practice is the only shortcut
View GitHub Profile
@PreferenceComponent(entities = {Profile.class, Device.class})
public interface UserProfileComponent {
}
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
PreferenceComponent_UserProfileComponent.init(this);
}
}
Preference_UserProfile userProfile = PreferenceComponent_UserProfileComponent.getInstance().UserProfile();
Preference_UserDevice userDevice = PreferenceComponent_UserProfileComponent.getInstance().UserDevice();
/**
* Component integrates entities.
*/
@PreferenceComponent(entities = {Profile.class, Device.class})
public interface UserProfileComponent {
/**
* declare dependency injection targets.
*/
void inject(MainActivity __);
void inject(LoginActivity __);
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PreferenceComponent_UserProfileComponent.getInstance().inject(this);
}
@InjectPreference
public PreferenceComponent_UserProfileComponent component;
@InjectPreference
public Preference_UserProfile userProfile;
apply plugin: 'kotlin-android'
kapt {
correctErrorTypes = true
}
@PreferenceComponent(entities = arrayOf(Profile::class, Device::class))
interface UserProfileComponent {
/**
* declare dependency injection targets.
*/
fun inject(target: MainActivity)
fun inject(target: LoginActivity)
}
@InjectPreference
lateinit var component: PreferenceComponent_UserProfileComponent
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
PreferenceComponent_UserProfileComponent.getInstance().inject(this) // inject dependency injection to MainActivity.
@skydoves
skydoves / AppViewModelFactory.java
Created March 15, 2018 14:47
AppViewModelFactory
@Singleton
public class AppViewModelFactory implements ViewModelProvider.Factory {
private final Map<Class<? extends ViewModel>, Provider<ViewModel>> creators;
@Inject
public AppViewModelFactory(Map<Class<? extends ViewModel>, Provider<ViewModel>> creators) {
this.creators = creators;
}
@SuppressWarnings("unchecked")