// Copyright 2015 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.firstrun;
import android.content.Context;
import org.chromium.base.ContextUtils;
/**
* Gets and sets preferences related to the status of the first run experience.
*/
public class FirstRunStatus {
// Needed by ChromeBackupAgent
public static final String FIRST_RUN_FLOW_COMPLETE = "first_run_flow";
public static final String LIGHTWEIGHT_FIRST_RUN_FLOW_COMPLETE = "lightweight_first_run_flow";
private static final String SKIP_WELCOME_PAGE = "skip_welcome_page";
/**
* Sets the "main First Run Experience flow complete" preference.
* @param context Any context
* @param isComplete Whether the main First Run Experience flow is complete
*/
public static void setFirstRunFlowComplete(Context context, boolean isComplete) {
ContextUtils.getAppSharedPreferences()
.edit()
.putBoolean(FIRST_RUN_FLOW_COMPLETE, isComplete)
.apply();
}
/**
* Returns whether the main First Run Experience flow is complete.
* Note: that might NOT include "intro"/"what's new" pages, but it always
* includes ToS and Sign In pages if necessary.
* @param context Any context
*/
public static boolean getFirstRunFlowComplete(Context context) {
return ContextUtils.getAppSharedPreferences()
.getBoolean(FIRST_RUN_FLOW_COMPLETE, false);
}
/**
* Sets the preference to skip the welcome page from the main First Run Experience.
* @param context Any context
* @param isSkip Whether the welcome page should be skpped
*/
public static void setSkipWelcomePage(Context context, boolean isSkip) {
ContextUtils.getAppSharedPreferences().edit().putBoolean(SKIP_WELCOME_PAGE, isSkip).apply();
}
/**
* Checks whether the welcome page should be skipped from the main First Run Experience.
*/
public static boolean shouldSkipWelcomePage(Context context) {
return ContextUtils.getAppSharedPreferences().getBoolean(SKIP_WELCOME_PAGE, false);
}
/**
* Sets the "lightweight First Run Experience flow complete" preference.
* @param context Any context
* @param isComplete Whether the lightweight First Run Experience flow is complete
*/
public static void setLightweightFirstRunFlowComplete(Context context, boolean isComplete) {
ContextUtils.getAppSharedPreferences()
.edit()
.putBoolean(LIGHTWEIGHT_FIRST_RUN_FLOW_COMPLETE, isComplete)
.apply();
}
/**
* Returns whether the "lightweight First Run Experience flow" is complete.
* @param context Any context
*/
public static boolean getLightweightFirstRunFlowComplete(Context context) {
return ContextUtils.getAppSharedPreferences().getBoolean(
LIGHTWEIGHT_FIRST_RUN_FLOW_COMPLETE, false);
}
}