Loading core/java/android/preference/PreferenceFragment.java +1 −0 Original line number Diff line number Diff line Loading @@ -144,6 +144,7 @@ public abstract class PreferenceFragment extends Fragment implements public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mPreferenceManager = new PreferenceManager(getActivity(), FIRST_REQUEST_CODE); mPreferenceManager.setFragment(this); mPreferenceManager.setOnPreferenceTreeClickListener(this); } Loading core/java/android/preference/PreferenceManager.java +24 −6 Original line number Diff line number Diff line Loading @@ -16,12 +16,7 @@ package android.preference; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; Loading @@ -34,6 +29,10 @@ import android.content.res.XmlResourceParser; import android.os.Bundle; import android.util.Log; import java.util.ArrayList; import java.util.HashSet; import java.util.List; /** * Used to help create {@link Preference} hierarchies * from activities or XML. Loading @@ -60,6 +59,11 @@ public class PreferenceManager { */ private Activity mActivity; /** * Fragment that owns this instance. */ private PreferenceFragment mFragment; /** * The context to use. This should always be set. * Loading Loading @@ -159,6 +163,20 @@ public class PreferenceManager { setSharedPreferencesName(getDefaultSharedPreferencesName(context)); } /** * Sets the owning preference fragment */ void setFragment(PreferenceFragment fragment) { mFragment = fragment; } /** * Returns the owning preference fragment, if any. */ PreferenceFragment getFragment() { return mFragment; } /** * Returns a list of {@link Activity} (indirectly) that match a given * {@link Intent}. Loading core/java/android/preference/RingtonePreference.java +6 −2 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ import android.net.Uri; import android.provider.Settings.System; import android.text.TextUtils; import android.util.AttributeSet; import android.util.Log; /** * A {@link Preference} that allows the user to choose a ringtone from those on the device. Loading Loading @@ -137,8 +136,13 @@ public class RingtonePreference extends Preference implements // Launch the ringtone picker Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); onPrepareRingtonePickerIntent(intent); PreferenceFragment owningFragment = getPreferenceManager().getFragment(); if (owningFragment != null) { owningFragment.startActivityForResult(intent, mRequestCode); } else { getPreferenceManager().getActivity().startActivityForResult(intent, mRequestCode); } } /** * Prepares the intent to launch the ringtone picker. This can be modified Loading Loading
core/java/android/preference/PreferenceFragment.java +1 −0 Original line number Diff line number Diff line Loading @@ -144,6 +144,7 @@ public abstract class PreferenceFragment extends Fragment implements public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mPreferenceManager = new PreferenceManager(getActivity(), FIRST_REQUEST_CODE); mPreferenceManager.setFragment(this); mPreferenceManager.setOnPreferenceTreeClickListener(this); } Loading
core/java/android/preference/PreferenceManager.java +24 −6 Original line number Diff line number Diff line Loading @@ -16,12 +16,7 @@ package android.preference; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; Loading @@ -34,6 +29,10 @@ import android.content.res.XmlResourceParser; import android.os.Bundle; import android.util.Log; import java.util.ArrayList; import java.util.HashSet; import java.util.List; /** * Used to help create {@link Preference} hierarchies * from activities or XML. Loading @@ -60,6 +59,11 @@ public class PreferenceManager { */ private Activity mActivity; /** * Fragment that owns this instance. */ private PreferenceFragment mFragment; /** * The context to use. This should always be set. * Loading Loading @@ -159,6 +163,20 @@ public class PreferenceManager { setSharedPreferencesName(getDefaultSharedPreferencesName(context)); } /** * Sets the owning preference fragment */ void setFragment(PreferenceFragment fragment) { mFragment = fragment; } /** * Returns the owning preference fragment, if any. */ PreferenceFragment getFragment() { return mFragment; } /** * Returns a list of {@link Activity} (indirectly) that match a given * {@link Intent}. Loading
core/java/android/preference/RingtonePreference.java +6 −2 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ import android.net.Uri; import android.provider.Settings.System; import android.text.TextUtils; import android.util.AttributeSet; import android.util.Log; /** * A {@link Preference} that allows the user to choose a ringtone from those on the device. Loading Loading @@ -137,8 +136,13 @@ public class RingtonePreference extends Preference implements // Launch the ringtone picker Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); onPrepareRingtonePickerIntent(intent); PreferenceFragment owningFragment = getPreferenceManager().getFragment(); if (owningFragment != null) { owningFragment.startActivityForResult(intent, mRequestCode); } else { getPreferenceManager().getActivity().startActivityForResult(intent, mRequestCode); } } /** * Prepares the intent to launch the ringtone picker. This can be modified Loading