| 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..9db2b176950bf17847c46b765a8efcc30bf531b5 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,21 @@ 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(),
|
| + 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 +92,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());
|
| + 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(
|
|
|