1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5package org.chromium.chrome.browser;
6
7import org.chromium.base.JNINamespace;
8import org.chromium.components.bookmarks.BookmarkId;
9
10/**
11 * Access gate to C++ side enhanced bookmarks functionalities.
12 */
13@JNINamespace("enhanced_bookmarks::android")
14public final class EnhancedBookmarksBridge {
15    private long mNativeEnhancedBookmarksBridge;
16
17    public EnhancedBookmarksBridge(long nativeBookmarkModel) {
18        mNativeEnhancedBookmarksBridge = nativeInit(nativeBookmarkModel);
19    }
20
21    public void destroy() {
22        assert mNativeEnhancedBookmarksBridge != 0;
23        nativeDestroy(mNativeEnhancedBookmarksBridge);
24        mNativeEnhancedBookmarksBridge = 0;
25    }
26
27    public String getBookmarkDescription(BookmarkId id) {
28        return nativeGetBookmarkDescription(mNativeEnhancedBookmarksBridge, id.getId(),
29                id.getType());
30    }
31
32    public void setBookmarkDescription(BookmarkId id, String description) {
33        nativeSetBookmarkDescription(mNativeEnhancedBookmarksBridge, id.getId(), id.getType(),
34                description);
35    }
36
37    private native long nativeInit(long bookmarkModelPointer);
38
39    private native void nativeDestroy(long nativeEnhancedBookmarksBridge);
40
41    private native String nativeGetBookmarkDescription(long nativeEnhancedBookmarksBridge, long id,
42            int type);
43    private native void nativeSetBookmarkDescription(long nativeEnhancedBookmarksBridge, long id,
44            int type, String description);
45}
46