OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/android/download_controller_android_impl.h" | 5 #include "content/browser/android/download_controller_android_impl.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/android/context_utils.h" | 9 #include "base/android/context_utils.h" |
10 #include "base/android/jni_android.h" | 10 #include "base/android/jni_android.h" |
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
441 ConvertUTF8ToJavaString(env, item->GetTargetFilePath().value()); | 441 ConvertUTF8ToJavaString(env, item->GetTargetFilePath().value()); |
442 ScopedJavaLocalRef<jstring> jfilename = ConvertUTF8ToJavaString( | 442 ScopedJavaLocalRef<jstring> jfilename = ConvertUTF8ToJavaString( |
443 env, item->GetTargetFilePath().BaseName().value()); | 443 env, item->GetTargetFilePath().BaseName().value()); |
444 | 444 |
445 switch (item->GetState()) { | 445 switch (item->GetState()) { |
446 case DownloadItem::IN_PROGRESS: { | 446 case DownloadItem::IN_PROGRESS: { |
447 base::TimeDelta time_delta; | 447 base::TimeDelta time_delta; |
448 item->TimeRemaining(&time_delta); | 448 item->TimeRemaining(&time_delta); |
449 Java_DownloadController_onDownloadUpdated( | 449 Java_DownloadController_onDownloadUpdated( |
450 env, GetJavaObject()->Controller(env).obj(), | 450 env, GetJavaObject()->Controller(env).obj(), |
451 base::android::GetApplicationContext(), jurl.obj(), jmime_type.obj(), | 451 jurl.obj(), jmime_type.obj(), |
452 jfilename.obj(), jpath.obj(), item->GetReceivedBytes(), true, | 452 jfilename.obj(), jpath.obj(), item->GetReceivedBytes(), true, |
453 item->GetId(), item->PercentComplete(), time_delta.InMilliseconds(), | 453 item->GetId(), item->PercentComplete(), time_delta.InMilliseconds(), |
454 item->HasUserGesture(), | 454 item->HasUserGesture(), |
455 // Get all requirements that allows a download to be resumable. | 455 // Get all requirements that allows a download to be resumable. |
456 !item->GetBrowserContext()->IsOffTheRecord()); | 456 !item->GetBrowserContext()->IsOffTheRecord()); |
457 break; | 457 break; |
458 } | 458 } |
459 case DownloadItem::COMPLETE: | 459 case DownloadItem::COMPLETE: |
460 // Multiple OnDownloadUpdated() notifications may be issued while the | 460 // Multiple OnDownloadUpdated() notifications may be issued while the |
461 // download is in the COMPLETE state. Only handle one. | 461 // download is in the COMPLETE state. Only handle one. |
462 item->RemoveObserver(this); | 462 item->RemoveObserver(this); |
463 | 463 |
464 // Call onDownloadCompleted | 464 // Call onDownloadCompleted |
465 Java_DownloadController_onDownloadCompleted( | 465 Java_DownloadController_onDownloadCompleted( |
466 env, GetJavaObject()->Controller(env).obj(), | 466 env, GetJavaObject()->Controller(env).obj(), jurl.obj(), |
467 base::android::GetApplicationContext(), jurl.obj(), jmime_type.obj(), | 467 jmime_type.obj(), jfilename.obj(), jpath.obj(), |
468 jfilename.obj(), jpath.obj(), item->GetReceivedBytes(), true, | 468 item->GetReceivedBytes(), true, item->GetId(), |
469 item->GetId(), item->HasUserGesture()); | 469 item->HasUserGesture()); |
470 break; | 470 break; |
471 case DownloadItem::CANCELLED: | 471 case DownloadItem::CANCELLED: |
| 472 Java_DownloadController_onDownloadCancelled( |
| 473 env, GetJavaObject()->Controller(env).obj(), item->GetId()); |
| 474 break; |
472 // TODO(shashishekhar): An interrupted download can be resumed. Android | 475 // TODO(shashishekhar): An interrupted download can be resumed. Android |
473 // currently does not support resumable downloads. Add handling for | 476 // currently does not support resumable downloads. Add handling for |
474 // interrupted case based on item->CanResume(). | 477 // interrupted case based on item->CanResume(). |
475 case DownloadItem::INTERRUPTED: | 478 case DownloadItem::INTERRUPTED: |
476 // Call onDownloadCompleted with success = false. | 479 // Call onDownloadCompleted with success = false. |
477 Java_DownloadController_onDownloadCompleted( | 480 Java_DownloadController_onDownloadCompleted( |
478 env, GetJavaObject()->Controller(env).obj(), | 481 env, GetJavaObject()->Controller(env).obj(), jurl.obj(), |
479 base::android::GetApplicationContext(), jurl.obj(), jmime_type.obj(), | 482 jmime_type.obj(), jfilename.obj(), jpath.obj(), |
480 jfilename.obj(), jpath.obj(), item->GetReceivedBytes(), false, | 483 item->GetReceivedBytes(), false, item->GetId(), |
481 item->GetId(), item->HasUserGesture()); | 484 item->HasUserGesture()); |
482 break; | 485 break; |
483 case DownloadItem::MAX_DOWNLOAD_STATE: | 486 case DownloadItem::MAX_DOWNLOAD_STATE: |
484 NOTREACHED(); | 487 NOTREACHED(); |
485 } | 488 } |
486 } | 489 } |
487 | 490 |
488 void DownloadControllerAndroidImpl::OnDangerousDownload(DownloadItem* item) { | 491 void DownloadControllerAndroidImpl::OnDangerousDownload(DownloadItem* item) { |
489 JNIEnv* env = base::android::AttachCurrentThread(); | 492 JNIEnv* env = base::android::AttachCurrentThread(); |
490 ScopedJavaLocalRef<jstring> jfilename = ConvertUTF8ToJavaString( | 493 ScopedJavaLocalRef<jstring> jfilename = ConvertUTF8ToJavaString( |
491 env, item->GetTargetFilePath().BaseName().value()); | 494 env, item->GetTargetFilePath().BaseName().value()); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
569 } | 572 } |
570 | 573 |
571 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); | 574 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); |
572 if (info) | 575 if (info) |
573 has_user_gesture = info->HasUserGesture(); | 576 has_user_gesture = info->HasUserGesture(); |
574 } | 577 } |
575 | 578 |
576 DownloadControllerAndroidImpl::DownloadInfoAndroid::~DownloadInfoAndroid() {} | 579 DownloadControllerAndroidImpl::DownloadInfoAndroid::~DownloadInfoAndroid() {} |
577 | 580 |
578 } // namespace content | 581 } // namespace content |
OLD | NEW |