From 781bf86ef110d4da1e8f8bcaacd6914b4f62f01c Mon Sep 17 00:00:00 2001 From: seven332 Date: Mon, 23 Mar 2015 16:40:06 +0800 Subject: [PATCH] Update Scene --- .../hippo/ehviewer/ui/ContentActivity.java | 3 ++- app/src/main/java/com/hippo/scene/Scene.java | 7 +++++-- .../java/com/hippo/scene/StageActivity.java | 20 +++++++++++++++---- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/ContentActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/ContentActivity.java index 3291d213d..b3ca1168d 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/ContentActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/ContentActivity.java @@ -18,6 +18,7 @@ package com.hippo.ehviewer.ui; import android.content.Context; import android.content.res.Resources; import android.os.Bundle; +import android.support.annotation.NonNull; import android.support.v4.widget.DrawerLayout; import com.hippo.content.VectorContext; @@ -60,7 +61,7 @@ public class ContentActivity extends StageActivity { } @Override - public StageLayout getStageLayout() { + public @NonNull StageLayout getStageLayout() { return mContentLayout; } diff --git a/app/src/main/java/com/hippo/scene/Scene.java b/app/src/main/java/com/hippo/scene/Scene.java index 86cfa3aab..55b76113c 100644 --- a/app/src/main/java/com/hippo/scene/Scene.java +++ b/app/src/main/java/com/hippo/scene/Scene.java @@ -153,9 +153,10 @@ public abstract class Scene { } } + /* void attachToStageAsPreScene() { - // TODO } + */ // Remove scene view from stage layout void detachFromeStage() { @@ -168,9 +169,11 @@ public abstract class Scene { getStageActivity().attachSceneToStage(this); } + /* void doAttachToStageAsPreScene() { getStageActivity().attachSceneToStageAsPreScene(this); } + */ void doDetachFromeStage() { getStageActivity().detachSceneFromStage(this); @@ -226,6 +229,6 @@ public abstract class Scene { } public interface ActivityResultListener { - public void onGetResult(int resultCode, Intent data); + void onGetResult(int resultCode, Intent data); } } diff --git a/app/src/main/java/com/hippo/scene/StageActivity.java b/app/src/main/java/com/hippo/scene/StageActivity.java index 321bf5a5e..78088a356 100644 --- a/app/src/main/java/com/hippo/scene/StageActivity.java +++ b/app/src/main/java/com/hippo/scene/StageActivity.java @@ -20,6 +20,7 @@ import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.util.SparseArray; +import android.view.View; import com.hippo.ehviewer.ui.AbsActionBarActivity; import com.hippo.util.IntIdGenerator; @@ -36,7 +37,7 @@ public abstract class StageActivity extends AbsActionBarActivity { sSceneManager = sceneManager; } - public abstract StageLayout getStageLayout(); + public abstract @NonNull StageLayout getStageLayout(); @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -53,16 +54,27 @@ public abstract class StageActivity extends AbsActionBarActivity { } void attachSceneToStage(Scene scene) { - getStageLayout().addView(scene.getSceneView()); + View sceneView = scene.getSceneView(); + if (sceneView != null) { + getStageLayout().addView(sceneView); + } } + /* void attachSceneToStageAsPreScene(Scene scene) { StageLayout stageLayout = getStageLayout(); - stageLayout.addView(scene.getSceneView(), stageLayout.getChildCount() - 1); + View sceneView = scene.getSceneView(); + if (sceneView != null) { + stageLayout.addView(sceneView, stageLayout.getChildCount() - 1); + } } + */ void detachSceneFromStage(Scene scene) { - getStageLayout().removeView(scene.getSceneView()); + View sceneView = scene.getSceneView(); + if (sceneView != null) { + getStageLayout().removeView(sceneView); + } } public void startScene(@NonNull Class sceneClass, @Nullable Announcer announcer) {