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 518d0ee..c9f5c73 100644 (file)
 
 package com.android.settings;
 
+import com.android.settings.accounts.AccountSyncSettings;
+import com.android.settings.bluetooth.BluetoothEnabler;
+import com.android.settings.fuelgauge.PowerUsageSummary;
+import com.android.settings.wifi.WifiEnabler;
+
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -23,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;
@@ -37,9 +44,6 @@ import android.widget.ListAdapter;
 import android.widget.Switch;
 import android.widget.TextView;
 
-import com.android.settings.bluetooth.BluetoothEnabler;
-import com.android.settings.wifi.WifiEnabler;
-
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -59,6 +63,8 @@ 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_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";
 
@@ -76,6 +82,10 @@ public class Settings extends PreferenceActivity implements ButtonBarHandler {
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
+        if (getIntent().getBooleanExtra(EXTRA_CLEAR_UI_OPTIONS, false)) {
+            getWindow().setUiOptions(0);
+        }
+
         getMetaData();
         mInLocalHeaderSwitch = true;
         super.onCreate(savedInstanceState);
@@ -180,6 +190,7 @@ public class Settings extends PreferenceActivity implements ButtonBarHandler {
                 mCurrentHeader = parentHeader;
 
                 switchToHeaderLocal(parentHeader);
+                highlightHeader();
 
                 mParentHeader = new Header();
                 mParentHeader.fragment
@@ -207,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);
             }
         }
     }
@@ -277,6 +289,15 @@ public class Settings extends PreferenceActivity implements ButtonBarHandler {
             int titleRes, int shortTitleRes) {
         Intent intent = super.onBuildStartFragmentIntent(fragmentName, args,
                 titleRes, shortTitleRes);
+
+        // 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_CLEAR_UI_OPTIONS, true);
+        }
+
         intent.setClass(this, SubSettings.class);
         return intent;
     }
@@ -518,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>();
@@ -542,8 +574,10 @@ public class Settings extends PreferenceActivity implements ButtonBarHandler {
     public static class DateTimeSettingsActivity extends Settings { /* empty */ }
     public static class StorageSettingsActivity extends Settings { /* empty */ }
     public static class WifiSettingsActivity extends Settings { /* empty */ }
+    public static class WifiP2pSettingsActivity extends Settings { /* empty */ }
     public static class InputMethodAndLanguageSettingsActivity extends Settings { /* empty */ }
     public static class InputMethodAndSubtypeEnablerActivity extends Settings { /* empty */ }
+    public static class SpellCheckersSettingsActivity extends Settings { /* empty */ }
     public static class LocalePickerActivity extends Settings { /* empty */ }
     public static class UserDictionarySettingsActivity extends Settings { /* empty */ }
     public static class SoundSettingsActivity extends Settings { /* empty */ }
@@ -567,6 +601,6 @@ public class Settings extends PreferenceActivity implements ButtonBarHandler {
     public static class DeviceAdminSettingsActivity extends Settings { /* empty */ }
     public static class DataUsageSummaryActivity extends Settings { /* empty */ }
     public static class AdvancedWifiSettingsActivity extends Settings { /* empty */ }
-    public static class AdvancedBluetoothSettingsActivity extends Settings { /* empty */ }
     public static class TextToSpeechSettingsActivity extends Settings { /* empty */ }
+    public static class AndroidBeamSettingsActivity extends Settings { /* empty */ }
 }