/*
* 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;
}
}