Back to project page Flym.
The source code is released under:
GNU General Public License
If you think the Android project Flym listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/** * Flym/*w w w.j a v a 2 s. c o m*/ * * Copyright (c) 2012-2013 Frederic Julian * * 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 3 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/>. * * * Some parts of this software are based on "Sparse rss" under the MIT license (see * below). Please refers to the original project to identify which parts are under the * MIT license. * * Copyright (c) 2010-2012 Stefan Handschuh * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ package net.fred.feedex.fragment; import android.app.Activity; import android.content.Intent; import android.media.Ringtone; import android.media.RingtoneManager; import android.net.Uri; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; import android.text.TextUtils; import net.fred.feedex.MainApplication; import net.fred.feedex.R; import net.fred.feedex.service.RefreshService; import net.fred.feedex.utils.PrefUtils; public class GeneralPrefsFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.general_preferences); setRingtoneSummary(); Preference preference = findPreference(PrefUtils.REFRESH_ENABLED); preference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { Activity activity = getActivity(); if (activity != null) { if (Boolean.TRUE.equals(newValue)) { activity.startService(new Intent(activity, RefreshService.class)); } else { PrefUtils.putLong(PrefUtils.LAST_SCHEDULED_REFRESH, 0); activity.stopService(new Intent(activity, RefreshService.class)); } } return true; } }); preference = findPreference(PrefUtils.LIGHT_THEME); preference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { PrefUtils.putBoolean(PrefUtils.LIGHT_THEME, Boolean.TRUE.equals(newValue)); PreferenceManager.getDefaultSharedPreferences(MainApplication.getContext()).edit().commit(); // to be sure all prefs are written android.os.Process.killProcess(android.os.Process.myPid()); // Restart the app // this return statement will never be reached return true; } }); } @Override public void onResume() { // The ringtone summary text should be updated using // OnSharedPreferenceChangeListener(), but I can't get it to work. // Updating in onResume is a very simple hack that seems to work, but is inefficient. setRingtoneSummary(); super.onResume(); } private void setRingtoneSummary() { Preference ringtone_preference = findPreference(PrefUtils.NOTIFICATIONS_RINGTONE); Uri ringtoneUri = Uri.parse(PrefUtils.getString(PrefUtils.NOTIFICATIONS_RINGTONE, "")); if (TextUtils.isEmpty(ringtoneUri.toString())) { ringtone_preference.setSummary(R.string.settings_notifications_ringtone_none); } else { Ringtone ringtone = RingtoneManager.getRingtone(MainApplication.getContext(), ringtoneUri); if (ringtone == null) { ringtone_preference.setSummary(R.string.settings_notifications_ringtone_none); } else { ringtone_preference.setSummary(ringtone.getTitle(MainApplication.getContext())); } } } }