Back to project page Calma.
The source code is released under:
Apache License
If you think the Android project Calma listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* * Copyright (C) 2013 Thomas Schmid//from ww w.j ava 2 s . c o m * * 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ package com.scto.android.calma.activities.preferences; import android.app.ActionBar; import android.app.Fragment; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.preference.PreferenceActivity; import android.util.Log; import android.view.MenuItem; import android.view.View; import android.widget.TextView; /* import android.content.Intent; import android.content.BroadcastReceiver; import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Bundle; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceActivity; import android.preference.PreferenceFragment; import android.preference.CheckBoxPreference; import android.preference.ListPreference; import android.util.Log; import android.view.MenuItem; */ import com.scto.android.calma.R; import com.scto.android.calma.preferences.CalmaSettings; import com.scto.android.calma.utils.CalmaUtils; import com.scto.android.calma.utils.PreferenceUtils; import java.util.List; public class SettingsActivity extends PreferenceActivity { private static final String TAG = "SettingsActivity"; //$NON-NLS-1$ private static final boolean DEBUG = false; private TextView mTitle; private final BroadcastReceiver mNotificationReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent != null) { if (intent.getAction().compareTo(CalmaSettings.INTENT_THEME_CHANGED) == 0) { finish(); } } } }; /** * {@inheritDoc} */ @Override protected void onCreate(Bundle savedInstanceState) { if (DEBUG) { Log.d(TAG, "SettingsActivity.onCreate"); //$NON-NLS-1$ } // Set the theme setTheme(new PreferenceUtils(this).getTheme()); // Register the broadcast receiver IntentFilter filter = new IntentFilter(); filter.addAction(CalmaSettings.INTENT_THEME_CHANGED); registerReceiver(this.mNotificationReceiver, filter); // Fade it in overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); //Initialize action bars getActionBar().setDisplayHomeAsUpEnabled(true); super.onCreate(savedInstanceState); } /** * {@inheritDoc} */ @Override protected void onDestroy() { if (DEBUG) { Log.d(TAG, "SettingsActivity.onDestroy"); //$NON-NLS-1$ } // Unregister the receiver try { unregisterReceiver(this.mNotificationReceiver); } catch (Throwable ex) { /**NON BLOCK**/ } //All destroy. Continue super.onDestroy(); } /** * {@inheritDoc} */ @Override public void onBuildHeaders(List<Header> target) { loadHeadersFromResource(R.xml.preferences_headers, target); } /** * {@inheritDoc} */ @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); return true; default: return super.onOptionsItemSelected(item); } } /** * {@inheritDoc} */ @Override public void onAttachFragment(Fragment fragment) { super.onAttachFragment(fragment); if (!CalmaUtils.isTablet(this) && fragment instanceof TitlePreferenceFragment) { this.mTitle.setText(((TitlePreferenceFragment)fragment).getTitle()); } else { this.mTitle.setText(R.string.pref); } } public static class GeekyPreferences extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.geeky_prefs); // Access mode this.mAccessMode = (ListPreference)findPreference(CalmaSettings.SETTINGS_ACCESS_MODE.getId()); this.mAccessMode.setOnPreferenceChangeListener(this.mOnChangeListener); defaultValue = ((ObjectStringIdentifier)CalmaSettings.SETTINGS_ACCESS_MODE.getDefaultValue()).getId(); value = Preferences.getSharedPreferences().getString(CalmaSettings.SETTINGS_ACCESS_MODE.getId(),defaultValue); this.mOnChangeListener.onPreferenceChange(this.mAccessMode, value); // If device is not rooted, this setting cannot be changed this.mAccessMode.setEnabled(CalmaApp.isDeviceRooted()); // Capture Debug traces this.mDebugTraces = (CheckBoxPreference)findPreference(CalmaSettings.SETTINGS_SHOW_TRACES.getId()); this.mDebugTraces.setOnPreferenceChangeListener(this.mOnChangeListener); // Loaded this.mLoaded = true; // Access mode final Preference mRootMode = findPreference("root_mode"); mRootMode.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(final Preference preference, Object newValue) { return true; } }); } } public static class ViewPreferences extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.view_prefs); } } public static class AboutPreferences extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.about_prefs); // About final Preference mOpenSourceLicenses = findPreference("open_source"); mOpenSourceLicenses.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(final Preference preference) { CalmaUtils.createOpenSourceDialog(getActivity()).show(); return true; } }); try { final PackageInfo packageInfo = getActivity().getPackageManager().getPackageInfo(getActivity().getPackageName(), 0); findPreference("version").setSummary(packageInfo.versionName); } catch (final NameNotFoundException e) { findPreference("version").setSummary("?"); } Preference share = findPreference("pref_opt_share"); share.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { final Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); String text = getString(R.string.share_text); intent.putExtra(Intent.EXTRA_TEXT, text); intent.putExtra(Intent.EXTRA_SUBJECT, "Calma"); startActivity(Intent.createChooser(intent,getString(R.string.share_via))); return true; } }); } } }