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.content.res.Resources; import android.os.Bundle; import android.os.SystemProperties; import android.os.UserHandle; import android.support.v7.preference.ListPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; import android.support.v7.preference.Preference.OnPreferenceChangeListener; import android.support.v14.preference.SwitchPreference; import android.provider.Settings; import com.android.settings.R; import java.util.Arrays; import java.util.HashSet; import com.android.settings.SettingsPreferenceFragment; public class RecentsSettings extends SettingsPreferenceFragment implements OnPreferenceChangeListener { private static final String IMMERSIVE_RECENTS = "immersive_recents"; private static final String RECENTS_CLEAR_ALL_LOCATION = "recents_clear_all_location"; private ListPreference mRecentsClearAllLocation; private SwitchPreference mRecentsClearAll; private ListPreference mImmersiveRecents; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.nitrogen_settings_recents); ContentResolver resolver = getActivity().getContentResolver(); mImmersiveRecents = (ListPreference) findPreference(IMMERSIVE_RECENTS); mImmersiveRecents.setValue(String.valueOf(Settings.System.getInt( resolver, Settings.System.IMMERSIVE_RECENTS, 0))); mImmersiveRecents.setSummary(mImmersiveRecents.getEntry()); mImmersiveRecents.setOnPreferenceChangeListener(this); // clear all recents mRecentsClearAllLocation = (ListPreference) findPreference(RECENTS_CLEAR_ALL_LOCATION); int location = Settings.System.getIntForUser(resolver, Settings.System.RECENTS_CLEAR_ALL_LOCATION, 3, UserHandle.USER_CURRENT); mRecentsClearAllLocation.setValue(String.valueOf(location)); mRecentsClearAllLocation.setSummary(mRecentsClearAllLocation.getEntry()); mRecentsClearAllLocation.setOnPreferenceChangeListener(this); } @Override public boolean onPreferenceChange(Preference preference, Object objValue) { if (preference == mImmersiveRecents) { Settings.System.putInt(getContentResolver(), Settings.System.IMMERSIVE_RECENTS, Integer.valueOf((String) objValue)); mImmersiveRecents.setValue(String.valueOf(objValue)); mImmersiveRecents.setSummary(mImmersiveRecents.getEntry()); return true; } else if (preference == mRecentsClearAllLocation) { int location = Integer.valueOf((String) objValue); int index = mRecentsClearAllLocation.findIndexOfValue((String) objValue); Settings.System.putIntForUser(getActivity().getContentResolver(), Settings.System.RECENTS_CLEAR_ALL_LOCATION, location, UserHandle.USER_CURRENT); mRecentsClearAllLocation.setSummary(mRecentsClearAllLocation.getEntries()[index]); return true; } return false; } @Override protected int getMetricsCategory() { return MetricsEvent.NITROGEN_SETTINGS; } }