Chromium Code Reviews| Index: chrome/browser/android/history/browsing_history_bridge.cc |
| diff --git a/chrome/browser/android/history/browsing_history_bridge.cc b/chrome/browser/android/history/browsing_history_bridge.cc |
| index 768254aee4f9e1a34a9e48933386c4d46ff2e423..5b1535dad7718c4e386f0bf9a31940796b1123a4 100644 |
| --- a/chrome/browser/android/history/browsing_history_bridge.cc |
| +++ b/chrome/browser/android/history/browsing_history_bridge.cc |
| @@ -7,6 +7,7 @@ |
| #include <jni.h> |
| #include "base/android/jni_android.h" |
| +#include "base/android/jni_array.h" |
| #include "base/android/jni_string.h" |
| #include "base/macros.h" |
| #include "base/strings/utf_string_conversions.h" |
| @@ -66,13 +67,22 @@ void BrowsingHistoryBridge::OnQueryComplete( |
| if (domain.empty()) |
| domain = base::UTF8ToUTF16(it->url.scheme() + ":"); |
| + std::vector<int64_t> timestamps; |
| + for (auto timestampIt = it->all_timestamps.begin(); |
| + timestampIt != it->all_timestamps.end(); ++timestampIt) { |
| + timestamps.push_back( |
| + base::Time::FromInternalValue(*timestampIt).ToJavaTime()); |
| + } |
| + |
| Java_BrowsingHistoryBridge_createHistoryItemAndAddToList( |
| env, |
| j_query_result_obj_.obj(), |
| base::android::ConvertUTF8ToJavaString(env, it->url.spec()), |
| base::android::ConvertUTF16ToJavaString(env, domain), |
| base::android::ConvertUTF16ToJavaString(env, it->title), |
| - it->time.ToJavaTime()); |
| + base::android::ToJavaLongArray(env, timestamps)); |
| + |
| + timestamps.clear(); |
| } |
| Java_BrowsingHistoryBridge_onQueryHistoryComplete( |
| @@ -83,16 +93,48 @@ void BrowsingHistoryBridge::OnQueryComplete( |
| j_query_result_obj_.Release(); |
| } |
| +void BrowsingHistoryBridge::MarkItemForRemoval( |
| + JNIEnv* env, |
| + const JavaParamRef<jobject>& obj, |
| + jstring j_url, |
| + const JavaParamRef<jlongArray>& j_timestamps) { |
| + std::unique_ptr<BrowsingHistoryService::HistoryEntry> entry( |
| + new BrowsingHistoryService::HistoryEntry()); |
|
gone
2016/12/08 21:21:56
git cl format?
Theresa
2016/12/08 21:51:15
Done.
|
| + entry->url = GURL(base::android::ConvertJavaStringToUTF16(env, j_url)); |
| + |
| + std::vector<int64_t> timestamps; |
| + base::android::JavaLongArrayToInt64Vector( |
| + env, j_timestamps.obj(), ×tamps); |
| + for (auto it = timestamps.begin(); it != timestamps.end(); ++it) { |
| + base::Time visit_time = base::Time::FromJavaTime(*it); |
| + entry->all_timestamps.insert(visit_time.ToInternalValue()); |
| + } |
| + |
| + items_to_remove_.push_back(std::move(entry)); |
| + timestamps.clear(); |
| +} |
| + |
| +void BrowsingHistoryBridge::RemoveItems(JNIEnv* env, |
| + const JavaParamRef<jobject>& obj) { |
| + browsing_history_service_->RemoveVisits(&items_to_remove_); |
| + items_to_remove_.clear(); |
| +} |
| + |
| void BrowsingHistoryBridge::OnRemoveVisitsComplete() { |
| - // TODO(twellington): implement |
| + JNIEnv* env = base::android::AttachCurrentThread(); |
| + Java_BrowsingHistoryBridge_onRemoveComplete( |
| + env, j_history_service_obj_.obj()); |
| } |
| void BrowsingHistoryBridge::OnRemoveVisitsFailed() { |
| - // TODO(twellington): implement |
| + JNIEnv* env = base::android::AttachCurrentThread(); |
| + Java_BrowsingHistoryBridge_onRemoveFailed(env, j_history_service_obj_.obj()); |
| } |
| void BrowsingHistoryBridge::HistoryDeleted() { |
| - // TODO(twellington): implement |
| + JNIEnv* env = base::android::AttachCurrentThread(); |
| + Java_BrowsingHistoryBridge_onHistoryDeleted( |
| + env, j_history_service_obj_.obj()); |
| } |
| void BrowsingHistoryBridge::HasOtherFormsOfBrowsingHistory( |