Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1523)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java

Issue 2917703004: [Android] Wrap all share parameters into the ShareParams class (Closed)
Patch Set: Update based on Matt's comments. Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java
index 54e0c0e2799083b71c68fb03f8eac88297abb101..686ddfbb5aa29336f499af62328347c4be23b40d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageUtils.java
@@ -13,6 +13,7 @@ import android.os.Environment;
import org.chromium.base.ActivityState;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.Callback;
+import org.chromium.base.ContextUtils;
import org.chromium.base.FileUtils;
import org.chromium.base.Log;
import org.chromium.base.StreamUtil;
@@ -23,6 +24,7 @@ import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.UrlConstants;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareHelper;
+import org.chromium.chrome.browser.share.ShareParams;
import org.chromium.chrome.browser.snackbar.Snackbar;
import org.chromium.chrome.browser.snackbar.SnackbarManager;
import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController;
@@ -335,23 +337,10 @@ public class OfflinePageUtils {
/**
* Share an offline copy of the current page.
- * @param shareDirectly Whether it should share directly with the activity that was most
- * recently used to share.
- * @param saveLastUsed Whether to save the chosen activity for future direct sharing.
- * @param mainActivity Activity that is used to access package manager.
- * @param text Text to be shared. If both |text| and |url| are supplied, they are concatenated
- * with a space.
- * @param screenshotUri Screenshot of the page to be shared.
- * @param callback Optional callback to be called when user makes a choice. Will not be called
- * if receiving a response when the user makes a choice is not supported (see
- * TargetChosenReceiver#isSupported()).
+ * @param builder The builder to construct {@link ShareParams} for holding share parameters.
* @param currentTab The current tab for which sharing is being done.
*/
- public static void shareOfflinePage(final boolean shareDirectly, final boolean saveLastUsed,
- final Activity mainActivity, final String text, final Uri screenshotUri,
- final ShareHelper.TargetChosenCallback callback, final Tab currentTab) {
- final String url = currentTab.getUrl();
- final String title = currentTab.getTitle();
+ public static void shareOfflinePage(ShareParams.Builder builder, final Tab currentTab) {
final OfflinePageBridge offlinePageBridge =
OfflinePageBridge.getForProfile(currentTab.getProfile());
@@ -363,41 +352,28 @@ public class OfflinePageUtils {
OfflinePageItem offlinePage = offlinePageBridge.getOfflinePage(currentTab.getWebContents());
if (offlinePage != null) {
// If we're currently on offline page get the saved file directly.
- prepareFileAndShare(shareDirectly, saveLastUsed, mainActivity, title, text,
- url, screenshotUri, callback, offlinePage.getFilePath());
+ prepareFileAndShare(builder, offlinePage.getFilePath());
return;
}
// If this is an online page, share the offline copy of it.
- Callback<OfflinePageItem> prepareForSharing = onGotOfflinePageItemToShare(shareDirectly,
- saveLastUsed, mainActivity, title, text, url, screenshotUri, callback);
- offlinePageBridge.selectPageForOnlineUrl(url, currentTab.getId(),
- selectPageForOnlineUrlCallback(currentTab.getWebContents(), offlinePageBridge,
- prepareForSharing));
+ Callback<OfflinePageItem> prepareForSharing = onGotOfflinePageItemToShare(builder);
+ offlinePageBridge.selectPageForOnlineUrl(currentTab.getUrl(), currentTab.getId(),
+ selectPageForOnlineUrlCallback(
+ currentTab.getWebContents(), offlinePageBridge, prepareForSharing));
}
/**
* Callback for receiving the OfflinePageItem and use it to call prepareForSharing.
- * @param shareDirectly Whether it should share directly with the activity that was most
- * recently used to share.
- * @param mainActivity Activity that is used to access package manager
- * @param title Title of the page.
- * @param onlineUrl Online URL associated with the offline page that is used to access the
- * offline page file path.
- * @param screenshotUri Screenshot of the page to be shared.
- * @param mContext The application context.
- * @return a callback of OfflinePageItem
+ * @param builder The builder to construct {@link ShareParams} for holding share parameters.
*/
private static Callback<OfflinePageItem> onGotOfflinePageItemToShare(
- final boolean shareDirectly, final boolean saveLastUsed, final Activity mainActivity,
- final String title, final String text, final String onlineUrl, final Uri screenshotUri,
- final ShareHelper.TargetChosenCallback callback) {
+ final ShareParams.Builder builder) {
return new Callback<OfflinePageItem>() {
@Override
public void onResult(OfflinePageItem item) {
String offlineFilePath = (item == null) ? null : item.getFilePath();
- prepareFileAndShare(shareDirectly, saveLastUsed, mainActivity, title, text,
- onlineUrl, screenshotUri, callback, offlineFilePath);
+ prepareFileAndShare(builder, offlineFilePath);
}
};
}
@@ -461,32 +437,19 @@ public class OfflinePageUtils {
/**
* If file path of offline page is not null, do file operations needed for the page to be
* shared. Otherwise, only share the online url.
- * @param shareDirectly Whether it should share directly with the activity that was most
- * recently used to share.
- * @param saveLastUsed Whether to save the chosen activity for future direct sharing.
- * @param activity Activity that is used to access package manager
- * @param title Title of the page.
- * @param text Text to be shared. If both |text| and |url| are supplied, they are concatenated
- * with a space.
- * @param onlineUrl Online URL associated with the offline page that is used to access the
- * offline page file path.
- * @param screenshotUri Screenshot of the page to be shared.
- * @param callback Optional callback to be called when user makes a choice. Will not be called
- * if receiving a response when the user makes a choice is not supported (on
- * older Android versions).
+ * @param builder The builder to construct {@link ShareParams} for holding share parameters.
* @param filePath File path of the offline page.
*/
- private static void prepareFileAndShare(final boolean shareDirectly, final boolean saveLastUsed,
- final Activity activity, final String title, final String text, final String onlineUrl,
- final Uri screenshotUri, final ShareHelper.TargetChosenCallback callback,
- final String filePath) {
+ private static void prepareFileAndShare(
+ final ShareParams.Builder builder, final String filePath) {
new AsyncTask<Void, Void, File>() {
@Override
protected File doInBackground(Void... params) {
if (filePath == null) return null;
File offlinePageOriginal = new File(filePath);
- File shareableDir = getDirectoryForOfflineSharing(activity);
+ File shareableDir =
+ getDirectoryForOfflineSharing(ContextUtils.getApplicationContext());
if (shareableDir == null) {
Log.e(TAG, "Unable to create subdirectory in shareable directory");
@@ -522,8 +485,8 @@ public class OfflinePageUtils {
if (offlinePageShareable != null) {
offlineUri = Uri.fromFile(offlinePageShareable);
}
- ShareHelper.share(shareDirectly, saveLastUsed, activity, title, text, onlineUrl,
- offlineUri, screenshotUri, callback);
+ builder.setOfflineUri(offlineUri);
+ ShareHelper.share(builder.build());
}
}.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
}

Powered by Google App Engine
This is Rietveld 408576698