View difference between Paste ID: QBCQw2sV and vHYyFELM
SHOW: | | - or go back to the newest paste.
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
}