fix static

This commit is contained in:
Arseniy Borisov 2017-02-21 16:11:42 +03:00
parent 79e391aeee
commit a059380ddc
4 changed files with 31 additions and 9 deletions

View File

@ -64,6 +64,11 @@ public class SimpleViewControllerFragment<TState extends AbstractState, TActivit
return viewControllerClass;
}
@Override
protected boolean isStateRequired() {
return true;
}
@SuppressWarnings("unchecked")
@Override
public void onCreate(@Nullable final Bundle savedInstanceState) {

View File

@ -51,6 +51,11 @@ public class StatelessTargetedViewControllerFragment<TTargetState extends Abstra
return createState(viewControllerClass, new DefaultState());
}
@Override
protected boolean isStateRequired() {
return false;
}
@NonNull
@Override
public AbstractState getState() {

View File

@ -38,13 +38,6 @@ import ru.touchin.roboswag.core.log.Lc;
public class StatelessViewControllerFragment<TActivity extends ViewControllerActivity<?>>
extends SimpleViewControllerFragment<AbstractState, TActivity> {
@NonNull
@Override
public AbstractState getState() {
Lc.assertion("Trying to access to state of stateless fragment of " + getViewControllerClass());
return super.getState();
}
/**
* Creates {@link Bundle} which will store state and {@link ViewController}'s class.
*
@ -56,4 +49,16 @@ public class StatelessViewControllerFragment<TActivity extends ViewControllerAct
return createState(viewControllerClass, new DefaultState());
}
@NonNull
@Override
public AbstractState getState() {
Lc.assertion("Trying to access to state of stateless fragment of " + getViewControllerClass());
return super.getState();
}
@Override
protected boolean isStateRequired() {
return false;
}
}

View File

@ -139,6 +139,13 @@ public abstract class ViewControllerFragment<TState extends AbstractState, TActi
public abstract Class<? extends ViewController<TActivity,
? extends ViewControllerFragment<TState, TActivity>>> getViewControllerClass();
/**
* Returns if ViewControllerFragment requires state or not.
*
* @return true if state is required
*/
protected abstract boolean isStateRequired();
@SuppressWarnings("unchecked")
@Override
public void onCreate(@Nullable final Bundle savedInstanceState) {
@ -154,8 +161,8 @@ public abstract class ViewControllerFragment<TState extends AbstractState, TActi
state = reserialize(state);
}
state.onCreate();
} else {
Lc.assertion("State is null");
} else if (isStateRequired()) {
Lc.assertion("State is required and null");
}
viewControllerSubscription = Observable
.combineLatest(activitySubject.distinctUntilChanged(), viewSubject.distinctUntilChanged(),