Skip to content

Instantly share code, notes, and snippets.

View user-mw's full-sized avatar

Vladislav user-mw

  • Russian Federation
View GitHub Profile
public сlass HolderFragment extends Fragment {
// Other code
private ViewModelStore mViewModelStore = new ViewModelStore();
public HolderFragment() {
setRetainInstance(true);
}
public abstract class ViewModel {
/**
Long comment
*/
@SuppressWarnings("WeakerAccess")
protected void onCleared() {
}
}
@user-mw
user-mw / ViewModelProviders.java
Last active December 7, 2019 09:44
ViewModelProviders.of() in 2017
public class ViewModelProviders {
public static ViewModelProvider of(// arguments) {
// Code
return new ViewModelProvider(ViewModelStores.of(fragment), factory);
}
public static ViewModelProvider of(// arguments) {
// Code
return new ViewModelProvider(ViewModelStores.of(activity), factory);
@user-mw
user-mw / ViewModelProvider.java
Created December 7, 2019 09:50
ViewModelProivder get() 2017
public class ViewModelProvider {
DEFAULT_KEY = "android.arch.lifecycle.ViewModelProvider.DefaultKey";
// Code
public <T extends ViewModel> T get(Class<T> modelClass) {
String canonicalName = modelClass.getCanonicalName();
// Code
@user-mw
user-mw / ViewModelProvider.java
Last active December 7, 2019 13:31
ViewModelProvider get(@nonnull String key, @nonnull Class<T> modelClass)
public <T extends ViewModel> T get(@NonNull String key, @NonNull Class<T> modelClass) {
ViewModel viewModel = mViewModelStore.get(key);
if (modelClass.isInstance(viewModel)) {
return (T) viewModel;
} else {
// Сode
}
viewModel = mFactory.create(modelClass);
@user-mw
user-mw / ViewModelStores.java
Created December 7, 2019 10:11
ViewModelStores 2017
public сlass ViewModelStores {
public static ViewModelStore of(FragmentActivity activity) {
if (activity instanceof ViewModelStoreOwner) {
return ((ViewModelStoreOwner) activity).getViewModelStore();
}
return holderFragmentFor(activity).getViewModelStore();
}
// Code
@user-mw
user-mw / HolderFragment.java
Created December 7, 2019 10:30
HolderFragment holderFragmentFor() methods
public сlass HolderFragment extends Fragment {
// Code
public static HolderFragment holderFragmentFor(FragmentActivity activity) {
return sHolderFragmentManager.holderFragmentFor(activity);
}
public static HolderFragment holderFragmentFor(Fragment fragment) {
return sHolderFragmentManager.holderFragmentFor(fragment);
@user-mw
user-mw / ViewModelProviders.java
Created December 7, 2019 13:57
ViewModelProviders method of() in 2018
public class ViewModelProviders {
public static ViewModelProvider of(// arguments) {
// Code
return new ViewModelProvider(fragment.getViewModelStore(), factory);
}
public static ViewModelProvider of(// arguments) {
// Code
return new ViewModelProvider(activity.getViewModelStore(), factory);
@user-mw
user-mw / FragmentActivity.java
Created December 7, 2019 14:10
FragmentActivity getViewModelStore()
public ViewModelStore getViewModelStore() {
// Code
if (mViewModelStore == null) {
NonConfigurationInstances nc =
(NonConfigurationInstances) getLastNonConfigurationInstance();
if (nc != null) {
mViewModelStore = nc.viewModelStore;
}
if (mViewModelStore == null) {
@user-mw
user-mw / Activity.java
Last active December 7, 2019 14:27
getLastNonConfigurationInstance() in Activity
public class Activity extends ContextThemeWrapper
implements LayoutInflater.Factory2,
//Code {
// Code
public Object getLastNonConfigurationInstance() {
return mLastNonConfigurationInstances != null
? mLastNonConfigurationInstances.activity : null;
}