summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/SettingsActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/settings/SettingsActivity.java')
-rw-r--r--src/com/android/settings/SettingsActivity.java26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 7cdf781..0680762 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -84,6 +84,7 @@ import com.android.settings.dashboard.SearchResultsSummary;
import com.android.settings.deviceinfo.Memory;
import com.android.settings.deviceinfo.UsbSettings;
import com.android.settings.fuelgauge.PowerUsageSummary;
+import com.android.settings.search.DynamicIndexableContentMonitor;
import com.android.settings.search.Index;
import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
import com.android.settings.inputmethod.KeyboardLayoutPickerFragment;
@@ -146,6 +147,11 @@ public class SettingsActivity extends Activity
public static final String EXTRA_SHOW_FRAGMENT_ARGUMENTS = ":settings:show_fragment_args";
/**
+ * Fragment "key" argument passed thru {@link #EXTRA_SHOW_FRAGMENT_ARGUMENTS}
+ */
+ public static final String EXTRA_FRAGMENT_ARG_KEY = ":settings:fragment_args_key";
+
+ /**
* When starting this activity, the invoking Intent can contain this extra
* boolean that the header list should not be displayed. This is most often
* used in conjunction with {@link #EXTRA_SHOW_FRAGMENT} to launch
@@ -299,6 +305,9 @@ public class SettingsActivity extends Activity
}
};
+ private final DynamicIndexableContentMonitor mDynamicIndexableContentMonitor =
+ new DynamicIndexableContentMonitor();
+
private Button mNextButton;
private ActionBar mActionBar;
private boolean mDisplayHomeAsUpEnabled;
@@ -403,7 +412,6 @@ public class SettingsActivity extends Activity
if (getIntent().hasExtra(EXTRA_UI_OPTIONS)) {
getWindow().setUiOptions(getIntent().getIntExtra(EXTRA_UI_OPTIONS, 0));
}
-
Index.getInstance(this).update();
mAuthenticatorHelper = new AuthenticatorHelper();
@@ -461,6 +469,7 @@ public class SettingsActivity extends Activity
final String initialTitle = getIntent().getStringExtra(EXTRA_SHOW_FRAGMENT_TITLE);
mInitialTitle = (initialTitle != null) ? initialTitle : getTitle();
setTitle(mInitialTitle);
+
switchToFragment( initialFragmentName, initialArguments, true, false,
mInitialTitle, false);
} else {
@@ -605,6 +614,8 @@ public class SettingsActivity extends Activity
invalidateHeaders();
registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+
+ mDynamicIndexableContentMonitor.register(this);
}
@Override
@@ -619,6 +630,8 @@ public class SettingsActivity extends Activity
mDevelopmentPreferencesListener);
mDevelopmentPreferencesListener = null;
+
+ mDynamicIndexableContentMonitor.unregister();
}
@Override
@@ -654,12 +667,6 @@ public class SettingsActivity extends Activity
header.getTitle(getResources()));
} else if (header.intent != null) {
startActivity(header.intent);
- } else {
- String title = header.getTitle(getResources()).toString();
- Log.e(LOG_TAG, "Can't switch to header that has no Fragment nor Intent. Title: " +
- title + " Position: " + position);
- throw new IllegalStateException(
- "Can't switch to header that has no Fragment nor Intent");
}
}
@@ -740,8 +747,11 @@ public class SettingsActivity extends Activity
String title;
if (titleRes > 0) {
title = getString(titleRes);
- } else {
+ } else if (titleText != null) {
title = titleText.toString();
+ } else {
+ // There not much we can do in that case
+ title = "";
}
startWithFragment(fragmentClass, args, resultTo, resultRequestCode, title);
}