/* * Copyright (C) 2016 The CyanogenMod Project * (C) 2017-2019 The LineageOS 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 org.lineageos.settings.device; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.UserHandle; import androidx.preference.PreferenceManager; import androidx.preference.SwitchPreferenceCompat; public class Utils { public static boolean isPreferenceEnabled(Context context, String key) { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); return preferences.getBoolean(key, (Boolean) Constants.sNodeDefaultMap.get(key)); } public static String getPreferenceString(Context context, String key) { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); return preferences.getString(key, (String) Constants.sNodeDefaultMap.get(key)); } public static void updateDependentPreference(Context context, SwitchPreferenceCompat b, String key, boolean shouldSetEnabled) { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); boolean prefActualValue = preferences.getBoolean(key, false); if (shouldSetEnabled) { if (Constants.sNodeUserSetValuesMap.get(key) != null && (Boolean) Constants.sNodeUserSetValuesMap.get(key)[1] && (Boolean) Constants.sNodeUserSetValuesMap.get(key)[1] != prefActualValue) { b.setChecked(true); Constants.sNodeUserSetValuesMap.put(key, new Boolean[]{ prefActualValue, false }); } } else { if (b.isEnabled() && prefActualValue) { Constants.sNodeUserSetValuesMap.put(key, new Boolean[]{ prefActualValue, true }); } b.setEnabled(false); b.setChecked(false); } } public static void broadcastCustIntent(Context context, boolean value) { final Intent intent = new Intent(Constants.CUST_INTENT); intent.putExtra(Constants.CUST_INTENT_EXTRA, value); context.sendBroadcastAsUser(intent, UserHandle.CURRENT); } }