| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371 |
- package com.usai.apex;
- import android.annotation.TargetApi;
- import android.content.Context;
- import android.content.res.Configuration;
- import android.media.Ringtone;
- import android.media.RingtoneManager;
- import android.net.Uri;
- import android.os.Build;
- import android.os.Bundle;
- import android.preference.ListPreference;
- import android.preference.Preference;
- import android.preference.PreferenceActivity;
- import android.preference.PreferenceCategory;
- import android.preference.PreferenceFragment;
- import android.preference.PreferenceManager;
- import android.preference.RingtonePreference;
- import android.text.TextUtils;
- import java.util.List;
- /**
- * A {@link PreferenceActivity} that presents a set of application settings. On
- * handset devices, settings are presented as a single list. On tablets,
- * settings are split by category, with category headers shown to the left of
- * the list of settings.
- * <p>
- * See <a href="http://developer.android.com/design/patterns/settings.html">
- * Android Design: Settings</a> for design guidelines and the <a
- * href="http://developer.android.com/guide/topics/ui/settings.html">Settings
- * API Guide</a> for more information on developing a Settings UI.
- */
- public class SettingsActivity extends PreferenceActivity
- {
- /**
- * Determines whether to always show the simplified settings UI, where
- * settings are presented in a single list. When false, settings are shown
- * as a master/detail two-pane view on tablets. When true, a single pane is
- * shown on tablets.
- */
- // private static final boolean ALWAYS_SIMPLE_PREFS = false;
- //
- // @Override
- // protected void onPostCreate(Bundle savedInstanceState)
- // {
- // super.onPostCreate(savedInstanceState);
- //
- //
- // }
- @Override
- protected void onCreate(Bundle savedInstanceState)
- {
-
- super.onCreate(savedInstanceState);
- setupSimplePreferencesScreen();
-
- }
- /**
- * Shows the simplified settings UI if the device configuration if the
- * device configuration dictates that a simplified, single-pane UI should be
- * shown.
- */
- private void setupSimplePreferencesScreen()
- {
- // if (!isSimplePreferences(this))
- // {
- // return;
- // }
- getPreferenceManager().setSharedPreferencesName("setting");
- // In the simplified UI, fragments are not used at all and we instead
- // use the older PreferenceActivity APIs.
- // Add 'general' preferences.
- addPreferencesFromResource(R.xml.setting);
- // // Add 'notifications' preferences, and a corresponding header.
- // PreferenceCategory fakeHeader = new PreferenceCategory(this);
- // fakeHeader.setTitle(R.string.pref_header_notifications);
- // getPreferenceScreen().addPreference(fakeHeader);
- // addPreferencesFromResource(R.xml.pref_notification);
- //
- // // Add 'data and sync' preferences, and a corresponding header.
- // fakeHeader = new PreferenceCategory(this);
- // fakeHeader.setTitle(R.string.pref_header_data_sync);
- // getPreferenceScreen().addPreference(fakeHeader);
- // addPreferencesFromResource(R.xml.pref_data_sync);
- //
- // // Bind the summaries of EditText/List/Dialog/Ringtone preferences to
- // // their values. When their values change, their summaries are updated
- // // to reflect the new value, per the Android Design guidelines.
- // bindPreferenceSummaryToValue(findPreference("example_text"));
- // bindPreferenceSummaryToValue(findPreference("example_list"));
- // bindPreferenceSummaryToValue(findPreference("notifications_new_message_ringtone"));
- // bindPreferenceSummaryToValue(findPreference("sync_frequency"));
- }
- // /** {@inheritDoc} */
- // @Override
- // public boolean onIsMultiPane()
- // {
- // return isXLargeTablet(this) && !isSimplePreferences(this);
- // }
- /**
- * Helper method to determine if the device has an extra-large screen. For
- * example, 10" tablets are extra-large.
- */
- // private static boolean isXLargeTablet(Context context)
- // {
- // return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE;
- // }
- /**
- * Determines whether the simplified settings UI should be shown. This is
- * true if this is forced via {@link #ALWAYS_SIMPLE_PREFS}, or the device
- * doesn't have newer APIs like {@link PreferenceFragment}, or the device
- * doesn't have an extra-large screen. In these cases, a single-pane
- * "simplified" settings UI should be shown.
- */
- // private static boolean isSimplePreferences(Context context)
- // {
- // return ALWAYS_SIMPLE_PREFS
- // || Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB
- // || !isXLargeTablet(context);
- // }
- // /** {@inheritDoc} */
- // @Override
- // @TargetApi(Build.VERSION_CODES.HONEYCOMB)
- // public void onBuildHeaders(List<Header> target)
- // {
- // if (!isSimplePreferences(this))
- // {
- // loadHeadersFromResource(R.xml.pref_headers, target);
- // }
- // }
- /**
- * A preference value change listener that updates the preference's summary
- * to reflect its new value.
- */
- // private static Preference.OnPreferenceChangeListener
- // sBindPreferenceSummaryToValueListener = new
- // Preference.OnPreferenceChangeListener()
- // {
- // @Override
- // public boolean onPreferenceChange(
- // Preference preference,
- // Object value)
- // {
- // String stringValue = value
- // .toString();
- //
- // if (preference instanceof ListPreference)
- // {
- // // For
- // // list
- // // preferences,
- // // look
- // // up
- // // the
- // // correct
- // // display
- // // value
- // // in
- // // the
- // // preference's
- // // 'entries'
- // // list.
- // ListPreference listPreference = (ListPreference) preference;
- // int index = listPreference
- // .findIndexOfValue(stringValue);
- //
- // // Set
- // // the
- // // summary
- // // to
- // // reflect
- // // the
- // // new
- // // value.
- // preference
- // .setSummary(index >= 0 ? listPreference
- // .getEntries()[index]
- // : null);
- //
- // }
- // else if (preference instanceof RingtonePreference)
- // {
- // // For
- // // ringtone
- // // preferences,
- // // look
- // // up
- // // the
- // // correct
- // // display
- // // value
- // // using
- // // RingtoneManager.
- // if (TextUtils
- // .isEmpty(stringValue))
- // {
- // // Empty
- // // values
- // // correspond
- // // to
- // // 'silent'
- // // (no
- // // ringtone).
- // preference
- // .setSummary(R.string.pref_ringtone_silent);
- //
- // }
- // else
- // {
- // Ringtone ringtone = RingtoneManager
- // .getRingtone(
- // preference
- // .getContext(),
- // Uri.parse(stringValue));
- //
- // if (ringtone == null)
- // {
- // // Clear
- // // the
- // // summary
- // // if
- // // there
- // // was
- // // a
- // // lookup
- // // error.
- // preference
- // .setSummary(null);
- // }
- // else
- // {
- // // Set
- // // the
- // // summary
- // // to
- // // reflect
- // // the
- // // new
- // // ringtone
- // // display
- // // name.
- // String name = ringtone
- // .getTitle(preference
- // .getContext());
- // preference
- // .setSummary(name);
- // }
- // }
- //
- // }
- // else
- // {
- // // For
- // // all
- // // other
- // // preferences,
- // // set
- // // the
- // // summary
- // // to
- // // the
- // // value's
- // // simple
- // // string
- // // representation.
- // preference
- // .setSummary(stringValue);
- // }
- // return true;
- // }
- // };
- /**
- * Binds a preference's summary to its value. More specifically, when the
- * preference's value is changed, its summary (line of text below the
- * preference title) is updated to reflect the value. The summary is also
- * immediately updated upon calling this method. The exact display format is
- * dependent on the type of preference.
- *
- * @see #sBindPreferenceSummaryToValueListener
- */
- // private static void bindPreferenceSummaryToValue(Preference preference)
- // {
- // // Set the listener to watch for value changes.
- // preference
- // .setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);
- //
- // // Trigger the listener immediately with the preference's
- // // current value.
- // sBindPreferenceSummaryToValueListener.onPreferenceChange(
- // preference,
- // PreferenceManager.getDefaultSharedPreferences(
- // preference.getContext()).getString(preference.getKey(),
- // ""));
- // }
- /**
- * This fragment shows general preferences only. It is used when the
- * activity is showing a two-pane settings UI.
- */
- // @TargetApi(Build.VERSION_CODES.HONEYCOMB)
- // public static class GeneralPreferenceFragment extends PreferenceFragment
- // {
- // @Override
- // public void onCreate(Bundle savedInstanceState)
- // {
- // super.onCreate(savedInstanceState);
- // addPreferencesFromResource(R.xml.pref_general);
- //
- // // Bind the summaries of EditText/List/Dialog/Ringtone preferences
- // // to their values. When their values change, their summaries are
- // // updated to reflect the new value, per the Android Design
- // // guidelines.
- // bindPreferenceSummaryToValue(findPreference("example_text"));
- // bindPreferenceSummaryToValue(findPreference("example_list"));
- // }
- // }
- /**
- * This fragment shows notification preferences only. It is used when the
- * activity is showing a two-pane settings UI.
- */
- // @TargetApi(Build.VERSION_CODES.HONEYCOMB)
- // public static class NotificationPreferenceFragment extends
- // PreferenceFragment
- // {
- // @Override
- // public void onCreate(Bundle savedInstanceState)
- // {
- // super.onCreate(savedInstanceState);
- // addPreferencesFromResource(R.xml.pref_notification);
- //
- // // Bind the summaries of EditText/List/Dialog/Ringtone preferences
- // // to their values. When their values change, their summaries are
- // // updated to reflect the new value, per the Android Design
- // // guidelines.
- // bindPreferenceSummaryToValue(findPreference("notifications_new_message_ringtone"));
- // }
- // }
- /**
- * This fragment shows data and sync preferences only. It is used when the
- * activity is showing a two-pane settings UI.
- */
- // @TargetApi(Build.VERSION_CODES.HONEYCOMB)
- // public static class DataSyncPreferenceFragment extends PreferenceFragment
- // {
- // @Override
- // public void onCreate(Bundle savedInstanceState)
- // {
- // super.onCreate(savedInstanceState);
- // addPreferencesFromResource(R.xml.pref_data_sync);
- //
- // // Bind the summaries of EditText/List/Dialog/Ringtone preferences
- // // to their values. When their values change, their summaries are
- // // updated to reflect the new value, per the Android Design
- // // guidelines.
- // bindPreferenceSummaryToValue(findPreference("sync_frequency"));
- // }
- // }
- }
|