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

Side by Side Diff: chrome/browser/android/offline_pages/downloads/offline_page_download_bridge.cc

Issue 2221293002: Implement deleteItem and openItem on OfflinePageDownloadBridge. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more updates Created 4 years, 4 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/offline_pages/downloads/offline_page_download_b ridge.h" 5 #include "chrome/browser/android/offline_pages/downloads/offline_page_download_b ridge.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
10 #include "chrome/browser/android/offline_pages/offline_page_model_factory.h" 10 #include "chrome/browser/android/offline_pages/offline_page_model_factory.h"
11 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/profiles/profile_android.h" 12 #include "chrome/browser/profiles/profile_android.h"
13 #include "components/offline_pages/downloads/download_ui_item.h" 13 #include "components/offline_pages/downloads/download_ui_item.h"
14 #include "components/offline_pages/offline_page_model.h" 14 #include "components/offline_pages/offline_page_model.h"
15 #include "jni/OfflinePageDownloadBridge_jni.h" 15 #include "jni/OfflinePageDownloadBridge_jni.h"
16 #include "net/base/filename_util.h" 16 #include "net/base/filename_util.h"
17 #include "url/gurl.h"
17 18
18 using base::android::AttachCurrentThread; 19 using base::android::AttachCurrentThread;
19 using base::android::ConvertJavaStringToUTF8; 20 using base::android::ConvertJavaStringToUTF8;
20 using base::android::ConvertUTF8ToJavaString; 21 using base::android::ConvertUTF8ToJavaString;
21 using base::android::JavaParamRef; 22 using base::android::JavaParamRef;
22 using base::android::ScopedJavaGlobalRef; 23 using base::android::ScopedJavaGlobalRef;
23 using base::android::ScopedJavaLocalRef; 24 using base::android::ScopedJavaLocalRef;
24 25
25 namespace offline_pages { 26 namespace offline_pages {
26 namespace android { 27 namespace android {
27 28
28 namespace { 29 namespace {
29 30
30 void ToJavaOfflinePageDownloadItemList(JNIEnv* env, 31 void ToJavaOfflinePageDownloadItemList(
31 jobject j_result_obj, 32 JNIEnv* env,
32 const DownloadUIItemsMap& items_map) { 33 jobject j_result_obj,
33 for (const auto& guid_item_pair : items_map) { 34 const std::vector<const DownloadUIItem*>& items) {
34 const DownloadUIItem& item = *(guid_item_pair.second.get()); 35 for (const auto item : items) {
35 Java_OfflinePageDownloadBridge_createDownloadItemAndAddToList( 36 Java_OfflinePageDownloadBridge_createDownloadItemAndAddToList(
36 env, j_result_obj, ConvertUTF8ToJavaString(env, item.guid).obj(), 37 env, j_result_obj, ConvertUTF8ToJavaString(env, item->guid).obj(),
37 ConvertUTF8ToJavaString(env, item.url.spec()).obj(), 38 ConvertUTF8ToJavaString(env, item->url.spec()).obj(),
38 ConvertUTF8ToJavaString(env, item.target_path.value()).obj(), 39 ConvertUTF8ToJavaString(env, item->target_path.value()).obj(),
39 item.start_time.ToJavaTime(), item.total_bytes); 40 item->start_time.ToJavaTime(), item->total_bytes);
40 } 41 }
41 } 42 }
42 43
43 ScopedJavaLocalRef<jobject> ToJavaOfflinePageDownloadItem( 44 ScopedJavaLocalRef<jobject> ToJavaOfflinePageDownloadItem(
44 JNIEnv* env, 45 JNIEnv* env,
45 const DownloadUIItem& item) { 46 const DownloadUIItem& item) {
46 return Java_OfflinePageDownloadBridge_createDownloadItem( 47 return Java_OfflinePageDownloadBridge_createDownloadItem(
47 env, ConvertUTF8ToJavaString(env, item.guid).obj(), 48 env, ConvertUTF8ToJavaString(env, item.guid).obj(),
48 ConvertUTF8ToJavaString(env, item.url.spec()).obj(), 49 ConvertUTF8ToJavaString(env, item.url.spec()).obj(),
49 ConvertUTF8ToJavaString(env, item.target_path.value()).obj(), 50 ConvertUTF8ToJavaString(env, item.target_path.value()).obj(),
(...skipping 23 matching lines...) Expand all
73 download_ui_adapter_->RemoveObserver(this); 74 download_ui_adapter_->RemoveObserver(this);
74 delete this; 75 delete this;
75 } 76 }
76 77
77 void OfflinePageDownloadBridge::GetAllItems( 78 void OfflinePageDownloadBridge::GetAllItems(
78 JNIEnv* env, 79 JNIEnv* env,
79 const JavaParamRef<jobject>& obj, 80 const JavaParamRef<jobject>& obj,
80 const JavaParamRef<jobject>& j_result_obj) { 81 const JavaParamRef<jobject>& j_result_obj) {
81 DCHECK(j_result_obj); 82 DCHECK(j_result_obj);
82 83
83 const DownloadUIItemsMap& items_map = download_ui_adapter_->GetAllItems(); 84 std::vector<const DownloadUIItem*> items =
84 ToJavaOfflinePageDownloadItemList(env, j_result_obj, items_map); 85 download_ui_adapter_->GetAllItems();
86 ToJavaOfflinePageDownloadItemList(env, j_result_obj, items);
85 } 87 }
86 88
87 ScopedJavaLocalRef<jobject> OfflinePageDownloadBridge::GetItemByGuid( 89 ScopedJavaLocalRef<jobject> OfflinePageDownloadBridge::GetItemByGuid(
88 JNIEnv* env, 90 JNIEnv* env,
89 const JavaParamRef<jobject>& obj, 91 const JavaParamRef<jobject>& obj,
90 const base::android::JavaParamRef<jstring>& j_guid) { 92 const JavaParamRef<jstring>& j_guid) {
91 std::string guid = ConvertJavaStringToUTF8(env, j_guid); 93 std::string guid = ConvertJavaStringToUTF8(env, j_guid);
92 const DownloadUIItem* item = download_ui_adapter_->GetItem(guid); 94 const DownloadUIItem* item = download_ui_adapter_->GetItem(guid);
93 return ToJavaOfflinePageDownloadItem(env, *item); 95 return ToJavaOfflinePageDownloadItem(env, *item);
94 } 96 }
95 97
98 void OfflinePageDownloadBridge::DeleteItemByGuid(
99 JNIEnv* env,
100 const JavaParamRef<jobject>& obj,
101 const JavaParamRef<jstring>& j_guid) {
102 std::string guid = ConvertJavaStringToUTF8(env, j_guid);
103 download_ui_adapter_->DeleteItem(guid);
104 }
105
106 ScopedJavaLocalRef<jstring> OfflinePageDownloadBridge::GetOfflineUrlByGuid(
107 JNIEnv* env,
108 const JavaParamRef<jobject>& obj,
109 const JavaParamRef<jstring>& j_guid) {
110 std::string guid = ConvertJavaStringToUTF8(env, j_guid);
111 GURL url = download_ui_adapter_->GetOfflineUrlByGuid(guid);
112 if (!url.is_valid())
113 return ScopedJavaLocalRef<jstring>();
114 return ConvertUTF8ToJavaString(env, url.spec());
115 }
116
96 void OfflinePageDownloadBridge::ItemsLoaded() { 117 void OfflinePageDownloadBridge::ItemsLoaded() {
97 JNIEnv* env = AttachCurrentThread(); 118 JNIEnv* env = AttachCurrentThread();
98 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); 119 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env);
99 if (obj.is_null()) 120 if (obj.is_null())
100 return; 121 return;
101 Java_OfflinePageDownloadBridge_downloadItemsLoaded(env, obj.obj()); 122 Java_OfflinePageDownloadBridge_downloadItemsLoaded(env, obj.obj());
102 } 123 }
103 124
104 void OfflinePageDownloadBridge::ItemAdded(const DownloadUIItem& item) { 125 void OfflinePageDownloadBridge::ItemAdded(const DownloadUIItem& item) {
105 JNIEnv* env = AttachCurrentThread(); 126 JNIEnv* env = AttachCurrentThread();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 158
138 DownloadUIAdapter* adapter = 159 DownloadUIAdapter* adapter =
139 DownloadUIAdapter::FromOfflinePageModel(offline_page_model); 160 DownloadUIAdapter::FromOfflinePageModel(offline_page_model);
140 161
141 return reinterpret_cast<jlong>( 162 return reinterpret_cast<jlong>(
142 new OfflinePageDownloadBridge(env, obj, adapter)); 163 new OfflinePageDownloadBridge(env, obj, adapter));
143 } 164 }
144 165
145 } // namespace android 166 } // namespace android
146 } // namespace offline_pages 167 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698