h1man5hu

Untitled

Jul 4th, 2013
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.basic.mileagecalculatorwithsettings;
  2.  
  3. import android.annotation.TargetApi;
  4. import android.content.Context;
  5. import android.content.SharedPreferences.Editor;
  6. import android.content.res.Configuration;
  7. import android.media.Ringtone;
  8. import android.media.RingtoneManager;
  9. import android.net.Uri;
  10. import android.os.Build;
  11. import android.os.Bundle;
  12. import android.preference.ListPreference;
  13. import android.preference.Preference;
  14. import android.preference.PreferenceActivity;
  15. import android.preference.PreferenceCategory;
  16. import android.preference.PreferenceFragment;
  17. import android.preference.PreferenceManager;
  18. import android.preference.RingtonePreference;
  19. import android.text.TextUtils;
  20. import android.view.MenuItem;
  21. import android.support.v4.app.NavUtils;
  22. import java.util.List;
  23.  
  24. public class SettingsActivity extends PreferenceActivity
  25. {
  26.     private static final boolean ALWAYS_SIMPLE_PREFS = false;
  27.     @Override
  28.     protected void onCreate(Bundle savedInstanceState)
  29.     {
  30.         super.onCreate(savedInstanceState);
  31.         setupActionBar();
  32.     }
  33.     @TargetApi(Build.VERSION_CODES.HONEYCOMB)
  34.     private void setupActionBar()
  35.     {
  36.         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
  37.         {
  38.             getActionBar().setDisplayHomeAsUpEnabled(true);
  39.             }
  40.     }
  41.         @Override
  42.         public boolean onOptionsItemSelected(MenuItem item)
  43.         {
  44.             switch (item.getItemId())
  45.             {
  46.             case android.R.id.home:
  47.                 NavUtils.navigateUpFromSameTask(this);
  48.                 return true;
  49.             }
  50.             return super.onOptionsItemSelected(item);
  51.         }
  52.         @Override
  53.         protected void onPostCreate(Bundle savedInstanceState)
  54.         {
  55.             super.onPostCreate(savedInstanceState);
  56.  
  57.             setupSimplePreferencesScreen();
  58.         }
  59.         private void setupSimplePreferencesScreen() {
  60.             if (!isSimplePreferences(this)) {
  61.                 return;
  62.             }
  63.             addPreferencesFromResource(R.xml.pref_general);}
  64.         @Override
  65.         public boolean onIsMultiPane()
  66.         {
  67.             return isXLargeTablet(this) && !isSimplePreferences(this);
  68.         }
  69.         private static boolean isXLargeTablet(Context context)
  70.         {
  71.             return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE;
  72.         }
  73.         private static boolean isSimplePreferences(Context context)
  74.         {
  75.             return ALWAYS_SIMPLE_PREFS
  76.                     || Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB
  77.                     || !isXLargeTablet(context);
  78.         }
  79.         @Override
  80.         @TargetApi(Build.VERSION_CODES.HONEYCOMB)
  81.         public void onBuildHeaders(List<Header> target)
  82.         {
  83.             if (!isSimplePreferences(this))
  84.             {
  85.                 //loadHeadersFromResource(R.xml.pref_headers, target);
  86.             }
  87.         }
  88.         private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() {
  89.             @Override
  90.             public boolean onPreferenceChange(Preference preference, Object value)
  91.             {
  92.                 String stringValue = value.toString();
  93.  
  94.                 if (preference instanceof ListPreference)
  95.                 {
  96.                     ListPreference listPreference = (ListPreference) preference;
  97.                     int index = listPreference.findIndexOfValue(stringValue);
  98.                     preference.setSummary(index >= 0 ? listPreference.getEntries()[index]:null);
  99.                 }
  100.                 else if (preference instanceof RingtonePreference)
  101.                 {
  102.                     if (TextUtils.isEmpty(stringValue))
  103.                     {
  104.                         //preference.setSummary(R.string.pref_ringtone_silent);
  105.                     }
  106.                     else
  107.                     {
  108.                         Ringtone ringtone = RingtoneManager.getRingtone(
  109.                                 preference.getContext(), Uri.parse(stringValue));
  110.                         if (ringtone == null)
  111.                         {preference.setSummary(null);}
  112.                         else
  113.                         {
  114.                             String name = ringtone.getTitle(preference.getContext());
  115.                             preference.setSummary(name);
  116.                         }
  117.                     }
  118.                 }
  119.                 else
  120.                 {
  121.                     preference.setSummary(stringValue);
  122.                 }
  123.                 return true;
  124.             }
  125.     };
  126.     private static void bindPreferenceSummaryToValue(Preference preference)
  127.     {
  128.         preference.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);
  129.         sBindPreferenceSummaryToValueListener.onPreferenceChange(preference,PreferenceManager.getDefaultSharedPreferences(preference.getContext()).getString(preference.getKey(),""));
  130.     }
  131.     @TargetApi(Build.VERSION_CODES.HONEYCOMB)
  132.     public static class GeneralPreferenceFragment extends PreferenceFragment
  133.     {
  134.         @Override
  135.         public void onCreate(Bundle savedInstanceState)
  136.         {
  137.             super.onCreate(savedInstanceState);
  138.             addPreferencesFromResource(R.xml.pref_general);
  139.             bindPreferenceSummaryToValue(findPreference("example_list"));
  140.             bindPreferenceSummaryToValue(findPreference("fuel_type"));
  141.             bindPreferenceSummaryToValue(findPreference("unit_type"));
  142.         }
  143.         public void onPause()
  144.         {
  145.           super.onPause();
  146.           addPreferencesFromResource(R.xml.pref_general);
  147.           bindPreferenceSummaryToValue(findPreference("example_list"));
  148.                   bindPreferenceSummaryToValue(findPreference("fuel_type"));
  149.           bindPreferenceSummaryToValue(findPreference("unit_type"));
  150.          }
  151.     }
  152. }
Advertisement
Add Comment
Please, Sign In to add comment