OSDN Git Service

Overhaul vibrate and silent settings to match hard keys.
[android-x86/packages-apps-Settings.git] / src / com / android / settings / Settings.java
index c630ee2..c9f5c73 100644 (file)
@@ -28,7 +28,9 @@ import android.content.pm.ActivityInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.os.Bundle;
+import android.preference.Preference;
 import android.preference.PreferenceActivity;
+import android.preference.PreferenceFragment;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -61,7 +63,7 @@ public class Settings extends PreferenceActivity implements ButtonBarHandler {
     private static final String META_DATA_KEY_PARENT_FRAGMENT_CLASS =
         "com.android.settings.PARENT_FRAGMENT_CLASS";
 
-    private static final String EXTRA_THEME = "settings:theme";
+    private static final String EXTRA_CLEAR_UI_OPTIONS = "settings:remove_ui_options";
 
     private static final String SAVE_KEY_CURRENT_HEADER = "com.android.settings.CURRENT_HEADER";
     private static final String SAVE_KEY_PARENT_HEADER = "com.android.settings.PARENT_HEADER";
@@ -80,9 +82,9 @@ public class Settings extends PreferenceActivity implements ButtonBarHandler {
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
-        final int theme = getIntent().getIntExtra(
-                EXTRA_THEME, android.R.style.Theme_Holo_SplitActionBarWhenNarrow);
-        setTheme(theme);
+        if (getIntent().getBooleanExtra(EXTRA_CLEAR_UI_OPTIONS, false)) {
+            getWindow().setUiOptions(0);
+        }
 
         getMetaData();
         mInLocalHeaderSwitch = true;
@@ -188,6 +190,7 @@ public class Settings extends PreferenceActivity implements ButtonBarHandler {
                 mCurrentHeader = parentHeader;
 
                 switchToHeaderLocal(parentHeader);
+                highlightHeader();
 
                 mParentHeader = new Header();
                 mParentHeader.fragment
@@ -215,6 +218,7 @@ public class Settings extends PreferenceActivity implements ButtonBarHandler {
             Integer index = mHeaderIndexMap.get(mTopLevelHeaderId);
             if (index != null) {
                 getListView().setItemChecked(index, true);
+                getListView().smoothScrollToPosition(index);
             }
         }
     }
@@ -286,12 +290,12 @@ public class Settings extends PreferenceActivity implements ButtonBarHandler {
         Intent intent = super.onBuildStartFragmentIntent(fragmentName, args,
                 titleRes, shortTitleRes);
 
-        // some fragments would like a custom activity theme
+        // some fragments want to avoid split actionbar
         if (DataUsageSummary.class.getName().equals(fragmentName) ||
                 PowerUsageSummary.class.getName().equals(fragmentName) ||
                 AccountSyncSettings.class.getName().equals(fragmentName) ||
                 UserDictionarySettings.class.getName().equals(fragmentName)) {
-            intent.putExtra(EXTRA_THEME, android.R.style.Theme_Holo_SolidActionBar);
+            intent.putExtra(EXTRA_CLEAR_UI_OPTIONS, true);
         }
 
         intent.setClass(this, SubSettings.class);
@@ -535,6 +539,17 @@ public class Settings extends PreferenceActivity implements ButtonBarHandler {
     }
 
     @Override
+    public boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref) {
+        // Override the fragment title for Wallpaper settings
+        int titleRes = pref.getTitleRes();
+        if (pref.getFragment().equals(WallpaperTypeSettings.class.getName())) {
+            titleRes = R.string.wallpaper_settings_fragment_title;
+        }
+        startPreferencePanel(pref.getFragment(), pref.getExtras(), titleRes, null, null, 0);
+        return true;
+    }
+
+    @Override
     public void setListAdapter(ListAdapter adapter) {
         if (mHeaders == null) {
             mHeaders = new ArrayList<Header>();
@@ -587,4 +602,5 @@ public class Settings extends PreferenceActivity implements ButtonBarHandler {
     public static class DataUsageSummaryActivity extends Settings { /* empty */ }
     public static class AdvancedWifiSettingsActivity extends Settings { /* empty */ }
     public static class TextToSpeechSettingsActivity extends Settings { /* empty */ }
+    public static class AndroidBeamSettingsActivity extends Settings { /* empty */ }
 }