diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java index a6884db857a..86cfaf7018e 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java @@ -322,6 +322,8 @@ public class EditPostActivity extends LocaleAwareActivity implements private static final String STATE_KEY_UNDO = "stateKeyUndo"; private static final String STATE_KEY_REDO = "stateKeyRedo"; + private static final String VIEW_HIERARCHY_STATE_KEY = "android:viewHierarchyState"; + private static final int PAGE_CONTENT = 0; private static final int PAGE_SETTINGS = 1; private static final int PAGE_PUBLISH_SETTINGS = 2; @@ -562,6 +564,10 @@ public class EditPostActivity extends LocaleAwareActivity implements @Override @SuppressWarnings("checkstyle:MethodLength") protected void onCreate(@Nullable Bundle savedInstanceState) { + if (savedInstanceState != null && getDB() != null && getDB().hasParcel(VIEW_HIERARCHY_STATE_KEY)) { + Bundle viewHierarchyState = getDB().getParcel(VIEW_HIERARCHY_STATE_KEY, Bundle.CREATOR); + savedInstanceState.putBundle(VIEW_HIERARCHY_STATE_KEY, viewHierarchyState); + } super.onCreate(savedInstanceState); ((WordPress) getApplication()).component().inject(this); @@ -1157,8 +1163,13 @@ public class EditPostActivity extends LocaleAwareActivity implements } @Override - protected void onSaveInstanceState(Bundle outState) { + protected void onSaveInstanceState(@NonNull Bundle outState) { super.onSaveInstanceState(outState); + Bundle viewHierarchyState = outState.getBundle(VIEW_HIERARCHY_STATE_KEY); + if (viewHierarchyState != null && getDB() != null) { + getDB().addParcel(VIEW_HIERARCHY_STATE_KEY, viewHierarchyState); + outState.remove(VIEW_HIERARCHY_STATE_KEY); + } // Saves both post objects so we can restore them in onCreate() updateAndSavePostAsync(); outState.putInt(STATE_KEY_POST_LOCAL_ID, mEditPostRepository.getId());