summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml6
-rwxr-xr-xres/values/dimens.xml8
-rw-r--r--src/com/android/settings/SubSettings.java1
-rw-r--r--src/com/android/settings/Utils.java8
-rw-r--r--src/com/android/settings/bluetooth/BluetoothSettings.java60
5 files changed, 82 insertions, 1 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index b536b20..cc78228 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -375,6 +375,12 @@
android:value="com.android.settings.ApnSettings" />
</activity>
+ <activity android:name=".SubSettings$BluetoothSubSettings"
+ android:taskAffinity="com.android.settings"
+ android:configChanges="orientation|keyboardHidden|screenSize"
+ android:parentActivityName="Settings">
+ </activity>
+
<activity android:name="Settings$BluetoothSettingsActivity"
android:label="@string/bluetooth_settings_title"
android:taskAffinity="">
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 2d860d7..9a2786c 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -210,6 +210,14 @@
<integer name="bluetooth_name_length">32</integer>
<dimen name="bluetooth_pairing_padding">20dp</dimen>
+ <!-- Bluetooth ActionBar -->
+ <dimen name="bluetooth_landscape_title_textsize">14px</dimen>
+ <dimen name="bluetooth_portrait_title_textsize">20px</dimen>
+ <dimen name="bluetooth_landscape_actionbar_height">46px</dimen>
+ <dimen name="bluetooth_portrait_actionbar_height">56px</dimen>
+ <dimen name="bluetooth_landscape_switchbar_height">46px</dimen>
+ <dimen name="bluetooth_portrait_switchbar_height">56px</dimen>
+
<!-- WiFi Preferences -->
<dimen name="wifi_divider_height">1px</dimen>
<dimen name="wifi_preference_badge_padding">8dip</dimen>
diff --git a/src/com/android/settings/SubSettings.java b/src/com/android/settings/SubSettings.java
index 04955b2..13ead6e 100644
--- a/src/com/android/settings/SubSettings.java
+++ b/src/com/android/settings/SubSettings.java
@@ -35,4 +35,5 @@ public class SubSettings extends SettingsActivity {
Log.d("SubSettings", "Launching fragment " + fragmentName);
return true;
}
+ public static class BluetoothSubSettings extends SubSettings { /* empty */ }
}
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 1122591..b6d9414 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -92,6 +92,7 @@ import com.android.settings.UserAdapter.UserDetails;
import com.android.settings.dashboard.DashboardTile;
import com.android.settings.drawable.CircleFramedDrawable;
import com.android.settingslib.applications.ApplicationsState;
+import com.android.settings.bluetooth.BluetoothSettings;
import java.io.IOException;
import java.io.InputStream;
@@ -717,7 +718,12 @@ public final class Utils {
Bundle args, String titleResPackageName, int titleResId, CharSequence title,
boolean isShortcut) {
Intent intent = new Intent(Intent.ACTION_MAIN);
- intent.setClass(context, SubSettings.class);
+ if (BluetoothSettings.class.getName().equals(fragmentName)) {
+ intent.setClass(context, SubSettings.BluetoothSubSettings.class);
+ intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_AS_SUBSETTING, true);
+ } else {
+ intent.setClass(context, SubSettings.class);
+ }
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT, fragmentName);
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, args);
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RES_PACKAGE_NAME,
diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java
index 2663e07..ab5cf26 100644
--- a/src/com/android/settings/bluetooth/BluetoothSettings.java
+++ b/src/com/android/settings/bluetooth/BluetoothSettings.java
@@ -18,6 +18,8 @@ package com.android.settings.bluetooth;
import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH;
+import android.app.ActionBar;
+import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
@@ -25,6 +27,7 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Bundle;
import android.preference.Preference;
@@ -34,13 +37,17 @@ import android.preference.PreferenceScreen;
import android.provider.Settings;
import android.text.Spannable;
import android.text.style.TextAppearanceSpan;
+import android.util.DisplayMetrics;
import android.util.Log;
+import android.util.TypedValue;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup.LayoutParams;
import android.widget.TextView;
+import android.widget.Toolbar;
import com.android.internal.logging.MetricsLogger;
import com.android.settings.LinkifyUtils;
@@ -146,6 +153,59 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment implem
}
@Override
+ public void onConfigurationChanged(Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+ Activity activity = getActivity();
+ float titleTextSize;
+ int actionBarHeight;
+ int switchBarHeight;
+ if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
+ titleTextSize = activity.getResources().getDimensionPixelSize(
+ R.dimen.bluetooth_landscape_title_textsize);
+ switchBarHeight = activity.getResources().getDimensionPixelSize(
+ R.dimen.bluetooth_landscape_switchbar_height);
+ actionBarHeight = activity.getResources().getDimensionPixelSize(
+ R.dimen.bluetooth_landscape_actionbar_height);
+ } else {
+ titleTextSize = activity.getResources().getDimensionPixelSize(
+ R.dimen.bluetooth_portrait_title_textsize);
+ switchBarHeight = activity.getResources().getDimensionPixelSize(
+ R.dimen.bluetooth_portrait_switchbar_height);
+ actionBarHeight = activity.getResources().getDimensionPixelSize(
+ R.dimen.bluetooth_portrait_switchbar_height);
+ }
+ resetBarSize(titleTextSize, actionBarHeight, switchBarHeight);
+ }
+
+ private void resetBarSize(float titleTextSize, int actionBarHeight, int switchBarHeight) {
+ Activity activity = getActivity();
+ DisplayMetrics displayMetrics = Resources.getSystem().getDisplayMetrics();
+ int titleId = Resources.getSystem().getIdentifier("action_bar", "id", "android");
+ Toolbar toolbar = (Toolbar) activity.getWindow().findViewById(titleId);
+ TextView title = null;
+ if (toolbar != null) {
+ LayoutParams layoutParams = toolbar.getLayoutParams();
+ layoutParams.height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
+ actionBarHeight, displayMetrics);
+ for (int i = 0; i < toolbar.getChildCount(); ++i) {
+ if (toolbar.getChildAt(i) instanceof TextView) {
+ title = (TextView) toolbar.getChildAt(i);
+ }
+ Toolbar.LayoutParams childLayoutParams = (Toolbar.LayoutParams) toolbar.getChildAt(
+ i).getLayoutParams();
+ childLayoutParams.gravity = Gravity.CENTER_VERTICAL;
+ }
+ }
+ if (title != null)
+ title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, titleTextSize);
+ if (mSwitchBar != null) {
+ LayoutParams layoutParams = mSwitchBar.getLayoutParams();
+ layoutParams.height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
+ switchBarHeight, displayMetrics);
+ }
+ }
+
+ @Override
public void onDestroyView() {
super.onDestroyView();