Chromium Code Reviews| Index: chrome/browser/android/offline_pages/downloads/offline_page_download_bridge.cc |
| diff --git a/chrome/browser/android/offline_pages/downloads/offline_page_download_bridge.cc b/chrome/browser/android/offline_pages/downloads/offline_page_download_bridge.cc |
| index 4ae4a7e73868987b8b638174ce16edef68be4799..64eaf6ce2c6d7be830dfe07a5b7c6ea7e2d89482 100644 |
| --- a/chrome/browser/android/offline_pages/downloads/offline_page_download_bridge.cc |
| +++ b/chrome/browser/android/offline_pages/downloads/offline_page_download_bridge.cc |
| @@ -27,16 +27,16 @@ namespace android { |
| namespace { |
| -void ToJavaOfflinePageDownloadItemList(JNIEnv* env, |
| - jobject j_result_obj, |
| - const DownloadUIItemsMap& items_map) { |
| - for (const auto& guid_item_pair : items_map) { |
| - const DownloadUIItem& item = *(guid_item_pair.second.get()); |
| +void ToJavaOfflinePageDownloadItemList( |
| + JNIEnv* env, |
| + jobject j_result_obj, |
| + const std::vector<const DownloadUIItem*>& items) { |
| + for (const auto item : items) { |
| Java_OfflinePageDownloadBridge_createDownloadItemAndAddToList( |
| - env, j_result_obj, ConvertUTF8ToJavaString(env, item.guid).obj(), |
| - ConvertUTF8ToJavaString(env, item.url.spec()).obj(), |
| - ConvertUTF8ToJavaString(env, item.target_path.value()).obj(), |
| - item.start_time.ToJavaTime(), item.total_bytes); |
| + env, j_result_obj, ConvertUTF8ToJavaString(env, item->guid).obj(), |
| + ConvertUTF8ToJavaString(env, item->url.spec()).obj(), |
| + ConvertUTF8ToJavaString(env, item->target_path.value()).obj(), |
| + item->start_time.ToJavaTime(), item->total_bytes); |
| } |
| } |
| @@ -80,19 +80,37 @@ void OfflinePageDownloadBridge::GetAllItems( |
| const JavaParamRef<jobject>& j_result_obj) { |
| DCHECK(j_result_obj); |
| - const DownloadUIItemsMap& items_map = download_ui_adapter_->GetAllItems(); |
| - ToJavaOfflinePageDownloadItemList(env, j_result_obj, items_map); |
| + std::vector<const DownloadUIItem*> items = |
| + download_ui_adapter_->GetAllItems(); |
| + ToJavaOfflinePageDownloadItemList(env, j_result_obj, items); |
| } |
| ScopedJavaLocalRef<jobject> OfflinePageDownloadBridge::GetItemByGuid( |
| JNIEnv* env, |
| const JavaParamRef<jobject>& obj, |
| - const base::android::JavaParamRef<jstring>& j_guid) { |
| + const JavaParamRef<jstring>& j_guid) { |
| std::string guid = ConvertJavaStringToUTF8(env, j_guid); |
| const DownloadUIItem* item = download_ui_adapter_->GetItem(guid); |
| return ToJavaOfflinePageDownloadItem(env, *item); |
| } |
| +void OfflinePageDownloadBridge::DeleteItemByGuid( |
| + JNIEnv* env, |
| + const JavaParamRef<jobject>& obj, |
| + const JavaParamRef<jstring>& j_guid) { |
| + std::string guid = ConvertJavaStringToUTF8(env, j_guid); |
| + download_ui_adapter_->DeleteItem(guid); |
| +} |
| + |
| +ScopedJavaLocalRef<jstring> OfflinePageDownloadBridge::GetOfflineUrlByGuid( |
| + JNIEnv* env, |
| + const JavaParamRef<jobject>& obj, |
| + const JavaParamRef<jstring>& j_guid) { |
| + std::string guid = ConvertJavaStringToUTF8(env, j_guid); |
| + std::string url = download_ui_adapter_->GetOfflineUrlByGuid(guid); |
| + return ConvertUTF8ToJavaString(env, url); |
|
fgorski
2016/08/12 15:43:52
you know what, I think depending on what you want
Dmitry Titov
2016/08/12 19:43:36
I check for empty string on Java side and not for
Dmitry Titov
2016/08/12 19:43:36
reverted back tand check for null. needed it for G
|
| +} |
| + |
| void OfflinePageDownloadBridge::ItemsLoaded() { |
| JNIEnv* env = AttachCurrentThread(); |
| ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); |