Skip to content

Commit a8f2246

Browse files
committed
Replaces bundle usage with db
1 parent 8ef57be commit a8f2246

3 files changed

Lines changed: 51 additions & 16 deletions

File tree

WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
import org.wordpress.android.editor.EditorMediaUtils;
7272
import org.wordpress.android.editor.EditorThemeUpdateListener;
7373
import org.wordpress.android.editor.ExceptionLogger;
74+
import org.wordpress.android.editor.SavedInstanceDatabase;
7475
import org.wordpress.android.editor.gutenberg.DialogVisibility;
7576
import org.wordpress.android.editor.gutenberg.GutenbergEditorFragment;
7677
import org.wordpress.android.editor.gutenberg.GutenbergPropsBuilder;
@@ -710,7 +711,12 @@ public void handleOnBackPressed() {
710711
mIsNewPost = savedInstanceState.getBoolean(STATE_KEY_IS_NEW_POST, false);
711712
updatePostLoadingAndDialogState(PostLoadingState.fromInt(
712713
savedInstanceState.getInt(STATE_KEY_POST_LOADING_STATE, 0)));
713-
mRevision = savedInstanceState.getParcelable(STATE_KEY_REVISION);
714+
715+
SavedInstanceDatabase db = SavedInstanceDatabase.Companion.getDatabase(WordPress.getContext());
716+
if (db != null) {
717+
mRevision = db.getParcel(STATE_KEY_REVISION, Revision.CREATOR);
718+
}
719+
714720
mPostEditorAnalyticsSession = PostEditorAnalyticsSession
715721
.fromBundle(savedInstanceState, STATE_KEY_EDITOR_SESSION_DATA, mAnalyticsTrackerWrapper);
716722

@@ -1166,7 +1172,11 @@ protected void onSaveInstanceState(Bundle outState) {
11661172
outState.putBoolean(STATE_KEY_UNDO, mMenuHasUndo);
11671173
outState.putBoolean(STATE_KEY_REDO, mMenuHasRedo);
11681174
outState.putSerializable(WordPress.SITE, mSite);
1169-
outState.putParcelable(STATE_KEY_REVISION, mRevision);
1175+
1176+
SavedInstanceDatabase db = SavedInstanceDatabase.Companion.getDatabase(WordPress.getContext());
1177+
if (db != null) {
1178+
db.addParcel(STATE_KEY_REVISION, mRevision);
1179+
}
11701180

11711181
outState.putSerializable(STATE_KEY_EDITOR_SESSION_DATA, mPostEditorAnalyticsSession);
11721182
mIsConfigChange = true; // don't call sessionData.end() in onDestroy() if this is an Android config change
@@ -2373,6 +2383,7 @@ public Fragment getItem(int position) {
23732383
mIsJetpackSsoEnabled);
23742384

23752385
return GutenbergEditorFragment.newInstance(
2386+
WordPress.getContext(),
23762387
"",
23772388
"",
23782389
mIsNewPost,

libs/editor/src/main/java/org/wordpress/android/editor/gutenberg/GutenbergContainerFragment.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.wordpress.android.editor.gutenberg;
22

33
import android.app.Activity;
4+
import android.content.Context;
45
import android.os.Bundle;
56
import android.view.ViewGroup;
67

@@ -14,6 +15,7 @@
1415
import org.wordpress.android.editor.BuildConfig;
1516
import org.wordpress.android.editor.ExceptionLogger;
1617
import org.wordpress.android.editor.R;
18+
import org.wordpress.android.editor.SavedInstanceDatabase;
1719
import org.wordpress.mobile.WPAndroidGlue.ShowSuggestionsUtil;
1820
import org.wordpress.mobile.WPAndroidGlue.GutenbergProps;
1921
import org.wordpress.mobile.WPAndroidGlue.RequestExecutor;
@@ -53,11 +55,12 @@ public class GutenbergContainerFragment extends Fragment {
5355
private boolean mHasReceivedAnyContent;
5456

5557
private WPAndroidGlueCode mWPAndroidGlueCode;
56-
public static GutenbergContainerFragment newInstance(GutenbergPropsBuilder gutenbergPropsBuilder) {
58+
public static GutenbergContainerFragment newInstance(Context context, GutenbergPropsBuilder gutenbergPropsBuilder) {
5759
GutenbergContainerFragment fragment = new GutenbergContainerFragment();
58-
Bundle args = new Bundle();
59-
args.putParcelable(ARG_GUTENBERG_PROPS_BUILDER, gutenbergPropsBuilder);
60-
fragment.setArguments(args);
60+
SavedInstanceDatabase db = SavedInstanceDatabase.Companion.getDatabase(context);
61+
if (db != null) {
62+
db.addParcel(ARG_GUTENBERG_PROPS_BUILDER, gutenbergPropsBuilder);
63+
}
6164
return fragment;
6265
}
6366

@@ -124,7 +127,11 @@ public void attachToContainer(ViewGroup viewGroup, OnMediaLibraryButtonListener
124127
public void onCreate(@Nullable Bundle savedInstanceState) {
125128
super.onCreate(savedInstanceState);
126129

127-
GutenbergPropsBuilder gutenbergPropsBuilder = getArguments().getParcelable(ARG_GUTENBERG_PROPS_BUILDER);
130+
GutenbergPropsBuilder gutenbergPropsBuilder = null;
131+
SavedInstanceDatabase db = SavedInstanceDatabase.Companion.getDatabase(getContext());
132+
if (db != null) {
133+
gutenbergPropsBuilder = db.getParcel(ARG_GUTENBERG_PROPS_BUILDER, GutenbergPropsBuilder.CREATOR);
134+
}
128135

129136
Consumer<Exception> exceptionLogger = null;
130137
Consumer<String> breadcrumbLogger = null;

libs/editor/src/main/java/org/wordpress/android/editor/gutenberg/GutenbergEditorFragment.java

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import org.wordpress.android.editor.EditorThemeUpdateListener;
4848
import org.wordpress.android.editor.LiveTextWatcher;
4949
import org.wordpress.android.editor.R;
50+
import org.wordpress.android.editor.SavedInstanceDatabase;
5051
import org.wordpress.android.editor.WPGutenbergWebViewActivity;
5152
import org.wordpress.android.editor.gutenberg.GutenbergDialogFragment.GutenbergDialogNegativeClickInterface;
5253
import org.wordpress.android.editor.gutenberg.GutenbergDialogFragment.GutenbergDialogPositiveClickInterface;
@@ -161,7 +162,8 @@ public class GutenbergEditorFragment extends EditorFragmentAbstract implements
161162

162163
private ProgressDialog mSavingContentProgressDialog;
163164

164-
public static GutenbergEditorFragment newInstance(String title,
165+
public static GutenbergEditorFragment newInstance(Context context,
166+
String title,
165167
String content,
166168
boolean isNewPost,
167169
GutenbergWebViewAuthorizationData webViewAuthorizationData,
@@ -173,11 +175,14 @@ public static GutenbergEditorFragment newInstance(String title,
173175
args.putString(ARG_PARAM_TITLE, title);
174176
args.putString(ARG_PARAM_CONTENT, content);
175177
args.putBoolean(ARG_IS_NEW_POST, isNewPost);
176-
args.putParcelable(ARG_GUTENBERG_WEB_VIEW_AUTH_DATA, webViewAuthorizationData);
177-
args.putParcelable(ARG_GUTENBERG_PROPS_BUILDER, gutenbergPropsBuilder);
178178
args.putInt(ARG_STORY_EDITOR_REQUEST_CODE, storyBlockEditRequestCode);
179179
args.putBoolean(ARG_JETPACK_FEATURES_ENABLED, jetpackFeaturesEnabled);
180180
fragment.setArguments(args);
181+
SavedInstanceDatabase db = SavedInstanceDatabase.Companion.getDatabase(context);
182+
if (db != null) {
183+
db.addParcel(ARG_GUTENBERG_WEB_VIEW_AUTH_DATA, webViewAuthorizationData);
184+
db.addParcel(ARG_GUTENBERG_PROPS_BUILDER, gutenbergPropsBuilder);
185+
}
181186
return fragment;
182187
}
183188

@@ -199,12 +204,17 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
199204
super.onCreate(savedInstanceState);
200205

201206
if (getGutenbergContainerFragment() == null) {
202-
GutenbergPropsBuilder gutenbergPropsBuilder = getArguments().getParcelable(ARG_GUTENBERG_PROPS_BUILDER);
207+
GutenbergPropsBuilder gutenbergPropsBuilder = null;
208+
SavedInstanceDatabase db = SavedInstanceDatabase.Companion.getDatabase(getContext());
209+
if (db != null) {
210+
gutenbergPropsBuilder = db.getParcel(ARG_GUTENBERG_PROPS_BUILDER, GutenbergPropsBuilder.CREATOR);
211+
}
203212
mCurrentGutenbergPropsBuilder = gutenbergPropsBuilder;
204213

205214
FragmentManager fragmentManager = getChildFragmentManager();
206215
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
207-
GutenbergContainerFragment fragment = GutenbergContainerFragment.newInstance(gutenbergPropsBuilder);
216+
GutenbergContainerFragment fragment =
217+
GutenbergContainerFragment.newInstance(requireContext(), gutenbergPropsBuilder);
208218
fragment.setRetainInstance(true);
209219
fragmentTransaction.add(fragment, GutenbergContainerFragment.TAG);
210220
fragmentTransaction.commitNow();
@@ -645,9 +655,16 @@ private void initializeSavingProgressDialog() {
645655
}
646656
}
647657

658+
private GutenbergWebViewAuthorizationData getGutenbergWebViewAuthorizationData() {
659+
SavedInstanceDatabase db = SavedInstanceDatabase.Companion.getDatabase(getContext());
660+
if (db != null) {
661+
return db.getParcel(ARG_GUTENBERG_WEB_VIEW_AUTH_DATA, GutenbergWebViewAuthorizationData.CREATOR);
662+
}
663+
return null;
664+
}
665+
648666
private void openGutenbergWebViewActivity(String content, String blockId, String blockName, String blockTitle) {
649-
GutenbergWebViewAuthorizationData gutenbergWebViewAuthData =
650-
getArguments().getParcelable(ARG_GUTENBERG_WEB_VIEW_AUTH_DATA);
667+
GutenbergWebViewAuthorizationData gutenbergWebViewAuthData = getGutenbergWebViewAuthorizationData();
651668

652669
// There is a chance that isJetpackSsoEnabled has changed on the server
653670
// so we need to make sure that we have fresh value of it.
@@ -727,8 +744,8 @@ private ArrayList<MediaOption> initOtherMediaImageOptions() {
727744
}
728745

729746
boolean jetpackFeaturesEnabled = arguments.getBoolean(ARG_JETPACK_FEATURES_ENABLED);
730-
GutenbergWebViewAuthorizationData gutenbergWebViewAuthorizationData =
731-
arguments.getParcelable(ARG_GUTENBERG_WEB_VIEW_AUTH_DATA);
747+
GutenbergWebViewAuthorizationData gutenbergWebViewAuthorizationData = getGutenbergWebViewAuthorizationData();
748+
732749
boolean supportStockPhotos = gutenbergWebViewAuthorizationData.isSiteUsingWPComRestAPI()
733750
&& jetpackFeaturesEnabled;
734751
boolean supportsTenor = jetpackFeaturesEnabled;

0 commit comments

Comments
 (0)