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

Unified Diff: chrome/browser/android/download/download_manager_service.cc

Issue 2516823002: [Downloads] Consolidate Java DownloadItem/Info creation (Closed)
Patch Set: Rebased Created 4 years, 1 month 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
« no previous file with comments | « chrome/browser/android/download/download_manager_service.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/android/download/download_manager_service.cc
diff --git a/chrome/browser/android/download/download_manager_service.cc b/chrome/browser/android/download/download_manager_service.cc
index 3e513c1cd83375f2e9e8706455f32a4a4b0614cb..02a56b17f3e81cdcb9980e5ddf1647da405e31f4 100644
--- a/chrome/browser/android/download/download_manager_service.cc
+++ b/chrome/browser/android/download/download_manager_service.cc
@@ -17,6 +17,8 @@
#include "components/mime_util/mime_util.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/download_item.h"
+#include "jni/DownloadInfo_jni.h"
+#include "jni/DownloadItem_jni.h"
#include "jni/DownloadManagerService_jni.h"
#include "ui/base/l10n/l10n_util.h"
@@ -42,39 +44,11 @@ void UpdateNotifier(DownloadManagerService* service,
}
}
-void RemoveDownloadsFromDownloadManager(
- content::DownloadManager* manager,
- const base::FilePath& path) {
- if (!manager)
- return;
- content::DownloadManager::DownloadVector all_items;
- manager->GetAllDownloads(&all_items);
-
- for (size_t i = 0; i < all_items.size(); i++) {
- content::DownloadItem* item = all_items[i];
- if (item->GetState() == content::DownloadItem::COMPLETE &&
- item->GetTargetFilePath() == path) {
- item->Remove();
- }
- }
-}
-
ScopedJavaLocalRef<jobject> CreateJavaDownloadItem(
JNIEnv* env, content::DownloadItem* item) {
- return Java_DownloadManagerService_createDownloadItem(
- env,
- ConvertUTF8ToJavaString(env, item->GetGuid()),
- ConvertUTF8ToJavaString(env,
- item->GetFileNameToReportUser().value()),
- ConvertUTF8ToJavaString(env, item->GetTargetFilePath().value()),
- ConvertUTF8ToJavaString(env, item->GetTabUrl().spec()),
- ConvertUTF8ToJavaString(env, item->GetMimeType()),
- item->GetStartTime().ToJavaTime(), item->GetTotalBytes(),
- item->GetFileExternallyRemoved(),
- item->GetBrowserContext()->IsOffTheRecord(),
- item->GetState(),
- item->PercentComplete(),
- item->IsPaused());
+ return Java_DownloadItem_createDownloadItem(
+ env, DownloadManagerService::CreateJavaDownloadInfo(env, item),
+ item->GetStartTime().ToJavaTime(), item->GetFileExternallyRemoved());
}
} // namespace
@@ -103,6 +77,43 @@ DownloadManagerService* DownloadManagerService::GetInstance() {
return base::Singleton<DownloadManagerService>::get();
}
+// static
+ScopedJavaLocalRef<jobject> DownloadManagerService::CreateJavaDownloadInfo(
+ JNIEnv* env, content::DownloadItem* item) {
+ ui::PageTransition base_transition =
+ ui::PageTransitionStripQualifier(item->GetTransitionType());
+ bool user_initiated =
+ (item->GetTransitionType() & ui::PAGE_TRANSITION_FROM_ADDRESS_BAR) ||
+ base_transition == ui::PAGE_TRANSITION_TYPED ||
+ base_transition == ui::PAGE_TRANSITION_AUTO_BOOKMARK ||
+ base_transition == ui::PAGE_TRANSITION_GENERATED ||
+ base_transition == ui::PAGE_TRANSITION_RELOAD ||
+ base_transition == ui::PAGE_TRANSITION_KEYWORD;
+ bool has_user_gesture = item->HasUserGesture() || user_initiated;
+
+ base::TimeDelta time_delta;
+ item->TimeRemaining(&time_delta);
+
+ return Java_DownloadInfo_createDownloadInfo(
+ env,
+ ConvertUTF8ToJavaString(env, item->GetGuid()),
+ ConvertUTF8ToJavaString(env,
+ item->GetFileNameToReportUser().value()),
+ ConvertUTF8ToJavaString(env, item->GetTargetFilePath().value()),
+ ConvertUTF8ToJavaString(env, item->GetTabUrl().spec()),
+ ConvertUTF8ToJavaString(env, item->GetMimeType()),
+ item->GetReceivedBytes(),
+ item->GetBrowserContext()->IsOffTheRecord(),
+ item->GetState(),
+ item->PercentComplete(),
+ item->IsPaused(),
+ has_user_gesture,
+ item->CanResume(),
+ ConvertUTF8ToJavaString(env, item->GetOriginalUrl().spec()),
+ ConvertUTF8ToJavaString(env, item->GetReferrerUrl().spec()),
+ time_delta.InMilliseconds());
+}
+
static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& jobj) {
Profile* profile = ProfileManager::GetActiveUserProfile();
DownloadManagerService* service = DownloadManagerService::GetInstance();
@@ -218,14 +229,6 @@ void DownloadManagerService::CheckForExternallyRemovedDownloads(
manager->CheckForHistoryFilesRemoval();
}
-void DownloadManagerService::RemoveDownloadsForPath(
- const base::FilePath& path) {
- content::DownloadManager* manager = GetDownloadManager(false);
- RemoveDownloadsFromDownloadManager(manager, path);
- manager = GetDownloadManager(true);
- RemoveDownloadsFromDownloadManager(manager, path);
-}
-
void DownloadManagerService::CancelDownload(
JNIEnv* env,
jobject obj,
« no previous file with comments | « chrome/browser/android/download/download_manager_service.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698