• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2020 The Chromium Authors
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.components.prefs;
6 
7 import androidx.annotation.NonNull;
8 import androidx.annotation.VisibleForTesting;
9 
10 import org.jni_zero.CalledByNative;
11 import org.jni_zero.NativeMethods;
12 
13 /** PrefService provides read and write access to native PrefService. */
14 public class PrefService {
15     private long mNativePrefServiceAndroid;
16 
17     @CalledByNative
create(long nativePrefServiceAndroid)18     private static PrefService create(long nativePrefServiceAndroid) {
19         return new PrefService(nativePrefServiceAndroid);
20     }
21 
22     @CalledByNative
clearNativePtr()23     private void clearNativePtr() {
24         mNativePrefServiceAndroid = 0;
25     }
26 
27     @CalledByNative
getNativePointer()28     private long getNativePointer() {
29         return mNativePrefServiceAndroid;
30     }
31 
32     @VisibleForTesting
PrefService(long nativePrefServiceAndroid)33     PrefService(long nativePrefServiceAndroid) {
34         mNativePrefServiceAndroid = nativePrefServiceAndroid;
35     }
36 
37     /** @param preference The name of the preference. */
clearPref(@onNull String preference)38     public void clearPref(@NonNull String preference) {
39         PrefServiceJni.get().clearPref(mNativePrefServiceAndroid, preference);
40     }
41 
42     /** @param preference The name of the preference. */
hasPrefPath(@onNull String preference)43     public boolean hasPrefPath(@NonNull String preference) {
44         return PrefServiceJni.get().hasPrefPath(mNativePrefServiceAndroid, preference);
45     }
46 
47     /**
48      * @param preference The name of the preference.
49      * @return Whether the specified preference is enabled.
50      */
getBoolean(@onNull String preference)51     public boolean getBoolean(@NonNull String preference) {
52         return PrefServiceJni.get().getBoolean(mNativePrefServiceAndroid, preference);
53     }
54 
55     /**
56      * @param preference The name of the preference.
57      * @param value The value the specified preference will be set to.
58      */
setBoolean(@onNull String preference, boolean value)59     public void setBoolean(@NonNull String preference, boolean value) {
60         PrefServiceJni.get().setBoolean(mNativePrefServiceAndroid, preference, value);
61     }
62 
63     /**
64      * @param preference The name of the preference.
65      * @return value The value of the specified preference.
66      */
getInteger(@onNull String preference)67     public int getInteger(@NonNull String preference) {
68         return PrefServiceJni.get().getInteger(mNativePrefServiceAndroid, preference);
69     }
70 
71     /**
72      * @param preference The name of the preference.
73      * @param value The value the specified preference will be set to.
74      */
setInteger(@onNull String preference, int value)75     public void setInteger(@NonNull String preference, int value) {
76         PrefServiceJni.get().setInteger(mNativePrefServiceAndroid, preference, value);
77     }
78 
79     /**
80      * @param preference The name of the preference.
81      * @return value The value of the specified preference.
82      */
getDouble(@onNull String preference)83     public double getDouble(@NonNull String preference) {
84         return PrefServiceJni.get().getDouble(mNativePrefServiceAndroid, preference);
85     }
86 
87     /**
88      * @param preference The name of the preference.
89      * @param value The value the specified preference will be set to.
90      */
setDouble(@onNull String preference, double value)91     public void setDouble(@NonNull String preference, double value) {
92         PrefServiceJni.get().setDouble(mNativePrefServiceAndroid, preference, value);
93     }
94 
95     /**
96      * @param preference The name of the preference.
97      * @return value The value of the specified preference.
98      */
99     @NonNull
getString(@onNull String preference)100     public String getString(@NonNull String preference) {
101         return PrefServiceJni.get().getString(mNativePrefServiceAndroid, preference);
102     }
103 
104     /**
105      * @param preference The name of the preference.
106      * @param value The value the specified preference will be set to.
107      */
setString(@onNull String preference, @NonNull String value)108     public void setString(@NonNull String preference, @NonNull String value) {
109         PrefServiceJni.get().setString(mNativePrefServiceAndroid, preference, value);
110     }
111 
112     /**
113      * @param preference The name of the preference.
114      * @return Whether the specified preference is managed.
115      */
isManagedPreference(@onNull String preference)116     public boolean isManagedPreference(@NonNull String preference) {
117         return PrefServiceJni.get().isManagedPreference(mNativePrefServiceAndroid, preference);
118     }
119 
120     /**
121      * @param preference The name of the preference
122      * @return Whether the specified preference is currently using its default value
123      * and has not been set by any higher-priority source (even with the same value).
124      */
isDefaultValuePreference(@onNull String preference)125     public boolean isDefaultValuePreference(@NonNull String preference) {
126         return PrefServiceJni.get().isDefaultValuePreference(mNativePrefServiceAndroid, preference);
127     }
128 
129     @NativeMethods
130     interface Natives {
clearPref(long nativePrefServiceAndroid, String preference)131         void clearPref(long nativePrefServiceAndroid, String preference);
132 
hasPrefPath(long nativePrefServiceAndroid, String preference)133         boolean hasPrefPath(long nativePrefServiceAndroid, String preference);
134 
getBoolean(long nativePrefServiceAndroid, String preference)135         boolean getBoolean(long nativePrefServiceAndroid, String preference);
136 
setBoolean(long nativePrefServiceAndroid, String preference, boolean value)137         void setBoolean(long nativePrefServiceAndroid, String preference, boolean value);
138 
getInteger(long nativePrefServiceAndroid, String preference)139         int getInteger(long nativePrefServiceAndroid, String preference);
140 
setInteger(long nativePrefServiceAndroid, String preference, int value)141         void setInteger(long nativePrefServiceAndroid, String preference, int value);
142 
getDouble(long nativePrefServiceAndroid, String preference)143         double getDouble(long nativePrefServiceAndroid, String preference);
144 
setDouble(long nativePrefServiceAndroid, String preference, double value)145         void setDouble(long nativePrefServiceAndroid, String preference, double value);
146 
getString(long nativePrefServiceAndroid, String preference)147         String getString(long nativePrefServiceAndroid, String preference);
148 
setString(long nativePrefServiceAndroid, String preference, String value)149         void setString(long nativePrefServiceAndroid, String preference, String value);
150 
isManagedPreference(long nativePrefServiceAndroid, String preference)151         boolean isManagedPreference(long nativePrefServiceAndroid, String preference);
152 
isDefaultValuePreference(long nativePrefServiceAndroid, String preference)153         boolean isDefaultValuePreference(long nativePrefServiceAndroid, String preference);
154     }
155 }
156