package com.stfalcon.frescoimageviewersample.features.demo.rotation; import android.os.Bundle; import com.stfalcon.frescoimageviewer.ImageViewer; import com.stfalcon.frescoimageviewersample.R; import com.stfalcon.frescoimageviewersample.common.data.Demo; import com.stfalcon.frescoimageviewersample.features.demo.DemoActivity; import com.stfalcon.frescoimageviewersample.utils.AppUtils; public class DialogRotationExampleActivity extends DemoActivity { private static final String KEY_IS_DIALOG_SHOWN = "IS_DIALOG_SHOWN"; private static final String KEY_CURRENT_POSITION = "CURRENT_POSITION"; private boolean isDialogShown; private int currentPosition; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); AppUtils.showInfoSnackbar(findViewById(R.id.coordinator), R.string.message_rotate, true); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); if (savedInstanceState != null) { isDialogShown = savedInstanceState.getBoolean(KEY_IS_DIALOG_SHOWN); currentPosition = savedInstanceState.getInt(KEY_CURRENT_POSITION); } if (isDialogShown) { showPicker(currentPosition); } } @Override protected void onSaveInstanceState(Bundle outState) { outState.putBoolean(KEY_IS_DIALOG_SHOWN, isDialogShown); outState.putInt(KEY_CURRENT_POSITION, currentPosition); super.onSaveInstanceState(outState); } @Override protected void showPicker(int startPosition) { isDialogShown = true; currentPosition = startPosition; new ImageViewer.Builder<>(this, Demo.getPosters()) .setStartPosition(startPosition) .setImageChangeListener(getImageChangeListener()) .setOnDismissListener(getDismissListener()) .show(); } private ImageViewer.OnImageChangeListener getImageChangeListener() { return new ImageViewer.OnImageChangeListener() { @Override public void onImageChange(int position) { currentPosition = position; } }; } private ImageViewer.OnDismissListener getDismissListener() { return new ImageViewer.OnDismissListener() { @Override public void onDismiss() { isDialogShown = false; } }; } }