ScreenManager
@MainThread
public class ScreenManager implements Manager
TestScreenManager |
The |
Manages the stack of Screens and their respective Lifecycles.
Summary
Public methods |
|
|---|---|
@NonNull Collection<Screen> |
Returns the copy of the current screen stack as a type |
int |
Returns the current stack size. |
@NonNull Screen |
getTop()Returns the |
void |
pop()Pops the top |
void |
Removes screens from the top of the stack until a |
void |
Removes all screens from the stack until the root has been reached. |
void |
Pushes the |
void |
pushForResult(Pushes a |
void |
Removes the |
Public methods
getScreenStack
public @NonNull Collection<Screen> getScreenStack()
Returns the copy of the current screen stack as a type Collection
getTop
public @NonNull Screen getTop()
Returns the Screen that is at the top of the stack.
| Throws | |
|---|---|
java.lang.NullPointerException |
if the method is called before a |
java.lang.IllegalStateException |
if the current thread is not the main thread |
pop
public void pop()
Pops the top Screen from the stack.
If the top Screen is the only Screen in the stack, it will not be removed.
If the app's lifecycle is already in the DESTROYED state, this operation is a no-op.
| Throws | |
|---|---|
java.lang.IllegalStateException |
if the current thread is not the main thread |
popTo
public void popTo(@NonNull String marker)
Removes screens from the top of the stack until a Screen which has the given
marker is found, or the root has been reached.
The root Screen will not be popped.
If the app's lifecycle is already in the DESTROYED state, this operation is a no-op.
| Throws | |
|---|---|
java.lang.NullPointerException |
if |
java.lang.IllegalStateException |
if the current thread is not the main thread |
| See also | |
|---|---|
setMarker |
popToRoot
public void popToRoot()
Removes all screens from the stack until the root has been reached.
If the app's lifecycle is already in the DESTROYED state, this operation is a no-op.
| Throws | |
|---|---|
java.lang.IllegalStateException |
if the current thread is not the main thread |
push
public void push(@NonNull Screen screen)
Pushes the screen to the stack.
If the screen pushed is already in the stack it will be moved to the top of the stack.
If the app's lifecycle is already in the DESTROYED state, this operation is a no-op.
| Throws | |
|---|---|
java.lang.NullPointerException |
if |
java.lang.IllegalStateException |
if the current thread is not the main thread |
pushForResult
public void pushForResult(
@NonNull Screen screen,
@NonNull OnScreenResultListener onScreenResultListener
)
Pushes a Screen, for which you would like a result from, onto the stack.
When the given screen finishes, the onScreenResultCallback will receive a callback to onScreenResult with the result that the pushed screen set via setResult.
If the app's lifecycle is already in the DESTROYED state, this operation is a no-op.
| Parameters | |
|---|---|
@NonNull Screen screen |
the |
@NonNull OnScreenResultListener onScreenResultListener |
the listener that will be executed with the result pushed by the |
| Throws | |
|---|---|
java.lang.NullPointerException |
if either the |
java.lang.IllegalStateException |
if the current thread is not the main thread |
remove
public void remove(@NonNull Screen screen)
Removes the screen from the stack.
If the screen is the only Screen in the stack, it will not be removed.
If the app's lifecycle is already in the DESTROYED state, this operation is a no-op.
| Throws | |
|---|---|
java.lang.NullPointerException |
if |
java.lang.IllegalStateException |
if the current thread is not the main thread |