f2fdf3f759d0839540c45fd24c9117e591858bb9
[platform/framework/web/crosswalk.git] / src / chrome / android / java / src / org / chromium / chrome / browser / NewTabPagePrefs.java
1 // Copyright 2013 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
5 package org.chromium.chrome.browser;
6
7 import org.chromium.chrome.browser.ForeignSessionHelper.ForeignSession;
8 import org.chromium.chrome.browser.profiles.Profile;
9
10 /**
11  * This class allows Java code to read and modify preferences related to the NTP
12  */
13 public class NewTabPagePrefs {
14     private long mNativeNewTabPagePrefs;
15
16     /**
17      * Initialize this class with the given profile.
18      * @param profile Profile that will be used for syncing.
19      */
20     public NewTabPagePrefs(Profile profile) {
21         mNativeNewTabPagePrefs = nativeInit(profile);
22     }
23
24     /**
25      * Clean up the C++ side of this class. After the call, this class instance shouldn't be used.
26      */
27     public void destroy() {
28         assert mNativeNewTabPagePrefs != 0;
29         nativeDestroy(mNativeNewTabPagePrefs);
30         mNativeNewTabPagePrefs = 0;
31     }
32
33     /**
34      * Set snapshot document list collapsed or uncollapsed state in preferences.
35      * @param isCollapsed {@code True} Whether we want the snapshot documents list to be collapsed.
36      */
37     public void setSnapshotDocumentCollapsed(boolean isCollapsed) {
38         nativeSetSnapshotDocumentCollapsed(mNativeNewTabPagePrefs, isCollapsed);
39     }
40
41     /**
42      * Get the snapshot document list collapsed or uncollapsed state in preferences.
43      * @return {@code True} Whether the snapshot documnets list is collapsed.
44      */
45     public boolean getSnapshotDocumentCollapsed() {
46         return nativeGetSnapshotDocumentCollapsed(mNativeNewTabPagePrefs);
47     }
48
49     /**
50      * Set recently closed tabs list collapsed or uncollapsed state in preferences.
51      * @param isCollapsed {@code True} Whether we want the recently closed tabs list to be
52      * collapsed.
53      */
54     public void setRecentlyClosedTabsCollapsed(boolean isCollapsed) {
55         nativeSetRecentlyClosedTabsCollapsed(mNativeNewTabPagePrefs, isCollapsed);
56     }
57
58     /**
59      * Get the recently closed document list collapsed or uncollapsed state in preferences.
60      * @return {@code True} Whether the recently closed list is collapsed.
61      */
62     public boolean getRecentlyClosedTabsCollapsed() {
63         return nativeGetRecentlyClosedTabsCollapsed(mNativeNewTabPagePrefs);
64     }
65
66     /**
67      * Set sync promo collapsed or uncollapsed state in preferences.
68      * @param isCollapsed {@code True} Whether we want the sync promo to be collapsed.
69      */
70     public void setSyncPromoCollapsed(boolean isCollapsed) {
71         nativeSetSyncPromoCollapsed(mNativeNewTabPagePrefs, isCollapsed);
72     }
73
74     /**
75      * Get the sync promo collapsed or uncollapsed state in preferences.
76      * @return {@code True} Whether the snapshot documnets list is collapsed.
77      */
78     public boolean getSyncPromoCollapsed() {
79         return nativeGetSyncPromoCollapsed(mNativeNewTabPagePrefs);
80     }
81
82     /**
83      * Set the given session collapsed or uncollapsed in preferences.
84      * @param session     Session to set collapsed or uncollapsed.
85      * @param isCollapsed {@code True} iff we want the session to be collapsed.
86      */
87     public void setForeignSessionCollapsed(ForeignSession session, boolean isCollapsed) {
88         nativeSetForeignSessionCollapsed(mNativeNewTabPagePrefs, session.tag, isCollapsed);
89     }
90
91     /**
92      * Get the given session collapsed or uncollapsed state in preferences.
93      * @param  session Session to fetch collapsed state.
94      * @return         {@code True} if the session is collapsed, false if expanded.
95      */
96     public boolean getForeignSessionCollapsed(ForeignSession session) {
97         return nativeGetForeignSessionCollapsed(mNativeNewTabPagePrefs, session.tag);
98     }
99
100     private static native long nativeInit(Profile profile);
101     private static native void nativeDestroy(long nativeNewTabPagePrefs);
102     private static native void nativeSetSnapshotDocumentCollapsed(
103             long nativeNewTabPagePrefs, boolean isCollapsed);
104     private static native boolean nativeGetSnapshotDocumentCollapsed(
105             long nativeNewTabPagePrefs);
106     private static native void nativeSetRecentlyClosedTabsCollapsed(
107             long nativeNewTabPagePrefs, boolean isCollapsed);
108     private static native boolean nativeGetRecentlyClosedTabsCollapsed(
109             long nativeNewTabPagePrefs);
110     private static native void nativeSetSyncPromoCollapsed(long nativeNewTabPagePrefs,
111             boolean isCollapsed);
112     private static native boolean nativeGetSyncPromoCollapsed(long nativeNewTabPagePrefs);
113     private static native void nativeSetForeignSessionCollapsed(
114             long nativeNewTabPagePrefs, String sessionTag, boolean isCollapsed);
115     private static native boolean nativeGetForeignSessionCollapsed(
116             long nativeNewTabPagePrefs, String sessionTag);
117 }