blob: f2fdf3f759d0839540c45fd24c9117e591858bb9 [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser;
import org.chromium.chrome.browser.ForeignSessionHelper.ForeignSession;
import org.chromium.chrome.browser.profiles.Profile;
/**
* This class allows Java code to read and modify preferences related to the NTP
*/
public class NewTabPagePrefs {
private long mNativeNewTabPagePrefs;
/**
* Initialize this class with the given profile.
* @param profile Profile that will be used for syncing.
*/
public NewTabPagePrefs(Profile profile) {
mNativeNewTabPagePrefs = nativeInit(profile);
}
/**
* Clean up the C++ side of this class. After the call, this class instance shouldn't be used.
*/
public void destroy() {
assert mNativeNewTabPagePrefs != 0;
nativeDestroy(mNativeNewTabPagePrefs);
mNativeNewTabPagePrefs = 0;
}
/**
* Set snapshot document list collapsed or uncollapsed state in preferences.
* @param isCollapsed {@code True} Whether we want the snapshot documents list to be collapsed.
*/
public void setSnapshotDocumentCollapsed(boolean isCollapsed) {
nativeSetSnapshotDocumentCollapsed(mNativeNewTabPagePrefs, isCollapsed);
}
/**
* Get the snapshot document list collapsed or uncollapsed state in preferences.
* @return {@code True} Whether the snapshot documnets list is collapsed.
*/
public boolean getSnapshotDocumentCollapsed() {
return nativeGetSnapshotDocumentCollapsed(mNativeNewTabPagePrefs);
}
/**
* Set recently closed tabs list collapsed or uncollapsed state in preferences.
* @param isCollapsed {@code True} Whether we want the recently closed tabs list to be
* collapsed.
*/
public void setRecentlyClosedTabsCollapsed(boolean isCollapsed) {
nativeSetRecentlyClosedTabsCollapsed(mNativeNewTabPagePrefs, isCollapsed);
}
/**
* Get the recently closed document list collapsed or uncollapsed state in preferences.
* @return {@code True} Whether the recently closed list is collapsed.
*/
public boolean getRecentlyClosedTabsCollapsed() {
return nativeGetRecentlyClosedTabsCollapsed(mNativeNewTabPagePrefs);
}
/**
* Set sync promo collapsed or uncollapsed state in preferences.
* @param isCollapsed {@code True} Whether we want the sync promo to be collapsed.
*/
public void setSyncPromoCollapsed(boolean isCollapsed) {
nativeSetSyncPromoCollapsed(mNativeNewTabPagePrefs, isCollapsed);
}
/**
* Get the sync promo collapsed or uncollapsed state in preferences.
* @return {@code True} Whether the snapshot documnets list is collapsed.
*/
public boolean getSyncPromoCollapsed() {
return nativeGetSyncPromoCollapsed(mNativeNewTabPagePrefs);
}
/**
* Set the given session collapsed or uncollapsed in preferences.
* @param session Session to set collapsed or uncollapsed.
* @param isCollapsed {@code True} iff we want the session to be collapsed.
*/
public void setForeignSessionCollapsed(ForeignSession session, boolean isCollapsed) {
nativeSetForeignSessionCollapsed(mNativeNewTabPagePrefs, session.tag, isCollapsed);
}
/**
* Get the given session collapsed or uncollapsed state in preferences.
* @param session Session to fetch collapsed state.
* @return {@code True} if the session is collapsed, false if expanded.
*/
public boolean getForeignSessionCollapsed(ForeignSession session) {
return nativeGetForeignSessionCollapsed(mNativeNewTabPagePrefs, session.tag);
}
private static native long nativeInit(Profile profile);
private static native void nativeDestroy(long nativeNewTabPagePrefs);
private static native void nativeSetSnapshotDocumentCollapsed(
long nativeNewTabPagePrefs, boolean isCollapsed);
private static native boolean nativeGetSnapshotDocumentCollapsed(
long nativeNewTabPagePrefs);
private static native void nativeSetRecentlyClosedTabsCollapsed(
long nativeNewTabPagePrefs, boolean isCollapsed);
private static native boolean nativeGetRecentlyClosedTabsCollapsed(
long nativeNewTabPagePrefs);
private static native void nativeSetSyncPromoCollapsed(long nativeNewTabPagePrefs,
boolean isCollapsed);
private static native boolean nativeGetSyncPromoCollapsed(long nativeNewTabPagePrefs);
private static native void nativeSetForeignSessionCollapsed(
long nativeNewTabPagePrefs, String sessionTag, boolean isCollapsed);
private static native boolean nativeGetForeignSessionCollapsed(
long nativeNewTabPagePrefs, String sessionTag);
}