summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/systemui/util/DeviceConfigProxy.java
blob: 6b5556b3ea9135c4ab27c28b378fc42e044c1b08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/*
 * Copyright (C) 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.systemui.util;

import android.annotation.CallbackExecutor;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
import android.provider.DeviceConfig;
import android.provider.Settings;

import com.android.systemui.dagger.SysUISingleton;

import java.util.concurrent.Executor;

import javax.inject.Inject;

/**
 * Wrapper around DeviceConfig useful for testing.
 */
@SysUISingleton
public class DeviceConfigProxy {

    @Inject
    public DeviceConfigProxy() {
    }

    /**
     * Wrapped version of {@link DeviceConfig#addOnPropertiesChangedListener}.
     */
    public void addOnPropertiesChangedListener(
            @NonNull String namespace,
            @NonNull @CallbackExecutor Executor executor,
            @NonNull DeviceConfig.OnPropertiesChangedListener onPropertiesChangedListener) {
        DeviceConfig.addOnPropertiesChangedListener(
                namespace, executor, onPropertiesChangedListener);
    }

    /**
     * Wrapped version of {@link DeviceConfig#enforceReadPermission}.
     */
    public void enforceReadPermission(Context context, String namespace) {
        DeviceConfig.enforceReadPermission(context, namespace);
    }

    /**
     * Wrapped version of {@link DeviceConfig#getBoolean}.
     */
    public boolean getBoolean(
            @NonNull String namespace, @NonNull String name, boolean defaultValue) {
        return DeviceConfig.getBoolean(namespace, name, defaultValue);
    }

    /**
     * Wrapped version of {@link DeviceConfig#getFloat}.
     */
    public float getFloat(
            @NonNull String namespace, @NonNull String name, float defaultValue) {
        return DeviceConfig.getFloat(namespace, name, defaultValue);
    }

    /**
     * Wrapped version of {@link DeviceConfig#getInt}.
     */
    public int getInt(@NonNull String namespace, @NonNull String name, int defaultValue) {
        return DeviceConfig.getInt(namespace, name, defaultValue);
    }

    /**
     * Wrapped version of {@link DeviceConfig#getLong}.
     */
    public long getLong(@NonNull String namespace, @NonNull String name, long defaultValue) {
        return DeviceConfig.getLong(namespace, name, defaultValue);

    }

    /**
     * Wrapped version of {@link DeviceConfig#getProperty}.
     */
    public String getProperty(@NonNull String namespace, @NonNull String name) {
        return DeviceConfig.getProperty(namespace, name);
    }

    /**
     * Wrapped version of {@link DeviceConfig#getString}.
     */
    public String getString(
            @NonNull String namespace, @NonNull String name, @Nullable String defaultValue) {
        return DeviceConfig.getString(namespace, name, defaultValue);
    }

    /**
     * Wrapped version of {@link DeviceConfig#removeOnPropertiesChangedListener}.
     *
     * Like {@link #addOnPropertiesChangedListener}, this operates on a callback type that
     * wraps the original callback type provided by {@link DeviceConfig}.
     */
    public void removeOnPropertiesChangedListener(
            @NonNull DeviceConfig.OnPropertiesChangedListener onPropertiesChangedListener) {
        DeviceConfig.removeOnPropertiesChangedListener(onPropertiesChangedListener);
    }

    /**
     * Wrapped version of {@link DeviceConfig#resetToDefaults}.
     */
    public void resetToDefaults(@Settings.ResetMode int resetMode,
            @Nullable String namespace) {
        DeviceConfig.resetToDefaults(resetMode, namespace);
    }

    /**
     * Wrapped version of {@link DeviceConfig#setProperty}.
     */
    public boolean setProperty(
            @NonNull String namespace,
            @NonNull String name,
            @Nullable String value,
            boolean makeDefault) {
        return DeviceConfig.setProperty(namespace, name, value, makeDefault);
    }
}