Split ActionBar in Settings
Made menu item visible to force action bar, changed style.
Also change parent_fragment for items that have been moved to top level (wifi,
bluetooth, development, battery).
Change-Id: I62932ba55356abdfbf94942f5b4efaa0f15dbd6a
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 5e37d06..d92e14f 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -125,10 +125,6 @@
android:value="com.android.settings.wifi.WifiSettings" />
<meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
android:resource="@id/wireless_settings" />
- <meta-data android:name="com.android.settings.PARENT_FRAGMENT_TITLE"
- android:resource="@string/wireless_networks_settings_title" />
- <meta-data android:name="com.android.settings.PARENT_FRAGMENT_CLASS"
- android:value="com.android.settings.Settings$WirelessSettingsActivity" />
</activity>
<activity android:name=".wifi.WifiPickerActivity"
@@ -233,10 +229,6 @@
android:value="com.android.settings.bluetooth.BluetoothSettings" />
<meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
android:resource="@id/wireless_settings" />
- <meta-data android:name="com.android.settings.PARENT_FRAGMENT_TITLE"
- android:resource="@string/wireless_networks_settings_title" />
- <meta-data android:name="com.android.settings.PARENT_FRAGMENT_CLASS"
- android:value="com.android.settings.Settings$WirelessSettingsActivity" />
</activity>
<activity-alias android:name=".bluetooth.AdvancedBluetoothSettings"
@@ -873,10 +865,6 @@
android:value="com.android.settings.DevelopmentSettings" />
<meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
android:resource="@id/application_settings" />
- <meta-data android:name="com.android.settings.PARENT_FRAGMENT_TITLE"
- android:resource="@string/applications_settings_header" />
- <meta-data android:name="com.android.settings.PARENT_FRAGMENT_CLASS"
- android:value="com.android.settings.Settings$ApplicationSettingsActivity" />
</activity>
<activity-alias android:name="DevelopmentSettings"
@@ -894,10 +882,6 @@
android:value="com.android.settings.DevelopmentSettings" />
<meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
android:resource="@id/application_settings" />
- <meta-data android:name="com.android.settings.PARENT_FRAGMENT_TITLE"
- android:resource="@string/applications_settings_header" />
- <meta-data android:name="com.android.settings.PARENT_FRAGMENT_CLASS"
- android:value="com.android.settings.Settings$ApplicationSettingsActivity" />
</activity-alias>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 1193bdc..a2ec8b6 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -936,8 +936,8 @@
<!-- Bluetooth settings: The title of the preference (list item) that initiates a scan for devices -->
<string name="bluetooth_preference_scan_title">Scan for devices</string>
- <!-- Bluetooth settings: The title of the preference (list item) that finds nearby devices [CHAR LIMIT=30] -->
- <string name="bluetooth_preference_find_nearby_title">Find nearby devices</string>
+ <!-- Bluetooth settings: The title of the action button that finds nearby devices [CHAR LIMIT=20] -->
+ <string name="bluetooth_preference_find_nearby_title">Scan</string>
<!-- Bluetooth settings: The sub heading for device settings. [CHAR LIMIT=30] -->
<string name="bluetooth_preference_device_settings">Device settings</string>
<!-- Bluetooth settings: The sub heading for paired devices. [CHAR LIMIT=30] -->
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index f07d965..0010779 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -76,12 +76,13 @@
@Override
protected void onCreate(Bundle savedInstanceState) {
+ setTheme(android.R.style.Theme_Holo_SplitActionBarWhenNarrow);
getMetaData();
mInLocalHeaderSwitch = true;
super.onCreate(savedInstanceState);
mInLocalHeaderSwitch = false;
- if (isMultiPane()) {
+ if (!onIsHidingHeaders() && onIsMultiPane()) {
highlightHeader();
// Force the title so that it doesn't get overridden by a direct launch of
// a specific settings screen.
@@ -107,6 +108,10 @@
}
});
}
+
+ // TODO Add support for android.R.id.home in all Setting's onOptionsItemSelected
+ // getActionBar().setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP,
+ // ActionBar.DISPLAY_HOME_AS_UP);
}
@Override
@@ -193,7 +198,7 @@
// If it is not launched from history, then reset to top-level
if ((intent.getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) == 0
- && mFirstHeader != null && isMultiPane()) {
+ && mFirstHeader != null && !onIsHidingHeaders() && onIsMultiPane()) {
switchToHeaderLocal(mFirstHeader);
}
}
diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java
index 9c90b20..f20ad78 100644
--- a/src/com/android/settings/bluetooth/BluetoothSettings.java
+++ b/src/com/android/settings/bluetooth/BluetoothSettings.java
@@ -40,9 +40,8 @@
public final class BluetoothSettings extends DeviceListPreferenceFragment {
private static final String TAG = "BluetoothSettings";
- private static final int MENU_ID_MAKE_DISCOVERABLE = Menu.FIRST;
- private static final int MENU_ID_SCAN = Menu.FIRST + 1;
- private static final int MENU_ID_ADVANCED = Menu.FIRST + 2;
+ private static final int MENU_ID_SCAN = Menu.FIRST;
+ private static final int MENU_ID_ADVANCED = Menu.FIRST + 1;
private BluetoothEnabler mBluetoothEnabler;
@@ -80,8 +79,6 @@
activity.getActionBar().setSubtitle(mLocalAdapter.getName());
}
- // TODO activity.setTheme(android.R.style.Theme_Holo_SplitActionBarWhenNarrow);
-
setHasOptionsMenu(true);
}
@@ -104,23 +101,22 @@
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
boolean bluetoothIsEnabled = mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_ON;
- menu.add(Menu.NONE, MENU_ID_MAKE_DISCOVERABLE, 0, R.string.bluetooth_visibility)
- .setEnabled(bluetoothIsEnabled);
menu.add(Menu.NONE, MENU_ID_SCAN, 0, R.string.bluetooth_preference_find_nearby_title)
- .setIcon(R.drawable.ic_menu_scan_network).setEnabled(bluetoothIsEnabled);
+ //.setIcon(R.drawable.ic_menu_scan_network)
+ .setEnabled(bluetoothIsEnabled)
+ .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(Menu.NONE, MENU_ID_ADVANCED, 0, R.string.bluetooth_menu_advanced)
- .setIcon(android.R.drawable.ic_menu_manage);
+ //.setIcon(android.R.drawable.ic_menu_manage)
+ .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
- case MENU_ID_MAKE_DISCOVERABLE:
// TODO
// if (mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_ON) {
// onAddNetworkPressed();
// }
- return true;
case MENU_ID_SCAN:
if (mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_ON) {
mLocalAdapter.startScanning(true);
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index a829602..549e695 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -253,11 +253,16 @@
if (!mInXlSetupWizard) {
final boolean wifiIsEnabled = mWifiManager.isWifiEnabled();
menu.add(Menu.NONE, MENU_ID_SCAN, 0, R.string.wifi_menu_scan)
- .setIcon(R.drawable.ic_menu_scan_network).setEnabled(wifiIsEnabled);
+ //.setIcon(R.drawable.ic_menu_scan_network)
+ .setEnabled(wifiIsEnabled)
+ .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(Menu.NONE, MENU_ID_ADD_NETWORK, 0, R.string.wifi_add_network)
- .setIcon(android.R.drawable.ic_menu_add).setEnabled(wifiIsEnabled);
+ //.setIcon(android.R.drawable.ic_menu_add)
+ .setEnabled(wifiIsEnabled)
+ .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add(Menu.NONE, MENU_ID_ADVANCED, 0, R.string.wifi_menu_advanced)
- .setIcon(android.R.drawable.ic_menu_manage);
+ //.setIcon(android.R.drawable.ic_menu_manage)
+ .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
super.onCreateOptionsMenu(menu, inflater);
}