/* * Copyright (C) 2016 The Android Open Kang 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.aokp.romcontrol.fragments; import android.app.Activity; import android.app.WallpaperManager; import android.app.Fragment; import android.content.Context; import android.content.ContentResolver; import android.content.Intent; import android.net.Uri; import android.content.res.Configuration; import android.hardware.fingerprint.FingerprintManager; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; import android.preference.SwitchPreference; import android.provider.Settings; import android.view.View; import android.widget.Toast; import cyanogenmod.providers.CMSettings; import java.util.ArrayList; import java.util.List; import java.util.Map; import com.aokp.romcontrol.R; import com.aokp.romcontrol.util.Utils; import com.aokp.romcontrol.widgets.SeekBarPreferenceCham; public class LockScreenSettingsFragment extends Fragment { public LockScreenSettingsFragment() { } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getActivity().getFragmentManager().beginTransaction() .replace(R.id.container, new SettingsPreferenceFragment()) .commit(); } public static class SettingsPreferenceFragment extends PreferenceFragment implements OnPreferenceChangeListener { public SettingsPreferenceFragment() { } private static final String TAG = "LockScreenSettings"; private static final String LOCKSCREEN_MAX_NOTIF_CONFIG = "lockscreen_max_notif_cofig"; private static final String PREF_KEYGUARD_TORCH = "keyguard_toggle_torch"; private static final String FP_UNLOCK_KEYSTORE = "fp_unlock_keystore"; private ContentResolver mResolver; private FingerprintManager mFingerprintManager; private SwitchPreference mFingerprintVib; private SwitchPreference mFpKeystore; private SeekBarPreferenceCham mMaxKeyguardNotifConfig; private SwitchPreference mKeyguardTorch; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.fragment_lockscreen_settings); mResolver = getActivity().getContentResolver(); PreferenceScreen prefSet = getPreferenceScreen(); // Fingerprint vibration mFingerprintManager = (FingerprintManager) getActivity().getSystemService(Context.FINGERPRINT_SERVICE); mFingerprintVib = (SwitchPreference) prefSet.findPreference("fingerprint_success_vib"); if (!mFingerprintManager.isHardwareDetected()){ prefSet.removePreference(mFingerprintVib); } // Fingerprint unlock keystore mFpKeystore = (SwitchPreference) prefSet.findPreference("fp_unlock_keystore"); if (!mFingerprintManager.isHardwareDetected()){ prefSet.removePreference(mFpKeystore); } mMaxKeyguardNotifConfig = (SeekBarPreferenceCham) findPreference(LOCKSCREEN_MAX_NOTIF_CONFIG); int kgconf = Settings.System.getInt(mResolver, Settings.System.LOCKSCREEN_MAX_NOTIF_CONFIG, 5); mMaxKeyguardNotifConfig.setValue(kgconf); mMaxKeyguardNotifConfig.setOnPreferenceChangeListener(this); // Keyguard Torch mKeyguardTorch = (SwitchPreference) prefSet.findPreference(PREF_KEYGUARD_TORCH); if (!Utils.deviceSupportsFlashLight(getActivity())) { prefSet.removePreference(mKeyguardTorch); } setHasOptionsMenu(true); } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { ContentResolver resolver = getActivity().getContentResolver(); if (preference == mMaxKeyguardNotifConfig) { int kgconf = (Integer) newValue; Settings.System.putInt(getActivity().getContentResolver(), Settings.System.LOCKSCREEN_MAX_NOTIF_CONFIG, kgconf); return true; } return false; } @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { return super.onPreferenceTreeClick(preferenceScreen, preference); } } }