| Index: chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryItemWrapper.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryItemWrapper.java b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryItemWrapper.java
|
| index 7b5c3682b62dd8c2407c702c1ba7eaa89d38e72c..9e810225fbfe8e0624d262c2b73b5965e8e87c6f 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryItemWrapper.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryItemWrapper.java
|
| @@ -14,6 +14,7 @@ import android.net.Uri;
|
| import android.os.AsyncTask;
|
| import android.text.TextUtils;
|
|
|
| +import org.chromium.base.Callback;
|
| import org.chromium.base.ContextUtils;
|
| import org.chromium.base.Log;
|
| import org.chromium.chrome.R;
|
| @@ -62,8 +63,17 @@ abstract class DownloadHistoryItemWrapper implements TimedItem {
|
| /** Called when the user wants to open the file. */
|
| abstract void open();
|
|
|
| - /** Called when the user wants to delete the file. */
|
| - abstract void delete();
|
| + /**
|
| + * Called when the user wants to delete the file.
|
| + * @param callback The Callback to be notified when the item is finished being deleted.
|
| + */
|
| + abstract void delete(Callback<Void> callback);
|
| +
|
| + /**
|
| + * @return Whether the file associated with this item has been removed through an external
|
| + * action.
|
| + */
|
| + abstract boolean hasBeenExternallyRemoved();
|
|
|
| /** Wraps a {@link DownloadItem}. */
|
| static class DownloadItemWrapper extends DownloadHistoryItemWrapper {
|
| @@ -169,7 +179,7 @@ abstract class DownloadHistoryItemWrapper implements TimedItem {
|
| }
|
|
|
| @Override
|
| - public void delete() {
|
| + public void delete(final Callback<Void> callback) {
|
| // Tell the DownloadManager to remove the file from history.
|
| DownloadManagerService service = DownloadManagerService.getDownloadManagerService(
|
| ContextUtils.getApplicationContext());
|
| @@ -185,6 +195,11 @@ abstract class DownloadHistoryItemWrapper implements TimedItem {
|
| }
|
| return null;
|
| }
|
| +
|
| + @Override
|
| + public void onPostExecute(Void unused) {
|
| + callback.onResult(unused);
|
| + }
|
| }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
| }
|
|
|
| @@ -207,6 +222,11 @@ abstract class DownloadHistoryItemWrapper implements TimedItem {
|
| return DownloadFilter.FILTER_OTHER;
|
| }
|
| }
|
| +
|
| + @Override
|
| + boolean hasBeenExternallyRemoved() {
|
| + return mItem.hasBeenExternallyRemoved();
|
| + }
|
| }
|
|
|
| /** Wraps a {@link OfflinePageDownloadItem}. */
|
| @@ -281,8 +301,15 @@ abstract class DownloadHistoryItemWrapper implements TimedItem {
|
| }
|
|
|
| @Override
|
| - public void delete() {
|
| + public void delete(Callback<Void> callback) {
|
| mBridge.deleteItem(getId());
|
| + callback.onResult(null);
|
| + }
|
| +
|
| + @Override
|
| + boolean hasBeenExternallyRemoved() {
|
| + // We don't currently detect when offline pages have been removed externally.
|
| + return false;
|
| }
|
| }
|
| }
|
|
|