diff options
Diffstat (limited to 'src/com/android/settings/SettingsActivity.java')
-rw-r--r-- | src/com/android/settings/SettingsActivity.java | 26 |
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); } |