}
};
+ // This are the transitions we want:
+ //
+ // +--------+ +------------+ +-------+ +----------+
+ // | Camera |---------->| Fullscreen |--->| Album |--->| AlbumSet |
+ // | View | thumbnail | Photo | up | Page | up | Page |
+ // +--------+ +------------+ +-------+ +----------+
+ // ^ | | ^ |
+ // | | | | | close
+ // +----------back--------+ +----back----+ +--back-> app
+ //
@Override
protected void onBackPressed() {
if (mShowDetails) {
} else {
// TODO: fix this regression
// mAlbumView.savePositions(PositionRepository.getInstance(mActivity));
+ onUpPressed();
+ }
+ }
+
+ private void onUpPressed() {
+ if (mActivity.getStateManager().getStateCount() > 1) {
super.onBackPressed();
+ } else if (mParentMediaSetString != null) {
+ Bundle data = new Bundle(getData());
+ data.putString(AlbumSetPage.KEY_MEDIA_PATH, mParentMediaSetString);
+ mActivity.getStateManager().switchState(
+ this, AlbumSetPage.class, data);
}
}
protected boolean onItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home: {
- if (mActivity.getStateManager().getStateCount() > 1) {
- onBackPressed();
- } else if (mParentMediaSetString != null) {
- Bundle data = new Bundle(getData());
- data.putString(AlbumSetPage.KEY_MEDIA_PATH, mParentMediaSetString);
- mActivity.getStateManager().switchState(this, AlbumSetPage.class, data);
- }
+ onUpPressed();
return true;
}
case R.id.action_cancel:
private boolean mIsActive;
private ShareActionProvider mShareActionProvider;
private String mSetPathString;
+ // This is the original mSetPathString before adding the camera preview item.
+ private String mOriginalSetPathString;
private AppBridge mAppBridge;
private ScreenNail mScreenNail;
private MediaItem mScreenNailItem;
mOrientationManager.addListener(this);
mSetPathString = data.getString(KEY_MEDIA_SET_PATH);
+ mOriginalSetPathString = mSetPathString;
mNfcAdapter = NfcAdapter.getDefaultAdapter(mActivity.getAndroidContext());
Path itemPath = Path.fromString(data.getString(KEY_MEDIA_ITEM_PATH));
}
}
+ private void onUpPressed() {
+ if (mActivity.getStateManager().getStateCount() > 1) {
+ super.onBackPressed();
+ } else if (mOriginalSetPathString != null) {
+ // We're in view mode so set up the stacks on our own.
+ Bundle data = new Bundle(getData());
+ data.putString(AlbumPage.KEY_MEDIA_PATH, mOriginalSetPathString);
+ data.putString(AlbumPage.KEY_PARENT_MEDIA_PATH,
+ mActivity.getDataManager().getTopSetPath(
+ DataManager.INCLUDE_ALL));
+ mActivity.getStateManager().switchState(this, AlbumPage.class, data);
+ }
+ }
+
private void setResult() {
Intent result = null;
if (!mPhotoView.getFilmMode()) {
boolean needsConfirm = false;
switch (action) {
case android.R.id.home: {
- if (mSetPathString != null) {
- if (mActivity.getStateManager().getStateCount() > 1) {
- onBackPressed();
- } else {
- // We're in view mode so set up the stacks on our own.
- Bundle data = new Bundle(getData());
- data.putString(AlbumPage.KEY_MEDIA_PATH, mSetPathString);
- data.putString(AlbumPage.KEY_PARENT_MEDIA_PATH,
- mActivity.getDataManager().getTopSetPath(
- DataManager.INCLUDE_ALL));
- mActivity.getStateManager().switchState(this, AlbumPage.class, data);
- }
- }
+ onUpPressed();
return true;
}
case R.id.action_slideshow: {