Skip to content
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@
import org.wordpress.android.ui.posts.prepublishing.categories.addcategory.PrepublishingAddCategoryFragment;
import org.wordpress.android.ui.posts.prepublishing.home.PrepublishingHomeAdapter;
import org.wordpress.android.ui.posts.prepublishing.home.PrepublishingHomeFragment;
import org.wordpress.android.ui.posts.EditorLauncher;
import org.wordpress.android.ui.posts.prepublishing.publishsettings.PrepublishingPublishSettingsFragment;
import org.wordpress.android.ui.posts.prepublishing.social.PrepublishingSocialFragment;
import org.wordpress.android.ui.posts.prepublishing.tags.PrepublishingTagsFragment;
Expand Down Expand Up @@ -561,4 +562,7 @@ public interface AppComponent {
void inject(PostResolutionOverlayFragment object);

void inject(LoginSiteApplicationPasswordFragment object);

// Provide access to EditorLauncher for static utility classes
EditorLauncher editorLauncher();
}
147 changes: 96 additions & 51 deletions WordPress/src/main/java/org/wordpress/android/ui/ActivityLauncher.java
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,9 @@
import org.wordpress.android.ui.plugins.PluginBrowserActivity;
import org.wordpress.android.ui.plugins.PluginDetailActivity;
import org.wordpress.android.ui.plugins.PluginUtils;
import org.wordpress.android.ui.posts.EditPostActivity;
import org.wordpress.android.ui.posts.EditPostActivityConstants;
import org.wordpress.android.ui.posts.EditorLauncher;
import org.wordpress.android.ui.posts.EditorLauncherParams;
import org.wordpress.android.ui.posts.JetpackSecuritySettingsActivity;
import org.wordpress.android.ui.posts.PostListType;
import org.wordpress.android.ui.posts.PostUtils;
Expand Down Expand Up @@ -400,9 +401,11 @@
TaskStackBuilder taskStackBuilder = TaskStackBuilder.create(context);
Intent mainActivityIntent = getMainActivityInNewStack(context);

Intent editorIntent = new Intent(context, EditPostActivity.class);
editorIntent.putExtra(WordPress.SITE, site);
editorIntent.putExtra(EditPostActivityConstants.EXTRA_IS_PAGE, false);
EditorLauncherParams params = new EditorLauncherParams.Builder(site)
.isPage(false)
.build();

Intent editorIntent = EditorLauncher.getInstance().createEditorIntent(context, params);

taskStackBuilder.addNextIntent(mainActivityIntent);
taskStackBuilder.addNextIntent(editorIntent);
Expand All @@ -414,10 +417,12 @@
TaskStackBuilder taskStackBuilder = TaskStackBuilder.create(context);
Intent mainActivityIntent = getMainActivityInNewStack(context);

Intent editorIntent = new Intent(context, EditPostActivity.class);
editorIntent.putExtra(WordPress.SITE, site);
editorIntent.putExtra(EditPostActivityConstants.EXTRA_POST_LOCAL_ID, localPostId);
editorIntent.putExtra(EditPostActivityConstants.EXTRA_IS_PAGE, false);
EditorLauncherParams params = new EditorLauncherParams.Builder(site)
.postLocalId(localPostId)
.isPage(false)
.build();

Intent editorIntent = EditorLauncher.getInstance().createEditorIntent(context, params);

taskStackBuilder.addNextIntent(mainActivityIntent);
taskStackBuilder.addNextIntent(editorIntent);
Expand Down Expand Up @@ -456,12 +461,16 @@
site.getSiteId()
);

Intent editorIntent = new Intent(activity, EditPostActivity.class);
editorIntent.putExtra(EditPostActivityConstants.EXTRA_REBLOG_POST_TITLE, post.getTitle());
editorIntent.putExtra(EditPostActivityConstants.EXTRA_REBLOG_POST_QUOTE, post.getExcerpt());
editorIntent.putExtra(EditPostActivityConstants.EXTRA_REBLOG_POST_IMAGE, post.getFeaturedImage());
editorIntent.putExtra(EditPostActivityConstants.EXTRA_REBLOG_POST_CITATION, post.getUrl());
editorIntent.setAction(EditPostActivityConstants.ACTION_REBLOG);
EditorLauncherParams params = new EditorLauncherParams.Builder(site)
.reblogPostTitle(post.getTitle())
.reblogPostQuote(post.getExcerpt())
.reblogPostImage(post.getFeaturedImage())
.reblogPostCitation(post.getUrl())
.reblogAction(EditPostActivityConstants.ACTION_REBLOG)
.source(reblogSource)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The original implementation didn't set this here and set it in addNewPostForResult instead. This wouldn't have been a problem, but I've removed it in 4198b77 to match the previous implementation.

.build();

Intent editorIntent = EditorLauncher.getInstance().createEditorIntent(activity, params);

addNewPostForResult(editorIntent, activity, site, false, reblogSource, -1, null);
}
Expand Down Expand Up @@ -979,37 +988,46 @@
return;
}

Intent intent = new Intent(activity, EditPostActivity.class);
intent.putExtra(WordPress.SITE, site);
intent.putExtra(EditPostActivityConstants.EXTRA_IS_PAGE, false);
intent.putExtra(EditPostActivityConstants.EXTRA_IS_PROMO, isPromo);
intent.putExtra(AnalyticsUtils.EXTRA_CREATION_SOURCE_DETAIL, source);
intent.putExtra(EditPostActivityConstants.EXTRA_VOICE_CONTENT, content);
EditorLauncherParams params = new EditorLauncherParams.Builder(site)
.isPage(false)
.isPromo(isPromo)
.source(source)
.voiceContent(content)
.build();

Intent intent = EditorLauncher.getInstance().createEditorIntent(activity, params);
activity.startActivityForResult(intent, RequestCodes.EDIT_POST);
}

public static void addNewPostForResult(
Activity activity,
SiteModel site,
@NonNull SiteModel site,
boolean isPromo,
PagePostCreationSourcesDetail source,
final int promptId,
final EntryPoint entryPoint
) {
addNewPostForResult(
new Intent(activity, EditPostActivity.class), activity, site, isPromo, source, promptId, entryPoint
);
EditorLauncherParams params = new EditorLauncherParams.Builder(site)
.isPage(false)
.isPromo(isPromo)
.source(source)
.promptId(promptId)
.entryPoint(entryPoint)
.build();

Intent editorIntent = EditorLauncher.getInstance().createEditorIntent(activity, params);
activity.startActivityForResult(editorIntent, RequestCodes.EDIT_POST);
}

public static void addNewPostForResult(
Intent intent,
Activity activity,
SiteModel site,
boolean isPromo,

Check notice

Code scanning / Android Lint

Nullable/NonNull annotation missing on method parameter Note

Missing null annotation
PagePostCreationSourcesDetail source,
final int promptId,
final EntryPoint entryPoint
) {

Check notice

Code scanning / Android Lint

Nullable/NonNull annotation missing on method parameter Note

Missing null annotation
if (site == null) {
return;
}
Expand All @@ -1023,14 +1041,25 @@
activity.startActivityForResult(intent, RequestCodes.EDIT_POST);
}

public static void editPostOrPageForResult(Activity activity, SiteModel site, PostModel post) {
editPostOrPageForResult(new Intent(activity, EditPostActivity.class), activity, site, post.getId(), false);
public static void editPostOrPageForResult(Activity activity, @NonNull SiteModel site, PostModel post) {
EditorLauncherParams params = new EditorLauncherParams.Builder(site)
.postLocalId(post.getId())
.loadAutoSaveRevision(false)
.build();

Intent editorIntent = EditorLauncher.getInstance().createEditorIntent(activity, params);
activity.startActivityForResult(editorIntent, RequestCodes.EDIT_POST);
}

public static void editPostOrPageForResult(Activity activity, SiteModel site, PostModel post,
public static void editPostOrPageForResult(Activity activity, @NonNull SiteModel site, PostModel post,
boolean loadAutoSaveRevision) {
editPostOrPageForResult(new Intent(activity, EditPostActivity.class), activity, site, post.getId(),
loadAutoSaveRevision);
EditorLauncherParams params = new EditorLauncherParams.Builder(site)
.postLocalId(post.getId())
.loadAutoSaveRevision(loadAutoSaveRevision)
.build();

Intent editorIntent = EditorLauncher.getInstance().createEditorIntent(activity, params);
activity.startActivityForResult(editorIntent, RequestCodes.EDIT_POST);
}

public static void editPostOrPageForResult(Intent intent, Activity activity, SiteModel site, int postLocalId) {
Expand All @@ -1055,8 +1084,14 @@

public static void editPageForResult(@NonNull Fragment fragment, @NonNull SiteModel site,
int pageLocalId, boolean loadAutoSaveRevision) {
Intent intent = new Intent(fragment.getContext(), EditPostActivity.class);
editPageForResult(intent, fragment, site, pageLocalId, loadAutoSaveRevision, RequestCodes.EDIT_POST);
EditorLauncherParams params = new EditorLauncherParams.Builder(site)
.postLocalId(pageLocalId)
.loadAutoSaveRevision(loadAutoSaveRevision)
.isPage(true)
.build();

Intent intent = EditorLauncher.getInstance().createEditorIntent(fragment.getContext(), params);
fragment.startActivityForResult(intent, RequestCodes.EDIT_POST);
}

public static void editPageForResult(Intent intent, @NonNull Fragment fragment, @NonNull SiteModel site,
Expand All @@ -1066,10 +1101,16 @@

public static void editLandingPageForResult(@NonNull Fragment fragment, @NonNull SiteModel site, int homeLocalId,
boolean isNewSite) {
Intent intent = new Intent(fragment.getContext(), EditPostActivity.class);
intent.putExtra(EditPostActivityConstants.EXTRA_IS_LANDING_EDITOR, true);
intent.putExtra(EditPostActivityConstants.EXTRA_IS_LANDING_EDITOR_OPENED_FOR_NEW_SITE, isNewSite);
editPageForResult(intent, fragment, site, homeLocalId, false, RequestCodes.EDIT_LANDING_PAGE);
EditorLauncherParams params = new EditorLauncherParams.Builder(site)
.postLocalId(homeLocalId)
.loadAutoSaveRevision(false)
.isPage(true)
.isLandingEditor(true)
.isLandingEditorOpenedForNewSite(isNewSite)
.build();

Intent intent = EditorLauncher.getInstance().createEditorIntent(fragment.getContext(), params);
fragment.startActivityForResult(intent, RequestCodes.EDIT_LANDING_PAGE);
}

public static void editPageForResult(Intent intent, @NonNull Fragment fragment, @NonNull SiteModel site,
Expand All @@ -1088,14 +1129,16 @@
@Nullable String template,
@NonNull PagePostCreationSourcesDetail source
) {
Intent intent = new Intent(activity, EditPostActivity.class);
intent.putExtra(WordPress.SITE, site);
intent.putExtra(EditPostActivityConstants.EXTRA_IS_PAGE, true);
intent.putExtra(EditPostActivityConstants.EXTRA_IS_PROMO, false);
intent.putExtra(EditPostActivityConstants.EXTRA_PAGE_TITLE, title);
intent.putExtra(EditPostActivityConstants.EXTRA_PAGE_CONTENT, content);
intent.putExtra(EditPostActivityConstants.EXTRA_PAGE_TEMPLATE, template);
intent.putExtra(AnalyticsUtils.EXTRA_CREATION_SOURCE_DETAIL, source);
EditorLauncherParams params = new EditorLauncherParams.Builder(site)
.isPage(true)
.isPromo(false)
.pageTitle(title)
.pageContent(content)
.pageTemplate(template)
.source(source)
.build();

Intent intent = EditorLauncher.getInstance().createEditorIntent(activity, params);
activity.startActivityForResult(intent, RequestCodes.EDIT_POST);
}

Expand All @@ -1106,14 +1149,16 @@
@NonNull String content,
@Nullable String template,
@NonNull PagePostCreationSourcesDetail source) {
Intent intent = new Intent(fragment.getContext(), EditPostActivity.class);
intent.putExtra(WordPress.SITE, site);
intent.putExtra(EditPostActivityConstants.EXTRA_IS_PAGE, true);
intent.putExtra(EditPostActivityConstants.EXTRA_IS_PROMO, false);
intent.putExtra(EditPostActivityConstants.EXTRA_PAGE_TITLE, title);
intent.putExtra(EditPostActivityConstants.EXTRA_PAGE_CONTENT, content);
intent.putExtra(EditPostActivityConstants.EXTRA_PAGE_TEMPLATE, template);
intent.putExtra(AnalyticsUtils.EXTRA_CREATION_SOURCE_DETAIL, source);
EditorLauncherParams params = new EditorLauncherParams.Builder(site)
.isPage(true)
.isPromo(false)
.pageTitle(title)
.pageContent(content)
.pageTemplate(template)
.source(source)
.build();

Intent intent = EditorLauncher.getInstance().createEditorIntent(fragment.getContext(), params);
fragment.startActivityForResult(intent, RequestCodes.EDIT_POST);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,9 @@ class NotificationsListFragmentPage : ViewPagerFragment(R.layout.notifications_l
return
}
if (tabPosition == Unread.ordinal) {
ActivityLauncher.addNewPostForResult(activity, selectedSite, false, POST_FROM_NOTIFS_EMPTY_VIEW, -1, null)
selectedSite?.let {
ActivityLauncher.addNewPostForResult(activity, it, false, POST_FROM_NOTIFS_EMPTY_VIEW, -1, null)
}
} else if (activity is WPMainActivity) {
(requireActivity() as WPMainActivity).setReaderPageActive()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,12 @@ class EditPostActivity : BaseAppCompatActivity(), EditorFragmentActivity, Editor
(application as WordPress).component().inject(this)
initializeViewModels()

// Track if this editor launch came via EditorLauncher (only on initial creation)
if (savedInstanceState == null
&& intent.getBooleanExtra(EditorLauncher.EXTRA_LAUNCHED_VIA_EDITOR_LAUNCHER, false)) {
analyticsTrackerWrapper.track(Stat.EDITOR_LAUNCHED_VIA_EDITOR_LAUNCHER)
}

setContentView(R.layout.new_edit_post_activity)
val callback: OnBackPressedCallback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
Expand Down
Loading