Support multiple SceneManager

This commit is contained in:
seven332 committed 2015-07-06 01:11:42 +08:00
1 parent 458a275dcd
commit 0025c76573
6 files changed
+127 -49

No files matched your search

@@ -35,6 +35,8 @@ public class SceneManager {
private static final String TAG = SceneManager.class.getSimpleName();
private int mId;
private Stack<Scene> mSceneStack = new Stack<>();
private StageActivity mStageActivity;
@@ -46,17 +48,12 @@ public class SceneManager {
private List<SceneStateListener> mSceneStateListenerList = new ArrayList<>();
private static SceneManager sSceneManger;
public static SceneManager getInstance() {
if (sSceneManger == null) {
sSceneManger = new SceneManager();
}
return sSceneManger;
SceneManager(int id) {
mId = id;
}
// Should only be called by SceneApplication
private SceneManager() {
int getId() {
return mId;
}
int nextId() {
@@ -157,6 +154,7 @@ public class SceneManager {
}
Scene scene = createSceneByClass(sceneClass);
scene.setSceneManager(this);
scene.setAnnouncer(announcer);
scene.setCurtain(curtain);
@@ -345,6 +343,10 @@ public class SceneManager {
return mSceneStack;
}
int getSceneSize() {
return mSceneStack.size();
}
protected void onSaveInstanceState(Bundle outState) {
for (Scene scene : mSceneStack) {
scene.saveInstanceState(outState);