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.
5 package org.chromium.chrome.browser;
7 import org.chromium.chrome.browser.ForeignSessionHelper.ForeignSession;
8 import org.chromium.chrome.browser.profiles.Profile;
11 * This class allows Java code to read and modify preferences related to the NTP
13 public class NewTabPagePrefs {
14 private long mNativeNewTabPagePrefs;
17 * Initialize this class with the given profile.
18 * @param profile Profile that will be used for syncing.
20 public NewTabPagePrefs(Profile profile) {
21 mNativeNewTabPagePrefs = nativeInit(profile);
25 * Clean up the C++ side of this class. After the call, this class instance shouldn't be used.
27 public void destroy() {
28 assert mNativeNewTabPagePrefs != 0;
29 nativeDestroy(mNativeNewTabPagePrefs);
30 mNativeNewTabPagePrefs = 0;
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.
37 public void setSnapshotDocumentCollapsed(boolean isCollapsed) {
38 nativeSetSnapshotDocumentCollapsed(mNativeNewTabPagePrefs, isCollapsed);
42 * Get the snapshot document list collapsed or uncollapsed state in preferences.
43 * @return {@code True} Whether the snapshot documnets list is collapsed.
45 public boolean getSnapshotDocumentCollapsed() {
46 return nativeGetSnapshotDocumentCollapsed(mNativeNewTabPagePrefs);
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
54 public void setRecentlyClosedTabsCollapsed(boolean isCollapsed) {
55 nativeSetRecentlyClosedTabsCollapsed(mNativeNewTabPagePrefs, isCollapsed);
59 * Get the recently closed document list collapsed or uncollapsed state in preferences.
60 * @return {@code True} Whether the recently closed list is collapsed.
62 public boolean getRecentlyClosedTabsCollapsed() {
63 return nativeGetRecentlyClosedTabsCollapsed(mNativeNewTabPagePrefs);
67 * Set sync promo collapsed or uncollapsed state in preferences.
68 * @param isCollapsed {@code True} Whether we want the sync promo to be collapsed.
70 public void setSyncPromoCollapsed(boolean isCollapsed) {
71 nativeSetSyncPromoCollapsed(mNativeNewTabPagePrefs, isCollapsed);
75 * Get the sync promo collapsed or uncollapsed state in preferences.
76 * @return {@code True} Whether the snapshot documnets list is collapsed.
78 public boolean getSyncPromoCollapsed() {
79 return nativeGetSyncPromoCollapsed(mNativeNewTabPagePrefs);
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.
87 public void setForeignSessionCollapsed(ForeignSession session, boolean isCollapsed) {
88 nativeSetForeignSessionCollapsed(mNativeNewTabPagePrefs, session.tag, isCollapsed);
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.
96 public boolean getForeignSessionCollapsed(ForeignSession session) {
97 return nativeGetForeignSessionCollapsed(mNativeNewTabPagePrefs, session.tag);
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);