1 // Copyright 2017 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.vr;
6 
7 import org.chromium.chrome.browser.flags.ChromeFeatureList;
8 import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
9 import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
10 
11 /**
12  * Gets and sets preferences related to the status of the Vr feedback infobar.
13  */
14 public class VrFeedbackStatus {
15     private static final String FEEDBACK_FREQUENCY_PARAM_NAME = "feedback_frequency";
16     private static final int DEFAULT_FEEDBACK_FREQUENCY = 10;
17 
18     /**
19      * Returns how often we should show the feedback prompt.
20      */
getFeedbackFrequency()21     public static int getFeedbackFrequency() {
22         return ChromeFeatureList.getFieldTrialParamByFeatureAsInt(
23                 ChromeFeatureList.VR_BROWSING_FEEDBACK, FEEDBACK_FREQUENCY_PARAM_NAME,
24                 DEFAULT_FEEDBACK_FREQUENCY);
25     }
26 
27     /**
28      * Sets the "opted out of entering VR feedback" preference.
29      * @param optOut Whether the VR feedback option has been opted-out of.
30      */
setFeedbackOptOut(boolean optOut)31     public static void setFeedbackOptOut(boolean optOut) {
32         SharedPreferencesManager.getInstance().writeBoolean(
33                 ChromePreferenceKeys.VR_FEEDBACK_OPT_OUT, optOut);
34     }
35 
36     /**
37      * Returns whether the user opted out of entering feedback for their VR experience.
38      */
getFeedbackOptOut()39     public static boolean getFeedbackOptOut() {
40         return SharedPreferencesManager.getInstance().readBoolean(
41                 ChromePreferenceKeys.VR_FEEDBACK_OPT_OUT, false);
42     }
43 
44     /**
45      * Sets the "exited VR mode into 2D browsing" preference.
46      * @param count The number of times the user exited VR and entered 2D browsing mode
47      */
setUserExitedAndEntered2DCount(int count)48     public static void setUserExitedAndEntered2DCount(int count) {
49         SharedPreferencesManager.getInstance().writeInt(
50                 ChromePreferenceKeys.VR_EXIT_TO_2D_COUNT, count);
51     }
52 
53     /**
54      * Returns the number of times the user has exited VR mode and entered the 2D browsing
55      * mode.
56      */
getUserExitedAndEntered2DCount()57     public static int getUserExitedAndEntered2DCount() {
58         return SharedPreferencesManager.getInstance().readInt(
59                 ChromePreferenceKeys.VR_EXIT_TO_2D_COUNT, 0);
60     }
61 }
62