1 /*
2  * Copyright (C) 2024 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.systemui.flags
18 
19 import com.android.systemui.dagger.SysUISingleton
20 import dagger.Binds
21 import dagger.Module
22 import javax.inject.Inject
23 
24 @SysUISingleton
25 class FakeSystemPropertiesHelper @Inject constructor() : SystemPropertiesHelper() {
26     private val fakeProperties = mutableMapOf<String, Any>()
27 
getnull28     override fun get(name: String): String {
29         return fakeProperties[name] as String
30     }
31 
getnull32     override fun get(name: String, def: String?): String {
33         return checkNotNull(fakeProperties[name] as String? ?: def)
34     }
35 
getBooleannull36     override fun getBoolean(name: String, default: Boolean): Boolean {
37         return fakeProperties[name] as Boolean? ?: default
38     }
39 
setBooleannull40     override fun setBoolean(name: String, value: Boolean) {
41         fakeProperties[name] = value
42     }
43 
setnull44     override fun set(name: String, value: String) {
45         fakeProperties[name] = value
46     }
47 
setnull48     override fun set(name: String, value: Int) {
49         fakeProperties[name] = value
50     }
51 
erasenull52     override fun erase(name: String) {
53         fakeProperties.remove(name)
54     }
55 }
56 
57 @Module
58 interface FakeSystemPropertiesHelperModule {
bindFakenull59     @Binds fun bindFake(fake: FakeSystemPropertiesHelper): SystemPropertiesHelper
60 }
61