private SettingsManager mSettingsManager;
private ModeListView mModeListView;
+ private boolean mModeListVisible = false;
private int mCurrentModeIndex;
private CameraModule mCurrentModule;
private ModuleManagerImpl mModuleManager;
private FrameLayout mAboveFilmstripControlLayout;
private FilmstripController mFilmstripController;
private boolean mFilmstripVisible;
+ /** Whether the filmstrip fully covers the preview. */
+ private boolean mFilmstripCoversPreview = false;
private int mResultCodeForTesting;
private Intent mResultDataForTesting;
private OnScreenHint mStorageHint;
@Override
public void onSwipeOutBegin() {
mActionBar.hide();
- if (mCurrentModule != null) {
- mCurrentModule
- .onPreviewVisibilityChanged(ModuleController.VISIBILITY_VISIBLE);
- }
+ mFilmstripCoversPreview = false;
+ updatePreviewVisibility();
}
@Override
mFilmstripVisible = true;
decrementPeekAnimPlayTimes();
updateUiByData(mFilmstripController.getCurrentId());
- if (mCurrentModule != null) {
- mCurrentModule
- .onPreviewVisibilityChanged(ModuleController.VISIBILITY_HIDDEN);
- }
}
@Override
mActionBar.hide();
}
}
+ mFilmstripCoversPreview = visible;
+ updatePreviewVisibility();
}
private void hideSessionProgress() {
mModeListView.setVisibilityChangedListener(new ModeListVisibilityChangedListener() {
@Override
public void onVisibilityChanged(boolean visible) {
- if (mCurrentModule != null) {
- int visibility = visible ? ModuleController.VISIBILITY_COVERED
- : ModuleController.VISIBILITY_VISIBLE;
- mCurrentModule.onPreviewVisibilityChanged(visibility);
- }
+ mModeListVisible = visible;
+ updatePreviewVisibility();
}
});
}
}
+ /**
+ * Call this whenever the mode drawer or filmstrip change the visibility
+ * state.
+ */
+ private void updatePreviewVisibility() {
+ if (mCurrentModule == null) {
+ return;
+ }
+ int visibility;
+ if (mFilmstripCoversPreview) {
+ visibility = ModuleController.VISIBILITY_HIDDEN;
+ } else if (mModeListVisible){
+ visibility = ModuleController.VISIBILITY_COVERED;
+ } else {
+ visibility = ModuleController.VISIBILITY_VISIBLE;
+ }
+ mCurrentModule.onPreviewVisibilityChanged(visibility);
+ }
+
private void setRotationAnimation() {
int rotationAnimation = WindowManager.LayoutParams.ROTATION_ANIMATION_ROTATE;
rotationAnimation = WindowManager.LayoutParams.ROTATION_ANIMATION_CROSSFADE;
private void openModule(CameraModule module) {
module.init(this, isSecureCamera(), isCaptureIntent());
module.resume();
- int visibility = mFilmstripVisible ? ModuleController.VISIBILITY_HIDDEN
- : ModuleController.VISIBILITY_VISIBLE;
- module.onPreviewVisibilityChanged(visibility);
+ updatePreviewVisibility();
}
private void closeModule(CameraModule module) {