Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b1e9fd89 authored by Chih-Chung Chang's avatar Chih-Chung Chang
Browse files

Fix Back behavior in gallery grid and remove camera preview tile.

Bug: 6411801
Bug: 6411709

Change-Id: Iebd7db06d44d315ac67eb8c5133b86044fce30c4
parent 82af7be9
Loading
Loading
Loading
Loading
+22 −7
Original line number Diff line number Diff line
@@ -147,6 +147,16 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster
        }
    };

    // 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) {
@@ -156,7 +166,18 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster
        } 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);
        }
    }

@@ -467,13 +488,7 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster
    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:
+18 −13
Original line number Diff line number Diff line
@@ -110,6 +110,8 @@ public class PhotoPage extends ActivityState implements
    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;
@@ -171,6 +173,7 @@ public class PhotoPage extends ActivityState implements
        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));

@@ -427,6 +430,20 @@ public class PhotoPage extends ActivityState implements
        }
    }

    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()) {
@@ -480,19 +497,7 @@ public class PhotoPage extends ActivityState implements
        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: {