| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |