From 23c0bdcd22d80d9ff9108202d29796fe84349ac8 Mon Sep 17 00:00:00 2001 From: Will Kwon Date: Wed, 9 Mar 2016 11:28:43 -0800 Subject: [PATCH 01/10] Revert "Revert "Merge branch 'feature/3633-export-site-api' into feature/3661-active-subscription-check"" This reverts commit f66cc36c05f1e078beb374a2ada40130b06c11d9. --- WordPress/build.gradle | 2 +- .../ui/prefs/SiteSettingsFragment.java | 35 +++++++++++++++++++ .../android/networking/RestClientUtils.java | 5 +++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/WordPress/build.gradle b/WordPress/build.gradle index f190a2143fc9..91b56d62c8da 100644 --- a/WordPress/build.gradle +++ b/WordPress/build.gradle @@ -35,8 +35,8 @@ android { minSdkVersion 14 targetSdkVersion 23 + vectorDrawables.generatedDensities = ['hdpi', 'xhdpi', 'xxhdpi'] buildConfigField "boolean", "VISUAL_EDITOR_AVAILABLE", "false" - vectorDrawables.generatedDensities = ['hdpi', 'xhdpi', 'xxhdpi'] } productFlavors { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java index 7e3c2ff8104c..96c962ea0088 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java @@ -16,6 +16,7 @@ import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; import android.support.annotation.NonNull; +import android.support.design.widget.Snackbar; import android.text.TextUtils; import android.util.Pair; import android.util.SparseBooleanArray; @@ -385,6 +386,7 @@ public boolean onPreferenceClick(Preference preference) { } else if (preference == mCategoryPref || preference == mFormatPref) { return !shouldShowListPreference((DetailListPreference) preference); } else if (preference == mExportSitePref) { + showExportContentDialog(); } else if (preference == mDeleteSitePref) { requestPurchasesForDeletionCheck(); } else { @@ -702,6 +704,20 @@ public String format(int value) { }); } + private void showExportContentDialog() { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setTitle("Export your content"); + builder.setMessage("Exports your shit, yo"); + builder.setPositiveButton("Export my shit, yo", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + exportSite(); + } + }); + + builder.show(); + } + private void requestPurchasesForDeletionCheck() { final Blog currentBlog = WordPress.getCurrentBlog(); final ProgressDialog progressDialog = ProgressDialog.show(getActivity(), "", getString(R.string.checking_purchases), true, false); @@ -1187,6 +1203,25 @@ public void onClick(DialogInterface dialog, int which) { builder.show(); } + private void exportSite() { + final Blog currentBlog = WordPress.getCurrentBlog(); + if (currentBlog.isDotcomFlag()) { + final ProgressDialog progressDialog = ProgressDialog.show(getActivity(), "", "Exporting content...", true, true); + WordPress.getRestClientUtils().exportContentAll(currentBlog.getDotComBlogId(), new RestRequest.Listener() { + @Override + public void onResponse(JSONObject response) { + progressDialog.dismiss(); + Snackbar.make(getView(), "Export email sent!", Snackbar.LENGTH_LONG).show(); + } + }, new RestRequest.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { + progressDialog.dismiss(); + } + }); + } + } + private void deleteSite() { final Blog currentBlog = WordPress.getCurrentBlog(); if (currentBlog.isDotcomFlag()) { diff --git a/libs/networking/WordPressNetworking/src/main/java/org/wordpress/android/networking/RestClientUtils.java b/libs/networking/WordPressNetworking/src/main/java/org/wordpress/android/networking/RestClientUtils.java index 485e67ba87f9..4159940c6147 100644 --- a/libs/networking/WordPressNetworking/src/main/java/org/wordpress/android/networking/RestClientUtils.java +++ b/libs/networking/WordPressNetworking/src/main/java/org/wordpress/android/networking/RestClientUtils.java @@ -272,6 +272,11 @@ public void getSitePurchases(String siteId, Listener listener, ErrorListener err get(path, listener, errorListener); } + public void exportContentAll(String siteId, Listener listener, ErrorListener errorListener) { + String path = String.format("sites/%s/exports/start", siteId); + post(path, listener, errorListener); + } + /** * Make GET request */ From ea13e142866fc1cb6604c15b1a8f7332723f0f61 Mon Sep 17 00:00:00 2001 From: Will Kwon Date: Wed, 9 Mar 2016 12:43:53 -0800 Subject: [PATCH 02/10] Adding strings and ifAdded check for fragments since this is a cancellable progressdialog --- .../android/ui/prefs/SiteSettingsFragment.java | 12 ++++++++---- WordPress/src/main/res/values/strings.xml | 2 ++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java index 96c962ea0088..ce1c416eeaa4 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java @@ -1206,17 +1206,21 @@ public void onClick(DialogInterface dialog, int which) { private void exportSite() { final Blog currentBlog = WordPress.getCurrentBlog(); if (currentBlog.isDotcomFlag()) { - final ProgressDialog progressDialog = ProgressDialog.show(getActivity(), "", "Exporting content...", true, true); + final ProgressDialog progressDialog = ProgressDialog.show(getActivity(), "", getActivity().getString(R.string.exporting_content_progress), true, true); WordPress.getRestClientUtils().exportContentAll(currentBlog.getDotComBlogId(), new RestRequest.Listener() { @Override public void onResponse(JSONObject response) { - progressDialog.dismiss(); - Snackbar.make(getView(), "Export email sent!", Snackbar.LENGTH_LONG).show(); + if (isAdded()) { + progressDialog.dismiss(); + Snackbar.make(getView(), R.string.export_email_sent, Snackbar.LENGTH_LONG).show(); + } } }, new RestRequest.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { - progressDialog.dismiss(); + if (isAdded()) { + progressDialog.dismiss(); + } } }); } diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml index 61c6c37bac6a..69b96cecb059 100644 --- a/WordPress/src/main/res/values/strings.xml +++ b/WordPress/src/main/res/values/strings.xml @@ -1332,5 +1332,7 @@ Click the verification link in the email sent to %1$s to confirm your new address Primary site Web Address + Exporting content… + Export email sent! From b2ad96294ffd0ec78004f5a9fffc17ff8fc3742a Mon Sep 17 00:00:00 2001 From: Will Kwon Date: Wed, 9 Mar 2016 12:48:47 -0800 Subject: [PATCH 03/10] Adding cancel button and converting to string values --- .../ui/prefs/SiteSettingsFragment.java | 24 ++++++++++++------- WordPress/src/main/res/values/strings.xml | 3 ++- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java index ce1c416eeaa4..77a9bb8963df 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java @@ -706,16 +706,22 @@ public String format(int value) { private void showExportContentDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setTitle("Export your content"); - builder.setMessage("Exports your shit, yo"); - builder.setPositiveButton("Export my shit, yo", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - exportSite(); - } - }); + builder.setTitle(R.string.export_your_content); + builder.setMessage(R.string.export_your_content_message); + builder.setPositiveButton(R.string.site_settings_export_content_title, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + exportSite(); + } + }); + builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + } + }; - builder.show(); + builder.show(); } private void requestPurchasesForDeletionCheck() { diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml index 69b96cecb059..30c6f9978734 100644 --- a/WordPress/src/main/res/values/strings.xml +++ b/WordPress/src/main/res/values/strings.xml @@ -1306,7 +1306,6 @@ Confirm Delete Site Please type in %1$s in the field below to confirm. Your site will then be gone forever. Export content - Currently exporting is only available through the web interface. Please go to WordPress.com on your browser to export content. Error deleting site There was an error in deleting your site. Please contact support for more assistance Primary Domain @@ -1334,5 +1333,7 @@ Web Address Exporting content… Export email sent! + Export your content + All your posts, pages, and settings will be packaged into a .zip file that you can use in the future to resume where you left off. Keep in mind that this content can not be recovered in the future. From 36f349e7945cd733df85639c5ca110ce7dc57b3c Mon Sep 17 00:00:00 2001 From: Will Kwon Date: Wed, 9 Mar 2016 12:49:01 -0800 Subject: [PATCH 04/10] Formatting --- .../org/wordpress/android/ui/prefs/SiteSettingsFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java index 77a9bb8963df..2061fe1e69cc 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java @@ -721,7 +721,7 @@ public void onClick(DialogInterface dialog, int which) { } }; - builder.show(); + builder.show(); } private void requestPurchasesForDeletionCheck() { From 34182faf45b42eccf56bc8b8b8293fb254c34e53 Mon Sep 17 00:00:00 2001 From: Will Kwon Date: Wed, 9 Mar 2016 12:52:04 -0800 Subject: [PATCH 05/10] Using new SupportLibrary version of vector drawables --- WordPress/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/build.gradle b/WordPress/build.gradle index 91b56d62c8da..9d531bec5696 100644 --- a/WordPress/build.gradle +++ b/WordPress/build.gradle @@ -35,7 +35,7 @@ android { minSdkVersion 14 targetSdkVersion 23 - vectorDrawables.generatedDensities = ['hdpi', 'xhdpi', 'xxhdpi'] + vectorDrawables.useSupportLibrary = true buildConfigField "boolean", "VISUAL_EDITOR_AVAILABLE", "false" } From 3f341cda06d502f5b22af9ab8287134adef98588 Mon Sep 17 00:00:00 2001 From: Will Kwon Date: Wed, 9 Mar 2016 12:55:19 -0800 Subject: [PATCH 06/10] Adding parenthesis --- .../org/wordpress/android/ui/prefs/SiteSettingsFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java index 2061fe1e69cc..e020182c3b04 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java @@ -719,7 +719,7 @@ public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } - }; + }); builder.show(); } From d02c3041fb6c199de686cfc51bf94edb2a8fc13b Mon Sep 17 00:00:00 2001 From: Will Kwon Date: Wed, 9 Mar 2016 14:10:07 -0800 Subject: [PATCH 07/10] Adding email to export message --- .../ui/prefs/SiteSettingsFragment.java | 23 ++++++++++--------- WordPress/src/main/res/values/strings.xml | 2 +- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java index e020182c3b04..5e19d4c73153 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java @@ -707,19 +707,20 @@ public String format(int value) { private void showExportContentDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.export_your_content); - builder.setMessage(R.string.export_your_content_message); + String email = AccountHelper.getDefaultAccount().getEmail(); + builder.setMessage(getString(R.string.export_your_content_message, email)); builder.setPositiveButton(R.string.site_settings_export_content_title, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - exportSite(); - } - }); + @Override + public void onClick(DialogInterface dialog, int which) { + exportSite(); + } + }); builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - } - }); + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + } + }); builder.show(); } diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml index 30c6f9978734..e0b1c6bac41b 100644 --- a/WordPress/src/main/res/values/strings.xml +++ b/WordPress/src/main/res/values/strings.xml @@ -1334,6 +1334,6 @@ Exporting content… Export email sent! Export your content - All your posts, pages, and settings will be packaged into a .zip file that you can use in the future to resume where you left off. Keep in mind that this content can not be recovered in the future. + All your posts, pages, and settings will be packaged into a .zip file that you can use in the future to resume where you left off. Keep in mind that this content can not be recovered in the future.\n\nThe export will be sent to %s From 62d2b78e923c061bb6be036c92a2064052870f2f Mon Sep 17 00:00:00 2001 From: Will Kwon Date: Fri, 11 Mar 2016 09:37:24 -0800 Subject: [PATCH 08/10] Removing support library vector drawables as 23.1 doesn't support it yet --- WordPress/build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/WordPress/build.gradle b/WordPress/build.gradle index 9b210a0127c2..679001c32e63 100644 --- a/WordPress/build.gradle +++ b/WordPress/build.gradle @@ -35,7 +35,6 @@ android { minSdkVersion 14 targetSdkVersion 23 - vectorDrawables.useSupportLibrary = true buildConfigField "boolean", "VISUAL_EDITOR_AVAILABLE", "false" buildConfigField "boolean", "IN_APP_BILLING_AVAILABLE", "false" } From 2dcb145618d4c21572781b3a6d85485ac98e0223 Mon Sep 17 00:00:00 2001 From: Will Kwon Date: Fri, 11 Mar 2016 10:02:40 -0800 Subject: [PATCH 09/10] No need for onClickListener --- .../wordpress/android/ui/prefs/SiteSettingsFragment.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java index 7ba7991abef1..743b51a217ca 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java @@ -715,12 +715,7 @@ public void onClick(DialogInterface dialog, int which) { exportSite(); } }); - builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - } - }); + builder.setNegativeButton(R.string.cancel, null); builder.show(); } From df0f442087d0b7afa912021ee8ce74f0fc1b60ad Mon Sep 17 00:00:00 2001 From: Will Kwon Date: Fri, 11 Mar 2016 10:10:49 -0800 Subject: [PATCH 10/10] Simplifying export content message --- WordPress/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml index 311657a6958a..f2b7620c3bbf 100644 --- a/WordPress/src/main/res/values/strings.xml +++ b/WordPress/src/main/res/values/strings.xml @@ -1383,7 +1383,7 @@ Exporting content… Export email sent! Export your content - All your posts, pages, and settings will be packaged into a .zip file that you can use in the future to resume where you left off. Keep in mind that this content can not be recovered in the future.\n\nThe export will be sent to %s + Your posts, pages, and settings will be emailed to you at %s. Plan