Merge "Fix for Ringtones not being saved when using Preference fragments."
This commit is contained in:
committed by
Android (Google) Code Review
commit
b723ff009e
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
*
|
||||
@@ -158,7 +162,21 @@ 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}.
|
||||
|
||||
@@ -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.
|
||||
@@ -137,7 +136,12 @@ public class RingtonePreference extends Preference implements
|
||||
// Launch the ringtone picker
|
||||
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
|
||||
onPrepareRingtonePickerIntent(intent);
|
||||
getPreferenceManager().getActivity().startActivityForResult(intent, mRequestCode);
|
||||
PreferenceFragment owningFragment = getPreferenceManager().getFragment();
|
||||
if (owningFragment != null) {
|
||||
owningFragment.startActivityForResult(intent, mRequestCode);
|
||||
} else {
|
||||
getPreferenceManager().getActivity().startActivityForResult(intent, mRequestCode);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user