Fix SettingsPreferenceFragment.startFragment()
- was always passing R.string.lock_settings_picker_title as a title res
Change-Id: Iab47ef3da00e91d5ce3b6dc50c50c943bd78b08f
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index eb2bea9..8661956 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -16,6 +16,7 @@
package com.android.settings;
+import android.app.Activity;
import android.app.Dialog;
import android.app.DialogFragment;
import android.app.Fragment;
@@ -27,6 +28,7 @@
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.preference.Preference;
+import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
import android.preference.PreferenceGroupAdapter;
import android.text.TextUtils;
@@ -35,7 +37,6 @@
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
-import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
@@ -452,19 +453,23 @@
getActivity().onBackPressed();
}
- public boolean startFragment(
- Fragment caller, String fragmentClass, int requestCode, Bundle extras) {
- if (getActivity() instanceof SettingsActivity) {
- SettingsActivity sa = (SettingsActivity) getActivity();
- sa.startPreferencePanel(fragmentClass, extras,
- R.string.lock_settings_picker_title, null, caller, requestCode);
+ public boolean startFragment(Fragment caller, String fragmentClass, int titleRes,
+ int requestCode, Bundle extras) {
+ final Activity activity = getActivity();
+ if (activity instanceof SettingsActivity) {
+ SettingsActivity sa = (SettingsActivity) activity;
+ sa.startPreferencePanel(fragmentClass, extras, titleRes, null, caller, requestCode);
+ return true;
+ } else if (activity instanceof PreferenceActivity) {
+ PreferenceActivity sa = (PreferenceActivity) activity;
+ sa.startPreferencePanel(fragmentClass, extras, titleRes, null, caller, requestCode);
return true;
} else {
- Log.w(TAG, "Parent isn't Settings activity, thus there's no way to launch the "
- + "given Fragment (name: " + fragmentClass + ", requestCode: " + requestCode
- + ")");
+ Log.w(TAG,
+ "Parent isn't SettingsActivity nor PreferenceActivity, thus there's no way to "
+ + "launch the given Fragment (name: " + fragmentClass
+ + ", requestCode: " + requestCode + ")");
return false;
}
}
-
}