/* * Copyright (C) 2015 The OmniROM Project * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ package com.nitrogen.settings.fragments; import com.android.internal.logging.MetricsProto.MetricsEvent; import android.app.Activity; import android.content.Context; import android.content.ContentResolver; import android.app.WallpaperManager; import android.content.Intent; import android.content.res.Resources; import android.hardware.fingerprint.FingerprintManager; import android.net.Uri; import android.os.Bundle; import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.ListPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceCategory; import android.support.v7.preference.PreferenceScreen; import android.provider.Settings; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; public class LockScreenSettings extends SettingsPreferenceFragment implements Preference.OnPreferenceChangeListener { private static final String LOCK_CLOCK_FONTS = "lock_clock_fonts"; private static final String LOCKSCREEN_CHARGING = "lockscreen_battery_info"; private static final String FINGERPRINT_VIB = "fingerprint_success_vib"; private static final String FP_UNLOCK_KEYSTORE = "fp_unlock_keystore"; private ListPreference mLockClockFonts; private SwitchPreference mLockscreenCharging; private SwitchPreference mFingerprintVib; private SwitchPreference mFpKeystore; private FingerprintManager mFingerprintManager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.nitrogen_settings_lockscreen); ContentResolver resolver = getActivity().getContentResolver(); final PreferenceScreen prefScreen = getPreferenceScreen(); Resources resources = getResources(); mLockClockFonts = (ListPreference) findPreference(LOCK_CLOCK_FONTS); mLockClockFonts.setValue(String.valueOf(Settings.System.getInt( resolver, Settings.System.LOCK_CLOCK_FONTS, 4))); mLockClockFonts.setSummary(mLockClockFonts.getEntry()); mLockClockFonts.setOnPreferenceChangeListener(this); mLockscreenCharging = (SwitchPreference) findPreference(LOCKSCREEN_CHARGING); if (!resources.getBoolean(R.bool.showCharging)) { prefScreen.removePreference(mLockscreenCharging); } else { mLockscreenCharging.setChecked((Settings.System.getInt(getContentResolver(), Settings.System.LOCKSCREEN_BATTERY_INFO, 0) == 1)); mLockscreenCharging.setOnPreferenceChangeListener(this); } mFingerprintManager = (FingerprintManager) getActivity().getSystemService(Context.FINGERPRINT_SERVICE); mFingerprintVib = (SwitchPreference) findPreference(FINGERPRINT_VIB); mFpKeystore = (SwitchPreference) findPreference(FP_UNLOCK_KEYSTORE); if (!mFingerprintManager.isHardwareDetected()){ prefScreen.removePreference(mFingerprintVib); prefScreen.removePreference(mFpKeystore); } else { mFingerprintVib.setChecked((Settings.System.getInt(getContentResolver(), Settings.System.FINGERPRINT_SUCCESS_VIB, 1) == 1)); mFingerprintVib.setOnPreferenceChangeListener(this); mFpKeystore.setChecked((Settings.System.getInt(getContentResolver(), Settings.System.FP_UNLOCK_KEYSTORE, 0) == 1)); mFpKeystore.setOnPreferenceChangeListener(this); } } public boolean onPreferenceChange(Preference preference, Object newValue) { ContentResolver resolver = getActivity().getContentResolver(); if (preference == mLockClockFonts) { Settings.System.putInt(resolver, Settings.System.LOCK_CLOCK_FONTS, Integer.valueOf((String) newValue)); mLockClockFonts.setValue(String.valueOf(newValue)); mLockClockFonts.setSummary(mLockClockFonts.getEntry()); return true; } else if (preference == mLockscreenCharging) { boolean value = (Boolean) newValue; Settings.System.putInt(getActivity().getContentResolver(), Settings.System.LOCKSCREEN_BATTERY_INFO, value ? 1 : 0); return true; } else if (preference == mFingerprintVib) { boolean value = (Boolean) newValue; Settings.System.putInt(getActivity().getContentResolver(), Settings.System.FINGERPRINT_SUCCESS_VIB, value ? 1 : 0); return true; } else if (preference == mFpKeystore) { boolean value = (Boolean) newValue; Settings.System.putInt(getActivity().getContentResolver(), Settings.System.FP_UNLOCK_KEYSTORE, value ? 1 : 0); return true; } return false; } @Override protected int getMetricsCategory() { return MetricsEvent.NITROGEN_SETTINGS; } }