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

Side by Side Diff: chrome/browser/android/download/download_manager_service.cc

Issue 2647343005: [Download Home] Fix for 0 seconds remaining (Closed)
Patch Set: qinmin@ comments Created 3 years, 11 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 unified diff | Download patch
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/android/download/download_manager_service.h" 5 #include "chrome/browser/android/download/download_manager_service.h"
6 6
7 #include "base/android/jni_string.h" 7 #include "base/android/jni_string.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/single_thread_task_runner.h" 9 #include "base/single_thread_task_runner.h"
10 #include "base/threading/thread_task_runner_handle.h" 10 #include "base/threading/thread_task_runner_handle.h"
(...skipping 11 matching lines...) Expand all
22 #include "jni/DownloadManagerService_jni.h" 22 #include "jni/DownloadManagerService_jni.h"
23 #include "ui/base/l10n/l10n_util.h" 23 #include "ui/base/l10n/l10n_util.h"
24 24
25 using base::android::JavaParamRef; 25 using base::android::JavaParamRef;
26 using base::android::ConvertJavaStringToUTF8; 26 using base::android::ConvertJavaStringToUTF8;
27 using base::android::ConvertUTF8ToJavaString; 27 using base::android::ConvertUTF8ToJavaString;
28 using base::android::ScopedJavaLocalRef; 28 using base::android::ScopedJavaLocalRef;
29 29
30 namespace { 30 namespace {
31 31
32 // The remaining time for a download item if it cannot be calculated.
33 long kUnknownRemainingTime = -1;
34
32 bool ShouldShowDownloadItem(content::DownloadItem* item) { 35 bool ShouldShowDownloadItem(content::DownloadItem* item) {
33 return !item->IsTemporary(); 36 return !item->IsTemporary();
34 } 37 }
35 38
36 void UpdateNotifier(DownloadManagerService* service, 39 void UpdateNotifier(DownloadManagerService* service,
37 content::DownloadManager* manager, 40 content::DownloadManager* manager,
38 std::unique_ptr<AllDownloadItemNotifier>& notifier) { 41 std::unique_ptr<AllDownloadItemNotifier>& notifier) {
39 if (manager) { 42 if (manager) {
40 if (!notifier || notifier->GetManager() != manager) 43 if (!notifier || notifier->GetManager() != manager)
41 notifier.reset(new AllDownloadItemNotifier(manager, service)); 44 notifier.reset(new AllDownloadItemNotifier(manager, service));
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 ui::PAGE_TRANSITION_AUTO_BOOKMARK) || 91 ui::PAGE_TRANSITION_AUTO_BOOKMARK) ||
89 PageTransitionCoreTypeIs(item->GetTransitionType(), 92 PageTransitionCoreTypeIs(item->GetTransitionType(),
90 ui::PAGE_TRANSITION_GENERATED) || 93 ui::PAGE_TRANSITION_GENERATED) ||
91 PageTransitionCoreTypeIs(item->GetTransitionType(), 94 PageTransitionCoreTypeIs(item->GetTransitionType(),
92 ui::PAGE_TRANSITION_RELOAD) || 95 ui::PAGE_TRANSITION_RELOAD) ||
93 PageTransitionCoreTypeIs(item->GetTransitionType(), 96 PageTransitionCoreTypeIs(item->GetTransitionType(),
94 ui::PAGE_TRANSITION_KEYWORD); 97 ui::PAGE_TRANSITION_KEYWORD);
95 bool has_user_gesture = item->HasUserGesture() || user_initiated; 98 bool has_user_gesture = item->HasUserGesture() || user_initiated;
96 99
97 base::TimeDelta time_delta; 100 base::TimeDelta time_delta;
98 item->TimeRemaining(&time_delta); 101 bool time_remaining_known = item->TimeRemaining(&time_delta);
99 std::string original_url = item->GetOriginalUrl().SchemeIs(url::kDataScheme) 102 std::string original_url = item->GetOriginalUrl().SchemeIs(url::kDataScheme)
100 ? std::string() : item->GetOriginalUrl().spec(); 103 ? std::string() : item->GetOriginalUrl().spec();
101 return Java_DownloadInfo_createDownloadInfo( 104 return Java_DownloadInfo_createDownloadInfo(
102 env, 105 env, ConvertUTF8ToJavaString(env, item->GetGuid()),
103 ConvertUTF8ToJavaString(env, item->GetGuid()), 106 ConvertUTF8ToJavaString(env, item->GetFileNameToReportUser().value()),
104 ConvertUTF8ToJavaString(env,
105 item->GetFileNameToReportUser().value()),
106 ConvertUTF8ToJavaString(env, item->GetTargetFilePath().value()), 107 ConvertUTF8ToJavaString(env, item->GetTargetFilePath().value()),
107 ConvertUTF8ToJavaString(env, item->GetTabUrl().spec()), 108 ConvertUTF8ToJavaString(env, item->GetTabUrl().spec()),
108 ConvertUTF8ToJavaString(env, item->GetMimeType()), 109 ConvertUTF8ToJavaString(env, item->GetMimeType()),
109 item->GetReceivedBytes(), 110 item->GetReceivedBytes(), item->GetBrowserContext()->IsOffTheRecord(),
110 item->GetBrowserContext()->IsOffTheRecord(), 111 item->GetState(), item->PercentComplete(), item->IsPaused(),
111 item->GetState(), 112 has_user_gesture, item->CanResume(),
112 item->PercentComplete(),
113 item->IsPaused(),
114 has_user_gesture,
115 item->CanResume(),
116 ConvertUTF8ToJavaString(env, original_url), 113 ConvertUTF8ToJavaString(env, original_url),
117 ConvertUTF8ToJavaString(env, item->GetReferrerUrl().spec()), 114 ConvertUTF8ToJavaString(env, item->GetReferrerUrl().spec()),
118 time_delta.InMilliseconds()); 115 time_remaining_known ? time_delta.InMilliseconds()
116 : kUnknownRemainingTime);
119 } 117 }
120 118
121 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& jobj) { 119 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& jobj) {
122 Profile* profile = ProfileManager::GetActiveUserProfile(); 120 Profile* profile = ProfileManager::GetActiveUserProfile();
123 DownloadManagerService* service = DownloadManagerService::GetInstance(); 121 DownloadManagerService* service = DownloadManagerService::GetInstance();
124 service->Init(env, jobj); 122 service->Init(env, jobj);
125 DownloadService* download_service = 123 DownloadService* download_service =
126 DownloadServiceFactory::GetForBrowserContext(profile); 124 DownloadServiceFactory::GetForBrowserContext(profile);
127 DownloadHistory* history = download_service->GetDownloadHistory(); 125 DownloadHistory* history = download_service->GetDownloadHistory();
128 if (history) 126 if (history)
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 } 438 }
441 439
442 // static 440 // static
443 jboolean IsSupportedMimeType( 441 jboolean IsSupportedMimeType(
444 JNIEnv* env, 442 JNIEnv* env,
445 const JavaParamRef<jclass>& clazz, 443 const JavaParamRef<jclass>& clazz,
446 const JavaParamRef<jstring>& jmime_type) { 444 const JavaParamRef<jstring>& jmime_type) {
447 std::string mime_type = ConvertJavaStringToUTF8(env, jmime_type); 445 std::string mime_type = ConvertJavaStringToUTF8(env, jmime_type);
448 return mime_util::IsSupportedMimeType(mime_type); 446 return mime_util::IsSupportedMimeType(mime_type);
449 } 447 }
OLDNEW
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698