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

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: cleanup 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 17
18 using base::android::AttachCurrentThread; 18 using base::android::AttachCurrentThread;
19 using base::android::ConvertJavaStringToUTF8; 19 using base::android::ConvertJavaStringToUTF8;
20 using base::android::ConvertUTF8ToJavaString; 20 using base::android::ConvertUTF8ToJavaString;
21 using base::android::JavaParamRef; 21 using base::android::JavaParamRef;
22 using base::android::ScopedJavaGlobalRef; 22 using base::android::ScopedJavaGlobalRef;
23 using base::android::ScopedJavaLocalRef; 23 using base::android::ScopedJavaLocalRef;
24 24
25 namespace offline_pages { 25 namespace offline_pages {
26 namespace android { 26 namespace android {
27 27
28 namespace { 28 namespace {
29 29
30 void ToJavaOfflinePageDownloadItemList(JNIEnv* env, 30 void ToJavaOfflinePageDownloadItemList(
31 jobject j_result_obj, 31 JNIEnv* env,
32 const DownloadUIItemsMap& items_map) { 32 jobject j_result_obj,
33 for (const auto& guid_item_pair : items_map) { 33 const std::vector<const DownloadUIItem*>& items) {
34 const DownloadUIItem& item = *(guid_item_pair.second.get()); 34 for (const auto item : items) {
35 Java_OfflinePageDownloadBridge_createDownloadItemAndAddToList( 35 Java_OfflinePageDownloadBridge_createDownloadItemAndAddToList(
36 env, j_result_obj, ConvertUTF8ToJavaString(env, item.guid).obj(), 36 env, j_result_obj, ConvertUTF8ToJavaString(env, item->guid).obj(),
37 ConvertUTF8ToJavaString(env, item.url.spec()).obj(), 37 ConvertUTF8ToJavaString(env, item->url.spec()).obj(),
38 ConvertUTF8ToJavaString(env, item.target_path.value()).obj(), 38 ConvertUTF8ToJavaString(env, item->target_path.value()).obj(),
39 item.start_time.ToJavaTime(), item.total_bytes); 39 item->start_time.ToJavaTime(), item->total_bytes);
40 } 40 }
41 } 41 }
42 42
43 ScopedJavaLocalRef<jobject> ToJavaOfflinePageDownloadItem( 43 ScopedJavaLocalRef<jobject> ToJavaOfflinePageDownloadItem(
44 JNIEnv* env, 44 JNIEnv* env,
45 const DownloadUIItem& item) { 45 const DownloadUIItem& item) {
46 return Java_OfflinePageDownloadBridge_createDownloadItem( 46 return Java_OfflinePageDownloadBridge_createDownloadItem(
47 env, ConvertUTF8ToJavaString(env, item.guid).obj(), 47 env, ConvertUTF8ToJavaString(env, item.guid).obj(),
48 ConvertUTF8ToJavaString(env, item.url.spec()).obj(), 48 ConvertUTF8ToJavaString(env, item.url.spec()).obj(),
49 ConvertUTF8ToJavaString(env, item.target_path.value()).obj(), 49 ConvertUTF8ToJavaString(env, item.target_path.value()).obj(),
(...skipping 23 matching lines...) Expand all
73 download_ui_adapter_->RemoveObserver(this); 73 download_ui_adapter_->RemoveObserver(this);
74 delete this; 74 delete this;
75 } 75 }
76 76
77 void OfflinePageDownloadBridge::GetAllItems( 77 void OfflinePageDownloadBridge::GetAllItems(
78 JNIEnv* env, 78 JNIEnv* env,
79 const JavaParamRef<jobject>& obj, 79 const JavaParamRef<jobject>& obj,
80 const JavaParamRef<jobject>& j_result_obj) { 80 const JavaParamRef<jobject>& j_result_obj) {
81 DCHECK(j_result_obj); 81 DCHECK(j_result_obj);
82 82
83 const DownloadUIItemsMap& items_map = download_ui_adapter_->GetAllItems(); 83 std::vector<const DownloadUIItem*> items =
84 ToJavaOfflinePageDownloadItemList(env, j_result_obj, items_map); 84 download_ui_adapter_->GetAllItems();
85 ToJavaOfflinePageDownloadItemList(env, j_result_obj, items);
85 } 86 }
86 87
87 ScopedJavaLocalRef<jobject> OfflinePageDownloadBridge::GetItemByGuid( 88 ScopedJavaLocalRef<jobject> OfflinePageDownloadBridge::GetItemByGuid(
88 JNIEnv* env, 89 JNIEnv* env,
89 const JavaParamRef<jobject>& obj, 90 const JavaParamRef<jobject>& obj,
90 const base::android::JavaParamRef<jstring>& j_guid) { 91 const JavaParamRef<jstring>& j_guid) {
91 std::string guid = ConvertJavaStringToUTF8(env, j_guid); 92 std::string guid = ConvertJavaStringToUTF8(env, j_guid);
92 const DownloadUIItem* item = download_ui_adapter_->GetItem(guid); 93 const DownloadUIItem* item = download_ui_adapter_->GetItem(guid);
93 return ToJavaOfflinePageDownloadItem(env, *item); 94 return ToJavaOfflinePageDownloadItem(env, *item);
94 } 95 }
95 96
97 void OfflinePageDownloadBridge::DeleteItemByGuid(
98 JNIEnv* env,
99 const JavaParamRef<jobject>& obj,
100 const JavaParamRef<jstring>& j_guid) {
101 std::string guid = ConvertJavaStringToUTF8(env, j_guid);
102 download_ui_adapter_->DeleteItem(guid);
103 }
104
105 ScopedJavaLocalRef<jstring> OfflinePageDownloadBridge::GetOfflineUrlByGuid(
106 JNIEnv* env,
107 const JavaParamRef<jobject>& obj,
108 const JavaParamRef<jstring>& j_guid) {
109 std::string guid = ConvertJavaStringToUTF8(env, j_guid);
110 std::string url = download_ui_adapter_->GetOfflineUrlByGuid(guid);
111 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
112 }
113
96 void OfflinePageDownloadBridge::ItemsLoaded() { 114 void OfflinePageDownloadBridge::ItemsLoaded() {
97 JNIEnv* env = AttachCurrentThread(); 115 JNIEnv* env = AttachCurrentThread();
98 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); 116 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env);
99 if (obj.is_null()) 117 if (obj.is_null())
100 return; 118 return;
101 Java_OfflinePageDownloadBridge_downloadItemsLoaded(env, obj.obj()); 119 Java_OfflinePageDownloadBridge_downloadItemsLoaded(env, obj.obj());
102 } 120 }
103 121
104 void OfflinePageDownloadBridge::ItemAdded(const DownloadUIItem& item) { 122 void OfflinePageDownloadBridge::ItemAdded(const DownloadUIItem& item) {
105 JNIEnv* env = AttachCurrentThread(); 123 JNIEnv* env = AttachCurrentThread();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 155
138 DownloadUIAdapter* adapter = 156 DownloadUIAdapter* adapter =
139 DownloadUIAdapter::FromOfflinePageModel(offline_page_model); 157 DownloadUIAdapter::FromOfflinePageModel(offline_page_model);
140 158
141 return reinterpret_cast<jlong>( 159 return reinterpret_cast<jlong>(
142 new OfflinePageDownloadBridge(env, obj, adapter)); 160 new OfflinePageDownloadBridge(env, obj, adapter));
143 } 161 }
144 162
145 } // namespace android 163 } // namespace android
146 } // namespace offline_pages 164 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698